Lời nhắn đầu

Hiện nay mình có một vài ý tưởng post lên đây, tuy nhiên chỉ là các bản sơ thảo cho các bạn dễ hình dung. Khi có thời gian, mình sẽ tạo ra sụ minh hoạ và post lên thêm các tài liệu kỹ thuật có được liên quan đến các ý tưởng. Có thể trong các đề xuất có những cái bất khả thi và không hợp lý, hoặc có những điều chưa biết hình dung ra làm sao. Nhưng nếu các bạn có tâm ý cùng mình phát triển chúng, mình tin là sẽ tháo gỡ được nhiều điều.

March 3, 2007 at 5:55 pm Leave a comment

Ứng dụng hỗ trợ xổ lệnh cho SQL Server

Giới thiệu: Có 1 điểm đặc trưng chung trong các phần mềm phát triển của Microsoft là coi trọng tính tiện dụng. Thường khi ta sọan mã bằng các IDE của MS sẽ được hưởng sự tiện lợi to lớn bẳng tiện ích tự xổ lệnh giúp chúng ta đỡ vất vả trong việc phải nhớ tất cả các lệnh. Tuy nhiên trong SQL server thì hầu như không hề có tính năng này, mình đã từng thử qua 2 phiên bản SQL server 2000 và SQL server 2005 đều tương tự như vậy. Có lẽ vì MS nghĩ rằng chúng có quá … ít lệnh nên không quan tâm đến vấn đề này. Với SQL server 2005 thì còn đỡ, chứ còn với SQL server 2000 thì phải nói là cực kì bực mình với sự bất tiện của nó. Khi bạn cần viết các lệnh dài lằng ngoằng thì cẳng còn cách nào khác là vào phần help của nó đề dò lệnh rồi copy và paste ra phần sọan thảo. Vậy mà hiện nay đa số người ta vẫn còn sử dụng SQL server 2000 mới kinh chứ ! Vì vậy mình có ý tường là phát triển một plugin giúp cho việc sọan thảo được dễ dàng hơn trong 2 phiên bản SQL server.

Khái quát: Thực ra thì ứng dụng này cũng khá đơn giản thôi, nó giống như sự kết hợp của vietkey và một cơ sở dữ liệu các lệnh và từ khóa có sẵn của SQL server. Nói rõ hơn thì như sau:

Khi ứng dụng được chạy, nó sẽ tạo ra một hook để chặn các phím được gõ (giống như keylogger đó mà). Các tổ hợp phím sẽ được phân tích và so sánh với một bảng tra cứu cho trước để đưa ra những xử lý. Để làm được điều này chúng ta có thể tham khảo thêm các phần mềm hỗ trợ đánh tiếng viêt như unikey chẳng hạn (vì mình đã có mã nguồn của unikey, tuy nhiên nó lại được viết bằng VC++). Và có một điều hơn nữa là mình có quen một người đã viết ứng dụng tương tự như vậ, chúng ta có thể tham khảo trực tiếp với người đó.

Nhưng mình vẫn có ý muốn mở rộng hơn là có thể xổ ra được tên của các bảng và các hàm người dùng được quyền truy cập. Để thực hiện được điều này thì ứng dụng phải có quyền truy cập trực tiếp vào cơ sở dữ liệu hiện tại mà người dùng đang thao tác. Còn ứng dụng của chúng ta lại là một ứng dụng độc lập với SQL server nên sẽ không có được quyền truy cập vào như là SQL Server. Có lẽ đây là một vấn đề khó, và mình xin đề xuất hai giải pháp:

Khi người dùng mở SQL Server sẽ phải đăng nhập vào để nhận các quyền hợp lệ của mình, qua đó ứng dụng của ta sẽ tìm cách khai thác quyền đăng nhập này. Hay nói cách khác thì ứng dụng của chúng ta sẽ giống như là một spyware, tự khai thác quyền đang nhập của người dùng, sau đó sẽ dùng quyền này để lấy dữ liệu trong cơ sở dữ liệu .

Còn cách này thì cự kì đơn giản, mỗi khi SQL Server được chạy, chúng ta sẽ hỏi người dùng tên và mật khẩu đang nhập của người dùng. Nhưng hẳn các bạn cũng thấy được sự phiền phức và thiếu chuyên nghiệp của nó.

Ý tưởng này sơ qua thì có thể nhiều người nghĩ là phức tạp lắm, nhưng theo mình thì thực hiện nó cũng không quá khó và hòan tòan phù hợp với khả năng sinh viên chúng ta. Ở trên mình chỉ mới trinh bày sơ lược, nếu như bạn quan tâm thì có thể liên hệ với mình để trực thiếp thảo luận cụ thể hơn, mình sẽ cho bạn thấy là nó không hề quá khó.

March 3, 2007 at 5:45 pm 1 comment

Ứng dụng gọi điện thoại quốc tế chạy trên mobile

Giới thiệu ý tưởng : Hiện nay chúng ta đã thấy xuất hiện rất nhiều dịch vụ gọi điện thoại quốc tế cùng với ứng dụng đi kèm. Trong đó có cả những dịc vụ trong và ngòai nước.. Những dịch vụ này hiện nay đã rất phổ biến và sử dụng cũng rất tiện lợi, tuy nhiên chúng có một trở ngại là chỉ có chỉ gọi đựơc từ máy tính đế các máy điện thọai. Để cải thiện, người ta đã có sản xuất ra lọai máy chuyên dụng có thể gọi trực tiếp đến các máy điện thọai (hay còn gọi là điện thọai VoizIP). Nhưng các lọai máy này vẫn có những khuyết điểm là giá thành cao (hiện nay trên thị trường có lọai y@phone với giá trêntrên 100 $), và thực sự vẫn còn khá phiền phức trong việc kết nối. Có một điều tất nhiên là tiền nào của nấy, chúng ta không thể đòi hỏi quá nhiều sự tiện lợi mà chi phí lại quá thấp, tuy nhiên chúng ta vẫn có thể cải thiện những gì có thể trong kha năng cho phép Và mình đã có một ý tưởng nảy sinh là tại sao chúng ta không xây dựng một ứng dụng chạy trên điện thọai di dộng và có thể thực hiện các cuộc gọi theo các dịch vụ. Nếu như ý tưởng này thực hiện được, chúng ta có thể góp phần thúc đẩy cho sự phát triển của các dịch vụ trong nước đang bị chèn ép và đồn thời tạo ra một ứng dụng hòan tòan mới lạ trong lĩnh vực ứng dụng mobile nhiều tiềm năng.

Chi tiết: Chắc các bạn hẳn cũng biết một vài dịch vụ gọi điện đừong dài như snetfone, ringvoiz, evoiz. Nhưng để xây dựng ứng dụng, chúng ta có hai hướng: một là xây dựng chương trình mô phỏng lại một chương trình gọi điện có sẵn nào đó, nhưng lại chạy được trên mobile, hai là tự xây dựng hòan tòan một dịch vụ gọi điện thọai cùng với chương trình đi kèm. Tuy nhiên với khả năng chúng ta thì điề thứ hai là không thể, do đó mình xin chọn phươmg án thứ nhất. Và nếu như bạn cũng đồng ý với mình phương án thứ nhất thì chúng ta sẽ cùng thảo luận tiấp về các bước xây dựng chương trình.

Vì đây là một chương trình mô phỏng, do đó chúng ta cần phải biết nguyên tắc họai động của chương trình nguyên bản. Giải pháp của mình là: chúng ta không cấn quân tâm chương trình này họat độn như thế nào, chỉ cần biết nó gửi thông tin gì và gửi đi đâu. Vấn đề này chúng ta có thể giải quyết bằng cách sử dụng các chương trình để ch8ang các thông tin được chương trình gửi và nhận qua mạng. Về điều này mình biết chúng ta có thể thực hiện được. Tuy nhiên đó vẫn chưa phải là điều khó nhất, mà điều khó nhất là phân tích các dữ liệu chúng ta nhận được. Dữ liệu này phần chính gốm ba phần số ID và password nằm trên thẻ, hai phần này mình tin và cũng hi vọng là không bị họ mã hóa bởi vì cũng khôn có lý do gì đề họ làm việc đó. Còn lại một phần nữa và cũng là quan trọng nhất đó là dữ liệu được mã hóa từ giọng nói của người nói và người nghe. Đề tạo một ứng dụng ghi âm thì chúng ta có thể thực hiện dễ dàng thông qua các hàm sẵn có của windows hoặc các hàm directx. Nhưng đó là xây dựng một ứng dụng cho riêng chúng ta, còn trong trường hợp này thì chúng ta phải tuân theo định dạng mã hóa của họ. Thường thì họ sẽ xây dựng theo các chuẩn sẵn có, nếu vậy thì đó là một điều may mắn cho chúng ta. Nhưng đâu cũng chưa phải là điều đáng ngại nhất bởi vì rất ít khả năng họ có thể tự xây dững một định dạng cho riếng mình. Điều đáng lo nhất ở đây là không biết liệu họ có khóa mã các dữ liệu đó cho mục đích bảo mật không. Có lẽ chúng ta sẽ phải dò xem dịch vụ nào thuận lợi cho chúng ta sẽ theo phát triển chương trình hỗ trợ hoặc là … đề nghị sự giíup đỡ từ họ trong việc chia sẽ sự mã hóa.

Trên đâ là tòan bộ ý tưởng của mình ở mức độ khái quát. Đề viết tiếp ở mức độ chi tiết hơn thì chắc là cần phải có sự hỗ trợ của các bạn

March 3, 2007 at 5:44 pm 1 comment

Xây dựng trang web nghe nhac với nhiều tính năng mới

Giới thiệu ý tưởng: Hiện nay trên mạng đã có vô số trang web nghe nhạc. Các trang này thí đa số đều có giao diện rất đẹp, nhiều trang thì có những tính năng riêng hết sức đặc sắc. Với sinh viên chúng ta thì xây dựng một trang web nghe nhạc như vậy thì thực sự là một niềm mơ ước. Nhưng không ai dám thực hiện vì mất quá nhiều công sức để làm mà lại khó khả quan vì muốn trang web họat động tốt thì phải có chi phí để mua host, tên miền quá cao, ngòai ra còn không biết làm sao để quảng bá đến cho mọi người. Vì vậy theo mình để chúng ta có thể xây dựng một trang web nghe nhạc có thể phát triển được thì phải có những yếu tố sau:

Trang web phải có giao diện đẹp và những tính năng riêng biệt tạo thuận lợi cho người sử dụng

Phải có những giải pháp cứu cánh ban đầu để có thể duy trì trong thời gian tiếp cân với người dùng. Một khi trang web đã dành được sự quan tâm của số lượng lớn người dùng, chúng ta có thể dùng chính nó đề tạo ra lợi nhuận, từ đó ta sẽ có đủ điều kiện để nuôi dưỡng và phát triển trang web mang tính chuyên nghiệp.

Lướt sơ qua các trang web nghe nhạc hiện có, mình thấy rằng các trang này có giao diện rất đẹp, tuy nhiên sự bất tiện còn rất nhiều. Những trang do cá nhân hoặc nhóm tự làm thì tốc độ rất chậm và không ổn định, ngày sống ngày chết. Nhiều trang phải up file nhạc lên các trang khác nhau rồi lấy link đưa vào trang web của mình (thủ công thấy ớn ). Đa số các trang mình phải chọn lần lượt từng bài hát, tức là hết bài này phải lo chọn bài khác. Có những trang thì cho phép chọn theo danh sách, nhưng cũng rất hạn chế vì không thể cập nhật danh sách một cách linh động. Nếu như muốn cập nhật thêm bài hát là điều không thể, chỉ có thể chọn lại danh sách từ đầu. Chán hơn nữa danh sách này chỉ có thể cập nhật các bài hát từ một danh sách theo một tiêu chí nào đó, ví dụ như là theo tên ca sĩ hoặc theo tên nhạc sĩ, hoặc các bài hát được yêu thích nhất. Ví dụ như bạn đang chọn bài từ các bài hát của Mỹ Tâm, liệu bạn có thể đưa vào danh sách đó các bài hát của Quang Linh được không?

Ngoài ra, có một số người có xu hướng muốn được nghe nhạc nhưng không muốn phải mất công chọn bài, mà như vậy hiện nay các trng web hầu như không có.

Và hiện với những trang web bây giờ thì thường chúng ta khó mà nghe nhạc được vì chúng thường hay bị quá tải, còn không thì nghe cả giựt.

Vì vậy đã từ lâu mình có ý tưởng múôn xây dựng một trang web với nhiều tính năng mạnh mẽ hơn, hoàn toàn khác với những trang truyền thống mà chúng ta vẫn thấy.

Khái quát:

Trong trang web của chúng ta, người dùng có thể cập nhật động vào danh sách bài hát, tức là cập nhật mọi lúc mà danh sách không phải bị khởi tạo lại. Có thể tưởng tượng thế này: nó giống như là cái play list của winamp và được neo vào một góc của trình duyệt (giống như mấy cái panel quảng cáo chạy lên chạy xuông ở bên bìa của mấy trang web đó). Khi người dùng muống cập nhật thêm một bài hát nào, người ta có thể kéo bài hát đó và thả vào trong play list đó (dụ này khó à nha!). Người dùng còn có thể xoá bớt những bài trong danh sách nếu muốn.

Chúng ta còn tích hợp thêm chức năng chọn bài tự động, nếu như trong trường hợp điều này bất khả thi vì đòi hỏi quá nhiêu truy vấn từ máy chủ thì chúng ta chỉ cần xây dựng một dịch vụ theo kiểu radio online (giống như Yahoo! Music có trên Yahoo! Messenger vậy đó). Dịch vụ này sẽ lên danh sách hằng ngày các bài hát và phát đi liên tục, theo đó người ta có thể sử dụng dịch vụ này mà nghe nhạc thoải mái khỏi cần phải ngồi canh để chọn bài hát.

Những ý tưởng trên nghe thì hay, tuy nhiên sẽ không thực hiện được với khả năng của sinh viên cho dù đã hội đủ năng lực lập trình. Bởi vì để xây dựng được trang web nghe nhạc chúng ta phải cần nhiều chi phí thuê các host đủ lớn và đủ mạnh để có thể đáp ứng được sự truyền tải lưu lượng thông tin quá lớn. Thường thì người ta kêu gọi sự tài trợ nhưng cũng hết sức khó khăn. Do đó mình có một đề xuất như sau:

Chúng ta sẽ dùng 1 máy tính có nối mạng internet để lưu trữ, vậy thì vấn đề ở đây là làm sao tên miền có thể trỏ đến máy chủ của chúng ta trong khi máy chủ của chúng ta luôn thay đổi địa chỉ IP sau mỗi lần kết nối lại. Vẫn có một giải pháp tình thế, đó là sử dụng một cái host miễn phí, host này sẽ lưu địa chỉ IP của máy chủ, mỗi lần máy chủ tái kết nối thì IP của máy chủ sẽ được cập nhật lên trên host này . Và trang web chính sẽ nằm trên host miễn phí đó, chỉ có toàn bộ cơ sở dữ liệu là nằm trên máy chủ của chúng ta nhằn đỡ tốn kém chi phí. Mình đã từng thấy người ta sử dụng chính máy của họ đề làm máy chủ cho game MU, chỉ khác là họ có IP tĩnh để người chơi truy cập trực tiếp, vì vậy mình không nghĩ cách này là không khả thi.

Ngoài ra, nếu cần thiếu chúng ta có thể lưu dữ liệu trên nhiều máy để giảm sự nghẽn mạng.

Mình không dám chắc những ý trên là hoàn toàn khả thi, nhưng mình nghĩ nếu chúng ta cùng thực hiện thì sẽ từ từ khắc phục những khuyết điểm và áp dụng nhiều sáng kiến mới hợp lý hơn. Có lẽ chỉ có sự giúp đỡ của các bạn mới có thể tạo ra mức chi tiết hơn cho dự án này.

March 3, 2007 at 5:43 pm 2 comments

Lý do tôi lập Blog này !

Ai cũng có trong đầu những ý tưởng. Có những người lâu lâu mới nảy ra một vài ý tưởng (nhưng đáng giá cả bạc tỉ). Cũng có những người giàu trí tưởng tượng, trong đầu luôn bật loé lên những ý tưởng … bở, và tôi cũng thuộc loại người như vậy. Thú thật là hết sức khó chịu khi có những ý tưởng cứ bò lúc nhúc trong đầu. Vì vậy tôi chọn giải pháp là tung những ý tưởng này lên thế giới ảo, giống như người ta vẫn thường tung virus, spyware, trojan… lên trên đó vậy, vì cũng hi vọng giống như họ là một ít trong số đó có thể gặp môi trường tồn tại thích hợp để có thể sinh sôi và phát tán. Bởi như vậy biết đâu tôi có thể tìm thấy những có cùng suy nghĩ như tôi, có khả năng hiện thực hoá những ý tưởng đó, mà nếu như họ chọn tôi để cùng hợp tác thì tôi cảm ơn lắm lắm (vì đa số những ý tưởng đều nằm ngoài khả năng của tôi). Và thêm nữa, đây cũng coi như là cách để tôi giải toả căng thẳng sau những lúc đã ra sức bật nảy ra những ý tưởng .

January 22, 2007 at 5:47 pm 1 comment


Categories

  • Blogroll

  • Feeds