Problem Solving Loop

Source: http://www.ohiotsa.org/posters.htm

problem-solving

– Another problem solving loop:

Problem Solving Process

Tư tưởng về mối quan hệ thầy trò và quá trình sáng tạo của Nhật Bản (守破離)

Tư tưởng cơ bản về mối quan hệ giữa sư phụ (thầy) – đồ đệ (trò) và quá trình sáng tạo từ xa xưa ở Nhật Bản trong các môn như nghệ thuật, trà đạo, võ đạo là 守破離 (しゅはり đọc là Shu-Ha-Ri), Hán Việt là Thủ – Phá – Ly.

– Thủ (守): Học theo những gì thầy dạy bảo, cố gắng lĩnh hội những kỹ năng, kiến thức của người thầy càng nhiều càng tốt.

– Phá (破): Từ những gì học được từ thầy (hoặc người khác), thông qua quá trình suy nghĩ, nghiên cứu, trải nghiệm; tìm ra những điều thích hợp với bản thân, tạo ra những kỹ thuật mới hoặc điều chỉnh để phù hợp với mình. Ví dụ trong võ học, cơ địa của mỗi người sẽ phù hợp nhất với những ngón võ nhất định, hoặc các bài quyền cũng cần phải điều chỉnh để người dùng phát huy được hết khả năng. Những kỹ thuật mới này căn bản vẫn dựa trên những gì học được.

– Ly (離): Sau khi phá xong, thành thạo hoàn toàn những điều mình sáng tạo ra, thì bắt đầu xây dựng những lý thuyết, kỹ thuật mới hoàn toàn khác biệt so với những điều mình lĩnh hội từ thầy hoặc người khác. Mức này là mức cao nhất của sáng tạo.

Tham khảo:

http://ja.wikipedia.org/wiki/%E5%AE%88%E7%A0%B4%E9%9B%A2

人材育成は「守・破・離」で

Template for paper reading notes

Here is my often used template for writing annotated bibliography. Since an annotated bibliography is a summary, it should be concise.

— Title: (Title of the paper)
— Authors:
— Conference/Journal: (Name of the conference/journal and the year of publication).

# Task

What task the paper did?

# Motivation/Problem

Describe the motivation of the paper & limitation of previous work. What problem did the paper try to solve?

# Idea, Solution/Approach

Give a brief description of the main idea. Should be general.

Give more detailed about the approach used in the paper, which contains main points of the method. It should not be long.

# Background

Use about 5 sentences to summarize the background knowledge of the paper.

# Main results/findings

Did the proposed method solve the problems mentioned in the paper? What are main findings of the paper? Describe in your own words.

# Limitation of the work

– List up points which you think they are problems/limitations of the paper. It is great if you could list some solutions to improve the work.

– Also list some alternative approaches to the task in the paper.

# What did you learn from the paper?

How you could apply the approach in the paper to your work/project?

Summarize what you learned from the paper and how you could apply the approach in the paper to your work.

Kích dục dữ liệu (Data Porn)

Gần đây mình đọc được một bài báo khá hay với nội dung gây tò mò là “kích dục thương hại” (Poverty porn). Theo như bài báo, “kích dục thương hại “ được định nghĩa là “bất kỳ dạng truyền thông viết, hình ảnh, phim… khai thác tình cảnh nghèo đói nhằm làm tăng sự cảm thông để bán báo hoặc gây quỹ từ thiện hoặc để lấy danh tiếng”. Tìm đọc bài báo trên báo tuổi trẻ: http://bit.ly/1q8XReY

Trong báo chí, còn có một loại “kích dục” nữa gọi là “kích dục dữ liệu” (data porn). Loại này xuất hiện sau khi một loại hình báo chí mới ra đời là “báo chí hướng dữ liệu” (data-driven journalizm: http://en.wikipedia.org/wiki/Data-driven_journalism).

Theo (http://bit.ly/1uUVFiZ), “data porn” là hình thức khi các nhà báo tìm kiếm sự chú ý với những số liệu, hoặc biểu diễn số liệu bằng các đồ thị, hình vẽ nhưng không tăng thêm giá trị (add value) với câu chuyện đang kể”. Thu thập số liệu và biểu diễn chúng bằng các bảng số liệu, hình vẽ, đồ thị đẹp mắt chỉ vì chúng gây ấn tượng không phải là báo chí. Đó là một cách “kích dục dữ liệu”.

Trong đời học hành, mình cũng không ít lần làm kiểu “kích dục dữ liệu”. Khi viết tiểu luận hoặc báo cáo, chắc mọi người cũng nhiều lần cố gắng đưa thật nhiều dữ liệu, số liệu, hình vẽ vào để cho bản báo cáo thêm “đầy đặn”, hoặc gây ấn tượng với giáo viên. Nghĩ lại thấy cách làm đó thật ấu trĩ và thể hiện sự lười biếng, lười suy nghĩ của người viết. Người đọc không cẩn thận có thể bị ấn tượng nhưng người đọc cẩn thận sẽ đặt câu hỏi “những số liệu, bảng biểu đó có ý nghĩa, liên quan gì với câu chuyện đang nói tới trong bài”.

Một lời khuyên là hãy bắt đầu bằng một câu hỏi hoặc chủ đề nhỏ liên quan đến câu chuyện đang muốn viết và thu thập, biểu diễn dữ liệu để trả lời cho câu hỏi đó.

Hy vọng sau khi đọc bài này mình và các bạn cũng sẽ có ý thức hơn khi viết lách để tránh rơi vào tình trạng “data porn”.

ICML 2012 conferences

2 Tutorials có vẻ hay và đáng xem:

[1] Performance Evaluation for Learning Algorithms: Techniques, Application and Issues:

Một vấn đề quan trọng khi nghiên cứu về Machine Learning là làm sao để đánh giá một phương pháp này tốt hơn hay kém hơn 1 phương pháp khác.

http://www.mohakshah.com/tutorials/icml2012/Tutorial-ICML2012/Tutorial_at_ICML_2012.html

[2] Topic Modeling by David Blei:

http://www.cs.princeton.edu/~blei/topicmodeling.html

List các accepted papers của ICML 2012 tại đây:

http://icml.cc/2012/papers/

 

Duyệt các file trong một thư mục với C++ sử dụng thư viện boost

Khi lập trình C++ thao tác với file/thư mục; một yêu cầu thường gặp là duyệt tất cả các file trong một thư mục. Các hàm xử lý thư mục không phải là hàm chuẩn trong C++, và thư viện STL cũng không có các hàm này. Trên các platform khác nhau lại có các hàm xử lý khác nhau. Điều này gây khó khăn khi chuyển từ platform này sang platform kia, ta lại phải làm lại.

Bài viết ghi chép lại cách sử dụng bộ thư viện boost cho C++ để thực hiện việc duyệt các file trong một thư viện (tổng hợp từ nhiều nguồn trên NET).

boost C++ là bộ thư viện mã nguồn mở, extend các chức năng của bộ thư viện sẵn có của C++, cho phép khả năng khả chuyển trên nhiều platform. Để sử dụng boost, trước tiên cần cài bộ thư viện này. Download tại: http://www.boost.org/

Tham khảo các tài liệu về bộ thư viện này tại: http://en.highscore.de/cpp/boost/http://shoddykid.blogspot.com/2008/07/getting-started-with-boost.html

Để duyệt các file trong một thư mục, tôi sử dụng lớp Boost Filesystem và các hàm trong lớp đó.

Đoạn chương trình sau đây minh họa cách sử dụng lớp Filesystem để duyệt các file trong một thư mục.


#include <iostream>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/fstream.hpp>

using namespace std;

/**
* List all files in the directory
* @param dirname
*/
void directoryListing(const string& dirname) {
  // Tạo full path cho thư mục dirname
  boost::filesystem::path dirpath(dirname, boost::filesystem::native);

  // Kiểm tra xem thư mục có tồn tại
  if (!boost::filesystem::exists(dirpath)) {
    cerr << "Directory: " << dirname << " does not exist!" << endl;
    return;
  }
  if (!boost::filesystem::is_directory(dirpath)) {
    cerr << dirpath.string() << " is not a directory!" << endl;
    return;
  }

  // Khai báo iterator để duyệt thư mục
  boost::filesystem::directory_iterator end_itr;

  for (boost::filesystem::directory_iterator itr(dirpath); itr != end_itr; itr++) {
    string filename = itr->leaf(); // Tên file hiện tại
    cout << filename; //
    if (boost::filesystem::is_directory(*itr)) {
      cout << " (dir)"; // Nếu là thư mục in ra (dir)
    }
    cout << "\n";
  }
}

Khi duyệt file, ngoài việc in ra tên file/thư mục, có thể chèn các dòng code xử lý file tùy ý. Chú ý khi dịch bạn cần chỉ rõ đường dẫn tới các header files và thư viện boost (dùng tùy chọn -I và -L khi biên dịch).

Chuyển file visio sang định dạng eps

Khi viết paper, thông thường ta cần chuyển các bản vẽ visio (sơ đồ, diagram) sang eps để đưa vào file latex. Cách thông thường convert từ ảnh sang cho chất lượng rất thấp.
Cách sau đây có thể cho ảnh với chất lượng cao hơn:

1. Chuyển file visio sang file PosScript hoặc pdf sử dụng PosScript Printer (với tùy chọn Print to File). Có thể sử dụng HP Universal Print Driver hoặc Adobe PosScript Printer (thường đi kèm với bộ Adobe Acrobat).

2. Chuyển file từ PS sang EPS (Sử dụng GhostViewer). Tải về tại địa chỉ: http://pages.cs.wisc.edu/~ghost/gsview/get49.htm

3. Chỉnh sửa bounding box của file eps: Thông thường file eps thường có size bằng size A4 và không thể đưa vào file tex. Vì thế ta cần crop file ảnh bằng cách chỉnh sửa thông số bounding box. Tôi sử dụng công cụ epstool để fix bounding box cho file eps. Download tại: http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm

Sau khi download tool này, chỉnh sửa bounding box cho file eps sử dụng lệnh:

epstool --copy --bbox file1.eps file2.eps

trong đó file file1.eps là file cần sửa và file file2.eps là output thu được.

Chất lượng file eps tạo ra bằng cách này tốt hơn hẳn so với các cách khác mà tôi đã làm (ví dụ save as file visio thành dạng ảnh sau đó convert sang eps,…). Cách này có thể làm tương tự với các file word, hay file ảnh,…