Pages

10 thg 12, 2011

Latex tips

1. Chỉnh tên tiêu đề hiển thị phần tài liệu tham khảo:
Khi muốn chuyển tên hiển thị từ 'Tài liệu' (mặc định của gói vntex) thành 'Tài liệu tham khảo', có thể thêm câu lệnh '\renewcommand{\refname}{Tài liệu tham khảo}' trước câu lệnh '\begin{thebibliography}{99}' như dưới đây:
\renewcommand{\refname}{Tài liệu tham khảo}
\begin{thebibliography}{99}
\bibliographystyle{abbrv}

\bibitem[1]{1}
Bing Liu, \emph{Opinion Mining}, Department of Computer Science University of Illinois at Chicago, 2008

4 thg 12, 2011

Cài đặt Git cho Eclipse

Đã nghe danh Git từ lâu, hôm nay mình mới có dịp mò mẫm và sử dụng. Dưới đây xin ghi lại cách cài đặt Git với site Github cho Eclipse.
Quá trình cài đặt qua 2 phần chính: cài đặt-cấu hình git và cài đặt-cấu hình plugin Egit cho Eclipse.

Phần 1: Cài đặt-cấu hình Git


Bước 1: Đăng ký tài khoản tại http://github.com/

Bước 2: Download Git từ http://git-scm.com/download (có các bản cho Debian, Solaris, Window, OS X)

Bước 3: Tạo SSH key

SSH key là chìa khóa giúp người dùng và server github trao đổi với nhau mà không cần những thủ tục xác thực rắc rối. Người dùng chỉ cần tạo SSH key tại máy của mình, sau đó add key này vào Github. Khi push mã nguồn, server sẽ so sánh SSH key của máy người dùng với SSH đã được add vào Github trước đó. Nếu chúng giống nhau, nghĩa là người dùng được quyền thao tác trên repository. Để tạo SSH key, chúng ta làm như sau:

  • Mở terminal của git (thường nằm ở đường dẫn C:\\msysgit\msysgit\msys.bat)

  • Gõ ssh-keygen -t dsa (hoặc ssh-keygen -t rsa)

  • "Enter file in which to save the key (/c/Users/username/.ssh/id_dsa):", gõ tiếp "Enter" nếu muốn để nguyên đường dẫn gợi ý trên,

  • "Enter passphrase (empty for no passphrase):", gõ "Enter" nếu không muốn thêm

  • "Enter same passphrase again:", gõ "Enter" (nếu ở trên không gõ gì), hoặc gõ lại những gì vừa gõ.

  • Mở file lưu SSH key (ở đây là id_dsa, hoặc id_rsa). Copy toàn bộ file

  • Mở http://github.com/account , chọn SSH public key và paste vào.

Chú ý rằng một account có thể có nhiều SSH key, bởi mỗi một repository (dễ hiểu hơn là một project) có thể có SSH key riêng.

Bước 4: Tạo project ( repository) mới trên trang https://github.com/repositories/new

Nhập tên project, mô tả về project và create

Bước 5: Thiết đặt ban đầu cho git tại máy local (máy của mình)

Làm theo hướng dẫn của github sau khi tạo repository thành công:

  • git config --global user.name "X, Y Z"

  • git config --global user.email abc@gmail.com

  • cd thư-mục-muốn-lưu-trữ-project

  • mkdir tên-của-project-vừa-tạo trên github (cần phải đúng)

  • git init

  • Tạo file README: touch README

  • git add README

  • git commit -m "Ghi comment vào đây!"

  • git remote add origin git@github.com:username/repository-name.git

  • git push -u origin master

OK, như vậy đã xong phần đầu, cài đặt và cấu hình đơn giản Git. Phần tiếp theo chúng ta sẽ tiến hành cài đặt plugin Egit cho Eclipse và sử dụng Egit để đồng bộ hóa mã nguồn với github.

Phần 2: Cài đặt Egit

21 thg 6, 2011

Một số thuật ngữ về Machine Learning

Bài này tôi trình bày một vài khái niệm cơ bản về học máy (Machine Learning) với mục đích phục vụ cho quá trình tìm hiểu về Data Mining.


Training data là một cặp đối tượng (dạng vector) gồm đầu vào và đầu ra tương ứng mong muốn.

Training set là tập các training data



(to be continue...)

Supervised learning - Học có giám sát

Supervised learning (học có giám sát)là một kỹ thuật trong Machine Learning có ứng dụng phổ biến trong các phân ngành Computer Science (đặc biệt là Data Mining).


Thuật toán supervised learning sẽ đảm bảo với một input bất kỳ thì luôn cho một output-phù-hợp tương ứng. Vấn đề ở đây là làm sao để thuật toán Supervised learning có thế đưa ra được output tương-đối-chuẩn-xác?! Một cách khái quát,thuật toán sẽ dựa vào tập dữ liệu huấn luyện (training set) cho trước, xây dựng trên tập đó một ánh xạ f (hàm f) input-output, và sau đó, khi đưa một input bất kỳ vào, thuật toán sẽ dự đoán output tương ứng (mấu chốt ở đây là dự đoán - predict ). Như vậy, output này sẽ rất khó đạt tới mức hoàn hảo (100%), nên tất hẳn tồn tại một hàm xác suất để đánh giá độ chuẩn xác của thuật toán supervised learning! Cần nói thêm về ánh xạ f, bản chất của nó là hàm phân lớp (classification) các dữ liệu huấn luyện, sau đó, khi có input, nó sẽ dựa căn cứ vào việc matching class-input để tìm ra được class phù hợp với input, từ đó đưa ra được output-phù hợp. Ánh xạ f được chia làm hai loại: classifier function ứng với output là thông tin rạc, và regression function (hàm hồi quy) nếu output là thông tin liên tục.

Sách 1: Uốn lưỡi bảy lần trước khi nói


Quyển đầu tiên mình review, "Uốn lưỡi bảy lần trước khi nói". Đây là cuốn sách do bạn mình, TrườngLX, đang làm cộng tác viên cho một nhà sách giới thiệu và cho mình mượn đọc, hi, mấy tuần rồi chưa trả.

Ban đầu, đó là một cuốn sách hay về nghệ thuật sử dụng ngôn từ trong thời buổi giao tiếp làm nền này (mặc dù, đây là sách dịch nên văn hóa cư xử của phương Tây có khác đôi chút so với xã hội mình đang tiếp xúc). Sách gồm một số chương nói về cách sử dụng từ ngữ tích cực (chương XX), cách nâng cao giá trị bản thân qua lời nói (chương YY),

Một khía cạnh nào đó, nếu dùng những câu mang tính khẳng định vấn đề sẽ tốt hơn một câu phủ-định-để-khẳng-định. Trong sách có nói một ví dụ, có một va chạm giữa 2 người:
A: Anh đã ném nó vào tôi. (nó ở đây là tờ 10$)
B: Tôi không ném nó. Đó là do gió thổi! (sự thật đúng là gió thổi)
Sau đó là một hồi cãi nhau, cuối cùng, cả 2 chỉ mang nỗi bực dọc vào người. Người ta đề xuất thế này, nếu B nói "Xin lỗi, chỉ là do gió thổi", thì chắc chắn rằng, cả hai sẽ nở nụ cười khi tạm biệt nhau. Vậy đấy, khẳng định một điều chắn chắn, thì tốt hơn là phủ nhận nó để đưa ra sự thật. Tất nhiên rồi, đi đường thẳng (nói luôn ra sự thật) sẽ tốt hơn đi đường vòng (phủ nhận rồi mới đưa ra sự thật).

(continue)

Lan man về IT

Dạo này mình tự dưng thích đọc mấy cái linh tinh về công nghệ thông tin. Cả chiều qua ở trong mớ hỗn độn những blog của các super với toàn mật mã (cryptography), hacker , tội phạm mạng , rắc rối hóa code (Obfuscation) và giờ là cả Ruby on Rails . Chẳng biết mình muốn đi tìm cái gì nữa, đọc xong thấy cái nào cũng hay, cũng hấp dẫn, và... cũng có ứng dụng, tất nhiên, thấy cái nào cũng ra $$$ cả!!! Có lẽ cái gì cũng đọc mà chẳng cái nào ra hồn mất thôi. Một chút, thấy hacking cũng hay phết, tính mình tò mò, muốn lò dò vào máy em này em kia xem có gì hay không, hehe, muốn mò mẫm vào máy mấy em cùng mạng ở nhà xem có gì thú vị không, và muốn dò vào một site bank nào đó, chuyển vào account của mình, hehehehe ( từ nãy tới giờ, đùa đấy, :) ). Nào thì cài trojan mở port, nào thì telnet gì gì đó, chả nhớ, vì chưa làm, mà cũng chẳng chắc dám làm, nhưng, thấy thú vị thật, dù đó chỉ là basic, --không biết advance thì còn nhiều trò hay thế nào nhỉ!? Rồi tới Rắc rối hóa code , lúc mới đầu đọc thấy một cuộc thi về trò này, mình bảo dở hơi hay sao, người ta đang cố clear code, thì lại đâm đầu vào confuse nó. Nhưng đọc tiếp thì thấy quả là tuyệt vời, một phương pháp hiding-code thật hay mà đảm bảo không ảnh hưởng quá nhiều tới hiệu năng của đoạn code mình viết ra, một phương pháp phát hiện sao chép phần mềm, và cũng là một phương pháp ứng dụng trong việc mã hóa công khai ( PKC ).
Về Ruby on Rails (RoRs), mình mới chỉ biết được nó là một nền tảng phát triền web nhanh, có thể mình sẽ được tiếp xúc vào hè này với một superman về mảng này, anh CodeMonkey. Để xem mình có biết được chút gì từ siêu nhân này không, :).

My dream, :)


Hihi, per month!!!

20 thg 6, 2011

Giới thiệu về thú đọc sách

Thư giãn một chút, mình bắt đầu thấy thích đọc sách! Phải chăng vì một người thầy say mê đọc sách (y là Hồ Đồ lãng tử), phải chăng vì một cậu bạn cũng đang say mê đọc sách và rủ rê mình, và phải chăng, tiềm thức trong mình trỗi dậy sau nhiều năm ngủ mê!
Xưa, khi còn bé, chắc tầm lớp 2 lớp 3 (cái lúc mà bắt đầu đọc thông), mẹ hay mang về nhà cho mình báo thiếu niên. Khi đó, đọc ham tới nỗi đọc đi đọc lại một tờ báo. Cứ mỗi tuần một quyển báo như thế. Được một thời gian thì mẹ mượn về cho mình sách (vì trường mẹ khi đó thư viện lớn, nhiều sách), nói chung là đủ thể loại tạp nham (nói nhỏ, may mà không có cái kiểu sách 18+ như bây giờ, ;)), nhưng chủ yếu là sách văn học và truyện đô-rê-mon (chính vì lý do này nên tới bây giờ, loại truyện tranh dài kỳ duy nhất mà mình đọc là đô-rê-mon), cũng có vài quyển khác (Siêu quậy Teppy, Người máy Hamman, Conan, 1 truyện nữa cực hay về bọn đầu trọc và điệp vụ Nga, chả nhớ tên). Một quyển mà mình nhớ nhất là "Tuyển tập 400 câu chuyện cổ tích", nhưng không phải của thư viện, của 1 cô thực tập sinh ở trường mẹ (chắc bằng tuổi mình bây giờ, nói nhỏ, cô xinh lắm, lại dân Hà Nội nữa, hức, giờ thì chả có cô thực tập sinh nào nữa....). Quyển cổ tích đó đọc sướng mê tơi luôn, dày cộp, mình làm gối ngủ, :), đọc như được rơi vào xứ sở thần tiên ấy!!! Sau đó một thời gian thì mẹ chuyển về trường gần nhà, trường mới nên chẳng có sách, hic, từ đầy chẳng có sách mà đọc. À, phải kể tới nhà ông ngoại nữa, ông mê sách, hồi bao cấp, lương chẳng đủ ăn, nhưng tháng nào ông cũng tiết kiệm mua được một cuốn sách. Hồi đó mẹ cũng ra mượn ông mấy quyển, "Đất nước Angiép" (quyển này khó hiểu, vì toàn số với căn bậc 2, lớp 3 thì bít gì cái này), "Chú bé Ticolo" (quyển này cũng không đọc hết, vì dày quá, :( ). Sách của ông, mình đọc được mỗi "sự tích tây nguyên","số đỏ" (:)).
Cấp 2 thì không động tới sách nữa....
Cấp 3 gặp 2 đứa bạn, thích đọc sách kiểu Hạt giống tâm hồn nên mình cũng đọc cùng, thấy cũng hay, chiêm nghiệm và ....teen.
Đại học, chẳng còn đọc sách nữa, thành phố nhiều điều thú vị hơn....
Và giờ đây, cám ơn TrườngLX đã khơi lại thói quen đã bị bỏ lâu quá rồi của mình. Thực sự, cám ơn cậu nhiều!
Mình sẽ cố gắng đọc và note những gì mình cảm nhận được ở từng cuốn sách, để không bị phôi pha, quên lãng về sau!

Come back...

    Bẵng đi một thời gian bị mất tài khoản....
Giờ mình trở lại, thôi thì cố gắng design cho cái mặt nó ổn ổn tý để khi lần ra lần vào còn dễ dàng. Nhưng mà, chả biết design thế nào nữa, lần mò mãi mà cái mặt vẫn như không hồn. Chắc mình chả duyên phận gì với anh TKW rồi!!!:(. (Đang chuyển hướng ngâm cứu Server, :)).)
    Giờ viết gì đây, với cái tháng 6 này?! Cả đời này chắc mình nhớ tháng 6 nhất thôi, vì cứ tới cái tháng này là cảm xúc cứ gọi là rủng rỉnh, dùng mãi không hết. Nào thì thi, nào thì chuyện ấy ơi ấy à, nào thì chuyện ấy à ấy ơi, lắm quá, lung tung beng cả lên. Rốt cục, mình chả được cái gì, và , cũng chả làm được cái gì nốt. Phủi!


Hè này lại một mớ dự định. Hic, sao mãi không tỉnh người ra, cả năm này, lúc nào cũng ôm đồm, rồi chả ra cái gì cả, hỏng hết cả một thân người, mà, có nào được gì đâu! Biết mà không sửa, người ta bảo ngu. Sửa mà không biết sửa sao, người ta bảo dốt! Tóm cho cùng cực, là ngu dốt người ơi! Chài, cuộc sống mến thương quá!

Tự dưng đứt mạch chém gió, thôi để đó, thi xong cái em chuối này thì ta tính tiếp! Dù sao thì cuộc sống vẫn mến thương, :)), (Galile ver.2)

18 thg 3, 2011

Level 4 in Latex Structure

Somtimes, i want to present a Tex file contains section, subsection, subsubsection and special, subsubsubsection. But subsubsubsection isn't supported by pure Latex, so I need some commands to made it. Fortunalety, Latex has two commands help me. After \begin{document}, we can insert them for our aim:

\setcounter{secnumdepth}{4} %Danh chi so thu 4 cho \paragraph{name}

\setcounter{tocdepth}{4} %---------De muc luc hien thi toi muc thu 4 (toi paragraph)

Wish you easy to use!

3 thg 3, 2011

Unused GUI (X window) in ReadHat

Sometimes, I want to use RedHat at text mode. To exchange from X Window(X11) to text mode, you can open \etc\inittab by command
vi /etc/inittab
and repair line id:5:initdefault: by id:3:initdefault: .

Certainly, you can exchange reserve, by use text mode via vi .
Simple, repair 3 to 5!

2 thg 3, 2011

Reset password for "root" in MySQL 5.5.9

Following, these steps will help you reset password for root account in MySQL 5.5.9 (not for 5.4 before).

      Step 1: Log on as Administator and Stop mysqld (MySQL service) by use Task Manager

      Step 2: Create a text file, containing
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
.
Note that you must instead 'MyNewPass' by your new password. UPDATE and FLUSH each on a single line. Assume you save it at C:\mysql-init.txt

      Step 3: cd to mysql\bin and run command: mysqld --init-file=C:\\mysql-init.txt --console . Now, you can open mysql and type mysql -u root -p and type your new password.


Wish you success!

26 thg 2, 2011

Install Beamer for Miktex in Linux

HAPPYMUTANT.COM
Making LaTeX Beamer Presentations

If you want to create overhead presentations (á la Powerpoint) with LaTeX, you can do so by using Beamer class, which creates surprisingly professional and sophisticated documents that you can then display using any pdf viewer (e.g., such as Adobe Acrobat). The advantage of using LaTeX over a program like Powerpoint is that it doesn't require expensive software for either creating or displaying your presentation; it thus makes the presentation truly "portable". And, if you already have the basics of LaTeX down, learning the basics of creating a beamer presentation does not take much effort.

getting beamer class

You can download beamer class by either downloading the package from its webpage, or better yet, if you have Ubuntu (or Debian), just apt-get latex-beamer (which will also install it for you as well).
If you download the beamer package from the website, installation will be a bit more complicated. Follow the instructions included in the package. (Or look elsewhere for instructions on how to install LaTeX classes. It's really as easy as putting a few files in places where LaTeX knows where to look: the trick is figuring out where LaTeX looks for them. I may put up a tutorial on hand-installing LaTeX classes in the future.)

the basic document structure

Beamer class is quite feature-rich, and it's 200+ page manual may be a little intimidating. However, creating a basic presentation really requires doing only two things:
Declaring beamer class in your LaTeX preamble, and
Enclosing each "slide" in a special "frame" environment.
You will probably also want to include the date, title, author, etc., of your presentation. These can all be included in a separate title slide, created with the \titlepage command. You may also want to include titles for your frames (which are displayed in large font at the top of the slide) with the \frametitle command. Thus, a basic beamer document will look something like the following:
\documentclass{beamer}
\title{Here is my Title}
\author{Christina Huggins}
\date{July 15th, 2005}

\begin{document}

\begin{frame}
\frametitle{Optional Title for My Slide}
Here is one slide.
\end{frame}

\begin{frame}
Here is another slide.
\end{frame}

\end{document}
Note that beamer class is meant to be compiled using pdflatex to easily create a pdf presentation.
Knowing this basic document structure, you can create quite a decent presentation. At this point, I only use these presentations for my teaching lectures, and I have not the need for anything terribly fancy. However, I've found a few of the additional features to be quite useful, so I've included them below.

themes

While the default presentation looks quite clean and professional, you may want to play with the style of your presentation with themes. Beamer comes prepackaged with quite a few complete themes, (as well as what I call "sub-themes": color themes, or themes that only apply to the "outer" or "inner" part of the slide frames). The manual explains the differing themes in a bit of detail, and you can explore these different themes on your own. Once you find a theme you like (I like Boadilla), you can just declare it in the preamble like so: \usetheme{ThemeName}.

columns & blocks

There are two handy environments for structuring your slide: "blocks", which divide your slide (horizontally) into headed sections, and "columns" which divides your slide (vertically) into columns.

Columns
example
\begin{frame}
\begin{columns}[c] % the "c" option specifies center vertical alignment
\column{.5\textwidth} % column designated by a command
Contents of the first column
\column{.5\textwidth}
Contents split \\ into two lines
\end{columns}
\end{frame}

\begin{frame}
\begin{columns}[t] % contents are top vertically aligned
\begin{column}[5cm] % each column can also be its own environment
Contents of first column \\ split into two lines
\end{column}
\begin{column}[T]{5cm} % alternative top-align that's better for graphics
\includegraphics[height=3cm]{graphic.png}
\end{column}
\end{columns}
\end{frame}
See resulting pdf.
blocks

example
\begin{frame}
\begin{block}{Block Heading}
Enlosing text in the ``block'' environment creates a distinct, headed block of text.
\end{block}
\begin{block}{Second Block Heading}
This lets you visually distinguish parts of your slide easily.
\end{block}
\end{frame}
See resulting pdf.

revealing things incrementally

There may be times during your presentation when you want to reveal things on a slide piecemeal (e.g., you reveal a list one item at a time).
The most straightfoward way to do this is via the "pause" command. If you want more sophisticated reveals (e.g., you want the first and last item on a list to be revealed at the same time), then you would use other methods. But, "pause" works perfectly for my purposes.
example
\begin{frame}
Since I may want to focus on one item at a time in my presentation,
\begin{itemize}
\item I want to reveal only the first item on my list initially,
\pause
\item then the second item,
\pause
\item then the third,
\pause
\item and so on...
\end{itemize}
\end{frame}
See resulting pdf.

making accompanying documents

There are several ways to create notes, handouts, or other accompanying documents for your presentation. My preferred way of doing this (since I like to include a lot of extra commentary and notes for reference later) is to use article mode. That is, I can create an article, load the package "beamerarticle", and LaTeX will render all of the beamer commands and environments within article mode.
Anything within the frames will be printed in the article; anything outside the frames will also be printed in the article (but you can specify that this text be ignored in beamer mode). So, in short, you can create your beamer presentation and and an accompanying document that includes both the beamer text and extra notes.
The most efficient way to do this is the following:
Create your main .tex file (including both the text for your presentation and the notes in between). Leave off the document class declaration (let's call it name.tex).
Create another file, name.beamer.tex, the content of which is the following:
\documentclass[ignorenonframetext]{beamer}
\input{name.tex}
Create a third file, name.article.tex, the content of which is the following:
\documentclass{article}
\usepackage{beamerarticle}
\input{name.tex}
Then, run pdflatex on both name.beamer.tex and name.article.tex to get your presentation and accompanying document, respectively. To demonstrate an extended example of this, I included below both the main .tex file, and the resulting beamer presentation and article that I rendered from it (I'm not including the beamer.tex and article.tex files, since they really are just as simple as the examples above). example
Main .tex file
Beamer pdf
Article pdf
Note: If you use Vim, and its LaTeX suite, check out my Vim beamer templates.
main LaTeX page
other LaTeX how-to's
getting beamer
document structure
themes
columns & blocks
revealing incrementally
accompanying docs

Source: http://happymutant.com/latex/misce/beamer.php