Sunday, October 19, 2014

Transfer Files from Mac to iOS and Android Device

Using Cable for big files
Use iFunBox for transfer to iOS
Use Android File Transfer for transfer to Android


Wireless
Goodreader for iOS
Airdroid for Android (no need to be on same WiFi)


Saturday, March 1, 2014

My Foobar Config

After comparing to Mediamonkey, I feel foobar is clearer and brighter. Here's the components and how I config the foobar2000 to get the look below.


Components used:
- foo_uie_esplaylist
- foo_queuecontents
- foo_ui_columns

Then using Columns UI and setup as shown below
$replace(%path%,%filename_ext%,)* 

And use foo_out_wasapi for best sound quality

Saturday, January 25, 2014

Apple TV Connect to Plex Media Server via Plex Connect

I followed these 2 links.

https://github.com/iBaa/PlexConnect/wiki/Install-Guide-Windows
https://langui.sh/2013/08/27/appletv-ssl-plexconnect/

The first one provide a good summary of what to do. The second one talk clearly about how to create the certificates. Anyway I've summarized what I did here.

Environments : 
Plex Media Server (PMS) on Windows 7 PC
Apple TV 3rd Generation with software version 6.0.2

Software you needed :
1. OpenSSL for creating the related certificates for SSL session between Apple TV and the PMS server. Follow the link and select the appropriate version for your Windows 7 (32 bit or 64 bit). You might need Visual C++ 2008 Redistribute which you can download from the same page
2. Python 2.7.x This is needed because PlexConnect needs it to run. Need to be this version as other versions will not work.
3. PlexConnect. This is basically a customized services listening to request from Apple TV when you select "Trailers"  and talk to PMS on the PC
Procedures :
1. Install OpenSSL, Python and PlexConnect. For PlexConnect, just unzip and copy to Program Files folder.
2. Run cmd.exe as administrator. Go to your [OpenSSL Path]\bin directory and then enter the followings commands
set OPENSSL_CONF = C:\[installed path]\bin\openssl.cfg
openssl.exe req -new -nodes -newkey rsa:2048 -out C:\trailers.pem -keyout C:\trailers.key -x509 -days 7300 -subj "/C=US/CN=trailers.apple.com" -config openssl.cfgopenssl.exe x509 -in C:\trailers.pem -outform der -out C:\trailers.cer
type C:\trailers.key >> C:\trailers.pem
3. Move trailers.pem and trailers.cer from C:\ to your [PlexConnect Path]\assets\certificates folder
4. Run PlexConnect by double-click PlexConnect.py Click allow access when Windows Firewall alert dialog box is shown
5. Note the IP_Self which is the IP of the PMS server. You need to make this permanent for this server
6. Now go to Apple TV. Set DNS to the IP of the PMS Server. Under Send Data to Apple, set to No. Then click Play button and add profile and enter
http://trailers.apple.com/trailers.cer
7. Run PMS. Select Trailers App on Apple TV.

Tuesday, December 10, 2013

Adjustments for Macbook with External Monitor

Read and download EDID overwrite file below to force RGB mode. The file is for U2713H and U2713HM. There is also a long discussion about this there.

Dell U2713H on Mac: forcing RGB mode instead of YCbCr


Monday, April 22, 2013

Load Balance Mechanism - Triangulation

การทำงานของ Load Balance แบบที่ใช้กันทั่วๆไปมีแบบต่อตรงอยู่ในลักษณะเป็น Gateway และแบบ Triangulation นอกจากนี้ยังเพิ่มการทำ NAT ไปด้วยได้

แบบอยู่ในลักษณะเป็น Gateway จะเป็นดังรูปแรก

ในแบบนี้จะมีขั้นตอนการทำงานดังนี้ 
  1. traffic ที่มาจาก network ข้างนอก (4.3.2.1) จะวิ่งเข้ามายัง VIP(Virtual IP) ของ Server Farm (6.6.6.100) 
  2. load balancer จะเลือก server ใน farm ที่จะ service request อันนี้ตาม algorithm ที่ set ไว้ ในตัวอย่างนี้จะเลือก server 192.168.1.10
  3. load balancer จะเปลี่ยน destination ip และ destination mac ของ frame ให้เป็นของเครื่อง 192.168.1.10 แล้วส่งออกไป (source เหมือนเดิม)
  4. server reply ข้อมูลกลับโดย destination ip เป็น 4.3.2.1 ซึ่งเป็นคนละ network ทำให้ server ส่ง frame กลับไปที่ default gateway ซึ่งในกรณีนี้ต้องให้เป็น ip ของ load balancer
  5. load balancer เปลี่ยน source ip ของ packet กลับให้เป็น 6.6.6.100 โดย destination ip เป็น 4.3.2.1 เหมือนเดิม แล้วส่งกลับไปยัง client ที่ network ข้างนอก

อีกแบบหนึ่งคือแบบ Triangulation จะเป็นดังรูปด้านล่างนี้

แบบนี้จะมีขั้นตอนการทำงานดังนี้
ขั้นที่ 1 และ 2 เหมือนเดิม โดย server ที่ load balancer เลือกในตัวอย่างนี้คือ 6.6.6.10
3.  load balancer จะไม่เปลี่ยน destination ip 6.6.6.100 แต่จะเปลี่ยนเฉพาะ destination mac ของ frame ให้เป็น mac address ของเครื่อง server เบอร์ 6.6.6.10 ทำให้ frame เดินทางไปที่ server ได้
4.  ที่เครื่อง server จะต้องทำการ setup loopback interface ที่มี ip 6.6.6.100 ไว้ และต้อง make sure ว่าไม่มีการ broadcast ในส่วนของ arp ออกไป ที่ต้องทำแบบนี้เพราะถ้าไม่มี interface ที่มี ip 6.6.6.100 ไว้ พอ network interface แกะ frame ออกมา แล้วเห็นว่า ip address ที่ packet ต้องการส่งถึง เป็น 6.6.6.100 แล้วตัวเองไม่มี ก็จะทำการ drop packet ทิ้งไป ไม่ส่งต่อให้ layer บน
5.  เครื่อง server reply packet กลับ โดย set destination ip เป็น 4.3.2.1 ส่วน source ก็เป็น 6.6.6.100 แล้วส่งไปที่ default gateway ซึ่งในกรณีนี้เป็น  Gateway Router อีกตัวหนึ่ง

การทำงานแบบนี้เหมาะกับ traffic ในลักษณะ streaming เพื่อไม่ให้ไป load หรือ bottleneck ที่ load balancer และยังใช้กับ ในกรณี client อยู่ใน network เดียวกับ server ได้ด้วย เพราะ ในกรณีนี้ ตอน server reply กลับ จะวิ่งไปหา client ตรง ไม่กลับไปที่ load balance อีก เพราะเป็น network เดียวกัน

นอกจากนี้ ยังสามารถทำ NAT ที่ load balance ได้ด้วย เพื่อ force ให้ traffic ต้องวิ่งกลับไปที่ load balancer ดังรูปด้านล่าง โดยเป็นการทำ Client NAT หรือ Source NAT (ในรูป ip 6.6.6.50 ต้องเปลี่ยนเป็น 192.168.1.50 - รูปผิด) ทั้งนี้โดยหน้าที่ของ load balancer ตามรูปข้างล่างก็เหมือนเป็นการทำ server NAT ไปด้วยกลายๆ