Unconference, Not Collaborative

ผมเคยเข้าร่วมกิจกรรม unconference 2 ครั้งด้วยกันคือ barcamp bkk ครั้งที่ 1 และครั้งที่ 3 ครั้งที่ 1 ผมไปถ่ายรูปแล้วไปกวนตีนเค้าอย่างเดียว ส่วนครั้งที่ 3 เตรียมหัวข้อไปดิบดีแต่ไม่มีใครเลือก (แม่ง) สิ่งที่ผมสังเกตุได้ระหว่างครั้งที่ 1 และ 3 คือคนเข้าร่วมมานั่งฟังนิ่งๆ มากกว่าสมัย 1 มาก และผมก็ไม่ได้เข้าร่วม event แนวนี้อีกเลย

เมื่อต้นปี ที่ทำงานผมคิดจะจัดงานแนวๆ unconference ขึ้นเหมือนกัน ให้คนใน office มาพูดมาแชร์กันทั้งเรื่อง technology, วิธีการทำงานเจ๋งๆ ของแต่ละคน อะไรทำนองนี้ มีการโปรโมตกิจกรรมไปทาง leader, manager ต่างๆ ให้คนมาร่วมเยอะๆ คนที่จัดก็มาชวนผมด้วยเพราะรู้ว่าผมเคยร่วม barcamp bkk และอ่านเวบพวกเทคโนโลยีบ่อย ซึ่งผมก็ตกลงไป

มีเพื่อนผมคนนึงสนใจงานนี้ (มั้ง) มาถามผมว่า “งานนี้คนเข้าร่วมต้องพูดด้วยเหรอ ทำไมต้องพูดด้วยอ่ะ นั่งฟังไปกินขนม (ฟรี) ไปอย่างเดียวไม่ได้เหรอ?

ผมก็ตอบไปแค่ว่า “เออ ทุกคนต้องพูด” แล้วมานึกย้อนหลังว่า ไม่แปลกที่งานพวกนี้จะและหลายๆ project แนว collaboration รอบตัวผมจึงไม่ประสบความสำเร็จเท่าไหร่

ป.ล. ผมว่าจะไปพูดเรื่องข้อดีของการใช้โปรแกรมพวก dropbox, google drive, ms skydrive ในงาน unconference ที่ office นี่แหละ น่าจะง่ายๆ ดี ฮ่าๆ

Python: post request with json

ออกตัวล้อฟรีก่อนว่าผมเขียนภาษา dynamic อยู่ 2 ภาษาคือ พอจะเขียน python ได้บ้าง (งาน script เล็กๆ แทน shellscript หรือเขียน process log file เพื่อเสริมการทำงาน) และภาษา javascript ซึ่งใช้ทำงานจริงจังมา 2 ปี

ปลายปีที่แล้วมีงานที่ต้องลอง reproduce ปัญหาด้วยการยิง http post request ที่มี input เป็น json format เพื่อดูผลการทำงานของ server อยู่บ่อยๆ เลยต้องหาวิธียิง request แบบง่ายๆ ซึ่งคิดไว้ 3 ทางคือ

  • ใช้ jQuery.ajax เขียน ก็ใช้เวลาไม่นาน
  • ใช้ Advanced REST client plugin บน Chrome ก็ได้
  • ใช้ RESTClient ของ Firefox ก็ได้

แต่ทุกตัวต้องมาเปิด browser อะไรยุ่งยาก เลยหาวิธีเขียนบน python รันแค่ cmd แล้วรัน script ก็น่าจะได้ผลเร็วกว่าเปิด browser พวกนี้ ก็เลยไปค้นๆ google มา

วิธีแรกใช้ lib Requests

import requests
import json

payload={'service':'QUOTE','subject':'AAPL'}
url='http://1xx.xx.xxx.xxx:8080/quote'
headers = {'content-type': 'application/json'}
r = requests.post(url, data=json.dumps(payload), headers=headers)
print r.json

สิ่งที่ผมลืมไปคือหลังๆ ผมติด json บน javascript ที่ key ไม่จำเป็นต้องเป็น string ซึ่งมันขัดกับ dictionary ของ python เลยงงๆ อยู่สักพักก็ได้ http request แบบง่ายๆ ขึ้นมา script นึง

ไอ้ script ที่แล้วใช้ 3rd party lib เลยอยากลองแบบ python lib เพียวๆ ดูบ้าง ลองค้นๆ วิธีดูสักพักก็ได้เจ้าตัวนี้มา

import urllib2
import json

payload=json.dumps({'closure':'Python test tool','service':'Chart','subject':['AAPL']})
headers = {'content-type': 'application/json'}
req = urllib2.Request(url='http://1xx.xx.xxx.xxx:8080/chart',data=payload,headers=headers)
f=urllib2.urlopen(req)
print f.read()
f.close()

จะเห็นว่า code ยุ่งยากขึ้นอย่างเห็นได้ชัด แต่ก็ค่อนข้างจะ simple ตามสไตล์ python อยู่ดี

ป.ล. ผมเคยลองหาข้อมูล python call webservice (xml, soap พวกนั้น) เพื่อใช้ทำ script test แต่พบว่ามันยากเย็นแสนเข็ญจนตัดใจไปใช้ soapui แทน

Seiryu Sushi by Galaxy S1+Lightroom

Update March 2021 ปีที่แล้วไปกินราคาขึ้นมาแพงมาก

ได้ยินเพื่อนพูดถึงร้าน Seiryu Sushi ตั้งแต่ปีที่แล้วว่าอร่อยนักอร่อยหนา แถมเพิ่งมาเปิดใกล้ๆ office คืออยู่ในซอยศาลาแดง (เกือบๆ จะถึง Tisco ครับ ซอยศาลาแดงที่เข้าจากพระราม 4 ข้างๆ ตึกอื้อจื่อเหลียงอ่ะนะ) วันนี้เลยไปลองหม่ำๆ กับเพื่อนมา


ตัวร้านดูหรูหรา ฮายโซว คนที่มากินก็แต่งกายกันฮายโซวมาก ทำให้พวกเสื้อยืด+กางเกงยีนส์อย่างพนักงาน office ผมดูเป็นตัวประหลาดไปเลย

อาหารก็เป็นพวกซูชิคำละ 30 (ปูอัด) จนไปถึงคำละ 400 (โอโทโร่), พวกยำไทยต่างๆ กับปลาดิบ, พวกข้าวหน้าปลาต่างๆ จานละ 300 กว่าบาทและพวกโรลหน้าต่างๆ จานละ 250 มีสิบกว่าโรล พวกผมก็กินโรลกันเยอะหน่อย เพราะมันดูเยอะสุดแล้วในราคาที่ถูกที่สุด ฮ่าๆ


แซลมอนโรล


ข้างในเป็นไข่ (มั้ง)

อร่อยดี แต่วาซาบิไม่สะใจเท่าไหร่ – -* แต่โดยรวมอร่อยมากกกกกก

Continue reading “Seiryu Sushi by Galaxy S1+Lightroom”