Monday, 29 May 2017

Arch Linux - Nếu một ngày không có Windows

Cái giả thuyết Windows ngày nào đó sẽ biến mất thật xa vời, nhưng ít ra, tôi đã không dùng nó từ 2 năm nay, công việc cũng như cá nhân. Dù sao tôi vẫn mong mọi người cứ xài Windows bởi một lý do ích kỷ: thị trường Windows còn lớn thì hacker sẽ tập trung vào nó mà chừa Linux ra, cứ mong vậy đi, như dân làng Vũ Đại tin anh Chí có chửi chắc vẫn chừa mình ra. Nhưng đó ko hẳn là lý do tôi gắn bó với hệ điều hành Chim cụt cánh..à Cánh Cụt này. Mọi thứ bắt đầu từ ngày đẹp trời nọ..

Ngày ấy vào khoản năm 2005, lần đầu tôi nghe những tên tuổi sau này đã là huyền thoại chưa bao giờ được kể: VietKey Linux, Hacao Linux..số phận trớ trêu sao tôi chẳng thử em nào trong số đó, chắc do tâm lính sính ngoại bẩm sinh. Và tôi biết tới Gentoo, như lời quảng cáo của đàn anh trong GameVN là bản Linux chạy nhanh nhất, khó cài nhất, và sẽ rất oai nếu mày cài được, mày sẽ vỗ ngực tự đắc "tao đây đã cài Gentoo từ stage1" (bọn bạn tôi chưa bao giờ biết Gentoo là gì, đến tận giờ vẫn ko biết).

Cài Gentoo là trải nghiệm tuyệt vời (hay tồi tệ nhất) của việc cài 1 hệ điều hành..Nếu ko có cái handbook của nó thì đố mà xong được, Gentoo có cái hay (cũng là cái dở) là phải compile mọi thứ, nên tất nhiên cài xong sẽ hiểu rõ hệ thống của mình, hiểu từng configuration của từng phần mềm, nói chung để học thì hay, để dùng hàng ngày rất hại não vì mỗi lần update là mỗi lần compile vài chục tiếng, máy nóng như chảo chiên trứng..có lẽ vì thế con Laptop đầu tiên của tôi ra đi khi mang trên mình Gentoo Linux. Đó là lúc tôi nghĩ đến bài toán cân bằng giữa tính linh hoạt và sự phức tạp của hệ thống, tôi tìm ra Arch Linux.

Với một hệ điều hành sử dụng hàng ngày cần
  • Miễn nhiễm với virus
  • Duyệt Web
  • Giao diện đơn giản, nhẹ
  • Phần mềm Office
  • Gõ tiếng Việt
  • Dễ nâng cấp, sao lưu
  • Ổn định
Trong danh sách đó, chuyện ko nhiễm Virus là không thể, dù sao Arch Linux không phải hệ điều hành phổ biến nên chuyện lây nhiễm có hạn chế đôi phần, cần nói thêm dù có cài Anti-Virus cũng không làm máy an toàn hơn là bao nên tôi ko bao giờ cài Anti-Virus trên máy mình, rất tốn tài nguyên. Trở lại lý luận ban đầu, Virus sẽ không nhắm vào môi trường ít người sử dụng vì tốc độ lây lan thấp.

Phần web browser, tôi có nhiều lựa chọn: Chromium, Opera, Firefox..tất cả đều ngon.

Giao diện là điều tôi thích nhất ở Arch Linux, không như đa số Distro cho người dùng cuối cài sẵn giao diện Gnome hoặc KDE, Arch Linux dành phần giao diện cho người dùng "lắp ráp" theo ý mình, đây là phần hấp dẫn nhất mỗi khi nhắc tới một hệ điều hành. Tôi luôn hướng tới một giao diện đơn giản, nhiều phím tắt, nhẹ, ổn định và cũng không kém phần đẹp mắt. Dưới đây là những gì tôi đã cài cho phần giao diện, cho bạn nào thích vọc:
  • Display Server: X.org
  • No graphical login
  • Window Manager: Openbox
  • Wallpaper: Nitrogen
  • Taskbar: Tint2 with customize configuration
  • Lock Screen: i3lock
  • Launcher: Albert
  • Terminal: rxvt-unicode
Arch Linux với Openbox và một số công cụ khác
Điểm khó khăn nhất với tôi khi dùng Linux là bộ Office, Microsoft làm Office quá tốt, cũng đúng thôi, họ làm nó còn trước cả Windows mà. Tôi vẫn không vừa ý sản phẩm Office Open Source nào, nên dùng tạm Google Docs vậy.

Gõ tiếng Việt không quá khó cũng không hoàn hảo, hãy thử fcitx thay vì ibus, bạn sẽ thấy cuộc sống dễ dàng hơn. Có một bài viết hướng dẫn tại đây.

Về khoản nâng cấp Arch Linux rất dễ, chỉ một dòng lệnh là đủ. Sao lưu cả hệ điều hành và khôi phục chỉ đơn giản là copy/paste. Sẽ ko cần Ghost hay "Phantom" gì đó như Windows đã từng.

Ổn định thì ko phải nói nhiều nhỉ, bạn đang chạy hệ điều hành thiết kế cho server rồi.

Ở bài này tôi muốn giới thiệu làm cách nào thay thế Windows bằng Linux trong cuộc sống hàng ngày, bạn sẽ không thể làm được nếu chưa có kiến thức về Linux, nhưng hy vọng tôi đã cung cấp đủ keyword để bạn bắt đầu cài hệ điều hành cho riêng mình, tôi sẽ viết về từng chủ đề trong những bài tới. Try for your privacy.

Saturday, 14 January 2017

Better developer

- Don't re-invent the wheel
- Keep on not re-inventing the wheel
- Try to understand the wheel
- Understand the wheel
- Try to improve the wheel
- Keep improving the wheel
- Invent the jet

Tuesday, 22 November 2016

Đi tới tận cùng

Để chứng minh một vấn đề đúng, bạn phải chứng minh nó đúng trong mọi trường hợp. Kẻ khác nói bạn sai, họ cần chỉ ra một trường hợp sai, đôi khi có-vẻ-sai, là đủ. Quả là cuộc chiến không cân sức. Thật dễ để hủy hoại một tâm hồn non nớt ham học hỏi bằng việc bác bỏ vô tội vạ ý kiến nó đưa ra bằng những luận điểm mơ hồ mà với trình độ non nớt nó chưa thể phản bác được.

Tôi viết ra đây kinh nghiệm mình học được từ những việc nhỏ hàng ngày tưởng chừng rành rành ra đấy, tưởng như ai cũng biết. Từ việc i++ và ++i khác nhau thế nào đến việc một lỗ hổng bảo mật "ghê gớm" có thật sự ảnh hưởng đến phần mềm tôi đang phát triển hay không? Ừ thì ai cũng biết, Java Core học qua hết rồi làm quái gì ko biết hai thằng "i" đó khác, mà khác thế nào thì...để chạy thử rồi biết! Ừ thì lỗi bảo mật đó nghiêm trọng lắm, config như thế là có nguy cơ đấy. Mà có chắc nó xảy ra ko? Ko chắc! Mà thôi, tốt nhất tránh nó ra cho an toàn! Kiểu tư duy lối mòn, lười biếng đó là thứ bạn phải đấu tranh đến cùng, tôi không khuyến khích bạn cãi bằng mồm, tôi cũng không khuyến khích hạ bệ ngươi khác bằng chút kiến thức lớn bằng..con ếch. Cái mà tôi, cũng như bạn phải đấu tranh là nỗi sợ của chính mình. Nỗi sợ bách nhục xuyên trym..à..xuyên tâm mỗi khi ai đó chỉ ra thế yếu của mình, đó là nỗi sơ ngu dốt. Ko, dốt ko có tội, nhưng cãi càn là có tội, bạn không thể chứng minh điều bạn nói là đúng thì ko dốt là gì? Hãy tìm hiểu đến tận cùng. Nỗi sợ tiếp đến là thời gian, bạn sợ mất thời gian nghiên cứu, bạn có thể bỏ 2h đôi co chứ ko chịu bỏ 30 phút google, câu trả lời luôn có sẵn đâu đó. Còn không, chính bạn phải viết câu trả lời ấy, chính bạn hãy nói cho thế giới biết vấn đề của mình, và tiếp đến là giải pháp. Còn tôi, tôi phải đi ngủ. Khuya lắc rồi. Nhớ nhé, cho cả thế giới biết..giờ này tôi ngủ rồi. bye.

P/s: BREACH Attack có thể hoá giải bằng length hiding trên enginx và bản thân ViewState của JSF đã mã hoá để tránh user modification. Có cướp được cũng ko dùng đc.

Tuesday, 5 July 2016

Kinh Thánh


Hồi trước, mình có coi một phim Mỹ rất hay mà mình thấy hợp với hoàn cảnh Việt Nam bây giờ. Phim Book of Eli.

Câu truyện về thế giới hậu thế chiến 3, một cuộc chiến hủy diện hoàn toàn, để lại trên hành tinh một thiểu số nghèo nàn, dốt nát, điên loạn..cả trong giới lãnh đạo lẫn thường dân.

Trong cảnh đen tối đó, niềm hy vọng lớn nhất của họ nằm trong một quyển sách. Kẻ cầm quyền tìm kiếm nơi nó sự thông thái để cai trị, thường dân tìm nơi nó niềm an ủi và cứu rỗi, người ta đồn rằng nó chứa đựng tất cả thông thái và chân lý để lập lại trật tự thế giới, và một người đàn ông da đen đơn độc đang bảo vệ nó.

Đó là phim, về cuốn sách của Eli, một cách nói ẩn dụ về cuốn The Bible, về Kinh Thánh (trong phim là bản New King James được viết bằng chữ nổi).

Vấn đề của người Việt Nam bây giờ là ko có một chuẩn mực đạo đức vững chắc để noi theo, họ mù mờ, họ nghi ngờ, và họ sợ mọi thứ: sợ chính quyền, sợ thực phẩm bẩn, sợ nước ko sạch, sợ cướp bóc..họ sợ cả hành động của chính họ vì ko biết làm gì đúng làm gì sai.

Mình gợi ý các bạn nên đọc Kinh Thánh, bỏ qua vấn đề tôn giáo thì Kinh Thánh là quyển sách giá trị nhất về sự khôn ngoan, về nghệ thuật lãnh đạo, đối nhân xử thế và về Tình Yêu Thương. Hãy thử đọc nó bằng một cái nhìn khác, bạn sẽ thấy nó là cuốn sách cần thiết nhất cho người Việt hiện nay.

Saturday, 13 July 2013

Presentation Patterns - A Recipe for Better Education Presentation

Giving a presentation is a scary experience for most developers. Yet, worrisome as they are, they are a great way to influence technical decisions. They aid informed choices through the distribution of pertinent knowledge. Our highly actionable "Gang of Four" style patterns illustrate tried-and-true ways to build technical presentations that inform, convince and inspire.

Presentation Patterns - A Recipe for Better Education Presentation.pdf

Monday, 1 October 2012

Rainmeter

Rainmeter, công cụ tùy biến giao diện Windows linh hoạt nhất tui từng biết, một trong số ít phần mềm nguồn mở về giao diện và rất là tuyệt!


Có cả thiên hà skin để bạn mặc sức lực chọn!

Saturday, 12 November 2011

Học lập trình

Bạn là người có đam mê Công nghệ Thông tin, bạn muốn tạo cho riêng mình một chương trình cho mục đích của riêng bạn, và bạn quyết định học lập trình. Khi đọc bài viết bạn thấy quá chừng ngôn ngữ lập trình, lúc thì PHP, ASP, rồi Java, Python, C#, C++...rất nhiều và rất nhiều, ah phải kể luôn Assembly cho đủ bộ. Bạn sẽ hỏi vậy nên học ngôn ngữ nào? Câu trả lời là...tất cả! -- đừng hoảng :)

Suy nghĩ xem bạn muốn làm gì? Bạn phải luôn đặt câu hỏi cho mình học để làm gì?

Thật ra ngôn ngữ lập trình có vài nguyên tắc chung, điều này có nghĩa khi bạn thuần thục một ngôn ngữ, bạn sẽ học những cái còn lại nhanh hơn. Nhưng ngôn ngữ đầu tiên bạn học là quan trọng nhất!

Bạn nên hiểu ngôn ngữ lập trình chỉ là phương tiện thực thi ý tưởng của bạn, như một bài toán nhiều lời giải, chương trình có thể được viết bằng bất cứ ngôn ngữ lập trình nào.

Và một điều nữa là phương pháp lập trình. Giống như viết văn có song hành, diễn dịch, quy nạp, viết chương trình có nhiều cách viết, hay thấy nhất là "hướng thủ tục" và "hướng đối tượng". Mấy cái khác tui không rõ nên không bàn tới.

Chắc bạn tự hỏi mấy thứ này liên quan thế nào tới chuyện học lập trình?

Khi tui học đại học, thật may mắn trường tôi gần như duy nhất trong nước dạy lập trình kiểu Hướng đối tượng, không bàn chuyện hay dở thế nào nhưng điều đó cho phép tôi so sánh với cách viết chương trình "hoang dã" tui tự mày mò, tui kết luận lập trình theo đúng phương pháp khó hơn nhưng đáng để học. Vì bạn có thể viết được những chương trình lớn, có thể mở rộng nó dễ dàng, ít phải chỉnh sửa mã nguồn đã hoàn thành...

Vậy người mới cần học gì? Theo tui, học những gì gần với điều bạn đã biết nhất!

Về ngôn ngữ lập trình, hãy học Python hoặc Java, hoặc C++, cá nhân tui chọn Python vì tính tự do của nó, ngoài ra bạn không cần phải kiểm soát sâu vào hệ thống. Bạn có thể lập trình cả ứng dụng Desktop và Web bằng Python.

Về phương pháp lập trình, hãy lập trình theo kiểu "hướng thủ tục" trước, tức là viết chương trình thực hiện lệnh theo thứ tự từ trên xuống (giống khi bạn viết lời giải cho bài toán).Sau khi nắm vững các lệnh nên học "hướng đối tượng" (Python hỗ trợ hướng đối tượng).

Hy vọng những điều này giúp ích cho bước khởi đầu của bạn. Hãy chọn cho mình điểm bắt đầu và "google it".

Nếu bạn chọn Python, tui có quà cho bạn, ngại đọc tiếng Anh thì chờ bài sau của tui.