mongoDB – under SUSE SLE11 – SP3
Getting started with mongoDB under Suse Linux. Installation:
1 2 3 |
zypper addrepo --no-gpgcheck http://repo.mongodb.org/zypper/suse/11/mongodb-org# sudo zypper install mongodb-org vi /etc/mongod.conf |
Note: Default port is 27017 Starting/Stopping mongoDB server:
1 2 |
sudo service mongod start sudo service mongod stop |
Verify server status:
1 |
tail -f /var/log/mongodb/mongod.log |
Make it part of the autostart for different run levels:
1 |
sudo chkconfig mongod on |
Getting started with mongoDB
Read MoreHide/Show Desktop Icons on SUSE
Sometimes it is desirable to have a clean desktop. The following steps will allow you to achieve that with minimal commands.
1 2 3 4 5 |
- open a terminal - type gconf-editor - navigate apps/nautilus/desktop - Select/De-select the items you want to display on the desktop. - Exit from there and you are done! |
Mojolicious
Quick Install:
1 |
curl -L https://cpanmin.us | perl - -M https://cpan.metacpan.org -n Mojolicious |
Parent Link: http://mojolicio.us/ Gererating a Lite App called hello_world:
1 |
mojo generate lite_app hello_world |
Place holders:
1 2 3 |
/:foo - Generic place holder /(.foo) - Relaxed place holder which accepts dots /*foo - Wildcard place holder which accepts dots and forward slashes |
Using the above 3 you could drive with 2 more place holders.
1 2 |
optional place holder - specifying a default value makes a place holder optional. restrictive place holder - Specifying a set of values makes the place holder restricted. |
Using CPAN to install Mojolicious Plugins:
1 |
curl -L cpanmin.us | perl - App::cpanmius |
Once the cpanminus tools are installed, you could use cpanm to download and install plugins.
1 |
cpanm Mojolicious::Plugin::ParmsAuth |
Storing Values:
1 2 3 |
stash - works only with current request flash - works only with the next (future) request session - works with all request until deleted or expired |
Debugging Mojo code:
1 |
MOJO_USERAGENT_DEBUG=1 perl mojo_script_name.pl |
Finding …
Read Moremy .vimrc
Here is my .vimrc file on a SUSE SLE11-SP3 box
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
set nu set laststatus=10 set autoindent set tabstop=2 set shiftwidth=2 set smartindent set expandtab syntax on set textwidth=79 set formatoptions=qrn1 "if version >= 703 if exists('+colorcolumn') set colorcolumn=80 endif set history=500 set nobackup set noswapfile "set list "set listchars=tab:.\ ,trail:.,extends:#,nbsp:. set listchars=tab:▸\ ,eol:¬,extends:#,nbsp:.,trail:. if has("gui_running") set guifont=DEC\ Terminal "colorscheme darkblue colorscheme evening set guioptions-=r set go-=L set go-=T else colorscheme darkblue endif "line tracking set numberwidth=5 set cursorline set cursorcolumn " turn off cursor blinking set guicursor+=a:blinkon0 |
LAMP – install on Ubuntu
Easiest way to install LAMP stack on Ubuntu servers
1 2 |
sudo apt-get update sudo apt-get install lamp-server^ |
Yes the ^ is needed.
Read MoreBuild & Install node.js from source code
Following instructions are tested on Ubuntu 10.04 & node v0.12.2 download node package from http://nodejs.org/dist/latest/ tar -xvzf node-v0.12.2.tar.gz cd node-v0.12.2 Run the following commands
1 2 3 |
./configure make sudo make install |
To test the install
1 2 3 4 |
~$ node > (^C again to quit) > |
Hello World Test! vi hello.node.js
1 |
console.log("Hello, World!") |
To Run,
1 |
node hello.node.js |
Let’s do something more than Hello World.
1 |
vi http.test.js |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var http = require("http"); http.createServer(function (request, response) { // Send HTTP Status: 200 : OK // Content Type: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // Send the response body as "Hello World" response.end('Hello World\n'); }).listen(8888); // Console will print the message console.log('Server running at http://127.0.0.1:8888/'); |
To test the above code
1 2 |
On a Console: node http.test.js On a Web browser: http://127.0.0.1:8888 |
jQuery Fundamentals
The jQuery library provides the jQuery function,
1 |
var listItems = jQuery( 'li' ); |
Is same as…
1 |
var listItems = $( 'li' ); |
Which select all ‘li’ elements. The following ensures the page is ready for jQuery operations.
1 |
$(document).ready() |
Is same as…
1 |
$() |
Example:
1 2 3 4 |
// $( document ).ready(function() { $(function() { console.log( 'ready!' ); }); |
Get some elements from a page
1 2 3 4 |
$( '#header' ); // select the element with an ID of 'header' $( 'li' ); // select all list items on the page $( 'ul li' ); // select list items that are in unordered lists $( '.person' ); // select all elements with a class of 'person' |
Filtering selections with jQuery:
1 2 3 4 5 6 7 8 9 10 |
var listItems = $( 'li' ); // filter the selection to only items with a class of 'special' var special = listItems.filter( '.special' ); // filter the selection to only items without a class of 'special' var notSpecial = listItems.not( '.special' ); // filter the selection to only items that contain a span var hasSpans = listItems.has( 'span' ); |
Events
1 2 3 |
$( '#my-unordered-list' ).on( 'click', 'li', function( event ) { console.log( this ); // logs the list item that was clicked }); |
Effects
1 2 3 4 5 6 7 |
.show() Show the selected elements. .hide() Hide the selected elements. .fadeIn() Animate the opacity of the selected elements to 100%. .fadeOut() Animate the opacity of the selected elements to 0%. .slideDown() Display the selected elements with a vertical sliding motion. .slideUp() Hide the selected elements with a vertical sliding motion. .slideToggle() Show or hide the selected elements with a vertical sliding motion. |
Custom effects with .animate()
1 2 3 4 5 6 7 8 9 10 |
$( '.funtimes' ).animate({ left: '+=50', // increase by 50 opacity: 0.25, fontSize: '12px' }, 300, function() { // executes when the animation is done } ); |
Managing animate
1 2 |
.stop() will stop currently running animations on the selected elements. .delay() will pause before the execution of the next animation method. |
dummy sendmail
Lets say you are developing an app that sends mail, but you don’t want to actually send any mails out. The answer for your quest is “dummy sendmail”
1 2 3 4 5 6 7 8 9 |
#!/bin/bash # replace the /usr/bin/sendail with this shell script. # Everytime someone sends a mail, the content of the mail will be written to a file under /tmp/mail.20150203.log TS=`date "+%Y%m%d"` FN="/tmp/mail.$TS.log" cat - >> $FN echo "=== End Of Message Received ===" >> $FN |
sudo config
sudo is a standard way to give users some administrative rights without giving out the root password. This can also be configured for non root users as well.
1 2 3 |
vi /etc/sudoers and add the following line Syntax: user hosts = (runas) commands |
1 2 |
# user john is allowed to run some_script.sh as jack with no password john ALL = (jack) NOPASSWD: /work/some_script.sh |
1 2 3 |
# Any user part of the opsgrp will be allowed to mount and unmount squashfiles as root with no password. User_Alias OPSACC = %opsgrp OPSACC ALL = (root) NOPASSWD: /bin/mount -t squashfs -o loop *, /bin/umount -t squashfs * |
sftp only access (no shell access)
1 2 |
groupadd sftponly_group useradd -d /home/sftp_dir/ -g sftponly_group -s /bin/false sftp_user |
Add the following lines to /etc/ssh/sshd_config
1 2 3 4 5 |
Match Group sftponly_group ChrootDirectory %h AllowTcpForwarding no X11Forwarding no ForceCommand internal-sftp -l INFO -f AUTH |
Make sure to restart sshd daemon.
Read More