In Mac OSX, recursively using sed, from foo into bar:
find . -type f -exec sed -i '' -e 's/foo/bar/g' {} \;
Thursday, October 22, 2015
Wednesday, October 7, 2015
How to convert Japanese character set to UTF-8
Using iconv, try one of these below:
iconv -f SHIFT-JIS -t UTF-8 input_file.txt > output_file.txt
or
iconv -f ISO-2022-JP -t UTF-8 input_file.txt > output_file.txt
iconv -f SHIFT-JIS -t UTF-8 input_file.txt > output_file.txt
or
iconv -f ISO-2022-JP -t UTF-8 input_file.txt > output_file.txt
Tuesday, September 1, 2015
How to zip compress multiple files at once
On Linux or Mac OSX:
find . -name "*txt" -execdir zip '{}.zip' '{}' \;
Wednesday, February 11, 2015
10 Making Money Online Resources in 2015
You want to make money online. These are useful resources how to make money in 2015.
- Earn Money on YouTube
- Forex Social Trading with Copy Trading
- How to Make Money with Free Online Surveys
- Buying and Selling Domain Names
- How to Make Money Blogging
- Earn Money with Google Adsense
- Make Money from Matched Betting
- How To Start Making Money On Fiverr - Tutorial
- Tips for Making Money with Amazon Mechanical Turk
- Make Money on Swagbucks
Saturday, November 29, 2014
Convert AVI to MP4 with ffmpeg
Use this command:
ffmpeg -i input_file.avi -c:v libx264 -preset slow -crf 22 -c:a libfaac -b:a 128k output_file.mp4
ffmpeg -i input_file.avi -c:v libx264 -preset slow -crf 22 -c:a libfaac -b:a 128k output_file.mp4
Saturday, February 1, 2014
Monday, January 13, 2014
How to clean up svn repo from ._* (dot underscore) files on mac
This is how I do that:
$ find . -name ".svn" -prune -o -name "._*" -exec svn del {} \;
$ svn ci
Friday, April 12, 2013
How to setup svn repository
I use Linux Ubuntu 11.04, as root:
First, make sure you have svn installed or you can install it with command:
# apt-get install subversion
mine already installed version 1.6.12
Step 1, create svn repository directory:
# cd /your/repo
# svnadmin create dir
Step 2, edit server configuration:
# vi /your/repo/dir/conf/svnserve.conf
Edit/uncomment following:
anon-access = read
auth-access = write
and uncomment below:
password-db = passwd
Step 3, edit passwd file in the same directory
# vi /your/repo/dir/conf/passwd
edit:
[users]
user = password
Step 4, to run the svn server at boot (from init.d), you need to create a script:
# cd /etc/init.d
# vi mysvn
Then paste code below into the script:
#! /bin/sh
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start svnserve
### END INIT INFO
# Author: Michal Wojciechowski <odyniec@odyniec.net>
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="svnserve"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /your/repo/dir"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
[ -x "$DAEMON" ] || exit 0
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start()
{
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
}
do_stop()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
Step 5, make the script executable and starts on default runlevel:
# chmod +x mysvn
# update-rc.d mysvn defaults
Step 6, import your project into svn repository:
# svn import project_dir file:///your/repo/dir/project -m "First"
Done.
You can start working on your project by checking out:
$ svn co svn://user@hostname/project myworkingdir
Enjoy.
Thanks to Michal Wojciechowski for the boot script.
First, make sure you have svn installed or you can install it with command:
# apt-get install subversion
mine already installed version 1.6.12
Step 1, create svn repository directory:
# cd /your/repo
# svnadmin create dir
Step 2, edit server configuration:
# vi /your/repo/dir/conf/svnserve.conf
Edit/uncomment following:
anon-access = read
auth-access = write
and uncomment below:
password-db = passwd
Step 3, edit passwd file in the same directory
# vi /your/repo/dir/conf/passwd
edit:
[users]
user = password
Step 4, to run the svn server at boot (from init.d), you need to create a script:
# cd /etc/init.d
# vi mysvn
Then paste code below into the script:
#! /bin/sh
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start svnserve
### END INIT INFO
# Author: Michal Wojciechowski <odyniec@odyniec.net>
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="svnserve"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /your/repo/dir"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
[ -x "$DAEMON" ] || exit 0
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start()
{
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
}
do_stop()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
Step 5, make the script executable and starts on default runlevel:
# chmod +x mysvn
# update-rc.d mysvn defaults
Step 6, import your project into svn repository:
# svn import project_dir file:///your/repo/dir/project -m "First"
Done.
You can start working on your project by checking out:
$ svn co svn://user@hostname/project myworkingdir
Enjoy.
Thanks to Michal Wojciechowski for the boot script.
Sunday, March 24, 2013
Setup chroot jail for ssh / sftp in Ubuntu
Using Ubuntu 10.04.2 LTS.
Step by step:
Read here for more complete and original information (thanks for the script).
Or follow instruction below:
You must be root.
Get the script from the above link:
# cd /usr/local/sbin
# wget http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh
# chmod 700 /usr/local/sbin/make_chroot_jail.sh
Edit the script (make_chroot_jail.sh):
# vi /usr/local/sbin/make_chroot_jail.sh
change first line, from:
#!/bin/sh
into:
#!/bin/bash
because it will be error if we use sh on Ubuntu 10.04.2 LTS.
Then add line after these below:
[...]
else
APPS="/bin/bash /bin/cp /usr/bin/dircolors /bin/ls /bin/mkdir /bin/mv /bin/rm /bin/rmdir /bin/sh /bin/su /usr/bin/groups /usr/bin/id /usr/bin/rsync /usr/bin/ssh /usr/bin/scp /usr/sbin/unix_chkpwd"
fi
Add this line below, some program that we might want to add to the APPS variable:
APPS+=" /bin/cat /usr/bin/vi"
The /bin/cat is mandatory since .bashrc using it.
Create jail directory:
# mkdir /path/to/jail
Create will be jailed user account:
# adduser jailed_username
Run the script:
# make_chroot_jail.sh jailed_username /bin/bash /path/to/jail
Edit sshd_config:
# vi /etc/ssh/sshd_config
Change from:
Subsystem sftp /usr/lib/openssh/sftp-server
into:
Subsystem sftp internal-sftp
And add these to the end of the file:
Match User jailed_username
ChrootDirectory /path/to/jail
AllowTCPForwarding no
X11Forwarding no
Restart sshd:
# /etc/init.d/ssh restart
We need to edit /etc/passwd and change from:
jailed_username:x:1001:1001:,,,:/path/to/jail/home/jailed_username:/bin/bash
into:
jailed_username:x:1001:1001:,,,:/home/jailed_username:/bin/bash
because it will not see /path/to/jail anymore, but /
Finish.
Step by step:
Read here for more complete and original information (thanks for the script).
Or follow instruction below:
You must be root.
Get the script from the above link:
# cd /usr/local/sbin
# wget http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh
# chmod 700 /usr/local/sbin/make_chroot_jail.sh
Edit the script (make_chroot_jail.sh):
# vi /usr/local/sbin/make_chroot_jail.sh
change first line, from:
#!/bin/sh
into:
#!/bin/bash
because it will be error if we use sh on Ubuntu 10.04.2 LTS.
Then add line after these below:
[...]
else
APPS="/bin/bash /bin/cp /usr/bin/dircolors /bin/ls /bin/mkdir /bin/mv /bin/rm /bin/rmdir /bin/sh /bin/su /usr/bin/groups /usr/bin/id /usr/bin/rsync /usr/bin/ssh /usr/bin/scp /usr/sbin/unix_chkpwd"
fi
Add this line below, some program that we might want to add to the APPS variable:
APPS+=" /bin/cat /usr/bin/vi"
The /bin/cat is mandatory since .bashrc using it.
Create jail directory:
# mkdir /path/to/jail
Create will be jailed user account:
# adduser jailed_username
Run the script:
# make_chroot_jail.sh jailed_username /bin/bash /path/to/jail
Edit sshd_config:
# vi /etc/ssh/sshd_config
Change from:
Subsystem sftp /usr/lib/openssh/sftp-server
into:
Subsystem sftp internal-sftp
And add these to the end of the file:
Match User jailed_username
ChrootDirectory /path/to/jail
AllowTCPForwarding no
X11Forwarding no
Restart sshd:
# /etc/init.d/ssh restart
We need to edit /etc/passwd and change from:
jailed_username:x:1001:1001:,,,:/path/to/jail/home/jailed_username:/bin/bash
into:
jailed_username:x:1001:1001:,,,:/home/jailed_username:/bin/bash
because it will not see /path/to/jail anymore, but /
Finish.
Friday, November 25, 2011
How to delete .svn directory recursively
In Linux, use this command:
# rm -rf `find . -type d -name .svn`
# rm -rf `find . -type d -name .svn`
Tuesday, March 1, 2011
How to run process in background then logout
In linux, if you want to run a process in the background without stopping when you logout then you can do it with this command:
# nohup [program_name] [arguments] &
Don't forget the ampersand.
# nohup [program_name] [arguments] &
Don't forget the ampersand.
Sunday, February 20, 2011
How to truncate video using command line
Here are two method, using ffmpeg and mencoder. Choose which one you want:
$ ffmpeg -vcodec copy -acodec copy -i [inputfile] -ss [start] -t [duration] [outputfile]
or
$ mencoder -ss [start] -endpos [duration] -oac copy -ovc copy [inputfile] -o [outputfile]
$ ffmpeg -vcodec copy -acodec copy -i
or
$ mencoder -ss
Friday, February 11, 2011
How to unix touch recursively
Since unix touch utility cannot operate recursively, so if you want to unix touch recursively:
# find . -exec touch {} \;
# find . -exec touch {} \;
Wednesday, February 9, 2011
How to setup unoconv in Ubuntu Lucid
If you want to convert between any document format that OpenOffice understands especially for non-interactive conversion of documents.
You will need openoffice.org:
# apt-get install openoffice.org
# apt-get install openoffice.org-writer2latex
Install unoconv:
# apt-get install unoconv
Running unoconv:
# unoconv --listener &
Test:
# unoconv -f pdf myfile.ppt
Done.
You will need openoffice.org:
# apt-get install openoffice.org
# apt-get install openoffice.org-writer2latex
Install unoconv:
# apt-get install unoconv
Running unoconv:
# unoconv --listener &
Test:
# unoconv -f pdf myfile.ppt
Done.
Monday, February 7, 2011
How to set up tesseract-ocr from Google
You need the following library (Ubuntu):
# apt-get install libpng12-dev
# apt-get install libjpeg62-dev
# apt-get install libtiff4-dev
# apt-get install zlib1g-dev
Set up leptonica:
# wget http://www.leptonica.com/source/leptonlib-1.67.tar.gz
# tar xfz leptonlib-1.67.tar.gz
# cd leptonlib-1.67
# ./configure
# make
# make install
Setup tesseract-ocr (version 3.0):
# svn checkout http://tesseract-ocr.googlecode.com/svn/trunk/ tesseract
# cd tesseract
# ./configure
# make
# make install
# ldconfig -v
Testing tesseract-ocr:
# tesseract eurotext.tiff result
Check result:
# cat result.txt
Done.
# apt-get install libpng12-dev
# apt-get install libjpeg62-dev
# apt-get install libtiff4-dev
# apt-get install zlib1g-dev
Set up leptonica:
# wget http://www.leptonica.com/source/leptonlib-1.67.tar.gz
# tar xfz leptonlib-1.67.tar.gz
# cd leptonlib-1.67
# ./configure
# make
# make install
Setup tesseract-ocr (version 3.0):
# svn checkout http://tesseract-ocr.googlecode.com/svn/trunk/ tesseract
# cd tesseract
# ./configure
# make
# make install
# ldconfig -v
Testing tesseract-ocr:
# tesseract eurotext.tiff result
Check result:
# cat result.txt
Done.
How to set up or adding alias to network interface in Ubuntu
Edit /etc/network/interfaces:
# vi /etc/network/interfaces
Append text below:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.7
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
Restart networking:
# /etc/init.d/networking restart
# vi /etc/network/interfaces
Append text below:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.7
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
Restart networking:
# /etc/init.d/networking restart
Tuesday, February 1, 2011
How to resume broken download with .part file in Firefox
Here is how to resume broken download with .part file in Firefox:
Enjoy :)
- You must already have two files from the broken download. One is the filename and the other with extra .part extension. Move both of these files to other directory (please do not copy).
- Start download again from the beginning, but you have to make sure that it must have exactly the same name.
- Let it download for a few bytes just to have those files created again. Now pause this download.
- Go to the folder where you backed up those old files. Copy both of these files to your download folder and replace the new created files when asked.
- Now go to Firefox's Downloads and resume the download.
Enjoy :)
Subscribe to:
Posts (Atom)