16/2/2009 – 29/6/2012 – Kết thúc một chặng đường

Mới đó mà đã hơn 3 năm. 3 năm làm việc là chính, ăn chơi là chủ yếu, trải qua bao sóng gió thăng trầm của lịch sử, chứng kiến sự ra đi và trở lại của không biết bao nhiêu con người. Và rồi ngày ấy cũng đã đến, ngày mà mình chính thức bị xếp vào hàng ngũ “cựu nhân viên”. Ấy là vào cuối năm 2008. Lúc đó mình cũng kinh qua một vài công việc part time nhưng không được nhận lương. Ham muốn làm một cái gì đó ra tiền đã lên đến đỉnh điểm. Vì vậy, khi Hưng Bưởng nói Cazoodle đang cần tuyển thêm part time, mình đã không do dự viết CV và nộp luôn. Mức lương hồi đó có thể coi là trong mơ, $250 một tháng, tuần làm việc 20 giờ (còn nhớ lúc đó lương khởi điểm cho full time của Fsoft chỉ có 4 triệu đồng). Sau 2 vòng phỏng vấn, mình nhận được job offer của Kevin và bắt đầu làm việc từ ngày 16/2/2009. Thú thực là hồi đó lập trình đối với mình còn mơ hồ lắm. Mặc dù các kiến thức về toán rời rạc, cấu trúc dữ liệu và giải thuật, thuật toán đã được thầy Nghĩa nhồi nhét từ những năm đầu đại học, nhưng kinh nghiệm thực tế của mình gần như là con số 0. Năm 2008, mình còn định đi theo hướng mạng, làm CTV, học CCNA và ra trường làm cho Cisco (cũng chỉ bởi vì nghe nói thực tập ở Cisco lương $200/tháng). Anh Lâm chính là người dìu dắt mình những bước đi đầu tiên. Bắt đầu với Landlord Console prototype mà anh Lâm xây dựng trong vòng 2 tuần, dựa trên mootools và Javascript MVC.

Thử một bài viết có rất nhiều tiếng Việt

Bài viết này lẽ ra đã không được publish. Mục đích của mình chỉ là kiểm tra xem WordPress 3.4 xử lý tiếng Việt trong Permalink như thế nào. Trước 3.4, WordPress xử lý việc này không tốt, cụ thể là với tiêu đề như trên, WordPress sẽ xử lý thành “thử-một-bai-viết-co-rất-nhiều-tiếng-việt”. WordPress 3.4 đã xử lý việc này rất tốt, URL trở thành “thu-mot-bai-viet-co-rat-nhieu-tieng-viet”. Dưới đây là đoạn code được mình viết và đặt trong file wp-includes/formatting.php để xử lý tiếng Việt trong Permalink. WordPress 3.4 cũng có một đoạn xử lý tương tự nhưng đã tối ưu và loại bỏ các ký tự trùng với các phần sẵn có trong WordPress. [code] // Decompositions for Vietnamese chr(65) => ‘A’,chr(97) => ‘a’, chr(196).chr(130) => ‘A’,chr(196).chr(131) => ‘a’, chr(195).chr(130) => ‘A’,chr(195).chr(162) => ‘a’, chr(195).chr(128) => ‘A’,chr(195).chr(160) => ‘a’, chr(225).chr(186).chr(176) => ‘A’,chr(225).chr(186).chr(177) => ‘a’, chr(225).chr(186).chr(166) => ‘A’,chr(225).chr(186).chr(167) => ‘a’, chr(195).chr(129) => ‘A’,chr(195).chr(161) => ‘a’, chr(225).chr(186).chr(174) => ‘A’,chr(225).chr(186).chr(175) => ‘a’, chr(225).chr(186).chr(164) => ‘A’,chr(225).chr(186).chr(165) => ‘a’, chr(225).chr(186).chr(162) => ‘A’,chr(225).chr(186).chr(163) => ‘a’, chr(225).chr(186).chr(178) => ‘A’,chr(225).chr(186).chr(179) => ‘a’, chr(225).chr(186).chr(168) => ‘A’,chr(225).chr(186).chr(169) => ‘a’, chr(195).chr(131) => ‘A’,chr(195).chr(163) => ‘a’, chr(225).chr(186).chr(180) => ‘A’,chr(225).chr(186).chr(181) => ‘a’, chr(225).chr(186).chr(170) => ‘A’,chr(225).chr(186).chr(171) => ‘a’, chr(225).chr(186).chr(160) => ‘A’,chr(225).chr(186).chr(161) => ‘a’, chr(225).chr(186).chr(182) => ‘A’,chr(225).chr(186).chr(183) => ‘a’, chr(225).chr(186).chr(172) => ‘A’,chr(225).chr(186).chr(173) => ‘a’, chr(69) => ‘E’,chr(101) => ‘e’, chr(195).chr(138) => ‘E’,chr(195).chr(170) => ‘e’, chr(195).chr(136) => ‘E’,chr(195).chr(168) => ‘e’, chr(225).chr(187).chr(128) => ‘E’,chr(225).chr(187).chr(129) => ‘e’, chr(195).chr(137) => ‘E’,chr(195).chr(169) => ‘e’, chr(225).chr(186).chr(190) => ‘E’,chr(225).chr(186).chr(191) => ‘e’, chr(225).chr(186).chr(186) => ‘E’,chr(225).chr(186).chr(187) => ‘e’, chr(225).chr(187).chr(130) => ‘E’,chr(225).chr(187).chr(131) => ‘e’, chr(225).chr(186).chr(188) => ‘E’,chr(225).chr(186).chr(189) => ‘e’, chr(225).chr(187).chr(132) => ‘E’,chr(225).chr(187).chr(133) => ‘e’, chr(225).chr(186).chr(184) => ‘E’,chr(225).chr(186).chr(185) => ‘e’, chr(225).chr(187).chr(134) => ‘E’,chr(225).chr(187).chr(135) => ‘e’, chr(73) => ‘I’,chr(105) => ‘i’, chr(195).chr(140) => ‘I’,chr(195).chr(172) => ‘i’, chr(195).chr(141) => ‘I’,chr(195).chr(173) => ‘i’, chr(225).chr(187).chr(136) => ‘I’,chr(225).chr(187).chr(137) => ‘i’, chr(225).chr(187).chr(138) => ‘I’,chr(225).chr(187).chr(139) => ‘i’, chr(79) => ‘O’,chr(111) => ‘o’, chr(195).chr(148) =>

Kinh nghiệm phỏng vấn VEF

Disclaimer: Bài viết dưới đây dựa trên kinh nghiệm cá nhân khi tham gia chuẩn bị và phỏng vấn VEF. Bài viết có thể có một số điểm tương đồng với bài viết của Thắng (MSE – UCB) và Kiên (CS – Poly) vì chúng tôi có nhiều đoạn giao nhau trên suốt chặng đường. 1. Xem kỹ lại hồ sơ, tức là những thông tin đã điền trong application form và những giấy tờ đã nộp cho VEF hôm OEO. Application form sau đó sẽ được VEF chuyển tới các giáo sư, và họ sẽ dùng chính những thông tin viết trong đó để đặt câu hỏi. Vì vậy nên đọc kỹ để tìm ra những điểm nổi bật. Các giáo sư thường không có nhiều thời gian đọc và nghiên cứu hồ sơ của bạn, nên sẽ tập trung vào những điểm này. Mặt khác, lỡ có sơ ý viết gì không hay trong đó thì cũng phải tìm cách nói giảm, nói tránh khi bị hỏi. 2. Tranh thủ ôn tập để nâng điểm TOEFL/GRE nếu thấp quá. VEF thường phỏng vấn vào đầu tháng 8, nhưng đến giữa tháng 9 mới có kết quả. Nếu như đợi đến lúc có kết quả VEF rồi mới tập trung nâng điểm TOEFL và GRE thì quá muộn, và cũng không còn thời gian để chuẩn bị hồ sơ, viết SOP, xin bảng điểm và các giấy tờ khác. 3. Tìm những người cùng chí hướng để chuẩn bị theo nhóm. Làm một mình sẽ dẫn đến việc quá dễ dãi với bản thân, cho rằng mình giỏi, chuẩn bị như thế là đủ. Học nhóm có cái lợi là sẽ nhìn thấy ưu nhược điểm của mình một cách khách quan hơn, và cũng là để xem mình

Một số câu hỏi chuẩn bị phỏng vấn VEF

Dưới đây là khoảng hơn 100 câu hỏi, được tôi, Lê Sỹ Tùng (VEF Fellow 2012), Nguyễn Quang Trung (VEF Fellow 2012), Ngô Xuân Hoàng và Đào Duy Anh chuẩn bị hồi tháng 7 năm ngoái. Nhóm tôi gồm có 6 thành viên chính (thêm Trần Đức Mạnh nữa) trong đó có 3 người được VEF Fellowship 2012 (chính tôi sau đó là người bỏ VEF để apply tự do và cũng sẽ sang NYC vào tháng 8 này). Nhóm chúng tôi gặp mặt khá thường xuyên, cùng nhau trao đổi về phương án trả lời các câu hỏi, tổ chức các buổi mock interviews cũng như chém gió về các vấn đề trên trời dưới đất. Nếu có thời gian, tôi sẽ cố gắng post thêm một bài kinh nghiệm phỏng vấn VEF. Tôi là người đã từng phỏng vấn VEF 2 lần (trượt VEF 2011 và đỗ VEF 2012) Disclaimer: Các câu hỏi dưới đây được soạn bởi những thành viên đã đề cập ở trên, trước khi tham gia phỏng vấn VEF. Chúng tôi không đảm bảo đây là những câu đã từng hỏi, hoặc sẽ hỏi trong khi phỏng vấn VEF. Mọi thắc mắc có liên quan xin vui lòng để lại trong phần comment. 1. Warm-up questions like: Could you please introduce yourself to us? Tell me a little bit about the books that you’d like to read? So, what do you do in your free time? Do you like sport, can you play any kind of sport? 2. Which courses that you took at the university interest you the most? And which one do you do not like most? 3. How did you became interested in your field? 4. If you got some research experiences, the question would come as: which research projects that

How to disable comment box from Facebook like widget

It have been a long time since the last time I used Facebook like widget on my blog. At that time, I feel that Facebook scripts take a lot of time to load, hence slowdown my site and affect its performance. Today, I changed my mind and add it back. With just 2 pieces of code (one load all.js at bottom and one load the like button), Facebook like button appears again on my site. Sweet and simple! But wait. When I test by click on Like button, an ugly comment box appear: As this is unexpected, I want to disable it. But Facebook Developer page does not give me any information about this. Fortunately, with just one simple CSS trick, I can hide that ugly comment box so the Facebook like become beautiful (like it should) .fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr { display: none !important; } Happy hacking!