Emacs + php-mode in windows

19 11 2009
My development machine is having Ubuntu and I love to use Emacs than any other editor. Recently I need to work on windows.  I wrote a blog post about how to make Linux like environment in windows. I wanted to use Emacs in windows. To install Emacs in windows I followed the instructions as it is from http://www.claremontmckenna.edu/math/alee/emacs/emacs.html

I want to work on PHP, so I need a php-mode for Emacs, otherwise it will be very difficult. I tried a lot to install php-mode in windows as specified at https://prajwalaa.wordpress.com/2009/03/19/using-emacs-to-edit-php-files/ but I was getting “error: `c-lang-defconst’ must be used in a file” error message. Finally after searching for long time I figured out how to enable php-mode.

I downloaded php-mode and extracted and placed in my C:\emacs directory. And added following lines in my C:\emacs\.emacs.d\init.el file

(add-to-list 'load-path "C:\emacs\php-mode")
;;(load 'php-mode)
(autoload 'php-mode "php-mode" "Major mode for editing php code." t)
(defun clean-php-mode ()
(setq c-basic-offset 2) ; 2 tabs indenting
(setq indent-tabs-mode nil)
(setq fill-column 78)
(c-set-offset 'case-label '+)
(c-set-offset 'arglist-close 'c-lineup-arglist-operators))
(c-set-offset 'arglist-intro '+) ; for FAPI arrays and DBTNG
(c-set-offset 'arglist-cont-nonempty 'c-lineup-math) ; for DBTNG fields and values
(add-to-list 'auto-mode-alist '("\\.php$" . php-mode))
(add-to-list 'auto-mode-alist '("\\.inc$" . php-mode))

After adding above lines and save. I restarted emacs. Then Php-mode is working fine. Hope this will help others to install Emacs and enable php-mode.


Linux like development environment in Windows

6 11 2009

I am a fan of Linux based OS. I love Ubuntu a lot. In fact I started my programming in Redhat. So from the beginning I am comfortable using Linux than Windows. The only reason I use windows is to check IE browser compatability.

Recently I attended Drupal Sprint India 2009. I want to attend the sprint, so I need one Laptop to go there and work. My company provided me Laptop with Windows. So I need to work on drupal core issues in windows. Hmm it looks very hard for me to work in Windows. I want to have following things in my Windows machine.

  1. Cygwin to get the linux like terminal, so that I can see paths with forward slash.
  2. Xampp Lite to get Apache, Mysql, PHP.
  3. cvs, I am going to work on drupal core so I need it
  4. I should able to create patches, apply patches.
  5. I want to use Drupal Drush module, which provides some command line utilities
  6. Emacs. I am more comfortable with this editor. It is very hard to work with other editors once we are comfortable with Emacs

First I installed the things I know like Cygwin, Xampp Lite.

Installing Emacs

I Installed Emacs by following instructions at http://www.claremontmckenna.edu/math/ALee/emacs/emacs.html .

Installing UnxUtils

To be able create patches and apply patches I installed unxutils from http://sourceforge.net/projects/unxutils/ . With this unxutils I got most of the Linux commands. The commands like ls, mkdir, wget, diff, patch, tar, zip etc… are working. I am very happy after installing unixutils.
Installing UnxUtils is nothing but setting the path variable in Windows. I extracted the unixutils directory in C folder and Add C:\unixutils\usr\local\wbin path to the Path variable. In Windows XP we can set the Path variable by going to control panel > System > Advanced > Environment Variables. Select the Path and click Edit and add your path to the existing path.

Installing Drush

There is a documentation about installing Drush in Windows http://drupal.org/node/594744 . This document explain Drush installation by using GnuWin32. But I already installed UnxUtils so I don’t require GnuWin32. So first 3 steps in the http://drupal.org/node/594744 can be ignored. I extracted drush in C folder. As specified in the step 4 of http://drupal.org/node/594744 I edited drush.bat with the path of php.exe and path of drush.php. I added following statement in drush.bat file
@E:\xampplite\php\php.exe C:\drush\drush.php %1 %2 %3 %4 %5 %6 %7 %8 %9

Because I used xampplite to install php, php is there at path E:\xampplite\php\php.exe.Now I executed drush command from the windows terminal by specifying -r and -l attributes.
After that I got an idea why can’t I keep this php, drush paths also in path so that I can directly drush.bat file as it is. Yes I added php, drush, mysql paths in Windows Path variable. The everything works file.

Installing cvs

I downloaded TortoiseCVS from http://www.tortoisecvs.org/download.shtml. This is a exe file, I can simple double click and execute.

That’s it, Now I installed all the things necessary to work on drupal with a linux like environment. Now I am happy to work on windows.

Interesting css3 selectors nth-child, :target

5 11 2009

When I am reading the css documentation in W3c site. I met with some of the interesting selectors like nth-child and :target.

With the nth-child selector we can add different css for the even and odd elements. For example in a table we want to display different background color for the alternate rows. This we can do simply with the css. I used to write in the code to add odd class for the odd row, even class for even row using if conditions. This is really cool. We can see example at http://www.w3.org/Style/Examples/007/evenodd.

With the :target selector we can create a tabs view without using any javascript code. We can see an example at http://www.w3.org/Style/Examples/007/target

Unfortunately these selectors does not work with IE.  I was very happy by seeing these selectors but it IE disappointed me a lot.  Just because of IE  I need to write code to add different classes for the even and odd rows.  I tested with IE8 also but no luck, might need to wait till next release of IE. Just because of IE I can’t use these selectors.


Drupal Sprint India 2009

4 11 2009

I am a drupal developer, my drupal profile can be seen at http://drupal.org/user/43559. Drupal Sprint India 2009 event details can be found at location http://drupalindia2009.plug.org.in/namaste. From my organization 3 people attended this event. Asif (Project Manager), Chakrapani (Application Developer) and myself (Application Developer). I and Chakrapani attended this event to participate in the Sprint. Asif Participated in Talks and Workshops.

It is a nice experience to attend this event. Met cool people like Addison Berry, and had chance to share my views about drupal testing and documentation. Learned new things from her. It is really nice experience. With this event I started contributing to drupal core, which I love to do.

Through this sprint some of the drupal 6 modules are ported to drupal 7 and some new translations for the languages are added. Some of the patches are added.

Day 1

Took registration and attended the welcome session. After that went to participate in the sprint. This spirnt is headed by Addison Berry, Lead of drupal documentation project.

I wanted to work on drupal7 core issues, to work on core issues I read the documentation about how to set up the development environment, Review the patches etc.. before attending the sprint itself. I checked how people work on drupal7 core issues by joining the #drupal IRC channel.

For a practice I did some of the reviews for the drupal7 core issues, and added one patch for the admin_menu module which is committed to all versions of admin_menu module.

I tried to work on the drupal7 issues, but I noticed that some of the drush commands are not working well with drupal7 head. So decided to fix these issues of drush module and provide patch to drush module.

In the lunch time I introduced myself with Addison Berry and had good talk about the next plans of drupal documentation, drupal 7 release plan. Discussed about Drupal7 UI changes. Also Talked about plans about using bazaar for drupal and migration plans from cvs to bazaar. It is really a nice discussion. Addison Berry explained the complexities involved in implementing pathauto module for the documentation.

After lunch I talked with Addison berry about the samepage(http://samepage.in) product which I worked. Worked on drush module, Discussed with other guy about the best practices of themeing and drupal project development issues.


Morning I tried to finish my drush module task that I started yesterday, Finally it is a very small change added patch to the drush module.

After that had discussion with Addision Berry about how to properly maintain the our module code in cvs. Asked her about how multiple people work on same project when they are using cck, views. How to deploy code properly using update hooks. And also discussed about my views on drupal7 testing issues. She suggested me to contact other person who can give more input on testing. Took feedback from Addison Berry about my drupal module contributions, php contributions and jquery contributions.

After lunch I worked on porting my accordion_blocks module to drupal7, but noticied that there is a lot of change related to javascript api. Had talks with other guys who attended the sprint.

Finally came out from the event with good experiences and learnings.