These are a list of Cloud Computing resources for supporting research and education. Some of them are NSF funded.
Friday, November 11, 2016
Monday, November 7, 2016
VMWare Unity Mode on Ubuntu 16.04 LTS
Some users want to run Linux desktop guests "seamlessly" within host operating systems, for which, VMWare Hypervisors provides a functionality called VMware "Unity" mode.
This post is about how we can enable the Unity mode on Linux desktop guests running Ubuntu 16.04, well, if you are willing to settle on an older version of WMware Workstation or Player.
In fact, it becomes difficult to enable the "Unity" mode for Linux guests. If you visit my older post on enabling VMware Unity mode on Ubuntu 14.04, you can see many have encountered difficulties, myself included. In particular, it is getting more difficult to enable the Unity mode on recent releases of desktop editions of Linux distributions. In my opinion, the difficulties come form the following three sources,
However, having observed the above, we actually have a solution.
For Ubuntu 16.04, we can enable Unity mode using VMware Player by following the steps below,
This post is about how we can enable the Unity mode on Linux desktop guests running Ubuntu 16.04, well, if you are willing to settle on an older version of WMware Workstation or Player.
In fact, it becomes difficult to enable the "Unity" mode for Linux guests. If you visit my older post on enabling VMware Unity mode on Ubuntu 14.04, you can see many have encountered difficulties, myself included. In particular, it is getting more difficult to enable the Unity mode on recent releases of desktop editions of Linux distributions. In my opinion, the difficulties come form the following three sources,
- Apparently, VMWare has recently dropped the support of Unity mode for Linux guests. You can infer this by comparing the documentation of VMware Workstation Player 12 with that of the previous version of the player, the VMware Player 7. VMware's Workstation Player 12 documentation now states,
"
On the contrary, VMware Player 7 documentation states,
Use Unity Mode
You can switch virtual machines that have Windows XP or later guest operating systems to Unity mode to display applications directly on the host system desktop.
"
"
It is clearly that Linux support has been dropped.
Use Unity Mode
You can switch virtual machines that have Linux or Windows 2000 or later guest operating systems to Unity mode to display applications directly on the host system desktop.
"
- Unity mode requires MetaCity or KDE, which does not appear to be the default and optimization objective for major Linux distributions.
- VMWare Unity mode's installation software does not know how to interact with systemd that has gradually becomes the default choice of the init service on most Linux distributions.
However, having observed the above, we actually have a solution.
- Hypervisor. We need to stick to the version of VMware Workstation or Player that supports the Unity mode. The newest version of Player that supports the Unity mode is actually VMWare Player 7.1.4. You can download it from VMware
- Linux Guest Dekstop Environment. We need to stick to Gnome 2 MetaCity or KDE.
For Ubuntu 16.04, we can enable Unity mode using VMware Player by following the steps below,
- Download and install VMware Player 7.1.4. Note that neither any version older than 7.1.4 nor any version newer than VMware Player, such as VMware Workstation 12 will work.
- In Ubuntu 16.04, install Gnome Flashback as follows,
sudo apt-get install gnome-flashback gnome-session-flashback
-
From the menu of VMware Player, choose "Player", "Manage", and "Install VMware Tools" (or Reinstall VMware Tools"). Make sure that you are installing VMwareTools 9.9.5. Earlier version would crash the vmtools library at the Ubuntu guest when you attempt to switch to Unity mode.
- In the Ubuntu Linux guest, extract the mounted VMwareTools image, and run "vmware-install.pl" to install the VMware Tools.
- Upon successfully installation of the VMware Tools, log out.
- When you log in, on the screen of the Display Manager, make sure that you select "GNOME Flashback (Metacity)" as shown below.
- Upon log in, you should be able to switch to the VMware Unity mode.
Sunday, November 6, 2016
Mounting Shared Directory at the Host using Open VM Tools
Open VM Tools is a user space tools for Linux virtual machines. To mount a directory shared by the host to a VMware Linux guest, we can use
First, we can figure out what has been shared at the host to the guest Linux system using
Assume that the output is
To mount the directory at the boot time, we can add a line similar to the following to the
You can also add different mounting options. For instance, in the following, the shared directory will be shown as owned by user
vmhgfs-fuse
.First, we can figure out what has been shared at the host to the guest Linux system using
vmware-hgfsclient
, which is simply to enter the command in the Linux guest.
vmware-hgfsclient
Assume that the output is
shared_foo
and we want to mount it at /mnt/hgfs/foo
at the guest Linux system, we can run the following command at the Linux guest,
vmhgfs-fuse .host:/shared_foo /mnt/hgfs/foo
To mount the directory at the boot time, we can add a line similar to the following to the
/etc/fstab
at the Linux guest,
.host:/shared_foo /mnt/hgfs/foo fuse.vmhgfs-fuse allow_other 0 0
You can also add different mounting options. For instance, in the following, the shared directory will be shown as owned by user
foo_user
and group foo_group
, and with umask=022
applied.
.host:/shared_foo /mnt/hgfs/foo fuse.vmhgfs-fuse allow_other,uid=foo_user,gid=foo_group,umask=022 0 0
Saturday, November 5, 2016
Setting up Jekyll on Ubuntu 16.04
I recently set up Jekyll 3 on Ubuntu 16.04. The procedure is simple, works on Ubuntu 14.04, and perhaps also works on other versions of Ubuntu and other Linux distributions.
- Create a directory for your Jekyll site. For instance, let us call it "mysite".
mkdir mysite
-
Go to the site directory, and create a file called "Gemfile". The file defines Ruby applications dependencies.
Since Jekyll is a Ruby application. This file defines the dependencies for Jekyll. It is quite simple, and
the following shell command will create the file with sufficient content.
cd mysite echo "source 'https://rubygems.org'" > Gemfile echo "gem 'execjs'" >> Gemfile echo "gem 'therubyracer'" >> Gemfile echo "gem 'github-pages', group: :jekyll_plugins" >> Gemfile
- Now install Ruby and other necessary packages.
sudo apt-get install ruby ruby-dev ruby-bundler zlib1g-dev build-essential
-
Finally, install Jekyll and its dependencies. On the site directory where Gemfile is, do the following,
bundle install
- To build the Jekyll site, do the following on the site directory,
bundle exec jekyll build
- You can serve the site by the following command,
bundle exec jekyll serve --host=127.0.0.1 --port=4000
Friday, November 4, 2016
Installing Ruby 2.3 on Ubuntu 14.04 or Older
Ubuntu 14.04 comes with the version 1.9 of Ruby. I need a new version of Ruby. To install any version of 2.0 - 2.3, we can use the brightbox repository as follows,
$ sudo apt-add-repository ppa:brightbox/ruby-ng
$ sudo apt-get update
$ sudo apt-get install ruby2.3 # or ruby2.2
$ sudo apt-get install ruby2.3-dev
Data Sets (for Research and for Fun)
Below are a few places you can find data sets, perhaps, for your own research and for fun.
- Datahub by the Open Knowledge Foundation
- U.S. Government’s open data
- New York City's Open Data
- Data used in articles at fivethirtyeight.com
- Reddit's DataSet subreddit
Thursday, October 27, 2016
Copying Files to Network Shared Folder Crashes Windows 10 Explorer
I sometimes copy files to network shared folders on a Windows 10 host. The action often crashes the Windows 10 explorer, and you would observe that the Windows 10 explorer is terminated and restarted when this happens.
A solution that has helped me was from this discussion. That is, check the "Always show icons, never thumbnails" from the "Folder View". As the following screen captures shows, to access the Folder View, you need to choose "View" from the Folder window, click "Option" from the Ribbon, and choose "Change folder and search options". On the "Folder and Search Options" popup window, select the "View" tab, and from the Fold View, check "Always show icons, never thumbnails", and click the "OK" button to confirm.
A solution that has helped me was from this discussion. That is, check the "Always show icons, never thumbnails" from the "Folder View". As the following screen captures shows, to access the Folder View, you need to choose "View" from the Folder window, click "Option" from the Ribbon, and choose "Change folder and search options". On the "Folder and Search Options" popup window, select the "View" tab, and from the Fold View, check "Always show icons, never thumbnails", and click the "OK" button to confirm.
Sunday, October 16, 2016
Flashed Android Phone Staying in Boot Animation Cycle
I have an old HTC EVO 4G LTE Android phone. It is dubbed code name "jewel". I was flashing it with a CyanogenMod custom ROM following the instruction on CyanogenMod's website. However, once I finished the flashing process, and the phone stays in boot animation cycle, i.e., it would boot into the HTC logo, and the screen would turn dark, and the process repeats.
It turns out the boot image was not installed properly. To fix it, extract the boot.img from the custom ROM zip file, and upload the boot image to the phone, and boot the phone into fastboot mode, and run the following command,
fastboot flash boot boot.img
This procedure is discussed in an xda-developers.com thread.
It turns out the boot image was not installed properly. To fix it, extract the boot.img from the custom ROM zip file, and upload the boot image to the phone, and boot the phone into fastboot mode, and run the following command,
fastboot flash boot boot.img
This procedure is discussed in an xda-developers.com thread.
Monday, October 10, 2016
Free SSL Certificates
It has many benefits for using SSL to enable HTTPS for web services as discussed therein. In fact, you can access this blog via HTTPS as Google states. It is possible that you can obtain free certificates from a very limited list of providers. Previously, I took a note on "Free SSL Certificates for Securing E-mails and Websites".
I came across Let's Encrypt that can provide free SSL certificates and has a protocol that allows a web service to obtain the certificates "on the fly".
Here is a list of information that may be of your interest before you try. You can certainly find out the information for their website.
I came across Let's Encrypt that can provide free SSL certificates and has a protocol that allows a web service to obtain the certificates "on the fly".
Here is a list of information that may be of your interest before you try. You can certainly find out the information for their website.
- Which browsers and operating systems support Let’s Encrypt?
- Root Certificates and chain of trust
- User community
Monday, September 5, 2016
Switching Back to Upstart on Ubuntu 16.04 LTS
Ubuntu 16.04 LTS has adopted
systemd
as its default system and service manager, i.e., the init
manager. Although systemd offers many benefits, such as, aggressively starting services concurrently, you may sometimes want to switch back to upstart
, the older system and service manager for Ubuntu because some services that you still have to run depend on it. Below are the steps that you can play with to switch to back upstart
. However, since Ubuntu 16.04 is now designed with systemd
as default system and service manager, many other services and applications are not designed to work without systemd
. As a result, the following steps, as a few readers have noticed, may render your Ubuntu installation unusable. To run a Linux system without using systemd
, the best approach is, to select and set up a Linux distribution that does not rely on systemd
. See the Without-Systemd Wiki for more information and a list of Linux distributions. - Install
upstart-sysv
and removesystemd-sysv
.
sudo apt-get install upstart-sysv
-
Update
Ubuntu
to reflect the change that you just made.
sudo update-initramfs -u
-
Now you need to remove a few remaining
systemd
package in the system. This step removes package includinglibpam-systemd
.sudo apt-get purge systemd
If you do not perform this step, you will see an error message as follows after you reboot the system and log back in.
[ 26.664057] systemd-logind[4445]: Failed to start user service, ignoring: Unknown unit: user@1000.service
-
Now reboot and log back in. You should see your system with a clean bill of health with
upstartd
back at the helm.
Sunday, August 14, 2016
PyDev in Eclipse Cannot Locate multiprocessing.Process
I am using PyDev with Eclipse. Recently, I found that PyDev complains that it cannot find
A discussion at Stackoverflow comes to rescue and provides the following answer,
The question becomes, how may we add a forced builtin? The answer is in this PyDev manual page, that is,
multiprocessing.Process
when it analyzes the code, as such, it marked "Process" as a symbol that cannot be resolved in a statement as below, although I can run and debug the script without any problems,
from multiprocessing import Process
A discussion at Stackoverflow comes to rescue and provides the following answer,
"If you're using Eclipse and PyDev you need to include 'multiprocessing' as a forced builtin for the python interpreter."
The question becomes, how may we add a forced builtin? The answer is in this PyDev manual page, that is,
- Go to: window > preferences > PyDev > Interpreter - (Python/Jython/IronPython).
- Choose the interpreter you have installed in your computer.
- Select "Forced Buildins", and choose "New", finally, add "multiprocessing".
Sunday, August 7, 2016
Developing Google Apps Scripts Add-ons
This posts provides a brief review on the advanced techniques to develop, manage revisions, and publish Google Apps Scripts add-ons.
It is assumed that you have installed the node-google-apps-script that provides
Be aware that locally, the main script is named as Code.js instead of Code.gs. It will be automatically named as Code.gs when it is uploaded to your Google drive.
Having tested your code, you can now upload our project to the Google Drive.
Therefore, you must first verify your account at Google Chrome Web Store Console site, for which, Google requires you to pay a nominal fee, at the time this post is written, $5.
Once you meet the above requirement, to publish an add-on, or to update an published add-on. Detail information is in this piece of Google documentation. In the nutshell, at http://script.google.com, choose "Publish", and then select "Publish as Web Add-on".
It is assumed that you have installed the node-google-apps-script that provides
gapps
and authenticated it with Google Apps engine, and uses Eclipse to manage the Google Apps Scripts add-ons projects. Initiating a Project
- Create a new Google Apps Script project remotely at http://script.google.com, name the project properly, and allow it to save to the Google Drive. Note that the project will be stored in your Google drive. You should also now look up the the project id, which can be accomplished by at http://script.google.com, going to "File", and then "Project properties", finally, locating the "Script ID".
- Create a JavaScript project locally using Eclipse or some other IDEs of your choice.
- Initialize the project with
gapps
locally as follows,
gapps init my_project_id
Note thatmy_project_id
must be replaced by the actual project id.
Developing and Revision Management
You can now develop the project locally and manage it using any revision management system you prefer, such asgit
. Be aware that locally, the main script is named as Code.js instead of Code.gs. It will be automatically named as Code.gs when it is uploaded to your Google drive.
Uploading Project
Having tested your code, you can now upload our project to the Google Drive.
gapps upload
Publishing Project
To publish the Google Scripts Add-on projects to the Google Chrome Web Store, you must first have a verified Google Chrome Web Store Console account, without which, you will not be able to publish your project and at present, the website http://script.google.com does not give you much meaningful error messages either.Therefore, you must first verify your account at Google Chrome Web Store Console site, for which, Google requires you to pay a nominal fee, at the time this post is written, $5.
Once you meet the above requirement, to publish an add-on, or to update an published add-on. Detail information is in this piece of Google documentation. In the nutshell, at http://script.google.com, choose "Publish", and then select "Publish as Web Add-on".
Friday, August 5, 2016
Installing Adobe Reader in Ubuntu 16.04 LTS
For those who like Adobe Reader to read PDF files, you may find it difficult to install Adobe Reader on Ubuntu 16.04 LTS systems. Assembling information from a few posts, here is the solution that worked for me,
If you are on a x64 system, you may see many annoying warning messages when you run
To get rid of the warning messages, install these four packages
If you are running
by
Finally, run
sudo apt-get clean all
sudo add-apt-repository "deb http://archive.canonical.com/ precise partner"
sudo apt-get update
sudo apt-get install adobereader-enu
sudo add-apt-repository -r "deb http://archive.canonical.com/ precise partner"
sudo apt-get clean all
sudo apt-get update
If you are on a x64 system, you may see many annoying warning messages when you run
acroreader
, such as,
......
(acroread:19366): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",
......
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "gail"
Gtk-Message: Failed to load module "atk-bridge"
To get rid of the warning messages, install these four packages
gtk2-engines-murrine
, libcanberra-gtk-module
,
libatk-adaptor
, and libgail-common
for i386
as follows,
sudo apt-get install gtk2-engines-murrine:i386 libcanberra-gtk-module:i386 libatk-adaptor:i386 libgail-common:i386
If you are running
Gnome
like I do, then the last step is to set up default application for open PDF files. This is to edit the /etc/gnome/defaults.list
file.
sudo gedit /etc/gnome/defaults.list
The editing is to find and replace the line
application/pdf=evince.desktop
by
application/pdf=acroread.desktop
and add the following lines to the end of the file,
application/fdf=acroread.desktop
application/xdp=acroread.desktop
application/xfdf=acroread.desktop
application/pdx=acroread.desktop
Finally, run
nautilus
to apply change if you do not wish to log out and log back in.
nautilus -q
Saturday, July 23, 2016
Managing Python Environment using Anaconda
Previously, we discussed that you could manage multiple versions of Python runtime environment on Linux systems using python-virtualenv. This post is a note on how we may manage Python runtime environment using Anaconda. Anaconda is a cross-platform tool, and runs on Windows, Mac OS X, and Linux.
Below are steps tested on a Windows 10 system.
Note that in the above we install packages for
Below are steps tested on a Windows 10 system.
- Download Anaconda package and install it.
- You can now see that Python is installed
C:\Users\DemoUser>python --version Python 3.5.2 :: Anaconda 4.1.1 (64-bit)
-
See this page for how to manage different version of Python environment. Below shows how we may bring Python up-to-date.
C:\Users\DemoUser>conda update python Fetching package metadata ....... # All requested packages already installed. # packages in environment at C:\Anaconda3: # python 3.5.2
C:\Users\DemoUser>
conda install -y gensim Fetching package metadata ....... Solving package specifications: .......... Package plan for installation in environment C:\Anaconda3: The following packages will be downloaded: package | build ---------------------------|----------------- bz2file-0.98 | py35_0 6 KB conda-env-2.5.2 | py35_0 67 KB conda-4.1.9 | py35_0 247 KB smart_open-1.3.3 | py35_0 28 KB gensim-0.12.4 | np111py35_0 2.2 MB ------------------------------------------------------------ Total: 2.6 MB The following NEW packages will be INSTALLED: bz2file: 0.98-py35_0 gensim: 0.12.4-np111py35_0 smart_open: 1.3.3-py35_0 The following packages will be UPDATED: conda: 4.1.6-py35_0 --> 4.1.9-py35_0 conda-env: 2.5.1-py35_0 --> 2.5.2-py35_0 Fetching packages ... bz2file-0.98-p 100% |###############################| Time: 0:00:00 95.70 kB/s conda-env-2.5. 100% |###############################| Time: 0:00:00 245.29 kB/s conda-4.1.9-py 100% |###############################| Time: 0:00:01 155.70 kB/s smart_open-1.3 100% |###############################| Time: 0:00:00 205.54 kB/s gensim-0.12.4- 100% |###############################| Time: 0:00:15 150.04 kB/s Extracting packages ... [ COMPLETE ]|##################################################| 100% Unlinking packages ... [ COMPLETE ]|##################################################| 100% Linking packages ... [ COMPLETE ]|##################################################| 100%
C:\Users\DemoUser>
Note that in the above we install packages for
DemoUser
. To install packages system-wide, we need to be elevated to system administrator.
Wednesday, July 20, 2016
Plagiarism Checking Tools
As the title suggests, here is a list of plagiarism checking tools, some of which offer free services,
- Plagiarisma (http://plagiarisma.net/, offer free services when the post was written)
- Duplichecker (http://www.duplichecker.com/, offer free services when the post was written)
- Copy Leaks (https://copyleaks.com/, code repository at GitHub, offer free services when the post was written)
- Grammarly (https://www.grammarly.com/, offer free services when the post was written)
- Small SEO Tools Plagiarism Checker (http://smallseotools.com/plagiarism-checker/, offer free services when the post was written)
- Dustball Plagiarism Checker (http://www.dustball.com/cs/plagiarism.checker/, offer free services when the post was written)
- PaperRater's Plagiarism Detection (http://www.paperrater.com/, offer free services when the post was written)
- Search Engine Reports' Plagiarism Checker (https://searchenginereports.net/plagiarism-checker/, offer free services when the post was written)
- Article Checker checks duplication (http://www.articlechecker.com/, offer free services when the post was written)
- TurnItIn (http://turnitin.com/, if you have $$$)
- Copyscape (http://www.copyscape.com/, if you have $$$)
- Whitesmoke has plagiarism checking functionality (http://www.whitesmoke.com/, if you have $$$)
Saturday, July 9, 2016
Running Multiple Versions of Python on a Single Linux System
While some Python applications are written in Python 3, some others are still being maintained and developed in Python 2. That is to say, there is a need to run multiple versions of Python on a single system. The following steps show that you can install multiple versions of Python on a single Linux system, and activate and deactivate the version you wish to use conveniently by leveraging on virtual python environments. Note that the following steps are tested on a Debian-based Linux system, such as Debian Linux and Ubuntu Linux
-
Install the Python 2 and Python 3 if you have not done so.
sudo apt-get install python python3
-
Install
python-virtualenv
packages. This step is the key.
sudo apt-get install python-virtualenv
-
Show that you have both python 2 and 3 binaries. In the Linux system I am using for this post, the python binary by default points to Python 2's binary. Yours may differ.
$ python --version Python 2.7.6 $ python3 --version Python 3.4.3
-
To develop or run some applications in python 3, we need to activate Python 3. Then, first create a directory as the working directory for the Python 3 application. For instance, we name the directory as
proj_python_3
.
$ mkdir proj_python_3
-
Now switch to the directory.
cd proj_python_3 $ which python3 /usr/bin/python3
-
Then activate Python 3, we first need to set up an environment in the working directory for Python 3.
$ virtualenv -p /usr/bin/python3 .env Running virtualenv with interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in .env/bin/python3 Also creating executable in .env/bin/python Installing setuptools, pip...done.
-
Now we can activate Python 3 any time we wish after we switch to the working directory.
$ pwd /home/user/proj_python_3 $ . .env/bin/activate (.env)$
Note that the prompt shows that you are under a virtual environment for Python 3. You can show that the activated Python version is Python 3.
(.env)$ python --version Python 3.4.3
-
To deactivate the virtual environment, run the following,
(.env)$ deactivate $ python --version Python 2.7.6
Monday, March 14, 2016
Diagnosing Windows File and Printer Share
When we find that the Windows File and Printer Share does not work as we desire, e.g., you may observe an error as follows,
many factors can contribute to the problem, commonly,
System error 53 has occurred.
The network path was not found.
many factors can contribute to the problem, commonly,
- Name resolution including both Domain Name Resolution (DNS) and NetBIOS Name Resolution
- Windows Firewall
- Disable Windows Firewall on the remote host
- Check any of special hidden administrative shares is accessible on the client host using the remote host's IP address, e.g.,
net use \\192.168.1.101\Admin$
If the resource is accessible, you will be prompted for username or password, e.g.,C:\>net use \\192.168.1.102\admin$ The password is invalid for \\192.168.1.102\Admin$. Enter the user name for '192.168.1.102':
- If Step 2 fails,it is likely that you have forgotten to share the resource. Follow the Microsoft's guideline to share the resource.
- If Step 2 succeeds, check if the remote host's NetBIOS name registered and resolved on the client host,
C:\>nbtstat -a myhost
Depending on the number of interfaces that the client machine has, it may take a while. Regardless, it should show that the NetBIOS Name "myhost" should be registered on the network interface via which the remote machine is accessible, e.g.,
where we assume the client host's IP address is 192.168.1.101.Ethernet 3: Node IpAddress: [192.168.1.101] Scope Id: [] NetBIOS Remote Machine Name Table Name Type Status --------------------------------------------- MYHOST <20> UNIQUE Registered MYHOST <00> UNIQUE Registered WORKGROUP <00> GROUP Registered WORKGROUP <1e> GROUP Registered MAC Address = 66-11-22-33-44-55 1e>00>00>20>
- If Step 4 fails, you must set up the NetBIOS name properly on the remote host by following Microsoft's guideline. You may also refer to this article on NetBIOS naming.
- Then, you can now try to access the shared resource on the remote host using the resource name and the remote host's NetBIOS name. The resource should be in the form of "\\MYHOST\MYSHARE".
net use \\MYHOST\MYSHARE
Or, if you need to provide a different Windows credential,net use \\MYHOST\MYSHARE
/user:MYHOST\MYUSERNAME
- Now enable Windows Firewall and repeat Step 6. If Step 6 is successful, the Windows Firewall has already been configured to allow the Windows File and Printer share. If not, allow the Windows File and Printer Share in the Window Firewall, following the Windows guideline.
Thursday, March 3, 2016
Extra Fonts for LaTex using Texlive on Ubuntu
One day, when I compiled a LaTex file, I encountered the following error,
It appears that others also encountered similar. The solution is simple. It is just to install additional fonts that are Times compatible. I am using Texlive on a Ubuntu system. On Ubuntu, perhaps, other Debian-based Linux system, you can install additional fonts for LaTeX as follows,
-- Verifying Times compatible math font.
** Times compatible math font not found, forcing.
** No Times compatible math font package found. newtxmath is required.
! LaTeX Error: File `newtxmath.sty' not found.
It appears that others also encountered similar. The solution is simple. It is just to install additional fonts that are Times compatible. I am using Texlive on a Ubuntu system. On Ubuntu, perhaps, other Debian-based Linux system, you can install additional fonts for LaTeX as follows,
sudo apt-get install texlive-fonts-extra
The error went away after I installed the package.
Wednesday, March 2, 2016
Yahoo Calendar on Mozilla Thunderbird with Lightning and on Android Devices
I have had plenty of difficulties to put Yahoo Calendar on Mozilla Thunderbird with Lightning and on Android Devices.
If you still want to use Yahoo! Calendar and have difficulties to put it on Mozilla Thunderbird and on Android Devices. This post may be helpful to you.
It appears straightforward to put Yahoo Calendar on Thunderbird. As documented in Mozilla documentation entitled "Thunderbird and Yahoo" and Yahoo documentation entitled "Sync Yahoo Calendar with Mozilla Lightning", it appears that it is well established that Thunderbird with Lightning add-on should work with Yahoo Calendar.
However, you may notice two issues.
Below is what Yahoo says about the apps that do not support two-step authentication,
The only issue that I had was that it often encountered password authentication issue with Yahoo CalDAV service.
The solution is that you treat the SolCalendar as an old app that does not support two-step authentication and create an 16-character app password for it, following Yahoo's instruction.
If you still want to use Yahoo! Calendar and have difficulties to put it on Mozilla Thunderbird and on Android Devices. This post may be helpful to you.
Yahoo! Calendar on Thunderbird
It appears straightforward to put Yahoo Calendar on Thunderbird. As documented in Mozilla documentation entitled "Thunderbird and Yahoo" and Yahoo documentation entitled "Sync Yahoo Calendar with Mozilla Lightning", it appears that it is well established that Thunderbird with Lightning add-on should work with Yahoo Calendar.
However, you may notice two issues.
- If you follow Yahoo's instruction in "Sync Yahoo Calendar with Mozilla Lightning" to use iCalendar as the means to access Yahoo Calendar on Thunderbird with Lightning, you only get read access, that is, you cannot create or change any events in Yahoo Calendar on Thunderbird with Lightning. Therefore, a better approach is to use Yahoo CalDAV services as instructed in "Sync Yahoo Calendar on Multiple Devices". However, the Yahoo CalDav URL is actually in the following format,
https://caldav.calendar.yahoo.com/dav/YOUR_USERNAME/Calendar/YOUR_CALENDARNAME
- If you set up Lightning to access Yahoo Calendar via its CalDAV service, you may encounter authentication problem. I encountered the authentication problem myself. Many others also encountered the same problem, for example, this and this. A few suggest that you should change your Yahoo password after you encounter the password authentication problem. I have tried it, and it worked for a while and the problem always reappeared. Finally, I realize that Thunderbird with Lightning has yet to support two-factor authentication (sometimes called two-step authentication) and have to treat Thunderbird with Lightning as an "old app" that does not support two-step authentication.
" When you sign up for 2-Step Verification, we normally send you verification codes. However, these codes do not work with some apps and devices, like Gmail on your iPhone or iPad, Thunderbird, and Outlook. Instead, you’ll need to authorize the app or device the first time you use it to sign in to your Google Account by generating and entering an App password. "
Below is what Yahoo says about the apps that do not support two-step authentication,
" Some 3rd party apps, such as iOS Mail, Android Mail, and Outlook, don't work with two-step verification, on-demand passwords (ODP) or Account Key enabled. To use these apps, you'll need to generate an app-specific password. This isn't a new password for your account. It's a one-time password to validate you're authorizing access to your account from a non-Yahoo app."Therefore, the solution to put Yahoo Calendar on Thunderbird on Lightning is to follow the steps below,
- Following Yahoo's instruction, enable two-step authentication and generate an 16-character app password. Note the password. You will not be able to view it again.
- Following Mozilla's instruction, add Yahoo Calendar to Lightning using the 16-character app password.
Yahoo! Calendar on Android Devices
The Google Play store has a few CalDAV clients. I use a free calendar app called SolCalendar that supports CalDAV services.The only issue that I had was that it often encountered password authentication issue with Yahoo CalDAV service.
The solution is that you treat the SolCalendar as an old app that does not support two-step authentication and create an 16-character app password for it, following Yahoo's instruction.
Monday, February 29, 2016
Exchange Calendars in Mozilla Thunderbird with Lightning
This post shows how you may add your Exchange Server calendar to Thunderbird with Lightning Add-on.
1. Install Thunderbird with Lightning.
Download Thunderbird from Mozilla. The most recent reversions, such as, version 38.6.0 has already included Lightning.2. Install the Exchange Calendar Lightning Add-on
The Exchange Calendar Lightning Add-on was previously the Exchange EWS Provider Add-on for Lightning that was developed at 1st Setup. It is now being maintained and developed by Ericsson.
Download the binary build of the recent version from its release channel. For instance, you can download directly the binary build of the per-release v3.6-beta1, exchangecalendar-v3.6.0-beta1.xpi. Save the xpi file and note the location.
Now, you can install the Lightning Add-on.
- On Thunderbird, switch to the Calendar Tab by pressing "CTRL-SHIFT-C".
- Then go to "Tools", then "Add-ons", "Settings", "Install Add-on from File ...", and finally, select the downloaded xpi file to install. Upon completion, restart Thunderbird.
3. Add an Exchange Calendar to Thunderbird.
This step turns out to be a trick part. If you network administrator is cooperative and publicizes the settings for your Exchange Server, your life can be easier. Unfortunately, it has been not my case. Below are the steps you may try.(1). Set up Exchange Calendar in Thunderbird using Exchange's autodiscovery function
You may follow the instruction provided by the developers of the Exchange Calendar Lightning Add-on and attempt to set up your Exchange calendar in Thunderbird Lighting. The instruction is "How to Add Your Calendar to Thunderbird".
If this attempt fails, you may try the second approach below.
(2). Set up Set up Exchange Calendar in Thunderbird mannually
When you come to this step, the last attempt must have failed. However, it still sometimes provide you with a piece of useful information, that is, the "Primary email address" that may not necessarily be what you think it should be.
You may follow the steps outlined in "Add a Microsoft Office 365 Calendar" at 1-st Setup.
However, I found that in my case the "Primary email address" and the "Username" were different and the Username must take the form of "myusername@mycompany.com" while the "Primary email address" takes the form of "myusername@mycompanyaltname.onmicrosoft.com".
You may have to try both combinations to see which one works for you.
Reference
- Leah S., "Office 365 (Thunderbird) - Exchange Calendar and Tasks Add-On for Lightning," https://kb.wisc.edu/office365/page.php?id=29243, retrieved on February 29, 2016
- Leah S., "Office 365 (Thunderbird) - Configure Thunderbird," https://kb.wisc.edu/office365/page.php?id=28427, retrieved on February 29, 2016
- Mozilla Support Forum, "Thunderbird does not work with office 365," https://support.mozilla.org/en-US/questions/1059850, retrieved on February 29, 2016
- Mozilla Developers, "Thunderbird Lightning User Interface," https://support.mozilla.org/en-US/kb/lightning-user-interface#w_switching-between-mail-tabs-and-lightning-tabs, retrieved on February 29, 2016
- 1st Setup Admin, "Add a Microsoft Office 365 Calendar," http://www.1st-setup.nl/wordpress/wp_super_faq/add-a-microsoft-office-365-calendar/, retrieved on February 29, 2016
- 1st Setup Admin, "Exchange EWS Provider Add-on for Lightning," http://www.1st-setup.nl/wordpress/poducten/exchange-ews-calendar-and-tasks-add-on-for-thunderbird-lightning/ , retrieved on February 29, 2016
- Ericsson Exchange Calendar Team on Github, "How to Add Your Calendar to Thunderbird," https://github.com/Ericsson/exchangecalendar/wiki/How-to-Add-Your-Calendar-to-Thunderbird, retrieved on February 29, 2016
- Ericsson Exchange Calendar Team on Github, "Exchange Calendar Lightning Add-on Release," https://github.com/Ericsson/exchangecalendar/releases, retrieved on February 29, 2016
Monday, February 22, 2016
Funding STEM at the Cost of Liberal Arts?
Again, STEM or not? I saw an article in New York Times on funding STEM at the cost of liberal arts. This argument has been going on for a while and this New York Times article is not going to be the last one. Many feel very strong about this, for it or against it.
I am using this post as a bookmark for this type of news articles. I'll come back and add more ...
A Rising Call to Promote STEM Education and Cut Liberal Arts Funding, By PATRICIA COHENFEB. NY Times. 21, 2016.
I am using this post as a bookmark for this type of news articles. I'll come back and add more ...
A Rising Call to Promote STEM Education and Cut Liberal Arts Funding, By PATRICIA COHENFEB. NY Times. 21, 2016.
On Exception Handling
Exception and error handling is a subtle and important issue. This is just a note on a few good reads on exception handling.
- Exception-Handling Antipatterns by chrisadamson
- Three Rules for Effective Exception Handling by chrisadamson
- Best Practices for Exception Handling by Gunjan Doshi
- Exception Handling: Common Problems and Best Practice with Java 1.4, by Andreas Müller and Geoffrey Simmons
- Error Handling in Node.js
- Best practices in EJB exception handling by Srikanth Shenoy
Wednesday, February 17, 2016
Tools for Writing
This is just a bookmark on a number of writing tools,
- Jupyter Notebook. "The Jupyter Notebook is a web application for interactive data science and scientific computing."
- Authorea. Authorea is the collaborative editor for research. Write and manage your documents in one place, for free.
- Overleaf. Overleaf is a collaborative writing and publishing system for writing and previewing in LaTex.
Subscribe to:
Posts (Atom)