Sunday, 16 September 2012

Compiling flags

These are just the common ones, use
./configure --help
to see what are actually available for your program.
# Some influential environment variables: 
#   CC          C compiler command                                                          
#   CFLAGS      C compiler flags                                                            
#   LDFLAGS     linker flags, e.g. -L if you have libraries in a                   
#               nonstandard directory                                              
#   LIBS        libraries to pass to the linker, e.g. -l                           
#   CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I if               
#               you have headers in a nonstandard directory                    
#   CPP         C preprocessor                                                              
#   MPICC       MPI C compiler command                                                      
#   F77         Fortran 77 compiler command                                                 
#   FFLAGS      Fortran 77 compiler flags                                                   

# Installation directories:                                                                 
#   --prefix=PREFIX         install architecture-independent files in PREFIX                
#                           [/usr/local]                                                    
#   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX                 
#                           [PREFIX]  

# Fine tuning of the installation directories:  
#   --bindir=DIR            user executables [EPREFIX/bin]                                  
#   --sbindir=DIR           system admin executables [EPREFIX/sbin]                         
#   --libexecdir=DIR        program executables [EPREFIX/libexec]                           
#   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]                      
#   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]           
#   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]                     
#   --libdir=DIR            object code libraries [EPREFIX/lib]                             
#   --includedir=DIR        C header files [PREFIX/include]                                 
#   --oldincludedir=DIR     C header files for non-gcc [/usr/include]                       
#   --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]            
#   --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]           
#   --infodir=DIR           info documentation [DATAROOTDIR/info]                           
#   --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]                      
#   --mandir=DIR            man documentation [DATAROOTDIR/man]                             
#   --docdir=DIR            documentation root [DATAROOTDIR/doc/fftw]                       
#   --htmldir=DIR           html documentation [DOCDIR]                                     
#   --dvidir=DIR            dvi documentation [DOCDIR]                                      
#   --pdfdir=DIR            pdf documentation [DOCDIR]                                      
#   --psdir=DIR             ps documentation [DOCDIR] 

# Program names:                                                                            
#   --program-prefix=PREFIX            prepend PREFIX to installed program names            
#   --program-suffix=SUFFIX            append SUFFIX to installed program names             
#   --program-transform-name=PROGRAM   run sed PROGRAM on installed program names           
                                                                                          
# System types:                                                                             
#   --build=BUILD     configure for building on BUILD [guessed]                             
#   --host=HOST       cross-compile to build programs to run on HOST [BUILD]  

VMD Common Commands


pbc wrap -centersel protein -center com -compound res                                     
                                                                                          
                                                                                          
source ~/pybin/sscache.tcl;      # execute the commands in tcl file, same as -e           
mol new lala.gro;                # load new molecules                                     
mol delete 0                                                                              
                                                                                          
mol addfile lala.xtc -waitfor all;                        # load the trajectory           
mol cancel 0                                              # cancel trajectory loading     
                                                                                          
mol top 0                                                   # T                           
mol active 0                                                # A                           
mol inactive 0                                                                            
mol on 0                                                    # D                           
mol off 0                                                                                 
mol fix 0                                                   # F                           
mol free 0                                                                                
                                                                                          
mol reanalyze                                                                             
mol bondsrecalc                                                                           
mol ssreclac                                                                              
mol rename     


################################AVAILABLE MENUS#####################################      
# main color material display files labels graphics render save tool parsefep      #      
# apbsrun plumed contactmap heatmapper hbonds ilstools irspecgui multiseq          #      
# namdenergy namdplot networkview nmwiz pmepot propka gofrgui ramaplot rmsd        #      
# rmsdtt rmsdvt saltbr symmetrytool sequence timeline volmap biocorelogin          #      
# biocorechat biocorepubsync biocoreutil dataimport pdbtool multitext autoionize   #      
# solvate autopsf cggui dowser_gui chirality_gui cispeptide_gui forcefieldtoolkit  #      
# inorganicbuilder membrane mergestructs molefacture mutator nanotube paratool     #      
# autoimd imd namdgui qmtool navigate navfly cliptool clonerep colorscalebar       #      
# dipwatch vmdmovie multimolanim palettetool ruler remote viewchangerender_gui     #      
# viewmaster vdna tkcon                                                            #      
####################################################################################      
                                                                                          
                                                                                          
###########################ABOUT STRUCTURE SELECTION###########################           
# i.e.                                                                                    
#     structure 2 {resid 10 to 38} helix                                                  
#     structure top {chain B} beta_sheet                                                  
# AVAILABLE STRUCTURE TYPES:                                                              
#     helix = alpha_helix                                                                 
#     helix_3_10                                                                          
#     pi_helix                                                                            
#     sheet = beta_sheet = extended_beta                                                  
#     bridge_beta                                                                         
#     turn                                                                                
#     coil      

Thursday, 13 September 2012

MySQL Cheat Sheet

# useful, about root password setting http://www.cyberciti.biz/faq/mysql-change-root-password/

################################ as root
mysql -u root -p

$ create a user
create user 'username'@'localhost' identified by 'somepassword';

$ grant privileges
grant all privileges on [database].* to 'username'@'localhost' with grant option;

##################################Others
mysql> drop table [table name];
mysql> SELECT * FROM [table name];
mysql> show columns from [table name];
mysql> SELECT COUNT(*) FROM [table name];
mysql> SELECT SUM(*) FROM [table name];
mysql> SELECT DISTINCT [column name] FROM [table name];
mysql> SELECT * FROM [table name] WHERE [field name] = whatever;
mysql> SELECT * FROM [table name] WHERE name = Bob AND phone_number = '3444444';
mysql> SELECT * FROM [table name] WHERE name != Bob order by phone_number;

mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
mysql> UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y' where [field name] = 'user';
mysql> DELETE from [table name] where [field name] = 'whatever';


-- Show all records starting with the letters 'bob' AND the phone number '3444444'.
mysql> SELECT * FROM [table name] WHERE name like Bob% AND phone_number = '3444444';

-- Show all records starting with the letters 'bob' AND the phone number '3444444' limit to records 1 through 5.
mysql> SELECT * FROM [table name] WHERE name like Bob% AND phone_number = '3444444' limit 15;

-- Use a regular expression to find records. Use REGEXP BINARY to force case-sensitivity. This finds any record beginning with a.
mysql> SELECT * FROM [table name] WHERE rec RLIKE ^a;

-- Join tables on common columns.
mysql> select lookup.illustrationid, lookup.personid,person.birthday from
lookup left join person on lookup.personid=person.personid=statement to join
birthday in person table with primary illustration id;

-- Creating a new user. Login as root. Switch to the MySQL db. Make the user. Update privs.
# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('password'));
mysql> flush privileges;

Change a users password from unix shell.
# [mysql dir]/bin/mysqladmin -u username -h hostname.blah.org -p password 'new-password'

Change a users password from MySQL prompt. Login as root. Set the password. Update privs.
# mysql -u root -p
mysql> SET PASSWORD FOR 'user'@'hostname' = PASSWORD('passwordhere');
mysql> flush privileges;

-- Recover a MySQL root password. Stop the MySQL server process. Start again
   with no grant tables. Login to MySQL as root. Set new password. Exit MySQL
   and restart MySQL server.

# /etc/init.d/mysql stop
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD(newrootpassword) where User='root';
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysql stop
# /etc/init.d/mysql start

-- Set a root password if there is on root password.
# mysqladmin -u root password newpassword

-- Update a root password.
# mysqladmin -u root -p oldpassword newpassword

-- Allow the user bob to connect to the server from localhost using the
   password passwd. Login as root. Switch to the MySQL db. Give privs. Update
   privs.
# mysql -u root -p
mysql> use mysql;
mysql> grant usage on *.* to bob@localhost identified by 'passwd';
mysql> flush privileges;

-- Give user privilages for a db. Login as root. Switch to the MySQL db. Grant
   privs. Update privs.
# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','databasename','username','Y','Y','Y','Y','Y','N');
mysql> flush privileges;
or
mysql> grant all privileges on databasename.* to username@localhost;
mysql> flush privileges;

-- Update database permissions/privilages.
mysql> flush privileges;

-- Delete a column.
mysql> alter table [table name] drop column [column name];

-- Add a new column to db.
mysql> alter table [table name] add column [new column name] varchar (20);

-- Change column name.
mysql> alter table [table name] change [old column name] [new column name] varchar (50);

-- Make a unique column so you get no dupes.
mysql> alter table [table name] add unique ([column name]);

-- Make a column bigger.
mysql> alter table [table name] modify [column name] VARCHAR(3);

-- Delete unique from table.
mysql> alter table [table name] drop index [colmn name];

-- Load a CSV file into a table.
mysql> LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name]
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);

-- Dump all databases for backup. Backup file is sql commands to recreate all db's.
# [mysql dir]/bin/mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql

-- Dump one database for backup.
# [mysql dir]/bin/mysqldump -u username -ppassword --databases databasename >/tmp/databasename.sql

-- Dump a table from a database.
# [mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql

-- Restore database (or database table) from backup.
# [mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql />

-- Create Table Example 1.
mysql> CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial
VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid
VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups
VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));


Misc Linux Tip


# CURL
http://www.yilmazhuseyin.com/blog/dev/curl-tutorial-examples-usage/
curl --request GET www.google.com -I

# About desktop environment 
The so-called Desktop Environment (DE) is a integration of softwares like
Window Manager (WM), File Manager (FM), X Display Manager (DM), Widget Toolkit
(WT) and so on.

Common options:

DE: Gnome, KDE, LXDE,
WM: Metacity (Genome), Mutter (Gnome3), Kwin, Awesome, Xmonad, Openbox
FM: Konqueror, Nautilus, PCManFM, Windows Explorer, Finder
DM: KDM, GDM
WT: Qt, GTK+

## system example

Unix/Linux X11     TWM
Mac OSX   Quartz  Aqua  #though Mac also provides an X11.app
DOS   Windows

The windows drawn by Quartz is very different from that drawn by X11.app, which

is obvious when using wireshark on Mac

# AWK
## remove every second line
awk 'NR%2==0' file

awk '{printf "canceljob %s\n", $LINE | "/bin/sh"} END {}' lala

Maybe not the best way to do so, here each line contains a series of job id separated by space.


# SED
cat raw.data | sed -n 1~10p > raw.data.every10points                                     
cat raw.data | sed -n 1~100p > raw.data.every100points

# sed one by one
sed 'y/abcdef/ABCDEF/' file


# SPLIT
split -b 10000000 chrY.fa chry.

# OTHERS
su                              # su to root                                             
cat /etc/lsb-release            # check the version of ubuntu                             
cat /proc/cpuinfo 

# TCL
## Some notes
1. Single quotes are not significant                                                     
2. A command within square brackets ([]) is replaced with the result of the               
execution of that command                                                                 
3. Words within double quotes or braces are grouped into a single argument.               
4. The backslash (\) disables substitution for the single character                     
immediately following the backslash.                                                      
5. Grouping words within double braces disables substitution within the braces           
6. The Tcl command for doing math type operations is "expr", and enclosing the           
arguments to expr in curly braces will result in faster code 

# learning NFS (http://www.sysadminshare.com/2011/03/how-to-read-content-of-mbr-in-linux.html)
## stopping nfs service
$ su root
/etc/init.d/portmap stop
/etc/init.d/nfs-kernel-server stop
## /etc/exports modification

# read MDBTo see the contents of your MBR, use this command:

# dd if=/dev/hda of=mbr.bin bs=512 count=1 
# od -xa mbr.bin
  The dd command, which needs to be run from root, reads the first 512 bytes from /dev/hda (the first Integrated Drive Electronics, or IDE drive) and writes them to the mbr.bin file. 

The od command prints the binary file in hex and ASCII formats.