Zotero Tutorial – Hướng dẫn sử dụng Zotero để quản lý tài liệu tham khảo và viết tài liệu khoa học (paper, poster and thesis)

Update ngày 12/02/2015: Bản Zotero chính thức mới nhất (dành cho Firefox và bản Standalone) 4.0.26.

Update ngày 16/01/2015: Bản Zotero chính thức mới nhất (dành cho Firefox và bản Standalone) 4.0.25.2.

Update ngày 03/09/2014: Bản Zotero chính thức mới nhất (dành cho Firefox và bản Standalone) 4.0.22.

Update ngày 02/05/2014: Bản Zotero chính thức mới nhất (dành cho Firefox và bản Standalone) 4.0.20.2.

Update ngày 21/03/2014: Bản Zotero chính thức mới nhất (dành cho Firefox và bản Standalone) 4.0.19.

Update ngày 19/03/2014: Bản Zotero chính thức mới nhất (dành cho Firefox và bản Standalone) 4.0.18.1. Điểm nổi bật nhất của bản nâng cấp này là tính năng “Retrieve Metadata from PDF” đã được cải thiện đáng kể, ngoài ra một số lỗi khác cũng được fixed.

Update ngày 18/12/2013: Bản Zotero chính thức mới nhất (dành cho Firefox và bản Standalone) 4.0.17.1.

Update ngày 28/03/2013: Bản Zotero mới nhất 4.0 beta 2 đã được đưa ra với nhiều tính năng mới đáng chú ý ví dụ như tự động cập nhập style, sử dụng tên viết tắt của các tạp chí, tương thích Firefox 20 … (có thể xem chi tiết hơn tại Zotero 4 changelog). Tôi đã thử nghiệm và thấy rằng tính năng đáng giá nhất của bản 4.0 này là khả năng lấy metadata tốt hơn so với  các bản trước đó (mới nhất là 3.0.14).

Keywords: Zotero là gì? Dùng Zotero với Word, LaTeX như thế nào? Hướng dẫn về Zotero. Phần mềm quản lý tài liệu tham khảo.

Trong bài viết LaTeX and Zotero for the scientists – Goodbye to MS Word tôi đã hướng dẫn sơ qua về việc cài đặt ZoteroMikTeX 2.9 để có thể sử dụng LaTeXZotero viết các tài liệu khoa học. Tuy nhiên hướng dẫn về Zotero vẫn chưa đầy đủ lắm, nên viết thêm bài này, hy vọng có thể giúp được các bạn đang mốn tìm hiểu cách sử dụng Zotero với WordLaTeX. Sau khi cài đặt xong (bạn phải cài Firefox trước nếu chưa cài, Firefox > 13 is recommended), Zetero chiếm một status bar ngay dưới cửa sổ Firefox, bạn kích chuột vào biểu tượng Zotero bên phải màn hình để bắt đầu chạy Zotero. Đầu tiên tôi giả sử yêu cầu thứ nhất là để quản lý tài liệu tham khảo, với mỗi chủ đề thuộc lĩnh vực nghiên cứu (hẹp thôi) bạn tạo một collection như hình sau:

Nhấn chuột phải vào My Library và chọn New Collection, sau đó đặt tên cho Collection này, chẳng hạn như Collection 1. Việc tiếp theo là add các file tài liệu tham khảo của bạn vào đúng collection mới tạo ra, thường là các bài báo khoa học ở dạng .pdf mà bạn đã download về. Bạn chọn Collection mới tạo ra và nhấn vào nút lệnh như hình sau, chọn Link to file (file tham khảo bạn để ở thư mục nào không quan trọng nhưng cũng nên sắp xếp vào đúng thư mục thì sẽ quản lý tốt hơn và add vào Zotero nhanh hơn, tuy nhiên tên thì không nhất thiết phải đặt vì Zotero sẽ tự động làm cho bạn – lấy metadata về bài báo thôi, không phải đặt tên).

Tiếp đến sau khi file thao khảo của bạn đã được add vào collection tương ứng, bạn kích chuột phải lên tên file vào chọn Retrieve Metadata for PDF, bước này là để lấy các thông tin về bài báo: tên tác giả, số trang, tạp chí, … tóm lại là metadata của bài báo đó và lưu lên Cở sở dữ liệu tài liệu tham khảo của bạn. Xem hình sau:

Kết quả là như sau:

Như vậy là Zotero đã tự động lấy metadata về tài liệu tham khảo của bạn, tất nhiên là bạn phải có kết nối Internet. Lưu ý là có thể Zotero sẽ đòi hỏi bạn phải cài thêm 2 plugin để có thể đọc metadata của file pdf. Tuy nhiên không phải lúc nào cũng suôn sẻ như vậy, có những file pdf không có thông tin gì nên Zotero không thể tìm được metadata tương ứng. Khi đó bạn cần tìm đến đúng trang của tác giả hoặc trang xuất bản tài liệu tham khảo (chẳng hạn như ieee.org) tìm đến trang chứa link tới tài liệu tham khảo mà bạn đã lấy về (vẫn chọn file pdf trong collection đã tạo) và nhấn chuột vào biểu tượng Zotero trên thanh địa chỉ của Firefox để lưu metadata cho bài báo của bạn như hình sau:

Chính là nút bên trái hình ngôi sao đó, sau đó bạn sẽ có metadata về bài báo mà Zotero không tự động tìm được, bây giờ bạn có thể dùng chuột kéo thả file pdf tương ứng vào metadata đã lấy được. Khi bạn viết một bài báo tham dự hội thảo chẳng hạn bạn có thể tạo ra một collection tương tự với các bước ở trên nhưng có thể kéo thả từ Library vào collection của bạn để chỉ làm việc với các tài liệu tham khảo phục vụ cho bài báo đó.

Để làm tự động với nhiều tài liệu tham khảo bạn có thể thực hiện thao tác Link to file tới nhiều file cùng lúc (hoặc tất cả các file pdf trong cùng thư mục), sau đó chọn các file trong Collection tương ứng và thực hiện thao tác lấy metadata cho tất cả các file này.

Bước tiếp theo là sử dụng tài liệu tham khảo của Zotero để viết bài, trường hợp thứ nhất là bạn dùng Word thì phải cài Word plugin cho Zotero (khuyến nghị dùng Word 2010 SP1– nhanh, nhẹ và tiện lợi). Bạn chạy Firefox trước, sau đó khi muốn trích dẫn thì nhấn chuột vào nút lệnh do Zotero plugin tạo ra trên Word như hình sau:

Tiếp đó, Zotero sẽ hỏi bạn muốn trích dẫn và trình bày các tài liệu tham khảo theo style nào (IEEE hay ….). Tiếp đó một search textbox để bạn tìm đúng tài liệu tham khảo cần trích dẫn như hình sau:

Sau khi ấn Enter, kết quả là:

Giả sử bạn đã viết xong và muốn tạo References chứa danh sách các tài liệu tham khảo, hãy nhấn chuột vào nút Zotero Insert Bibliography (nút thứ 3 từ trái sang) như hình sau:

Và kết quả là:

Kết thúc với Word, giờ tới LaTeX, đơn giản là bạn export các tài liệu tham khảo thành một file BibTeX để dùng với LaTeX. Đầu tiên chọn các file muốn export nhấn chuột phải và chọn Export như hình sau:

Trong dialog hiện ra chọn như hình sau và nhấn OK:

Kết quả là bạn có 1 file BibTeX để dùng với LaTeX.

Lưu ý là dù bạn cài lại Firefox thì cơ sở dữ liệu của Zotero cũng không mấtkhông cần cài lại Zotero.

Về style của Bibliography: Đối với các bài báo conference và journal, template của chúng đã được xác định trước và có sẵn trên site của conf hoặc publisher nên style của Bibliography tương ứng cũng sẽ được fixed trước, và chúng ta không thể thay đổi được điều này (dù là LaTeX hay Word Template, LaTeX được ưu tiên hơn và đơn giản hơn cho tác giả viết bài). Còn đối với các tài liệu có tính chất cá nhân hơn như luận văn cao học, PhD (thesis) hoặc report, chúng ta có thể tùy biến, đến đây với LaTeX sẽ là lệnh bạn dùng để chọn style cho phần này (không liên quan gì tới Zotero), còn với Word thì nhấn nút đổi style, đối với các tài liệu dài, bạn sẽ phải chờ đợi chút ít để Zotero và Word cập nhật lại theo style mới này. Theo tôi việc lựa chọn style này nên được xác lập trước khi viết cho đỡ mất thời gian và công sức một cách không cần thiết.

Python 3.2 with Visual Studio 2010 – Why have to find another IDE?

In my previous post Python for Computer Vision, I showed some packages and Python 3.2 for Computer Vision. Python is a language that has many C/C++ properties and also Matlab (script language style), but a Python program is a real program, not a script like Matlab. So if we use Python (instead of Matlab) for implementation our algorithms, it is more convenient to make real program (or GUI program – with PyQt). The second step after install all needed packages for using Python is finding for a good IDE. There are many posts about “best IDE” for Python:
Post 1
Post 2
I just want to find an IDE that easy to use, like VS, QtCreator or DevCpp. And Python integration for Visual Studio 2010 is the best choice for me. It is very lightweight, just 2.5 Mb, and with its VS integration, I can exploit all features of VS, a familiar IDE for me.
After installing PTVS 1.5 Alpha, we can create new Python Project and write new Python program. Very impressive.

Python 3.2 vs Matlab and OpenBLAS+Lapack on Matrix Multiply, SVD and EIG tests

After learning some Python functions for the purpose of Computer Vision in mind, I do tests on Matrix multiply, SVD and EIG of Python in comparison with Matlab and OpenBLAS+Lapack. In these tests, on my Windows 7 32 bits laptop, I use Python 3.2 with numpy-MKL, Matlab 2010b, OpenBLAS 1.0 and Lapack 3.4.1. All the matrices contain float numbers and each operation runs for 5 times, then the average time is recorded.

Python 3.2 Matlab 2010b OpenBLAS 1.0 + Lapack 3.4.1
Matrix Size Multiply SVD EIG Multiply SVD EIG Multiply SVD EIG EIGD
1000×1000 0.065 1.726 4.168 0.063 0.928 1.756 0.063 1.13 3.666 0.546
2000×2000 0.506 14.182 26.61 0.495 8.156 12.221 0.967 8.95 33.899 3.603
3000×3000 1.657 46.663 74.41 1.63 25.772 37.268 1.685 26.43 113.771 10.483
4000×4000 3.898 3.875 7.566 24.648
5000×5000 7.618 7.507 10.686
6000×6000 13.086 12.926 25.475

Again, Matlab is the winner, but between Python and C/C++, which is better for implementation algorithms which run fast on Matab? The EIG test with Lapack is slow because I used precompiled lapack’s .dll, so it used only one Core of the system.

Updated with new EIG results of OpenBLAS and Lapack: I used divide and conquer functions ssyevd_ of Lapack and got much better results on the column EIGD. Now the choices are OpenBLAS and Lapack.

Python 3.2 on Windows – Start a new language for Computer Vision

Today, I start with Python, a famous language, I supposed for understanding some computer vision source code of other coders. Python latest version is 3.3, but I found it is a bit messy with the versions of Python: 2.6, 2.7, 3.2, 3.3. Which one is the most suitable for a new bie like me? After a while, I found that 3.2 is the best because many important libraries of Python now available only with that version. The first step is intalling Python an its libraries:
Python 3.2
numpy-MKL-1.6.1. This is the most important lib of Python.
MatplotLib1.2
PIL 1.1.7. This library is for manipulating images with Python.
Python IDE and GUI Framework for Windows
SciPy
scikit-learn. This lib contains many Computer Vision and Machine Learning algorithms, need for my purpose.
scikits-image. Support for scikit-learn.
And some book for Python world:
Python for Prototyping Computer Vision Applications
Programming Computer Vision with Python. This book is written by Jan Erik Solem and you can find the companion source code at download link.
After some reading, I found that Python has something like C++, but not as abstract as C++, and has something like matlab, but a bit slower. To be continued …

Simple C++ program to convert .eps files to .pdf files for LaTeX

Converting .eps figures to .pdf files and including them in LaTeX is the best way to keep the shapes of figures in their right resolutions and formats. The command for converting one .eps file to .pdf file is: epstopdf <.eps file name> <.pdf file name> , but I think it will be better if we could issue the command like that: epstopdf *.eps to convert all .eps files to their .pdf versions. So I write a very small C++ program to do it automatically:
// Program to convert all .eps (Matlab figures) to .pdf file for LaTeX
// Create date: 2/05/2012
// Author: NGUYEN Huu Tuan
// Compiler: DevCpp, Visual C++
// Using: copy this program to your .eps files' folder and run

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
system(“dir /b *.eps > list.txt”);
ifstream fi(“list.txt”);
ofstream fo(“done.bat”);
int ncount = 0;
clock_t t1, t2;
char str[255];
fo << “@echo off” << endl;
while(fi.getline(str,255))
{
ncount++;
fo << “epstopdf \”” << str << “\”” << endl;
}
fi.close();
fo.close();
t1 = clock();
system(“done.bat”);
t2 = clock();
cout << ncount << ” files, elapsed time is: ” << (double)(t2-t1)/CLK_TCK << ” seconds.”;
system(“del done.bat”);
system(“del list.txt”);
return 0; // it is zero, of course
}