Gender: Male Industry: Technology Occupation: System Supervisor Location: Residential Hoang Gia, Ward No 2, My Hanh Nam Village, Duc Hoa DIST, Long An Province Introduction: Cool.... Interests: Microsoft OS, Networking, RedHat Linux, System Administration, ... System Integration : IBM, Email Systems : IBM Lotus notes and Domino, VOIP,
...This is my personal and educational blog site and this has posts which are related to my research and interesting areas on Information Technology... Please feel free to comment on any technical/Article matters on this regard.
Thanks You !
NGÔ MINH TUẤN
Gender: Male Industry: Technology Occupation: IT System Administration Location: 40/2, Nguyen Gian Thanh street, Ward 15
District 10 – Ho Chi Minh City. Introduction: Cool. Interests: Microsoft OS, Networking, System Administration, System Integration : IBM, Email Systems : IBM Lotus notes and Domino, Mail Mdaemon, Microsoft Exchange
Contact : Email: ngo.tuan@yahoo.com
Skype: Ngo.TuanIT
Certificate
This is My Pic
MISDUONG
This is featured post 2 title
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.
This is featured post 3 title
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.
This is featured post 4 title
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.
This is featured post 5 title
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.
Came across this at a new client site today, the client knows the Domino
Administrators password, but cannot use the Administration client (or
any Notes client) with the Administrators ID file, because the
Administrators ID file certificates have expired.
It's a pretty simple thing to fix.
EITHER:
Use your server's Notes client to recertify the Administrator.
OR
Get hold of an ID file for a user who hasn't expired,
Add that user to the 'LocalDomainAdmins' group,
Access the Domino Directory on the server and recertify the Admin ID,
Remove the user from the 'LocalDomainAdmins' group,
Done.
The details:
Using a server.
Go to the physical domino server,
Browse to the Domino program folder,
Locate nlnotes.exe,
Run it.
Yes I KNOW this is not a 'supported configuration' but hey, it Domino - #ThisS***JustWorks.
You now have a notes client, which you can use to access the names.nsf locally (the Domino Directory),
Go to 'People',
Choose (highlight) the Administrator,
Choose (from the menu) ACTIONS -> Recertify Selected People,
Choose the Administrators organization certifier,
Enter the certifier password.
Choose a date a long time from now (you WANT your Admin ID file to expire every two years???),
Done.
The Long way - elevate another user.
If you know the Administrators password, there is a fair chance you can
still access the Domino Web Administrator using that password:
Log-in to the Webadmin using: http://yourserver.com/webadmin.nsf and the Administrators Username and Password,
Go to 'People and Groups',
Edit the 'LocalDomainAdmins' group to include the users name who's ID file has not expired,
On the Domino Console, 'load updall -r names.nsf', then 'dbcache flush',
Start the users Notes client,
Open the Domino Directory (names.nsf) on the server,
Choose People from the navigator,
Highlight the Administrator,
Choose (from the menu) ACTIONS -> Recertify Selected People,
Choose the Administrators organization certifier,
Enter the certifier password.
Choose a date a long time from now (you WANT your Admin ID file to expire every two years???),
Using any method you want (you've got a recertified Admin now), remove the user from the 'LocalDomainAdmins' group,
Done.
Hope this helps someone, this has happened a few times in the last
couple of months when we pick up a new (old) Notes customer who hasn't
needed to use the Admin ID in a while.
Domino Administrators ID file certificates have expired? No Problem.
The administrator's ID file has been allowed to
expire, and there are no other ID files which can be used to access the
server. Attempts to access the server using an expired administrator ID
results in the following error:
"Server error - your certificate has expired"
There are no other administrative IDs that can be used to access the server. What are your options?
Answer
Perform the following workaround to certify the expired ID:
1. Open the Domino Administrator client. (The server should be set to "local".)
2. Select the Configuration tab.
3. Select Tools -> Certification -> Certify.
4. Select the certifier ID and enter the password. Set the server to Local.
Note: The following error may appear: "The public key that is being
used does not match the one that was certified." This occurs because the
client cannot connect to the Notes certifier document in the address
book on the server. To continue past this error, select "Yes" when
prompted with the following: "Do you wish to continue without updating
the Certifier ID?"
5. Select the Notes/Admin ID to
certify. Note: You will see an error: "Entry not found in index, Do you
want to certify anyway?" Click Yes.
6. Ensure that the server is still set to "local" (at the top of the dialog), set the expiration date, and then click Certify.
7.
At this point you should have access to the server, as long as public
key checking is not enabled on the server. If public key checking is
enabled on the server, you must complete step 8 before you can access
the server.
8. Copy the public key from the ID into the Person document (Certificates tab -> Notes certified public key field.)
File -> Security -> User Security (this opens the user ID)
Select Your Identity -> Your Certificates
Click the "Other actions" button and choose Mail, Copy Certificate (Public Key)...
Select Copy Certificate (this will place the public key on the system clipboard)
Close the open windows to exit User Security.
Select the People view in the server's Domino Directory, open
the user's Person document in Edit mode, and click the Certificates tab
Select the entire contents of the Notes certified public key field and paste the key from the clipboard; save and close
Rebuild the view by pressing the key combination Shift + F9.
You have a Lotus Notes user ID that has expired and you would like to manually recertify it.
The ID can open Notes, because the password is
valid, but the user cannot do anything else, as the end date has
expired. If the user selects File -> Tools -> User ID ->
Certificate -> Request Certificate, the following message displays:
Server Error: Your certificate has expired.
Answer
Administrator: Recertify user's ID
A user has a Notes ID that has an expired certificate. These
steps are performed by the server administrator to correct the user's
expired ID.
After obtaining the user ID, you (as the administrator) launch the Lotus® Domino® Administration client.
Open the Configuration tab, expand Certification (located on the right hand pane) and select Certify.
Select the Certifier ID file.
From the Choose Certifier ID dialog box, select the O or OU certifier that was originally used to certify the user ID.
Enter the password for the certifier ID.
From the Choose ID to Certify dialog box, select the user ID to be recertified.
Enter the password for user ID to be recertified.
[Optional] In the Certify ID dialog box, you may set or change the following: Registration server, expiration date of the certifier and password length.
Click Certify. The Status window displays: Updating address book entry for username/org Successfully updated address book entry for username/org Username/org successfully certified
Choose "No" when you receive the following dialog box: Would you like to certify another?
Provide the newly-recertified ID file to the user.
User: Merge the new certificate
Once the administrator recertifies the safe.ID and returns the ID to the user, the user must perform the following steps:
Select File -> Security -> User Security -> Your
Identity -> Your Certificates -> Get certificates button ->
Import (Merge) Notes Certificate.
Enter password.
The dialog box then prompts the user to choose the safe.ID that
has been recertified and it is then merged into the original user ID.
Administrator: Recertify an expired Server ID
If an administrator needs to recertify an expired Server ID, the following steps should be followed:
Certify the server id file by following the "Administrator: Certifying an expired server ID file" steps included below.
Verify that the expiration date has been changed in the server.id file.
From the administration client select Configuration -> Tools -> ID Properties, then select the Server ID file.
Place the new server.id back on the server (c:\lotus\domino\data), and restart the server.
Administrator: Certifying an expired server ID file
How to certify an expired server id file.
After obtaining the server ID (c:\lotus\domino\data is the
default location ), you (as the administrator) launch the Domino
Administrator client.
Open the Configuration tab, expand Certification (located on the right hand pane) and select Certify.
Select the Certifier ID file.
From the Choose Certifier ID dialog box, select the O or OU certifier that was originally used to certify the user ID.
Enter the password for the certifier ID.
From the Choose ID to Certify dialog box, select the server ID to be recertified.
Enter the password for server ID to be recertified, if necessary (not all server ID files require a password).
[Optional] In the Certify ID dialog box, you may set or change the following: Registration server, expiration date of the certifier and password length. The server.id file should have an expiration date 99 years in the future (default ).
Click Certify. The Status window displays: Updating address book entry for username/org Successfully updated address book entry for username/org Username/org successfully certified
Choose "No" when you receive the following dialog box: Would you like to certify another?
Copy the newly-recertified ID file to the server (c:\lotus\domino\data, by default).
For 32 bit Windows:
cscript “C:\Program Files\Microsoft Office\Office16\OSPP.VBS” /dstatus
For 64 bit Windows:
cscript “C:\Program Files (x86)\Microsoft Office\Office16\OSPP.VBS” /dstatus
Usage
cscript ospp.vbs /Option:ValueComputerName User Password
ComputerName: Name of remote computer. If a computer name is not passed local computer is used.
User: Account with required privilege on remote computer.
Password: Password for the account. If a User account and password are not passed current credentials are used.
Value: Required for outlined options.
Global /Options
Description
/act
Activate installed Office product keys.
/inpkey:value
Install a product key (replaces existing key) with user-provided product key. Value parameter applies.
/unpkey:value
Uninstall an installed product key with user-provided partial product key (as displayed by the /dstatus option). Value parameter applies.
/inslic:value
Install a license with user-provided path to the .xrm-ms license. Value parameter applies.
/dstatus
Display license information for installed product keys.
/dstatusall
Display license information for installed licenses.
/dhistoryacterr
Display MAK/Retail activation failure history.
/dinstid
Display installation ID for offline activation.
/actcid:value
Activate product with user-provided confirmation ID. Value parameter applies.
/rearm
Reset the licensing status for all installed Office product keys.
/rearm:value
Reset the licensing status for an Office license with user provided SKUID value (as displayed by the /dstatusopton). Value parameter applies.
/ddescr:value
Display the description for a user-provided error code. Value parameter applies.
KMS client /Options
Description
/dhistorykms
Display KMS client activation history.
/dcmid
Display KMS client machine ID (CMID).
/sethst:value
Set a KMS host name with user-provided host name. Value parameter applies.
/setprt:value
Set a KMS port with user-provided port number. Value parameter applies.
/remhst
Remove KMS host name (sets port to default).
/cachst:value
Permit or deny KMS host caching. Value parameter applies (TRUE or FALSE).
/actype:value
Set volume activation type. Value parameter applies. (Windows 8 and above support only)
Values: 1 (for AD) or 2 (for KMS) or 3 (for Token) or 0 (for all).
/skms-domain:value
Set the specific DNS domain in which all KMS SRV records can be found. This setting has no effect if the specific single KMS host is set via /sethst option. Value parameter applies. (Windows 8 and above support only)
Value:FQDN
/ckms-domain
Clear the specific DNS domain in which all KMS SRV records can be found. The specific KMS host will be used if set via /sethst option. Otherwise default KMS auto-discovery will be used. (Windows 8 and above support only)
Uninstall an installed token-based activation issuance license with user-provided license id (as displayed by the /dtokils option). Value parameter applies.
/stokflag
Set token-based activation only flag. (Windows 7 support only)
/ctokflag
Clear token-based activation only flag. (Windows 7 support only)
/dtokcerts
Display token-based activation certificates.
/tokact:value1:value2
Token activate with a user-provided thumbprint (as displayed by the /dtokcerts option) and a user-provided PIN (optional). Value parameter applies.
Prior to running ospp.vbs ensure that:
Windows firewall allows WMI traffic on remote computer.
You have or pass credentials with required permissions on remote computer.
Cmd.exe is elevated (right click > Run as administrator).
Sample Usage
cscript ospp.vbs /act 'Activate Office on local computer.
cscript ospp.vbs /act mypc1 'Activate Office on remote computer mypc1 with current credentials.
cscript ospp.vbs /inpkey:MFKXT-F6DT2-THMRV-KDWH2-TCDTC 'Install an Office product key on local computer.
cscript ospp.vbs /inslic:\\myserver\licenses\tail.xrm-ms 'Install license on local computer.
cscript ospp.vbs /inslic:"\\myserver\work licenses\office2016 tail.xrm-ms" mypc1 'Install license on remote computer mypc1. Note the path is enclosed in "" since the value contains spaces.
cscript ospp.vbs /ddescr:0xC004F009 'Display the description for error code.
cscript ospp.vbs /actype:1 'Set volume activation type to Active Directory only.
/Token only
cscript ospp.vbs /rtokil:4476b20e 'Uninstall an issuance license with license ID.
cscript ospp.vbs /tokact:96DE6755ABE0BC7D398E96C3AA3C7BFE8B565248 'Token activate with thumbprint.
cscript ospp.vbs /tokact:56AE6755AAB0BC7D398E96C3AA3C7BFE8B565256:54344 'Token activate with thumbprint & PIN.
Trong bài viết này tôi xin chỉ nói những thông tin cơ bản nhất về lotus notes & domino.
Lotus notes & domino là sản phầm được phát triển bởi IBM. Lotus
Notes & Domino có thể hiểu một cách đơn giản thì nó là một “hệ
thống” các phần mềm hỗ trợ làm việc cộng tác.
Lotus Domino: là phần mềm máy chủ, nó gồm có: web server, mail server và ldap server.
Lotus Notes: là phần mềm client, nó gồm có: Lotus notes, domino designer và domino admin.
Lotus notes: là phần mềm dùng để chạy các ứng dụng của lotus, có thể
là các ứng dụng trên domino server hay các úng dụng trên local. Ở đây,
email cũng được coi là một ứng dụng lotus ^^. hay có thể dụng như một
mail client để check các mail của hệ thống mail khác như exchange v.v…
Chú ý: các ứng dụng của Lotus notes có thể được thiết kế để chạy được
trên nền web.
Domino designer: phần mềm editor để thiết kế các ứng dụng của lotus.
Domino admin: là phần mềm để quán trị hệ thống domino server.
Bài viết sau: cài đặt và cấu hình Lotus notes & domino (cơ bản)
Lotus Notes là bộ sản phẩm client gồm có:
– Domino Admin: sử dụng dể quản trị IBM Domino Server
– Lotus Notes: Sử dụng để quản lý các và chạy các ứng dụng Lotus Notes
– Domino Designer: là bộ công cụ phát triển các ứng dụng Lotus Notes
Các bước thực hiện cài đặt (Việc cài đặt tương tự như cài đặt các ứng dụng desktop khác, tất nhiên. Các bạn xem video nhé):
Double click vào file cài đặt IBM Lotus Notes. Click chọn Next và
chờ quá trình giải nén. sau khi chương trình giải nén gói cài đặt ta bắt
đầu quá trình cài đặt.
Làm theo hướng dẫn trên giao diện wizard để thực hiện cài đặt. chú
ý: phần custom setup các bạn chọn các thành phần cài đặt là Domino
Admin, Domino Designer, Lotus Notes. và tiếp tục cho đến khi quá trình
cài đặt kết thúc.
Cấu hình Lotus Notes: sau khi cài đặt xong bộ lotus, các bạn bận
lotus notes để bắt đầu quá trình cấu hình. (Chú ý bật Domino Server
trước khi bắt đầu cấu hình)
Cấu hình:
Trong phần user information:
Your name: ở đây khi cài domino ta đã khai báo người dùng
administrator. do vậy, ở đây ta sử dụng người dùng là administrator, nếu
không ở đây ta sẽ nhập tên người dùng được cấp tài khoán (chú ý: người
dùng phải có file id).
Domino server: tên hoặc địa chỉ máy chủ domino, ở đây có thể nhập là: xxx.xxx.xxx.xxx hoặc 127.0.0.1 hoặc demo/tandan/VN.
Sau khi khai báo người dùng, chương trình sẽ hỏi mật khẩu (ở đây mật
khẩu là của người dùng administrator được tạo trong quá trình cấu hình
Domino Server)
Nếu chương trình yêu cầu file id thì các bạn chọn file id của người
dùng. bạn có thể tìm thấy file id của người dùng administrator trong thư
mục [domino]\data\user.id (chú ý là nếu trong quá trình cài đặt domino
các bạn không tick cho phép tạo file id thì chương trình sẽ tạo file
user.id là file id của administrator trong thư mục [lotus]\data\user.id)
Sau khi quá trình cấu hình Lotus Notes hoàn tất chương trình sẽ mở
Lotus Notes ra. Các bạn vào Open -> Domino administrator để mở domino
administrator và cấu hình một số tham số khác của Domino.
Cấu hình domino:
Từ Lotus Notes, Chọn Open -> Domino Administrator, hoặc bạn có thể mở trực tiếp Domino Administrator ra.
Trong quá trình mở có thể Domino Admin báo không kết nối được đến
server, không sao các bạn cứ click OK, sau khi vào Domino Admin mở
server sau cũng được
Nếu Domino Admin không tìm được Domino Server thì phần server sẽ báo server là local để mở domino server, các bạn vào File -> open. Các bạn nên nhập IP của server (ở đây tôi nhập luôn là 127.0.0.1)
sau khi mở server, các bạn vào phần config để cấu hình một số tham
số cho server (Xem video). ở đây tôi chỉ cấu hình những cái cơ bản và
đơn giản nhất, để thực hiện các cấu hình khác các bạn có thể đọc thêm
tài liệu help của Domino Admin, các tài liệu được cung cấp bởi IBM, hoặc
tìm kiếm từ các tài nguyên trên mạng.
Các cấu hình trong phần sercurity tôi cho phép toàn bộ user có thể
thực hiện các tác vụ sign, run với agent, xpage, chạy các đoạn code
java, javascript, dom… nếu không cho phép thì, tất nhiên, người dùng
không thể chạy được các agent….
Trong phần port -> internet port cho phép các bạn đặt lại các cổng kết nối cho http, diiop, các giao thức mail ….
Trong phần Internet Protocols -.> Domino Web Engine -> Http
Session -> Session Authentication cho phép các bạn đặt lại cách xác
thực. Có 3 tùy chọn: disable (mặc định, basic authentication), single
server (form authentication), Multiple servers (SSO). Các bạn có thể đặt
là 2 kiểu đầu, riêng SSO thì sau này tôi sẽ có bài viết riêng về SSO
Với domino (nhờ người khác viết thôi, tôi ko chuyên về hệ thống, chỉ
chuyên về code)
Sau khi đã cấu hình xong các bạn restart lại server.
Việc cài đặt domino cũng đơn giản như việc cài đặt các ứng dụng
khác, ở đây tôi chỉ hướng dẫn các bạn cài đặt và cấu hình ở mức đơn giản
nhất.
Các bước cài đặt và cấu hình lotus domino.
Chạy file cài đặt: Sau khi chạy file cài đặt, các file cài đặt sẽ được extract ra ổ cứng.
Thực hiện quá trình cài đặt: làm theo hướng dẫn trên màn hình (chủ yếu là click nút next) và chờ quá trình copy file hoàn tất.
Sau khi quá trình copy file hoàn tất, click vào biểu tượng Lotus Domino Server để bước vào quá trình setup server (Xem video).
Trong qua trình cài đặt các bạn có thể tick chọn tạo file id của
admin sau này dùng hoặc có thể tạo file này khi lần đầu tiên cài notes
Sau khi setup server, mở browser và gõ địa chỉ http://127.0.0.1 bạn sẽ thấy man hình giao diện mặc định của lotus domino
Một số bước cấu hình đơn giản: Các bạn xem trong phần cài đặt và cấu
hình Lotus notes nhé, vì cấu hình domino server được thực hiện thông qua
lotus admin
Chào các bạn!
Các đặc điểm của IBM Lotus Domino cho phép bạn tạo một ứng dụng hỗ
trợ nhiều ngôn ngữ khác nhau. Để tạo một ứng dụng đa ngôn ngữ, bạn làm
theo các bước sau:
Mở properties của ứng dụng: Double click vào Application properties trong view Application
Chọn tab Design
Phần Internet options tick chọn Multilingual database và chọn ngôn
ngữ mặc định, ngôn ngữ mặc định là ngôn ngữ sẽ được sử dụng khi mà
browser không được chọn ngôn ngữ nào trong số các thành phần design mà
chương trình có
Tạo một thành phần design cho ngôn ngữ mặc định, đặt alias cho nó.
alias là đặc điểm nhận đạng chung cho các bản copy khác nhau của các
thành phần design giống nhau.
Tạo một bản copy của thành phần design vừa tạo, sửa đổi nội dung, đặt tên và alias cho nó.
Double-click vào nhóm thành phần (Views, Forms, Pages….) để mở danh sách các thành phần ra.
Chọn thành phần design cần đặt ngôn ngữ -> chọn design – properties.
Trong view properties chọn tab Design, trong phần Multilingual settings chọn ngôn ngữ cần đặt (assign).
Theo các bước trên bạn đã có thể tạo được các thành phần design với
các ngôn ngữ khác nhau. các ngôn ngữ này được hiển thị dựa trên phần
ngôn ngữ được lựa chọn của browser của người dùng. Bài viết dựa trên
phần Help của Domino Designer, (Domino Designer – Help – Lotus Domino
Designer Basic User Guild And Reference – Application Design – Create
multilingual applications).
Video:
Các ứng dụng viết cho domino được đóng gói trong một file có đôi
.nsf, ngoài ra các bạn còn thấy một định dạng file nữa là file .ntf
(File template). Để tạo một ứng dụng domino ta sẽ tạo từ các file
template, ứng dụng mới ta sẽ sử dụng blank template.
Để tạo một ứng dụng từ template ta làm theo các bước sau:
Từ giao diện IBM Lotus Notes
Copy template design lên server (có thể là server local) nếu cầu (Xem thêm ở video thứ 2).
File – Application – New, hoặc ấn phím tắt Ctrl + N. Chương trình sẽ mở ra dialog New Application
Chọn server chạy ưng dụng muốn tạo (ex: demo/tandan/VN), Nhập tiêu
đề ứng dụng, tên file (có đuôi .nsf). chú ý: để đặt file vào trong thư
mục ta gõ đường dẫn [tenthumuc]/[tenfile.nsf]
Phần Specify Template for New Application, Bạn chọn server chứa file template (có thể là local) sau đó chọn template bên dưới.
Click OK
Video:
(Video 01: tạo ứng dụng từ blank template)
Sau khi tạo một ứng dụng từ một template thường ta sẽ phải đăng ký
các thành phần của database này với server. Để đăng ký với database với
server ta làm theo các bước sau:
Từ giao diện Domino Administrator, mở server chứa application cần đăng ký
Files – Chọn application
Click chuột phải vào ứng dụng -> Sign, Các bạn chờ một lúc để server đăng ký ứng dụng này.
Video:
(Video 02: tạo ứng dụng từ một template bất kỳ)
Trên đây là cách để các bạn tạo một ứng dụng domino từ một template
có sẵn (Có thể là blank template). Các bạn nên chú ý phần chọn server
chạy ứng dụng, thư mục đặt application. khi ứng dụng được đặt trong thư
mục (ex: demo/demo01.nsf) thì đường dẫn URL của ứng dụng trên browser sẽ
là http://%5Bserver%5D: [port]/[thumuc1/thumuc2/…/thumucn]/[tenfile.nsf] (ex: http://127.0.0.1/demo/demo01.nsf).
Ngoài ra: các bạn có thể copy thẳng file nsf các bạn có vào thư mục
data của domino, xong tôi khuyến cáo không nên làm theo cách này khi các
bạn không biết rõ nguồn file ứng dụng, các bạn có thể gặp vấn đề về
quyền truy cập file, sign bit…. Các bạn chỉ nên làm theo cách này khi đã
quen với Lotus Domino.
Chúc các bạn thành công.
hào các bạn!
Các phiên bản đầu tiên của IBM Lotus Domino chỉ cho phép các ứng dụng
(Một số người gọi là database) chạy trên nên Lotus Notes. Nhưng bắt đầu
từ bản Domino 5.c thì các ứng dụng của Lotus Domino (Mình xin gọi nhanh
là ứng dụng Domino) bắt đầu hỗ trợ trên nền web (tất nhiên vẫn hỗ trợ
chạy trên nền Lotus Notes) và chỉ thực sự tốt từ phiển bản 6.0, và tùy
từng nền chạy ứng dụng khác nhau ta sẽ có các design khác nhau cho phù
hợp. Từ bản Domino 8.0 IBM Lotus Domino đưa ra một định nghĩa mới là
XPAGES cho phép một design chạy cả trên browser và cả trên Lotus Notes,
tuy nhiên các kiến thức về lập trình Domino “cổ điển” vẫn không thể
thiếu..
Trước tiên mình sẽ nói về cách thức phát triển một ứng dụng Domino
theo cách “cổ điển”. Với các bạn mới bắt đầu viết ứng dụng Domino theo
mình cũng không nên lao vào làm xpages ngay, các bạn có thể sẽ bị choáng
ngợp bới các thành phần design của Domino.
Trong các bài viết của mình sẽ chủ yếu hướng đến lập trình trên nền
web, vì hướng tới của mình là tạo các ứng dụng chạy xpages chứ không
phải các ứng dụng “cổ điển” kia. xong cái gì cũng có gốc của nó, nên
mình sẽ bắt đầu bằng những thứ “cổ điển”.
Sau đây mình sẽ demo các tạo một ứng dụng Hello World chạy trên browser.
Ứng dụng chạy trên browser là ứng dụng Domino có các thành phần design cho phép chạy trên nền web.
Tạo một ứng dụng từ blank template (demo02.nsf)
Mở ứng dụng vừa tạo trong Domino Designer
Trong view Application của Domino Designer, double-click vào pages. click New page.
Để đặt trang mặc định cho ứng dụng – trong Lotus Notes bạn click
chuột phải vào ứng dụng – Application – Properties – chọn tab Launch
(tab thứ 5 từ bên trái sang). Trong phần cấu hình này có 2 phần: cấu
hình cho Notes và cấu hình cho Web. để cấu hình trang mặc định cho web
thì trong phần When opened in a browser, chọn Open designated page, chọn
trang mặc định (default). ngoài mở thành phần mặc định là page ra bạn
xem trong danh sách còn một số cách thành phần khác như xpages,
frameset,….
Cho phép người dung khách (Anonymous) vào ứng dụng. trong Lotus Notes
bạn click chuột phải vào ứng dụng – Application – Access control…,
trong dialog Access control list to: click Add – nhập Anonymous – Trong
User type: people, Access: author, click ok.
Video:
Phần Access control list là phần rât quan trọng trong một ứng dụng
domino, sau này mình sẽ có bài viết riêng về quản lý tài nguyên ứng
dụng.
Tạm biệt!
Chắc hẳn với các bạn bắt đầu tìm hiểu các viết một ứng dụng trên nền
Domino đều đặt ra câu hỏi “Cần những thứ gì để tạo một ứng dụng domino?”
và “dữ liệu của nó được lưu trữ ở đâu?”
Với các bạn đã phát triển ứng dụng trên nền công nghệ khác (.net hay
php….) thì thành phần design và dữ liệu được tách biệt riêng, như các
trang web của asp hay của php đều đặt design… trên một web server (IIS,
apache…), còn database thì đặt trên một server DBMS riêng (SQL, MySQL).
Domino thì không giống thế, tất cả design, dữ liệu các ứng dụng Domino
đều lưu vào file nsf hoặc ntf. Các ngôn ngữ lập trình được sử dụng khi phát triển ứng dụng
HTML (client)
Javascript (client)
Cascading Style Sheets (CSS) (client)
Formula (Server).
LotusScript (Server – Ngôn ngữ này có rất nhiều điểm giống MS Visual Basic).
Java (Server).
Simple action
Về Formula và LotusScript các bạn có thể xem trong tài liệu Help của Domino designer.
Như vậy để viết một ứng dụng Domino chạy trên nền web ta phải biết ít
nhất 5/6 ngôn ngữ này (Theo tôi, có thể chọn LotusScript hoặc Java). Các thành phần design trong ứng dụng
Page: là thành phần design được sử dụng để hiển thị thông tin. Bạn
có thể sử dụng page để viết một trang như trạng about, có thể sử dụng để
viết các tài nguyên css, javascript, nhược điểm của page là khả năng
truy vấn dữ liệu kém.
Form: Mọi thứ bạn làm với page được thì đều có thể làm với form
được, ngoài ra, form có khả năng truy vấn dữ liệu tốt. khi các bạn đã
quen rồi các bạn sẽ thấy khi cần hiển thị các thông tin liên quan đến dữ
liệu ta thường sẽ đều sử dụng form. Form cung cấp một cấu trúc để tạo
và hiển thị các document (ở đây mình không dịch từ document để tránh
nhầm lẫn với các tài liệu thông thường, mình sẽ giải thích kỹ hơn về
trong khi nói về cấu trúc dữ liệu của domino).
View: sử dụng để hiển thị các document theo một truy vấn nào đó. với
các bạn đã làm việc với một MS SQL hoặc MySQL thì view của domino cũng
thế
Folder: giống view, xong các document không được lấy theo một truy vấn mà thực hiện bằng code.
Frameset: Là tập hợp các HTML frame, nó chia một trang web của bạn thành các phần (session) khác nhau.
Subform: Thành phần design giúp bạn chia nhỏ cấu trúc của một form
Agent: là một chương trình độc lập (stand-alone programs)
thực hiện một nhiệm vụ nào đó. Theo tôi có thể chia ra làm 2 loại
agent:* Agent chạy tự động: là các agent chạy khi sảy ra một action của
hệ thống. không được điều khiển bởi người dùng. như:
* Agent bình thường: là các agent chạy khi sảy ra một action của người
dùng, như sau khi load document, người dùng click một button….
Resources: Các tài nguyên khác
Imagess
Files
Applets
Style Sheets
Ngoài ra còn một số thành phần khác nhưng ít dụng sau này các bạn tự tìm hiểu.
Cấu trúc lưu trữ dữ liệu
Chắc hẳn lâu nay các bạn lập trình đều quen với kiểu dữ liệu quan hệ.
Dữ liệu của các ứng dụng Domino là kiểu dữ liệu phi quan hệ. Dữ liệu
của domino được lưu trữ thành các document, trong document có các field.
Để các bạn dễ tưởng tượng, mình xin mạo muộn đưa ra một phép so sánh
như sau: các field của domino giống như các trường trong một bảng của MS
SQL, như vậy document sẽ giống như một bản ghi (record). Domino hoàn
toàn không có khái niện table, chỉ có document là thực thể thể hiện cho
một định dạng dữ liệu. ví dụ:
Trong một document lưu trữ thông tin của nhân sự Nguyễn Văn A ta có thể đưa ra một mô tả cấu trúc dữ liệu như sau:
Document:
Field
Type
Value
HoVaTen
Text
Nguyen Van A
NgaySinh
DateTime
1/1/1970
QueQuan
Text
Ha Noi
DiaChi
Text
Ha Noi
SoCMTND
Text
123456789
Ở trên ta có nói FORM cung cấp một cấu trúc để tạo và hiển thị
document, vậy form và document có quan hệ với nhau như thế nào. Khi mình
mới bắt đầu làm việc với domino mình bị nhầm lần là form nó giống như
table trong MS SQL nhưng không phải vậy. Khi một document có field tên
là form có giá trị trùng với tên một form design thì khi mở document ra
domino sẽ sử dụng form đó để hiển thị thông tin về document này. Hoặc
khi bạn gọi cậu lệnh save từ một form thì domino sẽ tạo một document có
field tên là form trùng với tên form hiện tại và các field khác có giá
trị trùng với các field được khai báo trên form. ohh, như vậy form thì
khác gì table đâu? một điểm khác và cũng rât mở của Domino là bạn có thể
thêm một trường vào document trong quá trình thực thi (on runtime).
ngoài cách tạo document bằng cách ghi lại một form ra bạn có thể tạo
document bằng code trong quá trình chạy chương trình. Không những thế,
bạn còn có thể tạo ra các view, folder, thay đổi câu truy vấn của các
view, xóa một field của document trong quá trình chạy. Các thành phần thường dùng của một form
Ta thấy rằng form là một thành phần design rất quan trọng trong một
ứng dụng domino, sau này khi làm việc với xpage thì form giống như thành
phần khai báo các trường được sử dụng trong một document. Trong một
form thường có các thành phần sau:
Text
Field
Hotspot (Buttons…)
Resource
Computed text
HTML text
Embeded elements (view, folder)
Text và HTML text khác nhau chỗ nào: Text khi hiển thị trên browser
sẽ giữ nguyên format, còn HTML text thì sẽ được đối xử như một đoạn mã
HTML. như vậy để viết code HTML trên form các bạn phải chuyển từ text
thành HTML text. Để làm thao tác này bạn chọn đoạn text cần chuyển –
Menu Text – Pass_Thru HTML và ngược lại.
Ngoài ra còn các thành phần khác, bạn tham khảo thêm trong bộ help
của Domino Designer (Lotus Domino Designer Basic User Guide and
Reference > Application Design > Designing forms) . URL Command
URL command là sự kết hợp của các đặc điểm của URL với một câu lệnh
điều khiển các item như là một document hay view. cấu trúc của URL
command có dạng
http://Host/DominoObject?Action&Arguments
Phần này trong tài liệu Help của Domino Designer nói rất kỹ, các bạn
đọc trong này nhé (Lotus Domino Designer Basic User Guide and Reference
> Application Design > URL commands for Web applications).
Mình xin cung cấp một số các command hay dùng
OpenForm: mở một form
OpenView: Mở một view hoặc folder
OpenAgent: Chạy một agent (cho phép chạy trên web).
OpenDocument: Mở document (dạng readonly)
EditDocument: Mở document (dạng editable)
DeleteDocument: Xóa document
OpenPage: Mở một trang
/?Login: đăng nhập
/?Logout: Đăng xuất
Với các thành phần như trên các bạn đã có thể phát triển được các ứng
dụng Domino đơn giản rồi đấy. Trong một khuôn khổ một bài viết mình
không thể đi hết và chi tiết các thành phần design của một Domino
Application được, các bạn nên đọc kỹ hơn trong tài liệu help của Domino
Designer.
Sau đây mình sẽ demo cách dụng một số thành phần trên để viết ứng
dụng cho phép nhập, hiển thị thông tin nhân sự của một cơ quan.
Download vi du: http://www.mediafire.com/?br4zc4r2ge4fscc
Video:
Mặc định Domino Designer đặt font là Cp1252 nên khi các bạn ghi lại
java agent có chữ tiếng việt thì sẽ báo lỗi: “Some characters cannot be
mapped using Cp1252 character encoding….”
Để cấu hình lại, từ giao diện của Domino Designer bạn click menu File
– Preferences. trên cây menu bên trái chọn General – Wordspace. Trong
phần Text encoding chọn Other -> UTF-8. Click OK.
Cách này mình thấy chạy trên windows XP thì chạy tốt rồi nhưng vẫn
bị lỗi một số ký tự như ‘đ’ khi chạy trên Windows Server 2003.
Trong các bài viết trước mình đã giới thiệu về các thành phần
(component) cơ bản và thường xuyên để tạo ra một ứng dụng domino. Bài
này mình sẽ đưa ra các phương pháp để truy xuất dữ liệu trong một ứng
dụng Domino.
Như các bạn đã biết, Một ứng dụng domino khi được tạo ra thì cả phần
design và database được lưu trong cùng 1 file .nsf. Các đơn vị dữ liệu
được lưu ở đây là các document, nó tương ứng với các record trong MS
SQL. Ứng dụng Domino quản lý tài nguyên của nó thông qua các ID. với 1
document sẽ có tương ứng 2 loại ID là Notes ID và Universal ID (UNID).
Truy xuất Document
Thông qua URL: bạn có thể sử dụng URL command để truy xuất và một document, cấu trúc của URL Command là
Mở document: http(s)://host:port/[folder…]/[database.nsf]/[view]/[UNID]?OpenDocument
Hiệu chỉnh: http(s)://host:port/[folder…]/[database.nsf]/[view]/[UNID]?EditDocument
Xóa: http(s)://host:port/[folder…]/[database.nsf]/[view]/[UNID]?DeleteDocument @chat: Delete document thông qua 1 url, nếu vậy bạn ở 1
document ra, chỉ cần thay command opendocument bằng command
deletedocument là xóa được rồi, thật là nguy hiểm. Cài này trong thực tế
là mình đã gặp, nhiều người làm nhiều rồi, làn ứng dụng lớn rồi vẫn bị,
cho người khác truy cập vào document, người ta thay command trên URL nó
xóa béng mất :D.
thực ra Domino quản lý tài nguyên rất chặt chẽ thông qua quyền truy cập
và tài nguyên của người dùng, bạn chỉ được xóa document khi bạn được
cấp quyền xóa trong Access Control List (ACL), và bạn có quyền hiệu
chỉnh document. bạn chỉ được đọc , hiệu chỉnh các document khi bạn được
cấp quyền truy cập. Cấp độ (Access level của bạn đến đâu, là author, là
reader, là designer hay chỉ là depositor, bạn là người dùng trong ACL
hay chỉ là default user v.v….). Khi đã bắt tay và viết 1 ứng dụng thương
mại thật sự trên nền Domino, hãy chắc rằng bạn biết phải phân phát tài
nguyên cho người dùng thế nào.????
Thông qua database: Từ database hiện tại, bạn có thể truy xuất Document khi có UNID hoặc Notes ID của document
Ví dụ: Bạn có document có UNID là 858859600f579bd2472579140065033dSession session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
Document doc = db.getDocumentByUNID(“858859600f579bd2472579140065033d”);
Thông qua view: Bạn có thể sử dụng cột đầu tiên của 1 view (cột này
được sắp xếp) như 1 tập các key, sau đó truy xuất document thông qua các
key này. ví dụ, mình có 1 view chứa danh sách người dùng tên là
“dsnguoidung” và cột dầu tiên là tên đầy đủ (được sắp xếp tăng dần).
mình muốn lấy tập các document những người có tên đây đủ là “Nguyễn Văn
A”.Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
View nguoiDung = db.getView(“dsnguoidung”);
DocumentCollection dc = nguoiDung.getAllDocumentsByKey(“Nguyễn Văn
A”);Và từ DocumentCollection này, ban có thể truy xuất và các document
của người dùng có tên là “Nguyễn Văn A”, Nếu bạn chắc chắn rằng giá trị
Nguyễn Văn A là duy nhất bạn có thể truy xuất và thẳng document đầu tiên
đó bằng hàm Document ns = nguoiDung.getDocumentByKey(“Nguyễn Văn A”);.
Mình có xem qua các tài liệu tối ưu thì thấy rằng đây là cách tốt để tìm
kiếm document (tốt hơn nữa là sử dụng UNID hoặc Notes ID)
Thông qua hàm formula: Formula cung cấp một số hàm để lấy truy xuất
vào Document, thương dùng nhất là DBColumn, hàm này sẽ lấy giá trị một
cột của 1 view.
Tìm kiếm dữ liệu:
Thông qua view: như trên
FTSearch command từ view: cấu trúc
http(s)://host:port/[folder…]/[database.nsf]/[view]?SearchView&query=[giatri].
cấu trúc này sẽ tìm kiếm full-text một giá trị có trong view hiện tại.
các bạn đọc kỹ hơn trong tài liệu help của Domino Designer nhé (Lotus
Domino Designer Basic User Guide and Reference > Application Design
> URL commands for Web applications)
FTSearch từ database/view/DocumentCollection trong code: Trong code
bạn có thể Full-Text search từ một collection các document thông qua câu
query (gần như SQL)- [Database/View/DocumentCollection].FTSearch(String
query, int max, int sortopt, int otheropt). Bạn tham khảo thêm trong
tài liệu Help của Domino Designer (Lotus Domino Designer Basic User Guide and Reference > Java/CORBA Classes > Java Classes A-Z > Database class và Lotus Notes > Search > Doing searches).
Ở đây các bạn có thể thấy rằng FTSearch từ view thông qua URL command
chỉ có thể search 1 giá trị, còn FTSearch từ 1 collection document có
thể mở rộng ra tìm ở trường nào, kiểu dữ liệu là gì v.v…
Simple search: Cách search này chỉ áp dụng được với database. cầu
query giống câu query được sử dụng khi bạn tạo view, query của nó là giá
trị của một hàm formula, ví dụ:String query = “Select Form = \”NhanSu\”
& Name=\”Dung\” & QueQuan=\”HaNoi\””;
DocumentCollection dc = db.search(query);
Chú ý: khi tìm kiếm dữ liệu trong ứng dụng Domino thì ta không thể sặp
xếp theo một trường nào đó, hay group dữ liệu theo một trường nào đó như
trong các DBMS như MS SQL được, tìm kiếm của Domino chỉ đưa ra được 1
tập các document, có thể được sắp xếp theo 1 điều kiện có trước nào đó
là theo thời gian tạo, hoặc theo “điểm số truy cập” mà thôi. để sắp sếp
lại dữ liệu ta phải viết các hàm sắp sếp, hoặc một cách đơn giản hơn là
tạo 1 view, có các trường được sắp xếp, sau đó lấy dữ liệu theo từng
entry của view.
Trên đây là các cách thường dùng để truy xuất 1 hoặc 1 collection các
document trong 1 ứng dụng domino. Các bạn nên đọc kỹ các bài viết trong
help của Domino Designer mình đã đưa ra ở trên để biết chi tiết hơn.
Jquery là một thư viện javascript đa trình duyệt hoàn toàn miễn phí, được thiết kế để đơn giản hóa lập trình javascript. Download tại trang chủ của jquery.com
Để sử dụng JQuery trong ứng dụng Lotus Domino, đầu tiên bạn phải
download source file trên trang chủ của Jquery, sau đó import vào File
resource của ứng dụng.
Khai báo trong form header:
<script style=’text/javascript’ language=’javascript’ src=’jquery-1.7.1.min.js’></script>
Và sau đó là viết code.
Video:
Việc cài đặt domino cũng đơn giản như việc cài đặt các ứng dụng khác,
ở đây tôi chỉ hướng dẫn các bạn cài đặt và cấu hình ở mức đơn giản
nhất.
Các bước cài đặt và cấu hình lotus domino.
Chạy file cài đặt: Sau khi chạy file cài đặt, các file cài đặt sẽ được extract ra ổ cứng.
Thực hiện quá trình cài đặt: làm theo hướng dẫn trên màn hình (chủ yếu là click nút next) và chờ quá trình copy file hoàn tất.
Sau khi quá trình copy file hoàn tất, click vào biểu tượng Lotus Domino Server để bước vào quá trình setup server (Xem video).
Trong qua trình cài đặt các bạn có thể tick chọn tạo file id của
admin sau này dùng hoặc có thể tạo file này khi lần đầu tiên cài notes
Sau khi setup server, mở browser và gõ địa chỉ http://127.0.0.1 bạn sẽ thấy man hình giao diện mặc định của lotus domino
Một số bước cấu hình đơn giản: Các bạn xem trong phần cài đặt và cấu hình
Lotus notes nhé, vì cấu hình domino server được thực hiện thông qua
lotus admin
– Trước tiên, bạn cần mở cửa sổ Command Prompt (với quyền quản trị Admin)
Bằng cách sau, nhấn phím tắt Windows + X => Chọn Command Prompt (Admin)
Hoặc Search “cmd” sau đó nháy chuột phải và chọn Run as Administrator
– Đánh lần lượt 3 dòng Code dưới đây, Enter khi xong mỗi dòng! Cấu trúc như sau, bạn thay đoạn Key nếu cài các phiên bản tương ứng.
slmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43
slmgr /skms kms.xspace.in
slmgr /ato
Windows10Professional
W269N-WFGWX-YVC9B-4J6C9-T83GX
Windows10Professional N
MH37W-N47XK-V7XM9-C7227-GCQG9
Windows10Enterprise
NPPR9-FWDCX-D2C8J-H872K-2YT43
Windows10Enterprise N
DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows10Education
NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows10Education N2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows10Enterprise2015 LTSB
WNMTR-4C88C-JK8YV-HQ7T2-76DF9
Windows10Enterprise2015 LTSB N2F77B-TNFGY-69QQF-B8YKP-D69TJ
NHỮNG ĐIỂM LƯU Ý KHI CÀI ĐẶT VÀ NHỮNG ĐIỂM MỚI TRONG BUILD 10.10240.16387
Những điểm cần lưu ý khi cài đặt và những cái mới ban đầu về build này. Lưu ý đầu tiên:
+ Những bạn nào có ý định nâng cấp hoặc cài mới bằng ISO thì phải chuẩn bị key cài đặt (là key đã cung cấp ở các link down cũng là key active) Bạn Note – ghi lại ra giấy hoặc chụp ảnh vào điện thoại.
+ Nếu cài bằng ISO phải active lại.
+ Nâng cấp = ISO hầu như không giữ được gì cả – Chỉ cho tùy chọn giữ lại file cá nhân.
+ Sau khi nâng cấp những lỗi trên build cũ vẫn không khắc phục được.
+Sau khi nâng cấp file Windows.old quá khủng (của mình ~22GB). Tóm lại: Không nên nâng cấp bằng ISO mà cài mới luôn cho sạch và nhanh.
Ever since Windows 95, the Windows key (or Win key) is
ubiquitous on PC keyboards. With each new release of Windows, Microsoft
has added new keyboard shortcuts with the Win key. Here is a complete
list of all Winkey shortcuts.
The Win key when pressed by itself opens the Start Menu on systems
which have it. On Windows 8 it opens the Start screen. Here are all the
other Win key combinations which you may not be aware of: Win+A: Does nothing Win+B: Moves the focus to the notification area (System tray) Win+C: Shows Charms, and the date & time (Windows 8 and later) Win+D: Shows the Desktop. When you press Win+D again, it restores the open windows. Win+E: Opens Explorer Win+F: Opens file search. Prior to Windows 8, this
opened Explorer search. Now it opens the Search pane with Files selected
for searching Win+Ctrl+F: Opens the Find Computers dialog (for Active Directory/domain joined PCs) Win+G: Brings gadgets to the top of other windows. Win+H: Opens the Share charm on Windows 8 Win+I: Opens the Settings charm on Windows 8 Win+J: Does nothing Win+K: Opens the Devices charm Win+L: Locks the PC or lets you switch users Win+M: Minimizes all windows. Win+Shift+M does undo minimize all Win+N: Does nothing in Windows. In Microsoft OneNote, it opens a new Note. Win+O: Locks or unlocks the orientation of the device if it's a tablet PC so if even if you rotate it, it won't rotate Win+P: Opens the UI to project to another display or projector Win+Q: Opens the app specific search in Windows 8.1.
e.g. In Modern IE, it will search Internet Explorer. In PC Settings, it
will search Settings and so on. Win+R: Opens the Run dialog Win+S: Opens the search with "Everywhere" selected Win+T: Focuses on the taskbar icons. Pressing Win+T again moves the focus to the next icon. Win+U: Opens Ease of Access Center (or Utility Manager in Windows XP/2000) Win+V: Focuses on the Metro style toast notifications and cycles through them Win+W: Opens the search pane with Settings selected Win+X: Opens the Power Users menu on Windows 8 and later. On Windows 7/Vista, it opens Mobility Center
Win+Y: Does nothing Win+Z: Shows the App Bar in a Modern app, same as right clicking inside a Modern app Win+1/2/3....0: Opens or switches to the correspondingly numbered Taskbar button Win+'+': Opens Magnifier and zooms in Win+'-': Zooms out in Magnifier Win+Esc: Exits Magnifier if it's running Win+F1: Opens Help and Support Win+Pause/Break: Opens System Properties Win+Print screen: Takes a screenshot in Windows 8 and saves it to the Screenshots folder Win+Home: Same as Aero Shake (minimizes all windows except the foreground window) Win+Left arrow key: Snaps a desktop app's window to the left. In Windows 8.1, it also snaps a Modern app's window to the left. Win+Right arrow key: Snaps a desktop app's window to the right. In Windows 8.1, it also snaps a Modern app's window to the right. Win+Up arrow key: Maximizes a window. In Windows 8.1, it also makes a snapped Modern app full screen. Win+Down arrow key: Minimizes a window. In Windows 8.1,
it suspends a Metro app and takes you to either the Desktop or the
Start screen depending on your Start screen settings Win+Page Down: In Windows 8.0, it moves a Modern app's
window to the next display if multiple monitors are connected. In
Windows 8.1, this shortcut is moved to Win+Shift+Right arrow key to be
consistent with desktop apps Win+Page Up: moves a Modern app's window to the
previous display if multiple monitors are connected. In Windows 8.1,
this shortcut is moved to Win+Shift+Left arrow key to be consistent with
desktop apps Win+Enter: Starts Narrator (on Windows 8 and later) Win+Alt+Enter: Starts Media Center Win+Space: In Windows 7, it does an Aero Peek. In Windows 8, it switches the input language Win+Comma (,): In Windows 8, this is the new key for Aero Peek Win+Period (.): Shows you which is the active window (useful when two Modern apps are snapped). Win+Tab: In Windows 8 and later, when you press Win+Tab
and release it, you can switch between Modern apps, the Start
screen and the Desktop. If you continue to hold the Win key, it will
show you the Switcher UI and when you let go of the Win key, it will
switch. In Windows 7/Vista, Win+Tab shows Flip 3D which operates
similarly. Ctrl+Win+Tab: Shows the Switcher UI in sticky mode so
you can use keyboard arrow keys or mouse to switch. Ctrl+Win+Tab also
opens Flip 3D in sticky mode in Windows 7/Vista
Let us know if we missed any Win key shortcuts and tell us if you discovered any new ones from this article. :)