ATTEMPT: เปิด Personal Hotspot ใน iPad Wifi + 3G (First Generation)

Submitted by ezybzy on Mon, 2012-03-12 - 08:49

พยายามแล้วพยายามอีกแต่ก็ไม่สำเร็จ แต่ก็คิดว่าน่าจะบันทึกเอาไว้จะได้รู้ว่าทำอะไรไปแล้วบ้าง

ไฟล์ที่เกี่ยวข้อง

ไฟล์ ที่มา
/System/Library/CoreServices/SpringBoard.app/K48AP.plist  
/System/Library/LaunchDaemon/com.apple.hostapd.plist นำมาจาก iPhone 4
/usr/libexec/hostapd นำมาจาก iPhone 4

ตัว K48AP.plist ได้เพิ่ม Capabilities ดังต่อไปนี้

key value หมายเหตุ
telephony true ซึ่งคิดว่าไม่จำเป็นนะ เพราะมี any-telephony อยู่แล้ว ซึ่งมันก็ควบคุมการแสดงผลจากการหา cellular-data เหมือนกัน

ปัญหาที่พบ คือ เมนู Personal Hotspot ไม่ขึ้น ซึ่งเข้าใจว่าเกิดเนื่องมาจากการที่ CommCenter หรืออะไรซักอย่าง ไม่ยอมให้ EDGESetting.bundle สามารถแสดงช่องกรอกข้อมูลกลุ่ม ServiceTypeUI = 4 จึงทำให้ไม่สามารถกรอกค่า APN เพื่อทำ Tethering ได้ ซึ่งนั่นน่าจะเป็นเหตุให้ Personal Hotspot ไม่ยอมทำงาน

จุดที่สงสัยคือ iPad รุ่นสามนี้ได้มีการเพิ่ม Capability ในไฟล์ Jxx.plist หรือไม่? หรือเกิดการแก้ไขค่าบางอย่างใน com.apple.SpringBoard.plist หรือ com.apple.Preferences.plist หรือแม้แต่ .GlobalPreferences.plist ให้รู้ว่า AllowTethering (หรืออันนี้เป็นสิ่งที่ควรจะอยู่ใน Unknown.bundle นะ)

ไปค้นเจอเพิ่มเติมมาว่า ถ้าต้องการ Wifi Personal Hotspot อาจจะต้องดู Firmware ของ Wifi ด้วย ซึ่งจุดนี้คงต้องรอลุ้นว่า iPad รุ่นสาม จะยังใช้ Broadcom ตัวเดิมกับที่ใช้มาตั้งแต่สมัย iPhone 3GS หรือไม่ ถ้าใช่ก็น่าจะเอามาอัพใส่ iPad เพื่อให้อย่างน้อยมีโครงสร้างที่จำเป็นในการทำ Wifi Personal Hotspot รอไว้ก่อน แล้วจึงค่อยย้อนกลับมาดูว่าจะทำให้มันยอมรับความสามารถของ Tethering ได้อย่างไร

Tags

การตั้ง Search Scope ใน SharePoint

Submitted by ezybzy on Tue, 2012-03-06 - 16:07

มีโจทย์ว่า ต้องจำกัดผลลัพธ์การค้นหาใน Site Collection อันหนึ่ง (สมมติว่าชื่อ http://a) ซึ่งภายในดันมีอีก Site Collection หนึ่งที่มีรูปของ Url เป็น http://a/sites/xyz

วิธีแก้ปัญหาก็ทำได้หลายวิธี หนึ่งในนั้นคือ การกำหนด Content Source โดยกรอก Url ของ Site Collection ที่ต้องการ และต้องไม่ลืมเลือก Crawl Settings ให้เป็น Only crawl the Site Collection of each start address แทนที่จะเลือก Crawl everything under the hostname for each start address ซึ่งตัว Crawler จะวิ่งไปทั่วระดับ Web Application เลย

เมื่อตั้งส่วนนี้เสร็จ ก็ต้องไปตั้ง Scopes (ในเมนู Query and Results) โดยหากจะเล่นกับ Content Source ที่สร้างไปเมื่อซักครู่ ตัว Scope นี้จะถูกบังคับให้เป็น Shared Scope (แต่ละ Site Collection ที่จะใช้ระบบ Search จะไม่สามารถลบค่าออกเองได้ เพราะนี่เป็นค่าจากส่วนกลาง) เนื่องจากในเมนู Search Scope ที่อยู่ภายใต้ Site Collection เมื่อทำการ New rule แล้วในหัวข้อ Scope Rule Type จะไม่มีหัวข้อนี้ให้เลือก

วิธีนี้เท่าที่ลอง ใช้งานไม่ได้กับ FAST Query SSA นะ ประหลาดใจเหมือนกัน แต่อาจจะเป็นการตั้งค่าบางอย่างผิดพลาดก็ได้ เลยไม่ปรากฏตัวเลือกนี้ให้ใช้ จำเป็นต้องกลับไปใช้วิธีไล่ Exclude URL ที่ไม่ต้องการออกไปแทน

Tags

ทำ HTML Slideshow

Submitted by ezybzy on Sun, 2012-02-26 - 11:05

เนื่องจากรับหน้าที่ไปสอนนักศึกษามหาวิทยาลัยกลุ่มหนึ่ง หัวข้อที่สอนคือ CSS เราก็อยากจะทำเอกสารประกอบการสอนให้เข้ากับเรื่องนี้ ก็เลยมาลงที่การทำสไลด์ด้วย HTML เพื่อให้นักศึกษากลุ่มนี้เกิดความรู้สึกว่า “สิ่งที่เขาเรียนไป มันใช้ทำอะไรได้ขนาดนี้เลยเหรอ”

ตอนแรกก็ลอง ๆ หาก็พบ html5slides ซึ่งก็ถือว่าใช้งานได้ง่ายเลยทีเดียว แต่มีข้อจำกัดว่าขณะใช้งานต้องเชื่อมต่ออินเตอร์เน็ต เนื่องจากการอ้างอิง js, css, ฟอนต์ในนั้น อยู่ภายนอกหมด ก็เลยต้องออกแรงแก้ไขดัดแปลงนิดหน่อยให้สามารถใช้งานแบบ Offline ได้

แต่ Template ชุดนี้ก็ดันมีปัญหากวนใจสำคัญเรื่องหนึ่งคือการแสดงผล iframe ใน Google Chrome ที่จะทำให้หน้าสไลด์เลื่อนจนไม่เหมาะสมแก่การใช้งาน ซึ่งในจุดนี้ก็จนปัญญาจะแก้เหลือเกิน (คงเป็น Internal ใน Google Chrome นี่แหละทำให้เกิดปัญหาการแย่งซีนของ iframe ขึ้นมา)

ในเวลาเดียวกัน ก็ลองค้นหาต้นแบบอื่น ๆ ก็ไปพบกับต้นแบบที่คล้าย ๆ กับของที่ปรากฏใน slides.html5rocks.com อีกตัว เข้าใจว่าเขาคง port ออกมาจากสไลด์ตัวนี้แหละ ชื่อ g5 ซึ่งตอนแรกคิดว่าจะมีรูปแบบการทำงานเดียวกับแบบแรก แต่ที่แท้จริงแล้ว ตัวนี้ต้อง build ผ่านทางคำสั่ง slideshow ซึ่งเป็นแพคเกตตัวหนึ่งใน gem นั่นก็นำมาสู่ขั้นตอนการติดตั้งอันแสนจะวุ่นวายยามค่ำคืน

อันดับแรก ติดตั้ง slideshow ก่อนผ่านทาง gem

sudo gem install slideshow

ขั้นต่อมาติดตั้ง Template ของ g5 ผ่านคำสั่ง

slideshow -f https://github.com/geraldb/slideshow-google-html5-slides/raw/master/g5.txt

ต่อมาก็ทำการสร้าง Directory ว่าง ๆ ซักที่ แล้วเข้าไปเรียกใช้คำสั่งนี้ เพื่อสร้างไฟล์ทั้งหมดออกมา

slideshow -t g5.txt tutorial

ที่นี้ปัญหาคือ เราจำเป็นต้องมีไฟล์ tutorial นี้เสียก่อน ซึ่งจริง ๆ ก็เป็นแค่ text file ธรรมดานี่แหละ แต่ในเว็บเขาไม่ได้บอกเอาไว้ว่าต้องทำ (แหมเราก็ซื่อนะ ไม่เคยใช้นี่) ก็วนเวียนสาระวนกับเรื่องนี้มา 1 คืน ไปเอา rvm มาติดตั้งโหลด ruby 1.9 มาติดตั้ง แล้วก็ไม่ได้อะไรขึ้นมาหนำซ้ำยังไปติดปัญหาอื่นที่งงกว่าเดิม สุดท้ายก็ถอนออก แล้วจึงทำการสร้าง tutorial ขึ้นมา (ผมเลือก Markdown แทนการใช้ Textile นะ) โดย

touch tutorial.text

แล้วจึงทำการเรียกใช้งานคำสั่งที่แล้วอีกครั้ง ก็จะสามารถสร้างสไลด์ตัวอย่างออกมาได้

การกำหนดหัวข้อให้เรากำหนดได้ใน tutorial ของเราตามรูปแบบที่เขียนในเว็บได้เลย แล้วก็ใช้หัวข้อลำดับ 1 ในการแบ่งสไลด์ไปเรื่อย ๆ ขั้นต่อไปคงจะมาดูขั้นตอนการปรับขนาดอักษรภายในให้ใหญ่ขึ้นอีกหน่อย เพราะด้วยปัจจุบันค่อนข้างเล็กมาก

ทำ Unit Test สำหรับ SharePoint 2010

Submitted by ezybzy on Thu, 2012-02-16 - 20:44

มีโครงการกับทีมงานที่ที่ทำงานว่าเราจะพัฒนาซอฟท์แวร์โดยนำแนวทาง Test Driven Development มาใช้ กล่าวง่าย ๆ คือการเขียน Test ก่อนการพัฒนา ซึ่งนั่นก็แน่นอนว่าเราต้องทำ Class กันเข้มข้นพอสมควร ขั้นตอนก่อนจะเริ่มกระบวนการนี้เราคงต้องมาทบทวนกันว่าใน Visual Studio 2010 นั้นมีกระบวนการใดบ้างที่จะทำ Unit Test กับโปรเจคที่ทำงานกับ SharePoint 2010

มาดูสภาวะแวดล้อมกันก่อน เครื่องที่ผมใช้จัดกระบวนการนี้เป็น Windows 7 (x64) Enterprise Edition SP1 ติดตั้ง SharePoint Foundation 2010 SP1 และ Visual Studio 2010 Ultimate SP1

สิ่งแรกที่ได้ทำคือ เราต้องทำการสร้าง Empty SharePoint Solution ขึ้นมา 1 อัน เพราะเราต้องการจะสร้าง Class Library ที่มีการอ้างอิงเกี่ยวกับไลบารี่ของ SharePoint ให้เรียบร้อย หลังจากนั้นก็ทำการสร้าง Test Project เพิ่มเข้าไปใน Solution เดิมของเรา

ขั้นนี้ปัญหาข้อแรกที่พบคือ SharePoint Project ของเราจะใช้งาน .NET Framework 3.5 แต่ Test Project ใช้งาน .NET Framework 4 ซึ่งไม่ง่ายเลยที่จะปรับให้ Framework ตรงกัน แต่เมื่อตามลิงค์ที่อยู่ตอนท้ายของหน้าต่างแจ้งปัญหานั้น (แหมจะทำให้มันกดลิงค์ง่าย ๆ หน่อยก็ไม่ได้นะ Microsoft) ดังนี้ Possible Additional Steps to Enable Re-targeting of Test Projects to .NET Framework 3.5 ซึ่งบอกให้ทำการแก้ไข devenv.exe.config ซึ่งก็เหมือนจะผ่านไปได้ด้วยดี เราก็สามารถเปลี่ยน Test Project ให้มีเป้าหมายเป็น .NET Framework 3.5 ได้แล้ว

ขั้นตอนเหมือนจะผ่านไปได้ด้วยดี ผมก็เริ่มทำการสร้าง Code ทดสอบมีการเรียกใช้งาน SPSite และ SPWeb แล้วจึงทำการสร้าง TestInitialize เพื่อสร้างออปเจ็คของ SPSite และ SPWeb เพื่อผ่านค่าไปยัง Code ซึ่งก็ไม่ได้ทำอะไรผิดปกติ เมื่อทำการรันเทส ก็พบข้อผิดพลาดยอดนิยมที่คาดว่าจะได้เจอนั่นคือ

System.IO.FileNotFoundException: The Web application at {sharepointurl} could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.

สิ่งแรกที่ผมเดาคือ เพราะ Platform target ของ SharePoint Project ไม่ได้เป็น x64 ก็เลยลองเปลี่ยนจาก Any CPU เป็น x64 แต่แล้วก็พบกับ Error ตัวอื่นคือ

System.BadImageFormatException: Could not load file or assembly '{assemblyinfo}' or one of its dependencies. An attempt was made to load a program with an incorrect format.

ดูจะเลวร้ายไปกันใหญ่ครับ ปัญหานี้เกิดเพราะการพยายามโหลดไลบารี่ x64 จาก x86 ครับ นั่นเพราะตัวโหลดเทสยังคงทำงานเป็น x86 อยู่ ไม่ได้เป็น x64 แบบที่เราต้องการ ก็ลองค้นหาข้อมูลก็ได้พบข้อมูลจากบล็อกหนึ่งในทีมที่ทำตัว Test ใน Visual Studio ให้แนวทางไว้ว่า สามารถทำ Class คั่นกลางหลอกได้ โดย Class นี้จะไปเรียกไลบารี่ x64 อีกต่อหนึ่งไม่ให้ตัวเทสเรียกไลบารี่ x64 โดยตรง ซึ่งก็เหมือนจะใช้ได้นะ แต่หลังจากนั้นก็ไปค้น ๆ ในบล็อกของคนเดิม เจอสิ่งที่เด็ดกว่านั้นนั่นคือ Visual Studio Team Test Load Agent Goes 64 Bit! ซึ่งนั่นก็คือตัวรันเทสมันเป็น x64 อยู่แล้ว แต่เราต้องตั้งค่ามันให้เป็น โดยต้องไปปรับค่าของ Run tests in 32 bit or 64 bit process ซึ่งหลบอยู่ในหัวข้อ Hosts ใน Test Setting ให้เป็น Run tests in 64 bit process on 64 bit machine แล้วก็ไปทำการปรับค่า Platform target ของทั้ง Test Project และ SharePoint Project เป็น Any CPU

หลังจากนั้นทุก Error ที่เจอก็จะหายไป สามารถทำ Test ได้แล้ว แต่วิธีนี้ก็ยังมีข้อจำกัดคือ ไม่สามารถทำการทดสอบ private Method ได้ จะเจออาการ BadImageFormatException ซึ่งก็คาดเดาได้ว่าเกิดจากกระบวนการพิเศษที่ใช้ล้วงลูกนั่นเอง ก็หวังว่าจะมีการปรับปรุงแก้ไขกันต่อไปให้สามารถใช้งานได้

ตามล่า สด.๘

Submitted by ezybzy on Fri, 2012-01-27 - 00:29

ผมทำเอกสารสำคัญในชีวิตหายไปหลายชิ้น ไม่ว่าจะเป็นสมุดบัญชีธนาคาร, เอกสารหลักฐานการศึกษา (ยังดีที่ยังเหลือใบปริญญานะ), และเอกสารทางการทหาร ตอนนี้ก็จะขอเล่าว่าการติดตามเอกสารทางการทหารกลับมาต้องทำอะไรบ้าง

สำหรับเอกสารที่ผมไปตามล่าก็คือ สด.๘ ซึ่งใช้ยืนยันว่าปลดประจำการเป็นกองหนุนไปแล้ว

ขั้นตอนแรกที่เราทราบกันดีคือ ไปแจ้งความ ผมก็ไปแจ้งความตามปกติซึ่งตรงนี้เจ้าหน้าที่ตำรวจก็ช่วยเราไม่ได้มาก เพราะเขาก็ไม่ทราบว่า สด.๘, สด.๙ มันคืออะไร (ก็แน่ล่ะ พี่เรียนนายร้อยมา พี่ผ่านเตรียมทหารมา พี่คงไม่เคยไปเรียน รด. แบบพวกผมหรอกนะ) จุดนี้เราต้องเตรียมตัวให้ดีว่าเราจะแจ้งความว่าเอกสารอะไรของเราหายกันแน่ ชื่ออย่างเป็นทางการของเอกสารก็คือ “เอกสารสำคัญแบบ สด.๘” (ถ้านึกไม่ออกก็ สด.๘ ไปเลยไม่ต้องบรรยายว่าคืออะไร) แจ้งความแล้วใบแจ้งความมีอายุ 90 วัน

ขั้นที่สองไปติดต่อสัสดีที่ภูมิลำเนาทหาร ซึ่งก็คือสถานที่ที่บิดามีชื่ออยู่อาศัยนั่นเอง เผอิญพ่อผมชื่ออยู่อีกเขตกับที่ผมอยู่ ผมก็ต้องเดินทางไปสำนักงานเขตนั้น (ก็กลับไปที่ที่เคยออกเอกสารนี้ให้ผมเมื่อ 7–8 ปีก่อนนั่นแหละ) พอไปถึงก็ต้องเตรียมเอกสารดังรายการต่อไปนี้

  • รูปสุภาพ 1 นิ้ว 3 รูป
  • สำเนาทะเบียนบ้าน 2 ชุด
  • สำเนาบัตรประชาชนหน้าหลัง 2 ชุด และนำตัวจริงไปด้วย
  • สำเนาใบแจ้งความ 2 ชุด และใบแจ้งความตัวจริง
  • ค่าปรับ 1 บาท (ถ้าผมได้ยินมาไม่ผิดนะ)

เสร็จแล้วสัสดีก็จะส่งคำร้องไปยังสัสดีจังหวัดให้ดำเนินเรื่องออก สด.๘ เล่มใหม่ให้ซึ่งต้องการลายเซ็นต์หลายชื่อ ทำให้ใช้เวลาดำเนินการนานพอสมควร (เป็นเดือนเลย)

แต่ถ้าคุณจำเป็นต้องใช้เอกสารอะไรก็ตามเพื่อยืนยันสถานะทางทหารของคุณ มีอีกทางเลือกที่สัสดีแนะนำมาคือ สด.๓ ซึ่งเป็นเอกสารตัวเดียวกับที่คุณเขียนตอนคุณเรียน รด. ปี 3 นั่นเอง (ซึ่งก็มีเอกสารอีกอย่างที่คุณได้เขียนด้วยตัวเองไปแล้วตอนเรียน รด. นั่นก็คือ สด.๑) แต่สำหรับผมที่จำอะไรไม่ได้เลยว่าตัวเองมีเลขยศอะไร ผมก็ต้องไปตามล่าข้อมูลนี้มา เอกสารที่มีข้อมูลนี้นั่นคือ สด.๑ ซึ่งที่สัสดีจังหวัดหรือประจำเขตจะมีข้อมูลนี้ ซึ่งผมได้ไปคุ้ยกอง สด.๑ ที่สัสดีกรุงเทพมา (อยู่ที่สำนักเทศกิจ ตรงวัดประยูรวาส ย่านสะพานพุทธฯ) เมื่อเข้าไปครั้งแรกก็ต้องตกใจกับกองเอกสารที่อยู่ในสภาพเสียหายไปตามกาลเวลา (จ่าบอกว่า เพิ่งขนหนีน้ำท่วมมา มันก็เลยดูยังไร้ระเบียบ เพราะยังไม่มีเวลามาจัดใหม่อีกรอบ) เมื่อเจอข้อมูลที่ต้องการ ก็ทำให้ค้นหาข้อมูล สด.๓ เจอ แล้วก็ไปทำสำเนาหน้า สด.๓ ของเราออกมา

เจ้าหน้าที่ข้างในเท่าที่ผมสังเกต แต่งตัวเหมือนทหาร แต่ที่สงสัยคือทำไมป้ายชื่อบนโต๊ะที่เป็น นาย, นาง, นางสาว แทนชั้นยศล่ะ? มีแต่สัสดีตัวจริงที่นั่งอยู่โต๊ะในสุดที่ขึ้นยศทหารจริง ๆ (ตอนนี้เป็น พ.ต. ที่มาช่วยราชการ) อาจจะเพราะว่ายศเขาไม่สูงพอที่จะเอามาขึ้นเป็นคำนำหน้าแทนก็ได้ (เท่าที่ทราบคือนายร้อยขึ้นไปถึงจะนำยศมาเป็นคำนำหน้าชื่อแทน ยศนายสิบ, จ่า ถ้าไม่ได้รับราชการทหารมักจะไม่นิยมนำมาเป็นคำหน้าชื่อ เช่นกรณีของผู้สำเร็จ รด. ปี 3 ทั่วไปที่ได้ยศเป็นสิบเอก)

ตอนนี้ผมก็จะไปดำเนินเรื่อง สด.๘ ให้เสร็จสิ้นก่อน ส่วน สด.๓ ก็สามารถนำไปใช้สมัครงานได้ (อย่างน้อยเขาก็เห็นว่าเราปลดเป็นกองหนุนแล้ว ไม่ได้มีภาระว่าต้องถูกเรียกตัวเข้าประจำการรับการฝึกประจำปีในเร็ววันนี้) แล้วก็ต้องจำไว้ว่า เอกสารสำคัญเก็บให้ดี อย่าให้เผลอถูกนำไปทิ้งได้อีก!

Tags

Siri + Thunderbolt Display + AppleTV

Submitted by ezybzy on Sat, 2012-01-07 - 15:15

มีข่าวลือว่า Apple กำลังซุ่มทำโทรทัศน์ ซึ่งจะมี Siri ผนวกเข้าไปด้วย

โดยส่วนตัวหากย้อนมามองผลิตภัณฑ์ของ Apple ผมคิดว่ามันน่าจะเอามารวมกันได้นะ Thunderbolt Display ที่มีฟังก์ชั่นการทำงานของ AppleTV ซึ่งผนวก Siri เข้าไป อาจจะถึงขั้นมี Slot Loading BlueRay เข้าไปด้วย (อันหลังนี้ไม่ค่อยหวังนะ)

แต่ขนาดจอมันจะซักเท่าไรกันล่ะ? 50 นิ้วกับความละเอียด 2560 ผมคิดว่าภาพที่ได้มันน่าจะหยาบเกินไป ซึ่งก็น่าจะเป็นให้จอตัวนี้ถูกแยกมาเป็นผลิตภัณฑ์ทดลองอีกหนึ่งตัว ที่มีรูปลักษณ์ล้อกับ Thunderbolt Display (ฐานแบบปัจจุบันจะรองรับน้ำหนักไหวไหมนะ?) แต่ราคาอาจจะไม่เป็นมิตรซักเท่าใดนัก

Tags