Skip to main content

Posts

Showing posts from 2012

zsh và bash

zsh là gì ? nôm na thì nếu bạn biết bash là gì thì zsh cũng gần giống thế nhưng 'xịn' hơn ^^ hvn@lappy: ~ $ apt-cache show zsh ...  Zsh is a UNIX command interpreter (shell) usable as an  interactive login shell and as a shell script command  processor. Of the standard shells, zsh most closely resembles  ksh but includes many enhancements. Zsh has command-line editing,  built-in spelling correction, programmable command completion,  shell functions (with autoloading), a history mechanism, and a  host of other features. từ trang chủ của zsh :

Lời chào năm mới 2013 và nói một chút về sau này.

  Đầu tiên, nhân năm mới 2013, mình xin chúc các bạn mọi điều thuận lợi và quan trọng sức khỏe phải dồi dào, ốm là điều không được phép.  ...... Và câu chuyện như sau: “Bao giờ mày ra trường thế cháu ?” “Mày đi làm chưa ?“ “Năm nay năm thứ mấy rồi ?” … Đã bao giờ các bạn bị tra tấn một mớ các câu hỏi như thế chưa, còn mình, thường xuyên. Nó dường như là một áp lực vô hình để ta buộc phải hoàn thành mục tiêu: Ra trường đúng hạn .

Website with 3D view

Tính năng xem giao diện website theo kiểu 3D rất kool: chỉ cần bấm (CTRL + SHIFT + i)  rồi chọn nút 3D view và xem Thực hiện tren firefox 17.0.1 Với tính năng này, bạn có thể "quay chuột"  cả ngày không chán :D

[FMLB] Bài 1: `cut` vs all

Đề bài:  in ra tất cả tên các user trên máy tính của bạn  (Linux-based OS) Info: thông tin về user được chứa trong file text:  `/etc/passwd` Ví dụ 2 dòng trong file này trên máy tớ:   root:x:0:0:root:/root:/bin/bash hvn:x:1000:1000:Nguyen Viet Hung,,,:/home/hvn:/bin/bash hvn, root chính là tên của 2 user trên máy.

FMLBattle: 1 vs all

Đây là 1 "trò chơi" tớ mới nghĩ ra, 1 ý tưởng...  như thường lệ :D Hình thức : trò chơi này nhằm đưa ra các đề bài và lời giải có sẵn bằng (bash + linux utilities). Người tham gia sẽ viết code bằng 1 ngôn ngữ lập trình tùy ý  rồi đưa kết quả lên gist hoặc pastebin, rất khuyến khích các bạn sử dụng những ngôn ngữ lạ, mỗi người 1 ngôn ngữ càng tốt. Xem như là 1 nơi để luyện tập với ngôn ngữ mới bạn đang học, hoặc rèn luyện lại skill với ngôn ngữ bạn đã thành thạo. Khi đưa lên kết quả, có 1 yêu cầu (không bắt buộc) là bạn hãy chạy chương trình của mình với lệnh `time` để đo thời gian, đồng thời cung cấp cấu hình máy của bạn sử dụng. (tớ sẽ viết hướng dẫn nếu cần)

ReadItLater - Pocket, những gì còn lại sau đống hỗn loạn

chuyện này xảy ra rất thường xuyên với tớ. Khi tìm hiểu về 1 vấn đề X, sẽ thấy xuất hiện thêm các vấn đề Y, và Z. Bình thường là nếu thấy Y và Z hay thì lại xem Y và Z là cái gì... cứ thế và bỏ lại X. Hoặc khá khẩm hơn thì bookmark lại Y và Z , nhưng không bao giờ xem lại ^_^. Một giải pháp giải quyết vấn đề này là:

Kế hoạch các năm post hết vào đây

Cũng chỉ còn vài ngày nữa là số 2 bị lùi lại đằng sau, và ngày nào người ta cũng nhắc đến số 13 kỳ bí. Hôm nay, ở nhà tự kỷ nên quyết định ngồi viết kế hoạch năm tới, nhân tiện gộp tất cả các cái kế hoạch của mọi người vào đây, ai có thì cứ gửi vào phần comment.

[SmartUsing] Chạy firefox với các profile khác nhau

Bình thường khi bạn mở firefox lên, nó sẽ mặc định chạy với profile là default. Nếu bạn chạy firefox với câu lệnh như sau, nó sẽ cho phép bạn chọn 1 profile khác: hvn@lappy: ~ $ firefox -P "hvn" -no-remote -P "hvn" : dùng profile "hvn", nếu không có sẽ mở profile manager ra. -no-remote : dùng để chạy với các profile không phải default

[FMLnews] Tuần có ngày tận thế (16->23/12/2012)

1. Blogger có tính năng nhắc đến ai đó trong bài post chỉ cần gõ dấu + rồi gõ tên người đó: +Bui Chung   +Dong Tran   +Lam Tung   +Đình Cường   +Nguyen Ha    tính năng này chỉ hoạt động với những ai dùng Google Plus :D http://buzz.blogger.com/2012/12/mention-people-in-your-posts-with-google.html 2. Enlightenment chính thức release sau 12 năm dev @@. 

Config Apache2 và CGI

ngày xưa, cách đây tầm 6,7 năm, tớ trẩu tre đi đọc mấy bài của các anh hacker thấy nhắc nhiều đến cgi-bin, thật sự đến tận bây giờ mới tìm hiểu nó là cái gì mà sao toàn bị hack thế :D Bài này sẽ giới thiệu 1 chút về CGI và hướng dẫn debug khi config apache2 bị lỗi (mấy hôm nay debug mệt lắm rồi). Thực hiện trên: hvn@lappy: /etc/apache2 $ uname -a; lsb_release -a Linux lappy 3.2.0-30-generic #48-Ubuntu SMP Fri Aug 24 16:52:48 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux No LSB modules are available. Distributor ID:    Ubuntu Description:    Ubuntu 12.04.1 LTS Release:    12.04 Codename:    precise 1. CGI  The CGI (Common Gateway Interface) defines a way for a web server to interact with external content-generating programs , which are often referred to as CGI programs or CGI scripts. It is the simplest, and most common, way to put dynamic content on your web site. http://httpd.apache.org/docs/2...

Hello Linux !

Nếu bạn mới bắt đầu dùng 1 hệ điều hành nhân Linux nào đó (Ubuntu / Mint chẳng hạn). Chân ướt chân ráo sẽ bỡ ngỡ khi tập bước những bước đầu tiên trong 1 thế giới mới. Chắc hẳn bạn sẽ google 1 đống từ khóa để thỏa mãn các nhu cầu tối thiểu, những thứ thay thế cho Windows mà bạn đã dùng hàng ngàn năm :v như cài tiếng Việt cho ibus, dùng pidgin chat yahoo, cài addon để nghe nhạc ...v.v (Bài này mặc định là bạn đã biết cài các gói phần mềm cho máy tính của mình) Và bạn đã dùng Linux, âu cũng là 1 thay đổi lớn trong cuộc đời :3. Giả như bạn là 1 lập trình viên hay sysadmin đang "tu luyện", thứ bạn sẽ cần khám phá ở đây không phải là những phần mềm thay thế cho Windows kia, mà hãy khám phá sức mạnh thật của Linux: đó là môi trường dòng lệnh CLI ( trong bài này nói đến bash shell)

Một bài tập lập trình dài "hợp lý"

Mỗi khi bạn học một ngôn ngữ mới, bạn sẽ đọc một mớ cú pháp mới, lý thuyết mới và cần 1 chỗ để áp dụng. Trước đây tớ từng recommend là luyện với tầm 20 bài PE đầu tiên để quen với ngôn ngữ mới, nhưng bây giờ, tớ nghĩ mình tìm ra một bài tập " hợp lý " hơn cả. Hợp lý hơn ở chỗ: - nó không đòi hỏi bạn phải tìm hiểu, nghiên cứu thêm bất cừ thứ gì ngoài ngôn ngữ bạn đang sử dụng - nó sử dụng hầu hết các cú pháp cơ bản mà ngôn ngữ của bạn cung cấp - nó không cần sử dụng thêm 1 thư viện ngoài nào bởi chỉ đơn thuần là logic - nó không khó và đánh đố - nó có thể được dùng vào sản phẩm thực tế, không phải đồ chơi (toys) - nó đủ dài để bạn phải gõ code vài lần, chứ không bạn sẽ quên ngay nếu chỉ gõ 1 , 2 lần - sau khi code xong, nếu bạn không có ý định sử dụng, hãy public nó lên github cho ai cần thì dùng

Learning framework

(hay làm thế nào để biết những công cụ lập trình hữu ích cho bạn, cũng có thể là: làm thế nào để biết những gì bạn không biết là mình không biết ) đêm qua trước khi ngủ nghĩ ra bài này nhưng mà ngại mò dậy nên sáng đánh răng xong là múc luôn :D NOTE: bài này sẽ sử dụng ví dụ là C, bởi C là nơi câu hỏi này bắt đầu, hòan tòan có thể áp dụng quá trình này với vấn đề / ngôn ngữ khác Câu chuyện bắt đầu từ khi tớ vô tình vớ được lệnh make - vâng, một con lệnh rất phổ biến trên linux với những ai từng compile software từ source. Và rồi tớ hỏi, làm thế nào để biết những cái còn lại, sao bao năm tháng code C mà mình vẫn không biết make. Vậy là tớ vác lên SO hỏi . Trong thời gian chờ họ trả lời thì tớ đã google xong, mà lúc quay lại thì toàn gạch với đá :v - một thời ngây ngô :v

[FMLnews] Tuần có ngày 12-12-2012

Chúc mừng sinh nhật Đồng D.Ku , dù đã liên hoan trước 1 tuần rồi :v Bắt đầu từ bài này, FML sẽ có một mục mới là FMLnews , post các tin tức hot/ hay ho về công nghệ , cố gắng sẽ post hàng tuần :D Mở đầu tuần này: Linux 3.7 ra lò hãy vào xem những features mới mà kernel 3.7 cung cấp, để không còn lạc hậu :v (tất nhiên cái này hơi cao cấp :-ss ) http://kernelnewbies.org/Linux_3.7 Prominent features in Linux 3.7 ARM multi-platform support ARM 64 bit support Cryptographically signed kernel modules Btrfs updates perf trace, an alternative to strace TCP Fast Open (Server Side) Experimental SMB 2 protocol support NFS v4.1 support no longer experimental Virtual extensible LAN tunneling protocol Intel "supervisor mode access prevention" support Smartusing, một cách sử dụng twitter để làm todo list. http://blog.meritful.com/post/37762908459/twitter-as-a-smart-todo-list Tổng quan tiếp cận việc viết ứng dụng cho iOS: http://genk.vn/dien-thoai/thang-tram-nghe...

[bash] Dùng bash thay máy tính cầm tay

trước tớ đã có bài viết về dùng python để thay máy tính cầm tay, hôm nay xin thêm 1 bài về dùng bash để tính toán với các số nguyên. Và những điều nay không ở đâu xa lạ cả, ngay trong man bash . Chú ý là chỉ dùng bash để tính toán các phép tính SỐ NGUYÊN: ta dùng cấu trúc $((biểu thức cần tính)) hvn@lappy: ~ $ echo $((2**62)) 4611686018427387904 hvn@lappy: ~ $ echo $((2**63)) -9223372036854775808 hvn@lappy: ~ $ echo $((2**64)) 0 hvn@lappy: ~ $ echo $((2**63)) -9223372036854775808 hvn@lappy: ~ $ echo $((15 % 4)) 3 hvn@lappy: ~ $ echo $((7 / 4)) 1 hvn@lappy: ~ $ echo $((1 + 1)) 2

[SomethingNew] Haxe - một ngôn ngữ lập trình rất thú vị

một cái tên có thể bạn chưa nghe bao giờ Haxe, tớ cũng mới chỉ nghe hôm nay :D http://haxe.org/ tất nhiên bạn sẽ hỏi: có đáng để học nó không? dù với bất kỳ ngôn ngữ nào, câu trả lời này cũng là có :v , còn đây là những câu trả lời cho câu hỏi ấy: http://stackoverflow.com/questions/1384647/is-haxe-worth-learning Đây là 1 tính năng nổi bật của Haxe:

[SomethingNew] 2D GameArt with Inkscape

Hầu hết mọi người đều nghĩ để tạo hình cho game, cần phải có kỹ năng vẽ vời rất tốt :v hãy xem cái link này và nghĩ lại. Đã định học Inkscape từ lâu nhưng mới chỉ là định thôi :v http://2dgameartforprogrammers.blogspot.in/2012/09/apache-helicopter.html

Byebye Shared Hosting, Hello Free Cloud

App được nhắc đến trong bài này được viết bằng PHP - MySQL  Biết đến Heroku từ lâu, nhưng nó lại dùng PostgreSQL, không được quen cho lắm. Hôm nay tớ tìm thấy đám mây khác đáp ứng được nhu cầu này - Xeround (Database as a Service - xeround.com). Như vậy code (PHP) sẽ deploy trên Heroku, và database (MySQL) được gửi tạm trên Xeround Cloud. Một lựa chọn khác có vẻ chuyên nghiệp hơn Free Shared Host :D Xeround cung cấp gói Free cho phép tạo db < 10mb, quản lý db bằng phpmyadmin. Đủ dùng cho các test app hoặc để chơi or 1 cái shop bán hàng nhỏ :D Sau khi deploy code php trên Heroku có thể config domain có sẵn thay thế cho domain cung cấp của Heroku $ heroku domains:add example.com Với điều kiện domain đã được cấu hình DNS (CNAME) trỏ example.com về yourapp.herokuapp.com Đây là 1 web app mình đã làm theo cách trên http://ola.familug.org Tốc độ tương đối chậm nhưng vẫn nhỉnh hơn các free host khác.

[LATEX] Làm slide bằng LATEX với beamer

Dưới đây là slide tớ làm cho môn lập trình mạng. Ai cần làm slide bằng LATEX có thể xem qua cho khỏi bỡ ngỡ :D rất đơn giản (Không phải cài đặt thêm bất cứ cái gì nếu đã làm theo bài Cài đặt latex trên Linux Kết quả thu được cơ bản là giống thế này :D

HOME

http://youtu.be/jqxENMKaeCU HOME là 1 tập phim tài liệu mà bạn PHẢI xem,, để thay đổi mọi hành động của bản thân! (Chọn như hình vẽ để có phụ đề tiếng Việt:

[LATEX] LATEX tiếng Việt trên Linux

các bài viết trước đã giới thiệu việc dùng TextMaker để tạo văn bản LATEX. Nếu bạn không muốn dùng TextMaker, bạn có thể gõ LATEX bằng editor yêu thích của mình và "compile" nó thành file PDF với texlive. cài đặt: sudo apt-get install texlive, texlive-lang-vietnamese

Offline document on Linux

phải viết ngay vì bây giờ không viết thì có thể là không bao giờ viết :v Trên linux, mỗi phần mềm thường đi kèm với 1 bộ document. Đừng nhầm lẫn với file man, vì file man chỉ là 1 bản hướng dẫn vắn tắt. Bạn có thể đọc doc của Python offline ngay tại máy mình sau khi cài gói python-doc vào máy: (tương tự cho các phần mềm khác) sudo apt-get install python-doc Reading package lists... Done Building dependency tree      

[Tips] lại bash

nếu bạn dùng nó hàng ngày tốt nhất là hãy biết nó hiếm người đọc "man bash" mặc dù họ dùng bash nhiều hơn bất cứ câu lệnh khác mà họ đã từng "man" bash không thần thánh, nhưng cũng ko stupid như bạn tưởng :v Sau đây là vài tips tớ hút ra từ "man bash": - về đầu dòng lệnh : ctrl a - xuống đuôi dòng lệnh: ctrl e - xóa màn hình: ctrl l - xóa 1 từ đằng trước con trỏ: ctrl w - xóa đến đầu dòng: ctrl u - xóa đến cuối dòng: ctrl k - chọn câu lệnh trước: ctrl p (previous) - chọn câu lệnh sau: ctrl n (next) - sang trái 1 ký tự: ctrl b (back) - sang phải 1 ký tự: ctrl f  (forward) - đo độ dài của 1 chuỗi : ${#bien_chua_chuoi_muon_do} VD: hvn@lappy: /var/log/apache2 $ s='hvnsweeting' hvn@lappy: /var/log/apache2 $ echo ${#s} 11 hvn@lappy: /var/log/apache2 $ s2='i want to ' hvn@lappy: /var/log/apache2 $ echo ${#s2} 10 (vậy là bạn không bao giờ phải nhấc tay lên để bấm các phím navigator-mũi tên nữa - đúng triết lý của vim :x...

Vài điều thú vị về chuỗi Fibonacci

Bất cứ ai từng học lập trình cũng sẽ 1 lần làm bài toán tính số Fibonacci thứ n. Công việc chẳng có gì khó khăn khi dùng hàm đệ quy hay 1 vòng lặp đơn giản. Vậy nhưng còn nhiều điều dù chẳng phải bí ẩn gì nhưng có thể bạn ... chưa biết :D Với công thức dưới đây bạn có thể Tính số Fibonacci thứ n chỉ với các phép tính cộng, trừ, chia, căn : Trích nguyên từ wiki [1]   (Chuột phải chọn view image để xem ảnh rõ hơn)  Closed-form expression Like every sequence defined by a linear recurrence with constant coefficients , the Fibonacci numbers have a closed-form solution . It has become known as Binet 's formula, even though it was already known by Abraham de Moivre : [18] where

[CCGU] awk - pattern scanning and text processing language

Tiếp tục loạt bài viết CCGU, tớ sẽ giới thiệu 2 công cụ cực mạnh để xử lý text là sed và awk. sed và awk đều là core utility của các hệ điều hành UNIX, Linux. Chúng vừa là tên 1 chương trình, vừa là tên 1 ngôn ngữ lập trình. http://en.wikipedia.org/wiki/AWK http://en.wikipedia.org/wiki/Sed hvn@lappy: ~ $ whatis sed sed (1) - stream editor for filtering and transforming text hvn@lappy: ~ $ whatis awk awk (1) - pattern scanning and text processing language awk có tính năng xử lý dữ liệu theo cột, còn sed thì lại xử lý theo dòng. Bài này sẽ viết về awk và câu lệnh sử dụng awk phổ biến nhất ;) và một khi biết câu lệnh này rồi, đảm bảo bạn sẽ dùng nó rất thường xuyên: hvn@lappy: ~/xzone $ awk -F ':' '{ print $1,$3 }' /etc/passwd root 0 daemon 1 bin 2 sys 3 sync 4 games 5 man 6 Phân tích:

Vài bài học về cuộc sống vừa học được

và có thể liên quan đến lập trình :D Lâu không viết nhản, làm bài cho vui :)) 1. Suy nghĩ dù tốt đẹp đến mấy mà không hành động thì còn hại hơn không nghĩ Hại hơn ở đâu? ít nhất là tốn thời gian đã, có thể stress, đau đầu ... nhiều hơn thì tự bạn biết. 2. Thời điểm tốt nhất để làm điều gì đó (hầu hết) là bây giờ. Để mai, để mai... còn ngày mai thì không bao giờ tới. Trong lập trình, câu này sẽ biến thể thành: There is nothing as permanent as a temporary solution Ngỡ tưởng sự thật này chỉ đúng với mình, ngờ đâu : không chỉ riêng ta 3. Bạn đang đọc quá nhiều, hãy giành thời gian để suy nghĩ, sáng tạo.  Câu này của Einstein , khỏi cãi :))  thích thì cứ cãi :)) 4. Những thứ phổ biến nhất (hầu hết) không phải những thứ tốt nhất/ đẹp nhất.  Ví dụ: PHP / Windows (khỏi tranh cãi, thích thì cứ Google :D ) Những thứ ít phổ biến không phải những thứ xấu / đểu: Ví dụ: Lisp, Haskell, Smalltalk, Linux Bạn nên biết  1 phần rất lớn (thậm chí mang tính ...

Cài đặt và quản lý ruby qua rvm

RVM - Ruby Version Manager. Để cài đặt và quản lý được nhiều version của ruby trên máy tính. Tại sao rvm -> Without RVM, it’s pretty difficult to have more than one version of Ruby on your computer - tutsplus.com 1. Cài đặt $ sudo apt-get install build-essential git-core curl Cho các máy chưa có các gói này $ curl -L https://get.rvm.io | bash -s Để cài rvm, yêu cầu máy đã có sẵn gói curl echo '[[ -s "/home/lamdt/.rvm/scripts/rvm" ]] && source "/home/lamdt/.rvm/scripts/rvm"' >> ~/.bashrc Để thêm dòng [[ -s "/home/lamdt/.rvm/scripts/rvm" ]] && source "/home/lamdt/.rvm/scripts/rvm" vào file ~/.bashrc (làm tay cũng được). Lưu ý: Thay lamdt bằng tên user. $ rvm requirements Để cài các gói rvm yêu cầu cho linux $ rvm list known Để liệt kê các version của ruby có thể cài

[Algo] Sieve of Eratosthenes

1.  Sieve of Eratosthenes Sieve of Eratosthenes là một giải thuật tìm số nguyên tố rất phổ biến ở nước ngoài (ở VN thì tớ không biết). Độ phức tạp: xem ở [1]. Tư tưởng của thuật toán: Giả sử ta kiểm tra các số từ 1-100 xem có những số nào là nguyên tố. Bắt đầu từ 2: ta lần lượt loại các bội của 2 ra khỏi danh sách (không tính 2, như vậy loại ra 4 6 8 10 ... tiếp theo : loại các bội của 3 (6 9 12 ...) ... cho đến hết. Dễ dàng hiểu rằng ta đã loại đi các bội số(hợp số) và sau khi loại hết các số này thì chỉ còn lại các số nguyên tố. Thuật toán cài đặt bằng Python2.7:   https://github.com/hvnsweeting/FAMILUG/blob/master/Python/bulb_state.py 2. Số chính phương.

Generate random data [Part1]

Đôi khi bạn cần phải sinh ra 1 đống dữ liệu random, bài này sẽ viết về 3 câu lệnh sinh dữ liệu "random". Chả biết dùng để làm gì, nhưng ít nhất thì trông cũng rất nguy hiểm :D : 1. Sinh số: hvn@lappy: ~/xzone/tcl $ while true; do date +%N | tr -d "\n" ; done;

Vài "combo" lệnh dễ nhớ :D [sẽ được update]

ls -Fhtl  (F*** HTL) sudo netstat -naptu (naptu nghe như neptune :D ) tar xzf archive.tar.gz (xzf - extract the file) tar czf archive.tar.gz file1 file2 (czf - compress the file) UPDATED: at Sat Dec 15 11:22:05 ICT 2012 hvn@hvnatvcc: ~ $ sudo pstree -paul | less hvn@hvnatvcc: ~ $ ls -lart /var/log/ UPDATED: at Fri Jan 25 15:09:39 ICT 2013 grep -Rin 'tu khoa' . (tìm kiếm 'tu khoa' trong tất cả các file trong thư mục hiện tại, kết quả in ra cả dòng tìm thấy mọi 'tu khoa' không phân biệt hoa thường)

[Annou.] Thêm page TOC

Page cũ Bookmark đã được thay bằng page TOC (Technologies Of Choice), page này list những công nghệ / phần mềm được ưa chuộng tại FAMILUG http://www.familug.org/p/tools.html (bạn có thể thấy ngay cạnh nút home) Đồng thời, tag announcement sẽ được sử dụng để gửi các thông báo về site FAMILUG.ORG thanks for reading!

Một chú ý nhỏ khi cài Ubuntu

Chú ý nhỏ này rút ra từ 1 bài học lớn, đốt mất nửa buổi chiều hôm nay của tớ: Lúc cài Ubuntu, khi thấy hỏi encrypt home directory,  bạn hãy chọn No. Đừng chọn Yes nếu không thực sự biết mình đang làm gì!  Có thể bỏ encrypt đi nếu như bạn đã lỡ chọn nó : http://www.howtogeek.com/116179/how-to-disable-home-folder-encryption-after-installing-ubuntu/ Lí do tớ không thể truy cập được các dữ liệu trong thư mục home của mình vì sau khi đổi pass bằng lệnh passwd, passphrase để encrypt home directory không được tự động đổi theo => đăng nhập vào bằng pass mới thì home directory đã bị encrypt. (Lỗi này có lẽ không xảy ra nếu bạn đổi pass bằng giao diện của Ubuntu) Hết!

[SmartUsing] Private Browse

Chức năng này đã xuất hiện ở Firefox từ khá lâu rồi, hầu hết mọi người đều chỉ dùng để xem XXX =)) Hôm nay mới thực sự sử dụng đúng chức năng của nó. Khi bạn dùng máy tính của người khác, họ login và remember các dịch vụ online. Lúc này việc logout tài khoản của họ ra quả thật không "ổn" cho lắm. Tốt nhất là Tools > private browse để khỏi làm phiền ai :D đóng trình duyệt xong cũng ko để lại gì :> bài này cho vào smartusing thì hơi quá nhưng chả biết bỏ đâu :))

[WeeklyVim] hiện tất cả các dòng chứa từ đang trỏ đến

[I             Display all lines that contain the keyword under the             cursor.  Filenames and line numbers are displayed             for the found lines.  The search starts at the             beginning of the file.  {not in Vi} (dấu [ và chữ i hoa): hiện tất cả các chỗ có chứa từ khóa mà bạn đang trỏ lên Lợi ích của dòng lệnh này? bạn muốn xem 1 biến / 1 function được dùng ở những chỗ nào trong file. Dùng cách này có lẽ là nhanh nhất :D thậm chí nó có thể hiện cả các dòng ở file khác sử dụng từ khóa ấy (t chưa hiểu chi tiết cái này). VD dưới hiện những dòng sử dụng hàm get_abs_path  :

[Viết nhanh] Tại sao họ phải "đào tạo lại" ?

Để cho sang mồm, có thể gọi là "đào tạo thêm" :)) Tại sao? - đưa ra lý do để tự tìm cách khắc phục 1. Đó là quy luật ;) Những thứ bạn vừa học sẽ trở nên lạc hậu sau 18 tháng => bởi thế thứ bạn cần rèn luyện là những kiến thức cơ bản + "khả năng tự học", chứ không phải chăm chăm vào 1 cái j đó nhất thời. 2. Môi trường làm việc khác nhau. Khi bạn làm 1 mình, bạn không thể quan tâm / thành thạo những thứ bạn không bao giờ có nhu cầu dùng, những thứ chỉ thấy, chỉ cần đến ở môi trường doanh nghiệp. Thậm chí những có thể đó là những công việc quá chuyên biệt tập trung vào 1 lĩnh vực mà bạn không đầu tư kỹ. Thế nên chuyện đào tạo lại chả có gì là sai cả, việc học tập và thay đổi cần thực hiện 1 cách thường xuyên. Cố không để mình lạc hậu là được :D

Những điều phải biết về web

Có 3 lý do chính để bạn những phải biết những điều dưới đây tớ nói: 1. chúng rất đơn giản, thế nên đừng để phải hối tiếc vì không biết những thứ đơn giản như thế 2. học thêm 1 điều mới không có gì hại cả 3. nó quá phổ biến Những thứ đó là HTML, CSS, và JavaScript Và tất cả đều có thể học ở http://www.w3schools.com/html/default.asp các bài viết rất đơn giản, có mình họa, dễ hiểu (không thể làm khó những thứ dễ như thế :D ) 1. HTML Ai học qua HTML điều biết, chỉ mất 1-2 tiếng đủ để bạn nắm được những phần cơ bản của HTML. Chỉ gấp đôi số thời gian ấy đủ đến bạn nắm được phần lớn các tag phổ biến của HTML. Dành 1 buổi chiều để học HTML nếu bạn không thực sự biết viết 1 page có title, có ảnh, có link, có nút bấm, có textbox! Nếu có thời gian, hãy học thêm vài tag HTML5 rồi viết bài dạy mọi người ;)

ROT13 Encrypt đơn giản với PHP

ROT13 ( rot ate by 13 places) - Là 1 kiểu mã hóa thay thế (substitution cipher). 26 chữ cái A-Z và 26 chữ cái a-z được chia làm đôi (13), và đặt tương ứng nhau. Các chữ cái của bản rõ (bản chưa mã hóa), sẽ được thay thế lại theo đúng thứ tự tương ứng của bảng chữ cái đã đặt ra. để tạo thành bản đã được mã hóa (bản mờ). Minh họa cho dễ hiểu Bảng chữ cái chia làm đôi thành 2 hàng, mỗi hàng 13 chữ cái. A  B  C  D  E  F  G  H  I   J  K  L  M  |   |    |   |    |   |    |   |   |   |   |   |   | N  O  P  Q  R  S  T  U  V W X  Y  Z

Các lớp học online sắp / đang mở

đầu tiên là lớp mạng, chắc chắn mình join lớp này :D https://class.stanford.edu/networking/Fall2012/preview/ và các lớp ở đây. https://www.coursera.org/ ai tham gia khóa nào thì cm để nếu ai cùng học thì có chỗ trao đổi :D Lớp PYthon https://www.coursera.org/course/interactivepython

[Network] nmap - khảo sát 1 victim :D

tiếp  tục series bài nghịch ngợm modem/router, bài viết này sẽ giúp bạn không phải lần mò trong bóng tối mà là "tấn công" một cách bài bản hơn :D http://www.familug.org/2012/10/hack-hacking-router-planet-cua-vnpt-d.html http://www.familug.org/2012/10/pha-phach-pha-mang-internet-nha-khac.html nmap là một công cụ phổ biến dùng trong hoạt động foot printing - khảo sát mục tiêu (bịa thế, chắc đúng 90% :)) ). Đầu tiên hãy khám phá nmap: (máy chưa có thì cài: sudo apt-get install nmap) hvn@lappy:~$ whatis nmap nmap (1)             - Network exploration tool and security / port scanner hvn@lappy:~$ dpkg -s nmap Package: nmap Status: install ok installed ....

[Phá phách] Phá mạng internet nhà khác

Nối tiếp sys admin Việt Hưng @hungnv và vừa sờ xong em modem nhà mình, nghĩ ngay ra cách phá modem nhà "ai đó". Khổ vậy, làm thì ít mà chỉ nghĩ ra phá =)) Vì sao là ai đó thì xin mời đọc tiếp. Phần 1: Làm sao chui được vào modem nhà mình. - Phần này nhắc lại bài của bạn Hưng hoặc chi tiết hơn cho ai chưa rõ vào sao chui được vào modem để thực hiện lệnh - Truy cập vào modem thông thường qua web tại gateway: 192.168.1.1 pass và user mà các anh lắp mạng đã cho sẵn, hoặc mặc định của modem. Để biết pass, user modem có thể lên Google tìm: <tên modem> default password là kiểu gì cũng có. Hoặc nó được dán ở modem hay trong sách hướng dẫn đi kèm modem :D - Truy cập bằng telnet: Trên linux dùng console Trên windows có thể dùng PuTTY hoặc soft nào có hỗ trợ telnet (vừa test win7 chả có telnet sẵn). Ở đây tớ dùng terminal (Ubuntu 12.04) nhé. + Truy cập vào 192.168.1.1 dùng pass và user như vào bằng web user: megavnn pass: *** nhé lamdt@lamoanh: ~ $ telnet ...

[Network] Khám phá router Planet ADE-3410 của VNPT :D

theo chân hacker  Lâm thồn @lamdt, lần này t cũng lần mò vào sờ soạn em router , khám phá những điều cực kỳ thú vị. (đọc bài http://www.familug.org/2012/10/network-mot-luc-ket-noi-vao-2-modem-d.html   để biết cách cắm cái router này vào)  (Modem này của Planet, mã là ADE-3410) Tất cả những gì tớ biết là sau khi login vào 192.168.1.1, thu được board ID là 96338L-2M-8M thú thật, cái dòng của nợ này chả có ý nghĩa gì với mình, hỏi bác Gồ: cái router này có trang bị 2M flash và 8M ram. Thú vị hơn nữa là tìm được cái link dưới: http://www.cyberciti.biz/tips/hacking-beetel-220x-adsl-router-broadcom-bcm6338.html gõ theo các lệnh trong đó 1 lúc thì phát hiện ra em router này có CPU hàng hiệu Broadcom nổi tiếng :)) và hot hơn cả là nó chạy linux ;)

[Network] Kết nối vào 2 modem cùng lúc :D

Nếu bạn có 1 cái modem (từ giờ gọi là router nhé, vì mình ko quan tâm đến chức năng modem của nó ở đây) không dùng tới, và tất nhiên nếu bạn muốn nghịch ngợm mạng mẽo 1 tí , và bạn đang dùng Linux thì hãy bơi vào đây :)) (Việc thừa router là bình thường nếu bạn đã lắp mạng của > 1 nhà mạng, router lởm khuyến mãi như cho mà :-j ) Cho rằng bạn đang dùng mạng dây (eth0) hay mạng wifi (wlan0). Đăng nhập quyền root: sudo -s Bạn đừng cắm cái router thừa vào vội, vì hầu hết các router đều đặt sẵn địa chỉ là 192.168.1.1 nên sẽ dẫn đến conflict.

JSON - tất cả trong bài này!

Nếu bạn đã từng bị tạch tại cuộc phỏng vấn vào 1 công ty nào đó chỉ vì không biết JSON là gì thì ngay sau khi đọc bài này, bạn sẽ thấy thiếu sót của mình thực sự đáng tiếc thế nào !!! Bởi cái tên JSON trông thì có vẻ nguy hiểm, nghe có vẻ lạ kỳ nhưng thực ra nó cực cực cực đơn giản. Vâng, nếu bạn thấy tớ đã nhấn mạnh như thế nào thì hãy đọc hết bài này và thấy những điều tớ nói: (Trông có vẻ dài - chủ yếu bởi các đoạn tiếng Anh tớ paste vào để mọi người tham khảo, còn với 1 kiến thức trọn gói mà thế này thì vẫn ngắn :D ) Cách đọc: (Việt sub: jây-sờn) JSON ( / ˈ dʒ eɪ s ən / ) What is JSON?     JSON stands for JavaScript Object Notation     JSON is lightweight text-data interchange format     JSON is language independent *     JSON is "self-describing" and easy to understand     JSON is syntax for storing and exchanging text information. Much like XML.     JSON is smaller t...

Lập trình viên ký (Phần 2)

Dưới đây là những khó khăn tớ gặp, những quãng đường đã trải qua, nói ra để mọi người biết  mà đi đường tắt  :D C là một ngôn ngữ có cú pháp đơn giản. Chẳng phải tớ giỏi giang gì mà nói thế, mà chính ông Dennish Ritches cũng chỉ viết cuốn C programming language có ~ 200 trang. Nếu bạn nắm được hết nội dung cuốn sách ấy, bạn đã nắm hết được cú pháp của C. Tất cả chỉ có vậy, còn dùng ra sao thì không ai nói cả. Sai lầm cũng là ở đây, bạn chỉ biết làm mấy cái bài tập ví dụ trong sách, cài đặt thuật tóan cơ sở dữ liệu, sắp xếp tìm kiếm... và sẽ không bao giờ viết được 1 chương trình làm việc thực sự.

Lập trình viên ký (Phần 1)

Phần 1. Kể chuyện cho đến giờ tớ vẫn chưa đủ tự tin khi nhận mình là lập trình viên. Nhưng dù sao cũng vài thắng làm báo, giật tít cho hoành là 1 điều tất yếu. Tớ viết bài này cho vui cũng là chia sẻ kinh nghiệm với mọi người. Ai thấy chỗ nào vô lý  thì cm, đừng ném gạch :"> $%^@# 4h sáng vẫn chưa ngủ đc =.= mất không 3 tiếng nàm giường >.< Mười mấy năm đi học của tớ có thể nói gắn liền với 1 câu "Thằng chột làm vua xứ mù". Tuổi thơ ngọt ngào với contra, jackal, donald duck, mario, tank... hàng trăm băng điện tử đã qua tay tớ. Lên lớp 5, mẹ tớ đã quyết định đầu tư mạo hiểm cho tớ đi học "Tin học bằng A". Những ngày tháng chỉ có Windows, gõ 10 ngón, word và excel. Tớ đã biết gõ bàn phím!

[CMD] xclip - paste, paste, paste

bạn muốn copy nội dung 1 file mà không cần dùng chuột? bạn muốn copy output của 1 dòng lệnh mà không dùng chuột? với Linux-based OS, bạn có khẩu hiệu "vì một thế giới không chuột >:)" hvn@lappy:~/test$ cat /etc/apt/sources.list | xclip -selection clip ngay sau đó, bạn có thể paste vào bất cứ đâu. Nếu câu lệnh không hoạt động, hãy thử với -selection sec hay -selection p  Nếu vẫn không được, xin lỗi... bạn quá đen :)) UPDATE: dùng xclip để copy ssh public key: [hvn@hvnatvcc] ~  xclip -se clip < ~/.ssh/id_rsa.pub 

LATEX- Mẫu

Đẹp trai chính là anh Mẫu thồi còn nội dung thì tùy biến nhé Kết quả là

LATEX-Chèn hình + mục lục

Chào các bạn! Lần này mình sẽ trình bày về làm mục lục và chèn hình. Chú ý hình 'hing.jpg' đặt cùng thư mục với file .tex Và đây là kết quả Có gì sai sót xin góp ý!

Khảo sát chơi 1 em Android :D

Nhân dịp Hải dớ (eminteo) ngắm nghía mấy cái điện thoại gần chục củ, viết bài chơi chơi cho blog đỡ buồn,gọi là dạo qua hàng điện thoại thôi :D  Bài này sẽ tìm hiểu về các thông số CPU và RAM của máy . Lấy em Samsung Nexus S của tớ làm chuột bạch: Đầu tiên Google info của em nó, cái link dưới sẽ đập vào mặt bạn ngay : http://www.gsmarena.com/samsung_google_nexus_s-3620.php (gsmarena là 1 trang review điện thoại rất nổi tiếng trên thế giới) Vào trang này bạn sẽ thấy dòng: Previously known as Samsung i9020

Tắt các thiết bị chuyển mạch để tiết kiệm pin

 Pin là tài sản quý báu, năng lượng luôn cần tiết kiệm. Máy bật lên là phải chạy được thật lâu :)) Khi khởi động linux-based OS của bạn, các thiết bị chuyển mạch sóng radio thường được để mặc định là actived, nên nếu biết tắt chúng đi, bạn có thể tiết kiệm 1 lượng năng lượng đáng kể. Lệnh rfkill sẽ giúp ta làm tất cả những điều cần thiết ấy. (man rfkill ko có :D ) Google Fu được: rfkill is a small tool to query the state of the rfkill switches, buttons and subsystem interfaces. để hình dung rõ hơn, hãy search ảnh về rf switches (từ RF này ai học điện tử chắc mới biết @@)

Nén, giải nén bằng command line trong Linux

UPDATE: list files in an archive UPDATE: extract all archive type Dù dùng command line khá nhiều nhưng chuyển hẳn sang thì vẫn chưa thể làm ngay và luôn được. Sau đây là những câu lệnh giúp nén / giải nén các định dạng zip, tar, tar.gz, tar.bz2, tar.xz bằng dòng lệnh: 1. zip + Nén: zip file.zip file1 file2 file3 Ví dụ: ~/Huffman%zip Huffman.zip * + Nén cả thư mục: zip -r directory.zip directory_name + Giải nén: (phải tạo thư mục bạn sẽ giải nén vào ) unzip -d thu_muc file.zip Ví dụ: ~/Huffman%unzip -d Huffman Huffman.zip + Danh sách: unzip -l file.zip 2. tar + Nén: tar cvf file.tar file1 file2 file3 VD: ~/Linux%tar cvf hehe.tar a.txt b.mp3 + Giải nén: tar xvf file.tar + Danh sách: tar tf file.tar

[Tut] Search bằng thanh addressbar của Firefox

Thời đại google, search là một điều thiết yếu. Làm thế nào để search nhanh? Firefox có ô search ở góc phải, bấm ctrl k (máy tớ là thế) nó sẽ nhảy vào ô search, ctrl (lên hoặc xuống) để chọn engine rồi gõ từ khóa vào. Vậy cũng gọi là tạm nhanh rồi :D Làm thế nào để thêm các lựa chọn search từ trang khác? dùng extension này: https://addons.mozilla.org/en-US/firefox/addon/3682 chuột phải vào ô search của trang đó rồi add new search j đó ... Nhanh hơn được không? Có :D, đó là vì sao tớ viết bài này. Firefox cung cấp tính năng search bằng keyword trực tiếp trên thanh địa chỉ (bấm Alt D hoặc Ctrl L) Hướng dẫn: chuột phải vào ô search của trang bạn muốn. Ví dụ : http://oxforddictionaries.com/definition/english/ chọn add a keyword... một dialog tên là new bookmark hiện ra, bạn gõ vào ô keyword từ khóa cho search ở trang này: ví dụ ở đây tớ dùng từ khóa  ox

Game trên linux

UPDATE: thêm nhiều game online Nói gì thì nói, game miễn phí trên Linux vẫn ít và chất lượng không cao, giải pháp khi  thỉnh thoảng thèm chơi game là: - chơi game giả lập NES, VBA => ngon lành - chơi web game. - chơi mấy game khá tốt trên linux : teeworld, battle of westnorth, 0 AD... Game giả lập thì rất phê :x chơi mấy game điện tử 4 nút trên NES hay chơi pokemon, golden sun trên VBA thì ngồi cả tháng cũng ko chán :D WEB game thì nhiều, chỉ list mấy cái nổi trội ra đây: http://dragonbound.net/   # Gunbound html5 2 Game của EA Command & Conquer: Tiberium Alliances Lord of Ultima http://www.tf2.com/freetoplay/   # Action games, Team Fortress http://www.phoboslab.org/xtype/   # Phi thuyền bắn phi thuyền List tạm ra để thỏa cơn thèm game :D sau có site nào update thêm. Và cũng là 1 bài hiếm hoi về chủ đề game trên FAMILUG :D - mảnh đất mà game b...

[Doc] Các tài liệu để học Linux/Unix

Bạn không cần sách, bởi tài liệu free rất nhiều. Đủ loại tài liệu từ cơ  bản đến chuyên sâu -1. LHN - khá chi tiết và thực tế http://www.linuxhomenetworking.com/ 0. JustLinux - tài liệu kèm ví dụ (là các bài quick tut, ngắn hơn so với LHN) http://www.justlinux.com/nhf/ có những ví dụ thực tế, cho những ai kinh sợ file man :)) 1. TLDP - The Linux Document Project http://tldp.org/

LATEX - bảng

Kết quả là

LATEX - mở đầu

Cài đặt latex. Ở đây mình sẽ dùng trình soạn thảo mình hay dùng TexMaker (có cả trên win và ubuntu). Trước khi cài đặt Texmaker (hay bất cứ 1 trình soạn thảo nào khác) : + Cài đặt Texlive đối với ubuntu +Cài đặt Miktex với window (free hết) cài xong rồi nào thử ngay một văn bản luôn và ngay Sẽ được như thế này

[CLIC] CLI Challenge 1

Định để mai viết, nhưng mà mai dài hơn thuổng :)) Viết luôn! ngồi rảnh rỗi chán nản, tớ nghĩ ra 1 trò mới, mời mọi người cùng tham gia chơi. Một trò chơi liên quan đến việc sử dụng các dòng lệnh cơ bản của linux. Câu hỏi lần này là: Hãy gõ 1 câu lệnh trả về dòng chữ có cấu trúc như sau: username@hostname Ví dụ (cũng là bài làm của tớ): hvn@lappy:~$ echo `id -un`@`uname -n` hvn@lappy Các câu trả lời không được giống nhau. Chơi nào \m/ (mỗi phương án trả lời / 1 comment)

Tùy chính monitors bằng command line

xrandr = The X Resize, R otate and R eflect Extension xrandr - tùy chỉnh các thông số size, resolution, on/off màn hình trên linux Chủ yếu dùng cho các windows manager thôi. xrandr [--output output ] [--auto] [--mode mode ] [--preferred] [--pos x x y ] [--rate rate ] [--reflect reflection ] [--rotate orientation ] [--left-of output ] [--right-of output ] [--above output ] [--below output ] [--same- as output ] [--set property value ] [--off] [--crtc crtc ] [--gamma red : green : blue ] -- List các monitor đang chạy (màn lap, màn cắm qua cổng VGA, máy chiếu) xrandr Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192 LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 303mm x 190mm 1280x800 60.0*+ 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) TV1 disconnected (normal left inverted right x axis y axis) Danh sách đi kèm resolu...

[WeeklyVim] chia Vim thành nhiều cửa sổ con

hai lệnh rất cần thiết khi bạn dùng vim để code thực hiện điều nói trên đó là :sp và :vs :sp dạng ngắn gọn của :split chia màn hình theo chiều ngang thành nhiều phần bằng nhau (nếu đang có 1 thì chia thành 2, nếu có 2 thì chia thành 3 phần bằng nhau... ) :vs dạng ngắn gọn của :vsplit v-vertical : chia cửa sổ vim theo chiều dọc thành nhiều phần bằng nhau... Ctrl w  h/j/k/l   di chuyển đến các cửa sổ phải /xuống/ lên/ trái Ctrl w 10 +   mở rộng cửa sổ hiện tại thêm 10 dòng xuống dưới (ngược lại vơí - ) Ctrl w 10 >    mở rộng cửa sổ hiện tại sang phải 10 cols

Something new: Biến máy cài debian thành WAP

để tránh nhầm lẫn, nên chú ý rằng mọi khi mình dùng laptop "phát" mạng là tạo mạng ad-hoc. Một số thiết bị như Android (chưa root) không thể connect vào được. Còn đây là tut biến một máy tính có card wireless thành 1 WAP ( Wireless Access Point) - máy phát wifi xịn như modem xịn :)) http://www.cyberciti.biz/faq/debian-ubuntu-linux-setting-wireless-access-point/ các tool sử dụng: Host AP: http://hostap.epitest.fi/ madwifi: http://sourceforge.net/projects/madwifi/ Q: tại sao lại post những bài kiểu này? để bạn biết trên đời có những thứ như vậy tồn tại (know thing that you dont know). Bạn không cần thiết phải biết cụ thể chi tiết thế nào. PS: chưa test :D 

pstree - xem máy bạn chạy gì

hvn@squeeze:~$ whatis pstree pstree (1)           - display a tree of processes hvn@squeeze:~$ pstree init─┬─acpid      ├─atd      ├─console-kit-dae───63*[{console-kit-da}]      ├─cron      ├─cupsd      ├─2*[dbus-daemon]      ├─dbus-launch      ├─dhclient      ├─exim4      ├─firefox─┬─plugin-containe───6*[{plugin-contain}]      │         └─29*[{firefox}]      ├─gconfd-2      ├─gdm3─┬─gdm-simple-slav─┬─Xorg      │      │                 ├─gdm-session-wor─┬─i3───ssh-agent      │      │  ...

Cách đơn giản nhất để tránh vào nhầm mp3.zing.vn

là đổi lại file hosts. Mọi người đã quá quen thuộc với việc sửa file hosts để vào FB. Ta có thể sử dụng file host để chặn 1 số trang không muốn, với ai dùng win có thể thấy khi crack IDM cũng thêm link đến trang chủ của nó với địa chỉ ip  127.0.0.1 từ giờ sẽ dùng nhaccuatui.com, giá mà bọn này mua tên miền nct.vn cho nó ngắn ~.~ hvn@squeeze:~$ ping -c 1 nhaccuatui.com PING nhaccuatui.com ( 123.30.134.2 ) 56(84) bytes of data. 64 bytes from mp3.zing.vn (123.30.134.2): icmp_req=1 ttl=128 time=62.3 ms --- nhaccuatui.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 62.359/62.359/62.359/0.000 ms

[WeeklyVim] Thêm các từ dưới con trỏ vào phần command

Refactor là vấn đề rồi bạn sẽ phải làm khi bạn thực sự code. Để search 1 từ dưới con trỏ, ta bấm * hoặc #. Để thêm từ đó khi search, ta để con trỏ lên từ đó, bấm Ctrl R Ctrl W Để thay 1 hàm bằng 1 hàm khác, có lẽ sẽ phải dùng regex :D vdụ: foo_too_talabamaxanakahaha(haha, hohoho) bằng hàm: familug(huhu) ta sẽ để con trỏ lên tên hàm foo... gõ :%s/ bấm Ctrl R Ctr W gõ .*/familug(huhu)/g enter là xong đầy đủ câu lệnh là: :%s/foo_too_talabamaxanakahaha.*/familug(huhu)/g

Viết code - Refactor [Part 1]

Lập trình cực đơn giản, ai cũng có thể lập trình được thậm chí cả "DUMMY" cũng có thể lập trình được trong vòng 21 ngày :)) [1] Vậy nhưng để viết được một đoạn code tốt (theo nhiều tiêu chuẩn khác nhau) thì lại là cả 1 nghệ thuật. Những phương pháp tối ưu giải quyết một vấn đề CỤ THỂ nếu là vấn đề nhiều người gặp phải thì được đút kết thành các " pattern ". Chúng ta thường có thể đưa ngay ra những giải pháp "nóng" để giải quyết vấn đề. Nhưng nó hiều khi không phải giải pháp tối ưu (thậm chí là tối ưu cục bộ :D ) [2] Việc viết lại 1 đoạn code cho đẹp, tiện, tốt, tối ưu hơn gọi là refactor . Và sau đây tớ sẽ lấy ví dụ về 3 đoạn code hôm nay tớ viết. Sẽ không dùng 1 ngôn ngữ riêng biệt nào hết mà tớ sẽ dùng kiểu "giả mã HVN" =)) Vấn đề: - Cần đọc 1 file config để lấy nội dung trong đó. - Viết 1 số hàm lọc những gì cần thiết lấy từ file config nói trên.

Nếu được làm lại...

nếu được làm lại, bạn sẽ chọn học tử tế 3 môn học nào ? Comment lần lượt 3 môn. Câu trả lời của tớ là : 1. Kỹ thuật điện -> để sửa điện 2. Kỹ thuật điện tử -> để biết thêm về phần cứng 3. Đại số -> rõ rồi

Thông báo việc chuyển lại website cũ

Do tình hình giá xăng giá điện tăng đắt đỏ, các admin không đủ tiền để đi ra hạn thêm cho host nên đã quyết định quay lại ăn nhờ ở đậu các anh Google :D chào mừng trở lại cái máng lợn cũ :D mọi bài viết bên site vừa rồi sẽ được post lại vào thời gian tới. PS: tiếp tục chờ cấp sub domain  cho Hà và Chung (đóng gấp đôi số tiền yêu cầu để mua domain) và Đồng (bài viết leo top về latex )

FAMILUG.ORG

http://familug.org/ hàng đã về, anh em dần dần chuyển dịch thôi. \m/ Theo kế hoạch đóng tiền, Hà và Chung mỗi người sẽ có 1 subdomain xxx.familug.org Hai bạn mau chóng đưa địa chỉ mình muốn trỏ tới để admin xử lý. Good noon PS: trong lúc web còn đang ở giai đoạn beta, các bạn tranh thủ hack đi nhé :))

Giới thiệu AJAX

AJAX - Asynchronous JavaScript And XML AJAX có chữ J - JavaScript, nên tất nhiên là nó dùng cho làm Web, những website hiện nay ứng dụng AJAX rất nhiều, trong CV xin việc thuộc lĩnh vực Web coding luôn yêu cầu sử dụng được AJAX. Tại sao thì tại vì cách họat động của nó dưới đây: Thông thường POST và GET là hai phương thức (method) truyền data, tạo ra các request từ người dùng (client side) tới máy chủ web (server side). Chúng họat động qua <form> HTML. Để gửi đi user phải ấn Submit và chờ server phản hồi (respond), trình duyệt sẽ load trang web và trả về kêt quả. AJAX được để ra để giúp chúng ta không phải ấn submit và mất công chờ. Cụ thể hơn, nó cho phép dùng Javascript tạo request kết nối trực tiếp tới server và nhận data từ đó mà không phải tải lại trang. Vậy, nếu phỏng vấn người ta hỏi AJAX là gì thì có thể trả lời là: AJAX là công nghệ (Nó là 1 công nghệ chứ không phải 1 ngôn ngữ lập trình) cho phép user gửi/nhận data từ server mà không cần load lại trang. Câu này hôm đi p...

[MySQL] Chọn 2 "dòng" từ 1 bảng trong 1 câu lệnh

Đây là 1 vấn đề tớ gặp phải lúc làm việc vớ CSDL. Yêu cầu cần lấy ra tên của 2 đội bóng tham gia 1 trận đấu Nghe rất bình thường nhưng khi lấy ví dụ hay làm bài tập hiếm khi ta gặp :D Trong 1 record của bảng matches có chứaa id đội nhà và id đội khách, câu hỏi là giờ làm sao bạn có thể lấy ra tên 2 đội ấy từ bảng teams chỉ trong 1 câu truy vấn? NOTE: kết quả trả về tên 2 đội phải nằm trên 1 dòng Trước giờ tớ quen dùng kiểu Natural Join : FORM matches, teams WHERE teams.id = matches.guessTeamId

Kính mời test Blog mới.

Blog mới đã bước sang giai đoạn close  beta. Tại địa chỉ http://lam.thanhmien.org Đăng nhập: http://lam.thanhmien.org/index.php/mypage/assmin Key: fml-<năm sinh các bạn> Vậy kính mời các thành viên FML test và cho phản hồi. Thực hành An toàn máy tính để check chiếc nữa nhé :x

Tuyển coder cho blog mới

Theo ý kiến của Hưng xồn tớ đang code blog mới cho Familug,. Để: - Cho cây nhà lá vườn. - Dễ tùy biến cho đẹp đẽ ngon ngẻ. Mọi người ngía qua và test nó tại đây http://lam.thanhmien.org/ . Hiện tại vẫn còn 1 số hạng mục nữa tớ cần mọi người đấu thầu: - Import data cũ của Familug trên Blogspot vào database: Thực ra nó là 1 file text, có thể dùng bất kỳ ngôn ngữ lập trình nào để lọc ra nội dung bài viết, ngày đăng, tác giả... rồi import vào database (MySQL). Khuyến cáo: chip corei3 + 2Gb RAM trở lên  để xử lý file này. Môi lần mở máy tớ bị treo luôn @@ - Thiết kế chatbox riêng: Dùng PHP + AJAX + MySQL gì đấy, thực ra là vác cái TUT: http://advancedphptutorial.blogspot.in/2012/04/create-shoutbox-using-php-and-ajax-with.html về edit Ai nhận phần nào tớ sẽ pm nói thêm. Quyền lợi: - Về vật chất thì chả có gì :D - Vận động đầu óc, luyện cho tay to. - Rèn luyện kỹ năng code, làm việc nhóm, xử lý tình huống. - Đóng góp vào xây dựng FML.

Party FAMILUG 01

Xin kính mời tất cả memb FAMILUG chiều mai 4h có mặt ở nhà Chung để liên hoan. Lí do thì rất nhiều :)) 1. Chào mừng domain mới "sắp" về 2. Chào đón Ubuntu 12.04 LTS 3. Chúc mừng chiến thắng của memb FAMILUG tại cuộc thi ANLAB open day 4. Sinh nhật sớm FAMILUG 2 tuổi :D http://www.familug.com/2010_05_01_archive.html .... và còn nhiều lí do khác. Mong các bạn có mặt đủ, không có cũng ko sao =)) xin kính chào :))

Game , C++ và Java

Cho những ai chưa biết: phần lớn game trên PC, console (máy PS, 360...) đều viết bằng C++ Sao không phải là Java? Ai đó có thể đưa ra câu trả lời là vì Java chậm nhưng điều này chỉ còn đúng với những năm 90! Vậy lí do là vì đâu? (Bài viết cho vui, sai thì sửa :)) ) - 1 yếu tố cực quan trọng khi làm game đó là game engine, game engine 3D khủng nhất hiện nay có lẽ là Unreal , và nó hỗ trợ chính cho C++. Hầu hết mọi người đều dùng engine có sẵn chứ viết lại 1 cái từ đầu thì đúng là "cực hình" :D Java có http://jmonkeyengine.com/ nhưng nó không thể đú được với Unreal - Tính năng garbage collect của Java có thể khiến game bị chậm hoặc pause - Các máy console không cài JVM Vậy tôi viết game trên Java được không? - có chứ, và cũng rất nên :D 2 ví dụ điển hình là : Runescape và  Minecraft , 2 trò cực nổi tiếng ở nước ngoài. Java có cộng đồng người dùng đông đảo nhất thế giới, có tính portable (có thể chuyển nền tảng dễ dàng) tuyệt vời. Ai muốn làm game, C++ chính ...

Mời tài trợ tiền mua domain mới :))

Tình hình là cái familug.com cũng sắp hết hạn rồi, các admin quyết định sẽ mua tên miền mới familug.org về chạy song song và sau là thay thế luôn familug.com. Tớ thông báo lên đấy xin xỏ mỗi thành viên tối thiểu 10k để lấy tiền đi mua domain mới :D Thông báo này thay cho giấy mời, ai đóng >= 20k(20k chẳng hạn ;))) sẽ tặng subdomain >:) Loa loa loa loa :X Mọi người đóng tiền cho HVN vào ngày thứ 2 nhé :D

Chơi bời Matrix :))

sudo apt-get install cmatrix cmatrix -b

Something new...

Very very fun :))  cũng là 1 câu hỏi khó của  tuyển dụng lập trình viên C http://stackoverflow.com/questions/10087113/how-many-levels-of-pointers-can-we-have http://c2.com/cgi/wiki?ThreeStarProgrammer

OOP languages

Nếu bạn đi hỏi phần lớn những người lập trình hướng đối tượng ngôn ngữ nào tốt nhất để học OOP hoặc đơn giản hơn là "google cụm từ pure oop language" , câu trả lời nhận được sẽ không bao giờ  là C++! "I invented the term ' Object-Oriented ', and I can tell you I did not have C++ in mind."     — Alan Kay Nhưng với cái giáo trình cũ rích mà trường mình vẫn dạy, bạn vẫn học C++ ;) Một sự thay thế tốt hơn: http://en.wikipedia.org/wiki/Objective-C Ngôn ngữ này nếu bạn chưa nghe đến bao giờ và nghĩ nó "vô giá trị" thì hãy nhớ rằng Objective-C là ngôn ngữ được dùng để viết phần mềm IPhone :D Objectivi C = C + OOP (Lấy ý tưởng từ 1 ngôn ngữ "cực OOP" - smalltalk) Smalltalk nghe tên có vẻ thuộc loại siêu hiếm có :)) nhưng nó chính là ngôn ngữ thuần OOP nhất. Chả biết là để làm gì ngoài học :p Smalltalk được thiết kế nhằm bảo vệ tối đa các đặc điểm ngắn gọn và trong sáng của nó và không hướng đến tính khả dụng (usability) hay tính ...

Chú ý BTL ĐHMT

Yêu cầu là chỉ làm 1 bài để qua, nên ai muốn chỉ làm 1 bài thì nên làm bài vẽ đa giác rồi biến đổi tỷ lệ là nhanh gọn nhất! Có 1 điều tớ chưa rõ là CÓ PHẢI VIẾT CODE VẼ ĐƯỜNG THẲNG KHÔNG? nhờ Hà email hỏi thầy rồi báo cho cả lớp luôn. Nhớ viết khéo khéo theo kiểu : bài nhiều, thầy cho dùng hàm vẽ đth có sẵn cho nhanh. Vì thật ra tất cả các bài đều từ cỡ xử lý đa giác chứ ko bài nào vẽ đường thẳng cả.

Somethings new

Dùng parameterized queries hoặc stored procs thay vì blacklist để phòng chống sql injection - thầy đã dạy :)) http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/please-don-t-use-blacklists CSS3 framework http://zoomzum.com/css3-tools-presentation-frameworks-and-cheat-sheets/ nếu bạn hỏi sao lắm JS với CSS3 thế thì câu trả lời là rất nhiều người ở đây đang đã sẽ làm web và 2 thứ này là siêu cần thiết để viết 1 web ngon lành, bán được :D

mkdir và những nghệ thuật quanh nó!

Công việc tạo 1 thư mục là việc ai dùng máy tính cũng đều phải làm. Việc đơn giản này đôi khi nếu không giải quyết 1 cách nghệ thuật lại khiến bạn vô cùng vất vả ;) xem nhé! Nếu phải tạo 100 folder có kiểu như : team001, team002 ... bạn sẽ làm gì? Tớ đã thấy người ta mở file explorer lên, tạo 1 folder, sửa tên 1 cái thành team001 rồi copy nó ra 10 hay 100 lần và hì hục sửa từng cái tên? :)) bắt đầu cảm thấy đau khổ rồi chứ? Trên bash có thể dùng lệnh sau để tạo 100 folder với tên như vậy: famihug@hvn:~/TestRoom/LearnMkdir$ mkdir team{001..100} Còn team1 , team2 ... team100? famihug@hvn:~/TestRoom/LearnMkdir$ mkdir team{1..100} Còn teamA, teamB..., teamZ famihug@hvn:~/TestRoom/LearnMkdir$ mkdir team{A..Z} Thế teamHVN, teamCICI, teamNVH...?

Something new...

6 Thư viện JS làm web long lanh hơn :x http://favbulous.com/post/924/6-creative-javascript-plugins-to-make-cool-website Nice IDE & editor http://www.designtickle.com/2012/04/dribbble-shots-source-code-ide-editors/

[CCGU] cd,pwd - di chuyển loanh quanh

vì một thế giới không bao giờ đứng yên ;) Title phụ 2: cd, pwd - biết mình ở đứng đâu trong cuộc đời này ^^ Bắt đầu 1 quá trình tìm hiểu câu lệnh, con chuột bạch đầu tiên là lệnh cd 1. cd - C hange D irectory famihug@hvn:~$ whatis cd cd: nothing appropriate. famihug@hvn:~$ man cd No manual entry for cd famihug@hvn:~$ which cd famihug@hvn:~$ whereis cd cd: đúng như các cụ chém, vạn sự khởi đầu nan :D sử dụng "các câu lệnh tìm hiểu câu lệnh" mà kết quả toàn trả về không thấy không có. Tạm dừng nói về cd , hãy trả lời câu hỏi : tại sao các câu lệnh trả về kết quả như thế?

[CCGU] Các câu lệnh để tìm hiểu câu lệnh

29-04-2012:update : apropos Để dừng bạn thôi hỏi những câu như: ls , cd là cái gì, nó viết tắt của từ gì không thì bố ai mà nhớ được, nó đặt ở đâu... (bạn có 1 lợi thế cực lớn nếu biết Tiếng Anh, bởi các tên các chương trình thường là viết tắt của một hay vài từ tiếng anh nào đó)  Hãy hỏi những gì muốn biết với cái terminal của bạn : 0. apropos - tìm kiếm công cụ famihug@hvn:/home/famihug% whatis apropos                                     apropos (1)          - search the manual page names and descriptions Bạn cần thực hiện một công việc nào đó, có thể hệ điều hành bạn đang dùng có thể giúp nhưng bạn không biết tool mình cần tên là gì - apropos sẽ làm việc đó. apropos tìm kiếm trong các trang hướng dẫn hay đoạn mô tả phần mềm từ khóa bạn yêu cầu....

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