Skip to main content

Posts

[RPi] Hello again

Lần cuối cùng cắm Raspberry Pi vào chơi là cách đây 8 tháng rồi:   pi@raspberrypi ~ $ last pi pts/0 192.168.25.114 Fri May 16 10:02 still logged in root tty1 Fri Sep 20 16:17 still logged in reboot system boot 3.6.11+ Fri Sep 20 16:17 - 10:02 (237+17:45)  Sau 8 tháng bỏ không, em RPi vẫn chạy ngon lành và sẵn sàng cho một cuộc chơi mới.  Để lần mò sờ vào em RPi không phải chuyện đơn giản, cắm dây mạng vào và cắm điện, RPi bừng tỉnh sau giấc ngủ ngàn thu và thủ ngay lấy một IP trong mạng. Làm sao để tìm được ra em nó giữa hàng trăm máy tính trong cùng mạng LAN? Không biết cách nào tốt hơn, nhưng mình đã dùng cách này: nmap -sP 192.168.25.1/24 Và ngồi tìm ra máy nào chỉ open mỗi port 22 -_-, cảm giác thật stupid nhưng cuối cùng ta cũng chui được vào nó. Hết.

[Python] Ternary Operator

https://docs.python.org/3.3/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator [ on_true ] if [ expression ] else [ on_false ] x , y = 50 , 25 small = x if x < y else y Before this syntax was introduced in Python 2.5, a common idiom was to use logical operators: [ expression ] and [ on_true ] or [ on_false ] However, this idiom is unsafe, as it can give wrong results when on_true has a false boolean value. Therefore, it is always better to use the ... if ... else ... form.

Y2038 - Year 2038 problem

hay còn gọi là Unix Millennium Bug . Cho những người thích đọc wiki http://en.wikipedia.org/wiki/Year_2038_problem Cho fan python In [8]: import datetime In [10]: datetime.datetime.fromtimestamp((2**32 /2 - 2)) Out[10]: datetime.datetime(2038, 1, 19, 10, 14, 6) Kết quả trên là 10 giờ do sử dụng GMT+7 Để lấy kết quả UTC: In [31]: import time In [32]: time.gmtime(2**32/2-2) Out[32]: time.struct_time(tm_year=2038, tm_mon=1, tm_mday=19, tm_hour=3, tm_min=14, tm_sec=6, tm_wday=1, tm_yday=19, tm_isdst=0) năm 2038 có gì hot? để hiểu rõ vấn đề này cần có chút hiểu biết về 1 kiểu dữ liệu trong C được gọi là  signed 32-bit integer  kiểu dữ liệu này chỉ có thể biểu diễn giá trị dương lớn nhất là 2**32 / 2 - 2 = 2147483646 (signed - có dấu âm/dương, tức nó biểu diễn được từ - (2 ** 32 /2 )đến 0  đến 2 ** 32 - 2 )

tmux revised

Một bài viết nữa về tmux, theo phong cách tìm hiểu bản chất và liệt kê vài câu lệnh hữu ích. 1. Tác giả tác phẩm  Tác giả: Nicholas Marriott <nicm@users.sourceforge.net> Các lib tmux depends on : ncurses  libevent URL            : http://tmux.sourceforge.net/ 2. Phân tích cấu tạo, hoạt động  Các thành phần session : là 1 tập hợp các pseudo terminal dưới sự quản lý của tmux. Mỗi session link với 1 hoặc nhiều window. Session giữ nguyên trạng thái khi mất kết nối (detach) với client và có thể được reattach. Mỗi sessions được hiển thị trên màn hình bởi 1 client và tất cả các session được quản lý bởi 1 server duy nhất. Server và client là các process riêng biệt, mỗi client tương tác với server qua một socket được tạo ra trong thư mục /tmp window : một window sẽ chiếm tòan bộ màn hình và có thể bị chia nhỏ thành nhiều "pane" chữ nhật nhỏ hơn. Mỗi pane là 1 pseudo terminal riêng biệt. Nhiều tmux instance c...

100.000 lượt view

Vậy là thấm thóat cũng đã 4 năm trôi qua kể từ FAMILUG thành lập (bài viết đầu tiên vào tháng 5 năm 2010). Bao nhiêu thăng trầm, bao nhiêu vui buồn, bao nhiêu nỗ lực, bao nhiêu kỷ niệm, tất cả đã ở lại đằng sau để thời gian đưa chúng ta về phía trước, FAMILUG đã đạt mốc view KINH KHỦNG 100.000 lượt view. Thật ra, chúng ta muốn chào mừng việc đã vượt qua mốc 99.999 :3 Bấm vào đây để đọc lại bản nghị quyết thành lập cho vui :3   Từ một nhóm sinh viên ngơ ngác tập dùng Ubuntu từ bản 10.04, giờ đây các thành viên đã trở thành các hacker mũ hồng, các lập trình viên, chuyên viên công nghệ ngổ ngáo. FAMILUG chẳng giúp gì được cho mọi người, nó cũng chỉ là cái cớ để làm 1chầu bia, để là chỗ đôi lúc ai muốn xả gì thì chui vào. Nhưng đâu phải ai cũng nhận ra, con người ta, ĐÔI KHI chỉ cần những điều đơn giản như thế. Nhờ chính sự F5 ko mệt mỏi của các bạn mà FAMILUG đã đạt được thành công như ngày hôm nay. Vậy nên để chào mừng sự kiện này và để thu tiền đóng domain cho năm tới, tôi...

[CLI] fdisk và cfdisk

Hai công cụ chức năng tương đối giống nhau và cùng dùng để chỉnh sửa partition table. Định nghĩa: hvn@archhvn: ~ () $ whatis fdisk fdisk (8)            - manipulate disk partition table hvn@archhvn: ~ () $ whatis cfdisk cfdisk (8)           - display or manipulate disk partition table bình thường thì chả ai đi format hay xem partition table cả, vậy nên trừ khi bạn làm việc này thường xuyên (nghĩa là - bạn thường xuyên phải format ổ cứng, hoặc bạn là 1 sysadmin) thì bạn mới động đến các câu lệnh này. cfdisk thì có giao diện curses-based fdisk thì dùng giao diện CLI tương tác  (fdisk  is  a  dialog-driven program), nó đưa ra câu hỏi, bạn đưa ra câu trả lời. Cả 2 đều dễ dùng và trực quan. Một điểm khác biệt đáng chú ý là:

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG