New FAMILUG

The PyMiers

Sunday 26 February 2012

Bit shifting

Ít khi nói tới vì ít khi dùng tới nếu không động tới phần thấp.
Ai cũng biết mọi dữ liệu đều được biểu diễn trên máy tính ở dạng nhị phân. Hôm nay ta chơi với 2 toán tử bitwise đó là 2 phép dịch bit - bit shifting  >> <<

Có 2 loại toán tử shift bit là arithmetic(số học???) shift và logical shift (lô gíc)
Phép arithmetic shift bảo toàn dấu sau khi shift , logical thì không.

Để mọi chuyện rõ ràng hơn. Ta xét về vấn đề dấu :

A. Cách biểu diễn số nguyên có dấu và không dấu
1. Với unsigned int : KHÔNG DẤU - chỉ toàn số dương.
1 byte = 8 bit và 8 bit này đều để biểu diện ĐỘ LỚN (trị tuyệt đối). Nghĩa là với 1 byte sẽ biểu diễn được các giá trị từ 0 - 255 (cái này làm bài tập mạng máy tính quen rồi nhể)

2. Khác với int : CÓ DẤU (+ - ) gồm cả số âm và số dương.
1 byte lúc này sẽ có 1 bit đầu tiên để biễn diễn dấu, 7 bit còn lại biểu diễn độ lớn. Vì thế, 1byte lúc này sẽ cho các giá trị từ -127 đến 127 (thiếu 1 số là do có 2 cách biểu diễn 0). Với 1 số cách cài đặt khác, ta có khoảng giá trị là -128 đến 127 (số -0 thay bằng 128). Xem thêm ở link dưới.
http://en.wikipedia.org/wiki/Signed_number_representations

Saturday 25 February 2012

Somethinge new...

For PHP lover:
http://technotab.com/highly-useful-tools-and-techniques-for-php-developers/
For search lover:
http://zooie.wordpress.com/2009/07/06/a-comparison-of-open-source-search-engines-and-indexing-twitter/
For web lover:
www.dzone.com/links/r/30_days_to_learn_jquery.html
For vim **cker :))
http://css.dzone.com/articles/how-write-vim-plugins-python

Kiểm tra xem cổng nào đang mở

Môn mạng máy tính ai cũng học rồi :))
học xong chả biết có làm được gì ko 8->

Đây là đoạn script kiểm tra xem cổng "nổi tiếng" nào đang mở (từ 1-1024):

http://pastebin.com/rMv4u2s2

Gửi dòng tin hiển thị lên màn hình

Ai cũng nghĩ CLI thật nhàm chán vì toàn là chữ. Làm CLI đúng nghĩa thì bạn phải làm trên Linux không có GUI mới chuẩn :)) còn với Linux dùng kèm GUI, ta có 1 trò thú vị để gửi dòng tin từ dòng lệnh ra màn hình (giống khi dùng Pidgin có thằng chat với mình ấy)

Cài cái này trước , thường là có sẵn rồi


$ sudo apt-get install libnotify-bin
Sau đó dùng thôi, gõ lệnh sau:
 
notify-send "Hello Thon"
 
Hehehe. Gõ man notify-send để biết thêm chi tiết
(Có thể làm hiện icon, hẹn giờ...) 

Sunday 19 February 2012

Kết hợp

Bạn có 1 thứ vô cùng chán ngán ... mà vẫn phải xử lý.
Bạn có 1 thứ mà bạn thích thú... muốn được xử lý luôn.

Vậy là bạn có câu chuyện về 1 chiếc bánh giày giò. Bánh giày ăn không rất chán (del nói bánh giày Quán Gánh ngon bỏ mie nhà thằng Hiệp) nếu kẹp với giò lại thành món 10k/1cặp ngon lành.

Nếu có 1 thứ gì chán ngắt mà vẫn phải làm, hãy thử kết hợp nó với 1 điều bạn thích thú và xử lý 1 đôi!
Vậy là có cách giải quyết cho bài tập về nhà môn "Đồ họa máy tính" :D

Saturday 18 February 2012

Bạn đã đi sai đường?!!!



Lại thêm một bài viết về các ngôn ngữ cho ai thích đọc!

Khi tất cả ở đây ai cũng biết rằng : bạn có thể làm 1 trang web HTML bằng bất kỳ ngôn ngữ nào : HTML, C, Python, PHP, Java... vấn đề còn lại là bạn sẽ chọn cái nào.

Đừng đồng bộ "khả năng" của 1 thứ và "điểm mạnh" của nó.
Bạn có thể hì hục code C để viết thuật tóan nhân 2 ma trận hoặc có thể dùng Octave/Matlab và nhập ma trận vào rồi enter. Bởi thế đừng dại dột gì cố lãng phí sức lực để nhét những cái không hợp lí vào với nhau, người chịu đau sẽ là bạn!

Bạn cần nhanh : chọn C - siêu nhanh mà phức tạp
Bạn cần làm web động (kiểu site quy mô nhỏ - bán hàng, tin tức...) : chọn PHP
Bạn cần làm các server: chọn Java, ngôn ngữ được sử dụng rộng rãi bậc nhất, phần serverlet rất bảo mật.
Bạn cần sản xuất những thứ "chạy được", có giao diện trong thời gian ngắn: C# kéo thả (hoặc bạn phải rất thành thạo những thứ khác nói trên)
Bạn cần 1 ngôn ngữ siêu khủng để nghiên cứu học về thuật toán và lập trình: LISP, Scheme là lựa chọn của đại học công nghệ hàng đầu thế giới MIT.
Bạn cần 1 ngôn ngữ dể hiểu, gọn gàng, để viết các tool phục vụ cá nhân: Python - dễ mà hiệu quả.

Tất nhiên những ích lợi nói trên chỉ là 1 góc nổi trội của mỗi ngôn ngữ, bạn cần tìm hiêu thêm để biết cái gì nên dùng để làm gì.
"Nỗ lực sẽ chẳng thể đi đến đâu nếu như lựa chọn là sai lầm" - trích lời Mít tơ Trần Xóa

Saturday 11 February 2012

List danh sách các file trong linux

Khi bắt đầu sờ vào 1 project nào, nếu không biết tìm đường, bạn sẽ bị lạc.
Việc hiểu một project yêu cầu phải hiểu rõ cấu trúc của nó.
Dùng ls sẽ không hiệu quả bởi nếu ls -R thì chỉ liệt kê 1 loạt dài và không thể hiện cấu trúc. Với vài dọng lệnh sed, hay có thể lập trình C, bạn sẽ lấy được cấu trúc tree của thư mục mong muốn:

https://github.com/famihug/FAMILUG/blob/master/Bash/tree.sh

Sunday 5 February 2012

Something New: hack

Hack thế nào, câu hỏi muôn thưở của noobie :D Bài viết này trả lời rất hay cho câu hỏi cụ thể : Hack web như thế nào http://security.stackexchange.com/questions/11234/how-does-hacking-work

Saturday 4 February 2012

Điện thoại và máy tính

Văn hóa sử dụng điện thoại và máy tính :
Người Mỹ: tiết kiệm thời gian.
Người Việt: giết thời gian.



Hãy sử dụng máy tính và điện thoại hay những sản phẩm công nghệ khác theo cách của bạn. Để tạo ra các giá trị và tiết kiệm thời gian. Và đừng quên chia sẻ cho mọi người trên FAMILUG ;)

Viết!

Tại sao lại phải viết?

Câu trả lời sẽ là 1 câu hỏi khác: nếu bạn ăn vào, bạn có ! ra ko? Vậy nếu bạn nghe/đọc vào thì sao lại không nói/viết ra?

Hãy viết để chia sẻ suy nghĩ của mình. Còn không bạn chỉ là 1 "thiết bị chỉ có đầu vào" và tự kỷ rồi nổ tung ;)

Cuối tuần vui vẻ :))

Thursday 2 February 2012

Reo rắc tư tưởng - automate things!

Tư tưởng này là tư tưởng mà người ta đã tạo ra máy tính. Tự động hóa những công việc nhàm chán bằng các chương trình.
Bạn là 1 con người hiện đại
Bạn là 1 sinh viên công nghệ
Bạn là 1 thành viên FAMILUG
=)) giống tờ rơi chưa :))
hãy tự động hóa những gì có thể. Hãy thấm nhuần tư tưởng này. Nó ngắn gọnĐƠN GIẢN hơn TTHCM hàng nghìn lần :D

Loại bỏ những công việc nhàm chán (một vài gợi ý):
- Dùng addon autofill của firefox để điền các mẫu đăng kí, tôi đã chán ngấy nó rồi.
(tự search là ra)
- Có lẽ ở đây không nhiều người biết những công cụ scheduler của các hệ điều hành. Tức nó sẽ tự động làm các việc tại 1 thời điểm nào đó.

Với Windows, cho đến khi dùng Linux tớ mới biết đến Scheduler của nó:
http://www.google.com.vn/search?q=scheduler+windows&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

Với Linux, nó là cron, crontab. Hãy sử dụng những công cụ này... hàng ngày :D
Cao cấp hơn tí, hãy viết những script, chương trình để tự động những công việc nhàm chán. Không quá khó nếu yêu cầu của bạn ko quá cao siêu.
Tớ muốn check dung lượng pin hàng ngày để theo dõi xem tốc độ chai pin ntn?
Chỉ cần viết 3 dòng bash script (bash cũng là 1 ngôn ngữ dạng script, như python vậy), nhét nó vào crontab và mọi thứ sẽ tự động làm việc hàng ngày.

Đừng để máy tính dùng bạn!

Something new...

Mindmap 1 công cụ. ĐỂ???
- Liệt kê những gì trong đầu mình ra, 1 mớ hỗn độn,
- Phát triển những ý tưởng.
- Có thể viết ra giấy!

Trang này search GG thấy luôn trên top. Tài khỏan free tạo đc 3 map. 1 map là quá đủ :D hình ảnh đẹp.
https://www.mindmeister.com/

UPDATE: Hàng vừa làm để test :D
https://www.mindmeister.com/137055443/skills
~~~~~~~~~~~~~~
So sánh giữa 3 script lang phổ biến nhất: (ảnh to nên t để link)
(Với VN thì Ruby và Python có khi nhiều người mới nghe lần đầu :D )
http://www.udemy.com/blog/wp-content/uploads/2012/01/PROGRAMMING-LANGUAGE-3.png

Wednesday 1 February 2012

Something new...

CRM: Customer relationship management 
Khác với CMS các bạn hay nghe. CRM là thuật ngử chỉ
Quản lý quan hệ khách hàng (Web app). Nổi tiếng nhất là Sugar http://www.sugarcrm.com/crm/
http://en.wikipedia.org/wiki/Customer_relationship_management