Saturday, December 20, 2014

Do people lose interest in programming as they age?

Some younger programmers expect that older programmers are slower, make more mistakes, and would rather be doing something else such as managing programmers. Are they right to think so?

Rod Johnson 
Written 14 Dec.

In my experience, ability and attitude is what differentiates programmers, not age. The IT industry suffers from rampant agism, which deserves to be called out. Somehow agism is considered more acceptable than sexism, when it's equally wrong.

Regarding whether people appear to lose interest in programming, I think it often depends on whether they had real interest in the first place. A lot of people become programmers with little passion, and many of them realize that they also lack real aptitude. Such people will jump at a chance to move into management: Where they will often also fail, but may have a better chance of getting away with it.

However, it is true that many passionate, competent programmers (like myself) move into business or management jobs as their career progresses. I can think of several reasons for this, most of them nothing to do with advancing age:

  • Necessity. Often someone emerges as a natural leader in a specific project, and it's the best thing for all concerned for that person to take on more and more management responsibility.
  • Opportunity. For example, when a programmer becomes an entrepreneur.
  • Concern about encountering age discrimination. While great programmers will always be employed, regardless of their age or the state of the economy, average and even good programmers can start to be frozen out as they get older, and they change track to avoid the problem.
  • Unwelcoming environment for older programmers. I have mid 40s friends who are starting to find working as Google engineers uncomfortable, despite being good at their jobs.
  • Desire for career variety. I personally could not imagine doing the same thing--even something awesome like programming--for my entire career, any more than I could imagine living my entire life in the same country or spending my entire career at the one company.
  • Desire to do a more people-centric job, at least part of the time. I loved (and still love) writing code, but also get a huge buzz out of working closely with people and talking about human, rather than technical, issues.
  • Discovery of new areas of passion. In my case, I discovered, initially to my great surprise, that I found many business problems intensely interesting, and enjoyed management.

Having said that, I don't think a passionate programmer ever loses the buzz programming can provide. It's addictive. It may just become a hobby rather than a day job.


Saturday, November 15, 2014

Prepopulate a `user` field in a Django admin form

It took me a while to find the solution, which I am posting here:
class ArticleAdmin(admin.ModelAdmin):

    form = ArticleAdminForm

    def get_changeform_initial_data(self, request):
        initial = super().get_changeform_initial_data(request)
        initial['submitted_by'] = request.user
        return initial

Tuesday, November 11, 2014

Inside of a Blog: Implementing a ReDiS COUNT command in Lua

Inside of a Blog: Implementing a ReDiS COUNT command in Lua: I have recently been implementing a master/slave redis cache for our enterprise application and at certain points during the development/test phases, have found it useful to be able to query redis for the # of keys that have been inserted that match a certain regex...

In short:

eval "return #redis.pcall('keys', '*')" 0

Thursday, October 23, 2014

Stop Baloo in KDE

This will make an entry Indexing-Enabled=false in $HOME/.kde/share/config/baloofilerc :
$ kwriteconfig --file baloofilerc --group 'Basic Settings' --key 'Indexing-Enabled' false

Upgrading Kubuntu/Ubuntu from 14.04 to 14.10

Ensure that you have the upgrade tool installed:
$ sudo apt install update-manager-core
Reading package lists... Done
Building dependency tree       
Reading state information... Done
update-manager-core is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run the upgrade tool. In my case it didn't work:
$ sudo do-release-upgrade
Checking for a new Ubuntu release
No new release found
Edit configuration to allow upgrades to non-LTS versions (change "lts" -> "normal"):
$ sudo nano /etc/update-manager/release-upgrades
Try again:
$ sudo do-release-upgrade
Checking for a new Ubuntu release
Get:1 Upgrade tool signature [198 B]
Get:2 Upgrade tool [1 147 kB]
Fetched 1 148 kB in 0s (0 B/s)
authenticate 'utopic.tar.gz' against 'utopic.tar.gz.gpg'
extracting 'utopic.tar.gz'
Don't forget to re-enable repositories which could have been disabled after the upgrade.

Monday, August 18, 2014

Exclude files and directories from Project View in IDEA

I have some files which are needed for the project, but they are service files which I have excluded from Git tracking  using .gitignore, but I also wanted them not to be shown in the file list. Here is how I did it.

1. Go to Settings -> File types -> Ignore files and folders.
2. Add *.iml;*.egg-info; to field "Ignore files and folders".

Tuesday, August 12, 2014

Learn Byobu in 10 minutes while listening to Mozart

From the Canyon Edge: Learn Byobu in 10 minutes while listening to Mozart: If you're interested in learning how to more effectively use your terminal as your  integrated devops environment , consider taking 10 minutes and watching this video while enjoying the finale of Mozart's Symphony No. 40, Allegro Assai (part of which is rumored to have inspired Beethoven's 5th).