Try Jenkins/PHP on Winows

1. install jenkin on windows 
download and install
> http://mirrors.jenkins-ci.org/windows/latest

2. install pear
download
> http://pear.php.net/go-pear.phar
run
> php go-pear.phar
add Environment Variable to your pear installation folder

3. install phpunit from pear
run
> pear config-set auto_discover 1
(set pear to search for package)
> pear install pear.phpunit.de/PHPUnit
(install pear from url)

additional
DbUnit
> pear install phpunit/DbUnit
PHP_Invoker
> pear install phpunit/PHP_Invoker
PHPUnit_Selenium
> pear install phpunit/PHPUnit_Selenium
PHPUnit_Story
> pear install phpunit/PHPUnit_Story
PHPUnit_SkeletonGenerator
> pear install phpunit/PHPUnit_SkeletonGenerator
PHPUnit_TestListener_DBUS
> pear install phpunit/PHPUnit_TestListener_DBUS
PHPUnit_TestListener_XHProf
> pear install phpunit/PHPUnit_TestListener_XHProf
PHPUnit_TicketListener_Fogbugz
> pear install phpunit/PHPUnit_TicketListener_Fogbugz
PHPUnit_TicketListener_GitHub
> pear install phpunit/PHPUnit_TicketListener_GitHub
PHPUnit_TicketListener_GoogleCode
> pear install phpunit/PHPUnit_TicketListener_GoogleCode
PHPUnit_TicketListener_Trac
> pear install phpunit/PHPUnit_TicketListener_Trac

test
> phpunit –version

4. install apache ant

windows
> https://code.google.com/p/winant/
** require JDK

PHPUnit 101
===

1. Create [User.php]

<?php
class User {
protected $name;

public function getName() {
return $this->name;
}

public function setName($name) {
$this->name = $name;
}

public function talk() {
return “Hello world!”;
}
}

2. Create [UserTest.php]

<?php
// include test target
require ‘User.php’;

class UserTest extends PHPUnit_Framework_TestCase
{
// define target object
protected $user;

// init object
protected function setup()
{
$this->user = new User();
$this->user->setName(‘Tom’);
}

// detroy after test finished
protected function tearDown()
{
unset($this->user);
}

// test talk()
public function testTalk()
{
$this->assertEquals(“Hello world!”, $this->user->talk());
}
}

3. run test

> phpunit UnitTest UserTest.php

Ant 101

1. Create [build.xml]

<project name=”user”>
<copy file=”User.php” tofile=”builds/User.php”/>
</project>

2. build file by ant
> ant -v
Ant will copy User.php to builds/User.php

3. run test before build
update build.xml

<project name=”user”>
<exec executable=”D:\wamp\bin\pear\phpunit.bat” failonerror=”true”>
<arg line=” UnitTest UserTest.php” />
</exec>
<copy file=”User.php” tofile=”builds/User.php”/>
</project>

*** executable should insert the fullpath

Jenkins 101

Create new job on jenkins dashboard
1. Click “new job”
2. enter job name
3. select free-style software project
4. ok
5. on Build trigger tab click Build periodically > Schedule
6. write “H/5 * * * *” mean build file every 5 minutes
7. on Build button click “Add build step”
8. select Invoke Ant
9. click advance
10. enter build file path
11. save

*** but for windows we prefer to use “Execute Windows batch command”
> “C:\Program Files (x86)\WinAnt\bin\ant” -file D:\wamp\www\lab\DEMO\build.xml

เรียนรู้ เรื่อง…Invisible Support ทักษะขั้นเทพของหัวหน้างาน

ref: https://www.facebook.com/photo.php?fbid=434206720012986&set=a.163584947075166.25005.163576530409341&type=1

» เรียนรู้ เรื่อง…Invisible Support ทักษะขั้นเทพของหัวหน้างาน 
» จาก ซีรี่ยส์ HORMONES

ไม่น่าเชื่อว่าหนึ่งในบทเรียนที่ชี้ให้เห็นทักษะขั้นเทพของหัวหน้าจะมาจากเรื่อง Hormones วัยว้าวุ่น ซีรี่ยส์ดัง

Invisible Support แปลว่า การให้ความช่วยเหลือโดยที่เจ้าตัวไม่รู้ ตามนิยามของ Dr. Kevin Ochsner ศาสตราจารย้ด้าน Neuroscience ที่มหาวิทยาลัยโคลัมเบีย สหรัฐอเมริกา

‘ของขวัญ’ หนีออกจากบ้านเพราะเพิ่งรู้ว่าเธอเป็นลูกของภรรยาคนที่สองของพ่อ เด็กที่เป็นนักเรียนเกรดเอ มั่นใจว่าตนเองคิดถูกทำถูกมาโดยตลอดรับไม่ได้เมื่อชีวิตสีชมพูของเธอต้องมาพบกับความไม่สมบูรณ์ 

และเพื่อนที่เธอหนีไปหาก็คือ ‘สไปรท์’ เด็กเกรดซีที่มีชื่อเสียมากกว่าชื่อเสียงแถมครอบครัวก็แตกแยก

ของขวัญ: “เราไม่เข้าใจ ทำไมไม่มีใครบอกเรา ทุกคนทำเหมือนเราเป็นเด็ก แล้วถ้าพ่อไม่เลือกก็ไม่มีบ้านไหนสมบูรณ์สักบ้านอ่ะ…”

สไปรท์: “แต่แกก็ไม่เคยรู้สึกขาดไม่ใช่เหรอ… เรื่องบ้านชั้นน่ะ แม่ชั้นเป็นคนเลิกกับพ่อเองพ่อชั้นติดการพนันมาก ตอนแรกแม่ก็ทน เพราะพ่อสัญญาว่าจะเลิกหลังมีลูก แต่พ่อก็ยิ่งหนักขึ้นเรื่อยๆ ชั้นว่าแม่ชั้นทำถูกนะ แม่ชั้นน่ะเก่งมากเลย แล้วถึงชั้นจะไม่มีพ่อ แต่ชั้นก็ไม่เคยรู้สึกขาดเลย”

ของขวัญ: “…(เงียบไปอย่างใช้ความคิด ก่อนจะตัดสินใจกลับบ้านเช้าวันรุ่งขึ้น)….”

::::::::::::::::::

งานวิจัยของ Dr. Ochsner บอกว่า สมองลูกน้อง ‘รู้สึกดี’ เมื่อรู้ว่ามีหัวหน้าคอยช่วยเหลืออยู่หากเกิดอะไรขึ้น แต่กลับ ‘รู้สึกแย่’ ถ้าหัวหน้ายื่นมือเข้าไปช่วยเหลือหรือให้คำแนะนำจริงๆ 

ประหลาดดี แต่นี่คือความมหัศจรรย์ของสิ่งเล็กๆในกะโหลกของมนุษย์ที่เรียกว่าสมอง

เพราะอะไรน่ะหรือ? 

สมองของเราให้ความสำคัญกับสิ่งที่เรียกว่า Status หรือสถานะ โดยมันจะวัดตนเองกับผู้อื่นรอบตัวอยู่เสมอว่าใครสูงกว่าใคร 

KPI ของสมองคือการเอาตัวให้รอด เวลาที่เราถูก (และผู้อื่นผิด) แปลว่าหากคนอื่นเห็นด้วยกับเราหรือทำตามสิ่งที่เราบอก สมองรู้สึกยินดีเพราะสถานะเราสูงขึ้น 

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

:::::::::::::::::

หากสไปรท์พูดว่า “ของขวัญแกอย่าคิดมากเลย ชีวิตมันก็เป็นอย่างนี้แหละ กังวลเรื่องเหลวไหลไปได้ พ่อเค้าบอกแกหรือเปล่าชีวิตแกก็ไม่ได้เปลี่ยนไป ใช้เหตุผลหน่อยอย่าใช้อารมณ์” 

คุณผู้อ่านคิดว่าสมองที่ถูกกด Status ของของขวัญจะว่าอย่างไรครับ? 

อาจเป็นประมาณนี้ “อย่างกับชีวิตแกสมบูรณ์นักเนี่ยะ บ้านแกก็ใช่จะดีกว่าชั้น แล้วแกเป็นใครมาให้คำแนะนำ…” 

หรือ

“ถ้าพี่คิดได้คิดถูกพี่ก็คงไม่ติดแหง็กเป็นแค่หัวหน้ากองมาเป็นสิบปีหรอก พี่รู้มั้ยว่าโลกเค้าไปถึงไหนกันแล้วยังจะมายกตัวอย่างสมัยโบราณอยู่ได้ เก่งนักก็ทำเองละกัน อีกไม่พ้นปีนี่หนูก็ไปแล้ว” 

(ประโยคหลังนี่ชักไม่เกี่ยวกับซีรี่ยส์แล้วนะครับ หุๆ)

เมื่อสมองลูกน้องไม่ชอบรู้สึกว่าตนเองผิด เวลาหัวหน้าให้คำแนะนำปากเขาบอกว่าเห็นด้วยแต่ใจอาจไม่คิดอย่างนั้น 

พี่จะเอายังไงก็บอกมาละกัน หัวหน้าที่ปากเปียกปากแฉะหลายคนจึงดูเหมือนทำงานให้ลูกน้องแทนที่ลูกน้องจะทำงานให้หัวหน้า 

ยิ่งไปกว่านั้น สมองของหัวหน้าเองก็ชอบรู้สึกว่าตนเองถูก มันจึงรู้สึกดีกับการ ‘บอก’ ลูกน้องให้ทำในสิ่งที่ตนต้องการ และเมื่อบอกแล้วลูกน้อง ‘ต้องทำตาม’ สมองหัวหน้าก็ยิ่งมีความสุขกว่าจะรู้พฤติกรรมช่างบอกนี้ก็กลายเป็นยาเสพติดแก้ไม่หาย

::::::::::::::::::

Invisible Support คือกลยุทธ์ยิงสองโจทย์ในนัดเดียว 

สิ่งที่สไปรท์ทำคือการให้ความเห็นใจและการให้คำตอบโดยที่ของขวัญไม่รู้ตัว สำหรับผู้นำ Dr. Ochsner แนะนำขั้นตอนง่ายๆคือ 

1) Express empathy กับลูกน้อง เช่น “มันยากใช่มั้ย พี่ก็รู้ว่ามันยากถึงได้ไว้ใจให้เธอทำ” 

2) Lower your status เช่น “รู้มั้ยว่านี่เธอทำได้ดีมากแล้วนะ สมัยก่อนพี่เจองานแบบเดียวกับเธอเนี่ยไปไม่เป็นเลย เด็กสมัยนี้เก่งนะมีตัวช่วยเยอะ ตอนนั้นกว่าพี่จะหาทางออกได้งมอยู่เป็นนาน” หลังจากนั้นก็กลั้นใจรอ 

เพราะสิ่งที่หัวหน้ามองหาจากลูกน้องคือประโยคประมาณนี้ “จริงเหรอคะ แล้วพี่ทำยังไงตอนนั้นถึงได้ผ่านมาได้?” 

::::::::::::::::::

Invisible Support คือลูกน้องกำลังให้โอกาสเราบอกความคิดของเราโดยเขาไม่รู้สึกว่ากำลังถูกบอก หากเขาเป็นผู้ถามสมองเจ้าตัวจะเปิดรับความคิดของเราโดยไม่รู้สึกต่อต้าน

Susan Cain ผู้เขียนหนังสือเรื่อง Quiet: The Power of Introverts แปลกันตรง ๆ ง่าย ๆ ว่า พลังของผู้นำที่สุขุมไม่พูดมาก บอกคล้ายกันว่าผู้นำที่ฟังมากกว่าพูดเป็นผู้นำที่สร้างทีมที่ประสบความสำเร็จมากกว่าผู้นำที่โผงผางและช่างพูด (Extroverts) 

เพราะความเงียบเป็นการสร้าง Invisible Support ทำให้ลูกน้องทำงานได้อย่างเต็มที่และสามารถใช้ศักยภาพของทีมได้ดีกว่าผู้นำที่ “อะไร ๆ ก็ต้องพี่”

ก่อนจบ…ต้องเรียนคุณผู้อ่านว่า Invisible Support นี้มักใช้ได้ดีกับลูกน้องที่ ‘มีหัวคิด’ นะครับ เช่นเจน X ที่ยังไฟแรงหรือเจน Y ที่ชอบมีไอเดียบรรเจิด 

แต่กับลูกน้องที่คิดไม่เป็นทำตามสั่งได้อย่างเดียวมักไม่ค่อยได้ผล อ้าว… แล้วถ้าพี่มีแต่ลูกน้องที่คิดเองไม่เป็นล่ะ ควรทำอย่างไร? คำถามนี้ตอบง่ายครับ…

“พี่ก็ทำเองต่อไปละกัน”

::::::::::::::::::

Credit : ดร. ธัญ ธำรงนาวาสวัสดิ์ – CEO Blogs / กรุงเทพธุรกิจ

เดินทางใหม่

ผมเพิ่งลาออกไปเมื่อวันอังคารที่แล้ว (2013-09-17)

ไม่ใช่เพราะว่าผมได้งานใหม่ แต่เป็นเพราะว่าผมกำลังจะเปิดบริษัทของตัวเอง

ไม่รู้ว่ามันช้าไปหรือปล่าว แต่มันก็ต้องลุย แก่กว่านี้ก็จะลุยไม่ได้แล้ว