Wednesday, April 23, 2014

Facebook Authentication in Perl with Mojolicious (Lite)

Below is the minimum you need in order to have a web app that provides Facebook authentication.

Although there are less than 100 lines of code (including comments), this is a complete Facebook application implemented in +Perl  , using the +Mojolicious web framework. It provides Facebook authentication and accesses user's Facebook username. Of course, with proper scope settings it could also access user's list of friends, the pages that the user manages, or many other interesting things that Facebook offers access to.

So, the complete app:



In order to make it work, you have to first create a Facebook application and then fill in the values for $config->{facebook}->{app_id} and $config->{facebook}->{secret}  with the values provided by Facebook on the application Settings page:



Also, you have to provide a Site URL to your Facebook app. This is the URL where the user will be redirected after Facebook authenticates him. In our app, the URL is http://mojo.dev:3000/redirect_from_fb  - of course, mojo.dev is not a valid domain, but an alias I made in /etc/hosts that points to the IP of the machine that runs our Mojo Lite app - Facebook seems to be OK with this URL.

After you have installed the dependencies:

You can start your app in dev mode by executing: morbo facebook

When you click on the Click here to authenticate with FB link, you (and your users) will be redirected to Facebook and presented with a screen like this

After you authorize the app to access all the scopes set on line 39, Facebook will redirect you back to your app. Note that this authorization phase is done just once - after that, every time you log in with that account, Facebook will simply redirect you to the app.

If you read this far and liked the article, get rid of your shyness and share it using the buttons on the left :)

Sunday, January 5, 2014

Voting Rings - Bad or Good?

Voting rings can be a low cost alternative to AdWords and Facebook ads to promote high quality content.

What are voting rings or voting cliques?

Reddit, in their faq section, answers to the question What constitutes vote cheating and vote manipulation? with:
 A "vote ring" is a group of people who agree to vote on certain things together, either a specific submission, a user, a domain, or anything like that.
And they, not only discourage this type of practice, but they explicitly forbid it. Other websites that highlight voted content like hacker news, digg, delicious, stackoverflow, quora and basically all the rest, also forbid the practice of participating in voting rings.

Why are voting rings so alluring

Because it helps you get on the front page of hacker news, or of any popular reddit thread - and this, my dear reader, brings a huge amount of traffic to your site. 

As an example, my post titled Why I'll never leave Romania as a software developer was on the front page of the /r/programming thread on reddit for one day. As a result, the post got 26k visits, most of them from reddit. And the visitors were highly targeted people, all interested in programming. 

You don't have to be a rocket surgeon to estimate that, at a modest cost of 30 cents/click with AdWords, this amount of traffic would've cost 7800 dollars. Imagine what happens when you are on the front page on /r/technology (which has 10x times more subscribers than the /r/programming thread) or reddit itself.

Most of the algorithms that decides what post to be on the front page are based on a combination between the number of votes it receives, and their recency, such that, the more votes a post receives right after it is posted, the upper it gets on the front page, thus being exposed to a bigger number of readers, increasing its chances to be upvoted even further. 
On the contrary, no matter how good an article is, if it doesn't get a few upvotes early on, right after it is submitted, it will go down the drain on the path of internet forgetfulness.

Voting rings are a current practice of internet activity

If you love a certain's author style, there are big chances that you like, share, tweet or upvote the content they publish, creating a voting ring, so the better an author is, the biggest their voting circle is, the bigger the chances that their content gets featured on social networks and so on. Indeed, you might say, having many followers, the author has proven track record that they create notable content. 
For the rest of us, the mere mortals, things are a little bit different - we have to be proactive in promoting our content in order to have it exposed. 

Unfortunately, this proactiveness is considered bad practice and it might get your account banned from the vote enabled, content bubbling sites. Fortunately, it is difficult to accurately identify voting rings, especially due to the fact that popular authors posts look liked they're promoted through voting ring schemes.

So, whether you explicitly ask your friends to upvote your submission or you share your submission on your social network profiles, you encourage your friends to upvote your creation, thus you are susceptible of ad-hoc voting rings creation. 
In my opinion, voting rings are a reality, whether they're good or bad is debatable, but, when I spend 3, 4, or even more hours to write an article, I want to make sure it gets all the possible feedback - be that positive, or negative, so it seems normal to promote it on all the channels I can and ask a few friends to help me with it. 
I don't even know if there's anyone to be featured on the front page of any popular social content aggregator who got there without help (ie early upvotes) from friends or acquaintances. If you have knowledge of highly popular content that got its notoriety without some initial boosting, please mention it in the comments section of the article.

Conclusions

I'd say that voting rings are a natural way of association among individual. It happens day by day in our offline lives. It happens when we ask for endorsements, it happens when a political party or NGO starts a social movement or a protest and the examples could go on and on. 
So, creating a voting ring to give you an initial boost to your content is a good thing. The people in the community will take care and show you the place where that post belongs in an instant anyway, by upvoting or downvoting it.
Why would we ban those practices from the online environment? I expect the online world to be an enriching experience to our offline lives, not a restricting one. I expect it to offer at least what the offline world offers (in the limits of the current technology available, of course), and a little more.

The worst case scenario would be when a group of, lets say, 1000 people group together and act in a monopolistic way against the community they're part of, by keeping the front pages filled only with their content. Such a group of people will take time to be created and there are little chances that just one group will be. There would be more groups, acting in opposition, simply balancing the focus the internet gets.


An Experiment


Not long while ago, together with a group of friends, we created PRForge. It is thought as a platform for audience amplification. Whenever someone posts a link in a group on PRForge, the link gets spread on the social properties of all the members from that group, thus amplifying the total reach of that piece of content. The social platforms supported until now were just Facebook and Twitter, but starting the last days of 2013, we implemented reddit and hacker news upvotes:
If this post convinced you that voting rings are OK to use, join the group on PRForge and be part of the voting ring I created. 

After you sign-up, install the firefox plugin from the link 
Go Get It Champ
which is on the left sidebar. 
Let that Firefox instance running with a Reddit and Hacker News account logged in. Whenever an authorized to post member of the group will submit a Reddit/HN link, it will be automatically upvoted by all the members of the group. 

In order to become authorized to submit links, let me know in the comments section of the group. 
After you sign up you'll be also able to create your own, private groups.

Please note that although PRForge's main functionalities are working right now, it is in a really early release and there are things that will not work. Please bear with us while we fix the glitches that will appear.  

If you read this far, you might want to follow me on twitter

Friday, December 13, 2013

How to screw up a startup community

TL;DR

Organize meetings, social events and hackathons, pretend you want to help the community, then use the ideas you saw there to serve your personal purpose. In order for this to work, you have to keep for yourself everything that you work on until the launch day, while you encourage the participants to tell you as much as possible about their businesses. If they ask you something about what you're working on, lie to them, otherwise they might not come to your future events.

This happened to me (I was at the receiving end of this "business model")


I started to work on EatFab sometimes in November 2011 in order to solve the problems we faced with food ordering management (the major problem is that a lot of time is spent to centralize the orders). We started to use it at my current employer in September 2012. 

In December 2012 I found out about Open Coffee Cluj - a group formed for the like minded people, entrepreneurs and people with initiative. At least that's what the organizer of the meetups, Marius Mocian, told us. Everything seemed to work well, we exchanged ideas, we talked about what we're working on, the problems we faced and we had brainstorming sessions whenever someone raised an issue. Except that when Marius was asked what he was working on he was always vague, saying only that he mostly mentors other startups. 

Six months later, around May 2013, a mobile application is launched for the food delivery market in Cluj-Napoca. Shockingly (in an unpleasant way) for me, I find out that Marius Mocian is the one responsible with the marketing of the app, with some responsibilities in product development and he was occupying that role for several months. While keeping his main occupation secret until the last time is legal, I find this to be immoral, to say the least, because he kept organizing the startup related meetups and encouraged us to keep giving statuses related to our workings.

Although all of my gut feeling alarms went crazy, I deceived myself by telling me that it just looks like we're competing in the same market: his application is for individual deliveries, while EatFab is for office food ordering, so we're kind of complementary and he didn't had any kind of moral duties to disclose he is deeply involved in development of a competing application. 

So, I continued going to the events he organized and continued to be very open related to EatFab - that's what you read on hackernews, /r/technology and /r/startups afterall: be as open as possible and let as many people as possible know about your ideas. I brought several people to the meetings, in the hope that we'll grow the whole startup community together. I also went to the Startup Live event that he organized in Cluj just because he didn't had enough participants - I convinced one of the Evozon's owners to pay the tickets for a whole team there and also persuaded several other developer friends to come. All of this, just to help the local startup community to grow and to have meaningful events here.

The cunning gets real


In September 2013, I saw an ad on the biggest social network, aimed exactly to EatFab's market: office food ordering. After thorough investigation (because the domain owner enabled private registration), I found out that the man behind it is Andrei Barabas, the owner of Barandi Solutions - a company from Cluj, with its owner deeply involved in the startup "community" created by Marius Mocian. Andrei also participated to the Startup Live event I mentioned earlier, as a mentor and member of the jury. 

Let me remind you that this was happening almost a year after I told them about my approach on the food ordering market: office delivery for groups of people. And 4 months after Marius's application launch (not quite his app - he's just an employee there) - an application that didn't had the expected impact on the market, although it's a very sexy application and they had a decent budget for marketing.

I found the idea of a competing web application, exactly in Cluj, exactly on the main workings of EatFab, after a very short period of an unsatisfactory launch of a competing app, done by a guy who knew about EatFab as a huge coincidence.

Being in the same market, I thought about letting Marius Mocian know about my findings. 
I also asked him if he knows anything about it - his answer was a very strong "I have no clue", but said that he'll ask Andrei about it. A few days later I asked Marius if he talked with Andrei and he said that yes, but that he can't tell what the site is about and that I'll have to ask Andrei.
Today I met with Andrei (the guy who works on EatFab's copycat) and asked him about what he's working on. 
His answer "The web part of Marius's application"

Business rules, and types of people


While what Marius Mocian did is not illegal (not from what I know at least), it is highly immoral: lying, deceiving, cunning and betraying are not healthy ways to build communities and businesses. While my unfair advantage is the usage of +Perl and +Mojolicious, having a high productivity and short time to market, it looks like Marius takes the idea of unfair advantage literally. 
Marius's kind of people when employed, are able to develop a parallel business based on your business model while you pay them a monthly income in good faith. They're able to steal the source code of your application, put a different skin on it and try to build a company based on it (Marius said once that copycats of his app started to appear on the market soon after their launch - an affirmation which in hindsight might mean more than I thought). 

I hate rants and public complaints, and this post is exactly that, but, while I learned about Marius Mocian the hard way, I want to ask you to help other people find out about this typology. 
So, please share this article on reddit, hackernews and wherever other people involved in technology and startups are present so that when someone will be interested to collaborate with Marius, they'll do it knowingly.

Also, by making this type of articles popular, people will become aware on the importance of honesty and will realize that the greatest asset we have as individuals is our reputation.

Sunday, October 13, 2013

Why I'll never leave Romania as a software developer

I am a +Perl software developer for 3 years and I'm a paid software developer for 7 years. I live in Cluj-Napoca, which is the second most populous city in Romania. 


It's been around 4 years since I started to have this feeling that I wouldn't have the same standard of living in another country as a software developer that I have in Romania. Back then I was netting around 700 EUR/month. Given that the average net income in Romania in that period was less than 325.91 EUR, it was probably the fact that I'm earning more than 2x than the national average income that created this feeling that I don't want to leave. Anyway, that was just a feeling and although I was earning that much compared to the rest of the people, I felt like struggling with money from one month to another. This struggling was caused  by my lack of money management, by the fact that back then my wife just started as a lawyer and the income she brought was nearly zero and by the fact that the overall purchasing power in Romania is extremely low.


Programmer's Income in Cluj-Napoca

Although the trend changed here and there from time to time, the general rule for paying a decent software developer in Cluj is the following (I'm always talking about after tax money - net income): 

  1. the developer starts with about 400 EUR
  2. every 6 months she gets a 100 EUR raise

Within some exceptional cases, things might vary - for good, or bad. 
In a good sense the programmer is able to force a raise:
  1. by simply asking
  2. by going to interviews to other companies,
  3. by changing workplaces from company A to company B and then back to A
  4. and of course, by having extraordinary performances and negotiating a raise
In a bad way, programmer's income can increase slowly if:
  1. the company he works for does not perform well
  2. he is not a good negotiator
  3. the company is a shitty one and, given that he's satisfied with what he earns, is not raising his salary although he deserves so
  4. he is not performing well

So, it not exceptional to find a programmer with 5 years of experience netting 1500 EUR/month, or one with 7 years of experience who earns 1700 EUR/month.

From Feelings to Numbers

Recently I found the great numbeo site which gathers prices from the cities all over the world and exposes them publicly. More, it can show comparisons between 2 cities regarding prices, salaries and correlating that with the total purchasing power, it gives estimates of one's needed income in order to live in another city.  With its help I could justify the feelings and confirm my hunches that it's impossible to live that well in other part of the world as I do in Cluj:

CityReference IncomeRent in foreign cityIncomeYearly net income
London47625,396.931,884.007,280.9387,371.20
Berlin27843,155.20800.003,955.2047,462.40
Amsterdam38264,336.131200.005,536.1352,033.56
New York48485,494.402,214.007,708.4092,500.80
San Francisco44845,081.872,216.007,297.8787,574.40

How I reached those numbers

Reference - it is how much one should earn in the given city to have the same quality of life as in Cluj, when in Cluj earns 1500 EUR net/month. In the table are displayed money after taxes, or net income, paying rent in both cities.
Income 1 - It is the net salary that one should earn in in the given city in order to be at the equivalent of 1700 EUR in Cluj, paying rent in both cities. I consider 1700 EUR, because this is close to my actual salary and it is an average income for one developer with 7 years of experience.
Rent in foreign city - rent for a 3 bedroom apartment, outside of city centre
Income 2 - given that I don't have to pay rent in Cluj and I'd have to pay in the foreign city, this is computed by accumulating Income 1 column and Rent in foreign city column
Yearly net income - Income 2 column multiplied with 12 

More Data Needed

We'd definitely have a much more clearer image if there would be a column with average programmer net income in those cities. Unfortunately, most of the sites I've looked are displaying only the gross (pre-tax) yearly income and it is rather impossible to compute the net income without thoroughly knowledge of the local laws and fiscal policies. So, if you have knowledge of the average net income a programmer earns in the above cities, please share them with us in the comments and I'll update this post.

Programmers Lifestyle in Cluj-Napoca

Given the low purchasing power in Romania in general, the day by day prices are also very small. Have a look at the numbeo page with prices for Cluj
In 1700 EUR/month you have whatever type of life you want - for a party animal, a way of living here can be: 
  1. eat in the city every day (12 EUR for 3 meals/day * 30 days = 360 EUR/month).
  2. go out in the most expensive clubs every weekend (30 EUR/night * 8 nights = 240 EUR/month)
  3. have as many beers you can drink every day of the work week in the most expensive pubs (5 beers * 1.5 EUR/beer * 22 days = 165 )
  4. circulate only by taxi (5 EUR/day * 30 days = 150 EUR)
  5. pay rent and utilities (370 EUR)
  6. total: 1285 EUR/month
If you like to live healthy, the costs are much lower. 
Cluj-Napoca is a university city, during the academic year its population increases with 33% (100 000 students are here) making it a busy town. Almost every day there is some cultural event to be part of, a movie projection somewhere, a concert to attend, or a party in some club. Being surrounded by so many young people makes me feel younger (I'm not that old though, I'm 31).
I live at one end of the city and Evozon's office is in the center of the town. It takes me 10 minutes by car to reach there, it's great.

Conclusions

Besides money, there are definitely other things when I considered moving, like entrepreneurial opportunities. That is why I chose the above cities: they are some of the most active cities with regards to startups and IT in the world. Those would be the cities I'd consider moving to when my entrepreneurial desires will take over. But until then, I am staying here and I'm doing my best to be an active part of the young startup communities that are getting born in Cluj.

If you read this far and liked the article, get rid of your shyness and share it using the buttons on the left :)

Saturday, August 17, 2013

PRForge.com for promoting Perl



I got the opportunity to be present at YAPC::EU 2013 in Kiev and it was great. I even had a lightning talk in which I talked briefly about PRForge and presented a way in which it can help the perl ecosystem to increase its overall reach and audience.

Although I prepared my talk thoroughly beforehand (by repeating it more than 10 times in front of my computer's camera), when I reached the stage my voice started shaking and I got so nervous that I wanted to run off the stage, thus I didn't manage to get into much detail regarding prforge. I hope this post will clarify the details I left out of the presentation and bring in some more.

What is PRForge

PRForge is a web platform, where users can create groups based on shared, common interests. Whenever a member of a group posts something in that group, the posted URL will get promoted automatically on each other's member social profile through a set of social network actions: 
  • facebook share
  • facebook like
  • retweeted
  • favorited on twitter
The above are the social actions that we've implemented for now. In the near future we might integrate actions on Google+, LinkedIn, Pinterest and others.

PRForge is made with Perl, Mojolicious, DBIx::Class, Bootstrap and a healthy dose of love and passion.

Popularize Perl through PRForge

Use PRForge to promote Perl and get in a win-win-win situation, whichever of the below categories you find yourself in:

Perl supporters, fans and enthusiasts

You will get to be seen by your friends as hard core perl users and perl evangelists, because you'll have several perl related articles on your social network profiles with no effort.

Perl bloggers and content creators

You will increase your overall audience because of the contstant and extended sharing that takes place through PRForge.

Perl community

The overall increase in perl awareness can be nothing but beneficial to all programmers, because they will be exposed to an efficient and highly productive language - Perl.

Get up and running with PRForge and promote Perl

In order to use PRForge to promote perl, you have to satisfy several conditions:
  • you must have an account on PRForge
  • you must be a member of the Perl group on PRForge
  • you must have PRForge's Firefox plugin installed
  • you must have Facebook and Twitter accounts logged in with that Firefox instance
If you want to be able to promote Perl related links through the group, you must have the role of influencer in the group. Right now, I am the only person who can promote you to influencer, because the UI is not implemented yet in PRForge. So, please hit me an email after you join and ask me to make you one at tudorconstantin at gmail, or write in the comments section of this blog post (although, I think I'll find out more through the email)

  1. Sign-up PRForge and join the Perl Group
  2. Download (from the "Go get it champ" URL in the left menu bar) and install (by drag&dropping the prforge.xpi file downloaded earlier over your ff browser) the Firefox plugin
  3. Log into FB and Twitter on that FF instance
  4. Drop me an email and let me know if you want to be an influencer (if you want to be able to submit perl stuff to be promoted through the group)
That should be it - let the Firefox browser instance running with your FB and Twitter accounts logged in, and it should get jobs to to from PRForge whenever an influencer posts something to the group.

Promote Links

For now, only individual Facebook and Twitter posts can be promoted. So, below are the steps you need to make once you are an influencer in the Perl group.

For Facebook: 
  • the one who promotes the URL, will share it on facebook publicly
  • go to the individual link of the post (by clicking on the timestamp near the world globe icon of the post)
  • paste that link into PRForge

For Twitter:
  • go to the individual URL of the tweet (click on the tweet, then click on details)
  • paste that link into PRForge

Privacy Concerns

You have to install the PRForge Firefox plugin, which, as any other plugin, can do a lot of stuff - the only thing PRForge does, is making requests to the social networks that you enabled for each group you are a member of and to PRForge.com to ask for jobs, in the context the browser has (ie: in the name of the logged in account).

Regarding what other users will do (what links they'll share), we can not know that beforehand, but we start with the assumption that all the members of the group and especially the influencers are well intended. I will do my best to find out the relationship each influencer has with Perl and deny the advancement to influencer to people that have absolutely no whatsoever with Perl.
Will any influencer be able to submit links that promote the manly blue pill and fake brand watches? Sure they will, but just once, because they'll get banned right afterward.

I want to let you know that PRForge is in close, private beta, and the only group that got access until know, is the Perl group. This is because I feel that programmers can relate better to potential bugs that might appear in early stage products (like PRForge).

If my YAPC lightning talk didn't convince you to join PRForge, I hope this post did, so please sign up, join the perl group and start making noise about Perl. It's a whole world out there who doesn't know what is losing for not using Perl - let's help them!

That's it. If you need further help, please don't hesitate to contact me - in the comments or at the email I specified earlier in the post.

Tuesday, April 16, 2013

Translate Perl Tutorials to Ronglish

+Gabor Szabo, the editor of +Perl Weekly and the author of +Perl Maven had a great idea to translate good Perl tutorials in as many other languages as possible. We already have three Perl articles translated in Romanian

This as a great opportunity for you to learn +Perl  by translating (if you don't already know). If, on the other side, you already know +Perl you have the opportunity to give back to the community. For me it's great feeling to know that I can contribute back, I highly recommend you to try it.

Native language vs English

We know it is best to learn programming in English, but there are some categories of people who are not very proficient at English and find it difficult to understand it: kids, for example.

Translating to full native language is not beneficial either. Imagine you'd translate the string into Romanian's coarda. I'm sure some sensible folks would find that insulting. In addition, getting people used to technical programming terms in English will make it easier for them to understand tutorials later. All of the above are justifications to officialize and use the famous Ronglish language as a target translation: glue phrases into Romanian, while technical terms kept in English.

Spreading the word about Perl

The most important plus regarding translation is the opportunity to get +Perl close to developers.
From what I saw until now, people tend to see us, the Perl developers, as some kind of mysterious creatures, everybody knows that we exist, but nobody knows  any of us.
They are right: we call ourselves mongers, monks, one of our logos is a velociraptor, our frameworks promote unicorns and rainbows.
For me personally this is flattering, it makes me feel a special kind of developer. I want others to try this feeling too - it is much more easy than one might think.

Do it!!

Enough talk. To get started translated, go to the Github Repository of Perl5Maven and read the instructions. You'll also find there the way +Gabor will promote the translated articles.

If you liked this article, follow @tudorconstantin on twitter to keep in touch.

Monday, November 26, 2012

London Perl Workshop 2012

I am happy that I had the opportunity to be present at what I think is the second most important European Perl conference: the London Perl Workshop. I'll try to describe the short but intense journey in a way that will convince even more people to be present in the future.

We were 19 members of cluj.pm present at LPW - I think we were the second largest mongers group (after the london mongers, of course) and this wouldn't have been possible without the support from Evozon who paid half of our expenses. We woke up at 4 am (2 am - London time ) and we were all at the airport at 5:30 am. After a flight of about 3 hours (the landing was delayed because the foggy weather in Luton) and another 1 hour trip with the train from Luton, we were finally in London at 9:30 am (London time). We reached Westminster University (the avenue of the London Perl Workshop) around 10:30.

London Perl Workshop - Talks

First talk I attended was Documentation For Fun And Profit - presented by James Aitken (‎LoonyPandora‎). It was a nice reminder why we have to write documentation. What I liked most was his point regarding profit: "If one has to choose between two software solutions, he will likely chose the one that is more documented, even if it is not necessarily a better solution".

Next, it was Aaron Crane's Calamitous Context: Stop Breaking My Code!. As he mentioned himself in the presentation, many of the ideas he presented were inspired by Damian's Conway Perl Best Practices. The conclusion I left was that my programming style - returning either an array ref, either using an empty return is good enough (as Aaron pointed out there are cases when returning an array ref adds more complexity to the code that processes that result - but I think that the headaches avoided by using only scalar contexts for function calls is definitely worth that extra complexity ). It was nice to have an addendum to Damian's chapter and definitely worth spending my time watching Aaron. 

Matthew Bloch showed us the architecture behind Bytemark's BigV cloud platform. It was a little too much information for me to grasp at that time of the day and I am waiting for the supporting slides to made public to re-read the stuff that I missed.

Yandex.Direct (the equivalent of Google Adsense in Russia, Ukraine, Kazakhstan  and Turkey) showed us more of their Perl toolbox by having Elena Bolshakova talking about Looking into the program. It was a nice talk, but I think Elena focused too much on the already existing debugging cpan modules instead of talking more about Devel::YCallTrace - a debugging/profiling/tracing module that seems to fill the gaps and unite in a single place all the nice features that existing packages offer separately.

DuckDuckGo (a newcomer, but important player in the search engine world industry) had Torsten Raudssus (‎Getty‎) talking about Moving the needle or what I (should have) learned at DuckDuckGo. This was a business oriented presentation - for software developers. The main idea is that us, developers, should focus on bringing more business value to the product, rather than on the number of features that a project has. I liked the explanations for 2 of duckduckgo's increases in number of users - they were both unrelated to product features:
  • one took place when they placed a billboard on the road that goes to Google's headquarter
  • the other one (the big one, marked by point J in the graph) took place when Google changed their privacy policy (when they demanded that they'll use their users data however they want)

It followed the lunch break. It was longer than an hour, and the meal was pretty expensive (about 8 pounds for a shaworma with fries) but it was well worth - I took these pictures of myself and some of my colleagues on the famous Oxford Street:





The conference started abruptly after my extended launch break with Matt S Trout (MST) talking about Fast, furious, fatpacked and fun. As always, it was a pleasure watching Matt presenting. I liked most the way he implemented the generic and reusable request dispatchers for the supporting framework behind shadowcat's blog.



It followed the discussion about The state of the Perl jobs market. The conclusions were that there is a high demand for Perl developers on the market (only in that room there were people who needed more than 40 Perl devs right away). Interestingly enough, employers don't need the candidates to know Perl, they have programs to (cross) train them. We also found out that it seems there is also a good side of the fact that Perl is not so popular anymore: there are not so many self taught (many having low programming skills) developers like in the world of PHP and recently Ruby and Python. 
This means that employers have smaller chances to hire bad devs. Also, the scarcity of Perl developers makes our payment rates to be higher than Ruby, PHP or Python developers.

From the lightning talks, I found out that the UK's government is an open source contributor, having a public github profile, and working with Perl.

Visiting London.

Taking into consideration that we were supposed to be back in Cluj on Sunday, and the tight schedule, I thought we won't be able to see anything in London. Happily I was mistaken and we got to visit quite much.
As a general point of view, London is impressive - there is no single thing that I could say that had left me bad feelings: the buildings are clean and very well conserved, the streets are very clean (although there are rather few bins), there are virtually no cars parked on the sidewalks and the traffic is light (probably because it was Saturday and because of the tax that drivers have to pay for circulating inside the city). 

Prices are high for food (8 pounds for a shaworma) and transportation (4.3 pounds for a subway), but low for clothes (I could find known branded clothes cheaper than in Romania).

Because, we couldn't take part in the post conference social event, AND visit London, I skipped the social event, teamed with Tudor, Adela, Florentina and Diana and took a fast walk through London:












I'd like to say thanks to Mark Keating and all the volunteers involved in organizing this great event and also to Mircea Patachi who had the idea of replacing Evozon's semester Perl department team building with this trip to LPW, and also implementing it.

When we got back home, I had the pleasant surprise to find out that Cluj-Napoca won the competition and will be European Youth Capital in 2015 - congratulations to Democratic Liberal Party and especially Emil Boc for all the efforts you've made to make this possible. I think this is a good sign and hope that Cluj will become the European Capital of Culture in 2021.