4h sáng,
tự dưng thèm 1 bát mì tôm trứng, cực kỳ!
Nhưng nhà không tàng trữ thứ đồ ăn độc hại ấy. Đành ôm bụng đói và sáng dậy quyết định sẽ làm 1 bát phở bò :v
Theo ngài Sherlock Holmes, người ta thông minh nhất khi bụng đói, cũng là lúc mà người ta hay nói nhảm nhất :3 (thật ra câu này đọc trong Conan, thằng Conan bảo Sherlock Holmes nói thế mà mình google mãi không ra)
Từ khóa:
- information: thông tin
- skill: kỹ năng
- knowledge: kiến thức
Làm cách nào để biến 1 đống information thành 1 skill?
Để trở thành 1 skill, cần - hoặc phải hiểu nó - hoặc phải quen tay với nó. Nếu chỉ hiểu thôi, rồi người ta sẽ quên nó (theo thời gian và không gian), và cuối cùng thì vẫn phải quen tay thì mới biến nó thành skill được.
New FAMILUG
The PyMiers
Wednesday, 26 March 2014
Monday, 17 March 2014
[VM] Từ VirtualBox đến docker
by
H
Bài này không trình bày dài dòng về các công nghệ ảo hóa.
Bài này là một dạng nhật ký về hành trình sử dụng những công nghệ ảo hóa trên chính chiếc laptop của mình.
Cuộc hành trình bắt đầu
ngày xửa ngày xưa...
khi mà thế giới loài người văn minh mới chỉ có Windows, một ngày nọ, chàng trai xứ sở hoa ban quyết mang Linux lạc hậu đến thế giới hiện đại này. Có lẽ là trước đó, nhưng bộ nhớ giới hạn chỉ có thể nhớ đến đây.VirtualBox là phần mềm ảo hóa đầu tiên mình sử dụng để chạy Ubuntu.
1. VirtualBox
Cũng không nhớ nổi lý do vì sao mình chỉ dùng VirtualBox mà chưa 1 lần cài VMWare vào máy. Trải nghiệm với VirtualBox khá dễ chịu, bởi ngày ấy mình vẫn còn là 1 cute user của Windows. Và quá trình tập tành cài đặt Ubuntu cũng được thực hiện ở đây.
VirtualBox là một giải pháp ảo hóa hóa phần cứng. VirtualBox chạy cả trên Windows, Linux và Mac. Nhờ VirtualBox, người dùng có thể chạy các hệ điều hành khác ngay trên hệ điều hành mình đang dùng. Đặt 1 chân sang thế giới khác!
Nhưng hãy tin, thay đổi là việc khó khăn, phải nhấn mạnh hơn là cực kỳ khó.
Bởi thế cho nên, trên kinh nghiệm bản thân, mình chẳng bao giờ tin rằng 1 đứa dùng chỉ Ubuntu trên 1 cái máy ảo sẽ dùng Ubuntu trên 1 cái máy thật. Trừ 1 vài trường hợp bất bình thường, và nó sẽ cài Ubuntu lên máy thật. Tất nhiên, dual boot.
Bài này là một dạng nhật ký về hành trình sử dụng những công nghệ ảo hóa trên chính chiếc laptop của mình.
Cuộc hành trình bắt đầu
ngày xửa ngày xưa...
khi mà thế giới loài người văn minh mới chỉ có Windows, một ngày nọ, chàng trai xứ sở hoa ban quyết mang Linux lạc hậu đến thế giới hiện đại này. Có lẽ là trước đó, nhưng bộ nhớ giới hạn chỉ có thể nhớ đến đây.VirtualBox là phần mềm ảo hóa đầu tiên mình sử dụng để chạy Ubuntu.
1. VirtualBox
Cũng không nhớ nổi lý do vì sao mình chỉ dùng VirtualBox mà chưa 1 lần cài VMWare vào máy. Trải nghiệm với VirtualBox khá dễ chịu, bởi ngày ấy mình vẫn còn là 1 cute user của Windows. Và quá trình tập tành cài đặt Ubuntu cũng được thực hiện ở đây.
VirtualBox là một giải pháp ảo hóa hóa phần cứng. VirtualBox chạy cả trên Windows, Linux và Mac. Nhờ VirtualBox, người dùng có thể chạy các hệ điều hành khác ngay trên hệ điều hành mình đang dùng. Đặt 1 chân sang thế giới khác!
Nhưng hãy tin, thay đổi là việc khó khăn, phải nhấn mạnh hơn là cực kỳ khó.
Bởi thế cho nên, trên kinh nghiệm bản thân, mình chẳng bao giờ tin rằng 1 đứa dùng chỉ Ubuntu trên 1 cái máy ảo sẽ dùng Ubuntu trên 1 cái máy thật. Trừ 1 vài trường hợp bất bình thường, và nó sẽ cài Ubuntu lên máy thật. Tất nhiên, dual boot.
Sunday, 16 March 2014
[bash] Script tạo user trên Linux OS-based
by
H
Script này cần 2 arguments, 1 là username, 2 là password (loại password đơn giản, không hỗ trợ các password cần escape ký tự đặc biệt) và chạy với quyền root.
https://github.com/hvnsweeting/tinyscripts/blob/master/chuser.sh
Tested on
https://github.com/hvnsweeting/tinyscripts/blob/master/chuser.sh
Tested on
$ bash --version | grep bash ; uname -r
GNU bash, version 4.2.45(2)-release (x86_64-unknown-linux-gnu)
3.13.5-1-ARCH
Sunday, 9 March 2014
Một số lệnh liên quan đến card sound trên Linux
by
H
Cơ bản là tự dưng 1 hôm loa không hát nữa, sửa mãi nó không khỏi.
Nay đã sửa xong, viết hồi ký. Mỗi lần sửa chữa này mất rất nhiều thời gian và học được không ít điều mới.
Bài viết thực hiện trên:
ALSA (Advanced Linux Sound Architecture) là một thành phần của Linux Kernel cung cấp driver cho các card sound.
PulseAudio là một "sound server". Máy tớ không dùng pulseaudio. (máy cài Ubuntu 12.04 mặc định là có dùng PulseAudio)
0. alsamixer
Dùng câu lệnh alsamixer để mở bảng "mixer" và chỉnh âm (các loại volume).
1. aplay
Nay đã sửa xong, viết hồi ký. Mỗi lần sửa chữa này mất rất nhiều thời gian và học được không ít điều mới.
Bài viết thực hiện trên:
# uname -r
3.13.5-1-ARCH
ALSA (Advanced Linux Sound Architecture) là một thành phần của Linux Kernel cung cấp driver cho các card sound.
PulseAudio là một "sound server". Máy tớ không dùng pulseaudio. (máy cài Ubuntu 12.04 mặc định là có dùng PulseAudio)
0. alsamixer
Dùng câu lệnh alsamixer để mở bảng "mixer" và chỉnh âm (các loại volume).
1. aplay
$ whatis aplay
aplay (1) - command-line sound recorder and player for ALSA soundcard driver
$ aplay -l# List all soundcards and digital audio devices
**** List of PLAYBACK Hardware Devices ****
card 0: MID [HDA Intel MID], device 0: ALC269VB Analog [ALC269VB Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: MID [HDA Intel MID], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
Tuesday, 4 March 2014
[bash] Brace expansion
by
H
$ for i in {1..11}; do echo hostxxx-$i; done
hostxxx-1
hostxxx-2
hostxxx-3
hostxxx-4
hostxxx-5
hostxxx-6
hostxxx-7
hostxxx-8
hostxxx-9
hostxxx-10
hostxxx-11
$ for i in {01..11}; do echo hostxxx-$i; done
hostxxx-01
hostxxx-02
hostxxx-03
hostxxx-04
hostxxx-05
hostxxx-06
hostxxx-07
hostxxx-08
hostxxx-09
hostxxx-10
hostxxx-11
Monday, 3 March 2014
awk và cut
by
H
Các tiện ích UNIX (UNIX utilities) thường nhận đầu vào là text, và output ra cũng là text. Để các chương trình nối lại được với nhau, tức dùng output của chương trình này làm imput cho chương trình kia, người ta sử dụng pipeline (" | ").
Cũng vì điều nói trên, mà việc bóc tách dữ liệu từ output của 1 chương trình là cần thiết, bởi 1 chương trình có thể sinh ra nhiều dòng text, trong khi bạn chỉ cần 1 dữ liệu nào đó trong đống text đấy. Bạn có thể copy bằng tay, nhưng bạn sẽ không muốn làm như thế nếu phải làm 1000 lần, okay?
2 trong số nhiều công cụ phục vụ mục đích trên là "cut" và "awk", mục đích chính (được dùng nhiều nhất) là dùng để cắt theo cột. Các ví dụ sau sẽ minh họa tính năng của cut và awk
Và awk
Từ các output nói trên, hãy nhớ rằng cut và awk đều coi vị trí số 1 là vị trí trước "separator" đầu tiên (separator được chỉ định bởi -d với cut và -F với awk)
Cũng vì điều nói trên, mà việc bóc tách dữ liệu từ output của 1 chương trình là cần thiết, bởi 1 chương trình có thể sinh ra nhiều dòng text, trong khi bạn chỉ cần 1 dữ liệu nào đó trong đống text đấy. Bạn có thể copy bằng tay, nhưng bạn sẽ không muốn làm như thế nếu phải làm 1000 lần, okay?
2 trong số nhiều công cụ phục vụ mục đích trên là "cut" và "awk", mục đích chính (được dùng nhiều nhất) là dùng để cắt theo cột. Các ví dụ sau sẽ minh họa tính năng của cut và awk
$ echo "one/two/three" | cut -d'/' -f1
one
$ echo "one/two/three" | cut -d'/' -f2
two
$ echo "one/two/three" | cut -d'/' -f3
three
$ echo "one/two/three" | cut -d'/' -f2-
two/three
$ echo "one:two:three" | cut -d':' -f2-
two:three
$echo "/one/two/three" | cut -d'/' -f2
one
Và awk
hvn@lappy: ~ () $ echo "one:two:three" | awk -F':' '{print $1}'
one
hvn@lappy: ~ () $ echo "one:two:three" | awk -F':' '{print $1}'
one
hvn@lappy: ~ () $ echo "one:two:three" | awk -F':' '{print $2}'
two
hvn@lappy: ~ () $ echo "one:two:three" | awk -F':' '{print $1 $2}'
onetwo
Từ các output nói trên, hãy nhớ rằng cut và awk đều coi vị trí số 1 là vị trí trước "separator" đầu tiên (separator được chỉ định bởi -d với cut và -F với awk)
Sunday, 2 March 2014
Lấy External IP
by
H
Để lấy public IP của máy mình hiện tại, dùng lệnh:
$ dig +short myip.opendns.com @resolver1.opendns.com
113.190.182.179
Ngoài ra còn vài cách khác, có thể kể đến
$ curl icanhazip.com
113.190.182.179
source: https://coderwall.com/p/lyrjsq?utm_campaign=weekly_digest&utm_content=Privately+receive+personally+curated&utm_medium=email
Hết!
Saturday, 1 March 2014
List các địa chỉ mà máy mình đang connect tới
by
H
Nhân dịp rỗi việc, tự dưng thấy mạng chậm nghĩ máy mình bị hack, đành phải kiểm tra.
Dưới đây là 1 đoạn command trông khá tởm, sẽ sớm chuyển thành 1 script để mọi người tiện dùng.
Tác dụng là lấy top những địa chỉ domain mà máy mình đang connect tới.
sử dụng câu lệnh ss -a để liệt kê các kết nối máy mình đang thực hiện
1. dẫn đầu là 1 địa chỉ dùng cloud amazonaws, vào địa chỉ ấy thì đó là trang của dropbox (máy mình đang chạy dropbox)
Dưới đây là 1 đoạn command trông khá tởm, sẽ sớm chuyển thành 1 script để mọi người tiện dùng.
Tác dụng là lấy top những địa chỉ domain mà máy mình đang connect tới.
sử dụng câu lệnh ss -a để liệt kê các kết nối máy mình đang thực hiện
$ for i in `ss -a | grep -v 'Peer' | grep -v '*' | tr -s ' ' | cut -d' ' -f5- | sort | uniq -c| sort -nr| head | tr -s ' ' | cut -d' ' -f3 | cut -d ':' -f1 `; do echo "$i: $(dig -x $i +short)"; doneMình viết khá là thô thiển nên mời mọi người tung ra các phiên bản ngắn hơn của các câu lệnh trên :D
54.221.234.83: ec2-54-221-234-83.compute-1.amazonaws.com.
23.62.109.199: a23-62-109-199.deploy.static.akamaitechnologies.com.
31.13.68.33: edge-star-shv-03-hkg1.facebook.com.
198.252.206.25: stackoverflow.com.
173.252.102.241: channelproxy-shv-06-ash2.facebook.com.
108.160.163.108: snt-re4-8d.sjc.dropbox.com.
1. dẫn đầu là 1 địa chỉ dùng cloud amazonaws, vào địa chỉ ấy thì đó là trang của dropbox (máy mình đang chạy dropbox)
Subscribe to:
Posts (Atom)