Skip to main content

Posts

Showing posts from June, 2014

Project Euler went offline

NOTICE On Sunday 15 June 2014 it was discovered that Project Euler had been hacked and a decision was made to take the website offline. Project Euler has existed since 2001 and after thirteen years of it being carefully nurtured to become what it has become today we hope you understand that this decision was not made lightly. No one feels this sadness more than the team. As the strength and priority of Project Euler is the rich and challenging problem set it provides then we are pleased to be able to allow the problems to remain accessible. However, please note that full functionality of the website, including the ability to check answers, register, and login to existing accounts, remains disabled. Over time certain features may be reinstated, but currently there is no definite time frame which can be stated. In addition no new problems are likely to appear until the website is back up and running again.

Sức khỏe... chuyện muôn thuở

PS1: cám ơn bạn   +Nguyen Ha đã góp phần giữ gìn sự giàu đẹp của Tiếng Việt. PS2: vẫn sai và sửa lại :v  Là vốn quý gía nhất của mỗi con người, đầu xuân năm mới, người ta vẫn chúc nhau sức khoẻ đầu tiên. Là điều mà không ai muốn nhắc tới, rồi cũng một ngày phải nhắc tới. Là thứ mà ai cũng muốn có nhưng ít ai muốn luyện tập, nó chả khác gì sinh viên lười học mà vẫn muốn điểm cao. Và là cái giá đắt phải trả cho những ai đam mê, một thứ gì. Những người chơi violin nhiều (nhiều ở đây là rất nhiều, là có thể tới 10.000 tiếng) - có thể gây hỏng tai, không lạ, bởi âm thanh phát ra từ violin rất lớn. Những người thành tài, sẽ luôn phải mang theo tật. Khi các trường đại học ngày càng mọc lên như nấm, và trường quái nào cũng có khoa công nghệ thông tin. Thế nhưng có lẽ, chả có trường nào dạy sinh viên môn sức khoẻ trước khi dạy IT cả (đấy là tôi đoán thế, vì tôi học trường đại học công nghệ hàng đầu Việt Nam và họ chả dạy gì :3). Những chuyên gia tôi quen, những người đã tr...

[bash] are you REALLY a bash user?

Nếu ngày nào cái màn hình trước mặt bạn cũng là cái terminal, hẳn  69% bạn là một người biết dùng terminal. Và nếu bạn dùng Ubuntu hay 96% các hệ điều hành Linux-based, thì bạn đang dùng bash trong cái terminal đó. Gõ thử xem mình có phải đang dùng bash không: $ echo $BASH_VERSION 4.3.18(1)-release Nếu câu trả lời là có (như trên ^) thì đúng là bạn đang dùng bash rồi. Vậy dùng bash thế nào cho nó đúng điệu :3 Hãy tận dụng những tính năng của nó. 1. for; while Bash giúp giải quyết các công việc lặp đi lặp lại bằng một vòng lặp, muốn ping 10 ip từ 192.168.1.2 -> 192.168.1.11? đơn giản: $ for i in {2..11}; do ping -w1 -c1 192.168.1.$i; done

[cmd] find - tìm thấy mà không xoá được, why?

Đọc giả cuteanlame có một directory chứa các file sau: # find /tmp/findtest -name '*-*' -or -name '*_*' /tmp/findtest/meomeo_1 /tmp/findtest/meomeo_2 /tmp/findtest/gaugau-3 /tmp/findtest/meomeo_3 /tmp/findtest/gaugau-2 /tmp/findtest/gaugau-1 Bạn ấy muốn xoá các file có dấu "-" và dấu "_" trong tên, nên bạn làm thế này: # find /tmp/findtest -name '*-*' -or -name '*_*' -delete Nếu nhìn vào câu lệnh trên bạn đọc chính xác được lệnh find sẽ làm gì thì bạn không cần đọc tiếp bài này nữa. Và cũng xin chúc mừng vì bạn còn có thể dùng lệnh ``find`` tốt hơn rất nhiều người, thậm chí cả những superuser với kinh nghiệm dùng Linux 20 năm.

trello.com

Trong quá trình đi tìm các web app để quản lý thời gian, tớ đã sử dụng qua khá nhiều phần mềm quản lý project với mong muốn có 1 tool để quản lý các "project" cá nhân. Sau youtrack, redmine, asana, agile zen, github/bitbucket issues, planbox ... thì tớ dừng chuyến phiêu lưu ấy lại tại sân bay "trello.com". trello có một giao diện đơn giản, với các board (kanban) và trong board chia làm nhiều cột  Giao diện thân thiện, cách dùng đơn giản, quảng cáo vậy thôi, dùng hay không thì tuỳ :3 https://trello.com /

Bỏ Facebook đi và N trang web...

Nếu ban đã đọc được dòng chữ đó đâu.đây vài ngày.qua, hẳn bạn sẽ nghĩ bài viết nói đúng ... nhưng chẳng có gì thay đổi. Trong list N website ấy, có quora, có stackoverflow... Và 5 phút trước tôi đã gỡ tất cả đống phần mềm ấy khỏi điện thoại. Thứ quý giá nhất bạn có đó là thời gian. Và khi bạn đánh đổi nó lấy bất cứ điều gì thì 69% là bạn đang lỗ. Đọc quora nhiều 96% là tốt hơn chơi FB, nhưng thứ gì đốt quá nhiều thời gian của bạn trong khi bạn ...

[Review] Learn python the hard way

Một câu nói rất hay mà tớ lượm được trong " Learn python the hard way": Programming as a profession is only moderately interesting. It can be a good job, but if you want to make about the same money and be happier you could actually just go run a fast food joint. You are much better off using code as your secret weapon in another profession.                                                                                             -- Red Shaw -- Chuyện bên lề. Cuộc sống đầy dãy những thay đổi và điểm ngoặt! Và một trong những đ...

[CLI] less - view file trên terminal

root@hvn-do-workspace:~# whatis less less (1)             - opposite of more root@hvn-do-workspace:~# whatis more more (1)             - file perusal filter for crt viewing Các UNIX developer khá là vui tính trong chuyện trả lời "whatis". Một câu trả lời cũng vui tính không kém khi hỏi : # whatis git git (1)              - the stupid content tracker Khái niệm Cơ bản thì less là 1 chương trình để view file text trên terminal. ``less`` chỉ để view chứ không edit file, các UNIX-like OSes đều cài sẵn ``vi`` và ``less``. So với ``vi``, khi xem các file lớn, ``less`` không cần phải đọc toàn bộ input file trước khi start (``vi`` sẽ đọc toàn bộ và nhét vào RAM) vì vậy less sẽ start nhanh hơn. ``less`` là một phiên bản cải tiến của ``more``, đây là một kiểu chơi chữ trong tiếng Anh: less is mor...

tcpdump - lưu giữ mọi khoảnh khắc của network

thanhnguyen@thanhnguyen:~$ whatis tcpdump tcpdump (8)          - dump traffic on a network Có thể nói, tcpdump là một trong những lệnh hữu dụng nhất trong quản trị mạng. Tại sao? Có những lúc bạn thắc mắc về các vấn đề kết nối mạng, hoặc thỉnh thoảng không biết tại sao một server không RESPONSE một ping request của bạn... Trong những trường hợp như thế, tcpdump là một tool vô cùng hữu ích đối với bạn, nó có khả năng capturing packets khá mạnh mẽ. Nó hoạt động trên network layer và có thể capture tất cả các packets ra vào máy tính. Ngoài ra, có thể sử dụng tcpdump để capture và save các packets tới một file nào đó và phân tích sau. Sau đây, là một số option phổ biến khi sử dụng tcpdump command. -i option Được sử dụng để xác định interface. tcpdump capture các packets gửi tới và truyền đi qua một interface cụ thể. => Chọn Interface để tcpdump capture các packet

find - tìm hoài mà không thấy

người hãy nói vì sao em không tìm được nó là tại làm sao: root@elasticsearch-1:~# ls -l /var/run/crond.pid ; find /var/run -name 'cron*' | wc -l -rw-r--r-- 1 root root 6 Jun 11 12:08 /var/run/crond.pid 0 Câu lệnh trên: khi dùng lệnh ls cho thấy file  /var/run/crond.pid có tồn tại, nhưng khi dùng lệnh find thì tìm không ra. Hacker  +Lam Tung   đã tìm ra một giải pháp (thêm dấu / ở cuối path): root@elasticsearch-1:~# find /var/run/ -name 'crond*' /var/run/crond.reboot /var/run/crond.pid Bài viết thực hiện trên: $ lsb_release -a; find --version | grep find No LSB modules are available. Distributor ID: Ubuntu Description:    Ubuntu 12.04.4 LTS Release:        12.04 Codename:       precise find (GNU findutils) 4.4.2 Vậy tại sao find lại không tìm được, sau một hồi điều tra, thám tử cô nan đã tìm ra:

[Haskell] Haskeller, not hacker

Haskell / ˈ h æ s k əl / haskeller là từ chỉ những người dùng ngôn ngữ Haskell hacker /ˈhakə/ Cho thêm từ hacker và để mọi người nhớ cách đọc của haskell Haskell là gì? Định nghĩa copy nguyên văn từ homepage haskell.org Haskell is a computer programming language. In particular, it is a polymorphically statically typed , lazy , purely functional language, quite different from most other programming languages. The language is named for Haskell Brooks Curry , whose work in mathematical logic serves as a foundation for functional languages. Haskell is based on the lambda calculus , hence the lambda we use as a logo. Như những gì họ chọn, 4 đặc tính nổi bật của Haskell gồm: Polymorphically Statically typed Lazy Purely functional

Chơi với docker, fail lần 1

Như phần tiếp theo của bài viết này http://www.familug.org/2014/03/vm-tu-virtualbox-en-docker.html hôm nay mình xin kể về chuyện chơi cùng Docker, và tại sao lại thất bại, tại sao lại tạm thời chia tay chỉ ngay sau nụ hôn đầu. Tin đồn rằng vài ngày trước, một tổ chức nguy hiểm có tên xưa cũ là dotCloud đã chính thức thả  ra (release) một yêu nữ tên là Docker - một cái tên nghe là nghĩ đến sắt thép và không được mỹ miều cho lắm ( http://blog.docker.com/2014/06/its-here-docker-1-0/ ). Và không gì hơn nếu thiên thời, địa lợi, nhân hoà, chính lúc ấy mình cần cài một cái máy ảo để testing vài thứ. KVM không có trên OS X, Virtualbox gần như là lựa chọn duy nhất dẫu không mấy mặn mà. Vậy là Docker được mang ra nghịch. Cài đặt: Không có gì đặc biệt hay khó khăn, cứ theo tut mà cài  https://docs.docker.com/installation Sau khi cài xong thì chạy thôi, dễ như ăn kẹo cao su :3 $ docker run ubuntu:12.04 /bin/echo 'hello thon' hello thon thật ra nó sẽ phải download image ub...

Ý tưởng - Cơ hội

Là những thứ nếu bạn không nắm bắt, có khi, sẽ phải hối hận cả đời. Có một người đàn ông kể rằng: trước kia ông từng có nhiều ý tưởng , chúng có vể hơi bất khả thi, khó thực  hiện, hoặc đôi khi vì ông không dám theo đuổi thực hiện nó. Rổi 3 năm sau, ông ta thấy một thằng nào đó, ôm cái ý tưởng đấy cùng với hàng triệu đô . Tất nhiên cái từ "có một người đàn ông" không đủ thuyết phục để làm 1 câu chuyện nghe như bịa trở thành có phần giống thật, nhưng đã bao giờ bạn trong hoàn cảnh tương tự? Nếu nảy ra 1 ý tưởng , hãy ghi nó lại ở nơi mà bạn biết mình sẽ tìm thấy nó ở đấy, hay mang đi tặng làm "quà" cho bè bạn, cũng có thể gồng mình lên và theo đuổi nó. Cơ hội chỉ đến một vài lần trong đời, hãy nắm lấy nó. Nói nhảm trước thềm worldcup :3

[network] ping - pong

Vô tình hôm nay hàm "command of today" của tớ trả về kết quả cho lệnh ping, và nó đặt ngay câu hỏi cho tớ rằng "ping là gì?", có chắc bạn sẽ trả lời đúng như những gì lệnh whatis trả về? $ whatis ping ping (8)             - send ICMP ECHO_REQUEST to network hosts Bài viết thực hiện trên: # lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description:    Ubuntu 12.04.4 LTS Release:        12.04 Codename:       precise Hãy nhìn thật kỹ và phân tích từng dòng output: $ping dantri.com -c1 PING dantri.com (222.255.27.51) 56(84) bytes of data. 64 bytes from static.vdc.vn (222.255.27.51): icmp_req=1 ttl=55 time=251 ms --- dantri.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 251.466/251.466/251.466/0.000 ms -c1 là option nói rằng chỉ gửi 1 ICMP ECHO_REQUEST ...

Giới thiệu và hướng dẫn sử dụng cơ bản iptables (Firewall)

1. iptables là gì? thanhnt@Thanhnt:~$ whatis iptables iptables (8) - administration tool for IPv4 packet filtering and NAT Trước đây, gói firewall/NAT được sử dụng phổ biến trên linux là ipchans, dần dần bị thay thế dó có nhiều bug và thiếu tính năng, iptables ra đời. So với ipchains, iptables có những ưu điểm vượt trội như: Tích hợp cao với linux kernel Có khả năng phân tích packet hiệu quả Filter packet được dựa trên các MAC address và các giá trị của flags trong TCP header Hệ thống log có các tùy chọn phù hợp, dựa trên mức độ và chi tiết reports Translation địa chỉ mạng tốt hơn Hỗ trợ tích hợp với các web proxy programs Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS ............... 2. Một số lệnh cơ bản khi làm việc với iptables

[MacOSX] Khám phá Mac OS X (phần 1)

UPDATE 2017: bài viết này viết khi tác giả lần đầu dùng OSX, bạn nên dùng Brew thay vì MacPorts https://brew.sh/ Trăm nghe không bằng một thấy trăm thấy không bằng một sờ hãy cùng đi khám phá Mac OS X để trở thành 1 normal stupid user của hệ điều hành này. Bài viết thừa nhận người đọc là 1 Linux / UNIX user. Xách khoai lên và đi! Trước tiên, bạn cần biết rằng Mac OS X là 1 variant của BSD, nó cũng là 1 UNIX-like OS. Kiểm tra kernel version $ uname -a Darwin VietHungs-MacBook-Pro.local 12.5.0 Darwin Kernel Version 12.5.0: Mon Jul 29 16:33:49 PDT 2013; root:xnu-2050.48.11~1/RELEASE_X86_64 x86_64 Kiểm tra software version $ sw_vers ProductName:    Mac OS X ProductVersion:    10.8.5 BuildVersion:    12F37 http://unix.stackexchange.com/questions/582/how-can-i-tell-what-version-of-os-x-im-on-from-the-command-line Xem model identifier của máy Mỗi dòng máy MacBook có một model identifier riêng (mà trong các bài hướng d...

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