Thursday, December 15, 2011

Sửa lỗi automount usb in ubuntu 10.04

1. Vào BIOS disable floppy disk
2. run in terminal:

sudo modprobe -r floppy
 
3. Khởi động lại máy

Thursday, November 3, 2011

6 bí quyết thành công của Steve Jobs


1.  Làm điều bạn yêu thích
Theo Steve: “Hãy tìm kiếm nỗi đam mê đích thực của bạn. Hãy làm điều bạn yêu thích và tạo sự khác biệt! Cách duy nhất để đạt đến thành công tột bậc là yêu thích những gì bạn làm”
Hoàn toàn đúng! Làm một công việc bạn không thích thì cũng giống như nồi tròn mà úp vung méo. Mỗi ngày bạn đều cố gắng hết sức mình để làm việc, nhưng không bao giờ thật sự đạt được thành công mà bạn cảm thấy mình đáng được nhận.Mỗi ngày làm việc là một trận chiến – hoặc ít nhất cũng là một chướng ngại cần vượt qua – bởi vì bạn chỉ cố gắng làm việc cho hết ngày để tối được về nhà, chứ không vui thú gì với công việc.
Khi bạn chỉ chú tâm làm việc cho hết ngày, hoặc tốn thời gian vào những dự án hoặc tác vụ không thú vị, bạn làm công việc khó khăn hơn cho chính mình. Khi bạn có sự đam mê, và bạn yêu thích những gì bạn làm, bạn sẽ làm việc với hiệu suất cao hơn, năng nổ và vui vẻ hơn với mọi người. Bối cảnh nào bạn nghĩ sẽ mang đến thành công một cách nhanh chóng và dễ dàng nhất? Câu trả lời thật quá rõ ràng!
Vì thế, nếu bạn muốn thật sự thành công trong cuộc sống, đầu tiên, bạn phải dành thời gian và công sức để nhận ra bạn yêu thích việc gì, và sau đó tìm một chiến lược để đạt được nó. Việc này nghe có vẻ đơn giản, nhưng không phải lúc nào cũng dễ làm. Bạn cần chuẩn bị sẵn sàng để tự tiến hành tìm kiếm và khám phá đam mê thật sự của mình là gì (không phải cái bạn nghĩ đồng nghiệp, gia đình, bạn bè và xã hội trông đợi ở bạn). Việc ba mẹ của bạn muốn bạn trở thành một luật sư hay kế toán viên hàng đầu không đồng nghĩa với việc bạn sẽ tìm thấy thành công và niềm đam mê trong công việc đó.
2. Tầm nhìn xa
Theo Steve, “Bạn không nên lo lắng về quá nhiều việc cùng một lúc. Hãy bắt đầu từ một vài việc đơn giản, sau đó mới chuyển qua những việc phức tạp hơn. Hãy suy tính không chỉ cho ngày mai, mà còn cho tương lai.”
Sự quá tải vì công việc có thể cản bước tiến của bạn trên con đường công danh sự nghiệp. Đây là một bệnh dịch ác hiểm, có thể “đè bẹp” nhiều người trên hành trình đến thành công. Vì thế, bạn phải luôn giữ được sự tập trung. Sự quá tải vì công việc “lẳng lặng” đến khi chúng ta quên mất mục tiêu chính của mình và để nhiều việc khác tràn ngập trí não của chúng ta. Một khoảnh khắc bạn tập trung vào một việc tối quan trọng, có thể giúp bạn nhanh chóng đạt đến thành công. Tuy nhiên, ở phút kế tiếp, bạn lại mãi nghĩ về cả trăm việc khác bạn cần làm, và thế là sự quá tải đến!
3.  Hãy nêu cao tinh thần doanh nhân
Steve nói “Hãy tìm kiếm ý tưởng lớn kế tiếp. Tìm ra những ý tưởng cần được hiện thực hóa một cách nhanh chóng và quyết đoán rồi “nhảy” vào thực hiện nó. Đôi khi bước đầu tiên chính là bước khó khăn nhất. Hãy đi bước đầu tiên này! Hãy mạnh dạn theo đuổi tình cảm và trực giác của bạn.”
Không ít lần tôi tình cờ gặp những người thông minh và khôn ngoan đến tuyệt vời. Họ có những ý tưởng rất hay hoặc khả năng kinh doanh, nhưng họ không sẵn sàng để thực hiện “cú nhảy” mà Steve đề cập. Vấn đề ở đây là họ biết họ muốn cái gì, nhưng lại chưa tìm ra cách để có được chúng. Vì thế, họ dừng lại và không tiến thêm nữa.
Mặc dù có một kế hoạch hay chiến lược để hiện thực hóa ý tưởng là rất quan trọng, không nên để việc quá chú trọng vào “LÀM CÁCH NÀO đạt những mục tiêu” khiến công việc của bạn bị đình trệ. Đôi lúc bạn không thể nào biết được tất cả các câu trả lời. Không sao cả, cứ tiếp tục công việc, từng bước một. Cuối cùng, tất cả những chi tiết bạn cần biết sẽ lộ ra. Còn nếu không làm gì cả, bạn sẽ chẳng tiến được đến đâu
Ca sĩ/tay guitar nổi tiếng Jim Rowland đã từng nói “Sự kỷ luật chỉ nặng một ounce còn sự hối tiếc nặng đến một tấn” (1 tấn = 32 000 ounce). Hãy duy  trì tính kỷ luật và lòng dũng cảm để tiến về phía trước theo từng bước nhỏ, và bạn sẽ không bao giờ phải hối tiếc về những tiến bộ bạn đã đạt được.
4. Hãy tạo sự khác biệt 
Theo Steve “Hãy tạo sự khác biệt. Hãy suy nghĩ khác mọi người. Chẳng thà làm một tên cướp biển còn hơn là gia nhập đội ngũ hải quân”
Tôi thích câu này của Steve vì cả từ “hải quân” và “cướp biển” đều gợi nhớ cho tôi nhiều điều! Tôi đã làm việc 14 năm trong môi trường công ty (chưa kể một khoảng thời gian ở trong quân dự bị) nhưng tôi đã vứt bỏ những điều đó để thành lập công ty Outshine Consulting and The Success Rules. Hiện tại không có sự lựa chọn nào tốt hơn cái nào, nhưng tôi nghĩ điểm mấu chốt cần suy nghĩ ở đây là bạn muốn nắm giữ vị trí gì trong cuộc sống.
Nếu chúng ta sống trong một thế giới liên tục thay đổi, chúng ta sẽ cảm thấy mọi thứ đều hỗn loạn.   
Tuy nhiên, để trở thành một doanh nhân thành công như Steve Jobs, điều tối quan trọng là bạn phải liên tục tìm cách thay đổi hiện trạng (status quo), tìm kiếm những ý tưởng mới, có đầu óc cách tân và sáng tạo. Việc làm theo những gì có sẵn nhiều khả năng sẽ tạo ra những kết quả cũ hơn là những cái hiện đại và mới mẻ.
Bạn muốn có sự thách thức và thay đổi, hay bạn thích sự ổn định? Hãy thành thật với chính bản thân bởi vì không phải ai cũng có thể làm lính hải quân, và không phải ai cũng có thể làm hải tặc giỏi!
5. Nỗ lực hết mình
Theo Steve “ Hãy nỗ lực hết mình khi làm bất cứ việc gì. Thành công sẽ tạo ra thành công. Vì thế hãy khát khao thành công"
Nếu bạn “mắc kẹt” trong việc suy nghĩ xem làm cách nào để thành công, hoặc chờ đợi thành công đến với mình, bạn sẽ dậm chân tại chỗ. Thành thật mà nói, đứng yên tại chỗ cho thấy bạn không thật sự khát khao thành công.
Bạn cần tiếp tục công việc, và phải năng động vì mỗi một thành công bạn có – dù nhỏ đến đâu - sẽ giúp tạo ra nhiều và nhiều thành công về sau. Khi động lượng tăng lên thì mức độ thành công của bạn cũng tăng theo. Đến lượt mình, nó lại tạo ra thêm nhiều động lượng và động lực làm việc. Trong điều kiện lý tưởng nhất, đó chính là hiệu ứng quả cầu tuyết (Khi một quả cầu tuyết lăn xuống dốc, nó tích lũy thêm nhiều tuyết bám trên bề mặt nên ngày một lớn hơn) Tuy nhiên, bạn vẫn cần có lòng khao khát để đạt được mục tiêu và sẵn lòng hành động để trải nghiệm nó
6. Không ngừng học hỏi
Theo Steve “Lúc nào cũng có một cái gì đó mới mẻ để bạn học! Trao đổi ý kiến, học hỏi từ khách hàng, đối thủ cạnh tranh và đối tác. Nếu bạn làm việc với một người bạn không thích, hãy học cách thích họ. Hãy khen ngợi họ và thu được lợi ích gì đó từ họ.”
Nếu năng lực của bạn không gia tăng, bạn sẽ chết dần. Đây có thể là một câu khó nuốt, nhưng đó là sự thật. Nếu không phát triển, học hỏi và trưởng thành, bạn sẽ trở nên ốm yếu và chết dần. Bạn muốn mình rơi vào trường hợp nào?
Steve Jobs rõ ràng có được sự cân bằng. Ông không đạt được thành công như ngày hôm nay bằng cách nghỉ ngơi và tận dụng những tri thức sẵn có. Ông liên tục sáng tạo và đổi mới. Điều này chỉ có thể đạt được từ việc không ngừng học hỏi.
Thông qua việc xây dựng một mạng lưới quan hệ xã hội hữu hiệu, bạn có thể học được nhiều điều từ những người thông thái. Họ có thể thách đố tư duy của bạn và giúp bạn phát triển ý tưởng và chiến lược mới để đạt được thành công. Học tập cũng giống như tiêu tiền. Bạn có thể mở mang kiến thức mỗi ngày bằng cách nhận thức ưu điểm của những người xung quanh bạn, hoặc đọc sách thay vì ngồi trước màn hình. Sự lựa chọn là của bạn.
(Theo Ezinearticles.com)

Monday, October 24, 2011

Năm phút với Scrum

Scrum là gì?

Scrum là một trong các khung làm việc linh hoạt (agile framework) phổ biến nhất hiện nay. Ban đầu, Scrum được dùng để quản lý các dự án phát triển phần mềm, nhưng nó có thể được dùng trong các công việc khác với sự phức tạp, và đòi hỏi tính sáng tạo rất đa dạng.

Dựa trên lý thuyết quản lý thực nghiệm (empirical process control), Scrum sử dụng cơ chế lặp (iterative) và tăng dần (incremental) để tối ưu hóa sự hiệu quả và kiểm soát rủi ro. Scrum rất đơn giản, dễ học và có khả năng ứng dụng rất to lớn. Để có thể dùng Scrum, chúng ta cần tiếp cận các thành tố tạo nên Scrum bao gồm ba giá trị cốt lõi (còn gọi là ba chân), ba vai trò, bốn cuộc họp, và ba công cụ (artifacts).

Scrum framework có gì?

Ba chân (hay giá trị cốt lõi) của Scrum

Scrum là một phương pháp linh hoạt (agile), vì thế nó tuân thủ các nguyên tắc của Agile Manifesto (Tuyên ngôn Agile). Ngoài ra Scrum hoạt động dựa trên ba giá trị cốt lõi, còn gọi là Ba chân của Scrum bao gồm Minh bạch, Thanh tra và Thích nghi.

Minh bạch (transparency)

Trong Scrum, tính minh bạch được đề cao như là giá trị cốt lõi cơ bản nhất. Muốn thành công với Scrum, thông tin phải minh bạch và thông suốt. Từ đó mọi người ở các vai trò các nhau có đủ thông tin cần thiết để tiến hành các quyết định có giá trị để nâng cao hiệu quả công việc. Các công cụ và cuộc họp trong Scrum luôn đảm bảo thông tin được minh bạch cho các bên.

Thanh tra (inspection)

Công tác thanh tra liên tục các hoạt động trong Scrum đảm bảo cho việc phát lộ các vấn đề cũng như giải pháp để thông tin đa dạng và hữu ích đến được với các bên tham gia dự án. Truy xét kĩ càng và liên tục là cơ chế khởi đầu cho việc thích nghi và các cải tiến liên tục trong Scrum.

Thích nghi (adaptation)

Scrum rất linh hoạt như các phương pháp phát triển linh hoạt (agile software development) khác. Nhờ đó nó mang lại tính thích nghi rất cao. Scrum có thể phản hồi lại các thay đổi một cách tích cực, nhờ đó mang lại thành công cho dự án.

Ba vai trò

Trong Scrum, người tham gia phát triển phần mềm được phân chia ra ba vai trò với trách nhiệm rõ ràng để đảm bảo tối ưu hóa các công việc đặc thù. Ba vai trò này bao gồm: Product Owner, Scrum Master và Team (Đội sản xuất hay Nhóm Phát triển).

Product Owner (chủ sản phẩm)

Là người chịu trách nhiệm về sự thành công của dự án, người định nghĩa các yêu cầu và đánh giá cuối cùng đầu ra của các nhà phát triển phần mềm.

Scrum Master

Là người có hiểu biết sâu sắc về Scrum và đảm bảo nhóm có thể làm việc hiệu quả với Scrum.

Team (Đội sản xuất, hay Nhóm phát triển)

Một nhóm liên chức năng (cross-functional) tự quản lý để tiến hành chuyển đổi Product Backlog item thành chức năng của hệ thống.

Bốn Cuộc họp (Four ceremonies)

Scrum định nghĩa quy tắc cho bốn lễ nghi (các cuộc họp) nhằm tạo môi trường và quy cách hoạt động và cộng tác cho các thành viên trong dự án. Các lễ nghi này diễn ra trước khi Sprint bắt đầu (Sprint Planning), trong khi Sprint diễn ra (Daily Scrum) và sau khi Sprint kết thúc (Sprint Review và Sprint Retrospective).

Sprint Planning (Họp Kế hoạch Sprint)

Nhóm phát triển gặp gỡ với Product Owner để lên kế hoạch làm việc cho một Sprint (xem thêm phần Sprint bên dưới). Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải phát triển, phân tích và nhận biết các công việc phải làm kèm theo các ước lượng thời gian cần thiết để hoàn tất các tác vụ. Scrum sử dụng cách thức lập kế hoạch từng phần và tăng dần theo thời gian, theo đó, việc lập kế hoạch không diễn ra duy nhất một lần trong vòng đời của dự án mà được lặp đi lặp lại, có sự thích nghi với các tình hình thực tiễn trong tiến trình đi đến sản phẩm.

Daily Scrum (Họp Scrum hằng ngày)

Scrum Master tổ chức cho Đội sản xuất họp hằng ngày để Nhóm chia sẻ tiến độ công việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển phần mềm suốt một Sprint.

Sprint Review (Họp Sơ kết Sprint)

Cuối Sprint, nhóm phát triển cùng với Product Owner sẽ rà soát lại các công việc đã hoàn tất (DONE) trong Sprint vừa qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm.

Sprint Retrospective (Họp Cải tiến Sprint)

Dưới sự trợ giúp của Scrum Master, nhóm phát triển sẽ rà soát lại toàn diện Sprint vừa kết thúc và tìm cách cải tiến quy trình làm việc cũng như bản thân sản phẩm.

Ba công cụ (artifacts)

Scrum sử dụng các công cụ rất đơn giản nhưng hiệu quả để trợ giúp công việc. Chúng bao gồm bản yêu cầu của chủ sản phẩm được gọi là Product backlog, bản kế hoạch của từng Sprint (Sprint Backlog) và biểu đồ Burndown Chart.

Product backlog

Đây là danh sách ưu tiên các tính năng (feature) hoặc đầu ra khác của dự án, có thể hiểu như là danh sách yêu cầu (requirement) của dự án. Product Owner chịu trách nhiệm sắp xếp độ ưu tiên cho từng hạng mục (Product Backlog Item) trong Product Backlog dựa trên các giá trị do Product Owner định nghĩa (thường là giá trị thương mại – business value).

Sprint backlog

Đây là bản kế hoạch cho một Sprint; là kết quả của buổi họp lập kế hoạch (Sprint Planning). Với sự kết hợp của Product Owner, nhóm sẽ phân tích các yêu cầu theo độ ưu tiên từ cao xuống thấp để hiện thực hóa các hạng mục trong Product Backlog dưới dạng danh sách công việc (TODO list).

Burndown Chart

Đây là biểu đồ hiển thị xu hướng của dự án dựa trên lượng thời gian cần thiết còn lại để hoàn tất công việc. Burndown Chart có thể được dùng để theo dõi tiến độ của Sprint (được gọi là Sprint Burndown Chart) hoặc của cả dự án (Project Burndown Chart).

Scrum vận hành như thế nào?

Product Owner tạo ra Product Backlog chứa các yêu cầu của dự án với các hạng mục được sắp theo thứ tự ưu tiên. Đội sản xuất sẽ thực hiện việc hiện thực hóa dần các yêu cầu của Product Owner với sự lặp đi lặp lại các giai đoạn nước rút từ 2 đến 4 tuần làm việc (gọi là Sprint) với đầu vào là các hạng mục trong Product Backlog, đầu ra là các gói phần mềm hoàn chỉnh có thể chuyển giao được (Potentially Shippable Product Increment). Trước khi cả nhóm cùng đua nước rút trong Sprint, đội sản xuất cùng họp với Product Owner để lên kế hoạch cho từng Sprint. Kết quả của buổi lập kế hoạch (theo cách làm của Scrum) là Sprint Backlog. Trong suốt quá trình phát triển, nhóm sẽ phải cập nhật Sprint Backlog và thực hiện công việc họp hằng ngày (Daily Scrum) để chia sẻ tiến độ công việc cũng như các vướng mắc trong quá trình làm việc cùng nhau. Khi kết thúc Sprint, nhóm tạo ra các gói phần mềm có chức năng hoàn chỉnh, sẵn sàng chuyển giao (shippable) cho khác hàng. Buổi họp Sơ kết Sprint (Sprint Review) ở cuối Sprint sẽ giúp khách hàng thấy được nhóm đã có thể chuyển giao những gì, còn những gì phải làm hoặc còn gì phải thay đổi hay cải tiến. Sau khi kết thúc việc đánh giá Sprint, Scrum Master và nhóm cùng tổ chức họp Cải tiến Sprint (Sprint Retrospective) để tìm kiếm các cải tiến trước khi Sprint tiếp theo bắt đầu.

Các Sprint sẽ được lặp đi lặp lại cho tới khi nào các hạng mục trong Product Backlog đều được hoàn tất hoặc khi Product Owner quyết định có thể dừng dự án căn cứ tình hình thực tế. Do sử dụng chiến thuật “quan trọng làm trước” nên các hạng mục mang lại nhiều giá trị hơn cho chủ dự án luôn được hoàn tất trước. Do đó Scrum luôn mang lại giá trị tốt nhất cho người đầu tư cho dự án. Do quy trình luôn luôn được cải tiến, nhóm Scrum thường có năng suất lao động rất cao. Đây là hai lợi ích to lớn mà Scrum mang lại cho tổ chức.


http://hanoiscrum.net

Wednesday, October 12, 2011

Cách chia subneting , subnet mask

Subnet MasksKhi ta chia một Network ra thành nhiều Network nhỏ hơn, các Network nhỏ nầy được gọI là Subnet. Theo quy ước, các địa chỉ IP được chia ra làm ba Class (lớp) như sau:

Address Class Subnet mask trong dạng nhị phân Subnet mask
Class A11111111 00000000 00000000 00000000255.0.0.0
Class B11111111 11111111 00000000 00000000255.255.0.0
Class C11111111 11111111 11111111 00000000255.255.255.0


Subnet Mask của Class A bằng 255.0.0.0 có nghĩa rằng ta dùng 8 bits, tính từ trái qua phải (các bits được set thành 1), của địa chỉ IP để phân biệt các NetworkID của Class A. Trong khi đó, các bits còn sót lại (trong trường hợp Class A là 24 bits đuợc reset thành 0) được dùng để biểu diễn computers, gọi là HostID. Nếu bạn chưa quen cách dùng số nhị phân hãy đọc qua bài Hệ thống số nhị phân.

Subnetting
Hãy xét đến một địa chỉ IP class B, 139.12.0.0, với subnet mask là 255.255.0.0 (có thể viết là: 139.12.0.0/16, ở đây số 16 có nghĩa là 16 bits được dùng cho NetworkID). Một Network với địa chỉ thế nầy có thể chứa 65,534 nodes hay computers (65,534 = (2^16) –2 ) . Đây là một con số quá lớn, trên mạng sẽ có đầy broadcast traffic.

Giả sử chúng ta chia cái Network này ra làm 4 Subnet. Công việc sẽ bao gồm ba bước:

1) Xác định cái Subnet mask
2) Liệt kê ID của các Subnet mới
3) Cho biết IP address range của các HostID trong mỗi Subnet

Bước 1: Xác định cái Subnet mask
Để đếm cho đến 4 trong hệ thống nhị phân (cho 4 Subnet) ta cần 2 bits. Công thức tổng quát là:

Y = 2^X

mà Y = con số Subnets (= 4)
X = số bits cần thêm (= 2)

Do đó cái Subnet mask sẽ cần 16 (bits trước đây) +2 (bits mới) = 18 bits

Địa chỉ IP mới sẽ là 139.12.0.0/18 (để ý con số 18 thay vì 16 như trước đây). Con số hosts tối đa có trong mỗi Subnet sẽ là: ((2^14) –2) = 16,382. Và tổng số các hosts trong 4 Subnets là: 16382 * 4 = 65,528 hosts.

Bước 2: Liệt kê ID của các Subnet mới
Trong địa chỉ IP mới (139.12.0.0/18) con số 18 nói đến việc ta dùng 18 bits, đếm từ bên trái, của 32 bit IP address để biểu diễn địa chỉ IP của một Subnet.

Subnet mask trong dạng nhị phân Subnet mask
11111111 11111111 11000000 00000000255.255.192.0

Như thế NetworkID của bốn Subnets mới có là:

Subnet Subnet ID trong dạng nhị phân Subnet ID
110001011.00001100.00000000.00000000139.12.0.0/18
210001011.00001100.01000000.00000000139.12.64.0/18
310001011.00001100.10000000.00000000139.12.128.0/18
410001011.00001100.11000000.00000000139.12.192.0/18

Bước 3: Cho biết IP address range của các HostID trong mỗi Subnet
Vì Subnet ID đã dùng hết 18 bits nên số bits còn lại (32-18= 14) được dùng cho HostID.
Nhớ cái luật dùng cho Host ID là tất cả mọi bits không thể đều là 0 hay 1.

Subnet HostID IP address trong dạng nhị phân HostID IP address Range
110001011.00001100.00000000.00000001 10001011.00001100.00111111.11111110139.12.0.1/18 -139.12.63.254/18
210001011.00001100.01000000.00000001 10001011.00001100.01111111.11111110139.12.64.1/18 -139.12.127.254/18
310001011.00001100.10000000.00000001 10001011.00001100.10111111.11111110139.12.128.1/18 -139.12.191.254/18
410001011.00001100.11000000.00000001 10001011.00001100.11111111.11111110139.12.192.0/18 –139.12.255.254


Bạn có để ý thấy trong mỗi Subnet, cái range của HostID từ con số nhỏ nhất (màu xanh) đến con số lớn nhất (màu cam) đều y hệt nhau không?

Bây giờ ta thử đặt cho mình một bài tập với câu hỏi:

Bạn có thể dùng Class B IP address cho một mạng gồm 4000 computers được không? Câu trả lời là ĐƯỢC. Chỉ cần làm một bài toán nhỏ.

Giả tỉ cái IP address là 192.168.1.1. Thay vì bắt đầu với Subnet mask, trước hết chúng ta tính xem mình cần bao nhiêu bits cho 4000 hosts.

Con số hosts ta có thể có trong một network được tính bằng công thức:

Y = (2^X –2)

Nhớ cái luật dùng cho Host ID là tất cả mọi bits không thể đều là 0 hay 1.

4094 = (2^12 –2)
X = 12 , ta cần 12 bits cho HostIDs, do đó Subnet mask sẽ chiếm 20 (=32-12) bits.

Quá trình tính toán nói trên nầy mang tên là Variable Length Subnet Mask(VLSM).

Supernetting
Giả sử ta mạng của ta có 3 Subnets:

Accounting: gồm 200 hosts
Finance : gồm 400 hosts
Marketing: gồm 200 hosts

Bạn hòa mạng với Internet và được Internet Service Provider (ISP) cho 4 Class C IP addresses như sau:
192.250.9.0/24
192.250.10.0/24
192.250.11.0/24
192.250.12.0/24

Bạn có 3 segments và bạn muốn mỗi segment chứa một Network.
Bây giờ bạn làm sao?

Địa chỉ IP trong Class C với default subnet mask 24 cho ta con số Hosts tối đa trong mỗi Network là [(2^X) – 2] = (2^8) – 2 = 254. Như thế segments Accounting và Marketing không bị trở ngại nào cả.

Nhưng ta thấy Segment Finance cần thêm 1 bit mới đủ. Ta làm như sau:

Bước 1: Liệt kê Network IP addresses trong dạng nhị phân
192.250.9.0/24 11000000 11111010 00001001 00000000 (1)
192.250.10.0/24 11000000 11111010 00001010 00000000 (2)
192.250.11.0/24 11000000 11111010 00001011 00000000 (3)
192.250.12.0/24 11000000 11111010 00001100 00000000 (4)

Bước 2: Nhận diện network prefix notation
23 bits đầu (từ trái qua phải) của 2 network IP address (2) and (3) đều giống nhau.

Nếu chúng ta thu Subnet mask từ 24 xuống 23 cho (2) và (3) ta sẽ có một Subnet có thể cung cấp 508 hosts.

IP address của mỗi segment trở thành:

Accounting: gồm 200 hosts: 192.250.9.0/24
Finance: gồm 400 hosts: 192.250.10.0/23
Marketing: gồm 200 hosts: 192.250.12.0/24

Bây giờ IP address 192.250.11.0 trở thành một HostID tầm thường trong Subnet 192.250.10.0/23.

Quá trình ta làm vừa qua bằng cách bớt số bits trong Subnet mask khi gom hai hay bốn (v.v..) subnets lại với nhau để tăng con số HostID tối đa trong một Subnet, được gọi là SUPERNETTING.

Supernetting đuợc dùng trong router bổ xung CIDR (Classless Interdomain Routing và VLSM (Variable Length Subnet Mask).

Và luôn luôn nhớ rằng trong internetwork, NETWORK ID phải là địa chỉ duy nhất (unique)

Friday, October 7, 2011

How To Install PHP on IIS 6.0

Configuring IIS to process PHP requests

Download and install PHP in accordance to the instructions described in manual installation steps

Note:

Non-thread-safe build of PHP is recommended when using IIS. The non-thread-safe builds are available at » PHP for Windows: Binaries and Sources Releases.

Configure the CGI- and FastCGI-specific settings in php.ini file as shown below:

Example #1 CGI and FastCGI settings in php.ini

fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo=1 cgi.force_redirect = 0

Download and install the » Microsoft FastCGI Extension for IIS 5.1 and 6.0. The extension is available for 32-bit and 64-bit platforms - select the right download package for your platform.

Configure the FastCGI extension to handle PHP-specific requests by running the command shown below. Replace the value of the "-path" parameter with the absolute file path to the php-cgi.exe file.

Example #2 Configuring FastCGI extension to handle PHP requests

cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^ -extension:php -path:"C:\PHP\php-cgi.exe" 

This command will create an IIS script mapping for *.php file extension, which will result in all URLs that end with .php being handled by FastCGI extension. Also, it will configure FastCGI extension to use the executable php-cgi.exe to process the PHP requests.

Check in the C:\WINDOWS\system32\inetsrv\fcgiext.ini file the next text is present or paste into it:

[Types]
php=c:\php\php-cgi.exe

[c:\php\php-cgi.exe]
QueueLength=999
MaxInstances=20
InstanceMaxRequests=10000
IdleTimeout=90
RequestTimeout=90

To create a script map for the FastCGI handler on IIS 6.0 and IIS 5.1:
  1. Open IIS Manager.
  2. Double-click the machine icon for the local computer.
  3. Right-click Web Sites and then click Properties.
  4. Click the Home Directory tab.
  5. Click the Configuration… button.
  6. Click the Add… button.
  7. Browse to %WINDIR%\system32\inetsrv\ and select fcgiext.dll as the executable file.
    Note: If you are using a 64-bit platform in WOW mode, you must use the fcgiext.dll file that is located in the %WINDIR%\SysWOW64\inetsrv path.
  8. In the Extension text box, enter .php (or another extension that is specific to your FastCGI application).
  9. Under Verbs, in the Limit to text box, enter GET,HEAD,POST.
  10. Select the Script engine and Verify that file exists check boxes.
  11. Click OK.

Set index.php as a default document in IIS

The IIS default documents are used for HTTP requests that do not specify a document name. With PHP applications, index.php usually acts as a default document. To add index.php to the list of IIS default documents, follow these steps:

  1. In the Windows Start Menu choose "Run:", type "inetmgr" and click "Ok";

  2. Right-click on the "Web Sites" node in the tree view and select "Properties";

  3. Click the "Documents" tab;

  4. Click the "Add..." button and enter "index.php" for the "Default content page:"


    Reference:

    http://learn.iis.net

    php.net

How to switch between Activities

In my great expectations of Google Android coming to Canada on June 2nd, I’ve started experimenting with developing some apps for the Android platform. My first app is called “The Taxman” and will calculate the amount of tax you owe per year in your province/state – well only Canada for now.


I had trouble adjusting to what an “Activity” was and how to handle it. Here is a quick and dirty way to create an Activity, and to switch to another Activity (think of it as another screen) on the click of a button.


1. Create a new Android project – or you might already have one created.


01 new project


2. Add a new Class that extends android.app.Activity. You need a total of two classes that extend Activity. You will switch from one Activity to another.


02 new class


03 new class 2



3. Now, we’ll create two XML files to store the layout of each Activity. Under the res/layouts directory create a copy of main.xml


04 xml files


4. Each XML file will contain 1 button. On the click of the button, the Activities will switch.


main.xml will contain:


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#ffffff" >
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:textColor="#000000"
android:text="This is Activity 1" />

<Button android:text="Next" android:id="@+id/Button01"
android:layout_width="250px" android:textSize="18px"
android:layout_height="55px">

</Button>
</LinearLayout>

main2.xml will contain:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#ffffff" >
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:textColor="#000000"
android:text="This is Activity 2" />

<Button android:text="Previous" android:id="@+id/Button02"
android:layout_width="250px" android:textSize="18px"
android:layout_height="55px">
</Button>
</LinearLayout>

So each Activity will have a text that says “This is Activity x” and a button to switch the Activity.


5. Add the second Activity to the main manifest file. Open AndroidManifest.xml and add:


        <activity android:name=".Activity2"></activity>

The final result will look similar to this:


<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.warriorpoint.taxman2"
android:versionCode="1"
android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Activity1" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Activity2">
</activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>

If you forget to do this, then the you will get a Null Pointer exception because “Activity2” will not be found at runtime. It took me some time to find out how to find what Exception was getting thrown as well. I will include how to debug and look at Exceptions in another future post.


5. Open Activity1.java and enter the following code:


package com.warriorpoint.taxman2; 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity1 extends Activity {
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button next = (Button) findViewById(R.id.Button01);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), Activity2.class);
startActivityForResult(myIntent, 0);
}
});
}
}

Here’s a quick explanation of what this does:


- setContentView(R.layout.main) makes sure that main.xml is used as the layout for this Activity.


- Gets a reference to the button with ID Button01 on the layout using (Button) findViewById(R.id.Button01).


- Create san OnClick listener for the button – a quick and dirty way.


- And the most important part, creates an “Intent” to start another Activity. The intent needs two parameters: a context and the name of the Activity that we want to start (Activity2.class)


- Finally, the Activity is started with a code of “0”. The “0” is your own code for whatever you want it to mean. Activity2 will get a chance to read this code and use it. startActivityForResult means that Activity1 can expect info back from Activity2. The result from Activity2 will be gathered in a separate method which I will not include here.


6. Open Activity2.java and enter the code below:


package com.warriorpoint.taxman2; 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity2 extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
Button next = (Button) findViewById(R.id.Button02);

next.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
}

This code does the following:


- Sets main2 as the layout for this Activity


- Gets a reference to Button02 and creates an OnClick listener


- In the OnClick listener, the Activity finishes with finish(). setResult() returns information back to Activity 1. In this example, it returns no information; and Activity1 doesn’t even have the listener to receive this information anyway.


That’s it! Run it!


05 run


The app will load in Activity 1:


06 activity 1


When you click the button you will see Activity 2. There are no animations, no tweens, etc, so the screen will just “change”. I’ll talk about animations in future posts.


07 activity 2


And clicking on the button “Previous” here will go back to Activity1.


Still to come:


1. How to create animations when switching screens.


2. How to switch using a dragging motion of your finger.


3. How to see a log of the exceptions that your app throws

http://www.warriorpoint.com

Friday, September 16, 2011

Câu chuyện Rocky

Năm 1974 Sylvester Stallone, một diễn viên và nhà viết kịch bản phim, nản chí và bần cùng. Trong lúc ngồi xem một trậng đấu quyền Anh, anh bỗng bắt được cảm hứng bởi một tay quyền Anh “tầm thường”, một người không thể so sánh gì được với Mohammed Ali vĩ đại. Thế là anh chạy bổ về nhà và trong một cơn bộc phát cảm hứng kéo dài 3 ngày đã cho ra đời bản nháp đầu tiên của kịch bản mang tên Rocky.

Khi trong túi chỉ còn 106USD cuối cùng của mình, Stallone nộp kịch bản cho đại lý của anh. Một trường quay đề nghị 20.000USD với điều kiện để diễn viên Ryan O’Neal hay Burt Reynolds đóng vai chính. Dù phấn khích bởi lời đề nghị này nhưng Stallone muốn tự mình đóng vai chính. Anh đề nghị diễn không tính tiền và người ta đã bảo anh rằng, “Đó không phải là cách hiệu quả tại Hollywood.” Stallone từ chối lời đề nghị dù anh hết sức cần tiền.
Sau đó họ đề nghị anh 80.000USD với điều kiện là anh sẽ không đóng vai chính. Anh lại từ chối lần nữa.

Họ nói với anh rằng họ muốn Robert Redford đóng vai chính, và sẽ trả cho anh 200.000USD. Một lần nữa Stallone lại từ chối.

Họ tăng giá lên 300.000USD cho kịch bản của anh. Anh bảo họ rằng anh không muốn trải qua suốt cuộc đời mình cứ thắc mắc với việc “Nếu mà?”

Họ trả cho anh 330.000USD. Anh bảo họ rằng anh thà không thấy bộ phim được thực hiện hơn là anh không thể đóng vai chính.

Cuối cùng họ đồng ý để anh đóng vai chính. Anh được trả 20.000USD cho tiền kịch bản cộng với 340USD mỗi tuần, mức lương tối thiểu của một diễn viên. Sau khi trừ đi các chi phí, phí đại lý, thuế, anh chỉ thu được thực tế 6000USD thay vì 330.000USD.

Năm 1976 Stallone được đề cử giải thưởng Hàn lâm cho Nam diễn viên xuất sắc nhất. Bộ phim Rocky đã giành được ba giải Oscar: Hình ảnh đẹp nhất, đạo diễn xuất sắc nhất, và kịch bản phim hay nhất. Loạt phim Rocky từ đó đã kiếm được cả thảy gần 1 tỉ USD, đưa Sylvester Stallone thành diễn viên điện ảnh quốc tế.

Hãy đi theo khí phách của Stallone. Hãy gắn chặt với những khẩu súng của mình.
giaunhanh.com

Nguyên nhân khiến bạn nghèo

Xin tóm tắt dưới đây những kiến thức cần thiết trên con đường tìm kiếm sự tự do về tài chính được đăng tải đến nay:
a) Theo Robert T. Kiyosaki và Sharon L. Lechter tác giả của 2 cuốn sách “Dạy con làm giàu ” và “Cha giàu cha nghèo” có thể chia nhân loại thành bốn loại người theo phương thức kiếm tiền của họ (Kim Tứ Đồ): Những người làm công ăn lương (L); Nhóm người làm tư (T); Nhóm Chủ doanh nghiệp, công ty (C); Nhóm Nhà đầu tư (Đ) trong đó Nhóm những người làm công ăn lương là những người ưa thích sự an toàn, ổn định, ngại mạo hiểm, không thích rủi ro nhất là trong vấn đề tiền bạc; Nhóm làm tư (T) thường là những người giỏi nghề và coi trọng sự tự do của cá nhân, thích được tự mình định đoạt công việc và cuộc sống cá nhân. Họ là người làm chủ một công việc và thường chỉ tin vào bản thân hơn là tin vào người khác; Nhóm Chủ doanh nghiệp (C) là những người có khả năng lãnh đạo người khác, thích phân chia công việc, thích mướn những người giỏi hơn làm việc cho mình. Nhóm người này làm chủ một hệ thống, một quy trình kinh doanh chứ không làm chủ một công việc; Nhóm các Nhà đầu tư (Đ) là những người làm ra tiền bằng tiền. Robert T. Kiyosaki và Sharon L. Lechter cũng cho rằng nếu bạn muốn trở thành người giàu có, bất kể bạn đang kiếm tiền từ nhóm nào bạn phải tìm cách trở thành Nhà đầu tư;
b) Bí quyết thành công của những người giàu không nằm ở chỗ họ thuần tuý gặp may hay thuận lợi hơn bạn nhờ được thừa kế một gia tài kếch sù …mà chính là do họ luôn mơ ước, luôn khát khao, luôn hành động vươn tới để làm giàu, để có sự tự do về tài chính;
c) Theo người giàu, Tài sản là bất cứ cái gì mang lại lợi nhuận, làm tăng thu nhập còn Tiêu sản là bất cứ cái gì không sinh ra lợi nhuận, làm giảm thu nhập. Chính vì thế người giàu luôn luôn cố gắng mua Tài sản và giảm thiểu Tiêu sản còn người nghèo và trung lưu thì ngược lại luôn luôn mua Tiêu sản mà tưởng nhầm đó là Tài sản. Kết quả là người giàu ngày càng giàu hơn còn người nghèo ngày càng nghèo đi; Muốn cải thiện tình hình tài chính, bạn phải giảm thiểu việc mua Tiêu sản và cố gắng tối đa mua Tài sản;
d) Thói quen bầy đàn của người nghèo và trung lưu là một thói quen tiêu tốn rất nhiều thời gian, tiền bạc và sức lực của nhân loại. Thói quen này làm cho bạn và những thế hệ mai sau của bạn không bao giờ thuộc hàng ngũ người giàu mà bạn và con cháu của bạn, chút chít của bạn chỉ có thể nằm trong số 95% người nghèo và trung lưu của nhân loại mà thôi;
e) Người giàu hành động bao giờ cũng có mục tiêu. Những người giàu hoặc muốn trở nên giàu không bao giờ hành động theo cảm tính, không a dua theo bầy. Họ biết cách chia mục tiêu của họ ra thành những mục tiêu nhỏ hơn, khả thi và thực hiện nó bền bỉ ngày này qua ngày khác như con ong chăm chỉ hút từng hạt phấn hoa nhỏ li ti để đến một ngày kia cho đời một chõ mật ong to ngọt lịm và vàng óng. Trong khi đó người nghèo thường đặt ra những mục tiêu to tát lúc đầu nhưng sau đó lại thực hiện theo kiểu “Đầu voi đuôi chuột”;
f) Người nghèo với mong muốn một mai được mở mặt với đời thường sống theo kiểu “Hy sinh đời bố củng cố đời con” . Nhưng kết quả thật buồn rầu vì những gì hôm nay bạn không muốn làm thì đường kỳ vọng rằng con cháu bạn sẽ làm điều đó trong tương lai. Và thật nghịch lý là cái cách sống vô tư “Đời cua, cua máy; Đời cáy, cáy đào” xem ra lại hợp với quy luật chọn lọc của tự nhiên, hợp với tạo hoá hơn, mặc dù vậy sống như vậy cũng không phải là cách sống tốt nhất, cách sống có trách nhiệm nhất;
g) Hãy sống với hiện tại! Hãy sống với từng giây, từng phút của ngày hôm nay! Hãy sống vì vì sự hoàn thiện của chính mình chứ đừng sống vì cái gì xa vời ở đâu đó! Hãy bắt đầu cuộc cách mạng với chính bản thân để làm nền móng vững chắc cho cái lâu đài nguy nga, tráng lệ mà ta muốn các thế hệ mai sau dựng nên. Đấy là lối sống văn hoá nhất và có trách nhiệm nhất. Sống trong một môi trường thấm đẫm khát khao vươn tới, trong một gia đình mà bố mẹ thật sự năng động, sáng tạo, độc lập, quyết đoán, trung thực, sống trong một gia đình mà mỗi hành vi ứng xử của các cá nhân tràn ngập tính nhân văn, lòng nhân ái, vị tha thì bạn lo gì con cái bạn không trưởng thành. Các cụ dạy “Gần mực thì đen, gần đèn thì rạng” và quy luật nhân quả của muôn đời là “Gieo hạt gì thì gặt vụ mùa đó” là như vậy;
h) Thời gian không chỉ là tiền bạc, thời gian chính là cuộc sống. Một khi bạn đã hành xử không đúng, bạn không chỉ mất tiền bạc mà còn mất luôn cả cuộc sống. Bạn sẽ sống phí hoài những năm tháng quý giá mà tạo hoá đã ban cho. Bạn sẽ sống vật vờ, nhàn nhạt theo bầy đàn, theo bản năng như bao người khác và đương nhiên là bạn sẽ luôn luôn gặp khó khăn về tài chính. Muốn cải thiện tình hình, bạn phải bắt đầu ngay từ ngày hôm nay chứ đừng đợi đến ngày mai.
Bạn có thể nóng ruột nói rằng những kiến thức này ai mà chả biết hoặc giả như nếu bây giờ mới biết thì nó cũng chẳng giúp ích gì. Cái bạn cần biết là những kế hoạch hay những mánh lới, những cơ hội kinh doanh cụ thể để tuần sau, tháng sau bạn đã trở thành chủ doanh nghiệp hay nhà đầu tư chứ không phải là mớ lý thuyết suông này.
Bạn nên nhớ rằng khi bạn bị cận thì bạn làm thế nào đọc được sách nếu bạn không sắm cho mình một cái kính thích hợp. Bạn có thể nhìn thấy vi khuẩn bằng mắt thường không? Chắc chắn là không rồi. Muốn nhìn thấy nó bạn phải sử dụng kính hiển vi có độ phóng đại lớn và có thể phải dùng kính hiển vi điện tử đấy.
Cận thị, vi khuẩn … những thứ này lại càng không liên quan gì đến tiền bạc, bạn bảo thế. Có đấy, chẳng qua là ý tại ngôn ngoại mà thôi. Bạn sẽ không bao giờ giàu khi bạn là (hay bạn có tính cách của) những người làm công lãnh lương hay những người làm tư (giống như bạn bị cận nên không thể đọc sách vì không có kính). Muốn giàu, bạn phải trở thành (hay phải có tố chất, tính cách của) chủ doanh nghiệp hay nhà đầu tư, tức là bạn phải phải khao khát làm giàu, phải có kế hoạch cụ thể thực hiện ước mơ, phải luôn hành động vươn tới, phải độc lập suy nghĩ, phải quyết đoán, phải không ngại rủi ro, mạo hiểm, vv và vv … Bị cận mà muốn đọc sách thì phải mua kính – tức là trang bị cho mình những điều kiện thích hợp với hoàn cảnh mới. Trong việc kiếm sống cũng vậy. Bạn đang có tư duy của những người nhóm L và T, nếu muốn giàu có, bạn phải thay đổi tư duy, thay đổi nhận thức, thay đổi cách hành động theo cách của Nhóm C và Đ. Bạn phải thay đổi bản thân cho thích hợp với mục tiêu trước khi đi tìm những mánh lới, những cơ hội kinh doanh cụ thể. Nếu bạn không thể thay đổi thì dù bạn có học hàng nghìn mánh lới kinh doanh, dù có được hàng nghìn cơ hội đầu tư do được ai đó mách bảo, bạn cũng chớ có tận dụng chúng vì chúng chỉ làm cho bạn khốn khổ hơn mà thôi giống như khi bạn cố gắng đọc sách không có kính với đôi mắt cận thị thì mắt bạn ngày càng tồi đi. Với cái cách đọc liều hay thiếu hiểu biết như vậy thì có thể đến một ngày nào đó bạn sẽ chẳng còn “Giàu hai con mắt” như các cụ vẫn dạy.

theo My Opera

Công thức của nhà triệu phú

Cứ 60 giây, một người nào đó trên thế giới trở thành nhà triệu phú.
Đúng thôi. Một nhà triệu phú mới được tạo ra từng phút từng ngày. Đúng là có hàng triệu nhà triệu phú.
Một số những nhà triệu phú này đã mất 60 năm để tích lũy sự giàu có. Một số khác mất chưa tới một năm. Một số chưa đến 90 ngày. Và một số chưa tới một phút. Trong quyển sách này, chúng tôi sẽ cho bạn thấy một quá trình theo từng bước để không chỉ trở thành một nhà triệu phú, mà còn là một nhà triệu phú tiến bộ – dù bạn mất 60 năm hay 60 giây.
Phần đông các nhà triệu phú chia sẻ cùng những đặc điểm nào đó với nhau. Bạn phải thực hành những kĩ thuật và chiến lược nhà triệu phú. Bạn phải làm theo bộ óc nhà triệu phú – một bộ óc có thái độ và niềm tin tạo ra của cải rất riêng biệt.
Sau nhiều năm nghiên cứu chính bản thân mình và cùng với các sinh viên của mình, chúng tôi đã đúc kết phương pháp của chúng tôi thành một quá trình gồm ba giai đoạn mà chúng tôi gọi là Công thức Nhà triệu phú:
Giấc mơ + Nhóm + Chủ đề = Nhà triệu phú
1. Giấc mơ: Xây dựng bộ óc nhà triệu phú – tự tin và đam mê cháy bỏng.
2. Nhóm: Thu hút những nhà cố vấn dày dạn kinh nghiệm và những cộng sự giỏi để giúp biến giấc mơ của bạn thành hiện thực.
3. Chủ đề: Lựa chọn và áp dụng một hoặc nhiều mô hình nhà triệu phú cơ bản để kiếm tiền nhanh chóng.
Từng bước trong quyển sách này được biên soạn nhằm giúp bạn tập trung vào ba giai đoạn quan trọng trong quá trình làm giàu. Chúng tạo nên sự kết nối để bạn vươn đến sự thành công tài chính.

Nguồn : giaunhanh.com