Django development useful reads


1- Deploy Django on Apache with Virtualenv and mod_wsgi

2-Starting a Django project the right way.

For Advertisers


Dear advertisers

I keep getting emails from you proposing that I sell advertising space related to the topic of the blog, I have accepted a few times insisting that it is related to the blog’s topic.You always say yes.
A day later, I always get a request to advertise to some gambling site, a casino, some sales website, etc.
So please read this before bothering emailing me:
1-The topic must me about coding, programming, software engineering, a tool that programmers/admins use (an IDE, a compiler, dedicated server leasing), something that is part of their environments (screens, chairs, keyboards, mice, etc) some kind of certifications that are related, some universities programs that related, or some kind of related events. No games, no toys, no gambling, no clothes, no pubs/clubs,
2-If it will be a kind of review, I will have to TRY the product so my review is honest and truthful.



Filed under: Uncategorized

Programmer’s bill of rights Update


In November I started a new job at Ericsson, which means I almost haven’t worked at all on PBR.
In the past weekend I wanted to get back to it.I had some design change of mind when I reviewed what I have done.
Biggest design change is separating rating from environment format.
After a painful experience with open space at a previous job, I had the opportunity to work in an open space format at one of Ericsson’s offshore offices.
It was a huge difference, I had a personal space, some sort of light separation between desks, but was still completely open.It made collaboration nice.
So I realised, the environment rating is not so black and white, it’s not open space is evil and private offices are good. It matters about the design.
The open space with the painful experience was really badly designed: home desks, no personal space, very crammed together, no private locked drawers, very bad chairs, etc.
I will see what I can do…

Blog upgrade and clean up


This blog will get cleaned up and upgraded. most users will be deleted since most of them are bots.
please reply to this post if you are real.
sorry if you get deleted by mistake.

Filed under: Uncategorized

Enlightenment 17


I used to be an avid Enlightenment 16 user and in early 2000s I tried to switch a few time to e17, but I gave seeing how buggy it is.
I have been using gnome for a long time, not that I am very happy with it. But e16 is obsolete and e17 well I kinda forgot about it.
Until I heard a few days ago that E17 has been really released! after 12 years in development!!!
So I add the ppa repos to ubuntu fire up apt-get , wait a few mins. start it up, quick configurations question at first, kinda unpolished didn’t like the feeling…
Went in, hasn’t changed much since 2003 still looks like a 2003 desktop… tried to change background… e17 crashes on me.
Fuck this… 12 years in the making and it can’t change background…

Tagged as:

Update: Programmer’s bill of rights


So I have been working almost full time on the project now that I no longer work at Ludia.
Basic functionality should be done in a week from now but then I need to find a designer, and work on my jquery
for a smoother user experience.
Until then you can submit your email at the front page for release time notification.

Filed under: pbr

Flash crashing/accelerating/skipping on google chrome?


You probably got a flash conflict. The thing is that google packages flash inside every distribution of google chrome and sometimes it conflicts with the system wide installation.
To make sure if that’s your case, open a new tab , type ‘about:plugins’ in the omnibox. Try to look for the flash section, most probably you’ll have it saying (2 files). If that’s your case, on the top right corner there isa + details tab than you can click and all plugins will have all the details. Disable one of the flash versions (older one) and usually you are good to go.

Filed under: googled

Programmer’s bill of rights


As mentioned in the previous post, that’s what I have been working on for the last month or so.
Lots to learn.

I opted to host it on Amazon Web Services for several reasons:

1-I like it. That’s what I have been working for the last year.
2-I get a free t1.micro instance for a year.
3-I can scale up easily [get bigger instances and move to RDS if needed]
4-Backups, monitoring, route53 etc. [I love them]

Also I opted to work with python , django , jquery,mysql.

Why python? I simply love the language.
why django? It’s one of the most popular python framework, and if you want to learn something new. It better be popular so you can find solutions and libraries easily.
why jquery? no particular reason; my javascript skills are close to none. So I thought I would start with something that is pretty popular.
why mysql? I know it. I have enough overhead with django and jquery for now. No need for the increase in complexity.

I already got the server setup, the work environment, virtualenv, routing/dns, apache , basic application starting to be built (of course not public).
I chose twitter’s bootstrap for basic interface details (will pay someone for a properly designed frontend sooner or later)

I am guessing public beta will be out somewhere around end of October.
Wish me luck.

New Project


My main problem in thinking about ideas and new projects is they always go bigger and bigger before they even start, they go so big in my head that even starting the project become a huge task and I end up not doing it.
I have a huge project in mind related to developers and companies, but as usual it become so big and did not start it.
So instead of just sending it to the back of my mind like usual, I made several small projects out of it.

The first mini project is an inspiration from Jeff Atwood and Joel Spolsky repeated posts on the importance of the work environment for the productivity of programmers and how the vast majority of software companies don’t give a **** about it, basically treating them as second class citizens.

So my project titled: Programmer’s bill of rights will be a basic rating system for companies by developers to shame or praise their companies. I hope something good comes out of it.

Since this is my first full on web project that I would be doing entirely, there will be a lot of learning.
I am going to have several versions of it using 3 different frameworks(django/pyramid/rails) and then pick the one I like the most. Also I would probably be using and experimenting with different javascript libraries.

ETA for first version release: 1 month from now. (hey I got a full time job).

Filed under: Uncategorized

LC_CTYPE Errors on some remote servers


Getting an error every time you hit the tab key on a some remote server (ssh):

bash: warning: setlocale: LC_CTYPE: cannot change locale

It only means that your current language settings on your local computer is being pushed to the remote server when you ssh to it, and the remote server does not have that specific language (locale) installed.

There are 2 ways to fix that.
1- If you are admin of the remote server, you can easily install that specific locale. (Google for how-to for your specific distro)
2- You can disable ssh sending your environment variables you can do that checking your ssh_config.
If you are reading this I am assuming that you did not know this existed and you did not overwrite it in your user ssh_config.
So go to


Find the line that looks like this:

SendEnv LANG LC_*

It might be a little different so delete only LANG LC_* or you can comment the line out (and lose all other variables sent as well)
Hope this resolves it for you.

Managing geeks


The worse kinda way to manage geeks is giving them tasks without giving them the goal, plus micro manage them.

Instead just tell them what you want, and let them handle the implementation, they might figure new ways, better ways that you have not though about.

Filed under: Uncategorized

Auto Deployment vs Manual Deployment


I have a question for you good people. If you have a package that you can deploy manually in roughly 5 mins, and this package once deployed will not be redeployed again, not on another machine, nor on a cluster, nor anywhere.

The deployment consists of creating a virtual environment, installing the app with 1 command , and then running the http server.

Any change in code would mean replace the app and run the http server again.

On the other hand auto deployment is to create a new virtual environment , install the app, run the http server and have init scripts.

My questions for you, would you create the auto-deployment scripts?

Filed under: question

Getting hit by a bus


My definition of a good engineer is not the smartest person, nor the person with most years of experience, nor the person who knows the most programming language. My definition of a good engineer is someone that if gets hit by a bus, it takes little effort to pick up after his/her work.

Meaning: The engineer codes very clearly, code commented, documented, work history preserved, tasks are well written, no knowledge is lost.

It really means nothing if you are the only person that can do something at your company, working at a company is not a personal project. your whole work pattern should think about posterity.


Guru, Ninja, Pirate and Rockstar…


Some of the names that recruiters like to call good programmers. It’s just pure BS.

Considering the average social skills and physical condition of GOOD programmers.

Yeah I get what’s really the point. It’s complimenting the people enough to accept sub standard conditions of working. Like being crammed in a room full of 50 people where when people around they keep hitting each other. Being crammed in a place where they got no personal space, no privacy, no lockers, no drawers just as if they are in a computer lab.

I don’t get companies like this, programmers are usually high paid employees but they treat them like total shit all the time. Do you know what good programmers did to reach this point?? they probably started programming at like age 10, and before even reaching university they knew how to program. They worked long hours in university while other majors where partying on. And at the end? that schmuck that parties his way in his 3 years university degree and his job is mainly yapping with others gets the big office , the perks, the title etc. While the poor programmers are put in a place that looks not much different than a massive call center.

I have a plan for a project to change that.  Stay tuned. :)

Filed under: Career



I have a big problem when company promote a programmer to become a lead just because he/she has been there the Longest.

It happens a lot, the current Lead moving on, so they pick the one with the most numbers of years under his belt. Not only I disagree with this, but also they are practically setting up the team for failure.

The jump from fresh graduate to Junior to Intermediate can be assessed by years, I agree. Even the hardest tasks can be learned if you got enough time. In Lebanon we got a saying which roughly translates into , repeating will teach even donkeys.

The jump from Intermediate to Senior is not so obvious anymore, it is not measured by number of years only, it is measured by your ability to work alone, your creativity , your ability to solve things. The jump to Lead is on a total different level now; if you have no organisation skills, communication skills, patience, and a clear head you do not belong as a Lead to any team.

You need top notch organisation skills to be able to organise the work for not only you, but others as well from now on, and communication skills is needed to be able to communicate them. Patience, clear head, the ability to teach (since you will be handling junior levels too) all necessary as well .

I have this seen this mistake in a lot of companies, geeks naturally have no such skills. It needs to be developed. If you do not have such Lead, better hire one then promote the next random person.

Filed under: Career

New Job


Started a new job as a Build and System Engineer at Ludia , it’s a gaming company, it makes games for TV shows like “are you smarter than a fifth grader” or “the price is right”. The place is pretty chill, cool people , relaxed atmosphere , a good jump from the previous place where it was in emergency mode all the time.

On techie side, it’s pretty impressive, they do all the things that are right. Continuous integration, overnight builds, code coverage tests, unit tests, static analysis tests and code reviews. Basically the system there, any improvement is in the tinkering and optimizing not in creating the system. Oh and I am writing in Python, huge plus :) .

The thing that I do not like, the extreme open space concept, if you ever read Joel Spolsky’s Blog you know how much he hates Open Concept, and I agree. Open Concept reduces the quality of work for tech people. We are not salesmen, we do not need to talk to our coworkers all the time, but what we need is  a very comfy quiet environment to be able to concentrate on our work, and I really hate having to put headphones all the time to suppress the noise. I got Tinnitus and extended exposure to music hurts my ears. They are trying to do something about it. So waiting and hoping for the best .

Filed under: Career

Last time


This is the last timet hat I take an undocumented and uncommented  project that is custom from top to bottom.

Changing something silly requires a whole deal of reading, learning, trial and error without being able to google anything since everything is custom!

Dear programmers

  • Document your project
  • Comment your source code.
  • Use standard libraries.
  • Don’t reinvent the wheel by creating everything from scratch, specially if you do not document or comment

That’s it… oh yeah and forgot. Screw perl :) .

Tagged as: ,

Advertising myself


So I just started an adwords campain advertising myself for hire. Lets see if anything would come out of it.

Filed under: Career

Slow typing in chrome on Mac


Having trouble typing in the address bar in chrome on Mac? you must have the development branch(13).

Either switch to the stable version or clear your cache and browsing history and you’ll be fine.

Filed under: googled

Objective-C and IOS SDK


Jumping back to a language where you have to manage the memory yourself is something I haven’t done in like 7 years. It’s interesting to say the least; at first I got weirded out by obj-c’s syntax but got used to it. It’s not that bad. Will update this after I finish my first mock-app :) .

Filed under: obj-c