Skip to main content

Posts

Showing posts from June, 2013

[FMLEXER] tập thể dục với các bài lập trình đơn giản

EXER là viết tắt của từ exercise - bài tập/ thể dục FMLEXER tiếp nối chuỗi bài viết FMLB không ai thèm chơi Đề bài và script để tạo đề bài để ở đây https://github.com/familug/fmlexer/tree/master/fmlexer01   Người chơi hãy dùng bất cứ ngôn ngữ gì để thu được kết quả mong muốn. Dùng phần mềm ` tree ` để in cấu trúc thư mục.

Cài đặt server chat XMPP - ejabberd

XMPP (Extensible Messaging and Presence Protocol): trước đây là Jabber, là giao thức mở dựa trên nền tảng XML dùng trong nhắn tin nhanh (instant messaging) và thông tin hiện diện trực tuyến (presence information). (http://vi.wikipedia.org/wiki/XMPP ) Mạng XMPP có thể dùng đơn lẻ: các máy trong mạng chat với nhau, hoặc kết nối với các hệ thống nhắn tin (instant messaging systems) khác - thông qua các gateway: máy của mạng nay chat được với máy thuộc mạng kia . Các hệ thống nhắn tin này có thể là 1 mạng XMPP khác hay mạng ICQ, google talk...

YAML là gì?

YAML ( http://www.yaml.org/ ) là 1 định dạng dũ liệu được thiết kế nhằm mục đích để người và máy (các ngôn ngữ lập trình) cùng đọc được. YAML được dùng vào mục đích tương tự JSON , XML nhưng ngắn gọn xúc tích hơn. Ví dụ về 1 đoạn YAML được biểu diễn như sau: -   name: HVN   mail:   hvn@familug.org -   name: SAM   mail:   hai.lt@familug.org http://yaml-online-parser.appspot.com/ Là 1 trang chuyển đổi YAML sang JSON. Bạn nên dùng trang này trong lúc đọc, vừa học vừa hành lúc nào cũng tốt hơn. YAML để làm gì?

suy nghĩ trong đêm

00 h 36 Mưa rơi rả rích, đêm chỉ có tiếng nhạc, tiếng mưa và tiếng gõ phím. Chất kích thích của ly cà phê Trung Nguyên vẫn còn mạnh lắm, chưa ngủ được. Nếu may mắn, chỉ vài ngày nữa thôi là sẽ xa Việt Nam một thời gian không ngắn cũng chẳng dài, luyên thuyên tí cho đêm nhanh qua. Mình đã viết bài cho cái blog này hơn 3 năm nay, đơn giản vì nó có ích cho người khác và cho chính bản thân. Nói ngu lỡ tèo, thì ít ra cũng làm cho đời được từng này, chẳng phải kinh khủng nhưng cũng chẳng phải tầm thường. Mình ghét cái ý nghĩ viết blog thì phải  uyên thâm, phải giỏi, phải hơn người. Điều cũ với người này nhưng có thể là mới với người khác. Nếu mỗi người chia sẻ những gì mình biết, mình học được mỗi ngày thì sẽ có bao nhiêu điều thú vị được chia sẻ ?

copy từ urxvt đến X clipboard

hvn@archhvn: ~ () $ whatis urxvt urxvt (1)            - (a VT102 emulator for the X window system) không như GNOME Terminal , urxvt không hỗ trợ copy bằng Ctrl Shift C, việc copy từ urxvt đến 1 cửa sổ nào khác phải thực hiện thông qua sự trợ giúp của của 1 script hoặc 1 clipboard manager Tổ hợp mặc định cho việc copy và paste của X là Ctrl Insert và Shift Insert Ở đây tớ dùng clipboard manager Parcellite để copy từ urxvt đến các cửa sổ khác: Parcellite - Lightweight GTK+ Clipboard Manager

rsync - công cụ copy siêu đẳng

bạn sẽ cần tool này, vì chỉ cần học đúng 1 câu lệnh là nó đã có thể tiết kiệm cho bạn hàng đống thời gian! hvn@archhvn: ~ () $ whatis rsync rsync (1) - a fast, versatile, remote (and local) file-copying tool  rsync là một công cụ dùng để copy trên UNIX-like OSes, nó nổi tiếng nhờ thuật toán delta-copy (tức chỉ copy phần khác nhau), bạn có thể cài nó và dùng thay lệnh `cp` 

PLEAC - học các ngôn ngữ lập trình theo kiểu "perl cookbook"

Là một dư án mã mở, PLEAC - Programming Language Examples Alike Cookbook chuyển đổi các ví dụ từ Perl Cookbook sang nhiều ngôn ngữ khác nhau. Một vài ngôn ngữ điển hình: Ocaml: http://pleac.sourceforge.net/pleac_ocaml/index.htm Perl: http://pleac.sourceforge.net/pleac_perl/index.html Groovy: http://pleac.sourceforge.net/pleac_groovy/index.html Python: http://pleac.sourceforge.net/pleac_python/index.html Ruby: http://pleac.sourceforge.net/pleac_ruby/index.html ...

git và tig là đôi bạn thân

Mới khám phá ra ` tig ` gần đây nhưng nó đã trở nên vô cùng thân thiết với ` git ` của tớ. Với một giao diện trên nền ncurse, màu mè con bà bán chè, tig giúp bạn dễ dàng xem các commit ... và nhiều tính năng khác nữa (chưa dùng tới) Cài đặt:

Script hay làm bằng tay?

Bình thường tớ sẽ luôn trả lời là script vì viết script rất vui :D Nhưng khi cần thực hiện xong công việc càng nhanh càng tốt, ngồi viết script chưa hẳn đã là điều hay ho. Trước khi thò tay định viết scritp để thực hiện một công việc gì đó nhằm tự động hóa nó, mục đích chính là làm xong công việc nhanh hơn, chính xác hơn, hiệu quả hơn, bạn nên tự hỏi mình vài câu: - Liệu bạn làm thủ công có nhanh hơn không? Nếu câu trả lời là có, đừng viết! Nếu bạn không thạo việc viết scritp, bạn sẽ tốn thêm thời gian để debug, google cách làm, đọc document cách dùng thư viện... và kết quả là bạn làm tay sẽ nhanh hơn. Bởi vậy, cần thật thành thạo và chính xác thì mới mang lại hiệu quả. Ví dụ: bạn cần đổi tên 10 thư mục, thêm vào mỗi tên 1 dòng chữ XXX. Nếu bạn biết viết 1 câu lệnh bash với for, if, mv, bạn sẽ hoàn thành công việc này sau khoảng 20 giây. Nhưng nếu không thạo cú pháp, bạn lại mất thời gian debug, google thì có thể mất đến 3 phút, làm tay còn nhanh hơn. - Script này có được sử dụ...

Những điều nhảm nhí khi học lập trình

Nhảm nhí hay không phụ thuộc vào cách nhìn của bạn đọc, nhưng với mình thì chúng đúng là nhảm nhí, và rất phổ biến :3 1. x++ và ++x khác nhau thế nào? Damn!  bạn không cần quan tâm đến thứ này. Khi nó là một thứ nên tránh thì mọi người hết lượt cắm đầu vào để tìm hiểu, và không chắc liệu có nhớ được lâu không. Trong khi học C , thứ các bạn cần học là  hiểu về con trỏ, quản lý bộ nhớ, sử dụng các thư viện mà hệ điều hành cung cấp, các thư viện  của bên thứ 3... Hãy viết x = x + 1; và đừng bao giờ quan tâm về câu hỏi nhảm nhí này nữa. (trừ khi bạn muốn học viết obfuscated C ) 2. scanf và kiểu chương trình CLI tương tác trực tiếp với người dùng Kiểu như: viết chương trình C cho người dùng nhập vào họ tên, mã sinh viên, điểm, ... blah blah blah. Đại khái là khi viết bạn sẽ phải dùng hàm scanf, fget, gets...

[Editor] Sublime Text 2

Sublime Text 2- là một text editor khá phổ biến có thể cài đặt trên cả windows lẫn linux. Cài đặt:  Trên windows vào trang chủ  http://www.sublimetext.com/2  và download về và cài đặt như bình thường   Trên ubuntu :                          sudo add-apt-repository ppa:webupd8team/sublime-text-2                          sudo apt-get update                          sudo apt-get install sublime-text-2 Về cách thức làm việc thì cũng như các text-editor khác: highlight, tab, chia không gian làm việc, hỗ trợ cài thêm các pakaged. Mình cũng mới sử dụng sơ sơ thấy thích thích mọi người ai có nhã hứng thì cài và tìm hiểu nhé.

[bash] Tắt máy tự động

7h, cu Hít muốn đi ăn cơm nhưng chương trình wget vẫn đang download dở đống file và chẳng biết bao giờ mới xong. 7h 01, cu Hít định gõ sudo shutdown -h 120 để máy sẽ tắt sau 120 phút, nhưng lúc ấy nhỡ chưa xong thì sao?!!! 7h 02, nghĩ... 7h 03, một ý tưởng vô cùng bình thường mà không tầm thường đã nảy ra, cu Hít thò tay vào test Ý tưởng rằng, khi wget chạy, nó sẽ xuất hiện khi grep output của lệnh ` ps `. Nếu nó không còn ở đó nữa nghĩa là đã xong, lúc ấy thì tắt máy. Nếu chuyển đoạn trên sang bash sẽ là: lặp cho đến khi không còn thấy wget trong output của lệnh ` ps `, rồi shutdown . 7h 04, mọi thứ đã sẵn sàng, gõ thôi:

[CSS] Div layout

code HTML:

Xử lý text trên Linux

công việc này nghe có vẻ nhàm chán và thực sự thì nó đúng là như vậy, ít nhất đối với tớ. Mỗi lần đọc 1 quyển sách lập trình, cứ đến đoạn xử  lý string là mình cố tua thật nhanh cho hết :v Nhưng nó cần thiết, quan trọng, và thậm chí mang tính sống còn. Nếu bạn xử lý tất cả mọi thứ bằng tay thì không bàn tới, nhưng nếu bạn muốn tự động hóa mọi thứ, bạn sẽ phải viết script, và xử lý text lại trở nên quan trọng. Vì: trên UNIX-like OS, output của các utils đều là text cả. Các chương trình giao tiếp với nhau thông qua text (dùng pipeline của sh/bash...), bởi vậy, chán cũng phải làm, thậm chí là làm giỏi :3 Dưới đây là một problem đơn giản, bạn nào ngứa tay thì làm thử, dùng cái gì cũng được, miễn thu được kết quả:

[LATEX] Đồ án tốt nghiệp đề tài "SỬ DỤNG SALTSTACK TRIỂN KHAI HỆ THỐNG PRIVATE CLOUD OPENSTACK"

Đây là ĐATN của tớ viết toàn bộ sử dụng LATEX gồm bản báo cáo https://bitbucket.org/hvnsweeting/datn/src/96c8e2902bdf4f69fe5b9f17d48b933188ba7f4c/tttn.tex?at=master và slide https://bitbucket.org/hvnsweeting/datn/src/96c8e2902bdf4f69fe5b9f17d48b933188ba7f4c/slide.tex?at=master

[vim] Hướng dẫn học dùng vim

Bài viết [TẤT NHIÊN]  mang tính chủ quan và dựa trên kinh nghiệm dùng vim của tớ. Đọc xong bài này bạn sẽ: - biết học dùng vim cơ bản thế nào - biết tìm chỗ để học nâng cao - hiểu biết về những thứ xung quanh vim vim là gì? vim (1) - Vi IMproved, a programmers text editor vim là phiên bản phát triển từ vi (visual - đọc là vi-eye) , thường được dùng để edit các file text khi lập trình hay cấu hình hệ thống. Những đặc điểm nổi bật của vim

WM và hành trình đi vào thế giới ArchLinux

:v tít nhảm nhí vãi WM là thứ đầu tiên tớ hóng được từ ArchLinux, và cũng là dấu mốc mở đầu một chân trời mới. Window Manager (WM) là một loại chương trình để quản lý cửa sổ Desktop Environment (DE) là một bộ gồm nhiều chương trình để tạo nên một môi trường desktop, các DE nổi tiếng có thể kể đến như: Gnome, KDE, LXDE, XFCE, e17. Bất kỳ Desktop Environment nào cũng bao gồm một WM, nhưng nếu đang dùng Ubuntu, có lẽ bạn sẽ không để ý nó tên là gì. Đây chính là sự khác biệt, khi ở một nơi, bạn thấy nó đập vào mặt ở mọi chỗ,

[KVM] Tăng tốc máy ảo bằng virtio

Sẽ viết một bài cài máy ảo sử dụng KVM sau. KVM là gì? Định nghĩa theo trang chủ: KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). Nói đơn giản nó sẽ cho phép bạn cài máy ảo lên máy bạn đang dùng, tương tự như VirtualBox, VMWare.  KVM được tích hợp sẵn vào kernel của Linux từ phiên bản 2.6.20 Virtio  

[SmartUsing] Dùng github/bitbucket để lên kế hoạch cá nhân

Nếu bạn thường xuyên bắt đầu một việc gì đó khi thích thú (học 1 cái gì đó chẳng hạn), và rồi vài hôm sau bạn quên mất, hay bạn muốn lên kế hoạch để thực hiện như những gì bạn đề ra. Có rất nhiều ứng dụng để take note, báo thức, lên kế hoạch trên các smartphone cũng như trên web. Nhưng mới đây tớ "phát hiện" ra có thể sử dụng github hay bitbucket để thực hiện việc này, khá là thú vị.

Ý nghĩa của các câu lệnh Linux

Dưới đây là các câu lệnh thường gặp trên Linux và lý giải tại sao nó có tên như vậy: cp — CoPy files and directories dc — Desk Calculator dd — (Data Description) convert and copy a file df — Disk Free: report file system disk space usage du — Disk Usage ed — EDitor ln — make LiNks between files

[CSS] Dropdown menu

Chào cả nhà hôm nay vừa thi tốt nghiệp cấp 3 xong. Trời có nắng nhưng được cái có gió. Và có mấy đứa đi chụp ảnh mảnh ở hồ sen nào đấy rồi up ảnh lên face + không biết đã khao ván trượt chưa nữa Đi vào vấn đề chính nào hôm nay mình sẽ trình bày cách để xây dựng 1 thanh menu 2 level . Trước hết để tiện cho việc trình bày bạn nào chưa có cái bảng các thuộc tính của CSS thì tìm trên mạng hoặc liên hệ mình để lấy(mail:dong.tm1212@gmail.com). Để xây đựng Dropdown menu cần 1 số lệnh sau : Margin : Lệnh này để căn chỉnh khoảng cách giữa các đối tượng cùng cấp với nhau và có 4 giá trị theo thứ tự trên phải dưới trái, 3 giá trị thì là trên phải(trái = lề phải) dưới, 2 giá trị : trên(=dưới) phải(=trái), 1 giá trị: tất cả bằng nhau,  ngoài ra còn có auto nó sẽ tự co khi co màn hình(theo mình biết là vậy).ps: còn có cách chỉnh riêng từng giá trị bằng các thêm-top,-bottom,-left,-right sau margin Padding: giống như margin để căn chỉnh khoảng cách nhưng là khoảng cách giữa đối tượng và lề...

Thư viện trên Linux

UPDATED : thêm lệnh liệt kê tất cả thư viện bài này cung cấp cho bạn hiểu biết cơ bản về Linux library (và nó có thể đúng với các UNIX-like OS khác như BSD, Solaris, ...) Ai nên đọc bài này: C/C++ programmer Sysadmin - để troubleshooting Người thích tìm hiểu về Linux Library ở đây chỉ thư viện dùng trong lập trình (program library), là nơi chưa các hàm, lập trình viên chỉ cần import chúng và dùng. Có 3 loại library:  static libraries  shared libraries dynamically loaded libraries. Một số khái niệm liên quan:

CSS-Cách chèn code vào 1 trang web

Chào cả nhà hôm nay mình có nghịc twitter bootstrap toét cả mắt do chưa chỉnh customize nên toàn màu trắng là màu trắng nhưng cái này viết css ah nhầm giúp làm giao diện nhanh ghê!!! Đi vào bài hôm nay mình sẽ trình bày về các cách để chèn code css vào một trang web. Có 3 cách để chèn code vào trang web : Cục bộ: Viết ngay code css trên ngay thành phần cần tác động thông qua thuộc tính style= " property1 : value1 ; property2 : value2 ";.... Phạm vi tác động nhỏ , chỉ thẻ chứa nó mới có style đó.                      Ví dụ: style="text-transform:uppercase; color: red ; "            khi add vào thẻ h1 với chứ tôi yêu vn, kết quả sẽ là:  Tôi yêu VN

Partitioning - Phân vùng ổ cứng

Nó là phần rắc rối nhất / dễ gây hoang mang nhất khi cài đăt một hệ điều hành. Bài này đưa ra những khái niệm cơ bản về phân vùng để người dùng không còn sợ hãi. Có 2 partition scheme (sơ đồ phân vùng ???) phổ biến là MBR và GPT 1. MBR (master boot record) MBR (master boot record) của một đĩa cứng có khả năng chứa một bảng phân vùng có thể định nghĩa 4 phân vùng chính (primary partition). Do con số 4 này có vẻ hạn chế đối với những ổ cứng cỡ lớn nên người ta sinh ra khái niệm phân vùng mở rộng (extended partition, vậy bạn có thể có 3 primary + 1 extended). Bên trong extended partion ta có thể thoải mái định nghĩa các phân vùng logic (logic partition) 2. GPT (GUID partition table)

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