If you are a research lab member, please login to the internal wiki

  • Map any key to any key on Windows
    Posted Nov 18, 2017, 10:17 AM by Dong Xu
  • Ginger iptables outbound rules -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT-A ...
    Posted Nov 6, 2017, 12:39 PM by Dong Xu
  • Add a Domain name to Google Site Follow instructions here 1 Make sure your domain is using our default name servers. Your domain must be using ...
    Posted Nov 4, 2017, 10:17 AM by Dong Xu
  • Cat concatenate gz files file1.gz file2.gz file3.gz > allfiles-cat.gz zcat file1.gz file2.gz file3.gz | gzip -c > allfiles-zcat.gz zcat allfiles ...
    Posted Oct 26, 2017, 1:30 PM by Dong Xu
  • Windows Subsystem for Linux (WSL), Anaconda, Conda, Jupyter Wow!!! Starting in Windows 10 Anniversary Update, the Windows Subsystem for Linux can invoke native Windows binaries from the Linux console and Linux binaries from a Windows console.  https://msdn ...
    Posted Oct 31, 2017, 6:00 PM by Dong Xu
  • Convert SVG to PNG or JPG  I haven't been able to get good results from ImageMagick in this instance ...
    Posted Oct 24, 2017, 10:26 AM by Dong Xu
  • SCM-ADF uses VTK7 and newer OpenGL features to dramatically speed up the visualization of large systems. This comes with a ...
    Posted Apr 26, 2017, 2:09 PM by Dong Xu
  • Encrypt shell script on Linux and BAT file on Windows Linux ShellHow to: shc: -r -f ./script ...
    Posted Oct 17, 2017, 2:39 PM by Dong Xu
  • Rdkit Cairo Fix for Drawing Molecules from rdkit import Chemfrom rdkit.Chem import AllChemfrom rdkit.Chem import DrawAllChem.Compute2DCoords(m)m = Chem.MolFromSmiles('c1nccc2n1ccc2')Draw.MolToFile(m,'/tmp/test.png')Errors pops up ...
    Posted Apr 18, 2017, 5:00 PM by Dong Xu
  • Linux Cheat Sheet
    Posted Apr 11, 2017, 5:30 PM by Dong Xu
  • Anaconda conda in Schrodinger virtual env ipython='python -m ...
    Posted Sep 18, 2017, 12:46 PM by Dong Xu
  • APC Smart UPS The packages are: apcupsd and apcupsd-gui The status of the daemon can be found with: systemctl status apcupsd.service The graphical interface is: gapcmon And the config file is ...
    Posted Feb 23, 2017, 3:34 PM by Dong Xu
  • Ginger iptables/firewall It's turned on. To change config: vi /etc/iptables/rules.v4
    Posted Jan 30, 2017, 6:34 PM by Dong Xu
  • netcat/nc port scan if a port is opennc -z -v -w5 <host> <port/range>-w5: 5s timeout is optionalExample: nc -zv domain ...
    Posted Nov 2, 2017, 1:20 PM by Dong Xu
  • Firefox 48 update on SLES 12 SP1 Initial update caused breaking of default Gnome Login Screen, the following will prevent it: 1. Open Yast2-->Software-->Software Management 2. Search for firefox 3. Select MozillaFirefox and bring up ...
    Posted Dec 15, 2016, 3:06 PM by Dong Xu
  • awk over ssh all "ps aux|grep virtualgrid|awk '{print \$2}'|head -1|xargs -ti kill {}" all 'nohup virtualgrid -nogui >& virtualgrid_`hostname`.log&'
    Posted Oct 14, 2016, 4:11 PM by Dong Xu
  • Real CPU Load top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{ split($1, vs, ","); v=vs[length(vs)]; sub("%", "", v); printf "%s%.1f%%\n", prefix ...
    Posted Oct 1, 2016, 8:23 PM by Dong Xu
  • Check python unicode version ucs2 vs ucs4 This is for python 2.7When built with --enable-unicode=ucs4: >>> import sys >>> print sys.maxunicode 1114111 When built with --enable-unicode=ucs2: >>> import sys >>> print sys.maxunicode 65535 ...
    Posted Feb 23, 2017, 10:04 AM by Dong Xu
  • Remove python apps installed through “python install” "You need to remove all files manually, and also undo any other stuff that installation did manually. If you don't know the list of all files, you can reinstall ...
    Posted Sep 6, 2016, 11:59 PM by Dong Xu
  • Anaconda env for multi-users!topic/anaconda/qinxkmvlnSg sudo su - adduser anaconda mkdir /opt/anaconda ./path/to/ -b -p /opt/anaconda chown -R anaconda ...
    Posted Sep 6, 2016, 10:03 PM by Dong Xu
  • Monitor Installer/Program Changes in Windows 8 suggested tools suggested tools ...
    Posted Aug 26, 2016, 12:00 PM by Dong Xu
  • SUSE12 clone OS Disk Grub2 ext4 1. Use ddrescue to close to a new disk via USB3. Note that the source OS drive does not need umount2. The new disk should be able to boot ...
    Posted Aug 23, 2016, 5:38 PM by Dong Xu
  • GPU Overclock ...
    Posted Aug 17, 2016, 4:13 PM by Dong Xu
  • GPU fan speed control 1. Do this only onceEnabling Control of Fan Speed and generate xorg.conf file, Adds coolbits to the xorg filesudo nvidia-xconfig -a --cool-bits=28 --allow-empty ...
    Posted Aug 30, 2016, 3:57 PM by Dong Xu
  • Windows 8 AppLocker ...
    Posted Aug 12, 2016, 5:42 PM by Dong Xu
  • Windows 8 NSF NFSv4 Support!! only NFSv3 supportFor v4 support, try UMich program ...
    Posted Aug 12, 2016, 5:48 PM by Dong Xu
  • Windows 8 RDP Hack ...
    Posted Aug 12, 2016, 4:24 PM by Dong Xu
  • NVRM: os_schedule: Attempted to yield the CPU while in atomic or interrupt context This is GPU0 Titan Z in peppersee[   26.328777] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  361 ...
    Posted Aug 14, 2016, 8:35 AM by Dong Xu
  • File encryption using OpenSSL and PGP Tar the directory tar cvf backup.tar /path/to/folder You can remove the [v] switch from the tar command to switch off the verbose mode. Encrypt openssl aes-256 ...
    Posted Aug 3, 2016, 10:29 AM by Dong Xu
  • Startup scipt for ubuntu 1. simple, requires rootvi /etc/rc.local2. upstart systemA simple command (one which doesn't need to remain running) could use an Upstart job like: start on ...
    Posted Aug 2, 2016, 5:18 PM by Dong Xu
  • Bash commands usage examples: sed, awk etc. #awk one liner one-liner ...
    Posted Oct 8, 2016, 11:10 PM by Dong Xu
  • Well said about GPUs, applicable to computing Always use the latest NVIDIA drivers! (some older versions can cause crashing of FurryBall) Remember, if you will use FurryBall with OLD ...
    Posted Aug 2, 2016, 5:20 PM by Dong Xu
  • BUG: soft lockup - CPU#1 stuck for 22s! [Xorg:2982] Solution: disabling C-states in the BIOS  and other CPU power-saving options such as Turbo Mode/Turbo Boost  etc.. should fix this.Some people also tried adding clocksource=jiffies ...
    Posted Aug 2, 2016, 9:53 AM by Dong Xu
  • Remove an IP address that DenyHosts blocked? /etc/denyhosts.confWORK_DIR=/var/lib/denyhostsIf you have been accidentally locked out of one of your hosts (because DenyHosts has added it to /etc/hosts.deny you ...
    Posted Apr 25, 2017, 3:34 PM by Dong Xu
  • Check Linux distro version, LSB, and diagnose binary file Count number of CPUsgrep -c ^processor /proc/cpuinfo mpstat -P ALL|head -1|cut -d'(' -f3|cut -d')' -f1Distro version (this will also show LSB version): lsb_release ...
    Posted Aug 2, 2016, 4:50 PM by Dong Xu
  • MAC address Start/stop network interfaceOld SUSE ifup, ifdown, ifstatus ...
    Posted Jul 26, 2016, 1:09 AM by Dong Xu
  • Basename ${variable%pattern} Trim the shortest match from the end ${variable##pattern} Trim the longest match from the beginning ${variable%%pattern} Trim the longest match from the end ${variable#pattern} Trim ...
    Posted Jul 22, 2016, 8:23 PM by Dong Xu
  • Passwordless for sudo over ssh 1) sudo vi /etc/sudoers: jenkins ALL=(ALL) NOPASSWD: ALL 2) Put the line after all other lines in the sudoers file! That worked for Ubuntu 14.4 and SUSE12 ...
    Posted Jul 21, 2016, 12:10 AM by Dong Xu
  • Configure sshd openssh you made a change to /etc/ssh/sshd_config you must restart the SSHD or make it reload its configuration by typing ...
    Posted Jul 21, 2016, 12:04 AM by Dong Xu
  • After.local You can also write your scripts and then execute them from /etc/init.d/after.local and /etc/init.d/halt.local The after.local script will be run after ...
    Posted Jul 20, 2016, 7:16 PM by Dong Xu
  • IPTables persistent ...
    Posted Jul 20, 2016, 6:57 PM by Dong Xu
  • Schrodinger Docs Maestro-11 Reference Card ...
    Posted Nov 16, 2017, 8:35 AM by Dong Xu
  • clusterssh/cssh - multiple host ssh/exec to install package for perlas root cpan -i Tk
    Posted Jul 14, 2016, 4:54 PM by Dong Xu
  • GPU nvidia-smi and Schrodinger Schrodinger:Second, ensure that all your cards have ECC memory turned off, are set to Exclusive Process Mode, and Persistence Mode is on. Disable ECC by running the following command ...
    Posted Aug 11, 2016, 10:10 PM by Dong Xu
  • Disable VMD GPU use You must set the CUDA-related environment variables in your shell prior to launching VMD. In the case of Unix systems, you'd do this: /bin/csh syntax: setenv VMDNOCUDA ...
    Posted Jul 15, 2016, 1:13 PM by Dong Xu
  • IPTables Block IP and IP Range This is the correct way: iptables -A INPUT -p tcp --match multiport --dport 1024:3000 -j ACCEPT As an example. Source here. iptables -A INPUT -p tcp --dport 1000:2000 ...
    Posted Jul 12, 2016, 7:57 AM by Dong Xu
  • SUSE12 Desktop Login Problems 1. If login windows does not show up, press CTRL-ALT-Backspace2. If still doesn't work, login as root, init 3init 5rm /run/nologinOtherwise "System ...
    Posted Jul 11, 2016, 3:34 PM by Dong Xu
  • Fail2ban unban IP   With Fail2Ban before v0.8.8: fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE With Fail2Ban v0.8.8 and later: fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE The hard part is finding ...
    Posted Jul 12, 2016, 7:46 AM by Dong Xu
  • Xargs ~$ echo 10 20 30 40 50 60 | xargs -n 1 -P 4 sleep The use of “-n 1” is vital if you want to pass only one command-line argument ...
    Posted Jul 9, 2016, 10:12 AM by Dong Xu
  • Super fast backup. copy, move many files To copy a large amount of data, tar is generally faster than rsync. The idea is to start with tar and finish off with a final rsync,tar -cpf - src ...
    Posted Jul 6, 2016, 11:09 PM by Dong Xu
  • Find examples 1. Recursively delete empty directories The find command is the primary tool for recursive, filesystem operations. Use the -type d expression to tell find you're interested in finding directories ...
    Posted Jul 5, 2016, 6:58 PM by Dong Xu
  • Super fast delete a folder with large number of files perl -e 'for(<*>){((stat)[9]<(unlink))}'time find ./ -type f -delete (the BEST)time rsync ...
    Posted Jul 6, 2016, 9:20 AM by Dong Xu
  • Memory editing read: scanmem ...
    Posted Aug 2, 2016, 3:45 PM by Dong Xu
  • White Label hard drives We shoved all the drives in 36 bay Supermicro chassis and LSI 9280 cards and ...
    Posted Jun 24, 2016, 3:04 PM by Dong Xu
  • GPU stress test gpu_burn-0.6.tar.gz (compatible with nvidia-smi and nvcc as of 04-12-2015)This is the best GPU test along with megadock.Note: must run the ...
    Posted Aug 9, 2016, 10:52 AM by Dong Xu
  • SUSE Rescue mode and chroot 1. Start the system with the rescue CD 2. Login with root (no password needed) 3. Mount the / partition. mount /dev/sdc3 /mntmount /dev/sdc1 /mnt/boot4. Give ...
    Posted May 23, 2016, 6:51 PM by Dong Xu
  • How to search DTP/NCI Compounds An easier option is to use Enhanced NCI Database Browser 2.2 Query Data Value, paste SMILES string and set Tc threshold ...
    Posted Sep 5, 2016, 2:34 PM by Dong Xu
  • Python install pip, scipy, numpy, matplotlib Get pip first:Just follow the instructions here: Securely download sure the python version is in the current SEARCH PATH , run sudo python ...
    Posted Mar 1, 2016, 11:12 AM by Dong Xu
  • Adduser vs Useradd (Debian/Ubuntu) Should use adduser which is a perl script that calls useradd and has enhanced features: a ...
    Posted Sep 23, 2017, 3:03 PM by Dong Xu
  • Intel WiDi installation 1. download and run Intel® WiDi Compatibility Tool Get WiDi update tool ...
    Posted Feb 5, 2016, 11:12 AM by Dong Xu
  • Configure X11/Xorg gdm after switching monitors or video cards A potential universal solution is:1. backup the current /etc/X11/xorg.conf2. reinstall nvidia driver3. use xorg.conf.saxsave and replace Device Section as follows. Note that ...
    Posted Feb 3, 2016, 2:24 PM by Dong Xu
  • Linux OS Disk Clone and ext3 resize, fdisk change partition type Essentially, to resize (shrink or enlarge) ext3 partition, we have to use resize2fs. Other methods are unsafeAomei and ddrescue are preferred methods for cloning Linux disks, albeit slower. Aomei ...
    Posted Mar 30, 2016, 9:37 AM by Dong Xu
  • Disk Clone Tools Samsung SSD: use Samsung data migration softwareOther SSD/HD requiresGPT and UEFI, recovery partition supportChoice:Macrium Reflect  (free or non-free version)Paragon's Migrate to SSD ...
    Posted Jan 24, 2016, 12:07 AM by Dong Xu
  • Backup to ACD Amanzon Cloud Drive Use rclone, copy the entire drive D including sub-dirs to ACDrclone.exe -c --log-file=test.log -v copy D:/ remote:wasabi/dnohup rclone -c -v --no ...
    Posted Jan 14, 2016, 1:12 PM by Dong Xu
  • Port Forwarding to Virtual Machine VMWare Workstation users can select Edit –> Virtual Network Editor then follow ...
    Posted Jan 3, 2016, 7:20 PM by Dong Xu
  • Remote desktop from Linux rdesktop -g 1920x1080 host
    Posted Dec 31, 2015, 4:50 PM by Dong Xu
  • Denyhosts vs. iptables Note that DenyHosts will infact block other services - the main difference is that ...
    Posted Dec 30, 2015, 9:50 PM by Dong Xu
  • Setup Crontab/Rsync Automatic Backup on Windows The latest technology is to use WSL, crontab, and rsync: to add yourself to the ...
    Posted Oct 24, 2017, 2:39 PM by Dong Xu
  • GPU Performance Tweak, GPU Boost Warning: Tweaking GPU Boost may be more than its worth because setting higher mclk/pclk will increase GPU temp and stability, triggering auto-throttle and resulting in lower performance. We ...
    Posted Dec 28, 2015, 2:58 PM by Dong Xu
  • FFMPEG CUDA acclerated (using NVEC)
    Posted Dec 24, 2015, 2:30 PM by Dong Xu
  • Monitor CPU/GPU/Mem Utilization CPU/System Monitorvmstat -n 1GPU Monitor nvidia-smi dmon            Displays device stats in scrolling formatnvidia-smi pmon            Displays process stats in scrolling format.nvidia-smi topo -m ...
    Posted Dec 24, 2015, 2:26 PM by Dong Xu
  • Linux Kill Command Generally, you should use kill -15 before kill -9 to give the target process a chance to clean up after itself. (Processes can't catch or ignore SIGKILL, but they ...
    Posted Dec 24, 2015, 10:30 AM by Dong Xu
  • Select GPU for desmond MD jobs on a Multiple-CPU computer (compute and persistence mode) and set power limit Reference: a GPU in  runlevel 3 Most clusters operate at  runlevel 3 ...
    Posted Jan 1, 2016, 9:59 AM by Dong Xu
  • Compile OpenCL App - BUDE Reference: of all, CUDA library did not provide the needed cl ...
    Posted Dec 6, 2015, 9:22 PM by Dong Xu
  • Compile gcc-4.9.3 Follow this: ...
    Posted Nov 25, 2015, 9:16 PM by Dong Xu
  • Gromacs 5.1 Installation Works with gromacs-5.1 using gcc 4.4cmake-3.3.2 ../ -DCMAKE_INSTALL_PREFIX=/garlic/apps/gromacs-5.1/single  -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g ...
    Posted Oct 14, 2015, 12:21 AM by Dong Xu
  • Journal Letters and Communications Nature communications (Impact factor‎: ‎11.47 cost $5200, a bit too much)Nature Scientific Reports (IF: 5.578, cost ~$1500): ...
    Posted Sep 18, 2015, 3:31 PM by Dong Xu
  • JChem Excel Setup
    Posted Sep 16, 2015, 8:24 PM by Dong Xu
  • yast zypper pacman bad key fuse-exfat sudo zypper in -d fuse-exfat #This downloads the rpm file but does not install sudo rpm -i --force --nodeps --nosignature /var/cache/zypp/packages/Essentials/x86_64/fuse-exfat ...
    Posted Sep 7, 2015, 2:10 PM by Dong Xu
  • Move windows 8 user folder Open up ...
    Posted Sep 1, 2015, 12:23 PM by Dong Xu
  • Ginger: ECS LIVA Box to run Linux Runs Linux (two distributions) with no problems AFTER setting the UEFI to non-protected boot.
    Posted Aug 12, 2015, 9:45 PM by Dong Xu
  • ASUS BIOS Config for AMD FX-8350 FX-8350 Scientific performance: the following CPU config ...
    Posted Aug 12, 2015, 9:49 AM by Dong Xu
  • iptables, delete/unblock an IP address iptables -D INPUT -s  x.x.x.x -j DROPiptables -D INPUT -s  x.x.x.x/32 -j DROP ...
    Posted Jul 29, 2015, 5:53 PM by Dong Xu
  • Disable ubuntu nginx web server sudo service nginx stopTo disable autostart nginx servicesudo update-rc.d -f nginx disableapt-get remove nginxvs.apt-get purge nginxFirst one removes all package ...
    Posted Jul 28, 2015, 7:04 PM by Dong Xu
  • Read multiple text files tail -n +1 * (Strictly speaking, tail -n +1 -- * is needed in case one of the file names begins with a -.)E.g. tail -n +1 -- -f -g tells tail that ...
    Posted Jul 27, 2015, 9:15 PM by Dong Xu
  • My First 5 Minutes On A Server; Or, Essential Security for Linux Servers security doesn’t need to be complicated. My security philosophy is simple: adopt ...
    Posted Jul 25, 2015, 10:18 PM by Dong Xu
  • HDPARM 1. Get hard drive infohdparm -i /dev/sda                   (drive ID/SN)hdharm -I /dev/sda                   (detailed) -t   Perform device read timings -T   Perform cache read timings/dev/hda: Timing ...
    Posted Jul 25, 2015, 10:38 AM by Dong Xu
  • Format ext3 partition on >2TB drives The drive needs to be initialized with GPT (Windows Disk Management and Mini Partition Wizard) will worksee: use LVM ...
    Posted Jul 23, 2015, 4:51 PM by Dong Xu
  • Dell Optiplex 990 Intel Network Card driver for SUSE The intel NIC driver is not included in 2.6.32 kernel (supposedly in 2.6.36), so we need1. Download driver source from ...
    Posted Jul 23, 2015, 12:35 PM by Dong Xu
  • Denyhosts installation Other methods against brute force ssh in apt-get ...
    Posted Jul 16, 2015, 7:24 AM by Dong Xu
  • Add iptables rules for Fail2ban mcaylor@ginger:~$ vi rules.v4 mcaylor@ginger:~$ sudo cp rules.v4 /etc/iptables/rules.v4mcaylor@ginger:~$ sudo cp rules.v4 /etc/network/iptables.up.rules mcaylor@ginger:~$ sudo iptables ...
    Posted Jul 13, 2015, 4:05 PM by Dong Xu
  • Stress to test sub-systems Usage: stress [OPTION [ARG]] ... -?, --help         show this help statement     --version      show version statement -v, --verbose      be verbose -q, --quiet        be quiet -n, --dry-run      show what would have been done ...
    Posted Mar 5, 2016, 7:28 PM by Dong Xu
  • logwatch
    Posted Jul 10, 2015, 7:55 PM by Dong Xu
  • Memory Error with ASUS SABERTOOTH 990FX G.SKILL Ripjaws X Series 32GB (4 x 8GB) 240-Pin DDR3 SDRAM DDR3 1600 (PC3 12800) Desktop Memory Model F3-1600C9Q-32GXM 32GB becomes 2GBWARNING: BIOS bug: CPU ...
    Posted Jul 11, 2015, 9:33 PM by Dong Xu
  • Fail2ban ubuntu
    Posted Jul 3, 2015, 5:38 PM by Dong Xu
  • Phpmyadmin auto log-out after "No activity within 1440 seconds"  sudo vi /garlic/apps/apache2/conf/httpd.conf add line php_admin_value session.gc_maxlifetime 86400 to <Location "/phpmyadmin"> block sudo vi /garlic/apps/apache2/htdocs/phpmyadmin/ ...
    Posted Jul 2, 2015, 8:49 PM by Dong Xu
  • /var/log/warn does not have sshd refused hosts sudo vi /etc/ssh/sshd_config uncomment LogLevel INFO restart sshd.
    Posted Jul 2, 2015, 8:47 PM by Dong Xu
  • Putty ssh session timeout Client side:putty settings -> Connection and set the value of "Seconds between keepalives" to 30 For ssh commandline:ssh -o TCPKeepAlive=yes ssh.server.comServer side:vi /etc/ssh ...
    Posted Jun 28, 2015, 3:27 PM by Dong Xu
  • WinSCP error "Cannot initialize SFTP protocol. Is the host running a SFTP server?" Need to change sftp server path to the following in winscp "advanced..." menu:/usr/lib64/ssh/sftp-serverNew version of WinSCP doesn't have this issue
    Posted Sep 4, 2015, 5:22 PM by Dong Xu
  • wget background process wget mirror molport compound databaseswget -bqc -m will create the full path starting from as root dir ...
    Posted Oct 14, 2016, 9:27 AM by Dong Xu
Showing posts 1 - 100 of 192. View more »

Map any key to any key on Windows

posted Nov 18, 2017, 10:17 AM by Dong Xu

Ginger iptables outbound rules

posted Nov 6, 2017, 12:39 PM by Dong Xu

-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 67 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 68 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 3389 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 8000 -j ACCEPT


Adding an Output port to Ginger: Live

  1. Determine where to insert port: sudo iptables --line-numbers -L OUTPUT
  2. Look for the line number of the last statement. (Should be the drop statement.)
  3. sudo iptables -I OUTPUT <number from step 2> -p <tcp/udpl> --dport <port> -j ACCEPT

Adding an Output port to Ginger: Permanent
  1. sudo vi  /etc/iptables/rules.v4
  2. Add -A OUTPUT -p <tcp/udp> -m <tcp/udp> --dport <port> -j ACCEPT just before the -A OUTPUT -j DROP line.

Add a Domain name to Google Site

posted Nov 4, 2017, 9:34 AM by Dong Xu   [ updated Nov 4, 2017, 10:17 AM ]

Follow instructions here

Step 1

Make sure your domain is using our default name servers.

Your domain must be using our default name servers in order for us to run DNS for you**. Check to make sure that the name servers for your domain are set to:
**Remember that name server changes can take up to 72 hours to fully propagate, so if you need to change your name servers as part of this process then you may need to wait to propagation to occur. Also, please remember that services you had running via previously entered name servers likely will stop working.

Step 2

Apply the necessary DNS template

We have made it easy for you to create the CNAME and A Records necessary for the integration with Google. Here are the steps to apply the DNS template:
  1. Go to the DNS Manager page for your domain. You can access the DNS Manager page by going to the Domain Manager page and then clicking the blue globe icon under the "Options" column.
  2. Scroll to the bottom of the DNS Manager page until you see the "DNS Templates" section.
  3. Click the "Apply Template" button for the "Blogger" template.
  4. A pop-up window will open showing you the DNS record changes that will be made.
  5. Click the "Accept" button in the pop-up window.
  6. The pop-up window will close and you will have the necessary CNAME and A Record DNS resource records that Google requires.

Step 3

Verify your site with Google

Google will require that you verify your site prior to being able to complete the integration. Please follow these steps to complete your web site verification: Register your site with Google's Webmaster Tools
  1. Log in to your Google Account
  2. Go to Webmaster tools (If you do not know how, go to after logging into your account).
  3. Click the red "ADD A SITE" button on the top of the Webmaster Tools page.
  4. A pop-up window will open asking for the URL of your site. Enter your domain name with a "www" in that box. For example, if your domain was "", you would enter "".
  5. Click the blue "Continue" button.
  6. The following page will ask you to verify your ownership of the domain.
  7. Click the "Alternate methods" option.
  8. Select the "Domain name provider" radio button.
  9. Select "Other" from the bottom of the "Select your domain registrar or provider" drop-down menu.
  10. You will see a TXT record that must be created. It will look something like
  11. Copy that entire TXT record.
  12. Return to the DNS Manager for the domain in your account with us. This is the same screen you went to in Step 2 to apply the DNS template.
  13. In the "Add/Edit a Resource Record" box, select the "TXT/SPF" link.
  14. Leave HOSTNAME blank.
  15. Paste the entire TXT record from Google in the "TEXT" box.
  16. Leave the TTL at the default value (probably 7200).
  17. Click the orange "SUBMIT" button.
  18. You will now see the TXT record in the "Existing Resource Records" section along with the previously created A Record and CNAME.
  19. Return to the Google page where you got the TXT record to use and click the "VERIFY" button.
  20. It will take at least 5 minutes from the time you create the TXT record on our site for Google to be able to "see" that the record has been created (Possibly longer if you needed to change name servers in Step 1). Google's system will re-try periodically and let you know when the site has been verified. You can also click the "VERIFY" button after waiting 5 minutes to trigger Google to try again.
  21. Your domain is now verified!

Last Step

Go to google site -> Manage Site --> Wed Address --> Add

For internal site, add the sub-domain following at namesilo

Cat concatenate gz files

posted Oct 26, 2017, 1:30 PM by Dong Xu   [ updated Oct 26, 2017, 1:30 PM ]

cat file1.gz file2.gz file3.gz > allfiles-cat.gz

zcat file1.gz file2.gz file3.gz | gzip -c > allfiles-zcat.gz

zcat allfiles-cat.gz | md5sum

zcat allfiles-zcat.gz | md5sum

My experience is that the zcat method is around 40x slower, but the
resulting hash/message digests should be identical.
cat method's resulting file is a few percent bigger depending on your

the gzip parameters used in the methods.  

Windows Subsystem for Linux (WSL), Anaconda, Conda, Jupyter

posted Oct 24, 2017, 11:31 AM by Dong Xu   [ updated Oct 31, 2017, 6:00 PM ]

Wow!!! Starting in Windows 10 Anniversary Update, the Windows Subsystem for Linux can invoke native Windows binaries from the Linux console and Linux binaries from a Windows console

Install Guide:

This python script allows installing and switching ANY Linux distro to WSL in Win10

Switch WSL user accounts:

Setup guide

System setup

To run 3D program, need to install Mesa, Mesa-libGL1, xwininfo, libXi6, Mesa-demo-x, libGLU1, htop  (real 3D programs don't work!)

After finish installing OpenSUSE 42.3 in WSL, setup MobaXterm
I already had a persistent home dir set up within MobaXterm, so I chose it as the startup folder for launching the WSL shell. The point is that Microsoft doesn't want users to touch any of its WSL files, so even user's home dir in WSL is inaccessible from Windows. Therefore, using a dir outside WSL makes the most sense because data files can be accessed by both Windows and WSL. This is very important.

Download (ver 5.0 had SSLE problems...) from and sudo install to /usr/local

In order to use Firefox or Chrome for Windows, add it to Windows path
  1. Start the System Control Panel applet (Start - Settings - Control Panel - System).
  2. Select the Advanced tab.
  3. Click the Environment Variables button.
  4. Under System Variables, select Path, then click Edit.
vi /mnt/d/MobaXterm/slash/bin/xdg-open  add firefox.exe to the list. xdg-open is a launcher used in Mobaxterm

    if [ x"$BROWSER" = x"" ]; then

Anaconda root env already has jupyter installed, first thing to set up a passwd:  jupyter notebook password

Matplotlib works fine in WSL.

nglview in pytraj and HTMD had issues with Widget Javascripts...  see
Also the version in bioconda was 0.65, Current version on GIT is 1.0b2.
Follow the steps to install the latest nglview to Pytraj, HTMD, and other packages:

conda create -n pytraj python=3.6
source activate pytraj
conda install pytraj -c ambermd --name pytraj
conda install matplotlib --name pytraj
conda install nglview -c bioconda --name pytraj (this installs the 0.65 version)
pip install nglview==1.0b2
jupyter-nbextension enable nglview --py --sys-prefix
jupyter nbextension enable --py --sys-prefix widgetsnbextension # enable ipywidgets since we installed via pip
jupyter notebook

conda create -n htmd python=3.6
conda config --add channels acellera
conda config --add channels psi4
source activate htmd
conda install htmd --name htmd (this installs matplotlib and nglview 0.65 version)
pip install nglview==1.0b2
conda config --remove channels acellera
conda config --remove channels psi4

You will a warning when you use pip to install the lastest nglview:
Installing collected packages: ipywidgets, nglview
  Found existing installation: ipywidgets 5.2.2
    DEPRECATION: Uninstalling a distutils installed project (ipywidgets) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
    Uninstalling ipywidgets-5.2.2:
      Successfully uninstalled ipywidgets-5.2.2
  Found existing installation: nglview 0.6.5
    Uninstalling nglview-0.6.5:
      Successfully uninstalled nglview-0.6.5
Successfully installed ipywidgets-7.0.0 nglview-1.0b2

To Test nglview and ipywidgers installation:

import nglview as nv

import ipywidgets

1. Conda installation
conda install -c conda-forge jupyterhub  # installs jupyterhub and proxy
conda install notebook  # needed if running the notebook servers locally

Error: "Failed to find proxy ['configurable-http-proxy']"
For some reason jupyterhub must find configurable-http-proxy in /usr/bin, the default location is /garlic/apps/anaconda3/bin

Fix: cp -s /garlic/apps/anaconda3/bin/configurable-http-proxy /usr/bin/

2. Conda pip installation
pip install jupyterhub In yast2: install nodejs package for npm (location: /usr/bin/npm) pip install notebook # needed if running the notebook servers locally
pip will generate configurable-http-proxy in /usr/bin so there is no problem.

3. sudo jupyterhub 
default on port 8000, can login with server username/passwd, but fail to start server
Error: Unhandled error starting server: [Errno 2] No such file or directory: 'jupyterhub-singleuser'

Fix: generate a default config file, sudo jupyterhub --generate-config

Tell it to use the absolute-path for jupyterhub-singleuser in your config, rather than relying on PATH:
c.Spawner.cmd = '/garlic/apps/anaconda3/bin/jupyterhub-singleuser'

To check path:
sudo -s env PATH=.... which jupyterhub /garlic/apps/anaconda3/bin/jupyterhub which jupyterhub-singleuser /garlic/apps/anaconda3/bin/jupyterhub-singleuser

It is recommended to store configuration files in the standard UNIX filesystem location, i.e. /etc/jupyterhub.

Start the server! jupyterhub -f /etc/jupyterhub/

To have jupyterhub access a new env, create a new kernel, see

ipython kernel install --user --name pytraj

Go back to the Jupyterhub dashboard, reload the page, now you should have another option in the New menu that says pytraj.

In order to use your new kernel with an existing notebook, click on the notebook file in the dashboard, it will launch with the default kernel, then you can change kernel from the top menu Kernel > Change kernel.

Having issues with nglview on garlic jupyterhub... not showing structure, no error message:

For system-wide:
sudo jupyter-nbextension enable nglview --py --sys-prefix
sudo jupyter nbextension enable --py --sys-prefix widgetsnbextension

For a user:
jupyter nbextension enable --py --user widgetsnbextension
jupyter-nbextension enable nglview --py --user

Convert SVG to PNG or JPG

posted Oct 24, 2017, 10:26 AM by Dong Xu


I haven't been able to get good results from ImageMagick in this instance, but Inkscape does a nice job of it on Linux and Windows:

inkscape -z -e test.png -w 1024 -h 1024 test.svg

Here's the result of scaling a 16x16 SVG to a 200x200 PNG using this command:

enter image description here

enter image description here

Just for reference, my Inkscape version (on Ubuntu 12.04) is:

Inkscape r9886 (Mar 29 2012)

and on Windows 7, it is:

Inkscape 0.48.4 r9939 (Dec 17 2012)


posted Apr 26, 2017, 12:24 PM by Dong Xu   [ updated Apr 26, 2017, 2:09 PM ]

ADF2017 uses VTK7 and newer OpenGL features to dramatically speed up the visualization of large systems. This comes with a higher requirement for the OpenGL version supported by the system: OpenGL 3.2. If your machine does not support this, you might get the following error message when starting the GUI:

Warning: In /home/builder/jenkins/workspace/trunk/label/centos6_impi_lxc/VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx, line 647
vtkXOpenGLRenderWindow (0x7b93c40): VTK is designed to work with OpenGL version 3.2 but it appears it has been given a context that does not support 3.2. VTK will run in a compatibility mode designed to work with earlier versions of OpenGL but some features may not work.

In such cases, a fallback mode is available that lowers the OpenGL requirement to version 1.4, but this fallback mode of course does not have the performance benefits of the newer OpenGL features. To enable the fallback mode, set the SCM_OpenGL1_FALLBACK environment variable to something non-zero:

export SCM_OpenGL1_FALLBACK=1
adfinput &

Encrypt shell script on Linux and BAT file on Windows

posted Apr 26, 2017, 12:19 PM by Dong Xu   [ updated Oct 17, 2017, 2:39 PM ]


  1. Write your script (

    echo "Hello World" 
  2. Encrypt your script (give a password):

    openssl enc -e -aes-256-cbc -a -in > script-enc 
  3. Write de Wrapper (

    openssl enc -d -aes-256-cbc -a -in script-enc | sh - 
  4. Run "", enter the password, and the script will run without write the plain text script on disk.

Windows Batch

Here are 2 free programs that I highly recommend for creating EXE's out of batch files

1 - Bat To Exe Converter

2 - Bat 2 Exe

You can use both programs with simple GUI.

Bat To Exe Converter supports also CLI commands (\? flag for help). Basic example from documentation:

Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon

Rdkit Cairo Fix for Drawing Molecules

posted Apr 18, 2017, 5:00 PM by Dong Xu

from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
m = Chem.MolFromSmiles('c1nccc2n1ccc2')

Errors pops up for normal users

Go to /garlic/apps/anaconda2/envs/py27_env/lib/python2.7/site-packages/cairo

sudo chmod 644  
sudo chmod 644 __init__.pyc

Linux Cheat Sheet

posted Apr 11, 2017, 5:30 PM by Dong Xu

1-10 of 192