Are you looking for my non-technical blog?

This is now my technical-only blog, my non-technical blog is here.

26 December 2012

Linkedin's Skills Endorsement is flawed

Linkedin's Skills Endorsement is flawed. I love the idea, but the problem is that the way it suggests for others to endorse their connections is flawed. They only show you the top endorsed skill for one of your friend and invite you to endorse it, and what happens is that (99% of the time), you will just follow their suggestion, rather than selecting the skills your connection really has. In other words, the rich (skills) get richer, and the poor (skills) get poorer.

Another problem, is that I am doing a career shift at the moment, but because most of my connections so far either know me Network Security Engineer or Blogger, my top endorsements are Juniper, Social Media and Networks Security, followed by ones like Firewalls and Twitter. For sure it reflects my expertise, at least the past one, but I would love to see some balance there, and see more endorsements for skills like Python, Machine Learning, Information Retrieval, Data Science, Statistics and the other skills at the tail of my list. One way is form more connection in those new fields so they can reflect my true skills now, but back to the first problem, the Linkedin suggestion system will keep them buried and it will be harder for those skills to get promoted as I want.

Hope they change such suggestion system one day, so my profile reflects what I really am at the moment.

24 December 2012

One line rsync tutorial

You might need to read rsync man page to understand all the options and bells and whistles of that software, but for me, all I need now is a one line tutorial:
rsync -rv src/ dst/

Security Predictions For 2013

At this time of the year, experts like myself should write their predictions for the next year. So, have a seat, grab a sandwich, and read what my crystal ball says:

Fortune Teller - Predictions for 2013


  1. Computer attacks will get even more sophisticated:
    Attackers are going to develop more sophisticated attacks, and the tools they use will get more powerful and complex, they will be as complex as double cheese burger compared to the normal burger sandwich.
  2. Attacks will come from anywhere and everywhere:
    Attackers will not only attack from the door, they will also attack from the fireplace's chimney like Santa. Or, let's put it in a more professional way, attack surfaces will continue to expand. Remember, we've just said that attackers are now using double-cheese-burger-like tools, and the sauce now can come out from any layer to fall on your shirt. Beware of the pickles too!
  3. More security experts will be needed:
    Come on, we just said attacks are getting more complex and scary, so it is obvious that you will need to hire top-notch security experts to protect you.
  4. Security experts are so damn hard to be found:
    Wait, didn't I just say that you will need to hire security experts, and now I added that they are hard to be found!? Gotcha, this is the real reason behind writing this whole post, I am sorry to tell you pal, you are doomed my friend, unless you buy our uber-sophisticated-expensive-god-damn-useless security products!

Well, this is basically the type of posts you will read nowadays. And guess what, this is not only true for the computer security field, it is almost everywhere, so be prepared.

HCI Assignments

These are two reports that I've written as part of my Human-Computer Interaction course in University of East Anglia:


Mobile Observations
The first reports tries to shed the light on the ongoing trends in mobile phones usage. We will try to summarize how people are using their phones, whether offline or online. What content do they access online and how do they access it. And if there is a relationship between mobile usage and demographic differences. Finally, we will see how businesses are responding to these trends by adapting their online presence.
Mobile Observations Report

Usability Evaluation and Websites Design
Usability is defined by ISO/IEC 9241 as the extent to which software products satisfy the users' needs in an effective and efficient manner. In this study we introduce the various sets of usability evaluation and design guidelines available today. Then, we apply a subset of those evaluation guidelines to three accommodation booking websites, and attempt to offer an alternative design that covers the deficiencies found in our evaluation.
Website Evaluation


08 December 2012

Python Profiler

Was writing a code today and it was so unoptimized and slow. A friend of mine told me about the Profilers. They are a nice way to see which parts of your code are swallowing all of the execution time to work on optimizing them later on.

Here is how to use 'cProfile' in Python. Let's say your main function is called 'main()', so instead of directly calling it, write down the following code:
import cProfile
import pstats
cProfile.run('main()','my_prof')
p = pstats.Stats('my_prof')
p.sort_stats('time').print_stats(10) 
By the way, it came out that 'math.pow(x,2)' was one of the bad guys here, and replacing it with a simple 'x*x' improved the performance a bit.