หลีกเลี่ยงการตรวจสอบค่า null ตอนที่ 2 (ปรับจาก code คุณสมเกียรติ)

work ซึ่งใช้ try catch จับ NullPointerException
work ซึ่งใช้ try catch จับ NullPointerException
เป็นวิธีแรก ที่อ่านพบจากโพสต์ของคุณสมเกียรติ
คือ การไม่ตรวจสอบ null value ในขณะประมวลผล
แต่ใช้การ try catch ตรวจ NullPointerException
ครอบการเรียกใช้ method ไว้ ซึ่ง code ที่เปลี่ยนแปลงมีเพียง work.java
ผลลัพธ์ที่ได้คือ
1burin
Null Pointer Exception
โดย code ทั้งหมดมี 3 แฟ้มมีดังนี้
1. แฟ้มแรก คือ Work.java
public class Work {
public static void main(String args[]) {
Work job = new Work();
try { job.call(); }
catch(NullPointerException e) {
System.out.println(“Null Pointer Exception”);
}
}
void call() {
PersonDAO personDAO = new PersonDAO();
Person person1 = personDAO.getPersonByID(1);
person1.setName(“burin”);
System.out.println(person1.getID() + person1.getName());
Person person2 = personDAO.getPersonByID(11);
person2.setName(“tui”);
System.out.println(person2.getID() + person2.getName());
}
}
2. แฟ้มที่สองคือ PersonDAO.java
public class PersonDAO {
public Person getPersonByID(int personID) {
Person person = null;
if (personID < 10 && personID > 0) {
person = new Person();
person.setID(personID);
}
return person;
}
}
3. แฟ้มที่สามคือ Person.java
public class Person {
private int id;
private String name;
public void setName(String s) { name = s; }
public void setID(int i) { id = i; }
public int getID() { return id; }
public String getName() { return name; }
}
ตอนที่ 1 เตรียม code สำหรับการเริ่มต้น

หลีกเลี่ยงการตรวจค่า null ตอนที่ 1 (แต่ตัวอย่างที่ยกมานี้ยังไม่หลีกเลี่ยงการตรวจสอบ)

person object
person object

เคยอ่าน blog ของ Somkiat Puisungnoen
เจ้าของโดเมน somkiat.cc ซึ่งคุณตุ้ยแนะนำมา
ชื่อโพสต์ “Java :: หลีกเลี่ยงการตรวจสอบค่า Null กันได้แล้ว
โดยมี code ตอนหนึ่งว่า
1. PersonDAO personDAO = new PersonDAO();
2. Person person = personDAO.getPersonByID(1);
3. if(person != null) {
4. person.setName(“My name”);
5. }

ซึ่งแนะนำการหลีกเลี่ยงการใช้ null ไว้ 2 วิธี
http://www.somkiat.cc/java-avoid-check-null-in-your-code/

1. บรรทัดแรก
สร้าง instace ชื่อ personDAO จากคลาส PersonDAO
คำว่า DAO มาจาก Data Access Object ทำหน้าที่เข้าถึงข้อมูล
ทำให้มี instace ไว้ใช้งานด้านข้อมูล และติดต่อกับฐานข้อมูล
2. บรรทัดที่สอง
สร้าง instace ชื่อ person จากคลาส Person
ซึ่งมีค่าต่าง ๆ ตามที่กำหนด หรือการประมวลผลที่สำคัญกับข้อมูล
3. บรรทัดที่สาม
ตรวจสอบว่ามี person หรือไม่
ถ้าเรียกใช้ทั้ง ๆ ที่เป็น null ก็จะ error
4. บรรทัดที่สี่
ถ้ามีก็จะกำหนดค่าให้กับ object ใน person
ตามหลัก set กับ get

นำแนวคิดของคุณสมเกียรติ มาทำให้โปรแกรมประมวลผลได้
โดยยังไม่หลีกเลี่ยงการตรวจค่า null แต่ใช้ if != null เหมือนตัวอย่างไปก่อน
1. คลาส PersonDAO ทำหน้าที่เข้าถึงฐานข้อมูลในเบื้องต้น
การ return ต้องกำหนดค่าอะไรสักอย่าง จึงต้องกำหนดเป็น null ไว้แต่แรก
ถ้าไม่กำหนดก็จะ compile ไม่ผ่าน เช่น Person person;
public class PersonDAO {
public Person getPersonByID(int personID) {
Person person = null;
if (personID < 10 && personID > 0) {
person = new Person();
person.setID(personID);
}
return person;
}
}

2. คลาส Person ทำหน้าที่โดยตรงในการเพิ่ม ลบ แก้ไขข้อมูล
public class Person {
private int id;
private String name;
public void setName(String s) { name = s; }
public void setID(int i) { id = i; }
public int getID() { return id; }
public String getName() { return name; }
}

3. คลาส Work ทำหน้าที่รับส่งข้อมูล ควบคุม และนำเสนอข้อมูล
public class Work {
public static void main(String args[]){
PersonDAO personDAO = new PersonDAO();
Person person1 = personDAO.getPersonByID(1);
if(person1 != null) {
person1.setName(“burin”);
System.out.println(person1.getID());
System.out.println(person1.getName());
}
Person person2 = personDAO.getPersonByID(11);
if(person2 != null) {
person2.setName(“tui”);
System.out.println(person2.getID());
System.out.println(person2.getName());
}
}
}
http://www.thaiall.com/class/

ตอนที่ 2 การใช้ try catch จับ Exception
http://www.thaiall.com/blog/burin/6560/

ผู้สูงอายุนอกเมืองหลวง ไม่ดูทีวีดิจิตอล

ช่องรายการดิจิตอลทีวีทั้ง 36 ช่อง
ช่องรายการดิจิตอลทีวีทั้ง 36 ช่อง
7 ธ.ค.57 มีกล่องรับสัญญาณทีวีดิจิตอลอยู่ 2 กล่อง ตั้งใจจะติดกับทีวีเครื่องเก่าให้ผู้สูงอายุที่บ้าน
เมื่อติดตั้งไปแล้ว ถึงทราบว่าผู้สูงอายุไม่ต้องการใช้บริการ เพราะทุกวันนี้ก็รับชมทีวีอนาล็อกได้อยู่แล้ว
แล้วผมก็ดูได้ 22 ช่อง เพราะบ้านห่างเสาส่ง 14 กิโลเมตร สามารถรับชมโดยไม่ต้องเดินสายเสาอากาศใหม่
ส่วนบ้านอีกหลังห่างเสาส่งไป 26 กิโลเมตร เดินเสาอากาศไปลานกว้างนอกบ้าน รับได้ 6 ช่อง
แล้ว 6 ช่อง ก็ไม่มีช่องที่ผู้สูงอายุต้องการ ซึ่งเป็นช่องเดียวที่จะดูบนทีวี 14 นิ้ว
เหตุผลสำคัญที่ผู้สูงอายุให้มาว่าไม่ดูทีวีดิจิตอล
1. ทุกวันนี้ดูช่องเดียว และไม่เคยเปลี่ยนช่อง
จะมีให้ดู 20 กว่าช่อง ก็คงจะไม่ดู
2. ไม่ชอบกด remote ตัวเล็ก กดไม่เป็น ที่ผ่านมาก็ไม่เคยกด
จะให้กดเลือกช่องที่มีถึง 20 ช่องก็คงไม่กด
3. ถ้าต้องเดินสายอากาศ เจาะนู่น เจาะนี่
เพื่อให้ได้ 20 ช่อง ก็อย่าเลย ไม่อยากเจาะบ้าน
คนรุ่นใหม่คงมีเหตุผลที่จะดูทีวี 20 กว่าช่อง ดังนี้
1. มีเวลาว่างนั่งดูทีวีมากกว่าทำอย่างอื่น
2. ชอบดูรายการใหม่ ๆ อยู่เสมอ
3. มีรายการที่รอติดตามเป็นประจำจากทีวี
ตอนนี้ .. รอให้เพื่อนบ้านมากดดันผู้สูงอายุ ผ่านการเล่าขาน
ว่าดูช่องนู้น ช่องนี้ น่าดู ดูสนุก
แล้วผู้สูงอายุมีความต้องการขึ้นมา ค่อยไปติดตั้งก็ได้
.. เพราะตอนนี้ยังไม่เห็นความจำเป็น จึงไม่ยินดีจะให้ติดตั้ง
ปล. ส่วนผมดู PSI ครับ ไม่ได้ใช้กล่อง Set Top Box

การติดตั้งกล่องรับสัญญาณดิจิตอลทีวี

digitaltv ระยะทาง และเสาอากาศที่เหมาะสม
digitaltv ระยะทาง และเสาอากาศที่เหมาะสม
6 ธ.ค.57 ตรวจสอบเสาส่งสัญญาณทีวีดิจิตอล จากเว็บไซต์ nbtc.go.th
พบว่าที่ลำปางเปิดให้บริการแล้ว และที่บ้านผมก็อยู่ในรัศมี
จึงจัดทำคลิ๊ปสาธิตการติดตั้ง set top box ยี่ห้อ one box home รุ่นที่ 2
ติดตั้งกล่องเข้ากับทีวีรุ่นเก่า และเสาอากาศที่แถมมากับกล่อมดิจิตอลทีวี
ผ่านสาย AV (Audio – Video) ที่ไปทั้งภาพและเสียง
โดยหันเสาไปทางเสาส่ง คือ ศาลากลางจังหวัดลำปาง
เพราะถ้าบอกว่ายอดดอยพระบาท ก็คงมีคนลำปางหลายท่านไม่รู้จัก
เสาที่ผมใช้ในคลิ๊ป คือ แบบ D5E
ถ้าอยู่ไกล ๆ ก็ต้องติดตั้งเสาไว้นอกบ้าน หันไปในทิศทางที่เสาส่งตั้งอยู่
หากไม่รู้ว่าเสาส่งอยู่ไหนให้ดูจากเว็บไซต์ หรือ app ได้ครับ
อยู่ในห้องนอนมิดชิด เสาก็จะรับสัญญาณไม่ได้ เพราะทะลุทะลวงไปไม่ถึง
khokha อ.เกาะคา ห่างเสา 26.54 ก.ม.
khokha อ.เกาะคา ห่างเสา 26.54 ก.ม.
คลิ๊กสาธิต รุ่น 2 .. ตอนที่มีเสาส่งสัญญาณที่จังหวัดลำปางแล้ว

คลิ๊กสาธิต รุ่น 1 .. ตอนที่ยังไม่มีเสาส่งสัญญาณที่จังหวัดลำปาง

แลกเปลี่ยนกับเพื่อนเรื่องการวาด network diagram

SmartDraw ทดลองใช้ได้ 7 วัน
SmartDraw ทดลองใช้ได้ 7 วัน
1 ธ.ค.57 มีเพื่อนบอกว่าอยากวาด network diagram สวย ๆ
และโปรแกรมเก่าที่เคยใช้อย่าง Visio ก็ไม่อยากใช้แล้ว
ผมเสนอว่า Smartdraw ก็น่าสนใจ ใคร ๆ ที่เพื่อนเขารู้จักก็ใช้กันอยู่
วันนี้กลับมาลองทดสอบ Trail version พบว่าใช้ได้ 7 วัน
firewall template
firewall template
ผมว่าน่าสนใจ เพราะเครื่องที่ผมใช้ติด Deepfreeze
จะกลับมาเหมือนเดิมที่ไม่ได้ติดตั้งอะไร เมื่อ Restart
หากทดสอบโปรแกรม ก็จะติดตั้งกันเป็นครั้งคราวไป
watermark in firewall for .png format
watermark in firewall for .png format
ถ้าลงจริงก็ค่อยหาทางกันใหม่ ผมเลือก template ที่มีมาให้
เป็นแบบ firewall ซึ่งดูแล้วรู้สึกคุ้นเคยดี
ปกติ save จะได้ .sdr แต่เปลี่ยนสกุลเป็น .png ได้
รุ่นทดสอบจะนำไปใช้งานจริงไม่ได้
นอกจากจำกัดเวลาแล้ว ภาพที่ได้ยังติดลายน้ำอีก
ถ้าไม่ต้องการให้มีลายน้ำก็ต้อง buy
รุ่น standard ราคา $197
รุ่น Business ราคา $297
รุ่น Enterprise ราคา $497
โปรแกรมนี้ถูกแนะนำใน thaiware ด้วยครับ
แต่เป็นลิงค์ download ตัว installer ขนาดไม่กี่แสนจาก smartdraw.com โดยตรง

ชิปหาย ต้องทำอย่างไร

sim card in tabletpc of samsung
sim card in tabletpc of samsung
วันนี้หยิบแท็บเล็ตที่มหาวิทยาลัยให้ไว้สำหรับทำงานขึ้นมาแล้วพบว่าเข้าอินเทอร์เน็ตไม่ได้ ลองตรวจสอบพบว่าชิบ หรือซิมการ์ดหายไป เมื่อเปิดช่องใส่ซิมการ์ดก็ยังอยู่ แสดงว่าตัวชิบน่าจะมีปัญหา แต่การแก้ไขในเบื้องต้นคือ ดึงออกมาแล้ว เสียบกลับเข้าไปใหม่ เมื่อทำตามนี้พบว่าแท็บเล็ตรู้จักซิมการ์ดเหมือนเดิม และเข้าอินเทอร์เน็ตได้ .. โล่งอกไปอีกครั้ง
ในอดีตเคยมีเพื่อน หรือนักศึกษาที่ไปฝึกงาน มาเล่าให้ฟังว่า เวลาเปิดเครื่องไม่ขึ้น ค้างไปเฉย ๆ โอกาสหนึ่งที่เป็นไปได้คือ หน้าสัมผัสของแผงวงจรสกปรก ทำให้สัมผัสกันไม่ดีพอ อาจเป็นเพราะมีสนิมขึ้นมาขวาง ก็ต้องทำความสะอาด คุณเปรม กับคุณตุ้ย เพื่อนที่ศูนย์ไอทีจะมีกระป๋องสเปรย์ (Spay) สำหรับฉีดอุปกรณ์ทำความสะอาด เช่น cpu, ram หรือ mainboard หลายครั้งที่เปิดเครื่องไม่ขึ้นก็จะใช้ฉีดเข้าไป รอสักพักก็จะใช้งานได้เหมือนเดิม แต่ลูกศิษย์ที่เคยฝึกงานในร้านซ่อมคอมพิวเตอร์บอกว่า เขาจะถอดแผงวงจร หรือ RAM ออกมาแล้วใช้ยางลบถู ๆ สักพัก เสียบเข้าไปใหม่ พบว่าปัญหาหายไป
ชิป (Chip) หรือไมโครชิป (Microchip) คือ โมดูลขนาดเล็กที่ซับซ้อนสามารถเก็บข้อมูล หรือเป็นวงจรทางตรรกะของไมโครโพรเซสเซอร์ ซึ่งชิปไมโครโปรเซสเซอร์ (Microprocessor Chip) ที่ได้รับความนิยมเป็นอันดับหนึ่ง คือ Core i7 พัฒนาโดยบริษัท Intel ส่วนอันดับสองคือ Bulldozer พัฒนาโดยบริษัท AMD
ซิมการ์ด (SIM = Subscriber Identity Module Card) คือ แผ่นพลาสติกขนาดสี่เหลี่ยมเล็กที่บรรจุแผงวงจรอิเล็กทรอนิกส์หรือชิปไว้ ปลายข้างหนึ่งมีรอยตัด ถูกใช้สำหรับโทรศัพท์เคลื่อนที่ ภายในชิปของซิมการ์ดใช้บรรจุข้อมูลหมายเลขโทรศัพท์ ข้อมูลเจ้าของ หมายเลขของผู้ติดต่อ และบริการที่เลือกไว้

เตือยภัยอาชญากรรมไอทีใกล้ตัว (itinlife476)

คลิ๊ปเสียงตกทอง กับข่าวที่เกิดขึ้น
คลิ๊ปเสียงตกทอง กับข่าวที่เกิดขึ้น

ภัยด้านคอมพิวเตอร์ หรืออาชญากรรมทางคอมพิวเตอร์มีหลายรูปแบบ เป็นการกระทำที่ผิดกฎหมายโดยใช้วิธีการทางอิเล็กทรอนิกส์ หากจะจำแนกประเภทความเสี่ยงว่าเรื่องใดรุนแรง หรือใกล้ตัวก็จะจัดอันดับแต่ละประเภทแตกต่างกันไปตามประสบการณ์ของแต่ละคน ซึ่งอาชญากรรมด้านไอทีที่พบเป็นข่าวมักมี 6 ประเภท คือ ลักลอบขโมย (Thief) ละเมิดสิทธิ (Pirate) แพร่ภาพ เสียง ลามก อนาจาร (Illegal media) ก่อกวน หรือทำลายระบบสาธารณูปโภค (Disturb) หลอกลวงให้ร่วมค้าขาย หรือลงทุนปลอม (Fraudulent) หรือโอนเงินจากบัญชีผู้อื่นเข้าบัญชีของตน (Bank transfer)

การลักลอบขโมยอาจถูกมองเป็นเรื่องเล็กได้ แต่หากผู้กระทำสามารถขโมยข้อมูลของผู้คนนับแสน หรือขโมยข้อมูลจากธนาคารก็อาจไม่ใช่เรื่องเล็กอีกต่อไป พบข่าวได้บ่อยครั้งว่ามีการลักลอบกดถอนเงินจากตู้เอทีเอ็มโดยใช้บัตรปลอมที่ขโมยข้อมูลจากเจ้าของบัตรมาได้ หรือนำข้อมูลไปใช้ถอนเงินที่ธนาคาร การนำภาพดารามาตัดต่อทั้งภาพถ่ายหรือคลิ๊ปแล้วเผยแพร่ จนทำให้ผู้เสียหายต้องออกมาแก้ข่าวว่าไม่เป็นความจริง ถ้าเราไม่ใช่ผู้เสียหายก็คงไม่กระทบมากนัก แต่ผู้ที่ถูกกระทำย่อมเห็นว่าเรื่องนี้สำคัญเป็นเรื่องที่กระทบการดำรงชีวิต การงาน และครอบครัวจนไม่อาจทนได้ การทำลายระบบสาธารณูปโภค เช่น น้ำ ไฟฟ้า สัญญาณจราจร และโทรศัพท์ เห็นผลกระทบได้ชัดจากภาพยนตร์เรื่อง Die hard 4 ที่ผู้ร้ายสามารถแฮ็ก เข้าไปควบคุมระบบสาธาณูปโภคของเมือง เพื่อสนับสนุนเป้าหมายก่อการร้ายของตนเอง

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

https://www.youtube.com/watch?v=6gzgVK5eu0E (คลิ๊ปเสียงตกทอง 1)

https://www.youtube.com/watch?v=ojaP-dP3u0o (คลิ๊ปเสียงตกทอง 2)

https://www.youtube.com/watch?v=HAgpUlVnb1w (คลิ๊ปเสียงตกทอง 3)

https://www.youtube.com/watch?v=mZJA8iEuVCU (คลิ๊ปเสียงตกทอง 4)

https://www.youtube.com/watch?v=xw1t6qp57jU (จับ call center)

https://www.youtube.com/watch?v=EtSoITLELoc (คุยผ่านเฟสบุ๊ค มีหลายกรณี)

https://www.youtube.com/watch?v=xrOb4VbaqNs (อ้างเป็นฝรั่งหลอกให้โอนเงินไปให้)

https://www.youtube.com/watch?v=p6xpRyMw2vI (Daily IT)

ออกแบบปกซีดี แจกในการประชุมวิชาการ

NTC2014 on 13-14 November 2014
NTC2014 on 13-14 November 2014

เคยออกแบบปกซีดี ด้วย Microsoft Word
โดยใช้ template ที่โปรแกรมเตรียมไว้ให้
เพื่อแจกในการประชุมวิชาการ NTC2014 พร้อมกับ proceeding เมื่อมกราคม 2557
http://thaiabc.com/lampangnet/admin/1097/

มาเดือนธันวาคม 2557 มีการประชุม Nation University Conference
ต่อเนื่องอีกครั้ง ก็ยังใช้ word เพื่อให้ผู้ที่จะนำไปพิมพ์สามารถใช้งานได้ง่ายกับ
กระดาษ sticker สำหรับงานนี้โดยเฉพาะ ที่ร้านเครื่องเขียนมีขายครับ
ลองเช็คราคาจากเว็บไซต์ พบว่า 50 แผ่นราคา 195 บาท (สำหรับ CD 100 แผ่น)
http://www.see-dlabel.com/product/cdstandard.html

cd sticker
cd sticker

ในการประชุมหลายแห่งแจกเป็น handy drive บางที่ก็ cdrom
เมื่อผมได้มาก็ช่วยในการเผยแพร่ตาม social media
เช่น
การประชุมวิชาการอุุดมศึกษาไทยกับการพัฒนาประเทศ ประจำปีการศึกษา 2556
Lampang 2020 : บูมลำปางสู่เมืองเศรษฐกิจใหม่
24 – 26 มกราคม 2557 ณ มหาวิทยาลัยเนชั่น ลำปาง
http://www.scribd.com/doc/201904276/

เวลาออกแบบปก หรือภาพก็ต้องหาภาพประกอบ
สำหรับ ธันวาคม 2557 ผมเก็บภาพไว้ที่
https://www.facebook.com/media/set/?set=oa.858530910853259

ต่อไปต้องย้ายไป 64 กันจริง ๆ แล้ว เพราะ 32 กำลังถูกทิ้ง

minimum requirement is 64Bit
minimum requirement is 64Bit

เล่าสู่กันฟังเรื่องปัญหาซอฟท์แวร์ในปัจจุบัน และอนาคต

https://www.adobe.com/products/premiere.html?promoid=KLXLV

1. ลงใหม่ทับเก่า ก็น่าจะได้ แต่ไม่ได้
ไม่กี่วันที่ผ่านมา อ.ปุ้ม เอาโปรแกรม Adobe premiere 1.5
ซึ่งเป็นโปรแกรมตัดต่อหนัง ที่ใช้ทรัพยากรมากมาย
มาให้คุณเปรมติดตั้งในคอมพิวเตอร์หลายเครื่อง
ก่อนจะติดตั้งสำเร็จ ตรวจดูพบว่ามีรุ่นเก่าลงไว้อยู่แล้ว
แต่ลงใหม่เพิ่มเข้าไปไม่ได้ หรือลงทับก็ไม่ได้
ถ้าจะลง ต้องถอนของเก่าออกก่อน จะถอนได้ก็ต้องมี serial number
ตรวจดูพบว่า ทุกเครื่องใช้โปรแกรมนี้ไม่ได้
เพราะเครื่องเหล่านี้จัดทำขึ้นจากการ ghost ต่อ ๆ กันมา
และโปรแกรมนี้เป็นหนึ่งในโปรแกรมที่ห้าม ghost
ถ้าใช้งานก็ต้องหามาลงทีละเครื่องให้เรียบร้อย
จึงไม่มีเครื่องใดโปรแกรมนี้ได้ ยกเว้นเครื่องแรกที่เป็นต้นฉบับ

http://helpx.adobe.com/photoshop/system-requirements.html

need serial number for uninstall
need serial number for uninstall

2. การถอนของเก่าออก
เริ่มจากการเข้าโปรแกรมเก่า เข้าไปหน้าลงทะเบียนด้วยโทรศัพท์
พบเลข serial number แล้วจดไว้
จากนั้นก็เข้าไปถอนโปรแกรมใน control panel
แล้วกรอก serial number ตามที่ถูกต้องขอ

3. การติดตั้งโปรแกรมใหม่
ใช้แผ่นที่ได้มา ก็ลงไปถึงการเลือกโปรแกรมที่จะติดตั้ง
พบว่าไม่สามารถลง premiere ได้ตัวเดียว
มีข้อความแจ้งว่าไม่ผ่าน minimum requirement
ศึกษาดูก็พบว่า CS5 เป็นต้นมา จะลงได้บน 64bit เท่านั้น
ต่อจากนี้ไม่สนับสนุน 32bit แล้ว
ถ้าคิดจะลงก็ต้องไปหา CS4 มาใช้งาน

สรุปว่า
ลงไม่ได้แล้ว กับ CS5 ตามที่ อ.ปุ้มร้องขอ
ทำให้เวลาลง windows ต้องนึกถึง 64bit ไว้ก่อน
เพราะใคร ๆ ก็เริ่มทิ้ง 32bit แล้ว

แก้ปัญหาเปิดเว็บหนังสอนภาษาอังกฤษ ในเครือข่ายไม่ได้

เปิด ororo.tv ไม่ได้ เพราะติด max_size ใน squid
เปิด ororo.tv ไม่ได้ เพราะติด max_size ใน squid

เล่าสู่กันฟัง และกันหลงลืมในอนาคต กับปัญหา และการแก้ไขเรื่องเข้าเว็บไม่สำเร็จ
http://www.ororo.tv/en/movies

1. บ่ายวันหนึ่ง อาจารย์ที่สอนภาษาอังกฤษ เชิญไปช่วยดูปัญหา
ว่าทำไมที่ห้องเรียนเปิดคลิ๊ปหนังสอนภาษาอังกฤษจากเว็บไซต์ ororo.tv ไม่ได้
ก่อนหน้านี้เคยเปิดได้ และวันนี้ก็เปิดได้เรื่องเดียว คือ เรื่องมังกร
เว็บไซต์นี้สอนภาษาจริง ๆ เพราะหัวเว็บเขียนว่า
“Learn english by watching tv-shows and movies”
with subtitles and build-in translator
จำได้ว่าวันนี้ผมก็แจ้งไปว่า สงสัยเว็บนี้จะเสีย พรุ่งนี้น่าจะดี เพราะเป็นปัญหาในบางคลิ๊ป

http://ororo.tv/en/movies/how-to-train-your-dragon

2. นำปัญหามาคิดต่อ เพื่อแก้ไข
วันรุ่งขึ้น ผมลองตรวจสอบจากอีกเครื่องหนึ่ง ซึ่งอยู่นอกเครือข่ายห้องสอน
เป็นเครือข่ายห้องทำงาน พบว่าเปิดดูทุกเรื่องใน ororo.tv ได้ปกติ ก็ดีใจ
เพื่อความแน่ใจว่าสิ่งที่เห็นอยู่เป็นอย่างที่เข้าใจ
จึงไปเปิดในห้องเรียน และห้องสอนอีกครั้ง ซึ่งเป็นวงที่แยกออกไปจากห้องทำงาน
พบว่ามีปัญหาแจ้งเรื่อง server กับ network เหมือนเดิม
แสดงว่า firewall น่าจะกำหนดนโบายให้กับห้องเรียน ห้องสอน และห้องทำงานต่างกัน

http://ororo.tv/en/movies/lord-of-the-rings-the-fellowship-of-the-ring

3. ขอความช่วยเหลือจาก คุณตุ้ย เจ้าหน้าที่ไอที
โดยให้ข้อมูล และคาดหมายว่าน่าจะเป็นที่ firewall มีนโยบายอะไรไหม
ที่พอจะเปิดให้ เพื่อให้อาจารย์ได้สอนภาษาอังกฤษผ่านคลิ๊ปได้บ้าง
ก็พบว่า config ใน FortiGate ได้ถูกเปิดหมดแล้ว
นั่งทดสอบอยู่ 2 สัปดาห์กับเจ้าหน้าที่ ๆ ดูแลอุปกรณ์ ก็ไม่พบ
จนนึกได้ว่าไม่นานมานี้ได้เปิดระบบ authentication และตั้งแต่นั้น
ครูผู้สอนภาษาอังกฤษก็เข้า ororo.tv ไม่ได้ ซึ่งได้รับแจ้งว่าเรามี proxy อีกตัว

4. ผลการทดสอบ ปิด ๆ เปิด ๆ proxy ที่ใช้ squid บน redhat
พบว่าถ้าไม่ผ่าน proxy ก็จะเข้า ororo.tv ได้หมด ไม่ว่าเป็นห้องใด
จึงเข้าไปตรวจ /etc/squid/squid.conf
ตรวจเรื่อง port หรือ ip แต่ก็ไม่สามารถเปิดบริการได้ปกติ
แม้อ่าน และทดสอบแก้ไข ไปพร้อมกับการตรวจ /var/log/squid/squid.log
สุดท้ายพบ config เรื่องของการจำกัดขนาดแฟ้ม
จึงเพิ่มขนาดแฟ้มที่จำกัดใน squid.conf ก็พบว่าสามารถเปิดคลิ๊ปได้ปกติ
เพราะแต่ละคลิ๊ปใน ororo.tv ที่เป็นแฟ้ม .webm กับ .mp4 มีขนาดมากกว่า 1GB ทุกแฟ้ม
สรุปว่าแก้ไข config ข้างล่างนี้ ก็เป็นอันแก้ปัญหานี้ได้

reply_body_max_size 500000000 deny doctype
reply_body_max_size 500000000 deny mediatype

5. เลือกไม่กำหนดด้วย IP
ที่ตัดสินใจไม่ได้เพิ่ม ip ของ ororo.tv เข้าไปในนโยบาย
เพราะคลิ๊ปที่เก็บไว้กระจายไปยัง server ต่าง ๆ ไม่แน่นอน
จึงเลือกเพิ่ม max_size แทนจากเดิมให้ต่อแฟ้มไว้ที่ 500MB เป็นมากกว่า 1GB