Monday, January 20, 2014
Monday, January 6, 2014
Ubuntu: Change the waiting time on network configuration
/etc/init/failsafe.conf
Thursday, January 2, 2014
IT Director Responsibilities and Duties
IT Director Responsibilities and Duties
Coordinate with management in developing business strategic plans and operating policies.
Coordinate with business teams to analyze project contracts, proposals, requirements, and service level agreements.
Assist in developing project budgets and timelines.
Utilize project management experience to lead various global and regional projects.
Evaluate and revise project plan to meet changing project demands.
Manage project planning, staffing, schedule and expenses.
Oversee everyday project operations to ensure timely delivery.
Oversee the availability of application and infrastructure for project execution.
Identify and assign resources to IT projects.
Organize project status meetings with customers and team members.
Interact with customers to design and execute business solutions.
Ensure project deliverables meet highest quality standards and customer requirements.
Develop departmental standards and ensure that staffs adhere to these standards.
Provide analytical and technical assistance to project team.
Collaborate with management on application development, enhancement, and deployment activities.
Evaluate project proposals and change requests and make necessary recommendations for approval or rejection of proposals.
Coordinate with management in developing business strategic plans and operating policies.
Coordinate with business teams to analyze project contracts, proposals, requirements, and service level agreements.
Assist in developing project budgets and timelines.
Utilize project management experience to lead various global and regional projects.
Evaluate and revise project plan to meet changing project demands.
Manage project planning, staffing, schedule and expenses.
Oversee everyday project operations to ensure timely delivery.
Oversee the availability of application and infrastructure for project execution.
Identify and assign resources to IT projects.
Organize project status meetings with customers and team members.
Interact with customers to design and execute business solutions.
Ensure project deliverables meet highest quality standards and customer requirements.
Develop departmental standards and ensure that staffs adhere to these standards.
Provide analytical and technical assistance to project team.
Collaborate with management on application development, enhancement, and deployment activities.
Evaluate project proposals and change requests and make necessary recommendations for approval or rejection of proposals.
Tuesday, December 24, 2013
Revisit OOP fundumentals
Inheritance
Polymorphism
Abstraction
Encapsulation
Polymorphism
Abstraction
Encapsulation
Friday, December 13, 2013
Rails - Define class method in module file
module PicturePartials
module Cse
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def find_by_picture_id(picture_id)
Picture.joins(:picture).where('picture_id = ?', picture_id).first
end
end
end
end
module Cse
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def find_by_picture_id(picture_id)
Picture.joins(:picture).where('picture_id = ?', picture_id).first
end
end
end
end
Thursday, November 28, 2013
Ubuntu upgrade postgresql server from 8.4 to 9.2
- backup database: pg_dumpall > dump.sql
- http://wiki.postgresql.org/wiki/Apt
- Create /etc/apt/sources.list.d/pgdg.list
- Put this in the file:
- deb http://apt.postgresql.org/pub/repos/apt/ [code]-pgdg main
- where [code] can be found by lsb_release -c
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- sudo apt-get update
- ps -C postgres
- sudo apt-get purge postgresql-8.4
- Create database user
- Restore database
- Done
Thursday, November 14, 2013
Restart network interface
sudo /etc/init.d/networking restart
Ubuntu find versions
uname -a (for kernel version)
lsb_release -a (for ubuntu version)
sudo fdisk -l (for partition info)
lsb_release -a (for ubuntu version)
sudo fdisk -l (for partition info)
Tuesday, November 5, 2013
Wednesday, October 23, 2013
Ubuntu start Tomcat on boot
Automatic Starting
To make tomcat automatically start when we boot up the computer, you can
add a script to make it auto-start and shutdown.
sudo vi /etc/init.d/tomcat
Now paste the following content:
# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid
export JAVA_HOME=/usr/lib/jvm/java-6-sun
case $1 in
start)
sh /usr/local/tomcat/bin/startup.sh
;;
stop)
sh /usr/local/tomcat/bin/shutdown.sh
;;
restart)
sh /usr/local/tomcat/bin/shutdown.sh
sh /usr/local/tomcat/bin/startup.sh
;;
esac
exit 0
You'll need to make the script executable by running the chmod command:
sudo chmod 755 /etc/init.d/tomcat
The last step is actually linking this script to the startup folders
with a symbolic link. Execute these two commands and we should be on our
way.
sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
To make tomcat automatically start when we boot up the computer, you can
add a script to make it auto-start and shutdown.
sudo vi /etc/init.d/tomcat
Now paste the following content:
# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid
export JAVA_HOME=/usr/lib/jvm/java-6-sun
case $1 in
start)
sh /usr/local/tomcat/bin/startup.sh
;;
stop)
sh /usr/local/tomcat/bin/shutdown.sh
;;
restart)
sh /usr/local/tomcat/bin/shutdown.sh
sh /usr/local/tomcat/bin/startup.sh
;;
esac
exit 0
You'll need to make the script executable by running the chmod command:
sudo chmod 755 /etc/init.d/tomcat
The last step is actually linking this script to the startup folders
with a symbolic link. Execute these two commands and we should be on our
way.
sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
Tuesday, October 15, 2013
Install webmin on Ubuntu
1. Download from http://www.webmin.com
2. sudo dpkg -i webmin_x.xxxx_all.deb (with error)
3. sudo apt-get install -f (will fix the error)
4. https://xxx.xxx:1000
DONE
2. sudo dpkg -i webmin_x.xxxx_all.deb (with error)
3. sudo apt-get install -f (will fix the error)
4. https://xxx.xxx:1000
DONE
Tuesday, October 8, 2013
diagnostic cap deploy permission denied public key
Problem:
xxxxx@xxxxx:~/RubyProjects/xxxxx$ bundle exec cap xxxxx deploy:migrations
/usr/local/rvm/gems/ree-1.8.7-2012.02@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:211: warning: Insecure world writable dir /usr/local/rvm/gems in PATH, mode 042777
/usr/local/rvm/gems/ree-1.8.7-2012.02@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:211: warning: Insecure world writable dir /usr/local/rvm/gems in PATH, mode 042777
* executing `xxxxx'
triggering start callbacks for `deploy:migrations'
* executing `multistage:ensure'
* executing `eighties_bands:ensure'
* executing `deploy:migrations'
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git@xxxxx.unfuddle.com:xxx/xxxxx.git xxxxx-4"
command finished in 4746ms
* executing "if [ -d /home/xxxxx/deploy/shared/cached-copy ]; then cd /home/xxxxx/deploy/shared/cached-copy && git fetch -q origin && git reset -q --hard b40a43e351c2107de5c6bc8dae0c70de86465305 && git clean -q -d -x -f; else git clone -q git@xxx.unfuddle.com:xxx/xxxxx.git /home/xxxxx/deploy/shared/cached-copy && cd /home/xxxxx/deploy/shared/cached-copy && git checkout -q -b deploy b40a43e351c2107de5c6bc8dae0c70de86465305; fi"
servers: ["115.160.152.28"]
[115.160.152.28] executing command
** [115.160.152.28 :: err] Permission denied (publickey).
** [115.160.152.28 :: err] fatal: The remote end hung up unexpectedly
command finished in 13024ms
failed: "sh -c 'if [ -d /home/xxxxx/deploy/shared/cached-copy ]; then cd /home/xxxxx/deploy/shared/cached-copy && git fetch -q origin && git reset -q --hard b40a43e351c2107de5c6bc8dae0c70de86465305 && git clean -q -d -x -f; else git clone -q git@xxx.unfuddle.com:xxx/xxxxx.git /home/xxxxx/deploy/shared/cached-copy && cd /home/xxxxx/deploy/shared/cached-copy && git checkout -q -b deploy b40a43e351c2107de5c6bc8dae0c70de86465305; fi'" on 115.160.152.28
Reason:
git login failed on target machine.
Checkings:
ssh -v git@xxx.unfuddle.com
On deployment machine,
xxxxx@xxxxx:~/RubyProjects/xxxxx$ bundle exec cap xxxxx deploy:migrations
/usr/local/rvm/gems/ree-1.8.7-2012.02@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:211: warning: Insecure world writable dir /usr/local/rvm/gems in PATH, mode 042777
/usr/local/rvm/gems/ree-1.8.7-2012.02@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:211: warning: Insecure world writable dir /usr/local/rvm/gems in PATH, mode 042777
* executing `xxxxx'
triggering start callbacks for `deploy:migrations'
* executing `multistage:ensure'
* executing `eighties_bands:ensure'
* executing `deploy:migrations'
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git@xxxxx.unfuddle.com:xxx/xxxxx.git xxxxx-4"
command finished in 4746ms
* executing "if [ -d /home/xxxxx/deploy/shared/cached-copy ]; then cd /home/xxxxx/deploy/shared/cached-copy && git fetch -q origin && git reset -q --hard b40a43e351c2107de5c6bc8dae0c70de86465305 && git clean -q -d -x -f; else git clone -q git@xxx.unfuddle.com:xxx/xxxxx.git /home/xxxxx/deploy/shared/cached-copy && cd /home/xxxxx/deploy/shared/cached-copy && git checkout -q -b deploy b40a43e351c2107de5c6bc8dae0c70de86465305; fi"
servers: ["115.160.152.28"]
[115.160.152.28] executing command
** [115.160.152.28 :: err] Permission denied (publickey).
** [115.160.152.28 :: err] fatal: The remote end hung up unexpectedly
command finished in 13024ms
failed: "sh -c 'if [ -d /home/xxxxx/deploy/shared/cached-copy ]; then cd /home/xxxxx/deploy/shared/cached-copy && git fetch -q origin && git reset -q --hard b40a43e351c2107de5c6bc8dae0c70de86465305 && git clean -q -d -x -f; else git clone -q git@xxx.unfuddle.com:xxx/xxxxx.git /home/xxxxx/deploy/shared/cached-copy && cd /home/xxxxx/deploy/shared/cached-copy && git checkout -q -b deploy b40a43e351c2107de5c6bc8dae0c70de86465305; fi'" on 115.160.152.28
git login failed on target machine.
Checkings:
ssh -v git@xxx.unfuddle.com
- Check this on deployment machine and target server
- If success, should see this: Authentication succeded (publickey).
- If denied, will see this: debug1: Authentications that can continue: publickey
- This means the connection to git server is denied.
On deployment machine,
- ForwardAgent yes (.ssh/config)
- Check if ssh-agent is running
- ps aux | grep ssh
- Add key to ssh:
- ssh-add ~/.ssh/id_rsa
- Check key:
- ssh-add -l
- Done
Wednesday, September 25, 2013
Tuesday, September 24, 2013
Change ubuntu apt-get mirror site
sudo vi /etc/apt/sources.list
deb http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise main restricted
universe multiverse
deb-src http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise main restricted
universe multiverse
deb http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise-updates main
restricted universe multiverse
deb-src http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise-updates main
restricted universe multiverse
:wq
sudo apt-get update
(e.g.) sudo apt-get install maven
deb http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise main restricted
universe multiverse
deb-src http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise main restricted
universe multiverse
deb http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise-updates main
restricted universe multiverse
deb-src http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise-updates main
restricted universe multiverse
:wq
sudo apt-get update
(e.g.) sudo apt-get install maven
Allow remote access to postgres sql
edit /etc/postgresql/9.1/main/postgresql.conf
listen_address = '*'
edit /etc/postgresql/9.1/main/pg_hba.conf
replace the config with:
host all all 0.0.0.0/0 md5
listen_address = '*'
edit /etc/postgresql/9.1/main/pg_hba.conf
replace the config with:
host all all 0.0.0.0/0 md5
Check 32 bit or 64 bit Ubuntu version
uname -a
Result for 32-bit Ubuntu:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC
2011 i686 i686 i386 GNU/Linux
whereas the 64-bit Ubuntu will show:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC
2011 x86_64 x86_64 x86_64 GNU/Linux
Result for 32-bit Ubuntu:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC
2011 i686 i686 i386 GNU/Linux
whereas the 64-bit Ubuntu will show:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC
2011 x86_64 x86_64 x86_64 GNU/Linux
Friday, September 6, 2013
Wednesday, September 4, 2013
Backup postgresql using pgdump
>sudo su - postgres
>pg_dump some_database_name > somename.sql
>pg_dump some_database_name > somename.sql
Wednesday, August 28, 2013
Tuesday, August 13, 2013
Tuesday, August 6, 2013
Tuesday, July 23, 2013
Mysql dump backup and restore all database
Backup:
mysqldump --flush-privileges --all-database -p > mysqldump.all.database.20130723.sql
Restore:
mysql -u root -p < mysqldump.all.database.20130723.sql
mysqldump --flush-privileges --all-database -p > mysqldump.all.database.20130723.sql
Restore:
mysql -u root -p < mysqldump.all.database.20130723.sql
Monday, July 22, 2013
Solved: apt-get install 404 Not Found
sudo apt-get update
Solve: apache You don't have permission to access / on this server
In httpd.conf
<Directory />
#Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order deny,allow
Allow from all
</Directory>
Tuesday, May 7, 2013
Thursday, May 2, 2013
Ubuntu change name/ hostname
# vim /etc/hostname
內容改為自己要的名字
內容改為自己要的名字
# vim /etc/hosts
這邊最好也要改,免得有些 service 會出錯
這邊最好也要改,免得有些 service 會出錯
# /etc/init.d/hostname.sh or # sudo service hostname restart
重新啟動
重新啟動
# hostname
驗證是否已經修改完畢。
驗證是否已經修改完畢。
Tuesday, April 30, 2013
Postgresql server start
Use the following command (from terminal) to control the PostgreSQL server
Start the service : /etc/init.d/postgresql start
Stop the service : /etc/init.d/postgresql stop
Know the status : /etc/init.d/postgresql status
Restart the service : /etc/init.d/postgresql restart
Read more: http://linuxpoison.blogspot.tw/2012/01/how-to-install-configure-postgresql.html#ixzz2RutcjeNH
Start the service : /etc/init.d/postgresql start
Stop the service : /etc/init.d/postgresql stop
Know the status : /etc/init.d/postgresql status
Restart the service : /etc/init.d/postgresql restart
Read more: http://linuxpoison.blogspot.tw/2012/01/how-to-install-configure-postgresql.html#ixzz2RutcjeNH
Thursday, April 25, 2013
ubuntu fix ip
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
File: /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.8.188
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.225
gateway 192.168.8.1
dns-nameservers 192.168.8.201 202.130.97.65
sudo /etc/init.d/networking restart
# and how to activate them. For more information, see interfaces(5).
File: /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.8.188
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.225
gateway 192.168.8.1
dns-nameservers 192.168.8.201 202.130.97.65
sudo /etc/init.d/networking restart
Install apache for ruby on rails on Ubuntu
- Install apache2
- sudo apt-get update
- sudo apt-get install apache2
- Enable https
- sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 restart - Install Passenger
- gem install passenger
- passenger-install-apache2-module
- sudo apt-get install libcurl4-openssl-dev
- rvmsudo rvm get head && rvm reload && rvm repair all
- Permission denied -> chmod 777...
Install passenger on ubuntu
Ubuntu: Curl development headers with SSL support
By: Richard26-11-2010computing
Share
Just been trying to install Passenger on a new Ubuntu EC2 instance and
passenger is giving me the error:
* Curl development headers with SSL support... not found
Took some digging around but turns out I was just missing the
libcurl4-openssl-dev package:
sudo apt-get install libcurl4-openssl-dev
By: Richard26-11-2010computing
Share
Just been trying to install Passenger on a new Ubuntu EC2 instance and
passenger is giving me the error:
* Curl development headers with SSL support... not found
Took some digging around but turns out I was just missing the
libcurl4-openssl-dev package:
sudo apt-get install libcurl4-openssl-dev
Solve Apache2 permission problem.
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
Monday, April 15, 2013
vim binary mode
To binary mode -- :%!xxd
To normal mode -- :%!xxd -r
To normal mode -- :%!xxd -r
Sunday, April 14, 2013
Git move master to branch
git checkout target_branch
git merge --strategy==ours --no-commit master
git commit -m "Move master to this branch..."
git checkout master
git merge target_branch
git merge --strategy==ours --no-commit master
git commit -m "Move master to this branch..."
git checkout master
git merge target_branch
Friday, April 5, 2013
Linux - Bash encrypt and decrypt file
openssl des3 -salt -in unencrypted-data.file \
-out encrypted-data.file.des3
openssl des3 -d -salt -in encrypted-data.file.des3 \
-out unencrypted-data.file
-out encrypted-data.file.des3
openssl des3 -d -salt -in encrypted-data.file.des3 \
-out unencrypted-data.file
Thursday, March 14, 2013
Mysql - backup all databases
$ mysqldump -u root -p --all-databases > alldb_backup.sql
Wednesday, March 13, 2013
Migrate Atlassian Confluence local version 4.0 to OnDemand version 5.0
- Backup current wiki data to XML.
- Upgrade local 4.0 to 5.0 version.
- Subscribe Confluence OnDemand service.
- Export space from local wiki, one by one, since OnDemand version cannot restore the whole backup in one click.
- Import spaces to OnDemand.
- Done.
Tuesday, March 12, 2013
Mac reset password
1. Press and Hold Command-R when startup.
2. Open terminal.
3. >resetpassword
2. Open terminal.
3. >resetpassword
Friday, March 8, 2013
Windows 7 hosts file
C:\Windows\System32\driven\etc\hosts
Thursday, March 7, 2013
Git - remove or delete tag and remote tag
git tag -d 12345 git push origin :refs/tags/12345
Monday, March 4, 2013
Rails - update attr_readonly field from sql
The easiest way to update field with attr_readonly is to update by
database sql.
$> psql -d xxx -U xxx
xxx> update ... set ... where ...
database sql.
$> psql -d xxx -U xxx
xxx> update ... set ... where ...
Wednesday, February 27, 2013
Rails - Cap deploy solve the problem on Permission denied (publickey)
Run "$>ssh-add" to add private key identities to authentication agent.
Solved.
Solved.
Thursday, February 21, 2013
Rails - Caution on adding new column and assign value to it in the same db migration - reset_column_information
This happens on staging/production rails env.
If you add a new column 'xxx' and assign value to it in the same migration,
Then, you may get error like this: undefined method 'xxx'You should do a column reset after add column:
e.g. User.reset_column_information
Wednesday, February 20, 2013
Rails - check routes in rails console
puts Rails.application.routes
Rails - Functional test directly calls the controller without using the routes.rb
Note that the functional tests bypass the router will not capture the
effect of changing HTTP verb.
effect of changing HTTP verb.
Tuesday, February 19, 2013
selenium ide - AssertConfirmation wildcard *
AssertConfirmation *
Postgresql - show version
psql --version
OR
postgres=# select version();
OR
postgres=# select version();
Git global config
git config --global user.name "Your Name"
git config --global user.email you@example.com
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.log auto
git config --global user.email you@example.com
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.log auto
Mac enable root user
How to enable the root user
OS X Lion
- From the Apple menu choose System Preferences....
- From the View menu choose Users & Groups.
- Click the lock and authenticate as an administrator account.
- Click Login Options....
- Click the "Edit..." or "Join..." button at the bottom right.
- Click the "Open Directory Utility..." button.
- Click the lock in the Directory Utility window.
- Enter an administrator account name and password, then click OK.
- Choose Enable Root User from the Edit menu.
- Enter the root password you wish to use in both the Password and Verify fields, then click OK.
Monday, February 18, 2013
Edit hosts file on Mac OS
$> sudo vi /private/etc/hosts
115.160.xxx.12 staging
115.160.xxx.11 production
115.160.xxx.12 staging
115.160.xxx.11 production
Friday, February 15, 2013
Rails - Solved - relation 'xxx' does not exist
ActiveRecord::StatementInvalid: PGError: ERROR: relation "xxx" does not
exist
LINE 1: DELETE FROM "xxx"
^
: DELETE FROM "xxx"
Solution:
Remove test/fixture/xxx.yml if exists.
exist
LINE 1: DELETE FROM "xxx"
^
: DELETE FROM "xxx"
Solution:
Remove test/fixture/xxx.yml if exists.
Friday, February 1, 2013
Wednesday, January 30, 2013
Monday, January 28, 2013
Friday, January 25, 2013
Java Garbage Collection
PermGen, Garbage collection.
http://blog.takipi.com/garbage-collectors-serial-vs-parallel-vs-cms-vs-the-g1-and-whats-new-in-java-8/
RMI -> Web services
Servlet, Applet, JSP -> Spring
http://blog.takipi.com/garbage-collectors-serial-vs-parallel-vs-cms-vs-the-g1-and-whats-new-in-java-8/
RMI -> Web services
Servlet, Applet, JSP -> Spring
Thursday, January 24, 2013
Ruby - Catch or rescue multiple exceptions on the same line.
begin
...
rescue ExceptionType1, ExceptionType2 => e
...
end
...
rescue ExceptionType1, ExceptionType2 => e
...
end
Friday, January 11, 2013
Management - Request agile developer to submit a feature spec and design spec before beginning a new story
In an agile development environment, developer will collect story owner feature requirement and then design the way to implement. To overview the job to be carry out by developer, team leader have to get a sense of what has been requested and what is being prepared and designed.
Git - Find changes of a file within all local branches
git log --all -- somefile_fullpath
Thursday, January 10, 2013
Practice - Keep a source code map in wiki
For new joined developers to quickly locate the source code.
Tuesday, January 8, 2013
Linux - rsync from local to remote
rsync -au /var/www/confluence/confluence-data/backups -e 'ssh -p 1337' your_name@some_ip:/home/your_name/backups/wiki_backups
Monday, January 7, 2013
Development steps for Facebook integration - website app
- Register a Facebook account.
- Register as a Facebook developer.
- Create new app.
- Follow samples or demo on Facebook site.
References:
http://developers.facebook.com/docs/guides/web/
https://www.facebook.com/help/403653596349195/
https://developers.facebook.com/apps
https://developers.facebook.com/docs/guides/appcenter/
http://developers.facebook.com/docs/samples/
Saturday, January 5, 2013
Apache supporting multiple domain websites with single IP
Listen 443
NameVirtualHost *:443
SSLStrictSNIVHostCheck off
<VirtualHost *:443>
DocumentRoot /srv/www/example1.com/
ServerName www.example1.com
...
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /srv/www/example2.com/
ServerName www.example2.com
...
</VirtualHost>
NameVirtualHost *:443
SSLStrictSNIVHostCheck off
<VirtualHost *:443>
DocumentRoot /srv/www/example1.com/
ServerName www.example1.com
...
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /srv/www/example2.com/
ServerName www.example2.com
...
</VirtualHost>
Thursday, January 3, 2013
Create a SSL Cert, sign by Godaddy.com, install on Apache
- Login VPS, root@ubuntu:~# openssl req -new -newkey rsa:2048 -nodes -keyout your_domain.key -out your_domain.csr
- Godaddy.com
- Product > SSL Cert
- Basic SSL Cert
- 3 yrs
- Add to cart
- Checkout
- Payment
- Account > SSL Cert
- Setup
- Launch
- Current Certificates
- Credits
- Refresh
- Request Certificate
- Choose 3rd party
- Paste your_domain.csr content to form
- submit
- Wait for email.
- Download cert from Godaddy.com.
- Select Apache.
- Copy your_domain.crt and gd_bundle.crt (the CA's bundle file) to VPS, e.g. /etc/ssl/private/
- Edit /etc/apache2/sites-available/default.ssl
- SSLCertificateFile /etc/ssl/private/your_domain_com.crt
- SSLCertificateKeyFile /etc/ssl/private/private.key
- SSLCACertificateFile /etc/ssl/private/gd_bundle.crt
- Restart apache. $> sudo service apache2 restart
- Done
References:
http://support.godaddy.com/help/article/5269/generating-a-certificate-signing-request-csr-apache-2x
http://support.godaddy.com/help/article/562/requesting-standard-and-wildcard-ssl-certificates
http://support.godaddy.com/help/article/5238/installing-an-ssl-certificate-in-apache
https://help.ubuntu.com/12.04/serverguide/httpd.html
http://www.geocerts.com/install/apache_2
Tuesday, January 1, 2013
Toolbox - Zabbix
Zabbix is the ultimate open source availability and performance
monitoring solution. Zabbix offers advanced monitoring, alerting, and
visualization features today which are missing in other monitoring
systems, even some of the best commercial ones.
monitoring solution. Zabbix offers advanced monitoring, alerting, and
visualization features today which are missing in other monitoring
systems, even some of the best commercial ones.
Monday, December 31, 2012
Selenium - Get current date
<tr>
<td>storeEval</td>
<td>var d=new Date(); d.getDate()+'-'+((d.getMonth()+1))
+'-'+d.getFullYear();</td>
<td>date2</td>
</tr>
<tr>
<td>echo</td>
<td>${date2}</td>
<td></td>
</tr>
<td>storeEval</td>
<td>var d=new Date(); d.getDate()+'-'+((d.getMonth()+1))
+'-'+d.getFullYear();</td>
<td>date2</td>
</tr>
<tr>
<td>echo</td>
<td>${date2}</td>
<td></td>
</tr>
Rails solved - Capistrano change repository
- Remove deploy/shared/cached-copy
- (remove .ssh/known_hosts) <- optional
- ssh git@xxx.unfuddle.com
- (config.rb add: default_run_options[:pty] = true) <- optional
Known Hosts bug
If you are not using agent forwarding, the first time you deploy may fail due to Capistrano not prompting with this message:
# The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?
To fix this, ssh into your server as the user you will deploy with, run ssh git@github.com and confirm the prompt.
Sunday, December 30, 2012
Git tips - create an empty commit
git commit --allow-empty -m '[empty] initial commit'
Git tips - search a string on all revisions
git rev-list --all | (
while read revision; do
git grep -F 'Your search string' $revision
done
)
Friday, December 28, 2012
Linux - use rsync to backup local directory
$> rsync -au /home/source /home/target
Tuesday, December 25, 2012
Cloud server vs VPS
http://forums.eukhost.com/f45/cloud-server-vs-vps-virtual-private-server-11356/#.UNkQBpNevKw
2010
Cloud hosting offers many advantages over normal VPS or Semi-Dedicated server hosting services due to the number of servers that are being used for a single cluster, and if you or your business rely greatly on your website, Cloud hosting is the best suitable option for you. The enhanced architecture powering Cloud hosting solution utilize groups of high specification servers, network attached storage devices to reliably serve every web page, and image of a website. Inside each storage device, drives are replicated to each other in a RAID configuration to create a first level of redundancy.
With Virtual Private server, you will not get guaranteed resources that you will pay for, which means other user of the VPS node could squeeze in on your allotted resources but this is not case with Cloud server, you will get the guaranteed amount of resources you are paying for and it's always available when you need them. In addition to all these features, you will also get the ability to customize the resources of Cloud server anytime. VPS is not at all reliable when compared to Cloud server because VPS is based on software virtualization platform. Each platform of servers have their merits and demerits but here there are no demerits of Cloud server, so now it depends on you whether to choose VPS or Cloud server after understanding the needs and the service that you are looking.
http://www.vps.net/blog/2012/08/20/vps-vs-cloud-server/
Cloud Servers have three primary advantages over a traditional VPS.
Near limitless flexibility with resource sizes.
On the fly resource upgrades, sometimes without even requiring a reboot.
Significantly better redundancy
Centralized redundant storage
2010
Cloud hosting offers many advantages over normal VPS or Semi-Dedicated server hosting services due to the number of servers that are being used for a single cluster, and if you or your business rely greatly on your website, Cloud hosting is the best suitable option for you. The enhanced architecture powering Cloud hosting solution utilize groups of high specification servers, network attached storage devices to reliably serve every web page, and image of a website. Inside each storage device, drives are replicated to each other in a RAID configuration to create a first level of redundancy.
With Virtual Private server, you will not get guaranteed resources that you will pay for, which means other user of the VPS node could squeeze in on your allotted resources but this is not case with Cloud server, you will get the guaranteed amount of resources you are paying for and it's always available when you need them. In addition to all these features, you will also get the ability to customize the resources of Cloud server anytime. VPS is not at all reliable when compared to Cloud server because VPS is based on software virtualization platform. Each platform of servers have their merits and demerits but here there are no demerits of Cloud server, so now it depends on you whether to choose VPS or Cloud server after understanding the needs and the service that you are looking.
http://www.vps.net/blog/2012/08/20/vps-vs-cloud-server/
Cloud Servers have three primary advantages over a traditional VPS.
Near limitless flexibility with resource sizes.
On the fly resource upgrades, sometimes without even requiring a reboot.
Significantly better redundancy
Centralized redundant storage
VPS - not quite reliable on stability
Today, our web hosting on VPS is down. Called the technical support for
the reason saying that VPS down is common.
the reason saying that VPS down is common.
Mac shortcut symbols
Monday, December 24, 2012
Ruby - Notes on using Yardoc
List Options
$> yard help doc
Add additional tags:
>$ yardoc --tag data_source:"Data Source"
where data_source is the tag in comment. e.g. # @datasource The data is gathered by client collection.
"Data Source" is the string that appears on the generated document.
OR
Create a .yardopts file in project root, add the line --tag data_source:"Data Source"
Then >$yardoc
https://rubydoc.tenderapp.com/kb/getting-started-with-rubydocinfo/setting-up-a-yardopts-file
$> yard help doc
Add additional tags:
>$ yardoc --tag data_source:"Data Source"
where data_source is the tag in comment. e.g. # @datasource The data is gathered by client collection.
"Data Source" is the string that appears on the generated document.
OR
Create a .yardopts file in project root, add the line --tag data_source:"Data Source"
Then >$yardoc
https://rubydoc.tenderapp.com/kb/getting-started-with-rubydocinfo/setting-up-a-yardopts-file
Thursday, December 20, 2012
Ruby yardoc - Remove view source from generated document
1. Create a file like
.../your_project_directory/doc/my_template/default/method_details/setup.rb
2. $>yardoc -p ./doc/my_template
.../your_project_directory/doc/my_template/default/method_details/setup.rb
2. $>yardoc -p ./doc/my_template
Ruby on Rails documentation
YARD
Yay! A Ruby Documentation Tool
http://yardoc.org/
http://rubydoc.info/docs/yard/file/docs/GettingStarted.md
http://rubydoc.info/docs/yard/file/docs/Tags.md#taglist
(rake doc:app hanged on processing one of the class)
Yay! A Ruby Documentation Tool
http://yardoc.org/
http://rubydoc.info/docs/yard/file/docs/GettingStarted.md
http://rubydoc.info/docs/yard/file/docs/Tags.md#taglist
(rake doc:app hanged on processing one of the class)
Rails Solve : You have already activated ... , but your Gemfile requires ...
Solution 1:
Use gems version as in Gemfile.lock $> bundle exec ...
Solution 2:
1. Include e.g. gem "rake", [some_version] in Gemfile
2. Update Gemfile.lock by $> bundle update
Use gems version as in Gemfile.lock $> bundle exec ...
Solution 2:
1. Include e.g. gem "rake", [some_version] in Gemfile
2. Update Gemfile.lock by $> bundle update
Wednesday, December 19, 2012
Visio alternative on Mac
OminGraffle
http://www.omnigroup.com/products/omnigraffle/
And awesome stencils
http://www.graffletopia.com/
Very nice!
See also: draw.io
http://www.omnigroup.com/products/omnigraffle/
And awesome stencils
http://www.graffletopia.com/
Very nice!
See also: draw.io
Mistake - Fix lost after deployment
In today's deployment, one of our previous adhoc fix was lost since I miss the merge from fix to development branch. In order to avoid that from happening again, I will try to use a different branching approach:
Named development branches
This are development branches use for implementation of different features. It can only contain code on story and merge from _production branch. In this way, individual story can be deployed to production without including other stories.
master branch
This is the branch that merge named development branches for the features that's going to be release to staging/production server. It can contains codes from all dev branches and _production branch.
_staging branch
This is the branch in sync with staging release, every deployment to staging server mush be on this branch. Merges from master, dev and/or _production branches for deployment.
_production branch
This is the branch in sync with production release, every deployment to production server must be on this branch. Merges from _staging branch for deployment. Any urgent or adhoc fixes on production branches should be merged to at least master and _staging branch according.
Named development branches
This are development branches use for implementation of different features. It can only contain code on story and merge from _production branch. In this way, individual story can be deployed to production without including other stories.
master branch
This is the branch that merge named development branches for the features that's going to be release to staging/production server. It can contains codes from all dev branches and _production branch.
_staging branch
This is the branch in sync with staging release, every deployment to staging server mush be on this branch. Merges from master, dev and/or _production branches for deployment.
_production branch
This is the branch in sync with production release, every deployment to production server must be on this branch. Merges from _staging branch for deployment. Any urgent or adhoc fixes on production branches should be merged to at least master and _staging branch according.
Monday, December 17, 2012
Linux - backup directory by tar.gz
tar -zpcv -f ./paperclip.20121217.tar.gz ./paperclip
Thursday, December 13, 2012
Coding convention as on ruby on rails development
As suggested by ruby on rails framework development:
Follow the Coding Conventions
Rails follows a simple set of coding style conventions.
Follow the Coding Conventions
Rails follows a simple set of coding style conventions.
- Two spaces, no tabs (for indentation).
- No trailing whitespace. Blank lines should not have any spaces.
- Indent after private/protected.
- Prefer &&/|| over and/or.
- Prefer class << self over self.method for class methods.
- Use MyClass.my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
- Use a = b and not a=b.
- Follow the conventions in the source you see used already.
- The above are guidelines — please use your best judgment in using them.
Sunday, December 9, 2012
Solve - Modx friendly url not working
Problem:
Modx config -> Friendly URL -> yes.
http://localhost/home.html -> Page not found.
Solution:
enable mod_rewrite:
$> sudo a2enmod rewrite
$> sudo service apache2 restart
/etc/apache2/sites-avaiable/default:
AllowOverride all
ht.access -> .htaccess
Reference:
http://wiki.modxcms.com/index.php/Friendly_URLs_Guide
http://rtfm.modx.com/display/Evo1/Moving+Site
Modx config -> Friendly URL -> yes.
http://localhost/home.html -> Page not found.
Solution:
enable mod_rewrite:
$> sudo a2enmod rewrite
$> sudo service apache2 restart
/etc/apache2/sites-avaiable/default:
AllowOverride all
ht.access -> .htaccess
Reference:
http://wiki.modxcms.com/index.php/Friendly_URLs_Guide
http://rtfm.modx.com/display/Evo1/Moving+Site
Solved - Configuration warning: 'GD and/or Zip PHP extensions not found' on MODX
$ sudo apt-get install php5-gd
reference:
http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/
reference:
http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/
Friday, December 7, 2012
Enable https on apache2
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 restart
sudo a2ensite default-ssl
sudo service apache2 restart
Apache add virtual host on a new port
1. Create a site
$> cp /etc/apache2/sites-available/default /etc/apache2/sites-available/newsite
edit /etc/apache2/sites-available/newsite:
<VirtualHost *:8082>
ServerAdmin ops@example.com
DocumentRoot /home/yourname/www
...
2. Enable a site
$> ln -s /etc/apache2/sites-available/newsite /etc/apache2/site-enabled/newsite
3. Listen to the port
edit /etc/apache2/ports.conf
Listen 80
Listen 8082
NameVirtualHost *:80
NameVirtualHost *:8082
$> cp /etc/apache2/sites-available/default /etc/apache2/sites-available/newsite
edit /etc/apache2/sites-available/newsite:
<VirtualHost *:8082>
ServerAdmin ops@example.com
DocumentRoot /home/yourname/www
...
2. Enable a site
$> ln -s /etc/apache2/sites-available/newsite /etc/apache2/site-enabled/newsite
or
$> sudo a2ensite newsite
3. Listen to the port
edit /etc/apache2/ports.conf
Listen 80
Listen 8082
NameVirtualHost *:80
NameVirtualHost *:8082
Thursday, December 6, 2012
Setup Ubuntu for Modx Evolution - Part 3
http://wiki.modxcms.com/index.php/Installation_Guide
Ensure https supports:
sudo a2ensite default-ssl
sudo a2enmod ssl
Note: if site copied from original, make sure it's hosted on the same /home/cms/public_html or change paths accordingly.
Ensure https supports:
sudo a2ensite default-ssl
sudo a2enmod ssl
Note: if site copied from original, make sure it's hosted on the same /home/cms/public_html or change paths accordingly.
Switch to utf8 in mysql on ubuntu - Update
[mysqld]
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
[mysqld] default-character-set=utf8 (This line bugged and mysqld couldn't start!) [client] default-character-set=utf8
https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/958120
Restart:
$> sudo service mysql restart
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
[mysqld] default-character-set=utf8 (This line bugged and mysqld couldn't start!) [client] default-character-set=utf8
https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/958120
Restart:
$> sudo service mysql restart
Switch to utf8 in mysql on ubuntu
http://blog.lesc.se/2011/06/switch-to-utf-8-charset-in-mysql-on.html
Switch to UTF-8 charset in Mysql on Ubuntu
When installing Mysql on Ubuntu the default character set is probably latin-1. Since Ubuntu uses UTF-8 for most other things this may be little strange. But it is easy to change.
The Mysql configuration file
This will make it include settings on the subdirectory
Create a new file:
Restart mysql and you will have UTF-8 as character set:
The Mysql configuration file
/etc/mysql/my.cnf
has a magic line:!includedir /etc/mysql/conf.d/
This will make it include settings on the subdirectory
conf.d
. It's not recommended to change the my.cnf
file directly since it will cause problems when upgrading Ubuntu/Mysql to a new version.Create a new file:
/etc/mysql/conf.d/utf8_charset.cnf
with the following contents:[mysqld] default-character-set=utf8 [client] default-character-set=utf8
Restart mysql and you will have UTF-8 as character set:
$ mysql -u root -p -e "show variables like '%character%'" +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
Setup Ubuntu for Modx Evolution - Part 2
Configurations:
Create user account:
$> sudo useradd -m -s /bin/bash cms
$> sudo passwd cms
The user created will not be in the sudoers file.
-s : for setting the bash be the default shell.
-m: create /home/cms as user's home directory.
($> sudo userdel -r cms) to rollback
Migrate contents from current Modx CMS hosting on another server.
1. GZip tar and download the entire /public_html directory for old server.
2. Upload to /home/cms.
3. $> tar -zxvf public_html.tar.gz
4. Set apache document root to /home/cms/public_html
5. Restart apache: sudo service apache2 restart
6. Locate database config file: search database name within the files under /public_html
7. Config file: /manager/includes/config.inc.php
8. On the old server, export database by phpmyadmin>Export databases. -> localhost.sql
9. Copy localhost.sql to /home/cms
10. Restore database: $> mysql - u user_name -p database_name < file_name.sql
Create user account:
$> sudo useradd -m -s /bin/bash cms
$> sudo passwd cms
The user created will not be in the sudoers file.
-s : for setting the bash be the default shell.
-m: create /home/cms as user's home directory.
($> sudo userdel -r cms) to rollback
Migrate contents from current Modx CMS hosting on another server.
1. GZip tar and download the entire /public_html directory for old server.
2. Upload to /home/cms.
3. $> tar -zxvf public_html.tar.gz
4. Set apache document root to /home/cms/public_html
5. Restart apache: sudo service apache2 restart
6. Locate database config file: search database name within the files under /public_html
7. Config file: /manager/includes/config.inc.php
8. On the old server, export database by phpmyadmin>Export databases. -> localhost.sql
9. Copy localhost.sql to /home/cms
10. Restore database: $> mysql - u user_name -p database_name < file_name.sql
References:
http://www.cyberciti.biz/faq/howto-add-new-linux-user-account/
http://linux.vbird.org/linux_basic/0410accountmanager.php
http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/
http://codeistry.com/help/uploading-downloading-and-backing-up-modx-sites
http://www.cyberciti.biz/faq/howto-add-new-linux-user-account/
http://linux.vbird.org/linux_basic/0410accountmanager.php
http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/
http://codeistry.com/help/uploading-downloading-and-backing-up-modx-sites
Project management - decide a story's point on task board
When it comes to review stories on task board and have to decide the
complexity points on every story, one approach is for every developer
and lead to think on their own without communicate with each other.
Then after everyone is ready, show the estimated points to all and
discuss the reason behind it. It would be quite a effective way.
complexity points on every story, one approach is for every developer
and lead to think on their own without communicate with each other.
Then after everyone is ready, show the estimated points to all and
discuss the reason behind it. It would be quite a effective way.
Wednesday, December 5, 2012
Setup Ubuntu for Modx Evolution - Part 1
Procedures for setup Ubuntu and Modx Revolution:
Install Ubuntu Server 12.04
SSH:
Installation: sudo apt-get install openssh-server openssh-client
Verify: ssh localhost
Apache2:
Installation: sudo apt-get install apache2
Verify: http://localhost or the IP
Verify: sudo netstat -tap | grep mysql
Location: /etc/apache2/
Mysql:
Installation:
sudo apt-get install mysql-server
sudo apt-get install php5-mysql
Verify: sudo netstat -tap | grep mysql
PHP5:
Installation: sudo apt-get install php5 libapache2-mod-php5
Restart Apache: sudo service apache2 restart
Verify: <?php
phpinfo();
?>
Configurations:
edit /etc/apache2/sites-available/default, set the DocumentRoot there to /home/your_name/www
References:
http://www.cyberciti.biz/faq/ubuntu-linux-openssh-server-installation-and-configuration/
https://help.ubuntu.com/12.04/serverguide/index.html
Install Ubuntu Server 12.04
SSH:
Installation: sudo apt-get install openssh-server openssh-client
Verify: ssh localhost
Apache2:
Installation: sudo apt-get install apache2
Verify: http://localhost or the IP
Verify: sudo netstat -tap | grep mysql
Location: /etc/apache2/
Mysql:
Installation:
sudo apt-get install mysql-server
sudo apt-get install php5-mysql
Verify: sudo netstat -tap | grep mysql
PHP5:
Installation: sudo apt-get install php5 libapache2-mod-php5
Restart Apache: sudo service apache2 restart
Verify: <?php
phpinfo();
?>
Configurations:
edit /etc/apache2/sites-available/default, set the DocumentRoot there to /home/your_name/www
References:
http://www.cyberciti.biz/faq/ubuntu-linux-openssh-server-installation-and-configuration/
https://help.ubuntu.com/12.04/serverguide/index.html
Linux check version/distribution
$> lsb_release -a
or
$> cat /etc/*-release
or
$> cat /etc/*-release
postgresql psql show database, table, column
SHOW TABLE:
postgresql: \d
postgresql: SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';
SHOW DATABASES
postgresql: \l
postgresql: SELECT datname FROM pg_database;
SHOW COLUMNS
postgresql: \d table
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name ='table';
DESCRIBE TABLE
postgresql: \d+ table
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name ='table';
RENAME DATABASE
postgresql: alter database old_name rename to new_name;
postgresql: \d
postgresql: SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';
SHOW DATABASES
postgresql: \l
postgresql: SELECT datname FROM pg_database;
SHOW COLUMNS
postgresql: \d table
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name ='table';
DESCRIBE TABLE
postgresql: \d+ table
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name ='table';
RENAME DATABASE
postgresql: alter database old_name rename to new_name;
Linux - list hardware configuration
lshw
sudo lshw
sudo lshw
Monday, December 3, 2012
Rails migration by sql statement directly
Sometimes you need to do something in SQL not abstracted directly by migrations:
class MakeJoinUnique < ActiveRecord::Migration
def up
execute "ALTER TABLE `pages_linked_pages` ADD UNIQUE `page_id_linked_page_id` (`page_id`,`linked_page_id`)"
end
def down
execute "ALTER TABLE `pages_linked_pages` DROP INDEX `page_id_linked_page_id`"
end
end
Subscribe to:
Posts (Atom)