Thứ Năm, 15 tháng 9, 2005

Chuẩn hóa .NET Framework

Standard ECMA-335 - Common Language Infrastructure (CLI)
Chuẩn để các ngôn ngữ có thể nói chuyện với nhau
http://www.ecma-international.org/publications/standards/Ecma-335.htm

Mono
Dự án được xây dựng theo chuẩn ECMA-335 với mục đích để các chương trình viết bằng .NET có thể chạy trên các máy khác nhau hệ Unix-based
http://www.mono-project.com/ASP.NET

Grasshopper
Các chương trình được biên dịch bằng Mono có thể được biên dịch lại bằng Grasshopper thành các file thực thi nhị phân Java. Điểm mạnh nhất của Grasshopper là tích hợp trực tiếp vào Visual Studio.NET. Có nghĩa là các tín đồ VS.NET có thể viết chương trình cho Linux trực tiếp từ VS.NET IDE
http://dev.mainsoft.com/

Chrome
Một dự án tương tự như GrassHoper nhưng sử dụng ngôn ngữ Object Pascal. Đã được thương mại hóa nên rất mạnh có đầy đủ những tính năng của Microsoft C# và VB.NET
http://www.chromesville.com/

Thứ Tư, 7 tháng 9, 2005

Năm học mới : Những thử thách mới

Cả một tuần bận rộn, lu bu những công chuyện chuẩn bị cho năm học mới
1. Tham gia hội thảo tại quảng trưởng tỉnh Đồng Nai 2/9
Dẫu biết rằng những lời mình nói cũng không hề có tác động đến những nhà lãnh đạo tỉnh. Tuy nhiên mình cũng đã cố gắng hết sức để truyền lại những kinh nghiệm và suy nghĩ của mình cho những học sinh, sinh viên đàn em đi sau. Trình bày xong thì nhận được một tràng pháo tay quá lớn, thấy thật là vui.
2. Xếp hạng 31/40 trong lớp KSTN
Thấy hơi buồn vì điểm tụt dốc thê thảm. Tuy nhiên sự trả giá là xứng đáng vì đổi lại điều đó là những sản phẩm, những kinh nghiệm, những cảm giác rất đẹp trong đời sinh viên
3. Năm học mới : Thách thức mới
Mục tiêu
- Học tốt các môn + trả nợ 3 môn
- TOEIC > 6000
- Hoàn thành sản phẩm AutoSubmit là kết hợp các môn
o Phân tích thiết kế hệ thống
o Đồ họa máy tính
o Trình biên dịch
o Đồ án môn họa
o Công nghệ : OpenGL, RSS, COM…
- Vượt qua vòng loại quốc tế tại IRAN

Thứ Tư, 31 tháng 8, 2005

Bước vào thế giới Microsoft

Lập trình Windows đã được ba năm nhưng có lẽ vẫn chưa hiểu hết được nền tảng cũng như các công nghệ của Microsoft xây dựng cho hệ điều hành này. Hôm nay tình cờ có dịp tìm hiểu về một công nghệ của Microsoft. Tự hỏi rằng những công nghệ đó được xây dựng như thế nào? Thế là quá trình tìm hiểu về Microsoft Technology được bắt đầu.
1. Nền tảng Windows
Vẫn là các hàm API. Mọi thao tác hệ thống đều truy xuất qua các hàm này.
2. Công nghệ COM : xương sống của Windows
Không nhớ từ thời nào đó, Microsoft nảy sinh suy nghĩ làm thế nào để các ứng dụng tương tác với nhau một cách dễ dàng. Thế là COM ra đời, sau đó phát triển lên DCOM, COM+, ActiveX
3. Hầu hết công nghệ Microsoft đều bắt đầu COM
Hầu hết công nghệ Microsoft đưa ra đều có thể được truy xuất qua giao tiếp COM từ Internet Explorer, Speech, Microsoft Office... Ngoài ra còn rất nhiều các hãng khác đều cũng phát triển sản phẩm mình theo chuẩn này như : Adobe, Macromedia... Đơn giản bởi một điều họ muốn các ứng dụng khác có thể tương tác với sản phẩm của họ một cách dễ dàng.
4. Thế giới của Microsoft
Hiểu được đến đây thì cũng đã đến lúc chúng ta có thể hoàn toàn làm chủ được các công nghệ của Microsoft. Làm thế nào ư, hãy theo các bước sau:
- Khi nghe về một công nghệ của Mic, hãy viếng thăm trang chủ của họ
- 90% công nghệ này sẽ hỗ trợ COM và thường thì sẽ có SDK kèm theo. Đọc các ví dụ minh họa sẽ giúp bạn làm quen với các công nghệ này. Kiến thức về COM là rất cần thiết
- Nên thường xuyên viếng thăm trang chủ của Microsoft để có thêm thông tin về các công nghệ mới của họ.
Với những kiến thức về COM, chắc chắn bạn sẽ phát triển ra được những sản phẩm can thiệp trực tiếp vào hoạt động của Windows : Một chương trình giám sát các hoạt động của Internet Explorer hay kiểm soát các sự kiện trong Word, và đến tất cả những thứ bạn thấy được trên màn hình. Tất cả đều làm được thông qua giao tiếp COM

Tài nguyên
Công nghệ của Mic: http://msdn.microsoft.com/developercenters
Tạo menu cho IE : http://www.euromind.com/iedelphi/
Tạo menu cho Word, Excel : http://www.add-in-express.com/add-in-delphi/
Kiểm soát mọi thứ trên màn hình : http://www.microsoft.com/enable/
Chương trình Vox : http://www.sharewaregenie.com/VoxxPage.php&ei=O9oVQ52JI828YKrb8OAI

Kĩ năng phát triển ứng dụng

Từ trước đến giờ khi phát triển ứng dụng chỉ là tùy hứng, không có định hướng rõ ràng. Hướng đi này đã bắt đầu gặp phải một số trở ngại. Do đó sáng nay quyết tâm tìm hiểu để có một hướng đi khác đúng đắn hơn cho công việc này.
1. Vạch ra một kế hoạch cụ thể
Sản phẩm được thiết kế cho ai? Gồm những chức năng nào? Sau đó dùng sơ đồ Use Case trong mô hình UML. Chắc chắn rằng những tính năng của sản phẩm về mặt công nghệ là có thể thực hiện được.
2. Vẽ ra cấu trúc của sản phẩm
Vẽ ra cấu trúc từng module của sản phẩm. Dùng mô hình Class Diagram của UML. Chú ý một số điều sau.
- Nên dùng một công cụ vẽ xong cũng sinh code cho mình luôn. VD : ModelMaker
- Nên làm cho các module trong ứng dụng độc lập để có thể tái sử dụng khi cần thiết. Có thể sẽ có một số bất tiện về mặt tốc độ, bộ nhớ nhưng rất xứng đáng.
- Nên chú thích cho các method, function, class... theo quy cách chú thích của Java chẳng hạn. Để sau này có thể dùng chương trình tự động sinh tài liệu cho mình.
3. Coding sản phẩm
Nếu đã hoàn thành bước 2 thì bước 3 sẽ rất dễ dàng.
4. Testing sản phẩm
Trước đây rất ít khi đụng đến khâu này nhưng có lẽ đó là một khâu khá quan trọng. Nên gửi tới bạn bè xung quanh mình để nhận được ý kiến đóng góp. Sau đó sẽ lặp lại bước 1.

Quá trình phát triển theo vòng lặp : Planning - Development - Coding - Testing

Tài nguyên
Các công cụ UML : http://www.objectsbydesign.com/tools/umltools_byCompany.html
ModelMaker (Delphi UML) : http://www.modelmakertools.com/
DelphiCodeToDoc : http://delphicodetodoc.sourceforge.net

Thứ Ba, 30 tháng 8, 2005

TOEIC : Một chướng ngại lớn

1. TOEIC
Cố gắng luyện vững phần Reading. Hôm nay mới có vẽ master phần Error Recognition. Càng lúc chương trình càng khó. Tuy nhiên phải ráng vượt qua mới được, không thể chần chờ

2. Hoàn thành báo cáo để tham dự hội thảo của tỉnh Đồng nai
Bài viết "Nhu cầu được bồi dưỡng để trở thành tài năng tin học"

3. Hoàn thành chương trình Calendar cho thành đoàn
Có thể xem tại http://simpro.sourceforge.net/soft

4. Lãnh lương lần đầu tiên trong nghề dạy học
Cảm thấy rất vui được 500.000đ cho 6 buổi dạy, mỗi buổi 2 tiếng. Dùng 320.000 để đăng kí thi TOEIC, còn lại để mua sách luyện thi. Trưa qua rủ Hạnh đi mua sách + ăn cơm.

Thứ Hai, 29 tháng 8, 2005

VSpeech : "Ý tưởng Việt Nam"

Sáng nay, 2 chị phóng viên tới nhà để phỏng vấn làm bài viết về sản phẩm VSpeech. Thế là lại điệp khúc quảng cáo sản phẩm muôn thuở như các lần phỏng vấn trước mặc dù không được xuôi chèo lắm. Cái Vspeech lâu lâu tự nhiên giở chứng, ra lệnh hoài nó không chịu nghe.
Tuy nhiên uối cùng mọi chuyện cũng tốt đẹp. Cảm thấy tự hào vì VSpeech lại có thêm một thành tình nữa, một ý tưởng "Made in VN"
http://www.vietbooks.com.vn

Kĩ năng tích lũy kiến thức

Sau một thời gian dài tìm kiếm học hỏi trên mạng, rút ra được một số kinh nghiệm
1. Search trên Google để kiếm bài viết hay eBooks về vấn để cần quan tâm
2. Scanning các bài viết đó, cố nắm bắt những tinh hoa trong bài viết. Nếu bài viết là một tutorial thì cố gắng practice thử để mau chóng nắm bắt.
3. Quan trọng nhất, cố gắng không nên bỏ dở dang giữa chừng. Đã quyết tâm đọc là phải giải quyết đến cùng. Không nên sa đà đi xa cái mà mình cần sẽ dễ dẫn tới chán nản.
4. Ghi chép lại những kiến thức mình tích lũy được. Lưu lại các đường dẫn cùng các file lên 1 host nào đó (nếu có)

Thứ Bảy, 27 tháng 8, 2005

"Vietnamese Talent" Contest : A Challenge

3 recent days are busy. Try to finish the reports to attend one of the biggest IT contests in Vietnam.

A bit worried because don't have any organizations support but I will try all my best. Perhaps I can't get prize but it's not problems because certainly I can get most experience through this contest and have many new friends. That's all for a programmer likes me.

Finally, all the reports are finished. The official website of this product is:
http://www.bk02.net/radlib

Thứ Năm, 25 tháng 8, 2005

Mastering TOEIC Bridge Test

2 hôm nay hoàn thành 2 bài thi TOEIC Bridge Test, mỗi bài 100 câu hỏi. Số điểm đạt được khá cao 94/100 và 96/100. Có lẽ mấy đề này dễ vì dành cho trình độ trung cấp. Có lẽ kì thi TOEIC Test với 200 câu hỏi sẽ khó hơn

Làm xong mới thấy mấy kì thi Anh văn không khó như trước đây mình tưởng. Một số kinh nghiệm.
- Phần nghe nói chung : Chỉ cần nghe được một số keyword là đủ để xử lí, không cần nghe hết
- Phần xác định lỗi sai : Hic, phần này hơi khó, dễ bị lừa, nên xem tất các các phrase gạch dưới rồi mới đưa ra quyết định.
- Phần reading : đọc lướt qua nắm một số ý chính, rồi cứ thế mà đánh

Ngày mai bắt đầu làm các bài TOEIC thật. Ráng luyện gà để tháng sau ráng lấy cái TOEIC 600 cho an toàn.

Thứ Ba, 23 tháng 8, 2005

Các chương trình DeCompiler

Tham dự Mobile Games thấy hầu hết sản phẩm đều biên dịch dưới dạng a.class, b.class, c.class... Thấy cũng hơi kì kì, không biết đây có phải là chuẩn nào đó.

Tự sinh nảy sinh ra ý tưởng khả năng biên dịch file thực thi để lấy lại mã nguồn, trước đây cũng đã từng nghe. Cũng đúng, .NET & Java là ngôn ngữ interpreter, do đó hoàn toàn có thể khôi phục lại mã nguồn. Sau một hồi search trên mạng tìm ra ba công cụ decompiler cực mạnh sau

1. .NET Decompiler
Spices - http://9rays.net/
2. Java Decompiler
Cavaj - http://www.bysoft.se/sureshot/cavaj/index.html
3. Delphi
Source Rescuer - http://www.ems-hitech.com/sourcerescuer/

Thứ Hai, 22 tháng 8, 2005

MobileMath 1.0 : hoàn hảo hơn mong đợi

Mất 8h đồng hồ liên tục để fix lại toàn bộ các lỗi và thiết kế lại 50% giao diện sản phẩm.
- Lấy cái FX-500MS ra xem nó thiết kế thế nào rồi bắt chước làm lại :)
- Xem cái giao diện máy tính trong Pocket PC rồi tham khảo làm một cái cho riêng mình
- Cực nhất là phần thiết kế để có thể nhập liệu một cách dễ dàng trên điện thoại thật
- Quyết định đây là phiên bản 1.0 đánh dấu một bước tiến quan trọng của MobileMath


Hình ảnh của buổi làm việc hôm nay, một giao diện khá thân thiện

Thế là dứt điểm MobileMath 1.0. 3h sáng. Hic, phải đi ngủ thôi. Mai thề sẽ không dính tới cái này nữa, lo học TOEIC và làm báo cáo các kì thi khác.

Chủ Nhật, 21 tháng 8, 2005

Xâm nhập thế giới Internet Explorer

Sáng nay nảy sinh suy nghĩ : có cách nào để mình có thể tự động register những thông tin của mình đến các trang Web cần thiết như : các forum, sản phẩm.... Một cách tiếp thị rất hiệu quả đấy chứ. Rõ ràng phải có cách vì đã có một số chương trình trên thế giới cho phép làm như vậy. Điển hình nhất là chức năng Autofill của Google.

Cấu trúc Internet Explorer
1. Cấu trúc một trang HTML xét về cơ bản bao gồm nhiều đối tượng : Form, Button, TextArea... Mỗi đối tượng đều có các thuộc tính khác nhau.
2. Để thao tác đến các đối tượng, chúng ta cần phải lấy được đối tượng HTML đó. Trong Frontpage đó là window.document
3.
Ngoài ra Mic còn cung cấp một giao tiếp COM cho phép người dùng sục vào các đối tượng này. VD để lấy dữ liệu từ một chương trình đang chạy, sẽ lần lượt thực hiện các bước sau
- Lấy handle của cửa số chương trình
- Xem đó có phải IE ko, nếu là IE thì lấy cái control Webbrowser của nó
- Từ WEbbroser control, ta có thể lấy được đối tượng Document của trang Web
- Đến đây thì quá đơn giản, có thể dễ dàng thay đổi, chỉnh sửa các field trong form đó một cách dễ dàng

Một số ý tưởng
- Chương trình hỗ trợ người dùng tự động register các bài viết của mình đến các diễn đàn yêu thích
- Tự động đăng kí sản phẩm đến các site bán hàng trực tuyến trên thế giới

Thứ Bảy, 20 tháng 8, 2005

MobileMath : Cuộc chiến tiếp diễn

Về nhà thư giãn sau khi cái MobileMath hoàn thành, cảm tưởng như sống trong một thế giới hoàn toàn khác : có ba mẹ và mấy em, anh chị, thật là ấm cúng. Được một ngày thì vẫn ko bỏ được Internet, ra check mail mới thấy khá nhiều hồi âm đổ về.

1. Buồn nhất
"Được" BTC reply một list các lỗi chương trình và những lời chê rất chân thành. Ngẫm lại cũng đúng, cái sản phẩm này mình mới viết để chơi thôi chứ chưa thực sự để ứng dụng. Càng hoảng hơn khi thấy một cái chức năng cũng khá tương tự như của mình tên là Calculator. Cũng chẳng xa lạ gì với tác giả, một người khá thân, anh Bảo Định cùng lăng xăng đi thi TTVN như mình và cùng vô vòng chung khảo, sau đó cùng rớt đài :)
http://www.samsungmobilegames.com.vn/2005/gamedetail.asp?game_id=112
Thấy cái này chuyên nghiệp quá. Tuy nhiên chẳng lẽ lại bỏ cuộc, không phải theo đuổi đến cùng vì đó là tâm huyết của mình và là một hướng đi khác so với Calculator.

2. Vui nhất
Khá nhiều góp ý của khán giả trên Sourceforge.net bay về và có cả những lời mời sang Châu Âu làm lập trình viên cho họ. Bây giờ mới hay được cái J2ME cũng đang là một vấn đề nóng bỏng hiện nay và liệu có nên tham gia vào cuộc chơi này? Dù sao đi nữa thì đó là những nguồn động viên rất lớn để mình có thể tiếp tục vươn lên và MobileMath cũng thế.

Tuy nhiên bây giờ phải đi ngủ cái đã, lấy sức để mai tiếp tục vào cuộc chiến gay go nhất : xây dựng một hệ thống đồ họa riêng cho MobileMath

Thứ Sáu, 19 tháng 8, 2005

Hướng tới Samsung Mobile Games 2005

1. Fix một số lỗi nhỏ, hạn chế bộ nhớ sử dụng, chỉnh sửa hình ảnh
2. Hoàn tất bộ hồ sơ gồm các tài liệu
- Bản đăng kí & Mô tả sản phẩm
- Hướng dẫn sử dụng : Hic, cái này tiêu tốn khá nhiều thời gian. Cuối cùng chọn phương án cắt ảnh dán vô cho lẹ.
- Chương trình & Source Code
- File Gif động : Lấy mấy cái file ảnh ghép lại thành Gif luôn


Hình ảnh thành quả của 20 giờ làm việc liên tục trong 3 ngày 16-18/8/2005

3. Thiết kê Website cho sản phẩm
- Trang chủ : http://www.bk02.net/mobilemath
- Phát hành sản phẩm theo giấy phép GPL
- Hoàn chỉnh việc đăng kí ở Sourceforge
http://sourceforge.net/projects/mobilemath

Thứ Năm, 18 tháng 8, 2005

CVS & Giao thức truyền dữ liệu & TC Plugins

1. Hệ thống CVS (Concurrent Version System) và FOSS
Một số tài liệu:
https://sourceforge.net/docman/display_doc.php?docid=14033&group_id=1
http://cvsbook.red-bean.com/
Một số khái niệm:
- Mỗi dự án ở sourceforge.net có một kho chứa
- Module : Một dự án bao gồm nhiều module khác nhau
- Checkout : Down một module về máy
- Diff : So sánh version ở client với máy chủ
- Commit : Cập nhật mới nhất của client lên máy chủ
Một số kiên thức:
- Khái niệm CVS gắn liền với FOSS, giúp nhóm lập trình dễ dàng theo dõi quá trình phát triển của một sản phẩm. Hôm trước tìm hiểu cũng thấy JBuilder đã hỗ trợ CVS
- Có lẽ một số lỗ hổng hacker phát hiện được là nhờ sục vào CVS của sản phẩm mà người dùng vẫn chưa cập nhật được do phiên bản stable chưa được chính thức tung ra
- Các phần mềm giao diện như : Tortoise, WinCVS, CygWin

2. Các giao thức truyền dữ liệu
Một số kiến thức suy gẫm được:
- Các giao thức như : FTP, CVS, HTTP... thực chất chỉ là một dịch vụ (chương trình) trên máy tính và các dịch vụ này lắng nghe theo các cổng khác nhau
- Cách cơ bản để giao tiếp với các dịch vụ là thông qua các tập lệnh command
- Dựa trên cấu trúc command, một số nhóm sẽ phát triển các chương trình đồ họa thuận tiện hơn cho người sử dụng
- Vấn đề tạo ra các dịch vụ gắn liền với môn Lập trình mạng, rất tiếc chưa học tới :)
-->> Có lẽ các suy nghĩ này cũng đúng đối với các hệ thống Windows, Java, SQL Server...

3. Total Commander và hệ thống Plug-ins
http://www.totalcmd.net/
http://www.ghisler.com/plugins.htm
Đến hôm nay mới biết được Total Commander cũng có Plugin mà toàn là những cái đáng giá. VD như cái hiển thi POP3, CVS, SSH... dưới dạng cây thư mục, rất thuận tiện.
Tìm hiểu thấy được cấu trúc của các plug-in như sau

Total Commander <-------DLL------> Plug-ins <-------FPT,CVS,HTTP-------> Server

Thấy thật tuyệt vời, hóa ra thế giới lập trình thật phong phú, tất cả đều có chuẩn của nó và gần như các chuẩn đều được thiết kế tối ưu :). Dựa trên góc nhìn này có thể phân loại được lập trình viên:
- Lập trình viên hệ thống : Có thể hiểu là dùng C chủ yếu (khó diễn tả khái niệm này quá)
- Lập trình viên ứng dụng : Có thể hiểu là dùng PHP, Java, .NET...

MobileMath 0.9b Finish

I. MobileMath 0.9b Finish

- Hoàn tất chức năng máy tính cho MobileMath, phải thực thi các hàm như : LN, EXP, POW... bởi J2ME không hỗ trợ các hàm này.
- Chỉnh sửa các thứ giao diện : Hic, cực kì mệt mỏi vì đây không phải là thế mạnh của mình, có lẽ cái menu ban đầu là tốn nhiều thời gian nhất, nhưng cuối cùng trông cũng được
- Thêm các chú thích bản quyền, hoàn thành bản đăng kí, mô tả sản phẩm, đăng kí ở Sourceforge





II. TOEIC
1. Part 1

- Nội dung : Xem tranh, nghe 4 câu nhận định, chọn câu miêu tả đúng nhất.
- Cách làm : Trước khi nghe, nhìn khái quát bức tranh để nắm nội dung, sau đó tập trung nghe
2. Part 2
- Nội dung : Nghe một đoạn đối thoại + 3 câu, chọn câu đúng với đoạn đối thoại
- Cách làm : Tập trung nghe kĩ câu hỏi, đặc biệt là từ đứng đầu (what, where, how long...).
3. Part 3
- Nội dung : Nghe một đoạn mô tả, mỗi đoạn có 4 câu miêu tả trên giấy. Chọn câu đúng nhất
- Cách làm : Lướt qua các câu trả lời trên giấy, càng nhanh càng tốt để kịp thời gian nghe đoạn băng.

III. Đóng gói lại VSpeech rồi gửi cho Nguyễn Trọng Phụng

Thứ Tư, 17 tháng 8, 2005

Làm quen với JBuilder

1. JBuilder là một môi trường thân thiện như Delphi
Hỗ trợ RAD, IDE, Debug, cấu hình dự án... Tuy nhiên có một sự khác biệt lớn là JBuilder được xây dựng trên nền tảng JDK của Sun, do đó có một số hạn chế như tốc độ chậm và tất cả các hoạt động phải thông qua Java. Tuy nhiên hầu hết các tính năng có trong Delphi đều có trong JBuilder, Debug là một trong những cái quan trọng nhất.
2. Ứng dụng Java cũng được tạo thành từ các gói
Mỗi gói gồm nhiều class. Có một số dự án được đóng gói thành các package để người dụng có thể import vào và sử dụng thay vì phải viết từ đầu. Khái niệm JavaBean ra đời phục vụ cho mục đích đó, tương ứng với Delphi là các component
3. Integrated Team Development
Là một giao tiếp giữa client/server, thay vì dự án được lưu trên máy cục bộ thì ở đây dự án được lưu ở một máy chủ nào đó. Tất cả các thành viên dự án đều thao tác trực tiếp nơi này, điều này nhằm đảm bảo tính nhất quán của dự án. Một số sản phẩm phục vụ cho vấn đề này
- Concurrent Versions System(CVS)
- Borland TeamSource
- Rational ClearCase
-Microsoft Visual SourceSafe
- StartTeam

Thứ Ba, 16 tháng 8, 2005

VTV làm phóng sự về VSpeech

1. Nhận lời mời của VTV quay về sản phẩm VSpeech, chương trình "Mỗi ngày một ý tưởng"
2. 4h chiều, 2 anh phóng viên tới nhà. Sau một hồi nói chuyện đến phần phỏng vấn, demo sản phẩm, sau đó quay cảnh đang ngồi lập trình
3. Một cốt truyện vui được xây dựng, mình làm nhân vật chính :
a. Nhân vật đi nấu mì, trong lúc nấu mì thì dụng microphone điều khiển từ xa để soạn thảo văn bản bằng máy tính
b. Nấu mì xong cũng là lúc soạn thảo văn bản xong, bưng tô mì ra chỗ máy tính
c. Đang ăn thấy chán quá, quát cho máy tính "Windows Media Player đâu, hiện ra chơi nhạc cho tao xem". Hic, thế là tiếng nhạc phát ra.
4. Quay xong thấy cũng hơi xạo, nhưng mấy anh bảo không sao. Thôi đành ngồi nhà chờ đến ngày phóng sự được phát.

Phát triển MobileMath 0.9b

1. Cấu trúc MobileMath
Gồm 3 gói chính:
- Gói Parser (http://olikurt.de/java/mathematical_expression_parser.php) : Một gói phục vụ cho việc tính biểu thức trong môi trường Java
- Gói Graph (http://www.bk02.net/gpack) : Convert từ dự án Graph Package của mình để chạy trên Java
- Gói giao diện : Gồm tập các form để giao tiếp với người dùng. Kế thừa từ 2 lớp chính : Form (sử dụng các thành phần có sẵn từ MIDP 2.0) & Canvas (tự vẽ toàn bộ)
2. Một số hạn chế của J2ME
- Không hỗ trợ Debug, tốc độ hơi chậm
- Các control đều không có sự kiện, gần như bị đóng chặt, ko thể can thiệp. Người dùng chỉ còn cách xây dựng từ Canvas
3. Tìm được một số website về J2ME hay
http://j2mepolish.org/
http://www.benhui.net/

Thứ Hai, 15 tháng 8, 2005

Lập trình trong Linux với Borland Kylix

  1. Tìm hiểu về cách cài đặt Kylix trong Linux, tuy nhiên đã cài vô được rồi những không chạy
  2. Tìm thêm tài liệu trên Internet để khắc phục lỗi, mới biết được Borland đã ngừng không hỗ trợ cho Kylix mà tập trung vào .NET
  3. Tìm được sản phẩm CrossKylix tại địa chỉ http://crosskylix.untergrund.net/. Một plugin cho Delphi nhằm biên dịch trực tiếp các file viết bằng Delphi CLX trực tiếp sang file nhị phân chạy trong Linux
  4. Nhận ra rằng cách tốt nhất để xây dựng các sản phẩm cross-platform chính là sử dụng các công nghệ support cross-platform…Tuy nhiên nhược điểm lớn nhất của các công cụ này là không thể truy xuất được vào các hàm API của hệ thống
  5. Đối với cá nhân, các công ty nhỏ lẻ thì việc lập các chương trình truy xuất vào hệ thống là cực kì mất thời gian, lực cũng không đủ. Có lẽ cách tốt nhất là từ giờ sẽ chuyển sang phát triển trên nền tảng công nghệ sẵn có như Java, .NET...

Chủ Nhật, 14 tháng 8, 2005

Tìm hiểu về lập trình Linux

1. Linux API vs Windows API
Tương tự Windows, Linux cũng được tạo thành từ các hàm API Core được viết bằng C chuẩn. Các thư viện này được thiết kế dưới dạng thư viện liên kết động như trong Windows. Tuy có khá nhiều khác biệt nhưng cấu trúc khá giống nhau. Đây là một trong những nguyên nhân khiến Borland chỉ mất rất ít thời gian để xây dựng Kylix
2. Lập trình cross-platfom
Đề lập 1 chương trình cross-platform, điều cần chú ý nhất là khác biệt giữa các hàm API giữa các môi trường.
{$IFDEF LINUX} //Linux API
strFilename := tempnam(nil, 'tmp');
{$ELSE} //Windows API
GetTempPath(MAX_PATH, strPath);
GetTempFileName(strPath, 'tmp', 0, strFilename);
{$ENDIF}
3. Process, IPC, POSIX
- Có lẽ đây là một trong những thế mạnh của Linux, so với Windows. Trong môi trường Linux, việc lập trình tương tác với process cũng tương tự như việc xuất/nhập ra màn hình. Các việc này được thực hiện chủ yếu thông qua các thao tác gọi hàm API
- Nếu Windows sử dụng cơ chế message để các chương trình có thể tương tác với nhau thì trong Linux sử dụng cơ chế signal, cơ chế này ngondn thấy có vẻ uyển chuyển hơn so với trong Windows - Một khái niệm khác cũng khá thông dụng là POSIX Threads : lập trình giữa các tuyến, có lẽ phần này các bạn cũng được tìm hiểu qua môn HĐH rồi.
4. Hạn chế của Linux về khía cạnh người lập trình
Có lẽ trong Windows ngoài API, các bạn đã biết đến công nghệ COM/ActiveX cho phép các ứng dụng khác nhau có thể tương tác với nhau một cách dễ dàng. Trong Linux không có công nghệ nào tương ứng với cái này, do đó nếu bạn thử Copy & Paste trong Linux, bạn sẽ thấy không thể nào được như trong Windows. Lý do chính là do Linux phát triển bởi cộng đồng nên có một số mô hình không được thống nhất. Do đó tại thời điểm hiện tại đã có một số tổ chức ra đời phục vụ cho việc chuẩn hóa Linux.

Nhân tài đất Việt : Một thách thức lớn

Hôm nay tự nhiên tình cờ ghé trang Web Nhân tài đất Việt. Thấy còn 7 ngày nữa hết hạn. Tự nhiên nảy sinh ý tưởng : Sao không dự thi cuộc thi này. Ok, vậy thì bỏ ra 3,4 ngày viết báo cáo

1. Sản phẩm dự thi
Hợp nhất 3 thư viện cùng các sản phẩm 3DProS, Graph Package, MobileMath thành một sản phẩm duy nhất : Thư viên phát triển các ứng dụng đồ họa RADLib

2. Báo cáo
Cái này cũng hơi căng. Viết phải làm sao phải cho chuyên nghiệp. Quyết định:
- Viết một bản cho BGK đọc
- Viết một bản user guide để sau đó up lên sourceforge luôn
Cùng một đống linh tinh : bản đăng kí, cam kết, đĩa CD, bìa đĩa CD.... Hi vọng cuối tuần sẽ hoàn chỉnh

3. Hic nhưng cái lo nhất là đằng sau mình không có một tổ chức hay thế lực nào cả. Thôi thì xác định là dự thi cho vui, giao lưu biết thêm được nhiều nhân vật lợi hại trong giới CNTT. Nhưng điều đó không có nghĩ là sẽ không cố gắng hết sức mình. Phải tập trung làm cho sản phẩm thật chuyên nghiêp và marketing cho sản phẩm thật tốt. Hi vọng sẽ có được 50% cơ hội lọt vào vòng chung khảo năm nay.

Thứ Tư, 10 tháng 8, 2005

Networking through OSS : Tổng kết (day 6)

1. FOSS (Free Open Source Software)
Khi nhắc tới FOSS, hầu hết mọi người đều liên tưởng tới Linux và các phần mềm cho Linux. Tuy nhiên điều đó không đúng 100%, cũng có nhiều FOSS khác cho Windows, Macintosh...
2. Lợi ích của FOSS
Mình nghĩ chắc không cần nói về vấn đề này vì có lẽ mọi người đều biết những ích lợi của nó, đặc biệt đối với các nước đang phát triển như Việt Nam
3. Chiến lược phát triển FOSS của các quốc gia
Theo mình đọc các tài liệu thì hầu hết các quốc gia hiện nay đều muốn duy trì tỉ lệ nguồn mở - nguồn đóng là 50%-50%. Các quốc gia mạnh về vấn đề này có thể kể tới Mĩ, Ấn Độ, Brazil, Nhật, Trung QUốc...
4. Chiến lược của VN
Cái này do nghe nói dự định của chính phủ VN là sẽ phát triển theo từng bước như sau:
- Bước 1 : Localization (C Proramming : code, font, locale, input ...)
- Bước 2 : Web prorograming : PHP, Java, Perl
- Bước 3 : B2C
5. Việc triển khai FOSS ở các cơ quan VN hiện tại có khả thi?
Cái này do ngondn tò mò và hiếu kì, mỗi buổi đi ăn cơm trưa chung với mấy anh cán bộ nhà nước nghe mấy ông bàn ra bàn vào với nhau thì cảm nhận thấy còn khá xa vời.
Đề án 112 của chính phủ về việc tin học hóa hành chính nhà nước được đầu tư rất lớn lại là giáo trình xây dựng trên nền tảng Windows. Tuy nhiên song song với đó là việc tuyên bố sẽ đẩy mạnh nguồn mở tới các cơ quan ban ngành. Vậy rốt cục, mục đích cuối cùng là gì.
Các bạn có thể đọc ý kiến của TS Nguyễn Trọng về vấn đề này
http://www.tuoitre.com.vn/Tianyon/Index.aspx?ArticleID=90310&ChannelID=16
6. Hãy bắt đầu từ cộng đồng
Có lẽ cách nhanh chóng để có thể thúc đẩy FOSS ở VN là hình thành một cộng đồng đông đảo người dùng Linux ở VN. Tưởng tượng xem nếu chúng ta có một cộng đồng khoảng 1tr Linux users. Cứ 10 trong số đó, ta có 1 OSS developer ==>> Chúng ta sẽ có 100.000 OSS developers. Hic, 1 lực lượng vô cùng khủng khiếp giúp chúng ta đảo ngược tình thế trong nháy mắt : từ một nước tỉ lệ xâm phạm bản quyền vào hàng cao nhất tới một nước có những sản phẩm OSS đẳng cấp thế giới. Liệu có phải là một giấc mơ không nhỉ?

Một số ý kiến cá nhân qua khóa học

1. VN có cần xây dựng các phiên bản Việt hóa Linux?
Không cần. Fedora Core đã là quá đủ. Ở Nhật đa số đều dùng phiên bản này
2. Linux có rất nhiều thứ để khám phá
Linux có thể coi là một HĐH được xây dựng trên các gói packages, một HĐH của cộng đồng thực sự. Chỉ cần 3 đĩa CD, bạn hoàn toàn có thể biến máy tính mình thành một Desktop, Workstation, Web Server...
3. Xây dựng các chương trình cross-platform
ngondn nghĩ có lẽ mình bắt đầu nên làm quen với việc này, không nên lệ thuộc quá nhiều vào công cụ của một công ty. Có thể bạn vẫn phát triển những ứng dụng trên Windows, những hãy cố gắng đảm bảo rằng nó cũng có thể chạy trên Linux
ngondn có 2 tin vui mới biết được:
- Có thể dùng Kylix thay cho Delphi
- Các ứng dụng .NET Framework của Mic đã có thể chạy trên Linux
4. Chúng ta hãy cùng tham gia vào cộng đồng OSS
Cùng share những dòng code của bạn với lập trình viên trên khắp thế giới. Cố gắng tìm hiểu kĩ về các OSS, tránh việc làm lại những gì đã có, thay cho đó là đạp trên những cái đó để xây dựng những cái cấp cao hơn, hữu ích hơn. Và chắc chắn chúng ta sẽ có được những bước tiến rất lớn khi tham gia vào hoạt động này.

Kết thúc lớp học này, thầy giáo đã tặng cho các lớp một bài hát khá hay. Mình rất thích và hi vọng các bạn cũng sẽ thích

We are the world

Here comes a time, when we make a system call,
When the industries must come together as one
All the source codes are waiting,
It's time to lend our hands,
To Open Source,
What is all we need
We cannot go on,
buying binary codes by codes,
and using the outcome as fool,
As GPL tell us,
All the sources are free,
to tailor,
That is all we need

We are the World,
We are the children,
We are the one who make better codes,
so let's start hacking,
Download the source codes,
and make to install it,
Then, you are a part of Open Source Community

Yes, this song is GPLed
You may freely use, re-distribute and modify. It's free.
Copyright (c) 2004, Masayuki Ida

Thứ Ba, 9 tháng 8, 2005

Networking through OSS (day 5)

Kiến thức thu được trong ngày thư năm là về một số khái niệm về các chuẩn hiện nay
1. Chuẩn lưu dữ liệu
Thông thường hiện tại hầu hết chúng ta đều đang sử dụng Microsoft Office, lẽ tất nhiên sản phẩm này đều sử dụng định dạng chuẩn riêng của nó. Điều này tất yếu sẽ dẫn đến khó khăn cho các trình soạn thảo khác đọc các định dạng này. Nếu các bạn đã từng sử dụng Open Office sẽ thấy điều này, Open Office ko đọc được 100% format của Microsoft Office và ngược lại cũng vậy
Do đó xu hướng trong tương lai, sẽ có các định dạng chuẩn mà các trình soạn thảo phải tuân thủ, các chuẩn này sẽ dựa trên nền tảng công nghệ XML.
2. Unicode
Có lẽ khái niệm này đã khá thông dụng. Tuy nhiên có một số vấn đề cũng nên lưu ý:
- Unicode UTF8 : Đây là chuẩn khá phổ biến hiện nay. Ý tưởng của UTF-8 gần giống với các thuật toán nén (liên tưởng thôi). Nếu kí tự là ASCII 8 bit thì dùng 1 byte, một số kí tự khác sẽ dùng 2,3 hoặc 4 byte. Cách lưu này sẽ tiết kiệm được rất nhiều nếu các kí tự chỉ trong bảng ASCII
- Tuy nhiên với cách bố trí của UTF8 ở trên thì việc xử lí sẽ rất chậm. Do đó trong các chương trình tìm kiếm hay các ứng dụng CSDL (VD Google) thì chuẩn UTF-16 sẽ được dùng. Chuẩn này thì mới đúng là Unicode theo mọi người thường hiểu. Dùng đúng 2 byte để mã hóa một kí tư ==>> tốc độ sẽ rất nhanh
3. MUA & MTA
1. Đây là 2 khái niệm dùng trong việc gửi và nhận mail : MUA -- MTA <<---->> MTA -- MUA
MUA có thể hiểu là các chương trình mail client như Outlook Express, Thunderbird phục vụ cho mục đích lấy mail từ server về client. Còn MTA là giao thức truyền giữa các server với nhau.
2. Có 2 chuẩn thường được nhắc tới hiện nay là
- POP3 : mail sẽ được down về máy client bằng Outlook, Thunderbird. Sau đó mail trên server sẽ bị xóa
- IMAP : Thường được dùng cho Web mail
(Nếu có gì không đúng thì mọi người corect giùm nhé)
3. Việc cài đặt máy chủ mail trong Linux khá đơn giản, chủ yếu là cài đặt các gói hỗ trợ. Có một chương trình rất hay ngondn học được là Squirrel mail, một package hỗ trợ webmail rất hay.
4. Các chuẩn in mạng
Thông thường trước đây trong công việc in ấn, mỗi hãng sản xuất máy in đều có những công nghệ riêng, không thống nhất như các cái khác nên đã dẫn tới nhiều vấn đề xung đột. Gần đây đã có một số chuẩn chung được đưa ra. Cái mà ngondn được học là CUPS (Common Unix Printting System)
Hôm nay lần đầu tiên thấy được cái máy in mạng. Hóa ra máy in mạng cũng có địa chỉ IP và có lỗ cắm mạng. Sau khi thiết lập thì việc in ấn chỉ là hình thức gửi dữ liệu từ máy này sang máy khác.

Thứ Hai, 8 tháng 8, 2005

Networking through OSS (day 4)

Một ngày cực kì căng thẳng. Học về security trong Linux. Hic, ngondn này mới hiểu tí xíu về mạng mà ngay sau đó đã chuyển sang security. Như em bé chưa rành cộng trừ phải học tiếp nhân chia. Tuy nhiên sau một hồi chạy hỏi người này người kia, thì buổi học cũng kết thúc với lượng kiến thức thu được khá nhiều (mặc dù chưa được vững lắm)
1. Giấy phép GPL và BSD
Hôm nay lớp cũng dành khá nhiều thời gian để nói về hai loại giấy phép này. Hơi bất ngờ vì chỉ là các điều khoản về việc phát hành phần mềm nhưng nếu ở nước ngoài, chỉ cần vi phạm một điều trong đó là bạn có thể bị khởi kiện với một mức phạt rất lớn.
VN tham gia công ước Bern từ 26/10/2004 nhưng đến giờ tình hình cũng ko tiến bộ hơn được bao nhiêu, hỏi mấy ông làm ở chỗ học (ĐHQG) thì nghe nói sắp tới sẽ cố chuyền từ từ hết sang Linux. Còn bây giờ lấy WinXP xài tạm
2. Giao thức SSH
Giao thức được thiết kế dùng thuật toán Mã hóa công khai tức là dữ liệu sẽ được mã hóa trước khi truyền đi. Chiêu thú vị nhất ngondn học được là điều khiển máy tính từ xa thông qua SSH. Biết password các máy trong phòng, ngondn dùng SSH login rồi gõ init 6. Hihi, mấy ông la oái oái bởi thấy cái máy mình tự nhiên khởi động lại Cool
3. DNS Server
Cái này làm ngondn mất cả buổi chạy tới chạy lui, mục đích là làm một cái tên miền có giá trị trong phạm vi cục bộ. Hic, cuối cùng cũng làm xong nhưng thú nhận là có nhiều cái chẳng hiểu gì cả Rolling Eyes
Hơi mệt, chán nản, nhưng ngondn nghĩ có lẽ tại trình độ của mình chưa tới nên tạm thời gác qua một bên để tiếp tục làm các phần khác.
4. Tạo quyền cho các thư mục
Mục đích của phần này là xác định quyền của các thư mục. Ví dụ như khi bạn truy cập Web, có một số thư mục không cho phép bạn truy cập vào, chỉ dành cho các thành viên.
Cách làm trong Linux cũng khá đơn giản không như ngondn nghĩ trước đây, thêm vài dòng vào trong /etc/httpd/conf/httpd.conf (không nhớ rõ) thêm thư mục muốn xác định quyền
5. Thông tin lượng truy cập
Học về công cụ webalizer. Công cụ dùng để thống kê lượng truy cập webserver. Quên mất không hỏi thầy có công cụ nào để hạn chế lưu lượng, hạn chế...
6. Sử dụng công cụ iptable
Giải pháp security trong Linux. Hiểu một cách khái quát là nó sẽ điều chỉnh dữ liệu giữa các máy trong mạng cục bộ và bên ngoài. VD : cho phép/cấm máy nào...Cái này cũng không có gì cả, chỉ cần xem một vài ví dụ là bạn có thể hiểu
7. Giải pháp hoàn thiện cho vấn đề security
Cuối buổi, ngondn có hỏi thầy một câu là có cách nào để bảo vệ tuyệt đối 100% ko. Thầy giáo trả lời có lẽ chỉ có cách dùng hardware là tốt nhất mà thôi, thầy cũng nói là các nước như Trung Quốc cũng đã làm điều này. Bởi thực sự ví dụ như ở VN dùng router của Cisco, nhưng có chắc là chúng ta kiểm soát được 100% theo ý mình?
Vậy VN thì không biết đến bao giờ có thể chế được? Tiếp tục hỏi thì thấy nói tiếp muốn như vậy thì ít nhất công nghiệp phần cứng nước đó phải phát triển. VN đã có một số hãng lớn đầu tư về lĩnh vực này như Fujitsu, Samsung.. nhưng những con số đó quá nhỏ, còn lại đa số chỉ là lắp ráp các linh kiện. Ngoài ra, khuyến khích người dân dùng hàng điện tử trong nước cũng là một trong những nguyên nhân thúc đẩy việc này.
Có lẽ ngondn không rành về vấn đề này nhưng ngondn thấy sao mà khó thực hiện quá (nếu là phần mềm thì đỡ rồi, đã có các OSS). Hic, đến bao giờ chúng ta mới có thể làm được đây và liệu chúng ta có cần phải làm điều đó không? Mấy câu hỏi cứ quay vòng vòng trong đầu mình từ chiều đến giờ. Bạn nào có ý kiến gì thì giúp mình giải đáp thắc mắc này nhé.

Thứ Bảy, 6 tháng 8, 2005

Networking through OSS (day 3)

Ngày thứ 3 là một ngày bận rộn. Tuy nhiên lượng kiến thức nó đem lại thật là đáng giá và giúp ngondn mở rộng kiến thức mạng ra được rất nhiều. Xin mạn phép mọi người đưa một số ý kiến dành cho các bạn đang còn lơ mơ về mạng.
1. Setting up a network
- Mới đầu trong phòng có 28 cái máy, cả 28 cái này được nối vào 1 router của Cisco. Cái router này có cài HĐH bên trong, mục đích là chỉ định ra có bao nhiêu nhóm, mỗi nhóm gồm những máy nào, và trên đó nó sẽ tự động set IP cho mỗi máy, định hướng đường lưu thông cho cả mạng
- Cuối cùng, chia ra thành 4 nhóm. Mỗi nhóm 7 cái máy, lựa 2 cái máy ra. Một cái làm server, một cái làm webserver. Sau đó config cho máy webserver trỏ tới cái server. Còn mỗi cái server set một địa chỉ IP tĩnh.
Group 1 - server : 192.168.15.2 - Webserver : 192.168.15.1
Group 2 - server : 192.168.16.2 - Webserver : 192.168.16.1
Group 3 - server : 192.168.17.2 - Webserver : 192.168.17.1
Group 4 - server : 192.168.18.2 - Webserver : 192.168.18.1
Các máy client sẽ được cấp IP động bởi router
- Sau khi config xong, mừng không thể tả được, các máy đều được liên thông với nhau một cách hoàn hảo. Thế mà trước giờ cứ tưởng nó phức tạp lắm. Cảm tưởng như mình sắp trở thành một chuyên gia mạng (Hi, nổ tí xíu cho vui) .
2. Setup webserver
Việc thiết lập webserver cũng khá đơn giản
- Cài đặt các gói package bằng Add/Remove, lệnh rpm cài thủ công các gói, hoặc gõ yum update apache
- Một chút xíu về security trong Linux, SELinux ==>> Hơi dài dòng, đại khái là tạo ra những account với các quyền khác nhau để cho người dùng có thể truy xuất thông qua các account đó ==>> ngondn lờ mờ hiểu ra cách cho thuê hosting hiện nay là như thế nào
- Học thêm một phương thức mới SSH. Thông thường, mọi người đều đã biết FTP, SSH cũng là một giao thức truyền dữ liệu như FTP nhưng mã hóa dữ liệu trước khi gửi, do đó bảo mật hơn. Trong Linux bây giờ đa số đều sử dụng SSH, đặc biệt cho các trường hợp Remote Login
- Một chuyện vui : Cái tên Apache có ý nghĩa gì mọi người biết ko? a patch ==>> Không biết mọi người sẽ hiểu theo ý nào?
3. Biến webserver thành một update server cho Linux
Thông thường khi các bạn gõ lệnh yum update, chương trình sẽ tự động down các package mới nhất từ server về. Nhưng có bao giờ bạn hỏi cơ chế được thực hiện như thế nào? Rất đơn giản, để trở thành một update server, down các package về cho vào thư mục /var/www/html/update-fc3 (không nhớ chính xác lắm), rồi chạy mấy cái lệnh yum-arch gì đó là xong. Vô trang chủ fedora.redhat.com, các bạn sẽ thấy rất nhiều máy chủ đóng vai trò là update server.
4. Cộng đồng mã nguồn mở VN, tại sao không?
Có lẽ trải qua 3 ngày học đã giúp ngondn hiểu rõ về mọi khía cạnh trong Linux cũng như cách setup đơn giản cho một mạng trong cơ quan. Ngoài ra cũng thực sự hiều được OSS nó là cái gì và ý nghĩa của nó đối với VN hiện nay. Cuối buổi học hôm nay, kết thúc phần mạng, thầy giáo cũng đã liên tưởng đến một hình ảnh rất hay : "Các bạn thấy đấy, một máy tính đơn lẻ rất khó có thể làm được những chuyện lớn lao, chúng cần được liên kết lại với nhau. Cộng đồng mã nguồn mở cũng vậy, rất khó nếu chỉ có từng cá nhân riêng lẻ. Đây cũng là khó khăn lớn nhất mà các nước đang muốn đẩy mạnh nguồn mở gặp phải. Điều này cần phải có sự giúp đỡ của chính phủ. Lớp học này là một trong những việc phục vụ cho mục đích nó, nhắm training các bạn trở thành những OSS Leader của VN. Sau khóa học, các bạn hãy đóng vai trò như một webserver để có thể giúp đỡ người khác và các lớp sau cứ tiếp tục như thế, chắc chắn cộng đồng OSS ở VN sẽ phát triển. Tokyo và một số thành phố khác đã làm được điều đó, và chắc chắn không xa HCM cũng sẽ làm được như vậy"
Khi nghe những lời đó, ngondn hình dung mình phải làm một cái gì đó để góp phần vào mục đích trên. Có thể sẽ là rất khó bởi ngay cả ngondn trước đây đã từng rất ác cảm với Linux và không nghĩ một ngày nào đó mình sẽ theo chân nó. Nhưng qua khóa học này, thấy đươc lợi ích của Linux và thực sự Linux hoàn toàn có thể thay thế Windows cho tất cả mục đích : cá nhân, văn phòng, lập trình, web server... Điều khó khăn nhất là có lẽ làm sao để mọi người khác thấy được điều đó.
==>> Tuy nhiên làm bằng cách nào bây giờ, có lẽ sẽ bỏ thời gian 1-2 tuần để viết một tutorial hoàn chỉnh giúp các thành viên BKIT còn lạ lẫm Linux có thể dễ dàg chuyển qua Linux, sau đó sẽ phổ biến trên một số diễn đàn khác. Nhưng trước tiên phải chuẩn bị mọi thứ để tháng 9 tới remove hẳn cái Windows ra khỏi máy mình. (Yên tâm, down cái Wine về xài giả lập mấy ct trong Windows cũng được)

Thứ Sáu, 5 tháng 8, 2005

Networking through OSS (day 2)

Ngày thứ 2 quả là căng thẳng và mệt mỏi, gần như làm việc liên tục, chủ yếu tập trung vào các phần quản trị cao cấp trong Linux. Ý tưởng chủ yếu rút ra được trong ngày thứ hai có lẽ là về lợi ích của OSS. Nói về vấn đề này thì hầu hết mọi người đều hình dung ra được. ngondn chỉ xin được nói về vai trò của OSS đối với VN
Lợi ích
- Là một trong những nước nền CNTT còn kém phát triển, có lẽ OSS sẽ là một giải pháp nhanh nhất giúp lập trình viên VN có thể quá độ lên nhanh chóng ngang bằng trình độ của lập trình viên thế giới.
- Khi đã đạt được trình độ nhất định, các lập trình viên VN hoàn toàn có thể đạp trên những cái đang có để vươn lên những tầm cao hơn thay vì lúc nào cũng phải đi sau đuôi các nước khác.
- Đến thời điểm đó, VN chúng ta hoàn toàn có thể ngẩng cao đầu tự hào với những thành quả của mình và chắc chắn chúng ta sẽ có được những sản phẩm khiến cả thế giới phải ngước nhìn thay vì phải mang mặc cảm của một nước tỉ lệ xâm phạm bản quyền vào hàng cao nhất thế giới.
Hạn chế
- Lập trình viên VN vẫn còn rất thụ động, tâm lí ít chịu chuyển sang cái mới mà mình ko rành (ngondn này cũng vậy)
- Tính bảo thủ của người VN vẫn còn rất cao, hiếm có ai chịu chia sẽ những dòng mã nguồn của mình cho người khác. Điều này sẽ tất yếu dẫn đền chúng ta hoàn toàn bị đào thải khỏi thế giới OSS. - Hiện tại, số lượng công ty gia công vẫn còn khá nhiều. Theo lời thầy người Nhật, outsourcing sẽ kill hết nền văn hóa IT của một nước.
Qua buổi học hôm này, tầm nhìn của ngondn này đã lên được rất nhiều, thấy rằng những gì trước đây mình làm có phần hơi vô nghĩa, chỉ phát sinh từ mục đích cá nhân. Có lẽ không còn cách nào khác là phải hòa mình vào thế giới OSS để chính mình cũng có được một tốc độ phát triển như vũ bão của OSS hiện nay.

Thứ Năm, 4 tháng 8, 2005

Networking through OSS (day 1)

Được sự giới thiệu của anh Minh bên Javavietnam.org, ngondn có dịp tham dự một khoá học về OSS do một số giáo viên Nhật giảng dạy, chủ yếu là học về các khía cạnh quản trị nâng cao trong Linux. Sau buổi đầu tiên thì có lẽ một số thắc mắc của mình từ trước đến nay cũng đã dần sáng tỏ. Sau đây là một số ideas muốn chia sẻ với mọi người (không biết có đúng không nữa)
1. Thực sự trước đây trong tin học chủ yếu là phần mềm nguồn mở nhưng có một số công ty, điển hình là chú Bill nhà ta tự nhiên đưa ra xu hướng đóng sản phẩm, làm cả thế giới náo loạn. Tuy nhiên, xu hướng nguồn mở này hiện nay cũng dần dần trở về ban đầu của nó.
2. Có 2 loại giấy phép mã nguồn mở thông dụng là : GPL và BSD. Bạn nên tìm hiểu về 2 loại giấy phép này
3. Khi nói đến nguồn mở hiện nay, chủ yếu là nhắc tới Linux và các phần mềm thiết kế cho nó. Linux có khá nhiều ưu điểm có lẽ mọi người cũng đã biết : ổn định, bảo mật và đặc biệt mang tính cộng đồng. Chính vì xu thế đó mà người ta coi OSS như là một giải pháp tất yếu cho các nước đặc biệt là những nước đang phát triển. Ngoài ra Linux cũng đã được sử dụng cho khá nhiều các thiết bị hiện nay
4. Tuy nhiên Linux cũng có một số hạn chế nhất định, hạn chế lớn nhất là ở chỗ nó mang tính cộng đồng, không có tổ chức nào chịu trách nhiệm, do đó mà ít có dự án kinh doanh cấp cao nào được thiết kế trên môi trường Linux vì có vẻ khá mạo hiểm. Một hạn chế nữa đó là phát triển trong môi trường Linux rất khó, đặc biệt là đối với lập trình viên đã quen với cách kéo thả của Mic như ngondn chẳng hạn.
5. Hiện tại Linux và Windows luôn là 2 thế lực cạnh tranh lẫn nhau và cùng nhau phát triển. Như ngondn có hỏi giáo viên thì cũng được câu trả lời là ở Nhật thì 2 thế này cũng cân bằng. Có lẽ đó là đối trọng để ngành IT có thể phát triển, do đó trong tương lai chắc sẽ không có cái nào có thể lấn át hoàn toàn cái kia cả.
6. Xét về nguồn mở thì hiện nay : Mĩ dẫn đầu, đang phát triển rất mạnh ở các nước Châu Âu, Châu Á cũng đã có các tổ chức nguồn mở của riêng mình.

Thứ Ba, 2 tháng 8, 2005

Đăng kí chủ nhiệm đề tài "Vườn ươm công nghệ"

1. Viết báo cáo
Được bên Thành Đoàn giới thiệu, mình cũng lăng xăng đăng kí một đề tài vườn ươm. Mới đầu tính đăng kí cái VSpeech nhưng thấy không ổn, cái này mà đụng mấy giáo sư tiến sĩ là đi. Cuối cùng đành lấy cái đề tài "Công cụ lập trình toán học". Sau đó tốn cả buổi tối để viết bài báo cáo.

2. Đi đóng dấu
Đây là một khâu quan trọng nhất, cần tìm một cơ quan bảo lãnh. Mọi việc tưởng chừng đơn giản vì lên khoa là xong nhưng không ngờ là mấy thầy cô đi nghỉ hè hết. Chạy qua phòng Đào tạo, sau đó phòng Hành chính đều nhận được cái lắc đầu. Chẳng lẽ hết cách rồi sao, đang định về nhưng nghĩ tới tại sao mình lại không lên nhờ cô hiệu trưởng nhỉ? Một quyết định táo bạo những "lỡ" nghĩ rồi thì lên thôi. Cũng không có ai. Hic, sao trời đối xử bất công với mình vậy :). Quyết định cuối cùng sang bên Trung tâm phát triển KHCN nhờ đứng tên giùm, cũng hên là được đồng ý. Thế là hồ sơ hợp lệ, đợi tháng 11 có kết quả

Thứ Bảy, 30 tháng 7, 2005

Một số kinh nghiệm phát triển Open Source Software

Một số kinh nghiệm phát triển sản phẩm phẩn mềm software của mình trong vòng hơn 1 năm nay.

1. Phát triển sản phẩm phần mềm hoàn chỉnh : nhớ rằng một sản phẩm hay là một sản phẩm đem lại nhiều thuận tiện cho người sử dụng chứ không phải một sản phẩm nhiều chức năng
2. Viết document đầy đủ cho sản phẩm. Nên viết bằng tiếng Anh bới đối tượng OSS nhắm tới thông thường là người nước ngoài. Sẽ có một số lợi thế rất lớn mình sẽ liệt kê trong các bài kế tiếp
3. Làm một trang Web cho sản phẩm. Theo mình, bố cục thường gồm 5 trang là đủ (tiết kiệm thời gian) : Introduction, Feature, Screenshot, Help, Contact. Nhớ trau chuốt cho từng trang
4. Đăng kí dự án tại Sourceforge.net : thứ tự các bước đăng kí nên là Register -> Đợi 2 ngày kiểm tra -> Upload -> File Release -> Trove -> Submit News. Nếu bạn nào cần thông tin chi tiết có thể liên hệ với mình qua mail
5. Dùng một phần mềm register trang Web tự động với các site tìm kiếm. VD : Addweb (~100.000 site)
6. Dùng một phần mềm thông báo release sản phẩm với các tạp chí điện tử. VD : Announce It
7. Dùng một phần mềm tự động upload sản phẩm lên các trang web giới thiệu sản phẩm (free/shareware). VD : Promosoft (~400 site), nên dùng kết hợp
8. Một số trang Web giới thiệu sản phẩm uy tín thì nên đăng kí bằng tay : bởi các trang này sẽ đem lại lượng khách hàng cho bạn rất cao
9. Nên tham gia một số diễn đàn lập trình uy tín như : codeproject.com,... và gửi bài viết nếu có thể bởi điều này sẽ giúp uy tín của bạn tăng cao.
10. Cuối cùng, quan trọng nhất, thường xuyên online, tìm hiểu tối đa trước khi xây dựng một sản phẩm, tránh đụng hàng. Giao lưu với càng nhiều người càng tốt. Tình cờ vô trang web nào thấy hay thì cứ gửi mail cho tác giả hỏi thăm. Thông thường người nước ngoài rất lịch sự ==>> Đây cũng là cách luyện tiếng Anh cực kì hiệu quả.
Ngoài ra hiện mình cũng đang tìm hiểu cách kinh doanh sản phẩm shareware trên mạng. Hi vọng trong tháng tới sẽ có thể nắm được các bước khái quát rồi lên đây tán dóc tiếp

Thứ Hai, 18 tháng 7, 2005

Cảm giác lần đầu tiên làm thầy dạy tin học

Hè này do học kì hè bị hủy, chỉ phải đi MHX vào cuối tuần nên ngondn này cũng lăng xăng chạy sô đi dạy tin học. Trong lúc dạy, có một số tình huống rất vui mình muốn chia sẻ với dân ITBK, nếu sau này có lỡ bất đắc dĩ trở thành thầy dạy tin học

Học sinh cấp 3

- Thầy : Các em cấp 1, cấp 2 đã nhớ chưa. Nếu BGK có hỏi gì thì cứ thành khẩn trả lời, có thì nói có, không thì nói không, đừng nói dối.
- Học sinh : Thầy nói như vậy có nghĩa là học sinh cấp 3 được phép nói dối. Anh em ơi. Hihi!!!
- Thầy (hơi lúng túng Laughing) : Ah, không có em à. Không nên nói dối nhưng nếu có lỡ phóng đại một chút thì cũng không sao Smile em ạ.

Học sinh cấp 2
- Học sinh : Thầy nói hay thật đấy. Em nghĩ thầy mà đi làm quảng cáo sẽ còn rất ấn tượng đấy.
- Thầy : Ủa sao em lại nói vậy?
- Học sinh : À, thì nấy giờ em thầy thầy quảng cáo về thành tích của thầy hay quá mà!!!
- Thầy (quê độ Confused) : E hèm, thôi, chúng ta quay trở lại vấn đề về design sản phẩm...

Học sinh cấp 1
- Học sinh : Thầy ơi, em có ý kiến
- Thầy : Có gì cứ hỏi em ạ. Thầy luôn lắng nghe và sẽ giải đáp mọi thắc mắc của các em cũng như chia sẻ kinh nghiệm của thầy với tất cả các em. Các em cứ mạnh dạn hỏi, đừng có ngại
- Học sinh : Thầy ơi mấy giờ rồi ạ. Em về được chưa? Bố mẹ em đang đợi ở ngoài
- Thầy : (bó tay Rolling Eyes)

Chị phụ trách
- Chị : Mời thầy dùng ly chanh muối ạ!!!
- Thầy : Cám ơn em rất nhiều
- Chị : À, thầy uống xong cầm cái ly xuống giùm cho em luôn nhé.
- Thầy (hơi quê) : Không có gì em ạ. Chắc chắn tí nữa thầy còn phải xuống gặp người dễ thương một lần nữa mà (haha, kinh chưa Cool, chuyển bại thành thắng)

Những kỉ niệm thật đáng yêu và thật khó có thể quên trong cuộc đời SV. Bây giờ mới thấy được nghề gõ đầu trẻ cũng thật là cao quý và trách nhiệm cũng thật là nặng nề. Không dễ như trước đây mình tưởng Very Happy

Facebook Twitter Hot! Delicious Digg Favorites More