Unblock a specific port from the firewall in Centos 7

Following is a example which unblocks port 8888

firewall-cmd --permanent --add-port=8888/tcp
firewall-cmd --reload
firewall-cmd --list-all

opencv: Install opencv CentOS


sudo yum install opencv opencv-python opencv-devel-docs 

#OPTIONAL DEPENDENCIES:
sudo yum install -y python-devel gtk2-devel libdc1394-devel libv4l-devel ffmpeg-devel gstreamer-plugins-base-devel
sudo yum install -y libpng-devel libjpeg-turbo-devel jasper-devel openexr-devel libtiff-devel libwebp-devel
sudo yum install -y gcc  cmake  git gtk2-devel pkgconfig  numpy  ffmpeg

If your using virtual environment, copy the relevant cv files to the virtual environment.

 cp /usr/lib64/python2.7/site-packages/cv* .venv/lib/python2.7/site-packages/

Caffe: Visualizing Caffe Network prototxt file using GraphViz: draw_net.py

Visualizing Caffe Net topology/ntwork/prototxt file using GraphViz
From the Caffe root directory, you can generate a graph in image format from a .prototxt model file:

#INSTALL PRE-REQS:
$ make pycaffe
$ pip install pydotplus
$ yum install graphviz

Visualize a CNN in left-to-right:

#goto CAFFE ROOT
$ python/draw_net.py mynetwrk.prototxt mynetwrk.png

Output formats could be : PNG, PDF, DOT or other GraphViz supported formats.
Visualize a CNN in top-to-bottom:

$ python/draw_net.py --rankdir TB mynetwrk.prototxt mynetwrk.png

Following errors can be eliminated if you install the PRE-REQS (pip install pydotplus; yum install graphviz)

pydotplus.graphviz.InvocationException: GraphViz's executables not found
Exception: "dot" not found in path.
ImportError: No module named pydot

Github: Merging two branches


git remote add remote-name remote-github-url 
git fetch remote-name 
git merge remote-name/branch-name 
git status

Github: Update a GitHub forked repository;


git remote add upstream github-URL
git fetch upstream 
git merge upstream/master master 
git pull upstream master 
git push

Sublime Text: Multiple cursors or Multi-selection

Multiple cursors or Multi-selection in sublime text is easy

  • Press Alt/Command and then click in each region where you require a cursor. 
  • Select a block of lines : Shift + Command + L. 
  • Place the cursor over a particular word, and press Control/Command + D repeatedly to select additional occurrences of that word. 
  • Add an additional cursor at all occurrences of a word : Alt+F3 on Windows or Ctrl+Command+G on Mac.

Laravel: Debug by Printing Eloquent Query

Use ->toSql() method like shown below to get the SQL

<?php
use Log;

$name = "hawk";

$userResults = DB::table('users')
       ->leftJoin('planets', function($join) {
         $join->on('users.planet_id', '=' , 'planets.id');
        })
       ->where('users.lname' , 'like', '%'.$name.'%');

//You can print the SQL in your log file
Log::info('My search sql: '.($userResults->toSql()));

// OR you can save into a string variable
$mySQL = $userResults->toSql();

//Then use your get function
$userResults = $userResults->get(array('users.fname', 'planets.name'));
?>

The above code will print the following into your /storage/logs/laravel.log file

[2014-09-30 17:58:07] production.INFO: My search sql: SELECT * FROM  users LEFT JOIN planets ON (users.planet_id = planets.id) WHERE users.lname LIKE '%hawk%' 

Laravel, Eloquent: SQL query with left join

If the query needs parentheses/brackets for a where condition like below Normal SQL:

SELECT users.fname, planets.name 
FROM  users
LEFT JOIN  planets ON (users.planet_id = planets.id)
WHERE users.lname LIKE '%hawk%' 

ELOQUENT SQL:

$name = "hawk";

$userResults = DB::table('users')
       ->leftJoin('planets', function($join) {
         $join->on('users.planet_id', '=' , 'planets.id');
        })
       ->where('users.lname' , 'like', '%'.$name.'%')
       ->get(array('users.fname', 'planets.name'));

Eloquent: SQL Query with where or in brackets

If the query needs parentheses/brackets for a where condition like below Normal SQL:

SELECT * 
FROM  users
WHERE planet = 'earth'
AND (fname LIKE '%hawk%' OR lname LIKE '%hawk%')
AND state = 'FL'

ELOQUENT SQL:

$name = "hawk";

$usersResults = DB::table('users')
    ->where('planet', '=', 'earth')
    ->where(function($query) use ($name){
            $query->where('fname' , 'like', '%'.$name.'%');
            $query->orWhere('lname' , 'like', '%'.$name.'%');
      })
     ->where('state', '=', 'FL')
    ->get();

Wordpress: Print-friendly, Print as it looks in browser

If you you want to print a wordpress blog/site as it looks on the browser, then you have to
1. Login to the Wordpress as admin
2. Goto Appearance->Editor in the Left Sidebar menu.
3. On the right side find Header.php file
4. In the file locate the following piece of code

<link rel=”stylesheet” href=”<?php bloginfo(‘stylesheet_url’); ?>” type=”text/css” media=”screen” />

5. Modify to the media=""screen" to media="screen, print"
6. Click Update file at the bottom to save the changes in header.php

<link rel=”stylesheet” href=”<?php bloginfo(‘stylesheet_url’); ?>” type=”text/css” media=”screen, print” />


Oracle: Split a String Based on Delimiter

We can split a string based on Delimiter using a combination of  INSTR and SUBSTR functions:

INSTR Returns the position of a String within a String. For more information see Oracle instr function
SUBSTR Returns a substring. For more information see Oracle substring
Syntax of SUBSTR:

SUBSTR([input],[start],[length])  
Example 1:
 
select substr('orange.apple',1,(instr('orange.apple','.')) - 1)  
 from  dual  

Output:
first

Example 2:
 
select substr('orange.apple',1,(instr('orange.apple,'.')) - 1) as First,  
        substr('orange.apple', (instr('orange.apple','.')) + 1) as Second  
 from  dual 

Output:
First         Second
orange           apple

Eclipse keyboard shortcuts and Sublime Text 3 keybord shortcuts

Switching from Eclipse to Sublime Text 3?,  need some quick shortcuts to

1. Switching/Moving Lines up and down
Eclipse shortcut:  ⌘-UP to move lines up,  ⌘-DOWN to move lines down,
Sublime Text 3: CTRL-⌘-UP to move lines up, CTRL-⌘-DOWN to move lines down.

2. Deleting Entire Line your cursor is on 
Eclipse shortcut:⌘-D
Sublime Text 3: CTRL-SHIFT-K

3. Goto Line in File 
Eclipse shortcut: ⌘-L
Sublime Text 3: ⌘-P, then type a colon followed by the line number (e.g. :12 for line 12). To go to a line in another file, type the file name and then a colon and the line number.

Python contextlib for Timing Python code

If you've ever found yourself needing to measure the execution time of specific portions of your Python code, the `contextlib` module o...