Monday, 31 December 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.

Friday, 28 December 2012

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

Thursday, 27 December 2012

[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)

Wednesday, 26 December 2012

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à:

Tuesday, 25 December 2012

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.

Sunday, 23 December 2012

[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 @@. 

Saturday, 22 December 2012

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.2/howto/cgi.html

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)


Sunday, 16 December 2012

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

Thursday, 13 December 2012

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

Wednesday, 12 December 2012

[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
  1. Prominent features in Linux 3.7
    1. ARM multi-platform support
    2. ARM 64 bit support
    3. Cryptographically signed kernel modules
    4. Btrfs updates
    5. perf trace, an alternative to strace
    6. TCP Fast Open (Server Side)
    7. Experimental SMB 2 protocol support
    8. NFS v4.1 support no longer experimental
    9. Virtual extensible LAN tunneling protocol
    10. 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-viet-app-tai-viet-nam-thu-lieu-co-du-bu-chi-20121129083815502.chn

Thông tin về một số họ / gia đình font chữ 
(font thuộc họ serif khác sans-serif và khác monospace ở đâu)
http://www.w3schools.com/css/css_font.asp

UPDATE:
Hãy chia sẻ cho mọi người (comment) những link bạn thấy thú vị vào đây :x
Tobe continues...

Monday, 10 December 2012

[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

Monday, 3 December 2012

[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: