Chào những người bạn! Người ta vẫn nói “coding là một nghệ thuật mà trong đó coder là nghệ sĩ”, bạn bao giờ tự hỏi mình đã là nghệ sĩ hay chưa? Hmm, tại sao phải quan tâm đến khía cạnh “nghệ thuật” và “nghệ sĩ” trong khi về bản chất, coders chỉ là những con người thành thạo một ngôn ngữ để nói chuyện với máy tính nào đó?…
Đúng vậy, đó là suy nghĩ của một coder, mà nói kô ngoa, là một trong những người chung thế hệ với những người khai hoang cho nền tin học nước nhà: Lông Vịt. Các bạn hẳn chưa quên những ngây ngô ngớ ngẩn ngu ngốc của anh trong “Lông Vịt – The most stupid coder ever…” thì hôm nay, anh lại xuất hiện bên cạnh những dòng code rồng bay phượng múa… Dzô!!!
An alternating way to reverse the sign:
Ngày xưa, khi anh còn là SV, trong khi mọi người đua nhau học VB, PHP, Java, C#… thì anh vẫn lui cui gõ từng dòng code C đen, rồi đến C++, VC++… Đúng vậy, anh khinh, anh khinh những ngôn ngữ mà phải cần một cái thằng thứ ba để thông dịch những dòng code của anh cho máy tính hiểu… Những cái thằng thông dịch đó kô thể nào đem lại cho anh cái mà anh cần: Performance… Vậy mà trời xui đất khiến làm sao, đến khi làm LV, rồi đến khi đi làm, anh lại phải cặm cụi chăm chút từng dòng code Java do anh gõ ra… Anh khinh, anh khinh những đống code được viết ra bởi cái ngôn ngữ lai căng giữa Object Oriented & Functional Programming của C++ (OOP & FP)… Ừh, “Java vô địch!”…
Ah
, anh chợt nảy ra một ý tưởng mà anh nghĩ là “useful” cho những ai muốn *đổi dấu của một số cho trước*, ví dụ “1000″ sau khi đổi là “-1000″, “-1000″ -> “1000″… Vậy là anh gõ ngay vào Eclipse:
// Reverse the sign of the given number
public static long reverseSign(long n) {
String sNumber = String.valueOf(n);
long val;
if (sNumber.charAt(0) == '-') {
val = Long.parseLong(sNumber.substring(1));
}
else {
val = Long.parseLong('-' + sNumber);
}
return val;
}
Hì, đúng là những dòng code thật là *nghệ thuật* do *nghệ sĩ* gõ ra! Cách đặt tên biến theo “Hungarian” coding standard anh vẫn mang theo kể từ khi anh tạm biệt thế giới Win32/MFC, cái cách dùng modifier “public static” càng cho thấy FP vẫn còn đeo đuổi anh, cái cách đặt vị trí những biến ngay đầu khối như nhắc nhở người ta “code của tui là compatible với Ansi-C”, cách dùng các dấu ‘{‘ & ‘}’ thật chuẩn mực như Code Complete đã nói… Nhưng anh ơi!… Anh sao mà… *lông vịt* quá đi!!!…
The power of Web 2.0:
Bây giờ bỏ qua những sung sướng sau khi đọc đoạn phía trên… Vậy có bao giờ bạn nhận được những lời *cảm thán* của đồng nghiệp như vậy chưa: “Trời ơi, mày code ghẻ quá!…”, “Đúng là lông vịt!”… Ừh, có lẽ sau hôm nay, nhưng riêng với Lông Vịt thì phải nói là “rất thường xuyên”… Ấy, khoan vội chê Lông Vịt “ghẻ”! Nếu nói một cách ngắn gọn, mọi nền tảng lý thuyết Lông Vịt đều nắm trong lòng bàn tay (chỉ có cái chưa lưu vào những nếp nhăn của đống bã đậu trên đầu, hehe)… Khi nhắc đến “Software Engineering” anh nghĩ đến những mô hình phân tích thiết kế trong SDLC… Khi ghé ngang qua “Design”, anh chợt nhận ra hầu hết mọi Design Patterns anh đều nắm khá rõ… Lại nhắc đến “Coding”, anh nghĩ đến ngay Coding Convention… Hmm, cái anh cần bây giờ chính là cách tiếp cận những công nghệ mới, những cái mà phải nói nó thay đổi xoành xoạch hàng ngày…
Việc gì đến cũng đến, công nghệ Web 2.0 (cái mà tốn mấy chục MB trong JavaVN database để anh em chửi nhau) vừa đến là anh tức tốc kiếm cuốn “AJAX in Action”… Người ta chửi nhau về cái gì mà Fat-Client, Thin-Server… mà anh kô rõ, nhưng bản thân anh thấy đó chỉ là sự kêt hợp giữa Javascript, XML và… browser… Nói chung là dùng sức mạnh ở client side để hỗ trợ server-side, kô hơn kô kém! Ừh, vậy Web 2.0 là gì? Client-side là gì? Server-side là gì? Hơ, cũng chẳng biết, chỉ biết là cái vụ này cũng tốn thêm một ít KB ở VnOSS forum…
Đọc tới đây, sợ người ta lại nói anh như NATO (No Action, Talk Only), cho nên anh quyết định sẽ CONT-inue (Code Only, No Talk)… Là vậy nè: Anh được giao một module, đó là hoàn thành cái form đăng nhập… Yeah, anh nghĩ ngay đến việc sử dụng Web 2.0, tận dụng hết thế mạnh của AJAX! Về cơ bản là sếp muốn anh làm một form có 2 text fields là username và password, user chỉ việc gõ username & password, click *su
bmit* là xong phim… Hơi khó cho một người mới tập tành PHP như anh, nhưng quá dễ cho một người đã có kinh nghiệm với HTML và Javascript… Hmm, anh biết những trình duyệt thông dụng đã hỗ trợ RPC thông qua *Native Browser Object* (XMLHttpRequest) hoặc thông qua *ActiveX* (*.XMLHTTP)… Vậy là anh lao vào code:
function submitLoginForm(form)
{
// Escape all input strings so that we can't be attacked by
// SQL-injection attack
var username = escapeString(form.username.value);
var password = escapeString(form.password.value);
var phpcode =
'$conn = mssql_connect($DB_SERVER, $DB_USERNAME, $DB_PASSWORD)' +
' or die("Error: Cannot connect to $DB_SERVER"); ' +
'$db = mssql_select_db($DB_NAME, $conn); ' +
'$sql = "SELECT * FROM users WHERE username=\''+username+'\' ' +
' AND password=\''+password+'\'"; ' +
'if (mssql_query($sql, $conn)) { ' +
' $login = true; ' +
'} ' +
'else { ' +
' $login = false; ' +
'} ' +
' ' +
'/* ... a lot of code goes here... */ ' +
'mssql_close($conn); ';
executeCode(phpcode);
}
Wow!…. Làm sao để implement hàm executeCode() ở client-side? Rất thông minh, Lông Vịt chỉ cần send một HTTPRequest đến server với phần data là chuỗi phpcode ở trên, ở server-side, sử dụng Eval() để execute một đống PHP code “on-the-fly”… Thật đơn giản!… Không gì có thể diễn tả tốt hơn sức mạnh của client-side bằng code của Lông Vịt! Ahhhh!!! Ôi Lông Vịt, anh kô hổ danh là “the most stupid coder ever”!!…
cái code thứ hai mà ng ta làm fake client thì bên server execute code độc die tại chỗ luôn
Túm lại là không hiểu gì hết :”>. Cái gì mà đổi dấu cho một số lại xài nhiều kiến thức chuyên môn quá :”>. Tự dưng bỏ thằng escapeString() vào làm gì vậy :”>. Túm lại thêm một lần nữa là không hiểu gì hết :”>:”>.
Hàm đổi dấu hay á
)
)
Hay quá à:D
Đứt teo mấy trăm dây thần kinh rồi
(
>>Chào những người bạn! Người ta vẫn nói “coding là một nghệ thuật mà trong đó coder là nghệ sĩ”
Mà coding được giống như Lông Vịt thì gọi là Nghệ sĩ nhân dân :”>.
Ac ac…cao sieu qu’a….Qu’a cao sieu … Troi` oi….Du’ng la` codHOLIC oi`…
Không hiểu nên phá
)
Quả xứng đáng tranh cử giải IgNobel
Bữa sau anh post mấy bài kiểu vầy là em vận động bạn bè anh bo xì anh hết nhen anh Ỉn. Coi như hôm nay giao thừa, tha cho anh một lần đó. LẠY ^:)^
KỆ
Chúc Tết: Chúc mừng năm mới, vạn sự như ý, phát lộc phát tài, phát tùm lum tùm la…..nhớ bao con ăn kem tươi nha ngoại iu dấu :”>, LÌ XÌ nữa =p~
Long vit = rua dien. Sao tui co cam giac ong dang ke lai doi tu cua ong vay ne troi,
.