[Dev Tip] Create new instant of Xamarin App on Mac

For some reason, you want to open some Xamarin solutions at same time. By default you can do that. There is a work around using applescript.

1) Open AppleScript Editor

2) write this sample statement

do shell script "open -n /Applications/Xamarin\\ Studio.app/"

3) Save it with type format is application.

4) run this file you will get a new Xamarin instant.

[Dev Tip] WIF SessionAuthenticationModule cookies across sub-domains

Sometime, you need support SSO among sub-domains. Beside set up WIF on each applications, using same machine key. But those apps still cannot use same cookie.

There is a solution for it: specify domain name before write session token to cookie:

var sessionToken = new SessionSecurityToken(principal);
FederatedAuthentication.SessionAuthenticationModule.CookieHandler.Domain = "domain.com";
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken);

[Dev Tip] Remote debug

Sometime, you need to debug a program on a server or something like that and it doesn’t have an installed Visual Studio. Then how to debug that program?

1) On target machine

1.1) Install Remote Tools for Microsoft Visual Studio XXX with XXX is version of your VS.

1.2) run Remote Debugger

server

Note: It opens port 4018.

2) On you machine

2.1) Attach debug process

client1Note: 192.168.16.254 is target’s IP.

Choose your process which you want to debug. At here i debug IIS.

client2

Attach that process and debug. 🙂

Note: Modules windows, Load symbol

or

set up debug 1

[Dev Tip] Claim-based notes

#1) Set IsAuthenticated = true

The IIdentity interface has the IsAuthenticated property. This is typically set to true whenever you deal with implementations of that interface, e.g as soon as you set the Nameproperty of GenericIdentity, IsAuthenticated is automatically set to true. IIRC in WIF, as soon as a ClaimsIdentity had a claim, IsAuthenticated was set to true.

This has changed in .NET 4.5. It is now possible to create a ClaimsIdentity that has claims, but having IsAuthenticated set to false. Actually this is the default now, when you new upClaimsIdentity like this:

var id = new ClaimsIdentity(claims);

To have IsAuthenticated set to true, you need to specify an authentication type in the ctor:

var id = new ClaimsIdentity(claims, “Custom”);

#2) Claims principal

You don’t need to set the Thread.CurrentPrincipal because the session module will do this for you. You will need to access it through the HttpContext.Current.User because the Thread.Principal is usually set on a different thread than the one accessing your service because it is two different modules in IIS.

[Discovery] Những bức ảnh hiếm của lịch sử thế giới

Ngày nay có smartphone thì ai cũng có thể chụp hình được, nhưng cách đây trên 30 năm thì đó là một chuyện hoàn toàn khác, máy ảnh lúc đó là một vật dụng xa xỉ nên không phải ai cũng có điều kiện sử dụng. Mời các bạn xem qua vài bức ảnh hiếm của lịch sử thế giới, ghi lại những khoảnh khắc có một không hai của thế kỉ trước.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-1.

Ngày mở cửa khai trương của Disneyland đầu tiên trên thế giới buổi sáng 17/5/1955, tức là cách đây 60 năm. Công viên vui chơi dành cho trẻ em này đặt ở Anaheim, California.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-2.

Lúc cầu Golden Gate còn đang xây dựng hồi năm 1937. Cổng Vàng là chiếc cầu bị sập nhiều lần nhất trong các phim thảm hoạ, khủng bố của Hollywood.

Leo_the_MGM_lion_1928.

Cảnh quay logo đầu sư tử trong logo của hãng phim MGM năm 1929. Hãng MGM từng sử dụng 6 chú sư tử để quay logo qua các thời kì khác nhau, sư tử năm 1917 – 1924 tên là Slats, còn sư tử trong hình là Jackie.

Shooting-The-MGM-Logo-Video-3.
alfred-hitchcock-and-mgm-leo-1366262852.enhanced-buzz-13346-1339124016-1.

Đạo diễn lừng danh Alfred Hitchcock từng rất thân thiết với sư tử Leo, là hình tượng của hãng MGM từ năm 1957 tới nay.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-4. ​Đây được xem là tấm hình đầu tiên ghi lại cảnh bên trong hầm trú ẩn của Quốc trưởng Hitler trong thế chiến II, chụp năm 1945.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-5. ​Xây dựng tháp Eiffel hồi năm 1888, vào cuối thế kỉ 19 thì chân tháp đã là công trình cao nhất Paris thời đó.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-6.​Đập Hoover (Hoover Dam) trong một khoảnh khắc không có nước. Ảnh chụp năm 1936, thời điểm đập vừa được xây dựng xong. Kinh phí xây dựng lúc đó được ước tính khoảng 49 triệu USD, công trình này cao 221,4 mét; rộng 200 mét và dài 379 mét, độ dày của thân đập là 14 mét.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-7. ​Núi Rushmore thuộc Khu tưởng niệm quốc gia Mỹ, nơi có tượng điêu khắc của 4 vị Tổng thống Mỹ biểu tượng cho lịch sử 130 năm dựng nước. Bức ảnh ghi lại lúc người ta đang điêu khắc chân dung George Washington hồi năm 1932.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-8. ​Cửa hàng Walmart đầu tiên của Mỹ năm 1962.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-9. ​Tất bật đúc tượng Nữ thần tự do. Công trình này cao 46 mét, được Pháp khởi công xây dựng những năm đầu thập kỉ 1880 và trao tặng cho nước Mỹ, khánh thành ngày 28/10/1886.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-10. ​Bức ảnh màu ghi lại cảnh 4 thành viên ban nhạc lừng danh The Beatles băng qua đường Abbey năm 1969. Năm 2012, bức ảnh này từng được đem ra bán đấu giá và người thắng đã trả 25.000$.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-11. ​Cảnh ghi lại các nạn nhân của tàu Titanic được cứu bởi tàu RMS Carpathia, những chiếc xuồng cứu hộ đang cặp hông con tàu lớn để mọi người trèo lên boong.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-12. ​Tảng băng được cho là Titanic đã đâm trúng, gây ra vụ tai nạn thảm khốc trong lịch sử. Ảnh chụp năm 1912.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-13. ​Trong chuyến đổ bộ lên Mặt trăng năm 1972 của tàu Apollo 16, phi hành gia Charles Duke đã để lại một tấm ảnh gia đình của ông ở ngôi sao này trước khi rời đi. Bức ảnh còn được Duke chu đáo bọc nilon để tránh hư hỏng.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-14. ​Bức ảnh đầu tiên ghi lại cảnh ngoài không gian chụp năm 1946.

15-of-the-rarest-and-most-mind-blowing-photographs-in-history-15. ​Google năm 1999. Những người này đã góp phần thay đổi internet chúng ta đang dùng hiện nay.

Theo lolwot

[Dev Tip] Tạo máy ảo từ máy ảo khác trên VMWare

Đôi khi có những trường hợp bạn muốn setup hệ thống để test một function hay solution gì đó. Và bạn quyết định dùng các máy ảo để triển khai và dùng VMWare. Vấn đề là chuẩn bị các máy ảo.

1) Cài mới tất cả các máy? Đôi khi nếu yêu cầu là các hệ điều hành giống nhau thì việc này là công việc trâu bò và tốt nhiều thời gian để ngồi cài từng máy một.

2) Vậy sao không cài một máy cơ sở rồi copy nó ra thành nhiều máy khác – dạng như copy/paste một file ra nhiều phiên bản. Cũng hay, nhưng có vẻ cơ bắp quá, và đôi khi bạn gặp hạn chế về dung lượng ổ cứng.

3) Có một cách hay hơn cách 2 – cũng clone nhưng ít tốn dung lượng bộ nhớ – linked clone.

Step 1) Cài một máy cơ sở – chứa tất cả các thành phần cần thiết của tất cả các máy.

Step 2) Tạo một snapshot cho nó

snapshotXong, tới đây mình đã hoàn tất các bước chuẩn bị.

Step 3) Tạo một máy mới dựa trên máy cơ sở đã tạo

Step 3.1) Chọn snapshot trên máy cơ sở > Clone

Step 3.2) Clone dạng linked

linked[Note] các thao tác không được nhắc đến là những thao tác cơ bản như chọn nơi lưu trữ, tên máy ảo mới,.. bạn tự làm. 🙂

Đến đây mình đã tạo được một máy ảo mới dạng linked tới máy ảo cơ sở. Mọi thay đổi trên máy ảo mới không có tác động gì đến máy ảo cơ sở. Xóa máy ảo cơ sở thì xem như những máy ảo kế thừa cũng không chạy được.