How to add Bower component when it’s not in the repository?

Sometimes component that you want to use in your project isn’t available in Bower repo. There is a way to install it, even in very specified version. Go to project’s Github, in my case it’s here. Copy URL from the browser, and paste it somewhere. Now go to relases and click commit id that you’re interested in (this random blue colored string):

After that you’ll see full commit id, in this case it’s fef978b279c546923ad4f4118acea4d503e7596c. Paste that to the end of repository URL you’ve copied earlier. Remember to prefix it with # char and add .git to the URL:

Finally mix it with your bower.json file. Here’s full example:

	"name": "Realhero report",
	"description": "Report template based on New Age",
	"main": "index.js",
	"authors": ["Konrad Fedorczyk"],
	"license": "ISC",
	"homepage": "",
	"private": true,
	"ignore": ["**/.*", "node_modules", "bower_components", "test", "tests"],
	"dependencies": {
	    "bootstrap": "^3.3.7",
	    "font-awesome": "^4.6.3",
   	 	"jquery": "^1.11.3",
   	 	"simple-line-icons": "^2.3.2",
   	 	"morris.js": "^0.5.1",
   	 	"jqvmap-fedek6": "",
   	 	"Counter-Up": ""

Look at the last line of dependencies part, here’s component that I’ve added.

Permission denied when script is trying to execute ps_files_cleanup_dir

This is pretty common problem. I’ve encountered it on recent version of the Debian operating system. When you see something like that:

Notice:  session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5/sessions) failed: Permission denied (13) in /mnt/www-data/htdocs/raportMNW/inc/bryanjhv/slim-session/src/Slim/Middleware/Session.php on line 110

You can fix that easily with following Linux commands:

sudo nano /etc/php5/apache2/php.ini

Now use CTRL+W to find following string session.save_path and configure it like that:

session.save_path = "/tmp"

Save your file using CTRL+X and restart Apache2 service:

sudo service apache2 restart

And voilà!

SEO Friendly Gists

In case you ever wondered if Github’s Gists are indexed when they are embedded on your website, ther aren’t 🙂

But there is a simple tool to avoid loss of traffic from Google. Go to and simply paste your gist’s id into form on this website. It will generate code that you should paste unchanged  to your WordPress post (in text mode) or whatever.

gist id
URL segment with Gist’s id.

How to change mass edit limit in Vtiger 6.5

Sometimes you need to make mass operation on houndreds of records in Vtiger. Well in this case it’s 500 ones maximum… Well this is kinda stupid because it can surely handle up to thousands. How do I know? I’ve hacked the code and successfully converted 2000 leads 🙂 Well it takes some time but it definitely works!

Let us return to the merits. You need to edit a file from root folder of your Vtiger 6.5 CRM, placed here /layouts/vlayout/modules/Vtiger/resources/List.js. Simply find the code below and edit number according to your needs:

File: List.js

		var selectedCount = this.getSelectedRecordCount();
		if(selectedCount > 2000) {
		    var params = {
			    title : app.vtranslate('JS_MESSAGE'),
			    text: app.vtranslate('JS_MASS_EDIT_LIMIT'),
			    animation: 'show',
			    type: 'error'

Log model error after save

This code:

$model = new SomeModel();
$model->attributes = $attributes;
Yii::log("errors saving SomeModel: " . var_export($model->getErrors(), true));

Will log:

2014/07/31 22:57:59 [info] [application] errors saving SomeModel: array (
  'date' => 
  array (
    0 => 'Date cannot be blank.',

How to position element absolute but inside its container?

This trick will help you place element inside its cointainer using absolute positioning. Very often you want to be very precise when placing elements. It is very hard/impossible when you anchor to entire window because browser resizing is messing everything up. To avoid this, simply set relative positioning to the wrapper element. Check demo.

Continue reading How to position element absolute but inside its container?