Friday, 30 November 2012

[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


Sunday, 25 November 2012

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.


Saturday, 24 November 2012

[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

Wednesday, 21 November 2012

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:


Sunday, 18 November 2012

[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      

Saturday, 17 November 2012

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

từng ấy tips chắc cũng đủ để "made your day" :D

Friday, 16 November 2012

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]
F_n = \frac{\varphi^n-\psi^n}{\varphi-\psi} = \frac{\varphi^n-\psi^n}{\sqrt 5}
where

Saturday, 10 November 2012

[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 quyết định) đóng góp vào sự thành công của các sản phẩm chính là Marketing và các chính sách của công ty đứng sau nó.

Và bạn có thể cm để thêm vài câu vào cái list này thay vì ném đá :D
nếu thích thì like, thấy hay thì bấm thanks. Cảm ơn bạn đã đọc tớ chém gió :))

Log:
- change  title from "Vài sự thật về cuộc đời (về chính bạn)" to "Vài bài học về cuộc sống vừa học được"
- strike some controversial examples.

Friday, 9 November 2012

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



Friday, 2 November 2012

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