Chủ Nhật, 13 tháng 11, 2016

Học lập trình Node.js chậm chắc nhưng hiệu quả


Tra thông tin Node.js API
·        https://nodejs.org/api
·        Thử code luôn ví dụ trong tài liệu đừng chỉ đọc

Tạo một dự án lưu code mẫu
·        Tạo ra nhiều folder chứa code mẫu theo từng thể loại
·        Học được cái gì mới thì cho vào đó, nhớ gõ chú thích và link trích dẫn

Tạo một dự án lưu code mẫu
·        Tạo ra nhiều folder chứa code mẫu theo từng thể loại
·        Học được cái gì mới thì cho vào đó, nhớ gõ chú thích và link trích dẫn
Học hỏi từ những module nổi tiếng
·        Tìm các module này qua npmjs.com hoặc npmsearch.com
·        Đánh giá số lượng download, và hoạt động trên git
https://s3.amazonaws.com/media-p.slid.es/uploads/142202/images/1886978/express_stats.jpg

Đánh giá mã nguồn mở qua Git
·      Contributor, Fork càng lớn thì càng có nhiều người tham gia
·      Số lần commits, releases nói lên tốc độ cập nhật thường xuyên
·      Star, Watch nói số lượng người quan tâm, hâm mộ 
https://s3.amazonaws.com/media-p.slid.es/uploads/142202/images/1886980/git_status.jpg
Demo với module Express
$ git clone https://github.com/strongloop/express.git
$ cd express
$ npm install
$ npm test

Thư viện mã nguồn mở tốt
·        Có tài liệu hướng dẫn đầy đủ
·        Có thư viện test
·        Có ví dụ mẫu càng nhiều, càng tốt



Thứ Ba, 8 tháng 11, 2016

Dẹp chuyện đi tìm đam mê sang một bên đi: chúng ở trước mặt bạn sẵn rồi!

Đam mê không bao giờ có thể được "tìm thấy". Người ta chỉ làm việc đó, và tự nhiên tận hưởng niềm vui từ đó. Còn nhớ khi bạn còn nhỏ không? Bạn thích thì bạn làm. Bạn không bao giờ tự hỏi, "Bóng chày thì lợi hơn bóng đá chỗ nào nhỉ?". Bạn chỉ cần chạy xung quanh sân chơi, chơi bóng chày và bóng đá. Bạn xây lâu đài cát, chơi đuổi bắt và hỏi những câu hỏi ngớ ngẩn, sau đó tìm bắt côn trùng, đào bới cỏ, hay giả làm con quái vật chui từ cống lên.
Không ai nói với bạn phải làm điều đó, tự bạn làm những điều đó đấy thôi. Bạn chỉ đơn thuần thích là làm, trí sự tò mò và hứng thú của chính bạn kích thích.
Ngày trước, điều hay ho là, nếu bạn ghét bóng chày, bạn chỉ đơn giản là không chơi nữa. Không có cảm giác tội lỗi nào. Không có cãi vã hay tranh luận. Bạn có quyền thích nó, hoặc không.  
Và nếu bạn thích tìm những chú bọ, bạn chỉ cần làm điều đó. Không có sự phân tích nào kiểu, "Có đúng là việc tìm bọ là những gì tôi nên làm với thời gian của mình khi còn là một đứa trẻ không? Vốn chẳng ai thích tìm bọ, liệu điều đó có nghĩa là tôi có gì đó không bình thường? Việc tìm kiếm mấy con bọ ảnh hưởng đến triển vọng tương lai của tôi thế nào?"  
Ngày đó, không có chuyện gì là nhảm nhí. Nếu bạn thích một cái gì đó, bạn chỉ cần làm điều đó.

Hôm nay tôi nhận được email thứ 11,504 trong năm nay từ một người nói với tôi rằng họ không biết phải làm gì với cuộc sống của họ. Và cũng giống như tất cả những người khác, người này hỏi rằng liệu tôi có bất kỳ ý tưởng nào về những gì họ có thể làm, nơi họ có thể bắt đầu, nơi để "tìm thấy niềm đam mê của họ" hay không.  
Và tất nhiên, tôi không trả lời. Tại sao? Bởi vì tôi thật sự không có chút manh mối nào cho chuyện đó. Nếu bạn không biết phải làm gì với bản thân, thì điều gì khiến bạn nghĩ rằng một thằng ất ơ có một website sẽ nghĩ ra được? Tôi là nhà văn, chứ không phải thầy bói.  
Nhưng quan trọng hơn, những gì tôi muốn nói với những người này là: mấu chốt của toàn bộ vấn đề nằm ở chỗ “không biết” đó.    
Cuộc sống, suy cho cùng, là về việc bạn không biết, nhưng dù không biết thì vẫn phải làm một cái gì đó.    
Và nếu bạn có nhận ra bạn yêu thích công việc lau dọn bể phốt hiện tại, hoặc mới giành được một công việc mơ ước là viết một kịch bản phim indie; thì cuộc sống của bạn cũng không nhờ thế mà dễ dàng hơn đâu.  
Lời phàn nàn phổ biến nhất mà người trẻ hay nói ngày nay là họ cần phải "tìm thấy niềm đam mê của họ.”  
Nhảm nhí! Bạn đã tìm thấy niềm đam mê của mình rồi, chỉ là bạn đã lờ nó đi. Nghiêm túc nào, bạn thức tới 16 tiếng một ngày, bạn đã và đang làm gì với chừng ấy thời gian? Bạn phải đang làm gì đó, rõ ràng là vậy. Bạn phải đang nói về một cái gì đó. Hẳn phải có một chủ đề hay hoạt động hoặc ý tưởng nào đó chi phối một lượng đáng kể thời gian rảnh của bạn, cuộc hội thoại của bạn, trình duyệt web của bạn, và nó chi phối chúng mà không cần bạn phải nhận ra hay theo đuổi một cách có chủ đích.  
Nó ở ngay trước mặt bạn, bạn chỉ đang tránh nó. Dù với bất cứ lý do gì, bạn đang trốn tránh nó. Bạn đang nói với chính mình, "Ồ, vâng, tôi yêu truyện tranh nhưng chúng không được tính. Bạn không thể kiếm tiền chỉ bằng truyện tranh được."
Ôi quỷ tha ma bắt, bạn thậm chí đã thử chưa?   Vấn đề không phải là thiếu niềm đam mê cho một cái gì đó. Vấn đề là năng suất. Vấn đề là ở nhận thức. Vấn đề là sự chấp nhận.   Vấn đề là, "Ồ, đó không phải là một lựa chọn thực tế," hoặc “Bố mẹ sẽ giết tôi nếu tôi cố gắng làm điều đó, họ nói rằng tôi phải là một bác sĩ" hoặc “Thật điên rồ, bạn không thể mua một chiếc BMW với số tiền bạn kiếm được từ việc đó."  

Vấn đề không phải là niềm đam mê. Vấn đề không bao giờ là niềm đam mê.  
Đó là các ưu tiên.   Và ngay cả khi ấy thì ai dám nói bạn phải kiếm được tiền từ công việc yêu thích? Kể từ khi nào tất cả mọi người cảm thấy đó là một sự bắt buộc khi phải yêu từng giây một trong công việc của họ? Thực sự đấy, có gì sai trái với chuyện làm một công việc ỔN và bình thường với một số người thú vị mà bạn thích, và sau đó theo đuổi niềm đam mê của bạn trong thời gian rảnh? Chẳng lẽ thế giới đã đảo lộn hoàn toàn hay đây là một ý tưởng đột ngột nào đó bước ra từ văn chương làm ảnh hưởng mọi người?  

Hãy nhìn xem, đây là một cái tát trời giáng nữa vào mặt bạn: công việc nào cũng có lúc tồi tệ. Không có những điều như làm những gì bạn đam mê và bạn sẽ không bao giờ cảm thấy mệt mỏi, không bao giờ bị stress, không bao giờ phải phàn nàn. Điều đó không tồn tại. Tôi đang làm công việc trong mơ của mình (công việc ấy đến một cách tình cờ, và trong hàng triệu năm tôi chưa bao giờ lên kế hoạch cho việc này; giống như một đứa trẻ trên sân chơi, tôi chỉ cần đi đến và thử nó), và tôi vẫn ghét khoảng 30% công việc này. Có những ngày còn ghét hơn.  
Lại nữa, đó là cuộc sống.


Vấn đề ở đây, một lần nữa, là sự kỳ vọng. Nếu bạn nghĩ rằng bạn đáng nhẽ phải làm việc 70 giờ một tuần và ngủ lại trong văn phòng giống như Steve Jobs và yêu thương từng giây của công việc ấy, bạn đã xem quá nhiều những bộ phim nhảm nhí. Nếu bạn nghĩ rằng bạn đáng nhẽ phải thức dậy mỗi ngày vừa thoát khỏi bộ đồ ngủ vừa nhảy múa bởi vì bạn được đi làm, thì có lẽ bạn đã uống hơi nhiều Kool-Aid. Cuộc sống không vận hành như thế. Như vậy rất không thực tế.

Có một điều hầu hết chúng ta ai cũng cần, đó là sự cân bằng.   Tôi có một người bạn, người mà trong ba năm qua, đã cố gắng để xây dựng một doanh nghiệp trực tuyến bán thứ-gì-đó. Nó đã không làm việc. Và khi tôi nói “không làm việc”, có nghĩa là cậu ta thậm chí còn không tiến hành bất cứ việc gì. Bất chấp hàng năm trời "làm việc" và nói rằng cậu sẽ làm điều này hay điều kia, không có việc gì thực sự được thực hiện.  
Thay vào đó, những gì thực sự được thực hiện là khi một trong những đồng nghiệp cũ của cậu ta đến thăm với một công việc thiết kế logo hoặc thiết kế một số tài liệu quảng cáo cho một sự kiện. Thề có Chúa, cậu ta lao vào nó như một kẻ chết đói lâu ngày vớ được cái ăn.   Và cậu ấy hoàn thành chúng một cách tuyệt vời! Thức đến 4 giờ sáng chìm đắm bản thân vào công việc và yêu thương chúng từng giây một.  

Nhưng hai ngày sau đó chúng lại trở về tình trạng, "Này, tôi không biết đáng ra mình phải làm gì.”  

Tôi gặp rất nhiều người như cậu ta. Cậu ấy không cần phải tìm niềm đam mê của mình. Niềm đam mê của chính cậu ấy đã tìm thấy cậu. Nhưng cậu ta lờ chúng đi. Cậu ta từ chối tin rằng việc đó là khả thi. Cậu ta chỉ sợ cái việc phải thật sự thử chúng một cách thật lòng.  
Giống như một đứa trẻ ngốc nghếch tiến vào một sân chơi và nói, "Vâng, những con bọ thật sự rất tuyệt, nhưng các cầu thủ NFL kiếm tiền nhiều hơn, vì vậy tôi nên ép buộc bản thân mình chơi bóng đá mỗi ngày," và sau đó trở về nhà và phàn nàn rằng mình không thích giờ ra chơi.  

Và đó cũng là chuyện nhảm nhí. Mọi người đều thích nghỉ giải lao. Vấn đề là cậu ấy tự ý lựa chọn hạn chế bản thân mình dựa trên một số ý tưởng ngớ ngẩn cậu ta đã nhồi nhét vào đầu về sự thành công và những gì đáng ra phải làm.


Một loại email khác tôi lúc nào cũng nhận được là từ những người muốn được tư vấn về làm thế nào để trở thành một nhà văn.   Và câu trả lời của tôi luôn như nhau: Tôi không có một chút ý tưởng chết tiệt nào cho chuyện đó cả.   Khi còn là một đứa trẻ, tôi thường ở trong phòng viết những mẩu truyện ngắn cho vui. Khi ở tuổi thiếu niên, tôi sẽ viết các bài đánh giá âm nhạc và bài viết về ban nhạc tôi yêu thích rồi sau đó không cho ai xem chúng cả. Khi Internet xuất hiện, tôi đã mất một đống thời gian trên các diễn đàn viết những bài post dài vài trang về các chủ đề ngớ ngẩn - tất cả mọi thứ từ thu mua guitar đến nguyên nhân của cuộc chiến tranh Iraq.  
Tôi không bao giờ xem việc viết như một nghề nghiệp tiềm năng. Tôi thậm chí không bao giờ coi nó là một sở thích hay đam mê. Đối với tôi, những điều tôi đã viết chính là niềm đam mê của tôi: âm nhạc, chính trị, triết học. Viết chỉ là một cái gì đó tôi đã làm bởi vì tôi cảm thấy thích được làm như vậy.  
Và khi tôi phải tìm kiếm một nghề nghiệp khiến tôi trao thân gửi phận, tôi không cần nhìn đâu xa. Trong thực tế, tôi không phải kiếm tìm bất kì cái gì cả. Nó đã chọn tôi, theo một cách nào đó. Nó đã ở đó. Một việc gì đó tôi đã làm mỗi ngày, kể từ khi tôi còn là một đứa trẻ, thậm chí tôi còn không hề nghĩ về nó.   Bởi vì đây là một điểm nữa có thể làm cho một số người cảm thấy chột dạ:    

Nếu bạn phải tìm xem bạn đam mê cái gì, thì có lẽ bạn thật sự không có chút đam mê nào với nó cả

Nếu bạn đam mê một cái gì đó, bạn sẽ cảm thấy nó như như một phần ăn sâu vào cuộc sống của bạn, bạn sẽ được mọi người nhắc nhở rằng nó không bình thường, rằng người khác không giống như thế.   Tôi đã không hề nghĩ rằng viết những bài 2.000 từ trên các diễn đàn hóa ra lại là điều chẳng ai coi là niềm vui. Anh bạn tôi cũng đã không hề nghĩ rằng hầu hết mọi người lại không thấy việc thiết kế logo là dễ dàng và thú vị. Đối với cậu ấy, nó tự nhiên đến nỗi cậu thậm chí không thể tưởng tượng nó là một cái gì khác. Và đó là lý do tại sao nó có thể là những gì cậu thực sự cần phải làm.  

Một đứa trẻ không đi vào một sân chơi và nói với chính mình, "Làm thế nào để tìm thấy niềm vui?" Cô bé ấy sẽ chỉ đi và tận hưởng niềm vui.  

Nếu bạn phải tìm kiếm những gì bạn thích trong cuộc sống, thì sau đó bạn sẽ không thật sự hưởng thụ bất cứ điều gì.  

Và sự thật là bạn vốn đã thích cái gì đó rồi. Bạn đã thích rất nhiều điều. Bạn chỉ chọn cách bỏ qua chúng mà thôi.   Trạm Đọc (Read Station) Theo Mark Manson

Thứ Hai, 17 tháng 10, 2016

Server 2012 R2 – Lab Guide – Part 3 – Step by Step – Continuously Available File Server

Source: http://www.virtuallycloud9.com/index.php/2013/11/server-2012-r2-lab-guide-part-3-step-by-step-continuously-available-file-server/



In this lab, you will see how the new, continuously available file server in Windows Server 2012 allows user sessions to move from one file server node to another without any downtime. In this lab you will create the entire cluster environment starting with the configuration of the iSCSI storage and then the creation of the 2-node cluster. Once the cluster is complete, you will create the necessary cluster resources.

This lab assumes that you have completed these prior labs:

In this series of exercises, you will explore the following:
• Configuring iSCSI Target software.
• Create a 2-node failover cluster.
• Moving file server traffic to a different cluster node, without interruption of network services.

This lab requires the following host computers and virtual machines created during these previous labs.

Host Computers:
Your Hyper-V Host machine
◦      Host Name:  [Various]
◦      OS:  Windows Server 2012
◦      Primary Roles:  Hyper-V Server

Virtual Machines:
  • DC
◦      OS: Windows Server 2012
◦      Primary Roles: Domain Controller
◦      Additional Roles: DNS
  • Storage
◦      OS: Windows Server 2012
◦      Primary Roles: File and Storage Services
  • Cluster1
◦      OS: Windows Server 2012
◦      Primary Role: Failover Clustering
  • Cluster2
◦      OS: Windows Server 2012
◦      Primary Role: Failover Clustering

Tasks that will occur in this lab module:
1)      Add additional hardware to prepare for failover clustering.
2)      Create a 2-node Failover Cluster (Part 1: Configure Storage).
3)      Create a 2-node Failover Cluster (Part 2: Configure Cluster1 and Cluster2).
4)      Connect to an existing failover cluster.
5)      Configure Highly Available File Share.
6)      Transfer file server traffic to a different cluster node, without interruption of network services.

Part 1 – Add additional hardware to prepare for failover clustering.
  1. Log on to Hyper-V host as Administrator with password: p@ssw0rd
  2. Start Hyper-V Manager
  3. Apply original snapshots for DCStorageCluster1 and Cluster2.
  4. In Hyper-V Manager, create a new Hard Disk, in the right hand pane,  click on New>Hard Disk…
Use the following parameters:
  •         Format:  VHDX
  •         Disk Type: Dynamically Expanding
  •         Name: StorageDisk.vhdx
  •         Location: <drive>:\Images\Storage
  •         Size: 127 GB

Attaching the Disk to the Virtual Machine
  1. Right click the Storage virtual machine and go to settings.
  2. Select SCSI Controller in left panel; Click Hard Drive in right pane and click Add.
  3. Browse to <drive>:\Images\Storage\StorageDisk.vhdx and click Open, then click OK.

Adding the Cluster Heartbeat virtual network to the Cluster virtual machines
  1. Go to settings for the Cluster1 virtual machine
  2. Click on Add Hardware, then select Network Adapter and click Add.
  3. Select IT Camp Heartbeat from the drop down menu, then click OK.
  4. Perform steps 2 and 3 for the Cluster2 virtual machine

Part 2 – Create a 2-node Failover Cluster (Configure iSCSI).
  1. Start all four Virtual Machines (DC, Storage, Cluster1, and Cluster2).
  2. Log onto Storage as the corp\Administrator account with password:p@ssw0rd.
  3. From Server Manager, click Tools and then Computer Management.
  4. Select Disk Management, right click Disk 1 and select Online.
  5. Right Click Disk 6 and select Initialize, select Initialize as MBR, clickOK.
  6. Right click on the striped area of Disk 6 and click New Simple Volume… Click Next, click Next, click Next, Click Next, Click Finish.
  7. In Server Manager Dashboard,  in the top ribbon, click on Manage,Select Add roles and features.
  8. On the Server Roles section, drill down into File and Storage Services, Add iSCSI Target Server. Click Next, click Next, click Install.
  9. From Server Manager, select File and Storage Services | iSCSI.
  10. Click the Refresh button in the top ribbon of Server Manager.

Creating the iSCSI Target Devices – Quorum

  1. In the iSCSI Virtual Disk section, select New iSCSI Virtual Disk from the Tasks Drop down menu.
  2. Create iSCSI Virtual Disk and iSCSI Target with the following parameters:
Storage Location: Volume F:
Name: “Quorum”
Size: 1 GB
Dynamically Expanding
New iSCSI Target – keep this selected and click Next. 
Name: ClusterStorage
Add Initiator ID by IP Address Type: 192.168.1.12  and 192.168.1.13, then click Next. Click Next.  Click Create.

Creating the iSCSI Target Devices – FileStorage

  1. Create another iSCSI Virtual Disk and add to existing iSCSI Target
Storage Location: Volume F:
Name: “FileStorage
Size: 50 GB
Keep Existing iSCSI Target select: ClusterStorage,  and click Next, clickCreate

Create a 2-node Failover Cluster

Cluster1 – Set the Ethernet#2 adapter IP Address

  1. Log onto the console for Cluster1 as the corp\administrator account and password: p@ssw0rd
  2. Configure IP Address for newly added adapter with the following IP v4 information:
IP Address: 192.168.11.21
Subnet Mask: 255.255.255.0
DNS: 192.168.11.10

Connecting Cluster1 to the iSCSI Targets

  1. In Server Manager, click Tools and then iSCSI Initiator.
  2. Click Yes to prompt.
  3. Type 192.168.1.11 for Target and click Quick Connect and then Done.
  4. From the Volumes and Devices Tab click Auto Configure and then click OK.
  5. Still in Server Manager, click on the Tools drop down menu and selectComputer Management | Disk Management, Bring the two new disks online, initialize them, Create and format a simple volume on each of the two disks. (E: drive will be the Quorum, and F: will be the FileStorage volume)
  6. Back in Server Manager. click on Manage, then select Add roles and features… On the Roles window select the File Server role, and then on the Features window select Failover Clustering feature (also accept the pop-up for the default dependencies).

Cluster2 – Set the Ethernet#2 adapter IP Address

  1. Log onto the console for the Cluster2 virtual machine as thecorp\administrator account with the password: p@ssw0rd
  2. Configure IP Address for newly added adapter with the following IP v4 information:
IP Address: 192.168.11.22
Subnet Mask: 255.255.255.0
DNS: 192.168.11.10

Connecting Cluster2 to the iSCSI Targets

  1. In Server Manager, click Tools and then iSCSI Initiator.
  2. Click Yes to prompt.
  3. Type 192.168.1.11 for Target and click Quick Connect and then Done.
  4. From the Volumes and Devices Tab click Auto Configure and then click OK.
  5. Still in Server Manager, click on the Tools drop down menu and selectComputer Management | Disk Management, Bring the two new disks online.
  6. Back in Server Manager. click on Manage, then select Add roles and features… On the Roles window select the File Server role, and then on the Features window select Failover Clustering feature (also accept the pop-up for the default dependencies).

Configuring the Cluster

  1. Switch back to the console for Cluster1.
  2. Click the Refresh button in the top ribbon of Server Manager.  SelectAll Servers in the far left navigation pane, then in the middle pane right click Cluster1 and click Failover Cluster Manager
  3. In the right-hand Actions Pane, click Create Cluster.
  4. Add Cluster1 and Cluster2 to the cluster, click Next.
  5. Run the Validation Wizard and run all tests.  (Be patient.  It takes a while, ignore any pop ups about the volumes that may appear.) ClickFinished when complete.
  6. Create the cluster with the following information:
Cluster name: MainCluster
IP Address: 192.168.1.14
If displayed, uncheck the 192.168.11.0/24 network
Check Add all available storage to the cluster.

Create Highly Available File Shares

  1. Expand MainCluster.corp.contoso.loc and expand all NodesStorageand Networks.
  2. Take a few minutes and explore the environment (but don’t make any changes)
  3. In Failover Cluster Manager, click Roles.
  4. In Actions pane, click Configure Role.
  5. Configure a Cluster resource with the following information:
Server Role: File Server
File Server Type: Scale-Out File Server for application data
Name: HAFileServer

Configure the File Shares

  1. Expand Storage and click Disks.  Right click Cluster Disk 1 and selectAdd to Cluster Shared Volumes.
  2. (You may need to wait for the network syncronization to finish for this step.  This can take around 5 minutes in some lab environments, sometimes to speed up this process, right click the HAFileServer role and move it to Cluster1.)  From the left-hand menu, click on Roles.  Right Click HAFileServer and select Add File Share with the following information:
    (NOTE: You may get a “The Client Access Point is not ready..” error.  Wait a few minutes and try again. See note above as well.)
Profile:  SMB Share – Applications
Share Location: C:\ClusterStorage\Volume1  (which is the default)
Share Name: VMStore
Other Settings: Accept Defaults

Transfer file server traffic to a different cluster node, without interruption of network services.
  1. Open the network share \\hafileserver\vmstore and copy the folder named NativeImages_v4.0.30319_32 from the C:\Windows\assemblydirectory to this new share.  QUICK!  In Failover Cluster Manager, right click HAFileServer and select Move | Select Node.
  2. Click OK to move to other Cluster Node.  Monitor copy process to see that it does not fail.  Delete the NativeImages_v4.0.30319_32 folder from the file share. 

You have complete Lab Guide Part 3!
Continue on to Lab Guide part 4:

Follow Up Guides: coming soon:
Lab Guide 5 – Windows 2012 R2 – Enabling Hyper-V Replica
Lab Guide 6 – Windows 2012 R2 – Shared Nothing Live Migration