เมื่อความลับไม่มีในโครงการ

บ่อยครั้งการทำงานโครงการ หรือบริหาร project ที่มีความเกี่ยวข้อง ระหว่างหน่วยงาน องค์กร หรือบริษัท จำเป็นต้องการข้อมูล ในชั้นความลับ แน่นอนว่าเจ้าของข้อมูลที่เป็นความลับ ย่อมไม่อยากให้ข้อมูล แก่ผู้พัฒนาโครงการ หรือ project

หากเจ้านายของคุณต้องการ ข้อมูลเชิงความลับ จากลูกค้าแล้ว คุณจะทำอย่างไรได้ ?

ทำไรไม่ได้ นอกจากไปขอข้อมูลจากลูกค้า T_T

หากลูกค้าคุณไม่ให้ ข้อมูลแก่คุณ คุณจะทำไงได้ ?

ทำไรไม่ได้ คุณก็ไปบอกเจ้านาย ว่าลูกค้าไม่ส่งให้ (- -)’

เฮ้ย! ปาดโธ่!! แบบนั้น พนักงานธรรมดา ก็ทำได้ แต่ไม่ใช่คนใช้แรงงานในโครงการ (labors of project) อย่างเราๆ ท่านๆ นะซิครับ

ความเฟี้ยว ขอแรงงานอย่างเราที่ผ่านฝนมามากกว่า 10 ปี  ก็ต้องมีทางออกให้ ปัญหานี้แบบ เหนือเมฆ –> ลุงไม่ได้แก่เพราะมีอายุ อย่างเดียว แต่ยังแก่ประสบการณ์

เมื่อถึงเวลานี้ต้องโชว์ step ให้ เด็กมันดู

ลุง >> น้องๆ รู้จัก NDA ไหม ?

รุ่นน้อง >> ที่เข้าแข่งบาส กันใช้ไหมครับ ผมดูตั้งแต่ สมัยไมเคิลจอร์แดน ชอบมากเลย

ลุง >> ใช่ๆ พี่ก็ชอบ ชิกคาโก้ บูล //// ถุยยยยย นั่นมัน NBA ไม่ใช่แหล่ะ

NDA (Non-disclosure Agreement) : สัญญารักษาความลับ

โดยเจ้าสัญญารักษาความลับ นี้จะทำให้ ลูกค้ามั่นใจว่า เราไม่นำข้อมูลที่ได้รับไปใช้ ในทางที่ไม่พึ่งประสงค์ โดยที่ลูกค้าไม่ได้ อนุญาต หาก ลุงๆ หรือ น้องๆ ฝ่าฝืนข้อบังคับ แน่นอนว่าต้องมีบท ลงโทษตามมาแน่นอน (ใจเขาใจเรานะ ความลับเขา เราก็ต้องรักษาให้ สมกับที่เขาไว้อย่างใจ)

หนังสือสัญญา โดยทั่วไปต้องระบุ

  • วันที่ ลงนาม
  • คู่สัญญา ผู้ให้ข้อมูลและ ผู้รับข้อมูล
  • ขอบเขตของการนำข้อมูลไปใช้งานและจุดประสงค์
  • ระยะเวลาของสัญญา
  • บทลงโทษ หากฝ่าฝืน สัญญา เงื่อนไข ต่างๆ
  • อื่นๆ แล้วแต่ความเห็นชอบ ของทั้ง 2 ฝ่าย

เมื่อเรามี NDA แล้ว

ความลับไม่มีในโครงการ แต่ความลับก็ยังเป็นความลับสำหรับคนนอกโครงงาน

โครงการเดินได้ แรงงานอย่างเราก็ขับเคลื่อน น้องๆ ในทีมก็ level up

จะรอ อะไร จุดพลุฉลองเลย

\(^ , ^)/

 

 

 

Review ตัวละคร ชื่อ Max ในเกมส์ rov ขำๆ

Review ตัวละคร ชื่อ Max ในเกมส์ rov

ฮีโร่สาย Tank & Fighter หนุ่มเทคนิคฟันหลอ หน้าตาดี Max อีกทั้งยังเป็นตัว support และ roaming ได้อีก ด้วย

  • Skill 1 Bionic Blender หมุนตัวรอบๆ สร้างความเสียหายทางกายภาพ
  • Skill 2 Smooth Moves เคลื่อนที่โดนการกระโดดข้ามหัวเป้าหมาย
  • Skill 3 Liftoff ยิงกระสวยติดตามเพื่อ hack map สามารถมองเห็น เป้าหมายและพุ่งโจมตีได้
  • Passive skill : Static Shock โจมตี ศัตรู ได้รับความเสียหายจริง ทะลุเกราะ นั้นเอง

Review ตัวละคร ชื่อ Grakk ในเกมส์ rov ขำๆ

Review ตัวละคร ชื่อ Grakk ในเกมส์ rov

ฮีโร่สาย Tank อดทนทนทานชื่อ Grakk อีกทั้งยังเป็นตัวsupport และ roaming ได้อีก ด้วย

  • Skill 1 Earthquake ดาเมสไม่ค่อยแรงเท่าไร่แต่ทำให้ศัตรูเคลื่อนที่ช้าลง
  • Skill 2 Devil’s Chain ท่านี้ถือเป็นท่าหลัก ในการใช้งาน  อีกทั้งยังเพิ่ม สกิลติดตัวทำให้ ช่วยเหลือหรือฆ่าศัตรู จะได้เลือดเพิ่ม ซึ่งสามารถ stack ได้ 20 ครั้ง
  • Skill 3 World Devourer ถ้านี้จะดูดศัตรู และเพิ่มเกราะให้กับตัวเอง ค่อยข้างใช้ยากและมี delay skill ที่ค่อนข้างนาน แต่ถ้าติดในจังหวะ สำคัญ ถือว่าเกมส์จะได้เปรียบมาก
  • Passive skill : Blood Ritual หากโดนโจมตี มากกว่า 10 % ของเลือดที่เหลืออยู่ จะปล่อยพลังเวท ออกมารอบๆ ตัว แต่มีคูลดาวน์ อยู่ที่ 2 วิ

การออกของนิยมออกของสายแทงค์  พวกเกราะและเพิ่มเลือดเป็นหลัก

วิธีกำหนด IP Address บน Linux ผ่าน terminal

วิธีกำหนด  IP Address บน Linux ผ่าน terminal โดยหมายเลข IP นี้จะเป็น DHCP  หรือ Static IP ก็ได้ ซึ่งการใช้งานก็จะแตกต่าง กันไป ขึ้นอยู่กับจุดประสงค์ หลักๆคือถ้าอยากได้ IP เดิมทุกครั้งที่ เชื่อมต่อก็ต้องเป็น แบบ static ip เท่านั้น เป็นต้น

เริ่มต้นการทำงานให้เราเรียกโปรแกรม Terminal แล้วพิมพ์ คำสั่ง ifconfig (ต้อง login ด้วย สิทธิ์ที่สามารถใช้คำสั่งนี้ได้ เช่น root)

eth0 ส่วนมากจะเป็น card network ของเรา port แรกที่ต่อกับสาย Lan

lo เป็น loop back interface โดยปกติ ก็ 127.0.0.1

หากตรงการเชื่อมต่อ แบบ DHCP ก็สามารถ พิมพ์

ifconfig eth0 down
ifconfig eth0 up
dhclient eth0

กรณีที่เป็น static

ifconfig eth0 192.168.1.33 netmask 255.255.255.0
route add default gw 192.168.1.1

คำสั่งเปิดปิด

/etc/init.d/networking stop
/etc/init.d/networking start

service networking restart

คำสั่งเปิดปิด port

auto  eth0
iface  eth0  inet static
address 192.168.1.63
network 192.168.1.0
netmask 255.255.255.0
boardcast 192.168.1.255
gateway  192.168.1.1

หดฟห

auto eth0
iface eth0 inet dhcp

วิธีการเพิ่ม Tab page บน Facebook page

วิธีการเพิ่ม tab page บน facebook สามารถทำได้ง่ายๆ โดยการใช้ app ที่มีอยู่ พิมพ์คำว่า woo หรือ iframe ก็จะมี app ให้เลือก แต่วันนี้เราจะมาทำวิธีที่ไม่ใช้ app สำเร็จรูป โดนการสร้าง app ของเราเอง

ขั้นตอนที่  1: สร้าง content ที่เราต้องการใช้ บน website ของเรา โดนจะต้องอยู่บน https และความกว้างของ content ควรจะเป็น ขนาดที่ facebook แนะนำ นั่นคือ 520 px (default) และ 810 px(max)
ขั้นตอนที่  2: สร้าง Application บน Facebook โดยไปที่ https://developers.facebook.com/ และหากใครยังไม่เคยลงทะเบียน ก็ให้กดลงทะเบียน ไว้เลยครับ ตามรูปตัวอย่างด้านล่าง

เลือกเมนู “การตั้งค่า” ทางด้านซ้ายมือ เพื่อที่จะได้ กำหนดค่าต่างๆ หลังการกำหนดเรียบร้อยแล้วให้คลิกเลือก “เพิ่มแพลตฟอร์ม”


ขั้นตอนที่  3: เลือกชนิดของ application ให้เป็น “แท็บของเพจ” ใส่ URL content ของเราที่เตรียมไว้ในขั้นตอนที่ 1 และชื่อของ แทบ ตามลำดับ หากต้องการใส่รูปก็สามารถ อัพโหลดรูป ขึ้นมาได้

ขั้นตอนที่  4: เมื่อเราสร้าง app เรียบร้อยแล้วก็ให้ติดตั้งบน Page ของเราโดยการ ใช้ URL Rewrite

https://www.facebook.com/dialog/pagetab?
  app_id=YOUR_APP_ID
  &redirect_uri=YOUR_URL

ขั้นตอนที่  5: กลับมาหน้า page ของเราจะเห็นได้ว่ามี app ใหม่ติดตั้ง อยู่ให้ลองกดเข้าไปดู ก็จะว่ากลับมาที่ เพจของเราแต่จะมี tab page ที่เราสร้างไว้ ขึ้นมา

ขั้นตอนที่  6: ถ้าเราอยากให้ tab page นี้ติดอยู่หน้าของเราโดยไม่ต้อง กดที่ app ก็ให้เเลือก จัดการ tab แล้วเลื่อนไปอยู่ บน สุด

 

สุดท้ายคุณก็จะได้ tab page สวยๆ ตามสไตน์ของคุณเองโดยไม่ต้องพึ่ง app สำเร็จรูปซึ่งบางทีมี โฆษณาทำให้คุณเสียอารมณ์ได้ ขอบคุณครับ

reference : https://developers.facebook.com/docs/pages/tabs

วิธีการใช้งาน PHP curl (Postman)

สวัสดีครับ หลายๆ คนคงเคยได้ ยินคำว่า curl ในภาษา php วันนี้เราจะมาลองใช้ งานมันดูกันนะครับ สมมุติว่าเราต้องดึงข้อมูล Api ระหว่าง server 2 ตัว เราจะทำยังไง ?

Curl สามารถช่วยแก้ปัญหาได้ โดยตัวมันสร้างสามารถสร้าง request RestFul  โดยขั้นตอนการทำงานแบบง่ายคือ

  • curl_init() เพื่อเปิดการทำงาน
  • curl_setopt ( resource $ch , int $option , mixed $value ) เพื่อใส่ option ต่างๆ สำหรับ method post สิ่งที่จำเป็น ก็คือ CURLOPT_URL (url ของ api ที่เราต้องการไปเรียก) , CURLOPT_POSTFIELDS (ข้อมูลที่เราต้องการจะส่งไป) และ CURLOPT_POST (เซตให้เป็น true)
  • curl_exec ( resource $ch ) เพื่อสั่งให้ curl ทำงานคล้ายๆ การกดปุ่ม submit ใน form ที่ client
  • curl_close ( resource $ch ) สุดท้ายคือการสั่งปิดการทำงาน

ด้านล่างคือ source code ที่ใช้สำหรับ ทดสอบโปรแกรม

TestApi.php สร้าง curl สำหรับเรียกใช้งาน

<?php
  $url = 'http://localhost:81/Api/RestfulApi.php'; 
  
  $data = "fn=login&test=1";
  
  /*$data = array(
        'fn' => "login" 
    );*/
  
  
  try{
    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
    curl_setopt( $ch, CURLOPT_POST, true );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
    $content = curl_exec( $ch );
    curl_close($ch);
    
    print_r($content);
    
  }catch(Exception $ex){
  
    echo $ex;
  }
    
?>

RestfulApi.php Api ที่เราต้องการเรียกใช้งาน

<?php  

$server = isset($_SERVER['HTTP_HOST'])?isset($_SERVER['HTTP_HOST']):"";
$reqFunction = isset($_POST['fn'])?$_POST['fn']:""; 
$raw  =  isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA  : " POST_DATA  is  null  ";

try{
  switch($reqFunction)
  {
    case 'login';
      $result['status'] = true;
      $result['message'] = "login success" . " test : " . $_POST['test'];
    break;
    default;
      $result['status'] = false;
      $result['message'] = " Unknow command " . $reqFunction. $raw;
    break;
  }
}catch(Exception $ex){
  $result['status'] = false;
  $result['message'] = "exception: ".$ex;
}
    
 echo json_encode($result, JSON_UNESCAPED_UNICODE);

?>

สุดท้ายการสร้าง curl บางครั้งอาจดูยุ่งยาก เพราะต้องกำหนด parameter ต่างๆ ซึ่งมีทั้ง header และ body บางทีก็เขียนผิดเขียน ถูก วันนี้เลยขอแน่ะนำ tools เพื่อใช้ในการเขียน curl ที่เป็น extension ใน chrome ชื่อ postman

จากรูปและในวีดีโอจะเห็นได้ ว่า postman สามารถสร้าง source code ออกมาให้ เราได้เลย ทำให้สะดวกต่อการ ทดสอบ และการเขียนโปรแกรมเพื่อทดสอบการทำงาน ของ api ได้อย่างรวดเร็ว ลองดูนะครับ ผมว่ามีประโยชน์เลยทีเดียว