LG-Chocolate BL40 – Đẳng cấp là đây.
Posted in Cuộc sống & công nghệ on Tháng Mười 6, 2009 by luongkhanhChocolate mới BL40 có màn hình cảm ứng rộng tới 4 inch, hẹp và dài, độ phân giải tới 800 x 340 pixel, tỷ lệ 21:9, cho phép xem phim, hiển thị trang web ngang tuyệt vời. Máy sử dụng giao diện S-Class được sửa đổi phù hợp với màn hình. Đây là chiếc di động nhắm tới người dùng giải trí, với máy ảnh 5 Megapixel, âm thanh loa ngoài tốt, giắc cắm tai nghe 3,5 mm. Chỉ mới nhìn qua về vẻ bề ngoài, thật khó mà cưỡng lại được sức hấp dẫn đầy sang trọng và đẳng cấp của LG Chocolate BL-40. Hiện tượng viền đen đã dược loại bỏ hoàn toàn và trông BL-40 dài thon mảnh như một thanh sôcôla hoàn hảo.
LG Chocolate BL-40 còn có giao diện người dùng S – Class cực kỳ mượt mà cho phép có thể trình diễn các ứng dụng dạng 3D. Bộ mặt ngoài của điện thoại cảm ứng này đã từng xuất hiện trên LG Arena hay Smart Viewty. BL-40 còn có thể kết nối tốc độ cao UMTS/HSDPA 7.2 Mbps, Máy có 3G, GPS, Wi-fi. Và đặc biệt có camera 5 chấm với lens của nhà sản xuất nổi tiếng ở Đức Schneider-KREUZNACH, tiêu điểm tự động và đèn LED trợ sáng, chụp ảnh đẹp với nhiều tùy chỉnh chuyên nghiệp được thêm vào. LG Chocolate BL-40 hứa hẹn sẽ sản xuất ra những bức ảnh mà chất lượng thì không chê vào đâu được. Tất nhiên, với những thông tin như vậy thì quá tuyệt vời rồi nhưng chỉ tiếc là giá cả vẫn chưa được công bố.
Dưới đây là hình ảnh đẹp về chiếc di động này.










Links
Posted in Nokia Series by Symbian on Tháng Chín 1, 2009 by luongkhanh1. Guide Development Application on Symbian Operating with Carbide C++ Express: http://www.pdaviet.net/showthread.php?t=38820
2. Symbian C++ – Quick Start: http://developer.symbian.org/wiki/index.php/Symbian_C%2B%2B_Quick_Start
3. Simple Application Feature: http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Symbian_C++/Code_and_Examples.xhtml
Bí mật cuộc sống
Posted in Cuộc sống & công nghệ on Tháng tám 11, 2009 by luongkhanhCynthia và Alvin chơi với nhau từ nhỏ, và khi lớn lên một chút, tình bạn của họ chuyển thành tình yêu, nhưng bố mẹ hai bên không chấp thuận.
Rồi Alvin nhận được một học bổng du lịch. Sợ tình yêu sẽ ảnh hưởng đến việc học của Alvin, bố mẹ cậu tìm đến Cynthia, yêu cầu cô tránh mặt Alvin. Nghĩ đến sự nghiệp của Alvin nên Cynthia đồng ý.
Alvin cực kỳ suy sụp. Vài ngày sau, Cynthia nghe chị Alvin nói rằng cậu đã tới London. Nhiều tháng trôi qua, Cynthia không nhận được tin gì từ Alvin. Đôi khi, không chịu nổi nữa, cô gọi điện cho chị gái Alvin để hỏi thăm. Chị Alvin nói rằng cậu vẫn khỏe mạnh, học giỏi và đã có bạn gái mới. Cynthia cảm thấy mọi thứ như đều đảo lộn, dù biết đó là điều tốt nhất của Alvin. Cô cố quên Alvin nhưng không thể. Cynthia trở nên tuyệt vọng, mệt mỏi và hay khóc.
Một đêm, khi Cynthia đang khóc, thì có tiếng chuông điện thoại. Đầu dây bên kia là tiếng của Alvin :
- Cynthia, đừng khóc. Anh sắp về nhà rồi, chờ anh nhé!
Chỉ được có thế, rồi Alvin vội vã gác điện thoại.
Đêm hôm đó, Cynthia nằm mơ thấy Alvin. Họ gặp nhau ở khu công viên trước đây hai người thường đến chơi. Alvin nói rằng cậu rất vui được gặp lại Cynthia, rằng cậu không hề có bạn gái mới. Nhưng trước khi Cynthia kịp hỏi gì thì Alvin đã biến mất.
Sáng hôm sau, Cynthia vội vã gọi điện cho chị của Alvin, kể lại mọi chuyện và hỏi có phải Alvin sắp về không.Chị gái Alvin chợt òa khóc:
- Cynthia, xin lỗi em, tất cả là do chị nói dối đấy. Alvin đã mất cách đây 6 tháng, nó bị tai nạn ô tô … Alvin từng nói là nó không chịu được khi thấy em buồn … Chị đã nghĩ là có thể nói dối để em quên Alvin đi…
Cho dù Cynthia khẳng định một ngàn lần rằng đêm hôm trước, Alvin đã thật sự gọi điện về cho cô, thì chị gái Alvin vẫn khăng khăng rằng đó chỉ là do cô tưởng tượng và sự thật là Alvin đã mất rồi.
Nhưng Cynthia không tin. Cô tin rằng Alvin sẽ gọi điện lần nữa. Và đúng như thế, khoảng bằng giờ đêm trước, điện thoại reo. Cynthia nhấc máy ngay lập tức.
Lần này, Alvin nói nhiều hơn, rằng cậu chưa bao giờ quên Cynthia, rằng cậu không ở cạnh Cynthia được, nhưng họ vẫn có thể nói chuyện qua điện thoại như vậy.
- Anh đã sửa điện thoại rồi à? – Mẹ Cynthia hỏi bố cô như vậy khi ông vừa bước vào nhà – Em thấy Cynthia nói chuyện điện thoại với ai đó suốt đêm hôm qua.
- Em làm sao thế ? – Bố Cynthia lắc đầu khó hiểu – Anh đã sửa điện thoại đâu, máy vẫn hỏng mà!
Bạn có thể gửi câu chuyện này cho những người mà bạn quan tâm và nói với họ những gì bạn cảm thấy và nói với họ rằng bạn yêu quý họ đến mức nào. Câu chuyện thật buồn, nó nhắc chúng ta nếu chúng ta yêu thương một người, hãy biết trân trọng khi bạn còn có thể. Bởi không ai nói trước được tương lai, đừng bao giờ để mình phải hối hận vì mình đã không đủ quan tâm, không đủ yêu thương, hoặc không đủ can đảm để vượt qua những khó khăn, để giữ những gì mình yêu quý …
Bắt đầu với API Win32
Posted in Lập trình VC++/MFC/ALT on Tháng Năm 6, 2009 by luongkhanhCó thể nói API tuy đã cổ xưa nhưng tầm quan trọng của nó đối với hệ thống của Window thì vẫn vô cùng quan trọng. Hôm nay Khánh tôi xin giới thiệu với các bạn viết code để tạo ra ứng dụng của cửa sổ Windows cơ bản, qua đây mọi người có thể hiểu rõ hơn về mô hình hoạt động của Windows.
Thực tế mà nói lập trình API khó hơn Java hay C# một chút, theo đánh giá của cá nhân tôi, API nó giống theo kiểu HTML, viết để tạo thành các window, listbox, checkbox, menu, dialog, pen, Cursor, brush… và trong một ứng dụng mỗi đối tượng đều đi kèm một Handle, chúng ta cán Handle cho đối tượng là để thông báo với hệ điều hành rằng chúng ta sẽ sử dụng đối tượng nào, qua đó hệ điều hành sẽ cung cấp các thư viện và cấp phát bộ nhớ cho mỗi đối tượng.
Khánh tôi xin thông báo với các bạn một chút, đó là nếu các bạn thấy bài viết của tôi có ích cho các bạn thì mong các bạn để lại một lời cám ơn trong phần “Comment” để khánh tôi có động lực viết tiếp theo yêu cầu của các bạn. Xin chân thành cảm ơn.
Nick Carter – Forever Rebel
Posted in Cuộc sống & công nghệ on Tháng Năm 4, 2009 by luongkhanhI got no education
Got no communication
Don’t need no one to waste my time
Don’t need no face to tell me
Don’t no one to sell me
Won’t be convicted for your crime, alright
Everybody has to be somebody they don’t wanna be
But i, wanna be, I wanna be free
Chorus
’cause I’m a little bit o’love
A little bit o’ hate
A little bit of me that you can’t break
You know that I will be forever rebel
’cause I’m a little bit o’soul
A little bit o’ lust
A little piece of me that you can’t trust
Baby, I will be forever rebel
Yo! it’s like 1, 2 ,3 and to the 4
Everybody’s here, got the cops knocking at my door
Somebody call 911
I’m on probation but the party’s just begun
I got no obligation
To fix my situation
Don’t need no one to pick me up
I want the satisfaction
That comes from your reaction
I wanna feel it in my blood, oh yeah
Everybody has to be somebody that they don’t wanna be
But i, wanna be, I wanna be free
Chorus
’cause I’m a little bit o’love, a little bit o’ hate
A little bit of me that you can’t break, baby
I will be forever rebel
’cause I’m a little wound up, a little freaked out
I need a little time to scream ‘n’ shout, baby
I will be forever rebel
I will be forever rebel
A little wound up, a little freaked out
I will be forever rebel
Everybody has to be somebody that they don’t wanna be
But i, wanna be, I wanna be free
Chorus
’cause I’m a little bit o’love, a little bit o’ hate
A little bit of me that you can’t break, baby
You know that I will be forever rebel
’cause I’m a little bit o’soul, a little bit o’ lust
A little piece of me that you can’t trust, baby
I will be forever rebel
’cause I’m a little bit o’love, a little bit o’ hate
A little bit of me that you can’t break, baby
You know that I will be forever rebel
’cause I’m a little bit o’soul, a little bit o’ lust
A little piece of me that you can’t trust, baby
I will be forever rebel
Na na na na na….
I will be forever rebel
Cuộc sống phụ thuộc vào cách nhìn của chúng ta
Posted in Cuộc sống & công nghệ on Tháng Năm 4, 2009 by luongkhanhCho dù đi đến bất kỳ nơi đâu, trải qua bất cứ chuyện gì và thời gian bao lâu thì bản chất con người bạn cũng vẫn thế. Điều này cũng đồng nghĩa với việc bạn hãy quên đi vọng tưởng rằng, nếu ở một hoàn cảnh khác, một nơi khác thì tính cách, cuộc đời mình sẽ thay đổi.

Chúng ta thường có khuynh hướng tin rằng, nếu cuộc sống của mình giàu có, thu nhập cao, sống trong ngôi nhà to lớn… thì chắc rằng chúng ta sẽ không còn phiền muộn, than vãn nữa. Chúng ta sẽ hạnh phúc và hài lòng hơn với cuộc sống. Điều này hoàn toàn không hẳn là thế.
Thực tế, nếu có thói quen suy nghĩ tiêu cực như thế – ví dụ bạn là người hay bực bội, luôn cau có và khó chịu, hoặc luôn ước mong mọi việc sẽ khác đi so với tình trạng trước mắt – thì những suy nghĩ này sẽ luôn đi theo bạn, cho dù bạn đến bất cứ nơi đâu và ở vào hoàn cảnh khác tốt hơn.Và điều ngược lại cũng hoàn toàn đúng. Nếu bạn là người luôn vui vẻ, có cái nhìn bao dung với đời thì cho dù từ hoàn cảnh tốt rơi vào hoàn cảnh khó khăn, bạn cũng không hề than vãn hay thể hiện sự khó chịu.
Có một câu chuyện rất thú vị như sau. Một ông lão ngồi hóng mát trước cửa nhà. Trên đường có nhiều tốp người di cư đến. Người nào cũng mang theo nhiều túi xách và trên xe chở đầy vật dụng. Tốp người đầu tiên ghé lại hỏi ông lão: “Dân ở đây sống thế nào hở bác?”. Ông lão trả lời: “Thế người dân chỗ anh ở trước đây sống ra sao?”. Người mới đến trả lời: “Họ sống ích kỷ và rất tham lam”. Ông lão trả lời: “Người dân ở đây cũng vậy!”. Tiếp đến, tốp đi sau cũng ghé hỏi ông lão cùng một câu như thế. Ông lão cũng hỏi họ câu hỏi trên, nhưng nhận được câu trả lời rằng: “Người dân chỗ tôi ở trước đây sống rất tốt bụng, hiền lành và nhân ái”. Ông lão đã không ngần ngại trả lời rằng: “Người dân ở đây cũng hiền lành, tốt bụng và nhân ái như thế!”
Câu chuyện trên nhắn gửi đến bạn thông điệp rằng, bạn đã nhìn nhận cuộc sống thế nào, thì cuộc sống sẽ đối đãi lại bạn như thế đó. Khi cuộc sống hoà thuận và bằng lòng với những gì đang có, thay vì vọng tưởng về những điều tốt đẹp vượt qua tầm tay, cuộc sống của bạn chắc chắn sẽ được thanh thản và thoải mái. Và dù đi đến bất cứ nơi đâu, làm bất cứ việc gì, gặp gỡ bất cứ ai, bạn cũng sẽ mang theo cảm giác bình yên đó. Bạn sẽ nhận thấy rằng, dù hoàn cảnh thay đổi, bản chất của mình sẽ vẫn không hề thay đổi.
Công nghệ 3G
Posted in Cuộc sống & công nghệ on Tháng Tư 28, 2009 by luongkhanh
3G là thuật ngữ dùng để chỉ các hệ thống thông tin di động thế hệ thứ 3 (Third Generation). Đã có rất nhiều người nhầm lẫn một cách vô ý hoăc hữu ý giữa hai khái niệm 3G và UMTS (Universal Mobile elecommunications Systems).

Để hiểu thế nào là công nghệ 3G, chúng ta hãy xét qua đôi nét về lịch sử phát triển của các hệ thống điện thoại di động. Mặc dù các hệ thống thông tin di động thử nghiệm đầu tiên đựơc sử dụng vào những năm 1930-1940 trong trong các sở cảnh sát Hoa Kỳ nhưng các hệ thống điện thoại di động thương mại thực sự chỉ ra đời vào khoảng cuối những năm 1970 đầu những năm 1980. Các hệ thống điện thoại thế hệ đầu sử dụng công nghệ tương tự và người ta gọi các hệ thống điện thoại kể trên là các hệ thống 1G.
Khi số lượng các thuê bao trong mạng tăng lên, người ta thấy cần phải có biện pháp nâng cao dung lượng của mạng, chất lượng các cuộc đàm thoại cũng như cung cấp thêm một số dịch vụ bổ sung cho mạng. Để giải quyết vấn đề này người ta đã nghĩ đến việc số hoá các hệ thống điện thoại di động, và điều này dẫn tới sự ra đời của các hệ thống điện thoại di động thế hệ 2.
Ở châu Âu, vào năm 1982 tổ chức các nhà cung cấp dịch vụ viễn thông châu Âu (CEPT – Conférence Européene de Postes et Telécommunications) đã thống nhất thành lập một nhóm nghiên cứu đặc biệt gọi là Groupe Spéciale Mobile (GSM) có nhiệm vụ xây dựng bộ các chỉ tiêu kỹ thuật cho mạng điện thoại di động toàn châu Âu hoạt động ở dải tần 900 MHz. Nhóm nghiên cứu đã xem xét nhiều giải pháp khác nhau và cuối cùng đi đến thống nhất sử dụng kỹ thuật đa truy nhập phân chia theo mã băng hẹp (Narrow Band TDMA). Năm 1988 phiên bản dự thảo đầu tiên của GSM đã được hoàn thành và hệ thống GSM đầu tiên được triển khai vào khoảng năm 1991. Kể từ khi ra đời, các hệ thống thông tin di động GSM đã phát triển với một tốc độ hết sức nhanh chóng, có mặt ở 140 quốc gia và có số thuê bao lên tới gần 1 tỷ. Lúc này thuật ngữ GSM có một ý nghĩa mới đó là hệ thống thông tin di động toàn cầu (Global System Mobile).
Cũng trong thời gian kể trên, ở Mỹ các hệ thống điện thoại tương tự thế hệ thứ nhất AMPS được phát triển thành các hệ thống điện thoại di động số thế hệ 2 tuân thủ tiêu chuẩn của hiệp hội viễn thông Mỹ IS-136. Khi công nghệ CDMA (Code Division Multiple Access – IS-95) ra đời, các nhà cung cấp dịch vụ điện thoại di động ở Mỹ cung cấp dịch vụ mode song song, cho phép thuê bao có thể truy cập vào cả hai mạng IS-136 và IS-95.
Công nghệ 3G
Do có nhận thức rõ về tầm quan trọng của các hệ thống thông tin di động mà ở châu Âu, ngay khi quá trình tiêu chuẩn hoá GSM chưa kết thúc người ta đã tiến hành dự án nghiên cứu RACE 1043 với mục đích chính là xác định các dịch vụ và công nghệ cho hệ thống thông tin di động thế hệ thứ 3 cho năm 2000. Hệ thống 3G của châu Âu được gọi là UMTS. Những người thực hiện dự án mong muốn rằng hệ thống UMTS trong tương lai sẽ được phát triển từ các hệ thống GSM hiện tại. Ngoài ra người ta còn có một mong muốn rất lớn là hệ thống UMTS sẽ có khả năng kết hợp nhiều mạng khác nhau như PMR, MSS, WLAN… thành một mạng thống nhất có khả năng hỗ trợ các dịch vụ số liệu tốc độ cao và quan trọng hơn đây sẽ là một mạng hướng dịch vụ.
Song song với châu Âu, Liên minh Viễn thông Quốc tế (ITU – International Telecommunications Union) cũng đã thành lập một nhóm nghiên cứu để nghiên cứu về các hệ thống thông tin di động thế hệ 3, nhóm nghiên cứu TG8/1. Nhóm nghiên cứu đặt tên cho hệ thống thông tin di động thế hệ thứ 3 của mình là Hệ thống Thông tin Di động Mặt đất Tương lai (FPLMTS – Future Public Land Mobile Telecommunications System). Sau này, nhóm nghiên cứu đổi tên hệ thống thông tin di động của mình thành Hệ thống Thông tin Di động Toàn cầu cho năm 2000 (IMT-2000 – International Mobile Telecommunications for the year 2000).
Đương nhiên là các nhà phát triển UMTS (châu Âu) mong muốn ITU chấp nhận hệ thống chấp nhận toàn bộ những đề xuất của mình và sử dụng hệ thống UMTS làm cơ sở cho hệ thống IMT-2000. Tuy nhiên vấn đề không phải đơn giản như vậy, đã có tới 16 đề xuất cho hệ thống thông tin di động IMT-2000 (bao gồm 10 đề xuất cho các hệ thống mặt đất và 6 đề xuất cho các hệ thống vệ tinh). Dựa trên đặc điểm của các đề xuất, ITU đã phân các đề xuất thành 5 nhóm chính:
- IMT DS (trải phổ dãy trực tiếp). Người ta thường gọi các hệ thống này là UTRA FDD và WCDMA. Trong đó UTRA là từ viết tắt của UMTS Terrestrial Radio Access.
- IMT MC (nhiều sóng mang). Đây là phiên bản 3G của hệ thống IS-95 (hiện nay gọi là cdmaOne)
- IMT TC (mã thời gian). Về thực chất đây là UTRA TDD, nghĩa là hệ thống UTRA sử dụng phương pháp song công phân chia theo thời gian.
- IMT SC (một sóng mang). Các hệ thống thuộc nhóm này được phát triển từ các hệ thống GSM hiện có lên GSM 2+ (được gọi là EDGE).
- IMT FT (thời gian tần số). Đây là hệ thống các thiết bị kéo dài thuê bao số ở châu Âu.
Công nghệ 3G nào cho Việt Nam?
Như tôi đã trình bày ở trên, hiện nay trên thế giới có tới 5 nhóm công nghệ được đề xuất cho các hệ thống thông tin di động thế hệ thứ 3 vậy con đường nào là hợp lý cho Việt Nam? Để trả lời câu hỏi này chúng ta cần phải xem xét đến 2 khía cạnh, đó là hiện trạng mạng viễn thông Việt Nam và xu thế phát triển công nghệ của thế giới.
Hiện tại Việt Nam có 3 công ty cung cấp dịch vụ thông tin di động đã/chuẩn bị hoạt động. Đó là công ty VMS (GSM), VinaPhone (GSM) và Saigon Postel (cdmaOne). Tổng số thuê bao của hai nhà cung cấp dịch vụ GSM khoảng hơn 1 triệu (rất khó tính chính xác con số này bởi vì hiện tại có tới 70% số thuê bao sử dụng dịch vụ trả tiền trước). Hầu hết các trạm gốc đều sử dụng dải tần 900 MHz. Saigon Postel sẽ cung cấp dịch vụ thông tin di động CDMA vào tháng 7 (số thuê bao hiện tại = 0). Để tiến tới mạng 3G từ mạng GSM thì con đường hợp lý nhất, theo hầu hết các nhà phân tích là từ GSM -> GPRS -> WCDMA. Theo như quảng cáo của hầu hết các nhà cung cấp giải pháp viễn thông thì đây là con đường hiệu quả nhất vì nó cho phép tận dụng tối đa cơ sở hạ tầng của mạng hiện có. Nhưng theo quan điểm của cá nhân tôi thì để thực hiện bước chuyển đổi như vậy là rất tốn kém và lãng phí. Xin lấy ví dụ, khi tiến hành chuyển đổi từ GSM sang GPRS thì cần phải nâng cấp toàn bộ phần giao diện vô tuyến, các khối điều khiển truy nhập và lắp đặt thêm các khối hỗ trợ dịch vụ chuyển mạch gói trong mạng (ví dụ GGSN, SGSN…). Tương tự như vậy khi chuyển đổi từ GPRS sang WCDMA ta lại phải tiến hành một bước nâng cấp và … vứt bỏ. Bản thân tôi cũng đã được tham dự khá nhiều hội thảo về tiến trình chuyển đổi lên 3G. Tôi rất thích một câu nói của một nhà cung cấp dịch vụ (người trình bày hội thảo): “Tiến trình chuyển đổi (GSM->WCDMA) chẳng qua chỉ là cách vẽ trên sơ đồ mà thôi. Còn về thực chất cái mà bạn có thể tận dụng được chẳng qua chỉ là… cái nhà chứa thiết bị mà thôi”.
Do CDMA có rất nhiều ưu điểm so với các phương thức đa truy nhập khác như hiệu suất sử dụng phổ tần cao, có khả năng chuyển giao mềm, đơn giản hoá việc phân chia và quản lý tần số… nên dù ở châu Âu hay châu Mỹ người ta cũng đều ngầm hiểu với nhau rằng mạng 3G trong tương lai sẽ là mạng sử dụng công nghệ CDMA. Những mạng sử dụng công nghệ CDMA hiện tại (ví dụ mạng của Saigon Postel) sẽ có khả năng chuyển đổi dễ dàng sang mạng 3G hơn. Con đường là cdmaOne ->cdma2000 1X ->cdma2000 3X. hoặc cdma2000 RTT1X ->cdma2000RTT3X. Việc chuyển đổi cho phép tận dụng hầu như toàn bộ các thiết bị sẵn có của mạng mà không cần phải nâng cấp, lắp đặt thêm nhiều khối chức năng như đối với các hệ thống GSM.
Như vậy, đối với các nhà cung cấp dịch vụ thông tin di động CDMA như Saigon Postel thì chắc chắn họ sẽ chọn con đường cdmaOne->cdma2000 1x ->cdma2000 3x hoặc cdmaOne ->cdma2000 3x.
Còn đối với VNPT (nhà cung cấp dịch vụ viễn thông lớn nhất Việt Nam thì sao?. Có hai lựa chọn cho họ. Thứ nhất, phát triển mạng GSM hiện tại lên GPRS rồi lên WCDMA -> Cách này tương đối tốn kém. Cách thứ 2: hiện tại mạng GSM mới chỉ dùng các băng tần 900 MHz và số lượng các thuê bao chưa phải là rất lớn, có thể triển khai song song dịch vụ CDMA ở dải tần 1800 MHz – 1900 MHz. Cùng với thời gian, mạng này sẽ nở dần ra và cung cấp các dịch vụ 3G trong tương lai. Đề xuất cụ thể: triển khai ngay mạng CDMA sử dung công nghệ cdma2000 1X (2.5G).
Các nhà cung cấp dịch vụ VNPT sẽ chọn con đường nào?
Từ xưa đến nay có một nguyên tắc quan trọng nhất trong việc điều hành công việc ở Việt Nam, đó là nguyên tắc ổn định là trên hết. Với tâm lý trên thì dường như các nhà lãnh đạo VNPT thiên về giải pháp an toàn tức là phát triển mạng 3G từ mạng GSM hiện tại và tất nhiên con đường đi sẽ là GSM ->GPRS->WCDMA. Với cách đi này thì khả năng đổ vỡ sẽ thấp nhưng hiệu quả đương nhiên cũng sẽ không cao. Nhưng không ai lai muốn bị cắt chức như tổng giam đốc Vietxo Petro.
Khi nào triển khai công nghệ 3G là hợp lý?
Một lần nữa vấn đề chính sách lại được đặt ra. Hiện tại, giá cước viễn thông Viêt Nam do Bộ Bưu chính Viễn thông quy định. Giá cước như hiện nay là quá cao so với hầu hết các nước trong khu vực cũng như là quá cao so với chi phí sản xuất thực tế bỏ ra. Nếu triển khai dịch 3G thì mức giá chắc chắn sẽ phải cao hơn giá các dịch vụ 2G hiện tại và như thế là quá cao so với mức thu nhập của người Việt Nam. Theo một số tài liệu mà tôi có thì hiện nay nêu triển khai dịch vụ 3G, chỉ cần thu mỗi thuê bao tối thiểu từ $15-$20 là nhà cung cấp dịch vụ đã có lãi, vấn đề là cần có cơ chế hợp lý (tự do hoá thì tốt quá). Ngoài ra, vấn đề về nội dung dịch vụ cũng không kém phần quan trọng. Ở Nhật Bản, khi triển khai dịch vụ iMode (dịch vụ sử dụng màn hình màu cho phép người sử dụng truy cập vào các trang Web đặc biệt cung cấp các thông tin về thời tiết, giao thông…) chỉ sau 1 năm triển khai người ta đã thu hút được tới 13 triệu thuê bao. Dịch vụ 3G là dịch vụ gắn liền với các dịch vụ số liệu, đặc biệt là Internet vì vậy vấn đề phát triển nội dung là vấn đề hết sức quan trọng (chẳng hạn Việt hoá các trang Web, cung cấp thêm nhiều thông tin…). Bên cạnh đó còn có một yếu tố hết sức quan trọng nữa quyết định đến sự thành công của việc triển khai, đó là nâng cao nhận thức của người sử dụng. Có một thực trạng đáng buồn trong xã hội Việt Nam, đó là thực trạng sợ công nghệ cao, điều này đặc biệt xảy ra ở lớp những người cao tuổi (nhưng đây chính là những người nhiều tiền, có khả năng chi trả cho dịch vụ 3G). Để việc triển khai dịch vụ thành công thì cần phải có chiến lược marketing thích hợp, nâng cao nhận thức của người sử dụng đối với các dịch vụ công nghệ cao, làm cho họ thấy được 3G chỉ mang đến cho họ sự thuận tiện chứ không phải phiền toái.
Thiết kế giao diện cho phần mềm
Posted in Cuộc sống & công nghệ on Tháng Ba 4, 2009 by luongkhanhMỗi sản phẩm phần mềm đều có một yếu tố quyết định sự lựa chọn của khách hàng, góp phần không nhỏ vào sự thành công của sản phẩm, đó là Giao diện Người dùng Đồ họa (GUI – Graphic User Interface) – bộ mặt của sản phẩm
Giao diện đồ họa
Ý tưởng về việc thao tác trực tiếp các chức năng trên màn hình ứng dụng đã mang trong nó khái niệm về giao diện đồ họa. Đây là sự chuyển đổi nội dung từ ngữ sang hình ảnh, biểu tượng, ký hiệu, màu sắc và là sự bố trí sắp xếp có thứ tự các thành phần chính, phụ sao cho chúng được xuất hiện một cách hợp lý, thuận tiện cho người dùng.
Hình ảnh và biểu tượng có tác động đến nhận thức và ghi nhớ của con người dễ dàng hơn nhiều so với những dòng văn bản. Hãy thử hình dung những biển báo giao thông chỉ có thông báo văn bản thì quả thật rắc rối vì khó quan sát từ xa; và bạn sẽ nhận ra những dấu hiệu, hình ảnh, màu sắc đã xuất hiện bấy lâu bên cạnh mình, quen thuộc đến độ bạn vô tình không nhận thấy, có ý nghĩa và thiết thực biết bao nhiêu.
Giao diện người dùng đồ họa (GUI) trong sản phẩm phần mềm như một bảng chỉ dẫn không lời, thực hiện sứ mạng mang lại sự tiện lợi, đơn giản và hiệu quả cho người dùng. Một giao diện có sự bố trí các yếu tố nội dung và hình thức kết hợp nhau một cách liền lạc, màu sắc hài hòa, tính năng thân thiện, hiển thị nhanh và dễ sử dụng không những đáp ứng được tính thẩm mỹ mà còn thỏa mãn được các yêu cầu đặc thù của người dùng. Bên cạnh đó, GUI giúp người dùng nhanh chóng nắm rõ cách sử dụng, thích ứng và giảm thời gian làm quen với ứng dụng mới. Như vậy, giao diện hấp dẫn là một lợi thế đã và đang dần chứng tỏ hiệu quả của nó trong lĩnh vực phần mềm nói riêng và trong cuộc sống hàng ngày nói chung.
Bất kỳ nhà sản xuất phần mềm chuyên nghiệp nào cũng đều chú trọng đến GUI trong qui trình sản xuất và phát triển sản phẩm của mình. Một số đặc điểm của GUI mang lại lợi ích cho người dùng như:
Thân thiện: người sử dụng sẽ không có cảm giác lúng túng, mất tự tin khi sử dụng chương trình vì mọi công cụ đã được hiển thị rõ ràng và sắp xếp có thứ tự theo quy trình nghiệp vụ.
Dễ sử dụng: mọi danh mục, thanh công cụ, biểu tượng và chữ minh họa được thiết kế gần gũi với nhận thức của người dùng, giúp họ tiếp cận nhanh mọi chức năng của chương trình.
Tín nhiệm: một giao diện với màu sắc, đường nét sắc sảo, nội dung rõ ràng, mạch lạc và bố trí hợp lý sẽ tạo cảm giác thoải mái và tin tưởng cho người sử dụng.
Sản phẩm đến được với người dùng, thỏa mãn nhu cầu sử dụng của họ, là tiêu chí chính của nhà sản xuất. Tuy nhiên, để đạt được điều đó, một sản phẩm phần mềm phải là tổng hợp của những nhân tố cấu thành: người lập trình, người thiết kế giao diện và cả người sử dụng.
Thiết kế GUI và bộ ba người lập trình – người thiết kế giao diện – người sử dụng Hình 1 cho khái niệm về mối quan hệ giữa người thiết kế GUI với người lập trình (coder) và người sử dụng (user). Từ người thiết kế GUI, sản phẩm được đưa ra hoạt động thông qua người lập trình sao cho dung hòa các đặc tính kỹ thuật cũng như thẩm mỹ, với mục đích cuối cùng là người dùng hoàn toàn hài lòng khi sử dụng. Như vậy, trong mỗi một thiết kế GUI có mang theo những đặc tính, yêu cầu riêng của từng chủ thể.
Người lập trình: Họ thường đặt sự tiến bộ về kỹ năng của mình lên hàng đầu bằng cách áp dụng những kỹ thuật mới vào chương trình, họ muốn nhanh chóng hoàn thành chương trình kể cả dùng những giải pháp có sẵn của các công ty khác.
Họ thường ít quan tâm đến những chi tiết như: giao diện người dùng như thế nào người sử dụng sẽ làm việc, tương tác ra sao trên sản phẩm?
Người sử dụng: Nói chung, họ không sử dụng phần mềm chỉ vì thích (game là một ngoại lệ) mà chỉ muốn hoàn thành công việc của mình một cách nhanh chóng, không phải đọc những tài liệu hướng dẫn sử dụng dài dòng hoặc luôn nhờ giúp đỡ, chí ít khi cần giúp đỡ thì phần hướng dẫn phải rõ ràng, đi ngay vào vấn đề cần giải quyết một cách nhanh chóng. Ngoài ra, chương trình cũng phải dễ cài đặt và gỡ cài đặt.
Người thiết kế giao diện: Họ phải tìm hiểu xem người sử dụng muốn gì và như thế nào (trực giác, học nhanh, dễ sử dụng) bằng ngôn ngữ của người sử dụng rồi truyền đạt tới người lập trình bằng ngôn ngữ kỹ thuật thông qua bảng thiết kế mẫu thăm dò (GUI prototype), đồng thời cũng quan tâm đến mặt mỹ thuật, màu sắc, quyết định sử dụng những hiệu ứng âm thanh, phim, hình ảnh, thông tin… phù hợp với đặc thù của dự án.
Điều này cho thấy người thiết kế giao diện gặp những khó khăn và thử thách không nhỏ trong việc thiết kế dung hòa sản phẩm để vừa dễ dàng thực hiện người lập trình, vừa thỏa mãn yêu cầu của người sử dụng.
Những thử thách đối với người thiết kế GUI

Lệ thuộc vào người lập trình: Thông thường người thiết kế sẽ tạo bố cục và sắp xếp các thành phần như hình ảnh, nút lệnh, khung, bảng… trong chương trình như Corel Draw, Photoshop, Flash, Illustrator… và hội ý với người lập trình về khả năng thực hiện. Đôi khi bản thiết kế rất đẹp, hấp dẫn nhưng không thể hiện thực được do hạn chế của công cụ xây dựng phần mềm đang thực hiện, nên đành phải chỉnh sửa lại cho phù hợp. Vì vậy, người thiết kế GUI cũng phải am hiểu phần nào về ngôn ngữ lập trình, giải pháp, cách bố trí các thành phần như theo dạng khung (frame), dạng bảng (table) hay chia cột, đồng thời cũng đưa ra giải pháp thảo luận với người lập trình để có thể đạt được giải pháp tốt nhất, hấp dẫn, dễ thực hiện, dễ sử dụng với thời gian hợp lý nhất.
Thiết kế không đúng băng thông: Đây là điểm đặc trưng của ứng dụng trên Internet. Mỗi khu vực, mỗi nước đều có băng thông khác nhau nên khi thiết kế cũng phải nghĩ đến điều này. Vì việc sử dụng quá nhiều hình ảnh, hiệu ứng, kỹ xảo… tuy hấp dẫn nhưng sẽ làm hạn chế tốc độ hiển thị. Thời gian hiển thị lâu người sử dụng sẽ cảm thấy mệt mỏi, không thích dùng và sẽ không phát huy được hết khả năng. Ngược lại, hạn chế quá nhiều hình ảnh, hiệu ứng, kỹ xảo… giao diện sẽ trở nên buồn tẻ và nhàm chán. Trước khi bắt tay vào thiết kế bạn phải tìm hiểu kỹ khách hàng của mình sẽ sử dụng ở băng thông nào để có giải pháp thật hợp lý.
Di chuyển giữa các trang màn hình trong chương trình: Bạn nên quan tâm đến cách thức trình bày những nút lệnh, menu, menu phụ (sub menu) ở vị trí hợp lý để người dùng dễ dàng thực hiện và theo dõi chúng một cách nhanh chóng và nhất quán.
Yêu cầu của khách hàng không đủ, không rõ ràng: Khách hàng của bạn đa số là người không chuyên về lập trình và kỹ thuật. Họ có thể là một doanh nghiệp hay tổ chức đoàn thể, nên khi họ đưa ra yêu cầu phần lớn là không đầy đủ, không rõ ràng, và thậm chí không biết rõ họ sẽ cần gì trong dự án mà họ muốn làm. Nên vai trò của người quan hệ với khách hàng cũng không kém phần quan trọng trong việc tư vấn, tìm hiểu và đưa ra được những giải pháp khả thi và làm thỏa mãn khách hàng. Việc phối hợp giữa người quan hệ khách hàng (Business Analist), người thiết kế giao diện đồ họa (GUI Designer) với khách hàng để lấy thông tin và đưa ra giải pháp, hình ảnh, màu sắc… ngay tại chỗ cũng là một giải pháp tốt và đáng được quan tâm.
Minh hoạ một giao diện thành công
So sánh 2 giao diện sau trên cùng một dự án:
Hình a: Rối và không phân biệt rõ phần chính, phần phụ, danh mục nhiều nơi khó điều khiển.
Hình b: Rõ ràng, thấy được mục đích và nội dung cần chuyển tải, khắc phục được những nhược điểm ở hình a.
Visual C++ 2008 Feature Pack: Tăng cường sức mạnh cho Visual C++
Posted in Lập trình VC++/MFC/ALT on Tháng Hai 13, 2009 by luongkhanhMicrosoft đã công bố chính thức Visual C++ 2008 Feature Pack – gói công cụ bổ sung tính năng cho VC++ 2008. Đây thật sự là món quà đáng giá cho các lập trình viên trong việc phát triển ứng dụng trên nền VC++. Bài viết xin giới thiệu tổng quan về gói công cụ này cũng như việc sử dụng nó nhằm lập trình VC++ hiệu quả hơn.
Cài đặt
Gói công cụ bổ sung này chỉ dành riêng cho Visual C++ 2008 từ bản Standard trở lên (không hỗ trợ bản Express, tuy nhiên Microsoft hứa hẹn sẽ hỗ trợ trong tương lai). Bạn có thể tải về bộ cài đặt từ địa chỉ http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&displaylang=en (hoặc đường link rút gọn http://tinyurl.com/34n52u), dung lượng 322.84MB. Hiện tại, gói bổ sung này mới chỉ làm việc với phiên bản tiếng Anh (ENU) của VS 2008. Việc hỗ trợ cho các phiên bản khác sẽ được bổ sung trong bản vá VS2008 SP1 (đang trong giai đoạn beta).
Cần chú ý, bạn phải cài đặt Windows SDK phiên bản 6.1 trước khi cài đặt gói bổ sung này. Nếu làm ngược lại, có thể bộ SDK sẽ cài đè và làm mất một số tính năng của VC++ Feature Pack. Trong trường hợp đã lỡ cài gói bổ sung này trước, cài SDK sau, bạn có thể cài lại VS 2008 theo chế độ “repair”.
Gói bổ sung này chủ yếu tập trung vào việc tăng cường hỗ trợ cho lập trình giao diện của ứng dụng, cụ thể như:
- Hỗ trợ các giao diện như “ribbon” của Office 2007, giao diện kiểu “look and feel” của Office 2003/XP hay phong cách “docking toolbar” và “pane” trong Visual Studio…
- Tùy biến tối đa thanh công cụ và menu
- Hỗ trợ các điều khiển nâng cao
Một điều cần chú ý là khi phân phối các ứng dụng được phát triển trên nền VC++ feature pack, bạn nên đính kèm bộ cài đặt của Visual C++ 2008 Feature Pack Redistributable Package thay vì VC++ 2008 Redistritable Package như thông thường. Tải về gói cài đặt này tại địa chỉ http://www.microsoft.com/downloads/details.aspx?familyid=D5692CE4-ADAD-4000-ABFE-64628A267EF0&displaylang=en (http://tinyurl.com/6p3gxm, phiên bản x86) hoặc http://www.microsoft.com/downloads/details.aspx?familyid=7B50FDDF-4798-4FCE-8A8B-A8DFE556C8E4&displaylang=en (http://tinyurl.com/6bd45b, phiên bản x64), dung lượng khoảng hơn 4MB.
Sử dụng VC++ feature pack trong lập trình ứng dụng MFC
Từ trước đến nay MFC – Microsoft Foundation Classes vẫn được coi là bộ thư viện dành cho C++ đơn giản, thuận tiện và dễ dùng. MFC giảm bớt đáng kể công sức của lập trình viên so với lập trình Win32 API truyền thống. Tuy nhiên, so với các công cụ thuộc dạng RAD – Rapid application development như Visual Basic, Delphi hay gần đây là .NET thì MFC vẫn còn nặng nề trong việc xây dựng giao diện, đặc biệt là giao diện không theo chuẩn của Windows. Bạn có thể sử dụng một số gói mã nguồn bổ sung, như The Ultimate Toolbox (http://www.codeproject.com/KB/MFC/index.aspx?#MFC%20-%20Open%20Source%20Ultimate%20Toolbox), nhưng việc tạo ra một giao diện thống nhất, hợp lý vẫn tốn nhiều công sức.
VC++ feature pack đã khắc phục thiếu sót này bằng cách bổ sung tính năng sử dụng những giao diện bắt mắt một cách dễ dàng mà bạn hầu như không phải gõ thêm dòng mã lệnh nào cả.
Bạn chỉ việc chọn giao diện thích hợp trong khi tạo một dự án – project mới. Cần chú ý giao diện mới này chỉ sử dụng được với dạng project là SDI và MDI, cùng một kiểu mới được bổ sung vào là Multiple top-level documents, chứ không dùng được cho dạng Dialog-based.
Ngay sau khi tạo dự án xong, bạn có thể tiến hành biên dịch và chạy thử ngay, kết quả cho ra thật sự ấn tượng với giao diện theo phong cách mà bạn lựa chọn.
Để làm được điều này, VC++ feature pack đã bổ sung thêm 3 lớp mới:
• CWinAppEx thừa kế từ lớp CWinApp được dùng làm base class cho ứng dụng.
• CFrameWndEx thừa kế từ lớp CFrameWnd được dùng làm base class cho cửa sổ trong SDI – Single Document Interface.
• CMDIFrameWndEx thừa kế từ lớp CMDIFrameWndEx được dùng làm base class cho cửa sổ trong MDI – Multi Document Interface.
Chúng ta thấy sự thiếu vắng của lớp CDialog, và đó là lý do mà gói bổ sung này không hỗ trợ cho các ứng dụng dạng dialog – based. Đây quả thực là điều đáng tiếc vì hiện các ứng dụng dạng dialog vẫn được dùng rất phổ biến và việc tạo dựng một ứng dụng dialog với một giao diện “bắt mắt” không đơn giản.
Mặc dù đã được VC++ hỗ trợ sinh mã một cách toàn diện, nhưng chúng ta nên nhìn qua xem điều gì đã thực sự xảy ra. Một đoạn mã khởi tạo ứng dụng thông thường có dạng như sau:
class CMFCFeaturePackApp : public CWinAppEx
{
public: CMFCFeaturePackApp();
// Overrides
public: virtual BOOL InitInstance();
};
BOOL CMFCFeaturePackApp::InitInstance()
{
CWinAppEx::InitInstance();
// CWnd* m_pMainWnd; được định nghĩa trong file .h
SetRegistryKey(_T(“DeltaX/MFCFeaturePack”));
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME, RUNTIME_CLASS(CMFCFeaturePackDoc),
RUNTIME_CLASS(CMainFrame),
// main SDI frame window
RUNTIME_CLASS(CMFCFeaturePackView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
Cần chú ý, theo mặc định, VC++ sẽ tạo ra rất nhiều mã phục vụ cho các mục đích khác nhau, chẳng hạn như quản lý keyboard, menu, hiển thị tooltip,… Tùy theo yêu cầu của mình và để giảm kích thước của file thực thi .exe, bạn có thể xóa bớt những đoạn mã không cần thiết (điều này được khuyến cáo trong comment do chính VC++ tạo ra). Đoạn mã ở trên đã lược bỏ những thứ “thêm vào”, chỉ giữ lại những gì cơ bản nhất. Bạn có thể thấy không có nhiều thay đổi nếu như so sánh với mã nguồn cũ mà MFC tạo ra.
Tuy nhiên, phần mà bạn cần thực sự quan tâm nằm ở MainFrm.cpp. Ở đây, bạn có thêm, bớt button vào ribbon, điều chỉnh lại panel,… Chúng ta hãy cùng nhìn qua cách thực hiện các công việc này, các đoạn mã minh họa dưới đây được dùng cho các ứng dụng sử dụng ribbon:
Khai báo biến RibbonBar:
CMFCRibbonBar m_wndRibbonBar;
Khởi tạo trong hàm OnCreate:
m_wndRibbonBar.Create(this);
Điều chỉnh Ribbon Button
Thiếu vắng menu quen thuộc trong giao diện ribbon, thành phần mới Ribbon Button đã được bổ sung để giúp người dùng nhanh chóng truy cập vào những chức năng quan trọng. Gắn với nó là Ribbon Panel, thường được thiết lập tương đương với menu File, nhưng bóng bẩy và trực quan hơn nhiều.
//khai báo các biến
CMFCRibbonApplicationButton m_MainButton;
//thiết lập Ribbon button:
m_wndRibbonBar.SetApplicationButton(&m_MainButton, CSize (45, 45));
//45 là kích thước hợp lý cho Ribbon Button
CMFCRibbonMainPanel* pMainPanel = m_wndRibbonBar.AddMainCategory(_T(“File”), IDB_FILESMALL, IDB_FILELARGE);
//khởi tạo Panel và gán 2 imagelist lớn – nhỏ cho Panel này
//Bổ sung thêm chức năng vào Panel
pMainPanel->Add(new CMFCRibbonButton(ID_FILE_NEW, “New File”, 0, 0));
Hàm khởi tạo của CMFCRIbbonButton như sau (còn một hàm overloading của hàm này, thay vì sử dụng Imagelist thì sử dụng một biến HICON để làm biểu tượng cho nút, tuy nhiên, cách dùng như dưới đây vẫn là phổ biến hơn):
CMFCRibbonButton(UINT nID, LPCTSTR lpszText, int nSmallImageIndex=-1, int nLargeImageIndex=-1, BOOL bAlwaysShowDescription=FALSE );
Trong đó nID là ID của nút, lpszText là nhãn của nút, nSmallImageIndex và nLargeImageIndex lần lượt là chỉ số index trong 2 imagelist nhỏ và lớn đã được gán cho biến pMainPanel.
Một Ribbon Button lại có thể có những chức năng nhỏ hơn, chẳng hạn, như đối với chức năng Save as trong Microsoft Word 2007.
Để thực hiện điều này, bạn có thể sử dụng method AddSubItem của Ribbon Button.
Chẳng hạn:
pBtnPrint->AddSubItem(new CMFCRibbonButton(ID_FILE_PRINT_DIRECT, “Quick Print”, 7, 7, TRUE));
Cuối cùng, là bổ sung nút Close và danh sách những file mới được mở gần đây:
pMainPanel->Add(new CMFCRibbonButton(ID_FILE_CLOSE, _T(“Close”), 9, 9));
pMainPanel->AddRecentFilesList(_T(“Recent Files List:”));
Điều chỉnh thanh ribbon
Thanh ribbon mới thật sự là điểm nhấn quan trọng trong phong cách dải “duy băng” của Office 2007, nơi cung cấp tất cả những chức năng quan trọng nhất cho chương trình. Thanh ribbon cho phép tạo nhiều tab, mỗi tab lại có thể chứa nhiều nút nhấn, tương ứng với nhiều chức năng khác nhau.
Đoạn mã dưới đây minh họa việc thêm một “Category” vào thanh ribbon. Mỗi Category sẽ tương ứng một tab, và gồm các phần nhỏ hơn là panel, mỗi panel lại gồm các ribbon button phục vụ các chức năng cụ thể:
CMFCRibbonCategory* pCategoryHome = m_wndRibbonBar.AddCategory(“Home”, IDB_WRITESMALL, IDB_WRITELARGE); // 2 tham số sau tương ứng 2 imagelist nhỏ – lớn cho Category
Bổ sung thêm panel, ở đây là Panel Clipboard (phục vụ việc copy-paste…)
CMFCRibbonPanel* pPanelClipboard = pCategoryHome->AddPanel(“Clipboard”, m_PanelImages.ExtractIcon(27));
Ở đây, m_PanelImages là một biến kiểu CMFCToolBarImages lưu trữ imagelist dành cho panel. Việc khởi tạo nó thực hiện như sau:
m_PanelImages.SetImageSize(CSize(16, 16));
m_PanelImages.Load(IDB_BUTTONS);
Công việc cuối cùng là thêm các ribbon button thực hiện chức năng vào panel:
CMFCRibbonButton* pBtnPaste = new CMFCRibbonButton(ID_EDIT_PASTE, strTemp, 0, 0);
pPanelClipboard->Add(pBtnPaste);
Trong khuôn khổ bài viết này, chúng tôi chỉ giới thiệu sơ bộ những nét chính trong việc tùy biến giao diện mang phong cách ribbon. Visual C++ feature pack còn đem đến nhiều kiểu giao diện khác và việc tùy biến chúng tương đối dễ dàng. Phong cách lập trình MFC quen thuộc sẽ giúp các lập trình viên nhanh chóng làm quen và nắm bắt được các class, method và property mới. Mặc dù VC++ đã làm phần lớn công việc cho bạn, nhưng bạn vẫn có thể điều chỉnh lại cho thích hợp, thậm chí tự viết mã để toàn quyền xử lý giao diện.
Visual C++ Feature Pack còn đi kèm TR1, thư viện bổ sung cho C++ runtime và hiện đang được phát triển như là mở rộng cho chuẩn C++ 2003. Hy vọng sẽ có dịp giới thiệu về thư viện này.