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 […]

Kindle 3 keyboard shortcuts that I frequently use and some more

This is more of note to self but at the same time I feel it will benefit someone some day

  • alt + shift + G takes a screenshot which gets stored in the document folder as a png file
  • alt + G will refresh the screen, this is useful to remove the ghosting which may at times occur
  • shift + alt + m on home screen will start the built in mine sweeper game and if you are into games on kindle take a look here
  • alt + top row of letters will type out numbers
  • Slide and hold the power switch for long enough and it turns off your kindle – further investigations reveal that this is 7 seconds to turn off and holding it for 15 seconds will reset it
  • alt + B while reading adds and removes bookmarks
  • alt + space turns music on and off (mp3 should be uploaded in Kindle’s ‘music’ folder
  • shift + Sym turns speech on and off Space pauses it
  • Skip chapters in a book by using right and left on the nav controller
  • I discovered that pressing G when in Minesweeper starts GoMoku

The are some things which I want to try but have not as yet –

  • Use the Image Viewer in Kindle
  • Try using Calibre to remove DRM from the books I have purchased
  • Try out the  alternate Kindle OS Duokan. Works without jail breaking and claims better PDF rendering

Last month @ SANIsoft blog February 1, 2011

  • [How to] Optgroups in select for Drupal CCK module
    Many times we have taxonomy terms with parent/child relation with requirement that only the child taxonomy should be selected while adding a new content. One such case is Category/Albums in a photo gallery where one must select an album while adding a photo but category plays an important role in grouping the albums. Most of […]
  • [CakePHP] Custom Configuration variables
    Many a times we need to define variables in such a manner that we can use them throughout our application. Some people wrongly call them Global Variables but I guess the right term would be Configuration Settings or Configuration Variables Some examples for such settings are: “From” to be used while sending emails Access keys […]
  • [CakePHP] Configure cache parameters for core and model
    Happy New Year to everyone and welcome to my first post of the year. Many times you need to have a look at total number of seconds taken by SQL queries in a CakePHP application. It’s cumbersome to scroll a long list of SQL queries every time and if the application has a lot of […]
  • [WordPress Plugin] iPad Swipe
    Most WordPress themes look just fine when you view them in an iPad but what every iPad user gets very soon used is swiping across to turn pages. I thought it would be a good addition for any WordPress blog to be able to provide this functionality via a plugin and a good programming exercise […]
  • Drupal 7 Release Party, Nagpur, India
    It was the 8th of January 2010, the big day had arrived. It was Drupal 7 Release Party – Nagpur edition. This was certainly one of the most awaited event of the new year. Drupal 7 had released a couple of days back and just like developers all over the world, Drupal community in Nagpur […]
  • Introduction to creating desktop applications with PHP and Titanium
    Welcome back! and a very Happy New Year. Yes, you saw it right. The post is about creating desktop applications with the help of PHP. And No, we are not using PHP-GTK. You can now create desktop applications without learning a completely new programming language! That is with the help of a free and open source […]
    Now this was a post which generated a record number of hits on the site