Current Interests

Right now I am working with two great PHP frameworks for two different application: Zend Framework and Orchid. Although I'm a huge fan of CodeIgniter, I'm finding ZF to be robust and really solid for becoming the #1 choice of enterprises very soon.

In addition to them, I am also having a good look on Dojo - as it became Zend Framework's official JavaScript toolkit. I have to agree that there a few gems in it which I like, but I'm yet to discover its full potential. In the meantime, jQuery is helping me a lot.

Latest reading

powered by LibraryThing
 
Sep
03

Increase productivity with Todoist

Comments   Trackback 
1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 4.83 out of 5)
Loading ... Loading ...

If you’re like me, you’d want to keep your ever busy life a bit organized. Being a techie, you’d first find a tool that will facilitate you in doing so. Most of us are fan of a number of such tools: RememberTheMilk, BackPack, Ta-Da List, 30boxes, Microsoft OneNote, Stickies etc. I’ve also tried all of them and a few others, stuck with them for a few days, but later lost the interest. This happened until one of colleagues, Anis, suggested me to have a look on Todoist.

At first sight, I thought it as “okay…another web 2.0 brainchild”. It seemed too simple to handle my complicated needs and I did not have high ambition with it. But as days passed, I was discovering new new features of it and gradually it became a part of my life. I’m a big fan of Getting Things Done (GTD) approach and Todoist became my dropbox for all the tasks in my mind.

If you ask me what’s so special about Todoist, I’d mention the following few features:

Simplicity

Todoist is damn simple and hosts one of the most powerful yet sleek web 2.0 interface on the web. It allows you to have an unlimited nested category/project list and under each of them, unlimited nested task list. This is something that most other tools miss. For me, it’s a super MUST feature.

more…

Mar
06

jQuery Essentials - Round 3

Comments   Trackback 
1 Star2 Stars3 Stars4 Stars5 Stars (8 votes, average: 3.88 out of 5)
Loading ... Loading ...

I still receive a good number of hits to my first (10 jQuery Essentials) and second (jQuery Essentials - Round 2) collection of jQuery plugins. So, I have been thinking about making the next post in the series for quite some time. Time has always been the killer of ideas, along with the fact that not too many plugins found way to my list of favorites.

Now that I have some fresh essentials, this post was inevitable.

Should there be a 4th installment in the "jQuery Essentials" series?

View Results

Loading ... Loading ...

18. jQuery UI

ui

This is the official big boss with a number of core interactions (drag, dropping, sorting, selecting, resizing) and few great widgets (accordions, date pickers, dialogs, sliders, tabs) built on top of those. Although its a great collection, I somehow haven’t been able to use it in any real projects yet. It seems small plugins always get a favor than big collections :)

19. Facebox

facebox

This is a cute, little plugin that shows Facebook style dialog boxes using jQuery. It supports nearly all the possible contents you might want to show in a dialog box: image, div, remote pages. It has both automatic behavior and manual invoking. Simple and fun to me.

more…

Mar
06

Cross-Domain AJAX calls using PHP

Comments   Trackback 
1 Star2 Stars3 Stars4 Stars5 Stars (7 votes, average: 3.86 out of 5)
Loading ... Loading ...

AJAX has become the core component of many web applications around us. And its fairly easy to handle AJAX now a days, with the help of various javascript libraries (ex: jQuery, Prototype, Mootools, YUI, etc). But there is one security issue that web browsers impose in doing AJAX calls - they don’t let you do AJAX calls in web servers different than yours. That means, if your script is in www.mydomain.com and you’re trying to do AJAX call to www.anotherdomain.com/get.php, then the browser will through error like: “Error: uncaught exception: Permission denied to call method XMLHttpRequest.open”.

Now, there are a number of solutions to this problem. Instead of explaining them all to you, lemme provide you the simplest one: using a PHP transport file. If you already know the thing and just need the script, download from here.

Others, let’s see an example implementation first.

Example use

   1: xmlHttp.onreadystatechange=function()
   2: {
   3:     if(xmlHttp.readyState==4)
   4:     {
   5:         alert(xmlHttp.responseText);
   6:     }
   7: }
   8:  
   9: xmlHttp.open("GET", 'http://myserver.com/transport.php?action=' + 
  10:                     urlencode('different-server.com/return_call.php') +
  11:                     '&method=get&data1=101&data2=pass', true );
  12:  
  13: xmlHttp.send(null);

Now, lets see how it works:

  1. The script makes an AJAX call to the myserver.com/transport.php with a few parameters:
    • action = the target URL you need to fetch, from a different domain
    • method = the HTTP method (post/get)
    • data1, data2 = sample parameters for using as either query-string or POST fields
  2. When the request is received by transport.php, it uses cURL to make a call to the page mentioned in action.
  3. Based on the method, it either makes a GET request or a POST request. In both cases, it sends the extra parameters that are sent.
  4. After the response is received, transport.php echoes it. So, you have what you need!

Download

transport.php
Cross-Domain AJAX call transporter.
Downloaded: 2074 times

Comments and suggestions are most welcomed :)

Nov
09

Launch of Right Brain Solution Ltd.’s website!

Comments   Trackback 
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

I would like to let you all know that we’ve just launched the new website of Right Brain Solution Ltd.. I would like to personally thank all our friends, families, associates, and well-wishers - for all their support and patience.

Please have a look at the site and let us know your views, comments, ideas, criticism - anything that you would like to share with us.

Thank you all!