เดา iWatch

ข่าวลือ iWatch เยอะเหลือเกิน ผมแค่รู้สึกว่ามันคงเป็น Watch ที่เหมาะจะคู่กับ iPhone/iPod touch/iPad มากกว่า

ตามความคิดของผม iWatch จะเป็นนาฬิกาที่สามารถแสดงผลข้อมูลในกลุ่ม Push Notification รวมถึง Widget App บางตัว (เช่น Weather, Stock) หรืออาจจะทำได้ถึงขั้นล้วงดูข้อมูลของ Built-in App อย่างเช่น Message, Contact, Music และอาจจะมี Siri อยู่ในตัว

ลักษณะการใช้งาน เราต้อง Pair มันเข้ากับ iP device (เฉพาะรุ่นใหม่ นั่นก็คือ iPod touch 5, iPhone 4S, iPad 4 ขึ้นไป) อาจจะผ่าน Wifi หรือ Bluetooth ก็ได้ อาจจะมีปุ่มเพียงแค่หนึ่งปุ่ม เพื่อปลุก/ปิด ที่เหลือก็เป็นการใช้งาน Multitouch แบบที่ iPod nano เคยมี เมื่อมีการแจ้งเตือนใดเข้ามา มันจะปรากฏบน iWatch ซึ่งถ้าเป็น App เช่น Message เราอาจจะใช้ Dictation พูดสั่งให้ตอบข้อความได้ทันที หรือสั่ง Siri ให้ค้นหาข้อมูลให้เราได้คร่าว ๆ ก่อนที่อาจจะส่ง Url ไปยัง iP device เพื่อเปิดผ่าน Safari เมื่อเราปลุก iP device ขึ้นมาก็ได้ พูดง่าย ๆ มันจะช่วยให้เราหยิบ iP device ออกมาจากกระเป๋าให้น้อยลงนั่นเอง

สรุปในแง่ Specification มันน่าจะมีจอสัมผัส, มีไมโครโฟน, มี Bluetooth 4 หรือ Wifi อาจจะมี Lightning หรือใช้ที่ชาร์ตร่วมกับ iPod shuffle ไปเลย (แต่มันคงสร้างความสับสนนะ?) ส่วนของ OS คงจะพัฒนาต่อมาจาก iPod nano เป็น OS ที่ไม่ซับซ้อน เน้นรับค่ามาจาก iP device กับส่งค่าต่อกลับไปยัง iP device ไม่มีการประมวลผลที่ซับซ้อน

ฟีเจอร์ประมาณนี้ ราคาซักหมื่นก็น่าจะพอไหวนะ

Blog Tags: 

การแก้ปัญหาเมื่อ SharePoint ไม่รู้จะใช้ Managed Metadata Service ตัวไหน

ใน SharePoint Farm ปัจจุบันมี Managed Metadata Service อยู่ 1 ตัว มีความต้องการว่าเราจะสร้าง Managed Metadata Service สำหรับ Web Application ที่เราต้องการจะศึกษา Cross-site publishing ผมก็เลยทำการสร้าง MMS ขึ้นมาอีกตัว ทำการ Web Application อันใหม่แล้วผูก MMS ตัวนี้เข้ากับ Web Application นั้นโดยไม่ใช้ MMS ตัวเดิม

ปัญหามาเกิดเมื่อเราทำการสร้างไซต์ที่เป็น Product Catalog เมื่อเปิดใน Term Store เราพบว่า ไม่มีการสร้าง Term พิเศษให้โดยอัตโนมัติ ใน Event Log ไม่ได้แจ้งอะไรเป็นพิเศษ แต่ใน ULS เราพบ Event น่าสนใจอันหนึ่ง ซึ่งเกิดขึ้นในกระบวนการสร้าง Site Collection นี้ (ใช้ ULS Viewer ดักค่าตั้งแต่กดปุ่มสร้างไซต์จนถึงหน้าจอที่รายงานผลการสร้างไซต์)

{DATE/TIME} w3wp.exe (0x099C)   0x17E0  Web Content Management  Publishing Provisioning aaub3   High    Failed to add term set Product Hierarchy. Unable to fetch the Term Store of the Site Collection {GUID}

ก็ค่อนข้างชัดเจนว่ามันไม่รู้จัก Term Store แต่จะทำอย่างไรให้มันรู้จักล่ะ? ไปพบบทความของ Jason Lee ซึ่งพบอาการเดียวกันเป๊ะ ก็เลยจัดการตั้งค่าตาม แล้วสร้าง Site Collection ใหม่ ผลลัพธ์ก็ออกมาเป็นดังที่ควรจะเป็น

บทเรียนสำหรับวันนี้คือ นอกจากจะตั้งให้ Permission แก่ Term Store แล้ว เรายังต้องตั้ง Properties ของ Service Application Proxy ด้วย เผื่อเกิดข้อผิดพลาดที่ไม่คาดคิดเช่นนี้

Blog Tags: 

ปัญหา Farm Solution Deployment ใน SharePoint 2013 เมื่อแยก Role

ช่วงนี้ได้มีเวลาพัฒนา Declarative Workflow Action ตามวิธีของ SharePoint 2013

ผมแบ่งผู้ใช้สำหรับติดตั้ง SP_Inst, ผู้ใช้สำหรับต่อฐานข้อมูลหลัก SP_Farm, ผู้ใช้สำหรับ AppPool, WebPool, และผู้ใช้ที่เป็นนักพัฒนา แล้วก็ได้มีการให้สิทธิ์ SPShellAdmin ลงใน Content Database ของ Site Collection รวมถึง Admin Content Database และ SharePoint Configuration Database ด้วย

ไม่แน่ใจว่าเป็นผลจากการแบ่ง Role อย่างเคร่งครัดหรือไม่ที่ทำให้พบเรื่องน่าปวดตับอยู่ได้หลายเรื่องดังนี้

  1. Deploy ไม่สำเร็จ อันนี้ต้องเพิ่ม SPShellAdmin ให้กับฐานข้อมูล AppManagement เพิ่มไปด้วย
  2. Retract Solution ไม่สำเร็จ อันนี้ต้องเพิ่มสิทธิ์บน Admin Content Database นะ
  3. ทำไมมันไม่ยอมติดตั้ง Solution Package อันใหม่ให้เลย! อันนี้ไม่แน่ใจว่าเป็นบั้กหรืออย่างไร แต่มันทำให้เสียเวลามากในการทดสอบ เพราะสิ่งที่ได้ทำแก้ไขไปมันกลับไม่แสดงผลออกมา มาทราบภายหลัง (จากการสังเกต) ว่า อาจจะเป็นบั้กของ Visual Studio วิธีที่ผมแก้คือ สั่ง Deactivate Feature, Retract Solution, Remove Solution เอง (ผ่าน Central Administration, PowerShell แล้วแต่สะดวก) ปิด Visual Studio แล้วเปิดใหม่ ทำการ Build ทุกอย่างใหม่แล้วสั่ง Deploy แล้วก็พบว่าจะได้ Solution Package ตัวใหม่

รู้สึกว่าการยึดตาม Practice ของ Microsoft นี่จะสร้างความวุ่นวายให้กับชีวิตอีกครั้งหนึ่งแล้ว

Blog Tags: 

ตั้ง eDiscovery บน SharePoint และ Exchange 2013

eDiscovery เป็นฟีเจอร์ที่ใช้ค้นหาหลักฐานในองค์กร หลักฐานเช่นไฟล์เอกสาร รวมถึงอีเมล์ที่ใช้สนทนาไปมา เป็นการนำความสามารถของ Search มาใช้งานในอีกขั้น

การตั้งไซต์ eDiscovery นั้นค่อนข้างง่าย แต่การเตรียมตัวก่อนที่จะเกิดไซต์ดังกล่าว ให้พูดตรง ๆ คือก็ลากเลือดพอสมควร หากเชื่อตาม Test Lab Guide: Configure eDiscovery for SharePoint Server 2013 ก็จะพบปัญหาบางประการ เนื่องจาก Step 2 และ 3 เขียนเหมือนกันเป๊ะ แถมหากแยก Account ในการสั่งงานตามข้อปฏิบัติ (แยก Install Account ออกจาก Farm Account) ก็จะพบปัญหาในขั้นตอนการสั่ง Get-SPAppPrincipal เนื่องจากไม่มีสิทธิ์เข้าถึง Database ของ Site Collection ที่ต้องใช้งาน (แน่นอนว่า Error Message ที่แสดงบน PowerShell ไม่ได้บ่งบอกเรื่องนี้ ต้องเปิดดูใน Event Viewers หรือ ULS เอาเอง)

สรุปบทเรียน คือ การตั้งไซต์สามารถทำไปล่วงหน้าได้ทันที ส่วนคำสั่ง PowerShell ที่เหลือทั้งบน SharePoint และ Exchange สามารถทำในภายหลังได้ ในส่วนของ Url ที่ต้องกรอกในช่วง PowerShell นั้น สำหรับทางฝั่ง Exchange ดูจะไม่มีประเด็นให้ต้องเป็นห่วง แต่บน SharePoint ผมก็ยังไม่แน่ใจว่า Site ที่อ้างถึง หากมีหลาย WebApplication เราต้องจัดการกับมันเช่นไร ผมเลยสั่งคำสั่งหลาย ๆ ครั้ง ให้ครอบคลุมกับจำนวน WebApplication ที่เกี่ยวข้องกับเรา แต่ก็ยังพบปัญหาว่าผมสามารถสร้าง Source ได้แค่เพียง Site Colleciton เดียวเท่านั้น

ส่วนฝั่ง Exchange ที่พบปัญหา เจออาการ UPN ของ Account ที่ใช้สร้าง Source ไม่ตรงกับค่า UPN ที่ควรจะเป็นเนื่องจากระบบของเราได้มีการเปลี่ยนชื่อโดเมนไปด้วย ทำให้ต้องไปปรับ UPN ของ Account ให้ถูกต้องเสียก่อนแล้วก็รอรอบการตรวจสอบ Claims ซักพักใหญ่ (รอไป 1 คืน จริง ๆ อาจจะแค่ชั่วโมงสองชั่วโมงก็พอ) หลังจากนั้นก็จะสามารถเพิ่ม Mailbox ที่ต้องการค้นหาลงไปได้

Blog Tags: