Wednesday, May 14, 2008

Automating Processes by observing the Pattern

It's been said time and again that The REAL Programmer automates his job that they are Long Term Life Planners and have Attention to Detail

Here is just an example of ways in which one can automate processes.

I use Seagull Framework for developing faster, secure and feature rich Web based Applications Today, I had to update the Database to fill some blank columns in a table named sgl_permision

I first tried to edit them through the Seagull's Web based Admin Front end It was taking too long.
Then I tried to edit the same using phpMyAdmin setting the result to go to edit the next page instead of going back to the listing Page still it was very time consuming..

Then I decided to write SQL Queries by Observing the Pattern and using that to my rescue.

Here is the SQL Queries that I wrote to solve the Problem and am documenting so that it can be used in future.

/* To use a Manager */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to use ', TRIM(TRAILING 'mgr' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr'

/* To add a new entity */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to add a new ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_add' FROM `name`)), ' through ', TRIM(TRAILING 'mgr_cmd_add' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_add'

/* To view the listing of entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to view the listing of ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_list' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_list' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_list'

/* To insert a new entity */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to insert new ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_insert' FROM `name`)), ' through ', TRIM(TRAILING 'mgr_cmd_insert' FROM `name`), ' Manager in the Database')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_insert'

/* To edit an existing entity */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to edit an existing ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_edit' FROM `name`)), ' through ', TRIM(TRAILING 'mgr_cmd_edit' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_edit'

/* To update an existing entity in the database */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to update an existing ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_update' FROM `name`)), ' through ', TRIM(TRAILING 'mgr_cmd_update' FROM `name`), ' Manager in the Database')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_update'

/* To delete an entity */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to delete ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_delete' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_delete' FROM `name`), ' Manager from the Database')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_delete'

/* To archive an entity */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to archive ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_archive' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_archive' FROM `name`), ' Manager in the Database')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_archive'

/* To View an entity in detail */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to view ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_view' FROM `name`)), ' through ', TRIM(TRAILING 'mgr_cmd_view' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_view'

/* To create a duplicate of an entity */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to create a duplicate of ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_duplicate' FROM `name`)), ' through ', TRIM(TRAILING 'mgr_cmd_duplicate' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_duplicate'

/* To reorder entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to reorder ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_reorder' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_reorder' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_reorder'

/* To view an overview of an entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to view an overview of ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_overview' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_overview' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_overview'

/* To view a summary of an entity */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to view an summary of ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_summary' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_summary' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_summary'

/* To edit all entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to edit all ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_editAll' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_editAll' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_editAll'

/* To Update all entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to update all ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_updateAll' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_updateAll' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_updateAll'

/* Scan all Orphaned entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to scan all Orphaned ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_scanOrphaned' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_scanOrphaned' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_scanOrphaned'

/* Delete all Orphaned entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to delete all Orphaned ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_deleteOrphaned' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_deleteOrphaned' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_deleteOrphaned'

/* Scan to detect new Entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to scan and detect for new ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_scanNew' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_scanNew' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_scanNew'

/* To insert newly detected Entities */
UPDATE `sgl_permission`
SET `description` = CONCAT('Permission to insert new ', TRIM(LEADING 'admin' FROM TRIM(TRAILING 'mgr_cmd_insertNew' FROM `name`)), '(s) through ', TRIM(TRAILING 'mgr_cmd_insertNew' FROM `name`), ' Manager')
WHERE (`description` = '' OR `description` IS NULL)
AND `name` LIKE '%mgr\_cmd\_insertNew'

Wednesday, April 16, 2008

Google Toolbar Button for PHP Reference

Here is a Google Toolbar Custom Button to Search php.net for all LAMP Developers

Requirements:

1) Google Toolbar must be installed in your Browser . Google has Toolbar for Internet Explorer and Mozilla Firefox. There could be Toolbars for other Browsers also.
You can check and install Google Toolbar from http://toolbar.google.com

Click here to add the Button to your Google Toolbar
Its a single XML file and you can download the XML file and view its source.


Install
Download

Related Posts:
Google Toolbar Custom Button to Search your Web History through Google
Google Customized Search Engine
All Google Toolbar Buttons Created by me

Install or Download Google toolbar button to Search through a Google customized Search Engine by me specifically for the domain Web Development on LAMP Platform

Install or Download Google Toolbar Custom Button to search your Google Web History.

Sunday, January 6, 2008

DZone Links Aggregator for Web Development on LAMP and AJAX

Hey, I am not interested in your story, Subscribe me to the feed straightaway.

1) Irrelevant result for all links
I was subscribed to the DZone recent links to the feeds at http://dzone.com/links/feed/frontpage/rss.xml and my Google reader was getting flooded with new items every few minutes and I was noticing that I was getting items which aren't relevant to me.

2) Subscribe to the Tags by visiting individual pages for each tags and subscribe to them:
Hence I tried to find a way to subscribe to each tag that I am interested in php, javascript and subscribed to them. But the Problem here is that if two links are submitted for both of the tags in my list I get repetitive entries...

3) Yahoo Pipes to the rescue.
I created a new Pipe in Yahoo Pipes with the following components in it.

A) A Feed fetcher which fetches the following feeds:
http://dzone.com/links/feed/frontpage/php/rss.xml
http://dzone.com/links/feed/frontpage/javascript/rss.xml
http://dzone.com/links/feed/frontpage/javascript/rss.xml
http://dzone.com/links/feed/frontpage/ajax/rss.xml
http://dzone.com/links/feed/frontpage/web%202.0/rss.xml
http://dzone.com/links/feed/frontpage/web%20design/rss.xml
http://dzone.com/links/feed/frontpage/css-html/rss.xml

B) The output is fed into an Operator Unique which filters non unique items based on item.link

C) The output of B is fed into an Operator Sort which sorts the item by item.pubDate on Descending Order.

The out put of the C is what you get in the feed at

There are other similar attempts and a list of that can be found at http://pipes.yahoo.com/pipes/search?q=dzone

Please write in the Comments if you feel any other tags from DZone should be included here. Or any other thought to make it more useful.