Windows 10 can run an instance of Ubuntu 18.04 using the Windows Subsystem for Linux WSL. The Ubuntu instance is limited to a command line instance but, it can run most Ubuntu server packages including Apache, MySQL and Mongo. This is a very convenient way to run Ubuntu Linux instance without using any Virtual Machine.
1. Introduction
Windows Subsystem for Linux gives Windows users the ability to run a Linux instance on top of the Windows instance. It does have some limitations but this guide are my notes for install and customization.
To download a PDF version of this document click on this link
2. Getting Started
This is the instructions to interface to Windows Subsystem for Linux (WSL) in the Terminal window. This means there are some basic commands and utilities you need to use and customize it.
2.1. Enable WSL on Windows
To enable WSL on Windows 10 use the Powershell opened in Admin MOde and run the following command.
Enable-Windows=Option-Feature -Online -feature Microsoft-windows-system-linux
2.2. Enable WS Win 10
To enable WSL on Windows 10 system use Powershell as Administrator and run the following command.
Enable-WindowsOptionFeature -Online -feature Microsoft-Windows-Subsystem-Linux
2.3. Installation
Ubuntu 18.04 can be installed on Windows 10 from the Microsoft Store. The Ubuntu terminal and command-line-prompt become the user interface.
During the installation you will need to pick a Ubuntu user ID and password. Do I need to mention, not to forget them?
2.4. Alternative installation
In some instances it may not be possible to download the Ubuntu instance from Microsoft’s store. These instructions are the manual alternative method to download Ubuntu 18.04 WSL.

Now unzip the ubuntu.zip
into a new folder.
Then run the ubuntu.exe
file.
To start Ubuntu, use ubuntu1804
on the command-line prompt (cmd.exe), or click on the Ubuntu tile in the Start Menu.
The very first thing after the installation has completed is to is to Update
the Ubuntu installation.
jschust2@Adlantado:~$ sudo apt update
[sudo] password for jschust2:
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
.... on so on
Reading package lists... Done
Building dependency tree
Reading state information... Done
122 packages can be upgraded. Run 'apt list --upgradable' to see them.
The second thing you should do is to Upgrade
the Ubuntu installation.
Be prepared as this will take quite some time to complete.
About half way through the upgrade
you will asked if you want have services automatically restarted, anwser Yes
.
jschust2@Adlantado:~$ sudo apt upgrade
[sudo] password for jschust2:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
dbus-x11 fontconfig-config fonts-dejavu-core libasyncns0 libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1
libflac8 libfontconfig1 libfontenc1 libgl1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0
libglx0 libice6 libllvm8 libogg0 libpciaccess0 libpulse0 libpulsedsp libsensors4 libsm6 libsndfile1 libvorbis0a
libvorbisenc2 libx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1
libxcomposite1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxmu6 libxpm4 libxrandr2 libxrender1
libxshmfence1 libxt6 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 pulseaudio-utils x11-common x11-utils
The following packages will be upgraded:
apport apt apt-utils base-files bash bind9-host bsdutils bzip2 cloud-init curl dbus distro-info-data dmeventd
dmsetup dnsutils dpkg e2fsprogs fdisk friendly-recovery gcc-8-base grep initramfs-tools initramfs-tools-bin
initramfs-tools-core iputils-ping iputils-tracepath landscape-common language-selector-common libapt-inst2.0
libapt-pkg5.0 libbind9-160 libblkid1 libbz2-1.0 libcom-err2 libcurl3-gnutls libcurl4 libdb5.3 libdbus-1-3
libdevmapper-event1.02.1 libdevmapper1.02.1 libdns-export1100 libdns1100 libdrm-common libdrm2 libelf1 libexpat1
libext2fs2 libfdisk1 libgcc1 libglib2.0-0 libglib2.0-data libgnutls30 libirs160 libisc-export169 libisc169
libisccc160 libisccfg160 libldap-2.4-2 libldap-common liblvm2app2.2 liblvm2cmd2.02 liblwres160 libmount1 libmspack0
libnss-systemd libpam-systemd libprocps6 libpython3.6 libpython3.6-minimal libpython3.6-stdlib libseccomp2
libsmartcols1 libsqlite3-0 libss2 libssl1.1 libstdc++6 libsystemd0 libudev1 libuuid1 libxslt1.1 libzstd1 lvm2 mount
netplan.io nplan open-vm-tools openssl patch procps python3-apport python3-cryptography python3-distupgrade
python3-gdbm python3-jinja2 python3-problem-report python3-software-properties python3.6 python3.6-minimal snapd
software-properties-common sosreport sudo systemd systemd-sysv tmux tzdata ubuntu-minimal
ubuntu-release-upgrader-core ubuntu-server ubuntu-standard ubuntu-wsl udev update-notifier-common util-linux
uuid-runtime vim vim-common vim-runtime vim-tiny wslu xkb-data xxd
122 upgraded, 56 newly installed, 0 to remove and 0 not upgraded.
Need to get 76.9 MB of archives.
After this operation, 230 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
3. File Explorer (Midnight Commander)
Because I don’t like to type in Linux command to change directory or launch commands I rely on a File Explorer called Midmight Commander.
It is a dual pane file explorer with function key control over copy, editing and managing the Ubuntu files.
jschust2@Adlantado:~$ sudo apt install mc
[sudo] password for jschust2:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libssh2-1 mc-data unzip
Suggested packages:
arj catdvi | texlive-binaries dbview djvulibre-bin genisoimage gv imagemagick libaspell-dev links | w3m | lynx
odt2txt poppler-utils python python-boto python-tz xpdf | pdf-viewer zip
The following NEW packages will be installed:
libssh2-1 mc mc-data unzip
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 1952 kB of archives.
After this operation, 8099 kB of additional disk space will be used.
Do you want to continue? [Y/n]
After the MC installation has completed, run it by typing mc
.
The Midnight Commander user interface looks like
The first time you use the editor I suggest you use Nano editor.
4. Customize startup (.bashrc)
The .bashrc
is the startup file for the Ubuntu command line environment environment.
By making some simple changed to this file you can make the interface much more efficient and cute.
Using MC, in SUDO mode, to edit the file .bashrc
Change the prompt to colored.
Make the GCC error and warning display in color.
Then save the .bashrc
file, Ctrl-O, Enter followed by Ctrl-X
5. Screen Fetch
When the Ubuntu environment starts up I like to see information about this instance of Ubuntu. Information like user name, Ubuntu version, type CPU and memeory.
The screenfetch
command is good for this and should be installed.
Please download the latest script revision from Github. The version installed with apt is outdated.
|
The commands to do the Screenfetch install are
wget https://raw.githubusercontent.com/KittyKatt/screenFetch/master/screenfetch-dev (1)
chmod +x screenfetch-dev (2)
sudo mv screenfetch-dev /usr/bin/screenfetch (3)
| 1 | Download the correct Screenfetch from GitHub |
| 2 | Make that new file executable |
| 3 | Move and rename the new command to the system command folder /usr/bin |
jschust2@Adlantado:~$ wget https://raw.githubusercontent.com/KittyKatt/screenFetch/master/screenfetch-dev
Will not apply HSTS. The HSTS database must be a regular and non-world-writable file.
ERROR: could not open HSTS store at '/home/jschust2/.wget-hsts'. HSTS will be disabled.
--2019-10-25 18:48:38-- https://raw.githubusercontent.com/KittyKatt/screenFetch/master/screenfetch-dev
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 244084 (238K) [text/plain]
Saving to: ‘screenfetch-dev.1’
screenfetch-dev.1 100%[=================================================>] 238.36K --.-KB/s in 0.07s
2019-10-25 18:48:38 (3.12 MB/s) - ‘screenfetch-dev.1’ saved [244084/244084]
jschust2@Adlantado:~$ chmod +x screenfetch-dev
jschust2@Adlantado:~$ sudo mv screenfetch-dev /usr/bin/screenfetch
[sudo] password for jschust2:
jschust2@Adlantado:~$
To test the new screenfetch
command
Add this new lines to the .bashrc
file, using sudo mc
and adding the following lines and saving the .bashrc
file. See example below.
# --- Screenfetch - System information
clear
screenfetch
To verify that the new screenfetch
and the .bashrc
have worked enter
exec bash
6. Figlet (Banners)
I enjoy making the shell scripts I write just a little more visually entertaining by using banners.
The figlet
command is a good utility for banners.
jschust2@Adlantado:~/new-project$ sudo apt install figlet
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
adwaita-icon-theme at-spi2-core dconf-gsettings-backend dconf-service fontconfig
glib-networking glib-networking-common glib-networking-services
gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme
humanity-icon-theme libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0
libavahi-client3 libavahi-common-data libavahi-common3 libcairo-gobject2 libcairo2
libcolord2 libcroco3 libcups2 libdatrie1 libdconf1 libepoxy0 libgail-common libgail18
libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgraphite2-3
libgtk-3-0 libgtk-3-bin libgtk-3-common libgtk2.0-0 libgtk2.0-bin libgtk2.0-common
libharfbuzz0b libjson-glib-1.0-0 libjson-glib-1.0-common liblcms2-2 libnotify4
libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0 libproxy1v5
librest-0.7-0 librsvg2-2 librsvg2-common libsoup-gnome2.4-1 libsoup2.4-1 libthai-data
libthai0 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwxbase3.0-0v5
libwxgtk3.0-0v5 libxcb-render0 libxcb-shm0 libxcursor1 libxkbcommon0
notification-daemon ubuntu-mono
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
figlet
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 133 kB of archives.
After this operation, 752 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 figlet amd64 2.2.5-3 [133 kB]
Fetched 133 kB in 1s (198 kB/s)
Selecting previously unselected package figlet.
(Reading database ... 51324 files and directories currently installed.)
Preparing to unpack .../figlet_2.2.5-3_amd64.deb ...
Unpacking figlet (2.2.5-3) ...
Setting up figlet (2.2.5-3) ...
update-alternatives: using /usr/bin/figlet-figlet to provide /usr/bin/figlet (figlet) in auto mode
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
jschust2@Adlantado:~/new-project$
To create banner use the example below as a reference.
There are many different options and fonts available under the Figlet command.
|
jschust2@Adlantado:~/new-project$ figlet "Gen-Doco"
____ ____
/ ___| ___ _ __ | _ \ ___ ___ ___
| | _ / _ \ '_ \ _____| | | |/ _ \ / __/ _ \
| |_| | __/ | | |_____| |_| | (_) | (_| (_) |
\____|\___|_| |_| |____/ \___/ \___\___/
jschust2@Adlantado:~/new-project$
7. Dialog (Menus)
Because this Ubuntu instance is command line only it would be nice to have a menu system that looks almost like a GUI.
The utility for this is called dialog
and is used in bash shell scripts to help make great looking menus.
The menu below was generated from the tmenu.sh
shell script.
jschust2@Adlantado:~$ sudo apt install dialog
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
dialog
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 217 kB of archives.
After this operation, 1149 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 dialog amd64 1.3-20171209-1 [217 kB]
Fetched 217 kB in 1s (256 kB/s)
Selecting previously unselected package dialog.
(Reading database ... 29678 files and directories currently installed.)
Preparing to unpack .../dialog_1.3-20171209-1_amd64.deb ...
Unpacking dialog (1.3-20171209-1) ...
Setting up dialog (1.3-20171209-1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
jschust2@Adlantado:~$
To verify that dialog
has been installed type
dialog
A few pages of Dialog aoptions will be displayed. This document is not meant to be a tutorial on how to create Dialog menus so an example may be the best instruction.
The following tmenu.sh
bash script uses the dialog commands to build a simple menu seen in the snapshot above.
This is just a short example of some of the powerful commands in the dialog
utility.
Create a new file named tmenu.sh
and copy the following text into it.
#!/bin/bash
# while-menu-dialog: a menu driven system information program
DIALOG_CANCEL=1
DIALOG_ESC=255
HEIGHT=0
WIDTH=0
display_result() {
dialog --title "$1" \
--no-collapse \
--msgbox "$result" 0 0
}
while true; do
exec 3>&1
selection=$(dialog \
--backtitle "GeekMustHave System Information" \
--title "Menu" \
--clear \
--cancel-label "Exit" \
--menu "Please select:" $HEIGHT $WIDTH 4 \
"1" "Display System Information" \
"2" "Display Disk Space" \
"3" "Display Home Space Utilization" \
2>&1 1>&3)
exit_status=$?
exec 3>&-
case $exit_status in
$DIALOG_CANCEL)
clear
echo "Program terminated."
exit
;;
$DIALOG_ESC)
clear
echo "Program aborted." >&2
exit 1
;;
esac
case $selection in
0 )
clear
echo "Program terminated."
;;
1 )
result=$(echo "Hostname: $HOSTNAME"; uptime)
display_result "System Information"
;;
2 )
result=$(df -h)
display_result "Disk Space"
;;
3 )
if [[ $(id -u) -eq 0 ]]; then
result=$(du -sh /home/* 2> /dev/null)
display_result "Home Space Utilization (All Users)"
else
result=$(du -sh $HOME 2> /dev/null)
display_result "Home Space Utilization ($USER)"
fi
;;
esac
done
To download the tmenu.sh
click on this link
After the file has been created it must be make executagle with the command
chmod +x tmenu.sh
Then to run the Bash shell script use the command
./tmenu.sh
8. Alias
An alias is custom command that you define in Ubuntu.
The Dialog example above is only available from the home
directory and it’s name tmenu.sh
.
It would be better if this Dialog shell script could be executed from anywhere using menu
.
Open the .bashrc
file, using sudo mc
and edit it. Add the following lines at the end of the file.
Menu
# --- Alias for Menu to call ~/tmenu.sh
alias menu='~/tmenu.sh'
Save the file and restart the bash environment by entering the following command.
exec bash
Then the tmenu.sh
can be run from any directory by entering menu
.
9. ASCIIdoctor
ASCIIDcotor is a tool chain when used with an text editor can create very well formatted documentation that can be used in a web page or generated into a PDF.
This entire installation guide was written with ASCIIDoctor formatted text file.
To download the readme.adoc
file, for this document, use the following link
The installation of ASCIIDoctor
will include the installation of Ruby and GEM the Ruby package manager.
ASCIIDoctor
produces a HTML formatted file that can be viewed in a browser or copied to a web server.
jschust2@Adlantado:~$ sudo apt install asciidoctor
[sudo] password for jschust2:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
fonts-lato javascript-common libjs-jquery libruby2.5 rake ruby ruby-did-you-mean ruby-minitest ruby-net-telnet
ruby-power-assert ruby-test-unit ruby2.5 rubygems-integration zip
Suggested packages:
apache2 | lighttpd | httpd ri ruby-dev bundler
The following NEW packages will be installed:
asciidoctor fonts-lato javascript-common libjs-jquery libruby2.5 rake ruby ruby-did-you-mean ruby-minitest
ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.5 rubygems-integration zip
0 upgraded, 15 newly installed, 0 to remove and 0 not upgraded.
Need to get 6493 kB of archives.
After this operation, 29.4 MB of additional disk space will be used.
Do you want to continue? [Y/n]
To verify ASCIIDoctor
was installed use the following command
jschust2@Adlantado:~$ asciidoctor -v
Asciidoctor 1.5.5 [http://asciidoctor.org]
Runtime Environment (ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]) (lc:UTF-8 fs:UTF-8 in:- ex:UTF-8)
The installation of ASCIIDoctor-PDF
will produces a PDF formatted file that can be distributed using email, document management or other transfer methods.
jschust2@Adlantado:~$ sudo gem install asciidoctor-pdf --pre
[sudo] password for jschust2:
TheriSorry, try again.
[sudo] password for jschust2:
Fetching: pdf-core-0.7.0.gem (100%)
Successfully installed pdf-core-0.7.0
Fetching: ttfunk-1.5.1.gem (100%)
Successfully installed ttfunk-1.5.1
.... tons more ...
Done installing documentation for pdf-core, ttfunk, prawn, prawn-table, Ascii85, ruby-rc4, hashery, afm, pdf-reader, prawn-templates, public_suffix, addressable, css_parser, prawn-svg, prawn-icon, safe_yaml, thread_safe, concurrent-ruby, polyglot, treetop, asciidoctor-pdf after 38 seconds
21 gems installed
To verify that ASCIIDoctor-PDF
installed use the following command.
jschust2@Adlantado:~$ asciidoctor-pdf -v
Asciidoctor PDF 1.5.0.beta.6 using Asciidoctor 1.5.5 [http://asciidoctor.org]
Runtime Environment (ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]) (lc:UTF-8 fs:UTF-8 in:- ex:UTF-8)
9.1. Testing the ASCIIDoctor tool chain
This document was not meant to be a tutorial on how to create ASCIIDoctor files, so an example may be the best way of showing the process.
To test the ASCIIDoctor Toolchain there is a sample.adoc
file with a small example of ADOC foramtted files
To download the sample.adoc
file click on the following link link
Using the Nano text editor create a file called sample.adoc
and paste the content of the file shown above into it and save the file.
jschust2@Adlantado:~$ ls sample.*
sample.adoc
jschust2@Adlantado:~$ asciidoctor *.adoc
jschust2@Adlantado:~$ asciidoctor-pdf *.adoc
jschust2@Adlantado:~$ ls sample.*
sample.adoc sample.html sample.pdf
jschust2@Adlantado:~$
The HTML Generated file sample,html
can be opened with a browser.
The PDF generated file sample.pdf
can be opened with a PDF Viewer or some browsers.
10. Windows 10 File System Mounts - Ubuntu
All of the Windows Drives are automatically mounted when Ubuntu is started.
The easiest way to move or copy files between Windows 10 and the Ubuntu instance is to use Media Commander and go to /mnt
folder where all the drives in Windows 10 will be shown.
11. Windows 10 Networked Drice Mounts
There may be network drives that you have mounted on Windows 10. (IE. \\ws-ltb84b\share is mounted as drice H:
)
Using the Ubuntu terminal enter the following commands.
mkdir /mnt/h (1)
sudo mount -t drvfs h: /mnt/h (2)
| 1 | Create a place for Linux to Map files to |
| 2 | Mount the drive file system drvfs using the Winows 10 H: drive
and map to /mnt/h |
12. Node installation
Working with Node and JavaScript will require the i nstallation of Node.
At the last update of this guide, Node.js 10.15.3 is the LTS release available.
When installing node the Python language and Python libraries iwll be updated.
|
When Node is install the Node Package Managr npm will also be installed
|
jschust2@Adlantado:~$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
[sudo] password for jschust2:
Sorry, try again.
[sudo] password for jschust2:
## Installing the NodeSource Node.js 10.x repo...
## Populating apt-get cache...
+ apt-get update
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88
... and a tone more ..
Fetched 5352 B in 2s (2405 B/s)
Reading package lists... Done
## Run `sudo apt-get install -y nodejs` to install Node.js 10.x and npm
jschust2@Adlantado:~$ sudo apt-get install -y nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7
python2.7-minimal
.... and a bunch more ....
Setting up libpython-stdlib:amd64 (2.7.15~rc1-1) ...
Setting up python (2.7.15~rc1-1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for mime-support (3.60ubuntu1) ...
jschust2@Adlantado:~$
To verify that Node has been insalled run the following commands
jschust2@Adlantado:~$ node -v
v10.17.0
jschust2@Adlantado:~$ npm -v
6.11.3
jschust2@Adlantado:~$
12.1. Mounting Networked Windows 10 drives in WSL
Networked Windows drives may not automatically mounted
by the WSL.
To add a Networked Windows 10 drive (ie H:) follow the following commands in WSL.
Using sudo
mode create a new directory in th /mnt
folder
sudo mkdir /mnt/h
To mount H: to the new folder run the following command.
sudo mount -t drvfs H: /mnt/h
To make this mount persistant where it will be available everytime Ubuntu WSL is started.
Then you can change to that Network drive by entering the folling command.
cd /mnt/h
13. Apache Web Server
Apache is one of the most used web servers on the Internet.
Some simple alternative to Apache are XAMPP or WAMPServer, however, they are not meant to work for any production environment .
To install Apache use the following commands
jschust2@Adlantado:~$ sudo apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
liblua5.2-0 ssl-cert
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom openssl-blacklist
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3
libaprutil1-ldap liblua5.2-0 ssl-cert
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 1730 kB of archives.
After this operation, 6982 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 libapr1 amd64 1.6.3-2 [90.9 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 libaprutil1 amd64 1.6.1-2 [84.4 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.1-2 [10.6 kB]
.... and a tone more ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for systemd (237-3ubuntu10.31) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ufw (0.36-0ubuntu<IP_ADDRESS>) ...
Processing triggers for ureadahead (0.100.0-21) ...
jschust2@Adlantado:~$
To start the Apache web service use the following commands.
| The first time you start Apache there will be a Windows firewall warning, Just agree to it. |
jschust2@Adlantado:~$ sudo service apache2 start
* Starting Apache httpd web server apache2 *
To verify that Apache is running use a Windows 10 browser and open the <IP_ADDRESS>:80
page
14. MySQL database
The MySQL database is one of the eaiser relational database systems to install and use.
To install MySQL use the following commands.
jschust2@Adlantado:~$ sudo apt-get install mysql-server mysql-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libaio1 libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-6 libfcgi-perl
libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl
libio-html-perl liblwp-mediatypes-perl libtimedate-perl liburi-perl mysql-client-5.7
mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7
Suggested packages:
libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca
The following NEW packages will be installed:
libaio1 libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-6 libfcgi-perl
libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl
libio-html-perl liblwp-mediatypes-perl libtimedate-perl liburi-perl mysql-client mysql-client-5.7
mysql-client-core-5.7 mysql-common mysql-server mysql-server-5.7 mysql-server-core-5.7
0 upgraded, 22 newly installed, 0 to remove and 0 not upgraded.
Need to get 21.1 MB of archives.
After this operation, 162 MB of additional disk space will be used.
Do you want to continue? [Y/n]
... ton of stuff **
Setting up mysql-server (5.7.27-0ubuntu<IP_ADDRESS>) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for systemd (237-3ubuntu10.31) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
jschust2@Adlantado:~$
To start MySQL use the following commands.
jschust2@Adlantado:~$ sudo service mysql start
* Starting MySQL database server mysqld No directory, logging in with HOME=/
To verify that MySQL is working run the followinf commands
jschust2@Adlantado:~$ sudo mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.27-0ubuntu<IP_ADDRESS> (Ubuntu)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
To create a MySQL user for testing use the following SQL commands withing the MySQL Client
The user is jschust2 with the lame password of password , probably should change that later.
|
mysql> CREATE USER 'jschust2'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'jschust2'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql>
To connect to MySQL with the new user use the following command.
mysql -u jschust2 -ppassword
14.1. Remote MySQL connections
The Windows 10 is considered a remote
system to the WSL.
Here is an example of connecting to the Ubuntu WSL instance of MySQL from the Windows 10.
Notice the IP address is 12q<IP_ADDRESS>
, user is jschust2
, password is password
.
15. PHP
PHP is a server side scripting language. that is used to develop Static websites or Dynamic websites or Web applications. PHP stands for Hypertext Pre-processor,
jschust2@Adlantado:~$ sudo apt-get install php libapache2-mod-php php-mysql php-gd php-json php-curl php-xml php-intl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
adwaita-icon-theme at-spi2-core dconf-gsettings-backend dconf-service fontconfig glib-networking
glib-networking-common glib-networking-services gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme
humanity-icon-theme libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3
libavahi-common-data libavahi-common3 libcairo-gobject2 libcairo2 libcolord2 libcroco3 libcups2 libdatrie1 libdconf1
libepoxy0 libgail-common libgail18 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgraphite2-3
libgtk-3-0 libgtk-3-bin libgtk-3-common libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libharfbuzz0b libjson-glib-1.0-0
libjson-glib-1.0-common liblcms2-2 libnotify4 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0
libproxy1v5 librest-0.7-0 librsvg2-2 librsvg2-common libsoup-gnome2.4-1 libsoup2.4-1 libthai-data libthai0
libwayland-client0 libwayland-cursor0 libwayland-egl1 libwxbase3.0-0v5 libwxgtk3.0-0v5 libxcb-render0 libxcb-shm0
libxcursor1 libxkbcommon0 notification-daemon ubuntu-mono
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
libapache2-mod-php7.2 libgd3 libsodium23 libwebp6 php-common php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-gd
php7.2-intl php7.2-json php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml
Suggested packages:
php-pear libgd-tools
The following NEW packages will be installed:
libapache2-mod-php libapache2-mod-php7.2 libgd3 libsodium23 libwebp6 php php-common php-curl php-gd php-intl
php-json php-mysql php-xml php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-intl php7.2-json
php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml
0 upgraded, 24 newly installed, 0 to remove and 0 not upgraded.
Need to get 4730 kB of archives.
After this operation, 20.2 MB of additional disk space will be used.
Do you want to continue?  Done
jschust2@Adlantado:~$
15.1. Validate PHP
PHP shuold be launched automatically when the Apache service is started.
To create a method to verify this use SUDO MC and edit the \var\www\html\info.php
file, if it doesn’t exist then create one.
Enter the following PHP code into the info.php
file
<?php
phpinfo();
?>
To perform this PHP validation use a browser and go to the following URL
<IP_ADDRESS>/info.php
The info
page is very long and has all of the config parameter for the PHP instance running.
15.2. myPHPAdmin
The myPHPAdmin
is a web interface to the PHP and my SQL environment.
To Instal myPHPAdmin Use the following command
sudo apt-get install -y phpmyadmin
There will be a few configuration screens
Make sure the MySQL Server has been started, see steps below for this process.
To access myPHPAdmin make sure that the Appache Service is tuened on then open a browser and enter the following URL
<IP_ADDRESS>/myPHPAdmin
The User id we should use is the one created in the MySQL install jschust2
and the password you entered in the configutation screen above.
In my case it is password
.
If you use the default PHPMyAdmin user phpmysql
and the password you created at installation you will be able to login but you will not be able to create a new database
15.3. Chinook Database
One of the datbases I use for doing SQL training is Chinook.
You can us PHPMyAdmin to run the Chinook creation script for MySQL.
The Chinook creation script can be found at this Link
After you import the script and run it you should see the Chinook database and it’s tables.
There is a SQL as a Second Language leanring guide that is based on the Chnook database. The learning guide is specific to Teradata but, most if will work with the MySQL version of Chinook.
To view the SASL learning guide use the following link
16. MyWebSQL
This tool is a replacement for MyPHPAdmin which is a little dated. MyWebSQL requires Apache, PHP and MySQL to be installed and running.
| This program is difficult to find so a copy is included in this document |
A copy of the ZIP file with the entire MyWebSQL can be found at this link
Using SUDO or SUDO MC unzip the ZIP file, the result should be a directory mywebsql
.
Copy the entire contents of the mywebsql
to the \var\www\html
folder.
You should end up with something that looks like
To run MyWebSQL use the following URL
<IP_ADDRESS>/mywebsql
You should get a login screen, use the User created during the install of SQL Server User: jschust2 Pass: password as this creditentials provide the abaility to create databases.
16.1. SQLite databases
To connect to and use SQLite databases, you will need to enable the configuration option in the config file servers.php
.
Edit the servers.php
file in the config folder of MyWebSQL installation, and uncomment the configuration option for SQLite.
You will also need to set the folder path correctly where you have saved your SQLite databases.
The phi.ini
file needs to be edited, its location can be found by using the <IP_ADDRESS>/info.php
in a browser.
The php.ini
file needs to have a few changes to uncomment the SQLite driver lines.
17. SQLite
SQLite is a lightweight database software. It is a command line application. You must use the command line or SQLite API on other programming languages to use SQLite database.
SQLite 3 is the latest version at the time of this writing. SQLite 3 is available in the official package repository of Ubuntu 18.04 LTS.
jschust2@Adlantado:~$ sudo apt install sqlite3
[sudo] password for jschust2:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
adwaita-icon-theme at-spi2-core dconf-gsettings-backend dconf-service fontconfig glib-networking
glib-networking-common glib-networking-services gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme
humanity-icon-theme libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3
libavahi-common-data libavahi-common3 libcairo-gobject2 libcairo2 libcolord2 libcroco3 libcups2 libdatrie1 libdconf1
libepoxy0 libgail-common libgail18 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgraphite2-3
libgtk-3-0 libgtk-3-bin libgtk-3-common libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libharfbuzz0b libjson-glib-1.0-0
libjson-glib-1.0-common liblcms2-2 libnotify4 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0
libproxy1v5 librest-0.7-0 librsvg2-2 librsvg2-common libsoup-gnome2.4-1 libsoup2.4-1 libthai-data libthai0
libwayland-client0 libwayland-cursor0 libwayland-egl1 libwxbase3.0-0v5 libwxgtk3.0-0v5 libxcb-render0 libxcb-shm0
libxcursor1 libxkbcommon0 notification-daemon ubuntu-mono
Use 'sudo apt autoremove' to remove them.
Suggested packages:
sqlite3-doc
The following NEW packages will be installed:
sqlite3
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 753 kB of archives.
After this operation, 2481 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 sqlite3 amd64 3.22.0-1ubuntu0.1 [753 kB]
Fetched 753 kB in 3s (235 kB/s)
Selecting previously unselected package sqlite3.
(Reading database ... 51403 files and directories currently installed.)
Preparing to unpack .../sqlite3_3.22.0-1ubuntu0.1_amd64.deb ...
Unpacking sqlite3 (3.22.0-1ubuntu0.1) ...
Setting up sqlite3 (3.22.0-1ubuntu0.1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
jschust2@Adlantado:~$
If the SQLite database you want to connect to is chinook
, in your current directory, then enter the following command
sqlite3 chinook
If you use the SQLite3 CLI and want to exit use the .quit command.
|
18. Mongo
Mongo is a NoSQL database that is very powerful and popular.
To install Mongo use the following commands
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list sudo apt-get update sudo apt-get install -y mongodb-org cd ~ sudo mkdir -p data/db
This is what the Mongo installation may look like.
jschust2@Adlantado:~$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
[sudo] password for jschust2:
Executing: /tmp/apt-key-gpghome.VQIPQmmzQi/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
gpg: key 58712A2291FA4AD5: public key "MongoDB 3.6 Release Signing Key<EMAIL_ADDRESS>imported
gpg: Total number processed: 1
gpg: imported: 1
jschust2@Adlantado:~$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse
jschust2@Adlantado:~$ sudo apt-get update
Hit:1 https://deb.nodesource.com/node_10.x bionic InRelease
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Ign:5 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 InRelease
Get:6 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 Release [3457 B]
Get:7 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 Release.gpg [801 B]
Get:8 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [764 kB]
Get:10 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse arm64 Packages [10.7 kB]
Get:11 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse amd64 Packages [10.7 kB]
Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1016 kB]
Fetched 2058 kB in 5s (418 kB/s)
Reading package lists... Done
jschust2@Adlantado:~$ sudo apt-get install -y mongodb-org
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
adwaita-icon-theme at-spi2-core dconf-gsettings-backend dconf-service fontconfig glib-networking
glib-networking-common glib-networking-services gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme
humanity-icon-theme libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3
libavahi-common-data libavahi-common3 libcairo-gobject2 libcairo2 libcolord2 libcroco3 libcups2 libdatrie1 libdconf1
libepoxy0 libgail-common libgail18 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgraphite2-3
libgtk-3-0 libgtk-3-bin libgtk-3-common libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libharfbuzz0b libjson-glib-1.0-0
libjson-glib-1.0-common liblcms2-2 libnotify4 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0
libproxy1v5 librest-0.7-0 librsvg2-2 librsvg2-common libsoup-gnome2.4-1 libsoup2.4-1 libthai-data libthai0
libwayland-client0 libwayland-cursor0 libwayland-egl1 libwxbase3.0-0v5 libwxgtk3.0-0v5 libxcb-render0 libxcb-shm0
libxcursor1 libxkbcommon0 notification-daemon ubuntu-mono
... and a ton more ...
Adding system user `mongodb' (UID 112) ...
Adding new user `mongodb' (UID 112) with group `nogroup' ...
Not creating home directory `/home/mongodb'.
Adding group `mongodb' (GID 117) ...
Done.
Adding user `mongodb' to group `mongodb' ...
Adding user mongodb to group mongodb
Done.
Setting up mongodb-org (3.6.14) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
jschust2@Adlantado:~$
Set up the area where the Mongo database will reside.
jschust2@Adlantado:~$ cd ~
jschust2@Adlantado:~$ pwd
/home/jschust2
jschust2@Adlantado:~$ sudo mkdir -p data/db
jschust2@Adlantado:~$
To start the Mongo Services use the following command, in a separate WSL window. ping <IP_ADDRESS> sudo mongod --dbpath ~/data/db --bind_ip <IP_ADDRESS>
To run the WSL Mongo Client use the following command
mongo
This document is not meant to be a tutorial on Mongo but the following Mongo Cheat Sheet link will be useful.
| There are some issues with which IP address to use to connect to Mongo. An update to this document will include the answer. |
19. GIT Version control
GIT the version control software used by most developers and GitHub should automatically installed with the Ubuntu 18.04.
To verify that GIT is installed use the following command.
jschust2@Adlantado:~$ git --version
git version 2.17.1
20. Visual Studio Code
While VSCode can not run inside of the Ubuntu WSL instance however, an VSCodce extension makes using the WSL instance much easier.
Create a project directory on Ubuntu WSL and start Visual Studio code with the following commands
jschust2@Adlantado:~$ mkdir new-project
jschust2@Adlantado:~$ cd new-project
jschust2@Adlantado:~/new-project$ code .
Installing VS Code Server 6ab598523be7a800d7f3eb4d92d7ab9a66069390
Downloading: 100%
Unpacking: 100%
Visual Studio Code will open in the Ubuntu new project folder and allow you to edit and run Node code from there.
21. Shutdown WSL
Sometimes it is necessary to Shutdown the Ubuntu WSL instance. Just closing the WSL window doesn’t close the Ubuntu instance. There are a few WSL shutdown methods that require using Windows Powershell.
To shutdown the WSL Ubuntu instance from within Ubuntu use the following command.
wslconfig.exe /t Ubuntu-18.04
22. Backup and Restore
The entire Win 10 Ubuntu WSL can be saved, copied to another system and restored.
The export file is in a tar
format and can be quite large depending on how much additional software you have installed.
| The following Export (Backup) and Import (Restore) require Windows 10 to be at Release 1903 or better. |
To back up the Ubuntu 18.04 WSL instance us the following command
wsl --export Ubuntu-18.04 ubuntu.tar
Copy the tar
file to the other Windows 10 system and restore using the following command
wsl --import Ubuntu-18.04 C:\Users\jschust2\ubuntu C:\users\jschust2\download\ubuntu.tar
| The import and export features were added in the May 2019 Update—that’s Windows 10 version 1903. |
23.  Document History
| Date | Version | Author | Description |
|---|---|---|---|
12/14/2019 |
V2.1h |
JHRS |
Updated from new install,
elminated the |
11/14/2019 |
V2.1g |
JHRS |
Updated enable WSL, backup |
11/12/2019 |
V2.1f |
JHRS |
Updated alias and corrections |
10/30/2019 |
V2.1e |
JHRS |
Added MySQL update and SQLite |
10/28/2019 |
V2.1d |
JHRS |
Mongo, GIT |
10/27/2019 |
V2.1c |
JHRS |
Added backup/restore and some fun |
10/25/2019 |
V2.1b |
JHRS |
Initial version |


Please draw one image only and label it in the textbox. Press Save when you are done.
Draw anything you like. Maybe start with drawing things that are related to the ocean or the zoo. Or you may draw anything you like.
Press Clear if you want to restart. Press Undo if you want to erase your last stroke.
What have you drawn:


- Friday 09 Dec 2011
- Thursday 08 Dec 2011
- Wednesday - wrightscape runs and various other things 07 Dec 2011
- Tuesday -- two insights 06 Dec 2011
- Monday - wrightscape meetings, PDG meeting 05 Dec 2011
- More labrid plots 05 Dec 2011
- Release of constraint 04 Dec 2011
- Friday - updated wrightscape results - simulated examples 02 Dec 2011
- Thrusday - corrected calculation, implementing. 01 Dec 2011
- Wednesday - various logistics, then checking likelihood calculation 30 Nov 2011
- Tuesday debugging 29 Nov 2011
- Monday: submodels for full traits 28 Nov 2011
- Friday: wrightscape, ggplot, wp memory 25 Nov 2011
- wrightscape and sensitivity to initial conditions 17 Nov 2011
- Wainwright Retreat to Hastings Reserve 12 Nov 2011
- Auteur plots for reef fish jaws and monkey brains -- needs tweaking 10 Nov 2011
- Friday's reading 04 Nov 2011
- Labrids & Parrotfish, method1 01 Nov 2011
- Labrid submodels 26 Oct 2011
- Tuesday notes: package work mostly. 25 Oct 2011
- Treebase Package On Cran 25 Oct 2011
- Thursday - some parrotfish & labrid runs on method2 20 Oct 2011
- Matt Helmus visit 07 Oct 2011
- Tuesday 04 Oct 2011
- Friday, wordpress backups, pmc edits 30 Sep 2011
- Thursday 29 Sep 2011
- Phylogenetics - Research Proposal 29 Sep 2011
- Wednesday - Berkeley visits 28 Sep 2011
- Monday 26 Sep 2011
- Friday: ropensci, manuscript edits 23 Sep 2011
- Thursday 22 Sep 2011
- Likelihood expressions for branching processes 10 Sep 2011
- discriminating early bursts 08 Sep 2011
- rfishbase demo: Are there more Goby or Labrid species on reefs? 02 Sep 2011
- Wednesday 31 Aug 2011
- Tuesday 30 Aug 2011
- Monday: scaling wrightscape examples 29 Aug 2011
- Sunday: scaling, runs 28 Aug 2011
- rropensci and some taxonomy in R with taxize 26 Aug 2011
- Tuesday: rropensci, Rmpi, manuscripts, ... 23 Aug 2011
- Academic Year 2011 Summary 21 Aug 2011
- Thursday: reviewing edits, ropensci, computers. 18 Aug 2011
- Wrightscape: a brief tutorial 17 Aug 2011
- Tuesday: 16 Aug 2011
- Monday: Evolution manuscript revisions; early burst models, etc 16 Aug 2011
- Monday: ESA, appendix, etc 25 Jul 2011
- Showcasing the latest phylogenetic methods: AUTEUR 20 Jul 2011
- #ievobio Day 2 22 Jun 2011
- Evolution Day 4 / #ievobio Day 1 21 Jun 2011
- Evolution Day 3 20 Jun 2011
- Slides from my talk at Evolution 2011 20 Jun 2011
- Evolution Day 2 19 Jun 2011
- Evolution Conference Day 1 18 Jun 2011
- Friday: more labrid & parrotfish wrightscape examples 17 Jun 2011
- Wrightscape labrid/parrotfish results; Evolution pres 16 Jun 2011
- Wednesday MCMC and MLEs for wrightscape 15 Jun 2011
- Tuesday - Evolution/wrightscape talk & sundry 14 Jun 2011
- Monday - 13 Jun 2011
- mcmc and bootstrapped likelihood runs on parrotfish tree 09 Jun 2011
- Wednesday: Simulated model fit analysis on wrightscape, parrotfish tree 08 Jun 2011
- Tuesday: Parrotfish/wrightscape runs and code modification 07 Jun 2011
- Parrotfish in wrightscape 06 Jun 2011
- Saturday: git with latexdiff, TreeBASE and PMC package updates, bounds on lambda 04 Jun 2011
- Friday 03 Jun 2011
- Tuesday: PMC, confidence intervals; screen code-tricks 31 May 2011
- Monday 30 May 2011
- Sunday 29 May 2011
- End of NCEAS & the legacy of synthetic data 22 May 2011
- Algorithms group: MCMCMC 19 May 2011
- Thursday 19 May 2011
- Birth-death Tutorial for PBG Core 18 May 2011
- Tuesday: Parrotfish results, MCMCMC testing, APIs 17 May 2011
- TreeBASE in R: a first tutorial 16 May 2011
- Thursday: Fun with databases continued 12 May 2011
- Wednesday: Treebase 11 May 2011
- Interfaces for databases: TreeBASE, Dryad, DataONE 10 May 2011
- Monday: meetings, notebook 09 May 2011
- Sunday: a few Treebase R package updates 08 May 2011
- Thursday: parrotfish analysis 05 May 2011
- Weds: Parrotfish data set analysis 04 May 2011
- Tuesday: phylogenetics- wrightscape coding 03 May 2011
- treeBASE R interface: proposal for #iEvoBio 03 May 2011
- Monday 03 May 2011
- Friday: Notes on Labrids, notes on Transforms and size-corrections 29 Apr 2011
- Reading Notes, presentation prep treebase error handling 28 Apr 2011
- Wednesday 27 Apr 2011
- Accessing phylognenies in TreeBASE from R 26 Apr 2011
- TreeBASE interface continued... 25 Apr 2011
- wrightscape profiling 24 Apr 2011
- Release of constraint in labrids? 22 Apr 2011
- Wednesday 20 Apr 2011
- TreePar: changing rates of evolution 17 Apr 2011
- Friday 16 Apr 2011
- TreeBase: exploratory exercises in database-driven phylogenetics 08 Apr 2011
- Comparative methods paper status/to-do 06 Apr 2011
- evolution manuscript revisions 04 Apr 2011
- A few large data problems in Ecology & Evolution 31 Mar 2011
- Brian O'Meara discusses new algorithms approaches on Phylo 30 Mar 2011
- Approximate Bayesian Computing (algorithms) methods 19 Mar 2011
- Sam's Practice talk 18 Mar 2011
- Model identifiability in phylogenetic inference GTR+I+G 15 Mar 2011
- Peter's talk 14 Mar 2011
- Bodega evolution Tutorial: behind the scenes difficulties in R packages 07 Mar 2011
- Is BM nested in OU? Understanding likelihoods of ouch 25 Feb 2011
- Phylo: Luke Harmon 25 Feb 2011
- Bodega evolution Workshop: Continuous Characters R session planning 19 Feb 2011
- Friday 18 Feb 2011
- Thursday 17 Feb 2011
- Monday 14 Feb 2011
- Thursday 10 Feb 2011
- Phylogenetic Monte Carlo for the Laser package 09 Feb 2011
- Notes during revisions on phylogenetics manuscript 08 Feb 2011
- more Phylogenetic signal metrics & Brownie comparison 31 Jan 2011
- Notes on Bokma 2010: evolution in drifts and jumps 31 Jan 2011
- Phylogenetic Signal metrics 28 Jan 2011
- Felsenstein (web) seminar 24 Jan 2011
- Shape as well as size influence power of phylogeny 21 Jan 2011
- Estimating phylogenetic signal (lambda) on large trees 20 Jan 2011
- evolution- wrightscape 11 Jan 2011
- Phylo Monte Carlo for diversification rates 09 Jan 2011
- Finishing up my #SICB Presentation 02 Jan 2011
- Monday 12 Dec 2011
- Friday 09 Dec 2011
- Thursday 08 Dec 2011
- Wednesday - wrightscape runs and various other things 07 Dec 2011
- Optimal control -- costs to policy shifts 07 Dec 2011
- Tuesday -- two insights 06 Dec 2011
- Monday - wrightscape meetings, PDG meeting 05 Dec 2011
- Wednesday - various logistics, then checking likelihood calculation 30 Nov 2011
- Handling other sources of noise 28 Nov 2011
- Getting the right distributions 23 Nov 2011
- Friday 18 Nov 2011
- Steve Pacala - Storer lecture 17 Nov 2011
- Tues: Sources of stochastic variation in optimal control 15 Nov 2011
- non-optimal outcomes of optimal solutions 13 Nov 2011
- Thursday 10 Nov 2011
- Crashing stocks and optimal harvesting effort on Allee effects 09 Nov 2011
- SDP solution for allee model 08 Nov 2011
- Friday's reading 04 Nov 2011
- Warning signals - noise response 03 Nov 2011
- Stochastic Optimal Control 02 Nov 2011
- pdg-control Conference Call 01 Nov 2011
- Training Problem 2 update 01 Nov 2011
- Monday: openfisheries & ggplot 31 Oct 2011
- Optimal Control examples continued: Bellman, Dynamic Programming 28 Oct 2011
- Optimal control sample problems (Mostly continuous time by Pontryagin principle) 27 Oct 2011
- Monday, misc notes 26 Oct 2011
- Training problem 2: the economist's problem statement 24 Oct 2011
- Friday: Optimal Control 21 Oct 2011
- Mathematical Elements of Attack Risk Analysis for Mountain Pine tribolium 18 Oct 2011
- Rewrites 17 Oct 2011
- Friday, more runs 17 Oct 2011
- Thursday, Fisheries course 13 Oct 2011
- Wednesday 12 Oct 2011
- Loo Botsford, CPB seminar 11 Oct 2011
- Wednesday - forage fish & cascades 05 Oct 2011
- Tuesday 04 Oct 2011
- Thursday 29 Sep 2011
- Tuesday - Berkeley visits 27 Sep 2011
- Saturday 24 Sep 2011
- Thursday 22 Sep 2011
- Wednesday 21 Sep 2011
- Colored noise: some classic results in ecology 21 Sep 2011
- Van Kampen Expansion and Stochastic population dynamics 21 Sep 2011
- Tuesday: Visit to Berkeley 21 Sep 2011
- Monday 19 Sep 2011
- pdg-control pdg-control: Thursday 15 Sep 2011
- pdg-control PDG group, Tasks 15 Sep 2011
- Training Problem II 14 Sep 2011
- pdg-control pdg-control: Wednesday 14 Sep 2011
- pdg-control pdg-control, Tuesday 13 Sep 2011
- Pretty Darn Good Control Working Group 12 Sep 2011
- Wednesday 07 Sep 2011
- Thursday Reading 01 Sep 2011
- Wednesday 31 Aug 2011
- Tuesday 30 Aug 2011
- Academic Year 2011 Summary 21 Aug 2011
- ESA personal notes: people, goals 13 Aug 2011
- Saturday: Post ESA, NSF Intersections post-doc? 13 Aug 2011
- ESA Friday 12 Aug 2011
- ESA Thursday 11 Aug 2011
- ESA Wednesday 10 Aug 2011
- ESA Tuesday 09 Aug 2011
- Monday: ESA Conference 08 Aug 2011
- Fisheries stock assessments for early warning 02 Aug 2011
- Monday 02 Aug 2011
- Saturday: Fisheries Data Survey, Warning Signals 30 Jul 2011
- Friday: ESA Practice Talk 29 Jul 2011
- Weds: Manuscript 27 Jul 2011
- Wednesday: ESA presentation, manuscript/appendix edits 27 Jul 2011
- Tues: ESA presentation 26 Jul 2011
- Monday: ESA, appendix, etc 25 Jul 2011
- Sunday: Appendix edits 24 Jul 2011
- Sunday: Warning Signals 17 Jul 2011
- Saturday - back to Warning Signals MS 17 Jul 2011
- Thursday: sending off paper draft, starting applications 07 Jul 2011
- Early warning signals presentation notes 07 Jul 2011
- Exact Simulation by the Gillespie Algorithm 06 Jul 2011
- Wednesday: Data wrangling into graphs 06 Jul 2011
- Tuesday: Warning Signals Data Wrangling 05 Jul 2011
- Warning Signals writing, organization, appendices 04 Jul 2011
- Friday, warning signals writing, etc 01 Jul 2011
- Thursday: Warning Signals writing, figures, segue 30 Jun 2011
- Warning signals: summary statistic performance at varying sampling effort 29 Jun 2011
- Warning Signals writing 29 Jun 2011
- Monday: Warning Signals Manuscript 27 Jun 2011
- Sunday 12 Jun 2011
- Friday 10 Jun 2011
- Sunday -- warning signals manuscript (mostly) 05 Jun 2011
- Thursday: Warning Signals 02 Jun 2011
- Warning Signals Literature: when stats are and aren't attempted 01 Jun 2011
- Matt Potts: Conserving Diversity in Tropical Landscapes 27 May 2011
- Thursday Meetings: Duncan; Alan 26 May 2011
- Wednesday 25 May 2011
- Tuesday 24 May 2011
- Sunday 22 May 2011
- End of NCEAS & the legacy of synthetic data 22 May 2011
- Monday 03 May 2011
- Reading Notes, presentation prep treebase error handling 28 Apr 2011
- Early Warning Signals in Coral Dynamics -- Economic analysis of risk 19 Apr 2011
- Thursday: submitting warning signals manuscript 18 Apr 2011
- Weds: Final round edits 13 Apr 2011
- Tuesday: manuscript and appendix edits 12 Apr 2011
- Monday: Warning Signals - Updated graphs 11 Apr 2011
- Sunday: Warning signals edits continue 11 Apr 2011
- Warning signals 08 Apr 2011
- Steve Ellner's seminar 07 Apr 2011
- Warning Signals - Manuscript touch-ups 06 Apr 2011
- Thursday finishing up appendices(?) 01 Apr 2011
- A few large data problems in Ecology & Evolution 31 Mar 2011
- Wednesday: appendices; parameter distributions 30 Mar 2011
- Tuesday, simulations & appendix 29 Mar 2011
- Monday, appendices continue... 29 Mar 2011
- Sunday -- edits and appendices 27 Mar 2011
- Saturday-- Appendices 26 Mar 2011
- Friday 25 Mar 2011
- Thursday 24 Mar 2011
- Wednesday 23 Mar 2011
- Tuesday: Figures, figures, figures 23 Mar 2011
- Monday -- Edits and organization 22 Mar 2011
- Sunday - manuscript and simulations 21 Mar 2011
- Writing: Warning Signals Mansucript 20 Mar 2011
- Warning Signals examples and tracking graphs 19 Mar 2011
- Warning Signals in Ecological Systems: Revisions and Drake & Griffen Data 17 Mar 2011
- Wednesday 16 Mar 2011
- Tuesday 15 Mar 2011
- Warning Signals, Monday 14 Mar 2011
- Warning signals: summary stats vs likelihood on real and simulated data 11 Mar 2011
- Numerical challenges in likelihood estimation of time-dep OU models 10 Mar 2011
- Warning Signals data examples 09 Mar 2011
- Warning Signals: Comparing Methods on Climate Data 01 Mar 2011
- Warning Signals on Real data continued 28 Feb 2011
- Warning Signals on Real Data? 27 Feb 2011
- ESA 2011 Abstract: Limits to Detection of Early Warning Signals 23 Feb 2011
- Friday 18 Feb 2011
- Weds & Framing warning signals manuscript 16 Feb 2011
- Tuesday 15 Feb 2011
- Monday 14 Feb 2011
- Warning signals & hpc 04 Feb 2011
- Progress on warning signals 03 Feb 2011
- Warning signals: Indicators vs Likelihood continued 31 Jan 2011
- Warning signals of differing stregths by likelihood and by indicator 28 Jan 2011
- Warning signals vs model choice 27 Jan 2011
- McElreath: A Bayesian approach to hierarchical modeling, using R to build our own estimator from scratch 26 Jan 2011
- McElreath Hierarchical Models 24 Jan 2011
- Robert Hijmans on Models to predict sp response to climate change 19 Jan 2011
- Warning Signals, Power and Sufficient Statistics 10 Jan 2011
- Two routes to adaptive branching 06 Jan 2011
- Better dynamic documents (Sweave) with syntax highlighting, caching, etc 12 Dec 2011
- Friday: wrightscape, ggplot, wp memory 25 Nov 2011
- some configuration notes: RStudio setup, syntax highlighting in sweave 22 Nov 2011
- Parallel hpc on clusters in R, MPI 10 Nov 2011
- Sunday 06 Nov 2011
- Sparkleshare configuration 04 Nov 2011
- server file management from bowser: ajaxplorer, mollify 01 Nov 2011
- Optimal Control Exploration 19 Oct 2011
- Algorithms Group: Literate programming 17 Oct 2011
- rfishbase Tutorial - updated & extended 12 Oct 2011
- Algorithms Group, HMM meets EM 10 Oct 2011
- Friday, wordpress backups, pmc edits 30 Sep 2011
- memory management, cron 07 Sep 2011
- Algorithms group: Hidden Markov Models 29 Aug 2011
- Monday: scaling wrightscape examples 29 Aug 2011
- Sunday: scaling, runs 28 Aug 2011
- Saturday: working on computational scaling, ion, etc 27 Aug 2011
- rropensci and some taxonomy in R with taxize 26 Aug 2011
- FishBASE from R: some XML parsing 26 Aug 2011
- Tuesday: rropensci, Rmpi, manuscripts, ... 23 Aug 2011
- Wednesday: migrating codes into MPI 17 Aug 2011
- Monday: Algorithms Discussion Group, EM finished 25 Jul 2011
- CSGF Conference Notes 24 Jul 2011
- CSGF 2010 Computing Practices Survey Summary 24 Jul 2011
- Segue: Easy cloud hpc in R, now with custom packages 07 Jul 2011
- EM Algorithm 13 Jun 2011
- Thursday Meetings: Duncan; Alan 26 May 2011
- Monday: some code-tricks, Algorithms group planning 23 May 2011
- Algorithms Discussion Group: MCMC 04 May 2011
- wrightscape profiling 24 Apr 2011
- Algorithms Discussion Group: algorithms Continued 18 Apr 2011
- Monday: algorithms Meeting 11 Apr 2011