New FAMILUG

The PyMiers

Saturday, 29 October 2011

Lật mặt nạ mạng (phần 2)

2. 0 và 255
như đã cảnh báo trước, phần này ta sẽ giải quyết sòng phẳng vấn đề 0 và 255 đã đi đâu?

255 được sử dụng cho "broadcast". Ta thường hay được nghe xxx.xxx.255.255 là địa chỉ broadcast, và ta cũng nhắc lại như con vẹt "nó là địa chỉ broadcast". Vậy broadcast là gì?
broadcast là một tin nhắn (message) mà bạn muốn tất cả các máy cùng mạng (network) với mình nhìn thấy.
 

Whao... something new

Đạp các máy khác ra khỏi mạng wifi mình đang dùng. Làm sao làm được vậy?
http://lifehacker.com/5853775/kick-other-devices-off-a-wi+fi-network-with-wifikill-on-android

Netcut ai cũng biết, nó hoạt động thế nào?
http://serverfault.com/questions/125585/how-does-netcut-work
http://bill2t.blogspot.com/2009/09/how-netcut-work.html

dạo chơi với cái tên anonymous...
http://lifehacker.com/5854203/how-to-create-a-fake-identity-and-stay-anonymous-online
tất cả đều do sự yếu kém trong bảo mật...
những điều này là rất THỰC TẾ trong lúc bạn đang học môn mạng máy tính. Các bạn cùng comment và viết bài để đời thôi :x

Thursday, 27 October 2011

Lật mặt nạ mạng (phần 1)

(Giật tít rất mạnh :)) )


Tớ không viết dài, không viết dai, không viết dại.
Viết đủ để mọi người hiểu về cách phân chia, cấp phát sử dụng địa chỉ IP như thế nào, không còn j là mông lung cả. Nắm rõ ý tưởng của vấn đề.

Arpanet là tổ chức nổi tiếng nhất về mạng TCP/IP.


Địa chỉ IP là những số nhị phân dài 32-bit = 4 bytes và được viết như 4 nhóm, mỗi nhóm tương ứng với 1 byte. Gọi 1 nhóm này là 1 octet (nhóm 8-bit).
ABC.DEF.GHI.JKL

Đề Matlab năm ngoái



Đề thi Giữa kì hum cô cho làm thử thì phải , ai làm rồi hay còn nhớ làm lại cho t xem vs nhé ;)

Nếu làm lại từ đầu...

Loạt bài viết này sẽ ghi lại những suy nghĩ, truyền lại những kinh nghiệm cho những SV khóa sau. Sẽ giả tưởng mình là hiệu trưởng trường BK... và chắc chắn sẽ đủ dài để làm The ultimate guide to BK :))


0. Điều trước điều đầu tiên tôi muôn làm là : dạy lịch sử tự hào của trường BK cho sinh viên. Kể chuyện về thầy Tạ Quang Bửu, Trần Đại Nghĩa, Lê Thanh Nghị làai? tại sao lại được lấy làm tên đường, thư viện..., những câu chuyện không phải để khoa khoang mà  phải là những câu chuyện truyền cảm hứng cho sinh viên.


1. Điều đầu tiên tôi muốn là đưa ra khái niệm Kỹ sư thật rõ ràng cho các sinh viên vừa vào trường. Để họ không bị hoang mang, biết mình là ai và sẽ thế nào.
http://cntt.tv/nodes/show/21

... tắm đã, rảnh viết tiếp :))

PS: ngẫm lại, biết đâu mình hợp với nghề giáo :)) 

Tuesday, 25 October 2011

Mạng máy tính subnet mask,subnetting

Với các class giống y nhau nên mình sẽ trình bày trên class B
Class B đã sử dụng 16 bit đầu tiên :
Dạng dec: 255.255.0.0
Dạng bin:11111111.11111111.00000000.00000000
Bài toán đặt ra tìm subnet mask và chia mạng con cho m máy(subnet con)
Đầu tiên ta tìm n sao cho 2^n>m đấy chính là số bit cần mượn thêm này
Thay n số 0 kể từ bit thứ 17 thành 1 >> đc subnet mask dạng bin 11111111.11111111.1...10....0
phần tô đỏ là gồm n số 1 rồi đổi dạng bin >> dec đc subnet mask
chia mạng con nè giả sử hót ban đầu x.x.0.0 chuyển sang nhị phân
bbbbbbbb.bbbbbbbb.00000000.00000000
bắt đầu chia : b.b.00...00000 (n số 0 đỏ)
mạng con đầu tiên :b.b.00....00010...0 (số 0 đỏ cuối ở trên chuyển thành số 1 )> đổi sang dạng Dec lưu ý dấu chấm là ngắt 1 số nha
mạng con thứ 2 là :b.b.00...00100...0 (tìm số 0 đỏ gần nhất từ trái sang thay nó bằng 1 và nhữn số 1 đỏ trước nó thay = 0 của mạng con thứ nhất) >> đổi sang Dec.
mạng con thứ 3 là : b.b.00...00110...0 >> đổi sang Dec
mạng con thứ 4 là : b.b.00...01000...0>> đổi sang Dec
mạng con thứ 5 là : b.b.00...01010...0>> đổi sang Dec
mạng con thứ 6 là : b.b.00...01100...0>> đổi sang Dec
...........................................................................................
..............................................................................................
mạng con cuối là: b.b.11..11100...0
song phần chia mạng nha :D
còn subet range . hnao rảnh cho lên .bỗng dưng thấy mỏi :))

Saturday, 22 October 2011

Tìm kiếm string với grep

grep là một công cụ rất quan trọng trong linux. Nó giúp lọc ra thông tin bạn cần trong hàng đống ngổn ngang dữ liệu. Nó là công cụ không thể thiếu với bất cứ ai dùng Linux bằng các dòng lệnh và đặc biệt quan trọng với các lập trình viên bởi nó là công cụ tìm kiếm "hướng dòng" (line-oriented). Kết quả trả về sẽ là những dòng text thỏa mãn điều kiện tìm kiếm

Sử dụng grep rất đơn giản:
grep 'tu_khoa' ten_file1 ten_file2 ten_file3
hay sử dụng chức năng pipeline của shell để lấy đầu vào:
cat hehe.txt hoho.c | grep 'return'

Dưới đây là cách dùng các phép OR, AND, NOT với grep:

OR: tu_khoa_mot hoặc tu_khoa_hai
grep -E 'tu_khoa_mot|tu_khoa_hai' file

-E (extended regexp)

Sunday, 16 October 2011

R.I.P Dennis Ritchie

 Tin Dennis Ritchie mất đã được đăng nhiêu ngày trên mạng. Nhưng nay tớ vẫn viết 1 bài để tưởng nhớ người đã tạo ra ngôn ngữ C đồng thời là developer chính phát triển UNIX

Với người dùng máy tính bình thường, có lẽ họ chẳng biết ông là ai. Nhưng với những lập trình viên, hẳn ai cũng biết vai trò của ông lớn chừng nào. Ngay cả Bill Gates, Steve Jobs... cũng là những người khổng lồ đứng trên vai người khổng lồ vĩ đại này.

Rest In Peace!

"When I read commentary about suggestions for where C should go, I often think back and give thanks that it wasn't developed under the advice of a worldwide crowd."

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity"

Một đoạn code tưởng nhớ ông:
int main(void)
{
time_t thetime = time(NULL);
struct tm *loctime = localtime(&thetime);

struct ritchie *dennis;
while (1) {
if (loctime->tm_year + 1900 == 1941) {
dennis = (ritchie*) malloc(sizeof(struct ritchie));
} else if (loctime->tm_year + 1900 > 1941
&& loctime->tm_year + 1900 < 2011) {
change_the_world_of_computers();
} else if (loctime->tm_year + 1900 == 2011) {
free(dennis);
break;
}
}
return 0;

DrGonzeaux - wired.com

Saturday, 15 October 2011

[MATLAB] Giải phương trình bằng PP Tiếp Tuyến

Không có MATLAB nên tớ code giả như bên dưới để minh họa ý tưởng thôi, còn muốn chạy thì phải lồng các vòng if vào nhau (bởi tớ chưa biết cách "return" giữa chừng trong MATLAB.

%Chuong trinh giai phuong trinh bang phuong phap tiep tuyen
%www.familug.com
function [root1] = PPTiepTuyen(fx, cana, canb, saiso)
if subs(fx,cana) == 0
    root1 = cana
end

if subs(fx,canb) == 0
    root1 = canb
end

if diff(diff(fx)) == 0
    disp('Ham da nhap co dao ham cap 2 = 0')
end
   
if subs(fx,cana) * subs(fx,canb) > 0 %chả biết lớn hay nhỏ hơn :))
    bx = cana
    x = bx - subs(diff(fx),cana)
    while x - bx > saiso
        bx = x
        x = bx - subs(diff(fx),cana)
       
    root1 = x
end
   
ai có MATLAB mà hôm nọ chưa làm bài thì tranh thủ viết đi. Ai có lời giải nào thì đưa lên.
2 tuần nữa là thi nhé
:-h

Something new...

3 big ways of learning:
Learning by doing (real stuffs) - a process through all topics
Learning by reading - topic by topic
Learning by thinking (some creative ways)


http://stackoverflow.com/
Learn from experiments

Web development often broad, not deep

Friday, 14 October 2011

Learning style part 3: nếu bạn biết mình thực sự muốn gì

Nếu bạn may mắn, hay cách thú vị nào đó biết được mình thực sự muốn gì, muốn là ai, muốn làm gì, lúc ấy bạn sẽ biết rõ những gì cần làm.
Nhớ hãy phân biệt những thứ gì bạn muốn hiểu đến tận gốc rễ, những gì bạn chỉ cần sử dụng như 1 công cụ. Sức người có hạn, thời gian có hạn, cuộc đời có hạn... bạn chẳng thể 1 tay làm đủ mọi chuyện trên đời !

Và những quan sát này khiến tớ có những thay đổi trong suy nghĩ bởi ngày tớ đk NV2 vào khoa Toán Tin, tớ nghĩ được học Tin ít nhất là 50% chương trình, phần còn lại là mình tự cày bừa...

Khi xem chương trình học của các khoa Điện, Điện Tử, Sư phạm kỹ thuật, hay cả cơ khí ... khoa nào cũng có những môn liên quan đến lập trình.Và đọc đến đây, đừng nghĩ rằng họ chỉ học lung tung hay lập trình chuyên ngành: thằng bạn tớ học bên ĐTVT có môn lập trình game nữa (lập trình nâng cao).

[Cần ai đó rảnh rang lấy list các môn học liên quan đến lập trình của các khoa kể trên]

Nói thế để bạn hiểu răng, nếu không có ý định trở thành một lập trình viên, hãy sử dụng lập trình như 1 công cụ. Hãy nhìn lập trình như thứ gì đơn giản và bình dân, như word với powerpoint vậy... Nếu nó không phải mục đích của bạn, hãy biến nó thành 1 công cụ hữu ích. Và nếu C là quá phức tạp, hãy dùng Python

Hãy nhớ rằng tất cả chúng ta đều đã học Tin học đại cương vào năm nhất, nghĩa là nó không phải thứ gì cao siêu giành riêng cho riêng sinh viên khoa nào. Và nếu bạn chưa đạt được trình độ của môn THĐC ấy thì hãy xem lại mình là ai?

Và cuối cùng nhận ra rằng: ngoài (một số ngành trong) khoa CNTT ra, tất cả các khoa khác đều dạy sinh viên lập trình để họ sử dụng chúng như những công cụ. Ở những khoa ấy, họ không đào tạo lập trình viên!
Nếu bạn hoàn thành tốt những môn học "tin" trong khoa toán, bạn là sinh viên khoa toán có trong tay 1 công cụ mạnh. Còn muốn trở thành 1 lập trình viên (developer), con đường của bạn còn rất dài ở phía trước... và nếu thành công, bạn sẽ là 1 developer có trong tay 1 công cụ rất mạnh (toán) :D


[MatLAB]Chuyển đổi năm và hơn thế nữa

bài toán đặt ra đổi từ năm dương lịch dạng số sang năm âm lịch dạng chữ
hướng giải bài toán:
+ Đặt 2 mảng kí tự ''can''và ''chi'' tương ứng với các căn chi của âm lịch
+Lấy Vị trí đầu làm mốc rồi tìm dư cho 10 căn và 12 chi tương ứng với vị trí trong mảng
Code

function [] = namam( f )
%NAMAM Summary of this function goes here
% Detailed explanation goes here
can={'Giap','At','Binh','Dinh','Mau','Ky','Canh','Tan','Nham','Quy'};
chi={'Ti','Suu','Dan','Mao','Thin','Ty','Ngo','Mui','Than','Dau','Tuat','Hoi'};
%can(mod(f,10)+1)
%chi(mod(f,12)+1)
for i =0:9
if(mod(f-i,10)==mod(1744,10))
can(1+i)
end
if(mod(f-i,12)==mod(1744,12))
chi(1+i)
end

end

Ngoài ra từ bài toán trên có thể suy rộng ra nhiều bài toán khác ko dừng lại ở 2 mảng mà là n mảng .Đầu vào là 1 thông số và trên mỗi tập nó sẽ nhận 1 giá trị nào đó.Yêu cầu xét thông số đầu vào trên toàn bộ n tập .

Learn style part .........

Học là một nghệ thuật và người học thật là 1 nghệ sỹ
Có rất nhiều nhiều yếu tố ảnh hưởng tới việc học xong việc quyết định học hay ko là ở bộ não chúng ta.
Sự phong phú của bộ não và sự phát triển logic mờ nên câu trả lời đứng trước việc học ko còn là KO(0) và CÓ(1) nữa
Và tùy vào mỗi người đối vs mỗi môn thì độ muốn học nó lại khác nhau.như của mình :
M(CSDL)=0.5
M(HTM)=0.5
M(SAIPHAN)=0,25
M(CHUOI)=0.65
M(HEMO)=0.9x =))
M(DK tối ưu)=0.71
nản chưa M(i) được kéo theo bởi cảm hứng N(i)
;)) nghe cũng xuôi nhưng kệ thôi
Việc học là dài dài theo mình thì ko đơn giản là lý thuyết và thực hành
Trước tiên học để làm gì : Điểm ư, bằng ư, hay thế nào..................mình thì muốn hiểu cặn kẽ vẫn đề thôi .Việc nhai 1 đống kiến thức vì điểm vì bằng ôi thật là nhục .Nhục thật đấy đùa đâu. cướng ép bản thân :))
Xác định mục tiêu thì phải làm gì chắc trong não tự định oy. thích thì ghi ra giấy todolist
để nhắc nhở
Tiếp theo kiên nhẫn cái này thì chịu thoooooiiiiiiiiiiiiiii
Next
Nắm bắt thông tin trong bài giảng ok việc này như 1 thú vui tao nhã
Việc tiếp theo đưa vào bộ nhớ = nhiều cách : lặp lại kiến thức đó (kiểu như nghe đi nghe lại 1 bài hát thì ùi cũng thuộc thôi),hay 1 cách nào đó bạn thích.
Áp dụng vào thực tế : giữa lý thuyết và thực tế khác nhau khá nhiều.nên cứ lý tưởng mà làm thôi
Đấy học thế đấy

Thursday, 13 October 2011

Learning style

Ngồi được 1 tiếng rưỡi là đuối rồi, ko tập trung mà nghịch được nữa.
Mỗi người một khác nên hãy khám phá style học của riêng mình
Học ở đây ko nói đến cụ thể học cái gì, chỉ chung chung là học những gì có khỏan đọc. Lấy ví dụ là lập trình

1. Học lý thuyết -> thực hành
Kiểu học vô cùng phổ biến với chúng ta. Học chán chê lý thuyết rồi mang mớ lý thuyết ấy đi áp dụng (chưa nói đến áp dụng trong đời sống mà chỉ là áp dụng làm bài tập @@ ).
Nhược điểm: nhanh chóng gây nhàm chán bởi lý thuyết khó nuốt và không mang lại hiệu quả nhanh chóng. Bắt buộc người học phải cố gắng để nắm lí thuyết, khi chuyển sang thực hành gặp nhiều khó khăn vì không biết bắt đầu từ đâu, hoặc sẽ bị quên lí thuyết. Mât 1 thời gian để làm quen.

Ưu điểm: có cơ sở khoa học, có thể hiểu "sâu sắc" vấn đề :p
Cụ thể: là kiểu học đọc sách chán rồi làm bài tập.
Đọc sách lập trình chán rồi code. Đến khi thành thạo chán chê phần ngôn ngữ căn bản rồi nhưng vẫn chẳng làm được gì thực sự dùng được nếu không kết hơp với kiểu học khác.
Ví dụ: học C quanh quẩn phần ngôn ngữ căn bản, sau 2 năm vẫn không làm được cái gì ra hồn.

2. Học bằng ví dụ.
Kiểu học này rất thực dụng. Mang lại hiệu quả nhanh chóng rõ ràng, và dễ dàng lôi cuốn người học khi họ có thể nhanh chóng thu được kết quả.
Khác với kiểu học lí thuyết đến thực hành, học bằng ví dụ đưa song song lý thuyết (ít) và ví dụ (nhiều) để người học biết được mình học để làm gì.
Nhược điểm: không hiểu "sâu sắc". Nếu gặp lỗi giữa chừng (do tut lởm, môi trường khác ...) dễ gây nản.
Ưu điểm: mang lại kết quả ngay, không gây nhàm chán.

Ví dụ: học PHP  thì vớ ngay 1 cái tut để làm theo cho đến khi ra sản phẩm. Tạo động lực tốt cho người học mặc dù kết quả chỉ nằm trong 1 mảng nhỏ. Người học có thể ko biết rõ các chi tiết về mảng, biến... nhưng có kinh nghiệm :D


3. ...


để có hiệu quả tốt cần phối hợp giữa các kiểu với nhau. Có thể là 1 rồi 2, hoặc 2 rồi 1. Tùy người, nhưng biết được mình hợp với kiểu nào sẽ đúng với câu "biết người biết ta, thắng 3 thua 1 :)) "

Sunday, 9 October 2011

Thay đổi slogan của FAMILUG

Hi all, tớ tranh thủ viết ngắn vài dòng 1. FAMILUG đã đạt 20000 lượt views. 2. Tớ muốn thay đổi slogan của FAMILUG. Hiện tại là "Linux for human beings!". Tớ muốn đổi thành "Stay hungry, stay foolish" - câu nói của Steve Jobs. Cũng ko có gì nghiêm trọng lắm, chỉ là thay đổi cho nó motivate hơn thôi :D Chúng ta sẽ cố gắng bài trừ sự áp đặt. VD "blog Linux mà dùng câu của Apple" chả sao cả, tôi ko ăn tiền quảng cáo của Linux, tôi tự do :> mọi người ok thì tớ đổi :D cm!

Desktop Screenshot

















GTK và Emerald theme: Gaia Sprout
Docky: Transparent
Covergloobus: Sticker theme
Conky, DockbarX, Pidgin: Gaia
Icon: Faenza Dark

ta sẽ là ai?

Chắc tại rượu nhà Chung ngấm quá, mà nay không được nói nhiều.
Đâm ra giờ viết lắm... viết linh tinh

rồi ta sẽ là ai...
rồi ai cũng phải chết
nghĩ cho cùng thì ta đang làm cái gì đây?
sống thiếu mục đích và làm việc dông dài. Đọc lại những điều Steve Jobs đã nói

“Thời gian của bạn có hạn, do đó, đừng nên lãng phí nó vì cuộc sống của người khác. Đừng bị mắc kẹt bởi những giáo điều, đó là sống vì những suy nghĩ của người khác. Đừng để tiếng ồn của các ý kiến khác làm lấn át đi tiếng nói của chính bạn. Và điều quan trọng nhất, có can đảm để sống theo trái tim và trực giác của chính mình. Chính trái tim và trực giác mới là thứ biết được bạn muốn gì và bạn sẽ trở thành thế nào. Mọi thứ còn lại, chỉ là thứ yếu”

chúng ta thực sự đang bị đưa đẩy rất nhiều... bị những giáo điều, những suy nghĩ của người khác "điều khiển". Liệu bạn có tiếng nói của chính mình? hay bạn là người biết nói nhưng không dám nói?

Máy bạn đã bật được bao lâu?

Tự dưng hỏi 1 câu ngớ ngẩn: nếu 1 ngày Google xóa cái blogspot đi, hay tai nạn nào đó xóa mất trang FAMILUG của chúng ta, thế là mất hết :-ss
Ghét cái trò chặn blogspot và my.opera.com của bọn VNPT mình đang dùng $%^&*(

Quay lại câu hỏi, nó sẽ là thông tin khá quan trọng với server. Nhưng với máy bàn của ta, biết cũng tốt chứ sao :))
1. Dùng uptime:
hvnsweeting@hvnbox:~$ uptime
 00:44:46 up  9:25,  2 users,  load average: 0.01, 0.04, 0.04
máy tớ đã mở đc 9 tiếng 25 phút. Bây giờ là 00h44'

Friday, 7 October 2011

[MATLAB] Năm dương lịch -> Can Chi

Đây là bài chiều nay. Tớ code chay ghi lại cho khỏi quên :D
Can : 10 can _ Giáp ất bính đinh mậu kỷ canh tân nhâm quý
Chi : 12 chi _ Tý sửu dần mão thìn tị ngọ mùi thân dậu tuất hợi

Khó khắn: mất một lúc để biết canh chứa "mảng string“

Code:

%timCanChi.m
function [can_chi] = timCanChi(nam)
can = {"Giap" "At" "Binh" "Dinh" "Mau" "Ky" "Canh" "Tan" "Nham" "Quy"};
chi = {"Ty" "Suu" "Dan" "Mao" "Thin" "Ti" "Ngo" "Mui" "Than" "Dau" "Tuat" "Hoi"};

%- Năm 1984 là năm Giáp Tý. + 1 vì array trong matlab bắt đầu từ 1
c = can(mod((nam - 1984) + 1, 10));
ch = chi(mod(chi(nam - 1984) + 1, 12));

can_chi = [c, ch];
return can_chi

ai có Matlab test hộ tớ cái :">
ai có cách khác up lên cho các bạn cùng xem.

Thursday, 6 October 2011

R.I.P Steve Jobs!

"The only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it."
Steve Jobs
 Tớ không phải 1 fan boy của Apple (nếu có nhiều tiền thì khác :D) nhưng Steve Jobs luôn là người tớ ngưỡng mộ. 
Một thiên tài sáng tạo. 
Ông đã chứng minh lời nói của Einstein - sự sáng tạo mới là quan trọng nhất.
R.I.P 
http://en.wikiquote.org/wiki/Steve_Jobs

Tuesday, 4 October 2011

[Torrent] Matlab 2011a cho Linux

Link file torrent: http://www.mediafire.com/?p5849omqu9fz2rd
(Cách down torrent các bạn tự tìm hiểu nhé)
Kéo xong sẽ được thư mục Matlab_Unix_2011a, bên trong chứa thư mục crack và file ml2011au.iso. Thực hiện mount file iso ra ổ ảo để cài. Giả sử thư mục Matlab_Unix_2011a nằm trong Downloads:
cd /Downloads/Matlab_Unix_2011a
sudo mount -o loop ml2011au.iso /mnt
sudo /mnt/install

Cửa sổ cài đặt sẽ hiện ra giống như trong Windows. Chọn "Install without using Internet". Next next. Khi được yêu cầu, nhập key sau đây: 27148-10273-27823-12342-16466
Next. Chọn kiểu cài đặt Typical nếu muốn chương trình tự động setup theo mặc định, chọn Custom nếu muốn chỉnh sửa (đường dẫn, thành phần cài đặt). Tiếp tục next next. Khi chương trình cài đặt xong, nó sẽ yêu cầu một file license nữa. Chọn "install manually without using the internet". Browse đến thư mục crack ở trên, chọn file lic_standalone.dat. Next. Xong.
Để khởi động Matlab, mở Terminal, dùng lệnh cd trỏ tới thư mục bin trong thư mục cài đặt, gõ lệnh ./matlab

Sunday, 2 October 2011

[Bash] cd around the world

Khi bắt đầu dùng terminal (hay chính xác ở đây là bash shell) bạn sẽ phải làm quen với việc di chuyển đến mọi nơi bằng lệnh cd. Nghe có vẻ đơn giản bởi chỉ việc gõ

cd thu_muc_dich
là sẽ đến được ngay, nhưng việc nhỏ bé này sẽ nhiều lúc gây khó chịu đến nỗi khiến ta bật nautilus lên và browse bằng chuột :D.

Tip1: trở về thư mục mà bạn vừa rời khỏi
dùng lệnh cd -

hvnsweeting@hvnbox:/media/data/HVNSweeting$ cd ~
hvnsweeting@hvnbox:~$ cd -
/media/data/HVNSweeting
hvnsweeting@hvnbox:/media/data/HVNSweeting$

Saturday, 1 October 2011

Implement the compiler in the language itself

Bài viết này ở trình độ advance, nói chung là đọc qua để biết một tí :D
Làm sao người ta viết được 1 cái compiler bằng chính ngôn ngữ của nó (tut)
http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.html

liệu có thể viết chương trình compile chính nó được không? (có TCC) :D
http://bellard.org/otcc/