Category Archives: Lab

dnsmasq

dnsmasq is the default DNS resolver if you use NetworkManager. It runs pretty well most of the time. When it doesn’t, you would not be able to access the Internet if you need to resolve names.

I’m not a fan of dnsmasq, and if you – like me – want to disable it, just edit

/etc/NetworkManager/NetworkManager.conf

and remove/comment

dns=dnsmasq

Restart NetworkManager, it will use traditional faithful method of /etc/resolv.conf.

Getting “A” from Qualy’s SSL

Qualys SSL Labs provides a SSL Server Test for awhile. You can rate your web site at https://www.ssllabs.com/ssltest

To get rating “A”, there are few straightforward tricks:

  1. Disable all versions of SSL protocol. Enable only TLS. e.g.,
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2
  2. Choose only strong ciphers, e.g., you’ll sacrifice some very old clients.
    ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
  3. Use HSTS, e.g.,
    add_header Strict-Transport-Security max-age=31536000;

Optionally,

ssl_dhparam /etc/ssl/private/dhparam.pem;
ssl_stapling on;
ssl_stapling_verify on;

Create an aligned partition

An aligned partition gives you the best read/write performance, but you will have to sacrifice some space to align your partition.

To create,

# parted -a optimal /dev/sda mkpart primary 0% 100%

And you can check if it is aligned,

# parted /dev/sda align-check optimal 1

NGINX HTTP Basic Authentication with LDAP

First,  install libpam-ldap

# apt-get install libpam-ldap

Config ldap:// properly. This will add ldap backend to PAM.

Now, create a file /etc/pam.d/nginx

@include common-auth
@include common-account

This will add nginx service in PAM.

Then, config your nginx to enable HTTP basic authentication using auth_pam and PAM service name “nginx”

location /someplace {
  auth_pam "Restricted Area";
  auth_pam_service_name nginx;
}

Restart nginx. Done.

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

Karmic Koala – Bluetooth – PAN

เพิ่งรู้ว่า Ubuntu 9.10 มัน add bluetooth device แล้วตั้งให้ใช้ต่ออินเทอร์เน็ตได้ด้วย

ก่อนอื่น pair device ให้ได้ก่อน จากนั้นสำหรับ phone profile ตอนท้ายจะมี checkbox เพื่อเลือกว่าเอาไปต่ออินเทอร์เน็ตได้

แล้วมันจะโผล่มาที่ Network Manager เลย .. :D

กรณีข้าน้อยเป็น WM6 ก็เรียก Internet Sharing มารอ จากนั้นคลิ้กต่อจาก Network Manager ได้เลย ไม่ต้องลำบาก pand -c xx:xx:xx:xx:xx:xx อีกแล้ว

Yes, DTAC runs IPv6 too.

Netbook and H.264 HD Video

Cannot playback H.264 HD Video on your netbook ? Try mplayer-mt. It is multithreaded version of mplayer that allows to utilize multiple CPUs/cores. For Ubuntu people, try mplayer-mt from RVM ‘testing’ PPA repos. The others, try google or compile from git/svn.

After install mplayer-mt, add a line in ~/.mplayer/config:

lavdopts=skipframe=default:skiploopfilter=all:fast=1:threads=2

Or, run mplayer-mt on command line, e.g.:

$ mplayer-mt
  -lavdopts=skipframe=default:skiploopfilter=all:fast=1:threads=2
  path/to/media/file

Using XV should utilize about 2-4% of the Atom CPU to playback on 1024×600 fullscreen resolution. Using ALSA should eliminate PulseAudio overhead. The skipframe and skiploopfilter dramatically reduce CPU utilization required to decode H.264 video stream (it may introduce visible artifacts though). The threads=2 enables mplayer-mt to utilize multiple CPUs/cores.

With this setup, my netbook (Acer Aspire One D150 – Intel Atom N280 1.66 GHz, 2 GB RAM, GMA950) is capable to smoothly playback 4000 kbps H.264 video @ 1280×800 with 640 kbps AC3 audio. No "Your system is too SLOW to play this!" message. Cool eh ?

In fact, something like 6 GB BluRay-rip movies in MKV format (i.e. 6000 kbps H.264 video @ 1280×800 with 1536 kbps DTS audio) are also playable on the netbook. Full HD is also possible. To playback such higher bitrates, mplayer-mt may drop some frames and complain "Your system is too SLOW", but it will try to keep A-V sync’ed, producing acceptable video quality.

Using skipframe=nonref can reduce CPU utilization even more, but video may be jerky. The skipframe=bidir / nonkey / all also reduces CPU utilization but will seriously degrade video to something beyond recognition.

YMMV, so try it yourself. Install mplayer-mt on your netbook and have fun watching HD (or even Full HD) video :D

For encoding/transcoding, yes, mencoder-mt does exist.

JavaScript Benchmark

ทดสอบโดย http://celtickane.com/labs/web-browser-javascript-benchmark บน Acer Aspire One D150 (Atom N280 @ 1.667 GHz) ใช้ Linux 2.6.30, Ubuntu 9.04

  • Firefox 3.0.10
  • Firefox 3.5b4pre (Shiretoko)
  • Opera 10.0 build 4102
  • Google Chrome 3.0.183.1

ได้ผลลัพธ์เป็นเวลาในการประมวลผลในแกน Y หน่วย milliseconds ทดสอบ10 ครั้งแล้วเอาค่าเฉลี่ยมาทำกราฟ