อย่าตกเป็นเหยื่อของ Clickbait (เว็บไซต์หลอกให้คลิก)

เดี๋ยวนี้จะเห็นบน Facebook มีการแชร์เนื้อหาจากเว็บไซต์ต่างๆ แล้วโปรยหัวข้อข่าวให้แบบว่า น่าคลิกมาก อยากอ่านเนื้อหาต่อ จนทำให้คนต้องคลิกไปอ่าน พวกนี้เรียกว่า “Clickbait” — bait แปลว่า เหยื่อ และบางเว็บ ก็ช่างหน้าไม่อาย เอาเนื้อหาเก่ามานำเสนอ เพื่อให้คนคลิกไม่พอ ยังแอบอ้างว่า ผลงานการหาข่าวเป็นของตัวเองอีกต่างหาก เช่น http://www.bigza.com/news-175102   เนื้อหาบอกว่าเป็นการเขียนว่า ข่าววันที่ 9 ก.ค 58 แถม “ผู้สื่อข่าว” BigZa อีกต่างหาก (แล้วมาเลี่ยงภายหลังว่ารับข่าวจาก Social Media) โดยบอกว่า คนนี้เป็นต้นโพสต์ … ต้องการเลือด ?? ไม่ระบุว่า ที่ไหน ให้ใคร เมื่อไหร่ (บางแหล่งให้เบอร์โทรญาติ ซึ่งบางทีเขาได้รับเลือด ได้รับความช่วยเหลือไปแล้ว ยิ่งโทรไป ทำให้เขาเดือดร้อนรำคาญอีก)     พวกนี้ มันทำอย่างนี้ ทำไม ???? ตอบ เพราะทุกครั้งที่เรา “คลิก” อ่าน มันจะได้อันนี้ … โฆษณา …   เอาหล่ะ แล้วจะตรวจสอบอย่างไร ว่า เป็นข่าวจริงหรือไม่ บน Google Chrome สมัยนี้ สามารถคลิกขวาที่ภาพ แล้ว เลือก “Search Google for this image”     ผลที่ได้คือ ภาพข่าว และ รายละเอียดว่า เป็นข่าวที่เผยแพร่มาแล้ว เมื่อไหร่ เมื่อลองคลิกเข้าไปในสำนักข่าวที่น่าเชื่อถือ ก็พบว่า ข่าวดังกล่าว เกิดขึ้นตั้งแต่ 25 เมษายน 58         เรียนมาเพื่อพิจารณา …

Read More »

How to reset root password CentOS 7.1

เข้า Single user mode โดย reboot แล้วเมื่อได้เมนูของ Grub ให้เลื่อนแถบสีไปยัง Kernel ที่ต้องการบูต (โดยปกติจะถูกเลือกไว้อยู่แล้ว) ให้กด e จะได้หน้าจอดังนี้ สิ่งที่เราสนใจคือบรรทัดที่ขึ้นต้นว่า linux ซึ่งในบทความนี้คือ linux16 สำหรับ CentOS 7/7.1 x86_64 บนเมนบอร์ดที่ใช้ระบบ BIOS (อาจจะพบกับ linuxefi สำหรับเมนบอร์ดที่ใช้ระบบ UEFI) เมื่อหาเจอแล้วเลื่อน cursor ไปที่ ข้อความ ro เปลี่ยน ro เป็น rw init=/sysroot/bin/sh กดปุ่ม ctrl และปุ่ม x พร้อมกันเพื่อบูตระบบจะได้ดังภาพ พิมพ์คำสั่ง chroot  /sysroot พิมพ์ passwd เพื่อเปลี่ยนรหัสผ่านสำหรับ root สร้างแฟ้ม autorelabel เพื่อปรับปรุงกฏของ selinux (ถึงแม้จะไม่ได้ใช้งาน selinux ก็ตาม เพื่อความไม่ประมาท) โดยคำสั่ง touch /.autorelabel พิมพ์ exit เพื่อยกเลิก chroot พิมพ์ reboot ระบบจะรีบูตสองรอบ อัตโนมัติเพื่อปรับปรุง selinux และไฟล์ autorelabel จะถูกลบอัตโนมัติ ล็อคอินเข้าระบบด้วยผู้ใช้ root และ password ที่เปลี่ยนไป ลบแฟ้ม /.bash_history ทิ้งด้วยคำสั่ง rm /.bash_history (ถูกสร้างตอนออกจากระบบ chroot) จบขอให้สนุกครับ อ้างอิงเพิ่มเติม https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sec-Terminal_Menu_Editing_During_Boot.html#sec-Recovering_Root_Password

Read More »

ทำอย่างไรให้สามารถกำหนดจุดพิกัดบนแผนที่ Google map แบบจุดเดียวและหลายจุดจากฐานข้อมูลได้ด้วย ASP.NET C#

      การพัฒนาเว็บไซต์ในปัจจุบัน พบว่ามีบางเว็บไซต์มีความต้องการในการแสดงผลตำแหน่ง ที่ตั้งบนแผนที่ Google map เพื่ออำนวยความสะดวกให้กับผู้เยี่ยมชมเว็บไซต์ในการค้นหาตำแหน่งที่ตั้งของสถานที่นั้นๆมากกว่าการบอกเพียงที่อยู่อย่างเช่นแต่ก่อน อาธิเช่น เว็บไซต์ที่เป็นศูนย์รวมในการจองที่พัก ที่มีความจำเป็นต้องแสดงที่ตั้งของโรงแรมที่มีในบริเวณหรือละแวกนั้นๆที่เข้ามาร่วมให้ข้อมูลกับเว็บไซต์ในการจองที่พัก หรือแม้กระทั่งโรงพยาบาล ห้างสรรพสินค้า โรงเรียน มหาวิทยาลัย ที่เว็บไซต์ต้องการแสดงที่ตั้งเพื่อให้ผู้เยี่ยมชมเว็บไซต์สามารถทราบได้ว่าสถานที่เหล่านั้นมีที่ตั้งอยู่ในบริเวณใดบ้าง เพื่อเป็นประโยชน์ให้ผู้ที่เข้ามาเยี่ยมชมเว็บไซต์สามารถเรียกดูได้จากแผนที่เพื่อศึกษาเส้นทาง หรือหาตำแหน่งที่จะสามารถไปยังจุดนั้นๆได้โดยง่ายและใช้ระยะทางใกล้ที่สุดนั่นเอง       ในบทความนี้ ผู้เขียนจึงขอพูดถึงวิธีการแสดงผลตำแหน่งที่ตั้งบน Google map ซึ่งมีทั้งแบบกำหนดตายตัว โดยมีการระบุตำแหน่งที่ตั้งทั้งละติจูดและลองจิจูด และแบบที่มีการดึงค่าของละติจูดและลองจิจูดมาจากฐานข้อมูลของเว็บไซต์ที่พัฒนาโดยใช้เครื่องมือ ASP.NET ด้วย C# และแบบที่มีการกำหนดจุดแสดงตำแหน่งเพียงจุดเดียวและหลายจุดพร้อมกัน เพื่อประโยชน์กับนักพัฒนาท่านอื่นๆที่มีความสนใจสามารถนำไปประยุกต์ใช้กับเว็บไซต์ของตนได้       โดยผู้เขียนขอเสนอวิธีการเบื้องต้นในการแสดงผลแบบกำหนดค่าตายตัวให้ผู้อ่านลองศึกษาการทำงานเพื่อทำความเข้าใจในเบื้องต้นก่อน ดังนี้ การแสดงผลแบบจุดเดียว อ้างอิงพาธที่ตั้งของ Google API ซึ่งเป็นส่วนหนึ่งของการแสดงผลบนแผนที่ Google map และไฟล์จาวาสคริปต์ที่ใช้ในการแสดงผล(ถ้ามี) <script type=”text/javascript” src=”http://maps.googleapis.com/maps/api/js?sensor=false”></script>   <script src=”js/mapwithmarker.js” type=”text/javascript”></script> กำหนดสไตล์ชีทที่ใช้ในการแสดงผล เมื่อมีการคลิกตำแหน่งที่ได้ทำการกำหนดพิกัดไว้ <style type=”text/css”> .labels { color: black; background-color: #FF8075; font-family: Arial; font-size: 11px; font-weight: bold; text-align: center; width: 12px; } </style> กำหนดพิกัดที่ต้องการให้แผนที่ค้นหาจุดกึ่งกลางของการแสดงผล ซึ่งโดยปกติจะถือเอาจุดแรกที่ต้องการแสดงเป็นตำแหน่งกึ่งกลางของการแสดงผลตำแหน่งบนแผนที่นั้นๆ เพื่อให้ตำแหน่งดังกล่าวอยู่กึ่งกลางของแผนที่ที่ต้องการแสดงนั่นเอง var mapOptions = { center: new google.maps.LatLng(ค่าละติจูด, ค่าลองจิจูด), zoom: 12, ///ขนาดที่ต้องการให้ซูมเป็นค่าตั้งต้น mapTypeId: google.maps.MapTypeId.ROADMAP }; กำหนดส่วนที่ต้องการให้แสดงแผนที่ ว่าต้องการให้แสดงในส่วนใดของเว็บไซต์ var map = new google.maps.Map(document.getElementById(“dvMap”), mapOptions); ///ในที่นี้พื้นที่ที่ต้องการให้แสดงผลในเว็บไซต์ คือ dvMap โดยนำค่าที่กำหนดกึ่งกลางไว้ในขั้นตอนที่ 3 (mapOptions) มาเป็นค่าพารามิเตอร์ในการแสดงผลด้วย การกำหนดจุดพิกัดที่ต้องการแสดงผล ซึ่งค่าที่ต้องการคือ ชื่อสถานที่ ค่าละติจูด ลองจิจูด และคำอธิบายในการแสดงผลตำแหน่งสถานที่ที่เราทำการกำหนดไว้ ดังนี้ กำหนดค่าพิกัดลองจิจูดและละติจูดของจุดที่เราต้องการกำหนดบนแผนที่ var infoWindow = new google.maps.InfoWindow(); var myLatlng = new google.maps.LatLng(ค่าละติจูด, ค่าลองจิจูด); กำหนดค่าพิกัดตำแหน่งของจุดและพารามิเตอร์ต่างๆที่จำเป็นต้องใช้ในการกำหนดจุดที่เราต้องการกำหนดบนแผนที่ var marker = new MarkerWithLabel({ position: myLatlng, //เป็นการกำหนดค่าพิกัดตำแหน่งของจุดที่เราต้องการกำหนดบนแผนที่ map: map, //เป็นการกำหนดพื้นที่ที่ต้องการแสดงแผนที่ ในที่นี้คือ dvMap title: title, //เป็นการกำหนดชื่อสถานที่ labelContent:1,  //เป็นการกำหนดหมายเลขลำดับของตำแหน่งแสดงผล labelAnchor: new google.maps.Point(7, 30), labelClass: “labels”, //เป็นการกำหนดรูปแบบในการแสดงผลด้วยสไตล์ชีท labelInBackground: false }); กำหนดการแสดงผลเมื่อผู้เยี่ยมชมมีการคลิกบนจุดดังกล่าว (function(marker) { google.maps.event.addListener(marker, “click”, function(e) { infoWindow.setContent(description); //เป็นการกำหนดข้อความที่ต้องการแสดง เมื่อผู้เยี่ยมชมเว็บไซต์คลิกบนจุดดังกล่าว infoWindow.open(map, marker); }); })(marker); สร้างพื้นที่ที่กำหนดการแสดงผลในส่วน body <div id=”dvMap” style=”width: 800px; height: 700px;”> </div> แสดง code ทั้งหมดที่ใช้ <%@ Page Language=”C#” AutoEventWireup=”true”  CodeFile=”Default.aspx.cs” Inherits=”_Default” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> <head runat=”server”> <title>Google map Test for one point</title> <style type=”text/css”> .labels {

Read More »

วิดีโอแนะนำการติดตั้ง PSU12-Sritrang Server โปรแกรมสำหรับการจัดการห้องบริการคอมพิวเตอร์ (cloning & control PC)

วิดีโอแนะนำการติดตั้ง PSU12-Sritrang Server โปรแกรมสำหรับการจัดการห้องบริการคอมพิวเตอร์ (cloning & control PC) โดย  Wiboon Warasittichai on youtube 01 PSU12-sritrang install (ตอนที่ 1 วิธีติดตั้ง) https://youtu.be/GAhZhGCciY0 02 PSU12-sritrang cloning (ตอนที่ 2 วิธีโคลนนิ่งฮาร์ดดิสก์) https://youtu.be/CegdT_LtE4k 03 PSU12-sritrang features (ตอนที่ 3 คุณสมบัติของแต่ละเมนู) https://youtu.be/Dw_wAyMa3vA 04 PSU12-sritrang control (ตอนที่ 4 การควบคุมเครื่องวินโดวส์ send, restart, shutdown, wakeonlan) https://youtu.be/o801BZ9ye0Y 05 PSU12-sritrang prnews (ตอนที่ 5 ประชาสัมพันธ์ข่าวด้วยภาพ เมื่อ boot from network) https://youtu.be/FA2X182oKXo 06 PSU12-sritrang windows master (ตอนที่ 6 เตรียมวินโดวส์ต้นฉบับที่ติดตั้ง cygwin) https://youtu.be/9XkLQQ-niz4 07 PSU12-sritrang windows computer name (ตอนที่ 7 เปลี่ยนชื่อเครื่อง) https://youtu.be/TuW8_Z2U7V4 08 PSU12-sritrang windows pgina freeradius (ตอนที่ 8 ตั้ง login ใช้ RADIUS server) https://youtu.be/58Pw-dbxljw 09 PSU12-sritrang windows partitions (ตอนที่ 9 เตรียมฮาร์ดดิสก์ของวินโดวส์ต้นฉบับ) https://youtu.be/jP4oSqRNvCo 10 PSU12-sritrang linuxmint master (ตอนที่ 10 เตรียมลินุกซ์มินท์ต้นฉบับ) https://youtu.be/zpR0UQbTy_U 11 PSU12-sritrang control linuxmint (ตอนที่ 11 การควบคุมเครื่องลินุกซ์มินท์) https://youtu.be/bVtfc4x-kKU 12 PSU12-sritrang server backup (ตอนที่ 12 สำเนาไฟล์เก็บไว้) https://youtu.be/dA7-pWjy35I และมีเอกสารแนะนำอยู่ที่ http://opensource.psu.ac.th/PSU-Open-server

Read More »

How to restore a system after accidentally removing all kernels?

เหตุการณ์สมมติ… ทำไงดี??? เผลอรันคำสั่ง sudo apt-get remove –purge linux-image-3.19.0-* ได้ผลดังรูป (ดันกด y แล้ว enter อีกนะ) งานงอก …ลอง ls /boot เผื่อว่ายังมี Kernel เหลืออยู่บ้าง คุณพระ ไปหมดแล้ว… ตกใจ!!! reboot สิ… (กรั่ก ๆ) (หากไม่ตกใจจน reboot ไปซะก่อนสามารถพิมพ์คำสั่ง sudo apt-get install linux-image-generic ได้เลย) เงิบ!!! เหลือแต่ Memory Test…. แก้ไขโดยหาแผ่น Ubuntu Desktop ควรเป็นรุ่นเดียวกับรุ่นที่ติดตั้ง 12.04, 14.04 เป็นต้น (แต่แนะนำ 14.04 ถึงแม้จะกู้เครื่องที่เป็น 12.04) เมื่อบูตให้เลือก Try Ubuntu รอจน Desktop ขึ้นมาเรียบร้อย เปิด Terminal ขึ้นมา (กด ctrl+alt+t) พิมพ์คำสั่ง sudo fdisk /dev/sda -l (กรณีนี้รู้แน่ๆ ว่าติดตั้งบน /dev/sda) จากรูปมีสอง patition ที่น่าจะติดตั้ง Ubuntu เอาไว้ คือ /dev/sda1 และ /dev/sda5 ถ้าใช้แผ่น 12.04 จะไม่สามารถ mount ส่วนของ /dev/sda5 ได้เพราะมองไม่เห็น patition ที่เป็น LVM ตั้งแต่แรก แต่แผ่น 14.04 มองเห็น เมื่อคลิกที่ 103 GB Volume สามารถมองเห็นไฟล์ทั้งหมด ลองเปิดไฟล์ใน etc/fstab ดูไฟล์ข้างในว่า partition อยู่อย่างไร พบว่า /dev/sda1 เป็น boot และ /dev/mapper/ubuntu–vg-root เป็น / และ /dev/mapper/ubuntu–vg-swap_1 เป็น swap เราสนใจแค่ boot และ / สั่ง mount patition ตามลำดับต่อไปนี้ sudo mount /dev/mapper/ubuntu–vg-root /mnt sudo mount /dev/sda1 /mnt/boot sudo mount –bind /dev /mnt/dev sudo mount –bind /sys /mnt/sys sudo mount –bind /proc /mnt/proc สั่งคำ chroot ไปยัง /mnt สังเกตว่าหลังจากสั่งคำสั่ง chroot แล้ว prompt จะเปลี่ยนเป็น root@ubuntu:/# sudo chroot /mnt ให้ตรวจสอบแฟ้ม /etc/apt/sources.list ว่าใช้ repository ไหนด้วย หากไม่ได้ใช้ th.archive.ubuntu.com หรือ mirror.psu.ac.th หรือ mirrors.psu.ac.th หรือ mirror1.ku.ac.th ให้เปลี่ยนเป็น th.archive.ubuntu.com จากนั้นทดสอบ nslookup th.archive.ubuntu.com สำหรับคนที่ resolve ได้ (เรายินดีด้วย) ข้ามข้อ ๑๐ ไปได้เลย แก้ไขแฟ้ม /etc/hosts สำหรับเครื่องที่อยู่นอกมหาวิทยาลัยเพิ่มข้อความว่า 192.100.77.186 th.archive.ubuntu.com สำหรับเครื่องที่อยู่ภายในมหาวิทยาลัยเพิ่มข้อความว่า 192.168.101.34 th.archive.ubuntu.com  สั่ง apt  install linux-image-generic รอจนเสร็จได้ข้อความสุดท้ายประมาณว่า  Setting up linux-image-generic

Read More »