Thứ Bảy, 6 tháng 12, 2008

PHÉP TOÁN XOR

Hôm nay ngẫu hứng tự nhiên thấy phép XOR hơi hay hay, nên viết lên mọi người tham khảo nhé.

Còn gọi là hàm không tương đương, Hàm cộng modul-2, Hay là phép Cộng có loại trừ. 

  1. Phương trình : Phương trình hàm XOR 2 biến được định nghĩa như sau :     

    F(AB) = AB + AB = A Å B

F = 1 khi tất cả các biến đầu vào có giá trị khác nhau. 

F = 0 khi các biến vào có giá trị giống nhau.


Bảng chân lý :  bảng chân lý hàm XOR có dạng như sau:
ABÅ B 
000
011
101
110

Trong phép hoán vị giá trị của 2 biến a,b dùng thuật toán xor đó.

Thứ Ba, 2 tháng 12, 2008

100 Greatest Science Discoveries of All Time

Tuy chưa đọc cuốn này nhưng nhìn sơ qua, mình có cảm giác sẽ đem lại nhiều điều thích thú cho người đọc. Nếu không tin, hay download và đọc đi nhé.
Throughout history, science has changed lives and dramatically altered the way in which the universe is perceived. Focusing on the 100 most significant scientific events of all time--from Archimedes' discovery of the two fundamental principles underlying physics and engineering (levers and buoyancy) in 260 B.C.E. to human anatomy, Jupiter's moons, electrons, black holes, the human genome, and more--storyteller Kendall Haven has created a ready reference for those seeking information on science discoveries. Brimming with fascinating and fun facts about 100 scientific breakthroughs, this collection presents the real stories behind the history of science, at the same time offering a panoramic overview of the history of science and an introduction to some of the most important scientists in history. Grades 6 and up.

About the Author
KENDALL HAVEN is a nationally recognized master storyteller and the author of numerous books, including Marvels of Math, Write Right!, and Close Encounters with Deadly Dangers. A former research scientist, he is based in Fulton, California.
Download here

Sams Teach Yourself C++ in One Hour a Day (6th Edition)

Theo mình học C/C++ theo kiểu mì ăn liền tuy không tốt nhưng trong các sách mình đã đọc, mình chỉ thấy cuốn này hay hơn các cuốn đã được xuất bản ở Việt Nam.
In just one hour a day, you’ll have all the skills you need to begin programming in C++. With this complete tutorial, you’ll quickly master the basics and then move on to more advanced features and concepts:
Master the fundamentals of C++ and object-oriented programming
Learn some of the more advanced features of C++
Learn the Standard Template Library and the containers and algorithms used in most real-world C++ applications
Learn how to build effective programs in C++ with hands-on exercises
Get expert tips on implementing C++ in the corporate environment

Learn on your own time, at your own pace
No previous programming experience required
Learn C++ and object-oriented design, programming, and analysis
Write fast and powerful C++ programs, compile the source code, and create executable files
Understand the latest ANSI standard
Use the Standard Template Library’s algorithms and containers to write feature-rich yet stable C++ applications
Develop sophisticated programming techniques with functions, arrays, variables, and smart pointers
Learn to expand your program’s power with inheritance and polymorphism
Master the features of C++ by learning from programming experts
Works with all ANSI C++ compilers
Jesse Liberty is the author of numerous books on software development, including best-selling titles on C++ and .NET. He is the president of Liberty Associates, Inc., where he provides custom programming, consulting, and training.

Siddhartha Rao, Microsoft MVP for Visual C++, has experience in programming driver and application software using C++. He is an expert in the Windows programming arena and works for a German software giant. He also moderates CodeGuru.com, a vibrant online programming community.

Bradley Jones, Microsoft MVP for Visual C++, runs a number of software development sites including Developer.com, CodeGuru.com, DevX, VBForums, Gamelan, and other JupiterWeb-owned sites.

Category: Programming
Covers: C++
User Level: Beginning–Intermediate

Register your book at informit.com/register for access to source code, example files, updates, and corrections as they become available.
Download here

Thứ Ba, 28 tháng 10, 2008

EVN Telecom - nạn nhân mới của VNPT

Hôm nay cũng thật là tức, tại sao mạng điện thoại di động Viettel không gởi tin nhắn cho EVN telecom và mình lên google tìm kiếm, cuối cùng cũng đã ra, do các mạng di động cạnh tranh chơi không đẹp với nhau:
Khi những quy định về kết nối do Bộ Bưu chính Viễn thông ban hành vẫn còn nguyên mùi giấy thì chuyện tranh chấp lại tiếp tục xảy ra giữa VNPT và doanh nghiệp mới nhập cuộc EVN Telecom.
Ông "alô" lại tranh chấp chuyện kết nối.
Ảnh: Tuổi Trẻ.
Chính thức cung cấp từ cuối năm ngoái, dịch vụ điện thoại cố định không dây (E-com) được xem là thế mạnh của EVN Telecom. Nhà cung cấp này có 3 dịch vụ điện thoại gồm E-com, E-Phone (điện thoại di động nội tỉnh) và E-Mobile (điện thoại di động công nghệ CDMA) với trên 100.000 thuê bao. Trong đó, số thuê bao của riêng E-com đã chiếm xấp xỉ 100.000.


E-com được coi là thế mạnh bởi EVN Telecom xác định hai dịch vụ còn lại không thể địch được với các mạng di động VinaPhone, MobiFone, Viettel Mobile. Trong khi đó, cùng là điện thoại cố định nhưng E-com vượt trội hơn các dịch vụ của VNPT và Viettel ở ưu điểm dễ lắp đặt do không phải kéo dây, có thể phát triển tới các vùng sâu, vùng xa. Đặc biệt, khi kết nối với máy tính, các máy điện thoại sử dụng dịch vụ E-com sẽ hoạt động như một modem, cho phép kết nối Internet tốc độ cao, giá cước rẻ.
Với những tính năng vượt trội này, EVN Telecom hi vọng sẽ phát triển mạnh hơn nữa, nếu người dùng dịch vụ E-com có thể gửi và nhận được tin nhắn với các mạng di động của VNPT. Tuy nhiên, sau gần một năm triển khai, E-com mới chỉ được nhắn tin trong nội mạng các thuê của chính EVN Telecom chứ chưa nối được sang hai mạng di động có thuê bao lớn nhất trên thị trường của VNPT là VinaPhone và MobiFone. Thật ra ngay từ khi triển khai dịch vụ, EVN Telecom đã tiến hành đàm phán kết nối tin nhắn với VNPT nhưng ông “độc quyền” vẫn cứ lần lữa không chịu mở cổng cho EVN Telecom.
Hiện nay, trong số ba dịch vụ của EVN Telecom, chỉ duy nhất mạng điện thoại di động 096 - E-Mobile đã thông tin nhắn với các mạng của VNPT. Sở dĩ "ông lớn" chịu mở cổng cho dịch vụ này bởi trước họ đã kết nối cho S-Fone nên không có cớ gì để gây khó dễ cho dịch vụ di động của EVN Telecom.
Không cho khách hàng hưởng quyền miễn cước
Ngày càng nhiều người sử dụng điện thoại di động.


Ảnh: Hoàng Hà.
Không chỉ gây khó dễ trong kết nối đối với dịch vụ E-com, một đại diện của EVN Telecom cho biết, VNPT cũng đang gây khó dễ trong việc kết nối từ thuê bao của VNPT vào số chăm sóc khách hàng của nhà cung cấp này.
Trong khi đó, theo quy định chung của quốc tế, tất cả thuê bao điện thoại đều được gọi miễn phí vào số chăm sóc khách hàng (bắt đầu bằng mã số 1800) của bất kỳ nhà cung cấp nào. Quy định này cho phép khách hàng sử dụng dịch vụ của VNPT muốn sử dụng thêm dịch vụ của EVN Telecom hoặc đang sử dụng đồng thời dịch vụ của hai nhà cung cấp đều có thể gọi miễn phí từ thuê bao của VNPT vào số chăm sóc khách hàng của EVN Telecom để hỏi thông tin.
Trên thực tế, VNPT lại không mở kết nối cho các thuê bao của mình gọi vào số chăm sóc khách hàng của EVN Telecom. VNPT đòi EVN Telecom phải trả 600 đồng/phút đối với các cuộc gọi vào số chăm sóc khách hàng của EVN Telecom. Thế nhưng, ngay cả khi EVN Telecom bấm bụng chấp nhận trả số tiền này thì VNPT vẫn khất lần chưa chịu mở kết nối.
Hầu hết doanh nghiệp mới đều cảm thấy ngao ngán khi đàm phán kết nối với mạng viễn thông VNPT. S-Fone từng phải trầy trật mới kết nối được dịch vụ nhắn tin giữa mạng di động S-Fone với mạng di động VinaPhone và MobiFone của VNPT.
Viettel từng điên đầu khi VNPT không chịu đáp ứng nhu cầu kết nối cho doanh nghiệp này khiến Bộ Quốc phòng (cơ quan chủ quản của Viettel) phải “kêu cứu” lên Thủ tướng.
Cực chẳng đã, EVN Telecom phải mở một đầu số chăm sóc khách hàng khác (2.232323) không theo mã số chuẩn quốc tế. Điều đáng nói là khi gọi vào đầu số này, khách hàng của VNPT sẽ phải trả tiền như một cuộc gọi thông thường. Như thế, VNPT tận thu của khách hàng từ cả những cuộc gọi lẽ ra được miễn cước.
Theo một quan chức của EVN Telecom, lý do mà VNPT đưa ra để không mở kết nối cho các dịch vụ của EVN Telecom là do nhà cung cấp này đang trong quá trình thay đổi từ mô hình Tổng công ty sang mô hình tập đoàn. Quan chức này cho rằng, nếu VNPT thật sự thiện chí thì việc thay đổi mô hình hoàn toàn không ảnh hưởng tới việc đàm phán kết nối giữa hai bên.
Trong khi đó, ông Bùi Quốc Việt, Giám đốc Trung tâm Thông tin bưu điện, người phát ngôn của VNPT, lại cho rằng thực tế việc kết nối giữa các mạng viễn thông không đơn giản và cần phải có thời gian để thực hiện, đặc biệt trong trường hợp thiết bị giữa các mạng không đồng bộ với nhau.
Đến thời điểm này nay, mặc dù chưa có tín hiệu nào cho thấy VNPT sẵn sàng mở kết nối cho EVN Telecom nhưng nhà cung cấp dịch vụ này vẫn chưa muốn hành động như Viettel đã làm là kêu lên cơ quan chủ quản để “cầu cứu” Thủ tướng.
EVN Telecom vẫn kiên nhẫn gửi các công văn sang VNPT để thúc, đồng thời thông báo cho tổ chỉ đạo kết nối của Bộ Bưu chính Viễn thông biết. Trong khi VNPT không có thông báo chính thức nào thì tổ kết nối dường như cũng cho đây là chuyện cỏn con giữa các doanh nghiệp với nhau nên chưa có động thái can thiệp. Cuối cùng, những chiêu cạnh tranh không lành mạnh giữa doanh nghiệp lớn với doanh nghiệp bé sẽ lại khiến người tiêu dùng phải chịu thiệt thòi.

(Theo VnExpress)

Thứ Sáu, 17 tháng 10, 2008

Chuyện cười IT

Một bác sĩ, một kỹ sư xây dựng và một chuyên viên IT cùng đến trước cổng thiên đường.
Vị bác sĩ lên tiếng trước:
- Cả cuộc đời, tôi đã cứu chữa không biết bao nhiêu người. Xin hãy cho tôi vào thiên đường. Thánh Peter bảo:
- Nhưng ông chưa bao giờ chữa cho những người tàn tật, nghèo khổ. Ông sẽ phải xuống địa ngục.
Đến lượt anh kỹ sư xây dựng:
- Cuộc đời tôi chỉ lo làm đẹp đường phố…
- Nhưng anh bỏ mặc người vô gia cư và làm ô nhiễm môi trường nên anh cũng phải xuống địa ngục.
Chuyên viên IT rụt rè tiến lên:
- Thưa ngài, tôi là một lập trình viên…
- Thôi được rồi, cả đời anh đã ở trong địa ngục, xin mời anh vào thiên đường.

Bài toán tháp Hà Nội

Nguồn từ wikipedia.org

Bài toán tháp Hà Nội (tiếng Anh gọi là Tower of Hanoi hay Towers of Hanoi) xuất phát từ trò chơi đố Tháp Hà Nội.

Một bộ mẫu của Tháp Hà Nội

Mục đích của bài toán là thực hiện được yêu cầu của trò chơi. Dạng bài toán thông dụng nhất là: "Người chơi được cho ba cái cọc và một số đĩa có kích thước khác nhau có thể cho vào các cọc này. Ban đầu sắp xếp các đĩa theo trật tự kích thước vào một cọc sao cho đĩa nhỏ nhất nằm trên cùng, tức là tạo ra một dạng hình nón. Người chơi phải di chuyển toàn bộ số đĩa sang một cọc khác, tuân theo các quy tắc sau:

  • Một lần chỉ được di chuyển một đĩa
  • Một đĩa chỉ có thể được đặt lên một đĩa lớn hơn (không nhất thiết hai đĩa này phải có kích thước liền kề, tức là đĩa nhỏ nhất có thể nằm trên đĩa lớn nhất)".

Bài toán này có lời giải chính xác. Tuy nhiên các mở rộng cho trường hợp có nhiều hơn ba cọc cho đến nay vẫn chưa được giải cặn kẽ.


Cách giải:
Đa số các trò chơi dạng này có 8 đĩa. Đối với người mới chơi thì có vẻ khó nhưng thật ra thuật giải của nó hết sức đơn giản:

Thuật giải đệ quy

đặt tên các cọc là A, B, C -- những tên này có thể chuyển ở các bước khác nhau

gọi n là tổng số đĩa

đánh số đĩa từ 1 (nhỏ nhất, trên cùng) đến n (lớn nhất, dưới cùng)

Để chuyển n đĩa từ cọc A sang cọc B thì cần:

  1. chuyển n-1 đĩa từ A sang C. Chỉ còn lại đĩa #n trên cọc A
  2. chuyển đĩa #n từ A sang B
  3. chuyển n-1 đĩa từ C sang B cho chúng nằm trên đĩa #n

Phương pháp trên được gọi là thuật giải đệ quy: để tiến hành bước 1 và 3, áp dụng lại thuật giải cho n-1. Toàn bộ quá trình là một số hữu hạn các bước, vì đến một lúc nào đó thuật giải sẽ áp dụng cho n = 1. Bước này chỉ đơn giản là chuyển một đĩa duy nhất từ cọc A sang cọc C.


VAR n: Integer; Procedure chuyen(sodia: Integer; CotNguon: Char; CotDich: Char; CotTG: Char);
Begin
If sodia>0 then begin
chuyen(sodia-1, CotNguon, CotTG, CotDich);
Writeln(CotNguon,'->',CotDich); { Dia lon nhat hien tai }
chuyen(sodia-1, CotTG, CotDich, CotNguon)
End;
End;
BEGIN
Write('Hay nhap so dia: '); Readln(n);
chuyen(n,'A','B','C');
Readln;
END.

Giải thích thuật giải

(Trên) Lời giải cho 3 đĩa. (Dưới) Lời giải cho 4 đĩa.
(Trên) Lời giải cho 3 đĩa. (Dưới) Lời giải cho 4 đĩa.
Tái tạo lại trang trong phần này để xem sự tương quan giữa hai lời giải.
Tái tạo lại trang trong phần này để xem sự tương quan giữa hai lời giải.

Sau đây là dạng dễ xem hơn của thuật giải này:

  1. chuyển đĩa 1 sang cọc B
  2. chuyển đĩa 2 sang cọc C
  3. chuyển đĩa 1 từ B sang C sao cho nó nằm lên 2

Vậy ta hiện có 2 đĩa đã nằm trên cọc C, cọc B hiện thời trống

  1. chuyển đĩa 3 sang cọc B
  2. lặp lại 3 bước trên để chuyển 1 & 2 cho nằm lên 3

Mỗi lần dựng xong tháp từ đĩa i đến 1, chuyển đĩa i+1 từ cọc A là cọc xuất phát, rồi lại di chuyển tháp đã dựng lên đĩa "i+1".


Giải thuật bằng biểu diễn nhị phân

Các vị trí đĩa có thể xác định được trực tiếp từ biểu diễn nhị phân của số thứ tự di chuyển (cơ số 2 với một chữ số cho mỗi đĩa) trong đó các dãy 1 và các dãy 0 tượng trưng cho các dãy các đĩa liền nhau trên cùng cọc, và mỗi khi chữ số có thay đổi thì đĩa kế tiếp sẽ dời sang trái hay phải một cọc (hay chuyển sang cọc ngoài cùng phía đối diện). Chữ số ở đầu đại diện cho đĩa lớn nhất và nếu là chữ số 0 thì có nghĩa là đĩa lớn nhất không dời khỏi cọc xuất phát và ngược lại. Đặt các chữ số 1 và 0 luân phiên bên dưới các chữ số của một bước chuyển cho phép biết được di chuyển theo một chiều khi nó hợp với chữ số của bước chuyển tại nơi chữ số thay đổi và theo chiều kia khi nó không hợp. Do đó bước chuyển 00000000... có nghĩa là đặt 8 đĩa lớn nhất lên cọc ban đầu, bước chuyển 11111111... có nghĩa là đặt chúng lên cọc cuối cùng, và bước chuyển 11011000... có hai đĩa lớn nhất trên cọc đích, đĩa tiếp theo trên cọc xuất phát, hai đĩa tiếp theo ở cọc trung gian, và ba đĩa tiếp theo nữa trên cọc xuất phát, bất kể có thêm bao nhiêu chữ số đại diện các đĩa nhỏ hơn. Ta có thể dễ dàng tính được các vị trí của các đĩa trong một bộ tám mươi đĩa sau một số các bước tiến, nếu giới hạn đủ lớn để chứa nó. Việc dùng phương pháp đệ quy cho trường hợp tám mươi đĩa như thế này có thể không thực tế.

Trường hợp 4 cộc trở lên

Mặc dù thuật giải tương đối đơn giản, bài toán với n đĩa sẽ cần ít nhất 2n-1 lần di chuyển. Tuy nhiên với số lượng đĩa nhiều hơn 3 thì vẫn chưa biết được sẽ cần ít nhất bao nhiêu lần di chuyển để giải bài toán. Do vậy việc áp dụng bước tiến dãy (tiếng Anh sequential advancement) để xác định vị trí của một số lượng lớn các đĩa trên ba cọc sau một số lớn tuỳ ý các bước tiến là không thực tế. Lời giải tối ưu cho bài toán Tháp Hà Nội với bốn cọc hay nhiều hơn vẫn còn là một bài toán mở. Đây là một ví dụ tiêu biểu cho thấy một bài toán đơn giản, có thể giải được vẫn có thể trở thành khó hơn rất nhiều bằng cách hơi nới lỏng một số ràng buộc của nó.

Mặc dù không biết được chính xác cần bao nhiêu lần di chuyển, có thể có một vài kết quả tiệm cận. Có một "lời giải được coi như tối ưu" có thể áp dụng một cách đệ quy để tìm một lời giải–xem giải thích cũng như một vài biến thể của bài toán bốn cọc trong bài khảo sát của Paul Stockmeyer (tiếng Anh).

Mặc dù với số đĩa nhỏ thử nghiệm trên máy tính thì "lời giải được coi như tối ưu" này là thực sự tối ưu, nhưng nó vẫn chưa có một chứng minh tổng quát để coi là thực sự tối ưu. Tuy nhiên, những kết quả nghiên cứu trong năm 2004 (tiếng Anh) đã cho thấy lời giải được coi như tối ưu phải nằm trong cùng độ lớn với lời giải tối ưu.

Thứ Ba, 7 tháng 10, 2008

Em học lập trình Pascal

Đĩa CD này rất hay, gồm rất nhiều bài toán từ cơ bản đến nâng cao, nhưng tiếc rằng đĩa này mình đã làm trầy, không đọc được.


Một trong những mục tiêu chính của chương trình Tin học cho học sinh bậc Phổ thông là cần nắm vững các khái niệm đơn giản nhất liên quan đến lập trình và rèn luyện kỹ năng lập trình trên một ngôn ngữ bậc cao cụ thể nào đó.

Đã từ lâu, Pascal trở thành ngôn ngữ chính được giảng dạy trong nhà trường phổ thông và đại học tại Việt nam. Vì vậy nhu cầu được học một cách bài bản và qui củ ngôn ngữ này là rất lớn đặc biệt trong các Nhà trường phổ thông. Mục tiêu duy nhất của chương trình học lập trình Pascal của chúng tôi là muốn đưa ra một chương trình tổng thể học và dạy lập trình Pascal cho các Nhà trường và các em học sinh.

Chương trình được gọi là tổng thể vì chúng được thiết kế nhằm vào tất cả các đối tượng học sinh vàthông suốt từ Phổ thông Cơ sở đến Phổ thông Trung học.

Là chương trình học Lập trình Pascal đầy đủ nhất và có tính hệ thống nhất từ xưa đến nay dành cho việc dạy và học trong nhà trường. Bộ sách dành cho các em mới tập lập trình đồng thời cũng dành cho các em khá và giỏi, các em trong lớp chuyên lớp chọn. Đặc biệt có nhiều bài toán dành cho việc rèn luyện học sinh đội tuyển thành phố, quốc gia, quốc tế. Ngoài ra còn có phần vui chơi giải trí, ca nhạc giúp các em thư giãn. Hãy khám phá với em học lập trình Pascal .

Giá bán:

40,000 VND/CD

Một số hình ảnh về phần mềm:

 


Giao diện phần mềm


Giới thiệu chương trình

 


Lập trình Pascal lớp 6


Lập trình Pascal lớp 7

 


Lập trình Pascal lớp 8


Lập trình Pascal lớp 9

 


Lập trình Pascal lớp 10


Lập trình Pascal lớp 11

 


Lập trình Pascal lớp 12


CD 7 năm Tin học và Nhà trường

Đây là cd lập trình phổ thông khá hay, các bạn kiếm mua thử xem


Đây là CDROM phát hành thường kỳ của Hội Tin học Việt Nam tuyển tập tất cả các bài viết và nội dung chính của 83 tập Tin học Nhà trường từ số đầu tiên phát hành năm 1999.

Điểm đặc biệt rất lớn của lần phát hành này là CDROM sẽ được in trên dây chuyền công nghệ sản xuất bạch kim với chất lượng cao với kỹ thuật mới không cho phép sao chép trong các ổ đĩa CDWRITER bình thường.

Nội dung chính của CDROM:

- Lưu trữ toàn bộ tất cả các bài viết trong các chuyên mục chính của Tin học & Nhà trường từ số đầu tiên tháng 10 năm 1999 đến số tháng 12 năm 2006.

- Hơn 800 bài viết chọn lọc chuyên sâu về CNTT và ứng dụng CNTT trong nhà trường bao gồm các chuyên mục: Câu lạc bộ lập trình, Toán học và Tin học, Làm quen với tin học, Algorithm + Data = Program, Olympiad, Tin học và e-Learning, Tin học và cuộc sống, Dành cho Giáo viên, Dành cho các bạn nhỏ.


- Hơn 250 bài đề ra kỳ này cùng với lời giải chi tiết.

- Rất rất nhiều bài viết nhỏ trong các chuyên mục đố vui, vui cười, góc học vui cũng góp phần trong CDROM này.

- Ngoài ra CD này còn lưu trữ một khối lượng lớn các thư liệu kèm theo các bài viết như chương trình nguồn, phần mềm học tập, các loại game.

CDROM sẽ có giao diện thân thiện đẹp mắt. Nội dung các bài viết được sắp xếp theo thời gian, theo chủ đề tùy thuộc vào lựa chọn của người dùng. Các chức năng tìm kiếm nhanh theo chủ đề, theo tên tác giả hoặc theo từ khóa sẽ được cài đặt trong phần mềm. Tất cả nội dung các bài viết đều có thể xuất ra máy in hoặc sao chép thông tin sang các phần mềm khác nếu có nhu cầu

Giá bán:
55,000 VND/CD

Một số hình ảnh về phần mềm:

 

 

 

Học lập trình 10 ngày hay 10 năm?

Tại sao mọi người lại học lập trình một cách hối hả như vậy?

Đến bất kì một nhà sách nào, bạn cũng có thể tìm thấy những quyển sách hướng dẫn đại loại như "Tự học Java trong 7 ngày", và vô số những quyển chỉ cách tự học Visual Basic, Window, Internet… trong một vài ngày hoặc vài giờ. Tôi đã vào website Amazon.com để tìm kiếm các sách có chủ đề "Teach youself" và nhận được 248 tiêu đề sách, 78 quyển đầu là sách về máy tính (quyển thứ 79 là "Learn Bengali in 30 days"). Tôi thay thế từ "days" bằng từ "hours" và cũng nhận được một con số tương tự: 253 quyển với 77 quyển đầu nói về máy tính (quyển thứ 78 có tựa đề "Teach Yourself Grammar and Style in 24 Hours").Như vậy có thể đi đến kết luận rằng: người ta đang học về máy tính một cách hấp tấp, hoặc tin học là một môn khoa học dễ dàng nhất trên thế giới này. Thật ra, không có quyển sách nào trên thế giới có thể dạy người ta học nhạc Beethoven, Vật lý Lượng tử,… trong một vài ngày hoặc vài giờ.
Chúng ta hãy phân tích xem tựa đề "Learn Pascal in Three Days" có nghĩa gì:

Learn: trong ba ngày, bạn không thể có đủ thời gian để viết một vài chương trình có ý nghĩa và học những bài học kinh nghiệm từ những chương trình đó. Bạn càng không có đủ thời gian để hiểu được ngôn ngữ Pascal là như thế nào. Bạn cũng không có thời gian để học hỏi từ những lập trình viên có kinh nghiệm. Trong một thời gian ngắn ngủi như vậy, bạn không thể học được nhiều. Do đó, quyển sách chỉ có thể đề cập tới những vấn đề nông cạn. Mà như Alexander Pope(1) đã nói: "Học hành nông cạn thực sự là một điều nguy hiểm".

Pascal: trong ba ngày, bạn có thể học về cú pháp của ngôn ngữ Pascal (nếu như bạn đã biết một ngôn ngữ khác tương tự), nhưng không thể học được nhiều về cách dùng cú pháp ấy. Trong một thời gian ngắn, nếu là một người biết lập trình Basic, bạn có thể viết một chương trình theo phong cách Basic bằng ngôn ngữ Pascal, thế nhưng bạn không thể biết được ngôn ngữ Pascal hay (hoặc dở) ở chỗ nào. Một người nổi tiếng là Alan Perlis(2) đã nói: "Một ngôn ngữ không ảnh hưởng tới cách suy nghĩ của bạn về lập trình là một ngôn ngữ không đáng để học". Bạn có thể nghĩ rằng không cần học nhiều về ngôn ngữ Pascal (hoặc về Visual Basic, hay JavaScript) bởi vì bạn chỉ cần một công cụ để hoàn thành một công việc nào đó. Nhưng đó là một cách nghĩ sai lầm, nếu không học về cách lập trình thì làm sao bạn có thể hoàn thành công việc.

In Three Days: thật không may, 3 ngày không thể đủ để học bất kì ngôn ngữ nào, phần viết sau đây sẽ chứng minh cho bạn điều đó.

Tự học lập trình trong 10 năm.

Các nhà nghiên cứu đã xác định rằng một người mất khoảng mười năm để thành thạo một lĩnh vực nào đó, từ chơi cờ, soạn nhạc, hội họa, chơi đàn dương cầm, bơi lội cho đến nghiên cứu vật lý lượng tử.

Và thực tế là không có một con đường tắt nào: ngay cả Mozart, người được coi là thần đồng âm nhạc vào năm lên 4, vậy mà phải mất 13 năm rèn luyện mới được công diễn trên thế giới. Samuel Johnson(3) còn cho rằng 10 năm là chưa đủ, ông đã nói: "Thành công trong bất kì lĩnh vực nào chỉ có thể đạt được bằng sự lao động của cả một đời người; và không thể nào có một cái giá thấp hơn".

Đây là nguyên tắc để thành công trong việc lập trình của tôi:

Yêu thích việc lập trình, và học lập trình trong sự hứng thú. Và phải chắc rằng sự yêu thích đó đáng để cho bạn bỏ ra 10 năm theo đuổi. Trao đổi với các lập trình viên khác, đọc các chương trình của người khác. Điều này quan trọng hơn bất kì quyển sách hay khóa học nào.

Tự viết chương trình. Cách học tốt nhất là học bằng thực hành. Nhớ rằng bạn phải viết các chương trình một cách cẩn thận. Quyển sách "Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life" là một quyển sách hay để tham khảo về các qui tắc trong việc lập trình.

Nếu muốn, bạn có thể bỏ ra 4 năm để học đại học. Việc này tạo cơ hội cho bạn làm một số việc trước khi tốt nghiệp, và sẽ cho bạn một sự hiểu biết sâu hơn về lĩnh vực mình quan tâm. Nếu bạn là người không thích trường học, bạn có thể học hỏi từ công việc thực tế những bài học tương tự. Nhưng trong bất kì trường hợp nào, việc chỉ học từ sách vở cũng không thể nào là đầy đủ. Như Eric Raymond, tác giả của quyển "The New Hacker's Dictionary" đã nói: "Sự giáo dục về Khoa học Máy tính không thể đào tạo ra những lập trình viên xuất sắc cũng như việc học về bút vẽ và màu tô không thể nào tạo ra một họa sĩ có tài".

Khi bạn làm việc trong một dự án với các lập trình viên khác, bạn có thể thấy rằng: một người có thể rất giỏi trong dự án này, nhưng sẽ rất dở trong một dự án khác. Khi bạn là người giỏi nhất, bạn hãy thử khả năng của mình trong vai trò lãnh đạo dự án, và cố gắng truyền cảm hứng của bạn cho các thành viên khác. Khi bạn là người dở nhất, hãy cố gắng học hỏi từ những việc mà lãnh đạo của bạn làm và không làm.

Khi bạn đang thua kém các lập trình viên khác. Hãy dồn hết tâm trí của bạn để hiểu các chương trình của họ. Xem xét các chương trình đó dùng để làm gì và thử sửa lỗi các chương trình đó khi mà họ không có mặt ở đó. Kế tiếp, hãy nghĩ cách giải quyết vấn đề tốt hơn nếu có thể.

Bạn nên học ít nhất 6 ngôn ngữ lập trình. Trong đó có một ngôn ngữ hỗ trợ lớp trừu tượng (như Java hay C++), một ngôn ngữ theo quan điểm hàm (như Lisp hay ML), một ngôn ngữ khai báo (như Prolog), một ngôn ngữ hỗ trợ xử lý tuần tự (như Icon hay Scheme), và một ngôn ngữ hỗ trợ xử lý song song (như Sisal). Cố gắng học một ngôn ngữ chính quy, có thể là ANSI C++, và hoàn tất việc học ngôn ngữ này càng nhanh càng tốt.

Luôn nhớ rằng, trong từ "Khoa học Máy tính" đã hàm chứa "Máy tính". Bạn phải biết rõ thời gian máy tính thực thi các lệnh, lấy thông tin từ bộ nhớ và đọc dữ liệu từ đĩa. Nghĩa là bạn cũng phải có hiểu biết cơ bản về phần cứng máy tính và cách thức làm việc của chúng.

Tổng kết

Tôi tin rằng, kinh nghiệm thực tế sẽ luôn đưa ra những điều bổ ích hơn so với hàng ngàn trang sách viết bởi những chuyên gia. Và bây giờ, bạn có thể đi mua một quyển sách về Java, bạn sẽ thu được một số điều hữu dụng từ quyển sách đó. Thế nhưng, bạn không thể thay đổi cuộc đời của mình hay nói cách khác là bạn không thể trở thành một lập trình viên chuyên nghiệp chỉ trong 24 giờ, 24 ngày, hay 24 tháng. Tôi tin chắc như thế.

Theo Peter Norvig, Hữu Xuân lược dịch.

(1) Alexander Pope (1688-1744): ông được xem như là nhà phê bình văn học tân cổ điển nổi tiếng ở Anh.

(2) Alan Perlis (1922-1990): trưởng khoa đầu tiên của khoa Khoa học Máy tính, Đại học Carnegie. Chủ tịch đầu tiên của ACM. Người đầu tiên đoạt giải thưởng Turing.

(3) Samuel Johnson (1709 - ?): một trong những họa sĩ người Anh nổi tiếng ở thế kỷ 18.

http://baohoclaptrinh.com/home/modules/xfsection/article.php?articleid=8

Không ai trong chúng ta bắt đầu học từ hư không, chúng ta đứng trên vai của những người khổng lồ như Wirth, Knuth và hàng ngàn người khác. Sau đó chính bờ vai của chúng ta sẽ góp phần xây dựng tương lai.

10 lời khuyên của Bill Gate cho giới trẻ

Bill Gates đưa ra những bài học vô cùng khôn ngoan cho thế hệ trẻ, những người không có nhiều kiến thức về thực tế cuộc sống và cách giúp họ đứng dậy sau mỗi thất bại trong cuộc sống thực.

Ông "trùm" Microsoft Bill Gates

Bài học thứ nhất: Cuộc sống không phải lúc nào cũng công bằng hãy tập quen dần với điều đó.

Bài học thứ ha
i: Không ai quan tâm đến lòng tự trọng của bạn đâu. Mọi người chỉ trông đợi bạn đạt được điều gì đó trước khi bạn cảm thấy hài lòng về bản thân.

Bài học thứ ba: Bạn sẽ không thể kiếm được 40.000 USD/năm ngay sau khi tốt nghiệp. Bạn cũng không phải là một phó giám đốc sử dụng điện thoại di động cho đến khi mà bạn kiếm được hai thứ đó.

Bài học thứ tư: Nếu bạn nghĩ rằng giáo viên của mình thật hắc ám thì hãy đợi đến khi bạn làm việc dưới trướng một ông chủ rồi bạn sẽ biết với ông ta thì chẳng có một giới hạn nào hết.

Bài học thứ năm: Những công việc mang lại thu nhập thấp chẳng làm kém đi phẩm giá của bạn đâu. Ông cha ta có một định nghĩa khác về công việc lương thấp - họ gọi đó là cơ hội đấy bạn.



Bài học thứ sáu: Nếu như bạn làm rối tung mọi chuyện lên thì đó không phải lỗi của bố mẹ bạn, thế nên đừng có mà than vãn với bố mẹ về lỗi lầm của bạn, hãy rút kinh nghiệm từ nó.

Bài học thứ bảy: Trước khi sinh bạn ra, bố mẹ đã chẳng lo lắng nhiều như thế bây giờ. Bố mẹ đã trả những hoá đơn của bạn, giặt giũ quần áo bạn sạch sẽ và lắng nghe bạn kể xem bạn sành điệu như thế nào. Vì vậy trước khi bạn cằn nhằn bố mẹ điều gì thì hãy dọn dẹp ngăn nắp cái buồng ngủ của bạn đã.

Bài học thứ tám: Ở trường học có thể có người thắng kẻ thua nhưng ở trường đời thì không phải vậy. Ở một vài trường học người ta có thể hủy bỏ đi những điểm rớt và họ cho bạn nhiều cơ hội để có được câu trả lời đúng. Nhưng bất kỳ điều tương tự như thế đều không có trong cuộc sống đâu bạn ạ.

Bài học thứ chín: Cuộc sống không được chia thành những học kỳ đâu. Bạn cũng chẳng có mùa hè để nghỉ ngơi và rất ít ông chủ nào quan tâm đến việc giúp bạn nhận ra đâu là khả năng thực sự của bạn. Hãy tự khám phá điều đó trong những khỏang thời gian của riêng mình.

Bài học thứ mười: Truyền hình không phải là cuộc sống thực (cũng như là các game trò chơi). Trong cuộc sống, chúng ta phải biết rời khỏi quán cà phê, đứng dậy và làm việc.

Thứ Bảy, 27 tháng 9, 2008

Structured Computer Organization (4th Edition)





By Andrew S. Tanenbaum

  • Publisher:   Prentice Hall
  • Number Of Pages:   669
  • Publication Date:   1998-10-23
  • Sales Rank:   517588
  • ISBN / ASIN:   0130959901
  • EAN:   9780130959904
  • Binding:   Hardcover
  • Manufacturer:   Prentice Hall
  • Studio:   Prentice Hall
  • Average Rating:   3
  • Total Reviews:   39



Book Description:

This book takes a modern structured, layered approach to understanding computer systems. It's highly accessible - and it's been thoroughly updated to reflect today's most critical new technologies, including Pentium II and UltraSPARC microprocessors, Windows NT and Java Virtual Machines.Tanenbaum and Goodman present a computer as a series of layers, each one built upon the ones below it, and understandable as a separate entity. The book includes detailed coverage at the digital logic and micro-architecture levels, instruction set level, and operating system machine level, and contains a completely rewritten and updated chapter on parallel computer architecture. This new edition includes a wealth of new material about modern I/O devices, a detailed discussion of the Java Virtual Machine (including a microprogrammed implementation of a subset of a JVM), extensive coverage of multiprocessing, and much more.For all computer professionals and engineers who need an overview or introduction to computer architecture.


Date: 2005-08-14   Rating: 1
Review:

Can't understand after review it again.
This book is very vague. I found the main characteristic of Prof. Tanenbaum's book is that he likes to use abstract algebra to deliver his example. For example, in chapter 1 he talks about Languages, Levels and VM. He uses L0, L1, L2 to represent languages and M0, M1, M2 to represent virtual machine. For people already have prior knowledge of programming such as C, Java, when they read this they could easily reference to something they have already studied, but for me I still can not relate them very well. In contrast, in Randal E. Bryany & David O'Hallaron's book, the beginning of book gives out a concrete example: the C programming Language. I found the latter always work better even after took the architecture course two years later.

My point is for people who want to have clear idea of real world, you should pick another book. This book might be suitable for architecture theory(hopefully).



Date: 2004-04-17   Rating: 5
Review:

Book is fine
Ignore the other reviewers comments who are lazy and/or incapable of doing the end-chapter problems, it's amusing how many people repeated that(like parrots).
Some problems take more time and require compact understanding of concepts explained so far and some are easy, I used the book for an independent study course and it's readable, presenting a good deal of material, and includes quite funny comments in the text. I recommend it.



Date: 2004-02-12   Rating: 1
Review:

Tanenbaum needs new publisher and editors
Andrew Tanenbaum might be the best there is when it comes to the study of computers but, unless you're a "thorough geek," you'd wish other technical writers would step into the fore.
Tanenbaum's books all use the same single technique to help students remember important ideas: bold letters. That's it. You'd be hard pressed to understand the main concepts most of the times because, like a forgetful professor, he'd sometimes mention it in passing (without bold font) that you think they weren't that important. Until one pops up in one of his chapter problems, then you're through.
He does not provide any solutions at the end of his books. One gets the sense he wrote his books for the instructors/professors who are too lazy (or uncreative) to come up with their own sample problems for the students. I wish they'd write computer science books the way mathematicians write their books: They assume their students are "mathematically-challenged" so they go that extra mile to make sure the students get the point. They provide answers to odd-number problems, for one. They also make sure the layout of their books are arranged so that students don't miss the main ideas. With Tanenbaum, you'd have to dig everywhere; you don't know whether to search in the current, previous, or the following chapters for help in answering the problems.
I still have a few more semesters of computer science; I'm almost sure all the textbooks would be written by Tanenbaum (again!). I dread the thought.
So, Tanenbaum, if you're reading this: Please, please, look for another publisher and editor who would help you in the layout of your book. And please, please, provide some answers to some of your problems for the students. At over a hundred bucks, I want my money's worth!


Date: 2004-01-18   Rating: 5
Review:

The Book
Does any one know of a solution mannual for this book? The questions at the end of the book are nice and all but they are really hard to solve.


Date: 2003-11-07   Rating: 1
Review:

A very frustrating book
At times this book had some interesting points to make, but it was mostly nightmare to try to learn from. I agree with all of the previous negative reviews that mentioned the book's vagueness and lack of answers to the chapter's questions! I found myself frustrated when I repeatedly read the same page over and over again. It is possibly one of the worst text-books I have ever read. I actually read this book in my class and I received terrible grades when our tests ended up being based on those end of chapter questions without answers. When I wondered how the rest of the class got good grades, it turned out because most of the class was cheating (many got caught during the final!) and getting the answers from google searches. So maybe I learned something from this book and maybe I didn't, but I would recommend against buying it unless you have to.
Download link::
 #1 rapidshare.com
#2 mediafire.com
More infomation: gigapedia.org

Thứ Tư, 24 tháng 9, 2008

THAY CHO LỜI KẾT THÚC

Bài này mình đánh máy lại từ cuốn Các câu chuyên toán học, tập một: Tất nhiên trong ngẫu nhiên-NXB Giáo dục. Đây là cuốn sách rất hay, bổ ích cho những bạn say mê, hứng thú với toán học. Tiếc rằng mình chỉ có cuốn 1,2,4,5; tập 3 mình đã làm mất, tập 6 mình chưa mua được. Mình mong rằng NXB sẽ tái bản lại tựa sách này. Sau đây là nội dung bài viết:

Nhà toán học Lars Garding người Thụy Điển là tác giả cuốn “Tình hình khái quát toán học”. Trong cuốn sách này tác giả đã trình bày và phân tích cực kì sâu sắc về xác suất và nghiên cứu xác suất. Đoạn trình bày và phân tích sau đây có thể thay cho lời kết thúc của tập sách “Tất nhiên trong ngẫu nhiên” này: “Cái từ xác suất (probability) này gắn liền với tính chân thực của từ thăm dò (probe). Trong thế giới mà chúng ta đang sống chứa đầy tính không xác định, vì vậy chúng ta hãy thử thông qua chân tướng và tương lai của sự kiện suy đoán để nắm lấy cái tính không xác định này. Khi phân tích thế giới quanh chúng ta, phương pháp này là một bộ phận tạo thành quan trọng. Khi chúng ta hi vọng đạt được kết quả xác định, trong tình huống bình thường, chúng ta có thể chia hình thể thành nguy hiểm tuyệt đối hoặc an toàn tuyệt đối và tránh nguy hiểm. Chúng ta tiến lên một cách thận trọng trên con đường gập gềnh, đúng như người đi bộ và lái xe, luôn khiến mình cách xa vùng không an toàn một khoảng cách lớn. Nhưng phương pháp phân loại này cũng bao gồm mối nguy hiểm trong đó. Sau khi có ba lần kinh nghiệm tương tự đối với cùng một hiện tượng, chúng ta sẽ cho rằng nó luôn xảy ra bằng cùng một phương thức.

“Cảm giác không an toàn vừa khiến người ta căng thẳng, lại vừa khiêu khích người ta, nó ép buộc người ta phải lựa chọn phương án trong tình huống hậu quả còn hoàn toàn chưa rõ ràng. Nếu sự lựa chọn này đích thực có ý nghĩa thì chúng ta có thể tiến hành lựa chọn bằng một tấm lòng vui, vô tư. Nhưng hậu quả của sự lựa chọn không tốt không thể quá nghiêm trọng. Giả dụ chúng ta ở vào bước ngoặt nguy hiểm, chúng ta phải động viên toàn bộ nguồn sức lực của chúng ta, không chỉ là toàn bộ dự trữ trí tuệ, mà còn cả tinh thần để đối phó với nó, mà nếu thất bại thì có thể là hủy diệt. Ma lực chưa biết xúc động lòng người, khiến người ta phát minh ra vô số trò chơi, làm cho họ chơi sảng khoái trong tình huống trật tự không rối loạn, không có chút nguy hiểm nào đối với tính mạng.

“Lí thuyết xác suất là mô hình toán học có cơ hội tốt. Mới đầu nó chỉ là sự phân tích đối với trò chơi mang tính ngẫu nhiên, còn ngày nay đã là một môn lí luận toán học to lơn, nó đều có ứng dụng vào khoa học xã hội, sinh vật học, vật lí học, hóa học,…”

Như nhiều người đã biết Archimedes (Acsimet) (287-212 trước Công nguyên) đã tìm ra định luật về sức đẩy của chất lỏng khi đang tắm trong bồn tắm; Galileo Galilei (1564-1643) phát hiện ra định luật về con lắc khi quan sát ngọn đèn dao động trên trần nhà thờ và Issac Newton (25.12.1642-20.3.1727) xây dựng định luật vạn vật hấp dẫ khi nhìn quả táo rơi là ngẫu nhiên nhưng cũng là tất nhiên. Như vậy là tất nhiên có trong ngẫu nhiên!

Thế nhưng, biết bao người đã tắm trong bồn tắm, đã nhìn thấy ngọn đèn treo trên trần lắc lư, trái cây rơi xuống đất,… nhưng đâu phải phải dễ dàng rút ra được những định luật kì diệu đó. Chính do sự nung nấu, tìm tòi, suy nghĩ mà những hiện tượng thực tế đã gợi ra được những liên tưởng, củng cố thêm những dự đoán và đã dẫn đến phát minh. Đúng như nhà bác học Blais Pascal (1632-1662) người Pháp, con của Estienne Pascal (1588-1640) đã nói (hai cha con đều là nhà toán học) : “Chỉ có những khối óc đã được chuẩn bị thì mới có được những phát minh tình cờ !”. Rất mong bạn đọc có được “những chuẩn bị” để có “những phát minh tình cờ!”.

Án Bình Trọng (sưu tầm và đánh máy)

 

Thứ Sáu, 19 tháng 9, 2008

How to Think About Algorithms

How to Think About AlgorithmsThere are many algorithm texts that provide lots of well-polished code and proofs of correctness. This book is not one of them. Instead, this book presents insights, notations, and analogies to help the novice describe and think about algorithms like an expert. By looking at both the big picture and easy step-by-step methods for developing algorithms, the author helps students avoid the common pitfalls. He stresses paradigms such as loop invariants and recursion to unify a huge range of algorithms into a few meta-algorithms. Part of the goal is to teach the students to think abstractly. Without getting bogged with formal proofs, the book fosters a deeper understanding of how and why each algorithm works. These insights are presented in a slow and clear manner accessible to second- or third-year students of computer science, preparing them to find their own innovative ways to solve problems.

Rather than provide lots of well-polished code and proofs of correctness, this book presents insights, notations, and analogies to help the novice describe and think about algorithms like an expert. It stresses paradigms such as loop invariants and recursion to unify a huge range of algorithms into a few meta-algorithms.


About the Author

Jeff Edmonds received his Ph.D. in 1992 at University of Toronto in theoretical computer science. His thesis proved that certain computation problems require a given amount of time and space. He did his postdoctorate work at the ICSI in Berkeley on secure multi-media data transmission and in 1995 became an Associate Professor in the Department of Computer Science at York University, Canada. He has taught their algorithms course thirteen times to date. He has worked extensively at IIT Mumbai, India, and University of California San Diego. He is well published in the top theoretical computer science journals in topics including complexity theory, scheduling, proof systems, probability theory, combinatorics, and, of course, algorithms.
Download: How to Think About Algorithms

Assembly Language for Arcade Games and Other Fast Spectrum Programmes

Assembly Language for Arcade Games and Other Fast Spectrum ProgrammesThis is not a book for beginners. You are expected to have a working knowledge of Z80 Assembly Language, and of course a knowledge of BASIC. But for the first time, Stuart Nicholls describes the tehniques of writing arcade games and other fast-moving programs for the Spectrum. Controlled high-resolutions movement on the screen, separate movement of foreground and background, collision detection, randomizing and counting, are just a few of the sublects dealt with in this book. Routines for sound include lasers, white noise (for explosions etc) and music.

Download McGraw-Hill Education.Assembly Language for Arcade Games and Other Fast Spectrum Programmes.pdf

19 bí mật ẩn sau Windows XP

Khám phá những chức năng thú vị của Windows XP bạn sử dụng hàng ngày chỉ bằng vài động tác đơn giản.

1. Để biết thông tin về tình trạng máy

Nhấn phím Windows+R, gõ cmd và nhấn enter, sau đó gõ tiếp syteminfo. Nếu muốn lưu các thông tin này, nhập lệnh systeminfo > info.txt để tạo file text với tên info.txt. (Chỉ áp dụng đối với phiên bản Professional Edition).

2. Xoá file hoàn toàn khôngqua Recycle Bin

Nhấn phím Windows+R, gõ gpedit.msc, chọn User Configuration >Administrative Templates > Windows Component> Windows Explorer và chọn Do not move deleted file trong các thiết lập của Recycle Bin. Ngoài ra, còn khá nhiều tùy chọn về giao diện hay hệ thống trong gpedit. Một số có thể làm ngừng các hoạt động của máy tính nếu bạn bất cẩn. (Chỉ áp dụng đối với phiên bản Professional Edition)

3. Khóa máy tính tạm thời chỉ bằng click đúp chuột

Nhấn chuột phải lên desktop, chọn new > shortcut và nhập rundll32.exe user32.dll,LockWorkStation trong mục Location. Đặt tên shortcut tùy chọn. Mỗi khi cần khóa máy tính, chỉ cần click đúp vào shortcut này. (Tất nhiên, bạn vẫn có thể sử dụng tổ hợp phím Windows + L)

4. Đôi khi có những phần mềm được đặt chế độ ẩn gây bất tiện khi tháo bỏ như Windows Messenger

Để khắc phục, dùng Notepad hay Edit để chỉnh sửa file text ở C:/windows/inf/sysoc.inf, tìm và xóa bỏ từ hide. Từ nay về sau, bạn có thể gỡ bỏ các phần mềm đó bằng cách vào Control Panel >Add or Remove Programs>Add/Remove Windows Components.

5. XP cũng có một số câu lệnh mới khá thú vị dùng cho tệp DOS

-eventcreateeventtriggers để khởi tạo và theo dõi các hoạt động của hệ thống

-typeperf giám sát hoạt động của nhiều hệ thống con (subsystems) khác nhau

-schtasks quản lý các tác vụ đã được lên lịch trong mục All Programs > Accessories > System Tools > Scheđule Tasks

6. XP hỗ trợ giao thức IPv6

Tuy nhiên, người sử dụng chỉ có thể thử nghiệm trên mạng LAN do hầu hết các nhà cung cấp dịch vụ Internet vẫn chưa hỗ trợ IPv6. Để tìm hiểu về IPv6 nhấn Windows+R, gõ ipv6 install… (lệnh này an toàn và không ảnh hưởng đến các thiết lập mạng đang sử dụng), nhập tiếp ipv6/?

7. Có thể ngừng các tác vụ đang hoạt động trên máy với lệnh taskill /pid với số các tác vụ, hoặc lệnh tskill với số lượng các chương trình đang hoạt động. Tương tự, lệnh tasklist cung cấp thông tin về các hoạt động của hệ thống.

8. File ZIP trog XP được coi như một thư mục (folder), khá tiện lợi đối với các máy có cấu hình cao. Đối những máy tốc độ chậm hơn, có thể yêu cầu XP coi các file ZIP độc lập với hệ thống bằng câu lệnh regsvr32 /u zipfldr.dll .Ngược lại, để hủy câu lệnh trên nhập regsvr32 zipfldr.dll.

9. ClearType là một chương trình khử răng cưa cho phông chữ được mặc định là không hoạt động. Những người dùng DOS hay có vấn đề về thị lực nên sử dụng thử chương trình này. Để khởi động ClearType, nhấn phải chuột lên màn hình desktop, chọn Properties, Appearance, Effects, chọn ClearType từ menu thả thứ 2 và nhấn OK. Chương trình đặc biệt hoạt động hiệu quả trên máy tính xách tay. Để ClearType hoạt động ngay từ màn hình Wellcome, nhấn Windows+R, gõ regedit, tìm HKEY_USERS>.DEFAULT>Control Panel>Desktop>FontSmoothingType, chuyển từ giá trị mặc định thành 2.

10. Chạy Remote Assisstance hỗ trợ máy tính cài tường lửa sử dụng NAT (network address translation)

Khi nhận được thư mời Remote Assisstance, chỉnh sửa phần địa chỉ NAT trong phần RCTICKET, ví dụ 192.168.1.10, thay thế địa chỉ này bằng IP thật của máy được trợ giúp (sử dụng trang www.whatismyip.com để xem) – lưu ý, máy được trợ giúp phải mở cổng 3389 trên tường lửa và chuyển tiếp tới máy trợ giúp.

11. Chạy một chương trình với nhiều tài khoản song song mà không cần phải đăng nhập nhiều lần

Nhấn chuột phải vào biểu tượng chương trình và chọn Run As... điền username và mật khẩu của tài khoản muốn sử dụng. Mẹo này khá hữu hiệu khi cài đặt phần mềm mà hầu hết hiện nay đều yêu cầu đăng nhập quyền Administrative.

12. Windows XP thường khá phiền phức khi không ngừng yêu cầu cập nhật tự động, đăng ký một Passport, hay sử dụng Windows Messenger v.v...

Tuy việc cập nhật không tốn nhiều thời gian, bạn có thể ngừng các yêu cầu này từ XP nều muốn : nhấn Windows+ R, gõ regedit, theo đường dẫn HKEY_CURRENT_USER>Software>Microsoft>Windows>Current Version>Explorer>Advanced tạo mới một giá trị DWORD có tên là EnableBalloonTips và gán giá trị 0.

13. Vào thẳng tài khoản không nhập username và password

Nhấn Windows+R, gõ control userpasswords2. Tại tab Users, bỏ ô chọn Users Must Enter A User Name And Password To Use This Computer và nhấn OK. Tại hộp thoại Automatically Log On điền username và mật khẩu của tài khoản muốn sử dụng.

14. Internet Explorer có thể tự động xóa các file lưu tạm khi được yêu cầu. Mở trình duyệt, chọn Tools> Internet Options, tại thẻ Advanced, mục Security chọn ô Empty Temporary Internet Files và đóng trình duyệt.

15. Có thể thay thế các đèn LED của card mạng với chương trình miễn phí Network Activity Light trong XP

Nhấn phải chuột vào biểu tượng My Network Places trên màn hình desktop, chọn Properties. Tiếp tục nhấn phải chuột vào phần mô tả của mạng LAN hay kết nối dial-up, chọn Properties, chọn biếu tượng Show trong phần thông báo. Ngay bên phải trên thanh taskbar của màn hình sẽ xuất hiện một biểu tượng nhỏ nhấp nháy khá vui mắt mỗi khi sử dụng mạng.

16. Để điều chỉnh tốc độ sử dụng của thanh menu Start, bạn có thể thay đổi giá trị trong registry HKEY_CURRENT_USER> Control Panel>Desktop>MenuShowDelay từ mặc định ban đầu là 400 xuống thấp hơn, ví dụ là 0.

17. Windows Explorer cũng có thể đổi tên file hàng loạt. Bôi chọn nhiều file trên một cửa số, nhấn phải chuột vào một trong số đó và rename. Tất cả các file sẽ được đổi tên giống nhau và có các con số trong ngoặc đơn để phân biệt. Ngoài ra, trong một danh mục, các biểu tượng có thể được sắp xếp thành từng nhóm bằng cách chọn View> Arrange Icon By> Show In Groups.

18. Windows Media Player có thể hiện bìa đĩa (cover) của album nhạc mỗi khi play các bài hát trong album đó - với điều kiện chương trình có thể tìm được cover của bài hát từ Internet. Nếu không, người sử dụng có thể tự đặt cover của album vào cùng một thư mục với các file nhạc. Lưu ý đặt tên cho cover là folder.jpg, WMP sẽ tự động hiển thị hình này mỗi khi chơi bài hát

19. Để gọi hộp thoại System Properties, nhấn tổ hợp phím Windows + Break. Tương tự, tổ hợp Windows + D để hiển thị màn hình desktop và tổ hợp Windows key + Tab để di chuyển giữa các nút trên thanh Taskbar.

Theo Anh Vinh - Dân trí

Thứ Bảy, 13 tháng 9, 2008

Google làm toán sai

Công cụ tính toán của hãng tìm kiếm Mỹ đôi khi gặp trục trặc với những số lớn - điều nghe có vẻ không phù hợp với một công ty mà tên gọi của nó đại diện cho một con số vĩ đại (Google có nghĩa là googol - số chứa 100 chữ số 0 ở phía sau số 1).
Chẳng hạn, khi lấy 2999999999999999 trừ 2999999999999991, Google sẽ cho kết quả bằng 0 thay vì bằng 8. Hoặc 400000000000002 - 400000000000001 cũng được trả lời là 0. Nhưng Google lại đưa ra đáp án đúng là 2 với phép tính 400000000000002 - 400000000000000.

Ngoài ra, khi người sử dụng nhập 2.00135558564^1023, Google sẽ diễn giải thành 1.79769313 x 10^308. Nhưng nếu tăng lên thành 2.00135558565^1023, công cụ tính toán lại hiểu đó là một lệnh tìm kiếm chứ không phải một phép tính.

Việc mã hóa và viết thuật toán cho các số lớn không hề đơn giản. Hầu hết những máy tính cơ (calculator) thông thường cũng không đủ chỗ cho con người nhập 16 chữ số như trên. Tuy nhiên, một số người sử dụng cho rằng, công ty nào tự đặt tên mình là một con số lớn sẽ cần phải chính xác hơn khi tính toán.

(Theo VnExpress/CNet)

Google Chrome - ấn tượng trình duyệt web thế hệ mới

Dù chỉ là bản thử nghiệm đầu tiên, trình duyệt web Chrome của Google gây thiện cảm lớn với tốc độ làm việc ấn tượng, tích hợp tìm kiếm và web 2.0 độc đáo - xứng đáng là đối thủ cạnh tranh của Firefox và Internet Explorer trong tương lai.

Sau khi tải và cài đặt Chrome, bạn sẽ được hỏi nhập (import) các thiết lập từ trình duyệt khác, gồm bookmarks, password, thậm chí username và password để tự điền vào các site hay viếng thăm.

Ấn tượng ban đầu

Chrome rất "nhẹ", khởi động cực nhanh, thậm chí nhanh hơn cả Internet Explorer 7 vốn dùng các thành phần khởi động cùng Windows. Trình duyệt cũng thực hiện các tác vụ rất "mượt mà", từ mở tab mới, chuyển tab, đến tải trang mới.

Giao diện sáng tạo

Giao diện Chrome thể hiện rõ quan điểm thiết kế của Google: đơn giản gọn nhẹ, công năng cao nhưng lại không đơn điệu. Với cách phối màu theo phong cách Gnome của HĐH Linux, dù thoạt nhìn có vẻ hơi "lạc điệu" trên Windows Vista, đây là một trong các trình duyệt hiếm hoi bên cạnh Safari của Mac OSX sử dụng được trong trạng thái không hiển thị toàn màn hình. Để thực hiện được điều đó, trình duyệt được "cắt tỉa" toàn bộ menu, view, file v.v.. rườm rà - tất cả được gói gọn trong hai biểu tượng page config phía bên phải.

Gnome còn sở hữu hệ thống Tab được đặt ở bên trên thanh địa chỉ chứ không phải ở dưới như truyền thống. Hãng cho biết cách thiết lập này sẽ giúp người dùng "cảm giác" rõ hơn về thanh địa chỉ đi liền với website, chứ không phải một thành phần tách biệt. Ngoài ra, tên miền chính của site đang đọc cũng được làm nổi rõ hơn. Tab kéo/thả được ở bất kì vị trí nào người dùng muốn.

Tính năng ấn tượng

Tuy nhiên, điều người dùng quan tâm nhất luôn là tính năng chứ không phải giao diện, và Chrome "chứng tỏ mình" khá ấn tượng.

Quay lại trang chủ mặc định, ta có thể thấy phong cách "speed dial" của Opera: các site yêu thích nhất được "gom" vào một chỗ cùng với ảnh nhỏ xem trước giúp truy cập nhanh. Trình duyệt sẽ dựa vào tần suất viếng thăm để tự động đưa website vào đây thay vì yêu cầu người dùng tự làm như Opera. Tại đây, bạn còn có thể chỉnh sửa lịch sử web (history) của trình duyệt, tìm kiếm..v..v... Bộ máy tìm kiếm mặc định của Chrome tất nhiên là Google, nhưng có thể thay đổi nếu muốn.

Tiếp đó, là thanh địa chỉ mà Google tự hào với cái tên Omnibar. Nếu Firefox 3 "trình làng" thanh địa chỉ biết gợi ý theo đường dẫn, theo bookmark và theo lịch sử web của, thì Omnibar có đủ các chức năng nói trên cùng khả năng gợi ý theo... nội dung trang web. Đây là dịch vụ độc quyền dựa trên cơ sở cỗ máy tìm kiếm web khổng lồ của Google. Trong tương lai, hệ thống gợi ý này sẽ liên kết với cả dịch vụ Google Account. Bookmark của Chrome tương tự Firefox 3, đánh dấu trang nhanh bằng nút ngôi sao bên trái thanh Omnibar.

Về bảo mật, Chrome có tính năng incognito mode. Khi hoạt động ở chế độ này, trình duyệt sẽ không lưu bất cứ thông tin nào về quá trình lướt web (từ url, password, cookies...). Người dùng có thể kích hoạt incognito mode tại biểu tượng page > New Incognito Windows.

Thay vì mở hẳn một cửa sổ mới như trình duyệt khác, Chrome đưa các file đang download xuống dưới cùng màn hình giúp dễ quản lý hơn.

Chrome là trình duyệt đầu tiên tham gia vào phong trào "điện toán mây" (cloud computing), xoá nhoà ranh giới các ứng dụng web và trên PC với chức năng Google Gear tạo shortcut cho các dịch vụ web ngay trên màn hình desktop. Ví dụ, bạn có thể mở một tab Gmail, chọn biểu tượng Page > Create Application Shortcut. Tại cửa sổ Google Gear mới xuất hiện, chọn vị trí đặt shortcut. Các ứng dụng mở từ shortcut này tất nhiên sẽ được hiển thị trên Chrome, nhưng toàn bộ các tính năng của trình duyệt web bị ẩn đi, gây cho bạn ấn tượng đây là phần mềm thực sự đang chạy trên PC. Ngay từ trước khi ra mắt, Google Gear đã được các chuyên gia dự báo trở thành tiêu chuẩn web 2.0 mới đầy hứa hẹn.

Vẫn chưa hài lòng

Chrome cũng gặp vấn đề như Firefox: thấy rõ độ "trì" khi tải các file nặng như Flash. Có lẽ đây là nhược điểm của Webkit engine dùng để hiển thị website. Ngoài nhược điểm duy nhất này, phiên bản thử nghiệm này có độ ổn định đáng nể, hoàn toàn có thể sử dụng trong công việc hàng ngày.

Bạn có thể download Google Chrome ngay lập tức tại đây (chọn phiên bản Chrome tiếng Việt trong danh sách thả xuống tại màn hình download).

benhvientinhoc.com

Bản cài đặt offine:http://www.mediafire.com/?yy533lrxkiu

>Download Full Standalone Offline Installer for google chrome

Thứ Năm, 11 tháng 9, 2008

Cách chèn một đoạn code vào bài viết bằng code TEXTAREA

Nguồn từ Vietwebguide. Mình chỉ sưu tầm thôi.
Hình ảnhLàm thế nào để chèn một đoạn code vào trong bài viết ? Chắc với nhiều người thì không khó. Và khi bạn viết bài mà có đoạn code dài đến một trang hoặc mấy trang thì để tiết kiệm bạn chèn bằng một khung có con trượt. Nhưng ai đảm bảo được người đọc khi thực hành bài viết của bạn có thể copy hết code trong đó ?
vui. Để thực hiện được điều này, rất đơn giản bạn chỉ cần chèn đoạn code sau vào trong đoạn code sau:


<textarea cols="15" rows="5" onclick="this.select()">Bạn chèn đoạn code HTMLvào đây!>/textarea>
Lưu ý: Nếu blog của bạn đang bật chế độ tự động chèn thẻ BR, thì khi cho code html vào TEXTAREA bạn phải nối tất cả các dòng đó thành 1 dòng trước đã, vì như thế thì code này mới hiển thị đúng được.

Các tham số cols="15"rows="5" lần lượt là số cột và số dòng của vùng TEXTAREA, bạn đặt các số này càng lớn thì vùng code của bạn càng rộng.

Nhờ có dòng: onclick="this.select()" mà khi bạn click chuột vào tất cả đoạn code bên trong đã đươc bôi đen.

Chúc thành công !

Tô Cương

Bài đăng phổ biến