Last month @ SANIsoft blog August 1, 2011

  • [CakePHP] A slightly modified QRcode Helper
    I was working on a project where I needed a helper to create QRcode by various methods. After searching I found a good CakePHP QRcode Helper by Max Dรถrfler which helped me a lot but few functions were still missing in that, like generating QRcode for Wifi network. The allowed contents are: free text contacts […]
  • How to track SQL errors in CakePHP on production site
    In a CakePHP application, if there is any SQL error and debug level is set to greater than 0, then the complete error message from the database is displayed on the screen, but if the debug is set to 0 it just gives something like “unable to add” or worse a blank page. This can […]
  • [CakePHP] Sending emails more robustly
    Sending emails in CakePHP using the Email component is a straight forward job. You will find ample documentation about it in the cakephp cookbook. It is a simple and easy to use component. However, one common mistake most of us make is writing the same code to configure the email component at numerous places throughout […]
  • [How To] Implement Facebook Like button on web page
    This post is more a note to myself than a blog post. There are two Like button implementations: XFBML and Iframe. The XFBML version is more versatile, but requires use of the JavaScript SDK We can use one of the following codes to display a Facebook Like button on our site. Iframe : PLAIN TEXT […]
  • [CakePHP] Pagination options persistence
    Editing a record and redirecting to a paginated list is a very common workflow pattern in CakePHP. However there is a small problem with this pattern if used with default pagination. after editing the user is always returned to to the first page with the default order and default limit. This is not very user […]

zarinasani.org goes online

Today we would be celebrating my mom’s 75th birthday.

I knew my mother, Zarina Sani, for just 15 years. I knew that she was a writer and a poetess I also realized that that she was fairly good because she had been awarded by the State governments of Maharashtra and Bihar for her work and that her writings were regularly published in several magazine but, honestly, all this was rather irrelevant for me, she was above all for me my *mother*

The weight of grieving for her death buried her literary genius for me, time passed, years passed, there was this small nagging voice which did keep reminding me that I have to know her better, let the world know about her works but I never did anything about it. 29 years passed since her death… This year Swati made me promise we will do something about Ammi’s works. Around mid March we discovered that someone had taken pains to create a wikipedia page about her. This was the final impetus or shaming that we needed.

We chalked out a plan for a website and decided that the phase I of the website will have all of published poems transcribed into Devnagri with a scan of the original poem as it appeared in the magazine. The content creation was largely Swati’s effort… getting people to devote time to read out to her the poems as they were in Urdu, writing them in Devnagri and then typing the whole thing. Yes, neither of us knows the Urdu script ๐Ÿ™

As more and more poems got transcribed I got to know my mother in a very different way. I never knew how much her children figured in her writings… I got to know how strong willed she could be… I got to know how her heart bled for the mothers of the soldiers fighting on the border (and she did send one of her son to be a soldier) I got to know her as a gentle feminist who could be patient and still get her views heard…

As of today the website http://zarinasani.org has 56 of her published poems. Future plans include updating all these poems with meanings of the difficult to understand Urdu words. Putting her short stories online and then all the books that she wrote.

Subscribe to the RSS feed for zarinasani.org to keep updated with the latest publications.

Last month @ SANIsoft blog June 1, 2011

  • [CakePHP] Organizing themes in sub-folders
    CakePHP offers a wonderful built-in theming solution. However, the only shortfall is that all themes are to be kept in a single folder and there is no direct way to organize them in sub-folders. This post assumes that you are familiar with CakePHP Theming concepts. If not, then head on to the book before reading […]
  • Geo-distance search in Sphinx
    A common scenario in many search applications is geo-distance based searches. Geo-distance search means finding geographic locations nearby to the specified point on earth. Geo distance search is a very common feature in applications involving set of entities each having a specific geographic coordinate associated with it. Some examples are real estate portals, property listings, […]

17th Anniversary: Tadoba trails…

Yendbodi Waterhole tigress with cubs
Yendbodi Waterhole tigress with cubs

A very hectic work routine at the office, Aasim on a Himalyan trek – it looked like we were going to spend our 17th wedding anniversary doing mostly nothing. However on the flip side was an invitation from Kalyan who is shooting for National Geographic in the jungles of Tadoba. To hell with everything we said and decided to spend our anniversary in the blistering summer heat doing what we love most – photographing the wild with friends. Once decided everything else was a breeze thanks to all the meticulous planning by Swati and assurances by Kallu about taking care of logistics at Tadoba. Continue reading, 12 more pictures ๐Ÿ™‚

Last month @ SANIsoft blog May 1, 2011

  • [How To] Create a component in Joomla โ€“ Part II
    In my last blog post I wrote about How To Create a component in Joomla. The output text was hardcoded into the view. This doesn’t follow the MVC pattern exactly because the view is intended to only display the data, and not contain it. In this second part of the tutorial we will demonstrate how […]
  • [CakePHP] Back port Helper aliasing to CakePHP 1.2 and 1.3
    One of the enticing new features of CakePHP 2 is Aliasing. What do you do if you need aliasing in CakePHP 1.2 or 1.3? Here is a guide to back port aliasing for helpers. For this guide we will overwrite HTML helper’s link method to always avoid escaping of the title. To start with you […]
  • [CakePHP] Saving HABTM data with tables in different databases
    One of the powerful features of CakePHP is the model relationships. It handles relationships seamlessly and saves/finds data of related models on its own. The most complex among the relationship is the Has And Belongs To Many, often shortened as HABTM Recently I faced a problem in saving data for a HABTM model. The problem […]

A different bee-eater – Southern Carmine

Southern Carmine Bee-eater (Merops nubicoides) - In flight
Southern Carmine Bee-eater (Merops nubicoides) - In flight

Show me a bird photographer who has not been fascinated by Bee-eaters and I will point out a liar ๐Ÿ™‚

The sheer grace in flight and resplendent colors coupled with their boldness and tolerance to camera makes them a photographers delight. A couple more pictures

River Lapwing a first record at Bor Lake

River Lapwing in flight
River Lapwing in flight - Notice the wing spur

This is the first record of River Lapwing so close to Nagpur continue reading for another photograph, more information and some of the excitement

Photographing birds in flight – A mini HowTo

Indian eagle owl - Adult in flight
Indian eagle owl - Adult in flight

Capturing birds in flight is a vexing subject for many newbie bird photographers. Well instead of just randomly trying to get a shot if you think and plan consciously the subject is not at all difficult to master and the results are indeed very satisfying. Am writing down here a few points which can get you started in the right direction – these are by no means the only things you must do, just somethings which have worked out right for me Continue reading for the tips and several example pictures

Last month @ SANIsoft blog April 1, 2011

  • Announcing the release of Sphinx Search book
    Many of you must be following my posts on Sphinx Search Engine over the past one year or so. Well, today I am happy to announce the release of my book Sphinx Search – Beginner’s Guide published by Packt Publishing. The book was released earlier this month, that is, March 2011. As the name suggests, […]
  • [How To] Create a component in Joomla
    Its really very easy to create a component for Joomla but the question often gets asked again and again. Lets see a simple example to create a component in joomla, which will output a simple text “Hello World”. For our basic component, we only require four files. First start with creating a com_hello folder in […]
  • Introduction to using Zend_DB for database abstraction
    Welcome back! Today we are going to look into database abstraction layer of one of the most popular MVC frameworks out there. Yes, you are right the framework is Zend framework and the component we will look at is Zend_DB. While Zend_DB is an important part of the framework, one of the best parts of […]
  • Extended query syntax in Sphinx search engine
    We have been discussing sphinx for the past several months and have seen how to install it, how to perform a full-text search and how to update the indexes. Being a full-text search engine, Sphinx supports different matching modes to cater variety of searching needs. The default matching mode used (if not set explicitly) is […]

Last month @ SANIsoft blog March 1, 2011

  • [CakePHP] How to show โ€˜allโ€™ records options while still using paginate
    Admittedly this is a marginal case but recently a client wanted to show “All” records along with a list of ‘per page’ options for paginated records, for example, something like ‘2, 5, 10, 25, 50, 100, All’ or you need to use ‘field sort’ feature of pagination while displaying all records. So, following is a […]
  • [How to] Using wp_redirect() without getting errors
    Recently I worked on a wordpress plugin where I want to redirect users to the listing page after the data gets successfully saved into the database table. To redirect users to a different page generally we use wp_redirect() function available in wordpress. I tried using the same wp_redirect() function using following code. PLAIN TEXT PHP: […]
  • Overview of the new SPL features in PHP 5.3
    Today we take a look at another powerful yet still neglected feature that’s part of the PHP 5.3’s stable. It is the latest offerings in the SPL (Standard PHP Library). While SPL has been around since a long time with PHP 5.3, some useful features were introduced. While they might not be the sexiest thing […]
  • [HowTo] Page expire on browser back/reload in CakePHP
    You might have seen this on many banking sites that the navigation has to be done only via the links and buttons provided on the webpage and if a user clicks the browser’s back or reload button, it shows a page expired error. Let’s see how it can be done in CakePHP. We will set […]