Browser automatically sorting json object based on key problem..

Json data got sorted on browser by its key

This a problem where the browser decides to sort the json you provided its own way rather than the one you sorted.

And it happens especially if you have key value pair in json payload you are passing.

So the scenario would be, there JSON data you are sending from the backend is sorted and you displayed it on front end with some javascript, but the result you are showing is not sorted with the original sorting order you set.

Solution

I observed that some browsers, at least Chrome, is doing the sorting in the situation that is discussed above.

For the fix: make the key of the json values you are passing string format rather than number

like

in place of using:
{1:"one", 4:"four"}

use

{"1":"one", "4":"four"}

How to automate http authentication url from php

if you have to download a file from a web address that would trigger a username and password window (http authentication), then here is the trick

$downloaded_content = file_get_contents("http[s]://yourusername:yourpassword@thefiledownloadurl");
file_put_contents('/tmp/tempholder.csv', $downloaded_content);

The line of interest would be the first one with file_get_contents.
Once you get the content, you can perform a lot of things, either use the content as it is, or copy it to file using file object or just simply transfer the content to other file as the example depicts..

mod_rewrite not working on mac. Enabling .htaccess problem on mac

As a PHPer you would know what the mod_rewrite is and what the .htaccess file is right? if not a bit of googling would shower with a bunch of tutorials.
Now to the point:)
Being on mac do the following to enable mod_rewrite
1. Check if the module is loaded.
Navigate to apache2 folder

cd /etc/apache2

and open the conf file

sudo vi httpd.conf

Now, search for rewrite and you will and to something like this one

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

if it is commented out, that is if there is a #infront of it, uncomment it and exit
2. Being in the current file, search for AllowOverride and replace the “None” by “All”

3. Got to the directory /etc/apache2/users and open the conf file of your username. Like if your username is gullele, there would be file gullele.conf. Bing inside the file, search for AllowOverride and give it the value of “All”

now restart your server

sudo apachectl restart

Happy rewriting 🙂

Installing from dmg on mac from command line

you don’t have to do this from command line as there is slick User Interface to do it. Actually, the moment you download your dmg [disk image] and double click on it, it will mounted on your system and then you can drag the icon to the application folder and boom.. you are done on installing.
This is incase if you, for whatever reason, wanted it to be done from command line.

Let’s say you downloaded a file somefile.dmg
Go to your terminal, move to the downloaded file’s folder and type

hdiutil mount somefile.dmg

This will be accompanied by the /Volume/dis-image-name confirmation from the command line.
Now search move to the newly mounted disk and copy the app file to the /Applications

cp -R /Volumes/some-file-folder/somefile.app /Applications

Yup that is it!

Scroll bar not working on Mountain Lion Mac? Or am I crazy? Cant find scroll bars on my new mac

Yea, it is weird. I know the the safari page has long to be scrolled but I was not able to damn scroll it 🙂
Then this behavior was duplicated when I tried to do some stuff on the other windows as well..
Hehehee.. Apple has made the scroll bars AuToMaTiCaLlY for us 🙁
I have been reading this book regarding UX stuff, it is a good read.
One thing mentioned on that one is consistency of UX designs – in other words you don’t want to surprise your existing users with something that has been there kind of thing.
I might sound silly here by mentioning this and you might say “what the heck, it is not a big deal”
But, for me, I like my scroll bars and I have returned them – thanks to them they have allowed us configure it
To configure it
1. Go to system preferences
2. Be on the Personal/General
3. Select show always option from the scroll bar options.

Scroll it BABY!

Enabling PHP in Mac Mountain Lion

I have been using snow leopard and recently I got a new mac with mountain Lion. As a PHPer the first thing I was doing was to install php+mysql and I have found it much easier

here is how to enable apache for PHP:

1. go to terminal, click the launch icon from dock and you will find it in the utilities, and do
apachectrl start – you need a sudo access for this
2. Go to system preferences -> internet and wireless -> sharing and check web sharing
3. Now, go to http://localhost and verify the it works is there.
4. Then being on your editor, go to /etc/apache2 and open httpd.conf file. Then look for php5_module and uncomment that line.
5. You are done. For testing, go to /Library/Webserver/Documents/ and add a php file named phpinfo.php with content of phpinfo(); and access it from http://localhost/phpinfo.php

Happy PHP

Unicode error using PDO. Mysql Unicode problem

Are you having those ???? things on your webpage when something you entered on Mr mysql is unicode character?
Here is a fix for that

Assuming you are using PDO object in your Db Class..

$db = array containing information ....
$this->pdo = new PDO("mysql:host={$db['host']};dbname={$db['database']};charset=utf8", $db['username'], $db['password']);

Now the next task to to tell Mysql to honor unicodes:

$this->query('SET NAMES utf8');
$this->query('SET CHARACTER SET utf8');
$this->query('SET COLLATION_CONNECTION="utf8_general_ci"');

where your query function could look like

public function query($query, $params=array())
	{
		$results=array();
		if (!empty($this->pdo))
		{
			try
			{
				$stmt=$this->pdo->prepare($query);
				$stmt->execute($params);
				$results=$stmt->fetchAll(PDO::FETCH_ASSOC);
			}
			catch(PDOException $exception)
			{
				echo "error occured";
				//logit or whatever
				die();
			}
		}
		return $results;
	}

Yea this would take care of the problem. There are certain things you have to do on the mysql database itself to handle unicode but I will not discuss those here
Hope it would help somebody..

Convert list tag li to horizontal links using CSS

Anybody involved on the front part of the web would be using it since s/he is 3 or something..
but if your programming time logs heavily show you are working much on the backend stuff.. this might help a bit..

here is the given list
<pre>
<ul>
<li>link1</li>
<li>link2</li>
</li>http://gullele.wordpress.com</li>
</ul>
</pre>

do the following css and it would take of making it horizontal

<pre>

ul{

margin:0;

padding:0;

}

li{

display: inline;

padding: 0 0 0 0 – give appropriate values here based on your chice

}

</pre>

This shall produce a li tag being on the horizontal..