Updates, News and New Implementations

Even though I have been quiet for a while, things are a lot busy.

I have been spending a lot of time on preparing myself to get a PMI certication and become a PMP. I had classes with the PMBOK while at College, I participated on several training courses after that, I have read many books… and even then, I don’t feel ready to apply for the certification.

It is part of my daily tasks, but what makes me believe I am not ready are the subtleties of things and some of the questions I remember from College, when studying that and thinking about applying for the certification.

On the IT field, I have been playing more with org-mode and I am almost ready with making it “talk” to my Google Calendar. Here are some hints for that:

http://emacsworld.blogspot.com/2011/05/integrating-emacs-org-mode-and-google.html

http://thread.gmane.org/gmane.emacs.help/80824

http://code.google.com/p/googlecl/

And, I am also happy with finally being able to enable the transparent background on Emacs. I have added this code to my .emacs (actually, I use org-mode to manage it as well, so the process was a bit different, but the idea is the same):

(defun djcb-opacity-modify (&optional dec)
  "modify the transparency of the emacs frame; if DEC is t, decrease the transparency, otherwise increase it in 1%-steps"
  (let* ((alpha-or-nil (frame-parameter nil 'alpha)) ; nil before setting           (oldalpha (if alpha-or-nil alpha-or-nil 100))
          (newalpha (if dec (- oldalpha 1) (+ oldalpha 1))))
    (when (and (>= newalpha frame-alpha-lower-limit) (<= newalpha 100))
      (modify-frame-parameters nil (list (cons 'alpha newalpha))))))

 ;; C-8 will increase opacity (== decrease transparency)  ;; C-9 will decrease opacity (== increase transparency  ;; C-0 will returns the state to normal (global-set-key (kbd "C-8") '(lambda()(interactive)(djcb-opacity-modify)))
(global-set-key (kbd "C-9") '(lambda()(interactive)(djcb-opacity-modify t)))
(global-set-key (kbd "C-0") '(lambda()(interactive)
                               (modify-frame-parameters nil `((alpha . 100)))))

The source for that is available at http://emacs-fu.blogspot.com/2009/02/transparent-emacs.html

The original code had the steps move in steps of 10%. I have changed the code a little to make it move in 1% steps.

And, finally, this weekend it was Valentine’s Day here in Brazil. It was really cold – with some ice on the glass ceiling from my neighbor – what contributed a lot to the romance and for my wife and I spending the time together.

Every time I am able to spend some time like this, I stop and think about how many times I am doing that and if it is not something that I need to improve. It is hard to manage all the work tasks, studies, and still get some free time to spend without worrying, but I am sure that my Number One priority should be my family.

I think that these updates were not enough for the time I didn’t post, but I am trying. This blog already has more – relevant – posts than anything I was able to keep before (maybe Multiply had more posts, but it was a different time in my life).

Customizing your Emacs Colors

The best thing besides using the best text editor – that is really the one you adapts better, in my case it is Emacs – is being able to make it look like how you want it to look.

The first step is always customizing colors in a manner that doesn’t get you tired after some hours of work as well as in a manner that integrates it with your desktop environment.

Here are two suggestions of websites where you can take a look at different profiles and customize colors in Emacs:

GNU Emacs Color Theme Test – Perl

Emacs color-theme creator

The second link – color-theme creator – is the best one to create unique themes.

Updates on Personal Development Environment

IDEs

I have tested several IDEs lately and in the end I came back to Emacs.

Since last week I have also started to fix my Emacs customization. I have moved to using org-mode to manage my startup files and started the process based on the configuration done by Kieran Healy on his Emacs Starter Kit for the Social Sciences.

I chose this starter-kit instead of the other options – they are listed on Kieran’s code – because it already added some scientific packages that I am interested on.

I am still fixing my customizations to different org files and adding comments to them. It is amazing how messy they were before and I could even find some duplicate / conflicting definitions.

Doing some review from time to time should be a lot easier now. I hope that maintaining the code should also be easier.

There are some drawbacks, of course, but I prefer addressing them on a case by case basis. One of them is not being able to use the customize tool from Emacs and adding the customizations to my .org files. So, I use the customize tool, test and when things are working as I want them, I move the file to the correct .org file.

Javascript Library

I have also changed from using jQuery to using ExtJS. ExtJS provides me with faster deployment rate and is also more aimed towards the type of application that I am writing.

It is not an easy change, as I was used to work with jQuery and had a lot of logic already implemented. I’m running both in parallel while I convert to using ExtJS alone.

One of the main reasons for the change was that with jQuery I kept glueing code from different plugins and that had different “quality standards”. Using ExtJS I can also add different plugins, but the base library already provides a lot of what I need. Actually, I did not add any external plugin yet (only for testing purposes).

All in all, it is being a good change.

Documentation

I have also switched the method I use to document the systems I work on.

There are two different types of documentation: code and system documentation. For code documentation, I am still using comments on my code along with some complimentary design notes.

For system documentation (user manual, system API, reference, etc.) I am using org-mode.

Org-mode with org-babel allows me to add diagrams, formulas and other external images that help me on describing the processes and the inner workings of the systems.

I have moved from first writing code to make what I need work and then documenting as I go to first documenting the exact needs, define the API, draft sketches, etc. and only then writing code.

Coding speed has increased, with a better quality documentation. The whole process, though, takes a bit longer but is more pleasant to the end user as things are better thought and the interface is more consistent.