Blog upgrade and clean up
Apr/130
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.
Enlightenment 17
Feb/130
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…
failure.
Update: Programmer’s bill of rights
Sep/120
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.
Flash crashing/accelerating/skipping on google chrome?
Aug/120
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.
Programmer’s bill of rights
Aug/1211
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
Jul/121
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).
LC_CTYPE Errors on some remote servers
Feb/122
Getting an error every time you hit the tab key on a some remote server (ssh):
1 | 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
1 | /etc/ssh/ssh_config |
Find the line that looks like this:
1 | 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
Feb/120
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.
Auto Deployment vs Manual Deployment
Feb/120
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?
Getting hit by a bus
Nov/111
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.
</rant>
Guru, Ninja, Pirate and Rockstar…
Nov/110
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.
Seniority
Nov/112
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.
…
New Job
Oct/111
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 .
Last time
Aug/110
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
.
Advertising myself
Aug/110
So I just started an adwords campain advertising myself for hire. Lets see if anything would come out of it.
Slow typing in chrome on Mac
Aug/110
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.
Objective-C and IOS SDK
Aug/110
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
.
Rails dev Environment
Jun/117
So been as mentioned before, I have been playing around with rails and I love it.
Also I have been checking different development environments for it.
I started with TextMate then RubyMine and now checking Vim.
TextMate is great, but for the price, I would prefer getting RubyMine which is just a bit more expensive, and I would get a full fledged IDE.
I know a lot of people hate using IDE, but RubyMine is not that intrusive it just uses the current ruby environment that you have (unlike when you develop for JAVA and you have to duplicate all the parameters and configurations).
I added rvm with ruby 1.9.2 and rails 3.0.8 and RubyMine detected the environment without a problem at all.
But now my trial version expired, and so I am checking out vim with some plugins to see if I can get enough functionality to stay free and open source or just pay my dues and continue using RubyMine.
So till now here are the list of plugins I got for vim:
- Rails vim
- SnipMate (TextMate Bundles Copycat)
- NerdTree
- rubycomplete
- supertab
- ragtag
Things I read:
- Map Keys
- Consistent NerdTree
- Using Tabs
- Working with multiple files
- From TextMate to Vim (rails)
- Ruby Autocomplete
- Using Rails Vim
- More Snippets
gonna give them a whirl for sometime and see what to expect. Do I expect it would replace RubyMine? nope. Things like debugging on fly, good autocompletion (already noticed it’s not the same), managing the environments easily etc are just a bit more work with the vim combo, but it’s doable if I ever found myself in a place where I can’t use RubyMine.
update: Just switched to MacVim instead of normal Vim. Much better with some ZenBurn
update: Added ragtag and snippets