Tag Archives: linux

Leap Second

ไม่ได้เช็คเสียนาน วันนี้เข้าไปดู ข้อมูลล่าสุด ที่ International Earth Rotation and Reference System Service สรุปว่า

NO positive leap second will be introduced at the end of December 2011.

สรุปปลายปีนี้ Time Server  ก็ไม่ต้องทดวินาที

.. ครั้งสุดท้ายที่มีการทดวินาที คือ 31 ธ.ค. 2008

Leap Second (อธิกวินาที) มันคืออะไร ? ทำไมต้องทด อ่านที่ http://en.wikipedia.org/wiki/Leap_second

DebConf 11 – DebConf Day 3

Topics in the morning were about Debian derivatives. They were both lecture and BoF. It was good to see collaborations among Debian and downstream distros like Ubuntu and the others. Then, It was about blending Debian – a flavor for different interests like education, medical, or something else.

The lunch, the table was unintentionally turned out to be Asian table with 2 Taiwanese, 2 Thais, 1 Japanese, and 1 Indian. Totally, AFAIK, there are 11 Asian people in DebConf. Well, I thought I got troubles about our visa, but for Taiwanese, it’s worse. Taiwan, like Thailand, does not have BiH embassy. So, they have to get a visa from the embassy in Beijing. That’s impossible for taiwaneses. So, the DC11 local team had to get document from the government to issue visa for them at the border (pretty much like our case, actually).

For the Indian guy, well there is the embassy in New Delhi, he just had to travel like 600 km from his home. And when he arrived, the embassy requested for an official document, which he did not have one at that time. It took him one and half month, traveled back and forth, to get his visa issued.

After lunch, Paul Liu asked if I wanted to take a walk around the city.The weather was good. I mean, yes, it was a bit hot, but better than raining. So, I decided to join and burn some calories (dang!) It was about an hour or so, walked around the museum, the fortress, the river, then back to the conference venue.

I attended the talk about linux kernel given by the kernel team of Debian, about how they handle the kernel. We had conference banquet, NGO DIVA treats.

Conference banquet was on 14th floor of a building in a restaurant name "Integra". View was good, food was good, Wouter (nbd package maintainer) played flute on the stage. That was impressive ! But, I was tired and did not feel well. So, walked back to the hotel, realized that no water from the tap in the hotel. Well, crashed on my bed anyway.

Waked up this morning (UTC+2), a good news from P’Thep that the TH Sarabun font was relicensed and is now GPL, Yay !

Setting Up Google SketchUp Pro 8 on Linux

วันก่อนลง SketchUp 8 ตัวฟรีไป ก็ไม่ค่อยมีอะไรต่างไปจาก 7 เท่าไหร่ .. แถมฟีเจอร์เด่นที่อยากใช้คือ Solid Tools จะมีเฉพาะตัว SketchUp Pro .. อย่ากระนั้นเลย .. Google ให้ Instructor ขอ Education License ได้ฟรี เลยสั่งซื้อ (ในราคา 0 USD) พร้อมกับส่ง approve doc. ไป .. เสร็จสรรพก็ได้ Education License สำหรับ Google SketchUp Pro 8 มา

ขั้นต่อไปคือติดตั้งกับ WINE .. ปรากฏว่ามันใช้ท่ายากกว่าที่คิดไว้นิดหน่อย คือมันต้องมี .NET Framework 2.0 ก่อน .. (เกลียดมันจริงๆ)

.. แต่ไม่เป็นไร .. บน WINE ก็ติดตั้ง .NET Framework ได้ไม่ยาก ด้วยแพ็คเกจ winetricks

$ winetricks dotnet20

แล้วก็กดๆๆ ไปเรื่อยๆ เดี๋ยวมันก็ลงเสร็จเอง จากนั้นก็ค่อยลง Google SketchUp Pro 8

$ wine GoogleSketchUpProWEN.exe

ถ้าไม่มี license มันจะให้ใช้งาน full feature 8 ชั่วโมง .. ก็กรอก license ให้เรียบร้อย แล้วก็ รอมัน crash เพื่อแก้ OpenGL เหมือนกับตัวฟรี

แล้วก็จะได้ใช้ฟีเจอร์ Solid Tools ที่สั่ง union, intersect, subtract, trim, split ได้ .. import/export DWG/DXF 2010 ได้

ส่วน LayOut ตอนนี้ยังใช้บน WINE ไม่ได้ .. รอกันต่อไป :P

Google SketchUp 8

Google SketchUp 8 รีลีสไปเมื่อวานนี้ ลองติดตั้งบน WINE สักหน่อย

% wine GoogleSketchUpWEN.exe

.. การติดตั้งราบรื่นดี ไม่มีอะไรจุกจิก

เรียกใช้งานครั้งแรก

เลือก template อะไรก็ได้เพื่อเริ่มใช้งาน โปรแกรมมันจะ crash .. อาการนี้เป็นปัญหา OpenGL rendering เหมือน SketchUp 7 วิธีแก้ก็เหมือนกับเวอร์ชัน 7 คือ ใช้ regedit เข้าไปแก้ใน HKCU\\Software\\Google\\SketchUp8\\GLConfig\\Display คีย์ HW_OK จาก 0 เป็น 1

% regedit

รันอีกครั้งก็จะใช้งาน SketchUp 8 บน WINE on Linux ได้ละ

More screenshots: 1 2

URL auto completion in Google Chrome

เพิ่งสังเกตเห็นว่า URL auto completion ของ Google Chrome ไม่ได้ทำแค่ URL auto completion แต่ทำตัวเป็น Calculator/Unit Converter ด้วย ..

ตัวอย่างเช่น พิมพ์ “600 ft” มัน auto complete เป็น “= 182.88 meters” ได้

เท่าที่ sniff ดู คือมันส่ง HTTP GET ไปที่ Google จริงๆ ไม่ได้คำนวณโดยตัว Google Chrome เอง

ก็เลยลองอย่างอื่นด้วย เช่น

และ

/me ตอนที่ทดสอบใช้ Google Chrome 6.0.466.0 dev / Linux

Updating AOD150 BIOS to v1.13

หนึ่งในปัญหาของ Acer Aspire One D150 เวลาใช้กับลินุกซ์ (ใดๆ) คือ ถ้าใช้งานโดยไม่ปรับแต่งอะไรเลยมันจะทำงานที่ 1.33 GHz แทนที่จะเป็น 1.66 GHz ตาม spec ของ CPU Intel Atom N280 โดยที่ CPU frequency scaling จะปรับให้ CPU ทำงานที่ 800 MHz – 1.33 GHz … ถ้าต้องการใช้งานเต็มประสิทธิภาพต้องเติมเคอร์เนลออปชัน acpi_no_auto_ssdt (ลองผิดลองถูกกับ ACPI อยู่หลายครั้ง ออปชันนี้กระทบน้อยสุดแล้ว) ซึ่งจะได้สัญญาณนาฬิกา 1.66 GHz เต็ม แต่จะใช้ CPU frequency scaling ไม่ได้

พยายามหาต้นตอของปัญหานี้ตั้งแต่ซื้อเครื่องเมื่อปีที่แล้ว พบว่าปัญหาอยู่ที่ข้อมูลในตาราง DSDT (Differentiated System Description Table) ของระบบ ACPI .. ทางแก้ มีสองทางคือ สร้าง custom DSDT แล้วสั่งให้เคอร์เนลโหลดมาใช้งานแทน DSDT ของระบบ หรืออีกทางคือ รอ Acer อัปเกรด BIOS … ทั้งสองกรณี เป็นท่ายากทั้งคู่ ขี้เกียจ .. เลย workaround ใช้งานแบบไม่มี CPU frequency scaling ไป จะว่าไปก็ไม่ได้เดือดร้อนอะไรเพราะเสียบปลั๊กไฟใช้งานเกือบตลอดอยู่แล้ว

แต่ในที่สุด Acer ก็อัปเกรด BIOS และแก้ปัญหาที่ว่านี้จนได้ .. เพราะ BIOS รุ่นเดิมไปใช้ MS Windows 7 ก็จะทำงานแค่ 1.33 GHz เหมือนกัน ก๊าก ! …. ถึงว่าสิ ! ถ้าเป็นปัญหาเฉพาะลินุกซ์ .. Acer คงไม่ทำ BIOS ใหม่ให้หรอกมั้ง เพราะรุ่นนี้ไม่มีเวอร์ชันลินุกซ์วางขาย … สรุปเลยเป็นผลพลอยได้จาก MS Windows 7 ซะงั้น .. ฮาๆๆ

พอโหลดไฟล์ BIOS มา ก็มีโปรแกรมสำหรับแฟลช BIOS ใหม่ สำหรับ DOS และ Windows 32 bits … แล้วจะทำไงล่ะนี่ เครื่องที่ใช้อยู่ ไม่มีทั้งสอง OS ! .. พยายามจะทำ Windows XP Live USB บนลินุกซ์ก็จะใช้ท่ายากเกินไป .. จะหาฮาร์ดดิสก์ Windows XP มาเสียบใช้ชั่วคราวก็ต้องตามหาไดรเวอร์ .. สุดท้าย เลยหันมาหา FreeDOS โดยเอา UNetbootin ทำ FreeDOS Live USB แล้วก๊อปปี้ไฟล์สำหรับแฟลช BIOS สำหรับ DOS ลงไปด้วย เสร็จสรรพก็บูตจาก USB …

บูตเสร็จก็จะปรากฎ prompt เป็น A: เป็นไฟล์ในอิมเมจของ FreeDOS และถ้าเปลี่ยนไปไดรว์ C: ก็จะเห็นไฟล์ที่ก๊อปไว้ใน USB

รันแบตช์ไฟล์ เข้าโปรแกรมแฟลช ก็จะเริ่มทำงานเลย ไม่มีรอถาม (Y/N) ให้เปลี่ยนใจ … เลยทำได้แต่ภาวนาว่าอย่าให้เกิดปัญหาอะไรขัดจังหวะโปรแกรมแฟลช

… แฟลชสำเร็จ เครื่องก็รีบูต ..

เข้าเมนู GRUB2 เอา acpi_no_auto_ssdt ออก .. Ctrl-X บูต .. สำเร็จ ! ในที่สุดก็มาใช้ Intel Atom N280 ใน Acer Aspire One D150 ก็ทำงานได้ที่ 1.00 – 1.66 GHz แล้ว .. ใช้งานได้สมบูรณ์เสียที :D

mirror.kku.ac.th

mirror.kku.ac.th เป็นหนึ่งในผลจากงาน Thailand Mini-DebCamp 2010 ที่จัดกันไปเมื่อเดือนมีนาคมที่ผ่านมา เหตุจากที่เรื่อง mirror เป็นหนึ่งในหัวข้อที่จะหารือกัน ซึ่งก็ได้โอกาสดีที่ Andrew Lee (mirror admin ของ ftp.tw.debian.org) กับ อ.ฉัตรชัย @ CoE PSU (mirror admin ของ ftp.th.debian.org) เข้าร่วมกิจกรรมของค่าย เลยเริ่มมีแนวคิดว่าน่าจะมี Debian mirror เพิ่มขึ้น ไม่ใช่ว่าของเดิมไม่ดี แต่ว่า mirror นี่ ยิ่งมีหลายแห่งยิ่งดี ผู้ใช้จะได้เข้าถึงได้ง่ายและเร็วขึ้น

ได้ความตามนั้นก็เลยเมลขอเซิร์ฟเวอร์ว่างๆ จากศูนย์คอมพิวเตอร์ มข. เพืื่อเซ็ต mirror เผื่อว่าถ้ามี workshop ในช่วง DebCamp จะได้เซ็ตใช้งานจริงใน มข. ไปเลย สามวันต่อมาก็ได้รับเมลข่าวดีว่าได้เครื่องทำ mirror.kku.ac.th แล้ว เป็น Intel Xeon Quad-Core + 4 GB RAM + Dual GbE ต่อกับ 3-TB partition บน SAN

แต่กว่าจะได้เซ็ตจริงก็เป็นสัปดาห์หลังจากเสร็จค่าย โดยเริ่มเซ็ตตามที่หน้า setting up a debian archive mirror บอกไว้ เสร็จสรรพก็เริ่ม rsync debian archive มาจาก ftp.tw.debian.org เหตุเพราะ apt-spy มันรายงานว่า ftp.tw.debian.org เป็น mirror ที่ให้ transfer rate สูงสุด (เร็วกว่า ftp.th.debian.org ที่อยู่บน UniNET backbone เหมือนกัน งงซะ!) .. พอลองวัดแบนด์วิธจริงๆ แล้ว ปรากฏว่า ftp.th.debian.org มีอัตราส่งที่ราบรื่นกว่า และสูงกว่า ftp.tw.debian.org เล็กน้อย เลยเปลี่ยนมา rsync จาก ftp.th.debian.org แทน ซึ่งเป็นการลดการใช้แบนด์วิธต่าวประเทศซ้ำซ้อนด้วย (ftp.th.debian.org ก็มี upstream เป็น ftp.tw.debian.org)

เวลาผ่านไป 5 วัน ก็ sync รอบแรกเสร็จ ได้มาทั้ง debian archive, debian volatile, ubuntu archive, และ ubuntu release (CD images).

จากนั้นก็เริ่มทำ push mirror เพื่อให้อัปเดตอัตโนมัติโดยไม่ต้อง cron เป็นช่วงๆ .. งานนี้ได้ Andrew ช่วย setup push ส่ง ubuntu มาให้ และ อ.ฉัตรชัย setup push สำหรับ debian จาก trace ของ debian archive บน mirror.kku.ac.th ก็จะเห็นเวลา update ตามลำดับนี้

  1. ftp-master.debian.org
  2. syncproxy.wna.debian.org
  3. ftp.tw.debian.org
  4. ftp.th.debian.org
  5. mirror.kku.ac.th

หรือ จะดูที่ debian mirror checker ก็ได้

ส่วน trace ของ ubuntu archive จะประมาณ

  1. cocoplum.canonical.com
  2. syowa.canonical.com
  3. jackass.canonical.com
  4. ftp-osl.osuosl.org
  5. ftp.tw.debian.org
  6. mirror.kku.ac.th

เรื่องของ ubuntu mirror ทำเสร็จก็ทิ้งไปนาน เพราะช่วงเมษาฯ เดินทางไปเกือบครึ่งเดือน เลยลืม register mirror.kku.ac.th เป็น official ubuntu mirror จนกระทั่ง Andrew เมลมาเตือน + cc: Jonathan Davies (ubuntu mirror admin.) ให้ด้วย เลยรีบ register อย่างด่วน สุดท้ายก็ได้สถานะ official สำหรับ archive ก่อน และ CD image ในภายหลัง ก่อนวัน release Ubuntu 10.04 ไม่ถึง 2 วัน

เวลานี้ถ้าเข้าหน้า “Download Ubuntu” ที่ ubuntu.com จะสามารถเลือกดาวน์โหลดจาก “Thailand” ได้ ซึ่งจะ redirects มาที่ mirror.kku.ac.th. :)

สถิติ หลัง Ubuntu 10.04 released ได้ 24 ชั่วโมง นับเฉพาะโหลด Ubuntu 10.04 ISO image เจอ hit ไปมากกว่า 550,000 ครั้ง จาก 2901unique IP addresses ถ้าดูจาก referrer ส่วนใหญ่มาจากหน้า “Download Ubuntu” นั่นแหละ

ช่วงรีลีส 10.04 นี่ mirror.kku.ac.th รับโหลดเยอะ บวกกับไม่ได้จูนอะไรเลย ทั้งเคอร์เนล TCP/IP และเว็บเซิร์ฟเวอร์ ..ผลคือ mirror.kku.ac.th เกิด errors ราว 10% ของ requests ทั้งหมด ก็เลยได้บทเรียนมานั่งจูน ปรับโน่นนั่นนี่ไปเรื่อย ก็หวังว่ามันจะให้บริการโดยไม่ขายหน้าคนอื่น :P

สุดท้ายนี้ต้องขอบคุณ ศูนย์คอมพิวเตอร์ มข. เจ้าของเซิร์ฟเวอร์และสตอเรจ และเพื่อนๆ ในงาน DebCamp หลายคนที่กระตุ้นและช่วยเหลือจนมี mirror.kku.ac.th :)

Load test on mirror.kku.ac.th

# ab -n1000 -c1000 http://mirror.kku.ac.th/ubuntu-releases/10.04/ubuntu-10.04-desktop-i386.iso

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking mirror.kku.ac.th (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software:        lighttpd/1.4.19
Server Hostname:        mirror.kku.ac.th
Server Port:            80

Document Path:          /ubuntu-releases/10.04/ubuntu-10.04-desktop-i386.iso
Document Length:        733419520 bytes

Concurrency Level:      1000
Time taken for tests:   553.580 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      733419778000 bytes
HTML transferred:       733419520000 bytes
Requests per second:    1.81 [#/sec] (mean)
Time per request:       55358.013 [ms] (mean)
Time per request:       55.358 [ms] (mean, across all concurrent requests)
Transfer rate:          1293814.95 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    2   0.8      2       5
Processing: 39668 55196 5174.5  54821   66715
Waiting:        0    3   6.6      1      24
Total:      39671 55197 5174.1  54823   66717

Percentage of the requests served within a certain time (ms)
  50%  54823
  66%  57371
  75%  57856
  80%  58134
  90%  58885
  95%  66254
  98%  66476
  99%  66611
 100%  66717 (longest request)

Thailand Mini-DebCamp 2010 (EN)

(Yep, I should blog about Thailand Mini-DebCamp 2010 in English .. it turned out to be more like memo, not a blog .. :P)

The Beginning

It started just before Taiwan Mini-DebConf 2009 in September 2009. The original idea was to organize a DebConf, and the Mini-DebConf would provide some experience for us. So, I discussed with my boss about the idea to organize a Debian event in Thailand. He agreed and supported me to attend the Mini-DebConf in Taiwan. In Sep 2009, I, Thep, Neutron and Prach attended the Mini-DebConf together. There were many new things we learned from the Mini-DebConf and from our new friends. Finally, we decided to organize a hackfest-like camp. It became Thailand DebCamp. 2009.

Back from Taiwan, I and Thep started to write the Thailand DebCamp 2009 wiki page, and also gathered people to help us organizing the event.

Developing the Camp

Since the beginning, we tried to make this event to be community-driven; organized by community to serve community\’s needs. I and Thep emailed all FOSS people we known, informed about our event and asked if the wanted to volunteer. We used Thai Linux Woring Group (TLWG) – a loosely-coupled group of FOSS people in Thailand as an organizer and also for branding. TLWG people joined. We have been passed through 5 meetings on IRC to decide things from sponsorships to souvenirs. We decided to organize the event in March 13-19 2010 in KKU, with budget around THB250,000 to support about 40 participants. The wiki page has been moved/renamed to Thailand Mini-DebCamp 2010.

However, TLWG is not organization or foundation that can request for sponsorships. So, I asked KKU\’s Computer Center (KKUCC) for help. KKUCC was the logical choice for many reasons: they have financial personels, capable to manage projects, and to ask for financial supports. That\’s why many management things were in my hands.

I stared writing a proposal to organize Thailand Mini-DebCamp 2010 in KKU, with helps of Thep to revised and polished. The proposal went to the president of KKU, who approved the project. With the approval, I can now ask for financial supports from external sources. I sent the proposal to ask for financial supports from IMA/NECTEC (through Krich N.), SIPA (through Sira N.), Sakdibhornssup Foundation (also through Sira N.). I also contacted Google (Thailand) and IBM (Thailand). IMA, SIPA, Sakdibhornssup responded but finally only IMA granted a financial support for the camp. Luckily, I met KKU vice president for research and technology transfer in a meeting. He suggested me to ask for financial supports from KKU Science Park, which quickly granted and transfered money to KKUCC for support camp expenses.

The Busy Period

For this 2010, late February and early March was surprisingly busy for me: end of academic year, examinations, scoring, grading, meetings, invited talks, my girlfriend graduation ceremony (also the rehearsal, both in Bangkok !), and the Mini-DebCamp. It was tired but also fun to plan and manage them all :)

Fortunately, KKUCC has a strong and enthusiastic financial personels. In March 2, I had a 20-minute meeting to tell them what we (TLWG) planned to do. The next day, I sent artworks for banners, caps, T-shirts, bags to them in the morning. Afternoon, they informed me that meals, rooms, buses, travel expenses, shirts, caps, bags, etc. were all set, and would be ready in March 11. It was beyond my expectation. I was like \"Whoa, how can they did all that in one day ??!\" .. Kudos!

A week before the event was time for confirmation. I asked Thep to help me (actually, Thep helped me almost everything I alone cannot do). Then, it was another fun part: travel arrangements. For Thai participants, there were not much problems. But for foreign people, it could be big problems. So, I and Thep thought about getting someone to pick up Paul, Yabuki, Ueno, and Andrew. from the airport in Bangkok so that they all could travel to Khon Kaen together. With helps from TLWG members at NECTEC, the travel arrangment went well.

March 12:, I, Thep, Neutron, and Deu (Neutron\’s younger brother – Deu is a short from Deuterium!) went to the venue to prepare things. We was suprised by access point installations (see pic). Funny! Neutron got name tags from the photo shop. They printed in a wrong size ! .. No choice, ordered to reprint (different shop!). Afternoon, Abdull, Prach and two participants came to give their hands. Evening, the first batch from NECTEC came with Paul, Yabuki, and Ueno. We went out to have dinner in a restaurant inside the campus, and the the first social party with 5 different brands of beers.

The Mini-DebCamp

March 13: I went out to buy cups from a wholesale store (Makro). Managed to buy all 34 cups they had. Planned to prepare everything before the opeing ceremony at 10am . The VP came to give an opening speech earlier than I expected, so I improvised. Started with an opening ceremony, introduced staffs, then had a coffee break. Prepared a registration and temporary accounts form during the break. Prach and Neutron helped to distribute passwords. Next, setup bags (Prach, and Somdej helped), and finally distributed T-Shirts. Quite messy .. hah ! .. It was Thep again to help organizing talk schedule. Sadly, I did not have time to learn about pbuilder, cowbuilder, or others on the day. Later, we realized that we need more desktop computers. ILTI – the venue owner – helped by providing sets of computers.

March 14 – 16: The BSP. Really wished to have time to concentrate on hacking since I had my own hacking agenda, but still had to spend more time on organizing the event. On 15, Christian arrived. In the evening, we had real bug party: 5 (?) different kinds of bugs with 5 different brands of beers yet again!. For the BSP, I, Neutron, and Deu did fix a 4-year-long-IPv6-supported bug of NBD. Yay!

March 17: guys from SIPA Khon Kaen came to help for a day trip. We went to a big buddha statue on top of a hill near Ubolratana Dam. Then, had a visit around the dam. Had lunch near the dam reservoir. Came back to Khon Kaen, visited Wat Nong Waeng. Spent a short time shopping at OTOP center. Then, came back to the venue for video conference with FSIJ, Tokyo. Dinner at a BBQ restaurant. THB109, all-you-can-eat buffet !

March 18 – 19: 2-day general talks and discussions. Learned many things from those great presentations. Discussed about Debian mirror and organizing DebConf in Thailand. Tasted Debian wine Christian brought (CC: Christian: I like Debian wine more than those from France, sorry .. eheh). On 19, afternoon, Yabuki and Ueno went back to Bangkok to catch a plane to Japan next day. Evening, Christian also went back to Bangkok. The rest went to a restaurant for the farewell party with great Thai foods and spent time chatting after the meal. Eventually, it was time to say good bye.

I went back home and got some sleep. Next day, 5 AM, I drove to Ubon Ratchathani University (UBU) to give a lecture. UBU is 350 Km away from my home!

It was a long period of continuous works and travels. I was tired, but it was worth it. I have learned many things from the camp: academical, technical, people, open source culture, and how can everyone be a part of the culture. Thanks everyone to make this happened. Looking forward to participate the next !