LC_CTYPE Errors on some remote servers
Feb/120
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/110
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
Rails 3
Jun/112
One word WOW!
last 2 weeks been learning ruby and ruby on rails and all I can say is WOW. Total different level of what I am used to. I remember long ago doing any web application with php like a blog takes forever! now I can whip out a blog with a few hours.
Who ever is still doing web work without a proper MVC is losing big time.
Oh and who ever is doing web programming with Java… sux to be you!
Woah Nerve wrecking interview
May/110
I had to code in front of three people on a big screen. I never wrote code in front of anyone before … 3 people? on a big screen? all seniors? gahh
I even forgot how to initialise a list! that’s how nervous I was.
Never did this kinda interview before, usually they give me a computer give me a task and a time limit and that’s it.
I guess they do that because they are into medical systems, they can’t allow any people to go in. Chance of succeeding… LOW.
Change of job
May/110
So I no longer work at mate1, best decision I made this year. I had no growth potential in there.
So basically I am a free agent now, until I find the next job, which might be pretty soon…
100/0 -> 80/20
Jan/110
I used to be a 100/0 kinda guy an all or nothing kinda guy.But this only gives you misery, stress, and too much work.
Now I am 80/20 kinda guy. if you don’t know the 80/20 rule let me explain: 80% of the job takes 20% of the time, the remaining 20% takes 80% of the time.
But that’s the thing, the last 20% people generally don’t notice them, specially in my kinda work. Does it work? yes. good! Oh you made it work in 9 seconds instead of 11?cool…
Even that you probably took 5 times more to accomplish those 2 seconds reduction, most people would not care. For them you just took 5 times longer than the guy next to you to accomplish something.
100 is overrated
.