error image

403 You are not allowed to access this page – yii error when accessing gii

403 you are not allowed yii error

403 you are not allowed is the error I got while using the young php framework YII. So far I am enjoying the yii framework. But, before I start to evangelize about it, I have to get some muscles on it.

Do you the different types of posts

I stumbled upon the above error when I start new project. The fix is on the ip filer of the main.php in the protected/config folder.

More on the fixing 403 you are not allowed error

On the config where there is a 'gii' => array(..), there is a ipFilters where you can list your own.

If not provided, local host will be the default and there should not be any problem, so one solution can be to have empty array for ipFilters.

Another is providing $_SERVER[‘REMOT_ADDR’] provided you are using it knowing the risk.

[: too many arguments error in bash script

You are writing shell script and got too many arguments error

While writing bash script, if you got this error, check where you are making expression test like in

if [ $somevar = "value"]; then
..

if the $somevar is something you are getting it from another command [ say grep or ls] which happen to return a lot of results that are separated by space or something you end up having it being

if [file1 file 2 file 3 = "value"]; then

The easiest solution for this is to enclose the variable in double quote like

if [ -n  "$somevar"]; then
some more commands goes here

Click here to see more on bash

Recommended: Solving Algorithms

Given array of numbers, find k complementary numbers – those which would add up to k. Here is how to solve it

How would you find three numbers that would add to number T from the list of numbers? Compare your solution with this one

With limited memory, and lots of storage, find the missing numbers from a file containing billion numbers in efficient way. Check the attempted solution for it

Simple bash script for searching keyword in the given directories linux

I find myself using grep over and over again for searching some keyword in the same directories. I write this, very simple and almost single usage script to accomplish the task

#! /bin/bash

# Find the given keywork in the given directories #

if [ $# -lt 1 ]; then
    echo $"No Keyword is provided"
    echo $"Usage: ./search_keyword.sh needle"
    exit
fi

keyWord=$1

#list where you would want to look inside the directory

directories="dir1 dir2 dir3 dir4 dir5"
for directory in $directories
do
    if [ -d $directory ]; then
        echo $"Serching in $directory"
        grep -ir --color $keyWord $directory
    else
        echo $"#### Directory $directory does not exist ####"
    fi
done

Getting the difference between two branches in mercurial

How to find the difference between branches in hg

Distributed revisioning systems would allow multiple branches which could be local to your computer or in the remote ones.

One aspect of working in distributed revision systems is the ability to see the diff between the branches and make a decision off of that.

Let’s say you have branch named branch-one and the other being default repo.

If you want to know what difference is there between the two branches in mercurial, say what is in the branch-one but not in the default do:


hg log -r "'branch-one' - default"

There are also a couple of predicates that you can assign – just search with “hg revsets”

Checking if the array contains same type variables like all numeric in php

I was in need of checking if the given array is all numeric or not. A colleague suggested with snippet the use of array_reduce – here the implementation

$numbers = array(1,22, 7, 34, 20);
$all_numbers = array_reduce($numbers, function($val1, $val2){
   return $val1 && is_numeric($val2);
}, TRUE);

Should do the trick.
zaTisIT!!

Newer version of mysql exists error while installing on Mac OS

I was reinstalling my mac machine and wanted to install my goodies [PHP, Apache, MySQL] on it and I come up with the newer version error when i try to install mysql.
here is what I gather from different sites and blogs:
Go to the terminal and issue these commands
sudo rm /usr/local/mysql*
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm /etc/my.cnf
sudo rm -rf /var/db/receipts/com.mysql.*

This has taken care of the error for me

Number of rows that would have been returned in case of Limit in mysql

The thing is, you would have sql that have LIMIT appended at the end like

select * from sometable limit 25

but what if you wanted to know how many rows would have been returned if it was not limited?
the trivial approach is

select count(*) from sometable

and then issuing query with limit on it.
This is slower solution.
here is the way to do it in a better way

select sql_calc_found_rows * from sometable limit 25;
select found_rows();

Right after execution the select with sql_calc_found_rows, we would get the ‘would have been’ value on the second query.

Dynamically populate select box from JSON in javascript/jQuery

Populating select box with JSON tutorial example

JSON [JavaScriptObjectNotation] has become the defacto standard for web-consumers these days.

I also interact with it in a frequent manner.

The major usage might be when you are interacting with API based websites. Even though there are multiple response types, json is one of the most widely endorsed these days.

Based on the response you can apply it to different parts of the web app.

When would I be using json for select boxes?

Lets say you are calling an API to give you the list of available cars and the API would return the result in json format.

Then you can use that response as a selection in select box or you can also list it as options to be checked in the form of checkboxes and the like.

Node tutorial with http web server

Here is example of using json response used in select box

I will try to give some simple example on using JSON with old school javascript and jquery.
Lets have the following JSON for our example:


var cars=[{"color":"red","made":"toyota","model":"corrola","mileage":"10000"},{"color":"silver","made":"honda","model":"accord","mileage":"160000"},{"color":"white","made":"nissan","model":"maxima","mileage":"12200"}];

Just ordinary simple data to play with.

Using Old School Javascript:

Assuming there is select box with id “dynamic_slct”


var options = '';
slctbox = document.getElementById('dynamic_slct');
for(var i=0 ; i<cars.length ; i++)
{
    var label = cars[i]['made'];
    var model = cars[i]['model']; //or whatever the value you want to show
    var opt = document.createElement('option');
    slctbox.options.add(new Option(label, model));
}

As simple as that, the ‘cars’ should be available on the page being accessible to the javascript that is populating the options. If you are working on PHP, for example, spitting the json_encode(array) would provide what is needed for this

Uisng jQuery


var opt="";
$.each(cars, function(){
   var label = this['made'];
   var model = this['model'];
   opt += ""+model+"";
});
$('#dynamic_slct').html(opt);

Setting autoindent tab and shift width on vim/vi

Vim/vi is a real handy tool for updating any file on many linux destros including the favored ubuntu.
While working you might want to set the tab width [say 4 chars or whatever] along with shift size. Also how about to auto indent whenever you hit enter- all easy..
look for your vimrc – a config file for vim, it would be in

 /etc/vim/vimrc 

by default on ubuntu or
if you do

locate vimrc 

on your terminal it would show you the path,
Then do add the following lines in it

set autoindent
set shiftwidth=4
set tabstop=4

Well, you can change the the value of the tabs and shift as you want it..
happy vim’ing

VI/VIM not colorizing syntax like html or php

I am brushing my old pc and installing ubuntu on it. As I was installing php-mysql and related packages I noticed that the vim/vi editor is not highlighting html or php syntaxes.
That would be it if you are running a bit older version of the ubuntu. Upgrading vim will take care of the problem:

sudo apt-get install vim-genome
sudo apt-get install vim

then go to the vimrc file and – it would be in /etc/vim/vimrc by default and uncomment the line syntax on

then you should get your vim rocking!