Reflections on installing TWiki

Yesterday, I spend some time installing TWiki wiki. Now in itself this is not special. However when reflecting on it, I (re)-learned an important lesson for developers. Let me explain.

Installing TWiki is fairly easy. Just follow the installation instructions. However, the no-extention files didn't seem to execute. The installation manual said that on some web servers the files need to be renamed to .pl or .cgi. So, I look in bin and see about 20 files without extension. I rename the first one, test it and it works.

I rename the second one and wonder. Renaming 18 files is a lot of work :) Should be able to be done faster. So renaming the first 2 back to the original name; I write some bash for loop to rename them all. Done!

I continue following the installation and done. The manual says> Just go to the login page. So I go there and... "internal server error". Not a very useful error message.

So reflecting on this, at this moment I have at least 2 choices.

  • Figure out what is wrong
  • Figure out what mistake I made


I guess I'm a typical programmer and I chose the first option, without thinking. So I spend an hour reading the web configuration, browsing the web forum, reading the perl code and nothing seems to be wrong. Thus I start editing the perl code and adding debugging messages to figure out on what line it generates the error. So after an hour... I find it! It cannot find a file called web.cfg (something like that). It's located in the bin directory....uhm... wait a second... in the bin directory? Yup. So... might it now have the name web.cfg.pl? Yup! Thats it! Just my mistake, I renamed the file by accident.

So, reflecting on this, I could have saved a lot of time. (On the other hand, I learned a lot of OTHER things during my debugging). What could be different?

  • When being lazy and automating things, pay attention :) Might seem obvious but I've been making this mistake over and over again the last years.
  • When something is not right, first think about what you could have done to break it. Not assume that the error is out there and not caused by your own actions. It's most probably because of my own mistake. So, I could have just traced back my steps and thought about where I could have made a mistake. The renaming of files would be one obvious place.

I'm not sure if I will ever learn these two simple guidelines. Still, I'll try :)

Read more

Scrum master ทำแค่เนี๊ยะ

Scrum master ทำแค่เนี๊ยะ

เวลามีคนถามว่า Scrum master ทำอะไร แล้วผมตอบว่าทำให้ Scrum เวิร์คสำหรับทั้งองค์กร ซึ่ง โฟกัสหลัก ๆ 4 อย่างก็จะอยู่ที่ Product owner, ทีม, engineering practices และ องค์กร บางครั้งที่ผมจะได้ยินเสียงตอบกลับมาเบา ๆ ว่า “แค่เนี๊ยะ?” ในฐานะ

By Chokchai
how to สร้าง Knowledge Management

how to สร้าง Knowledge Management

ตอนเรียน Large Scale Scrum กับ Jurgen de Smet สิ่งหนึ่งที่ผมได้เรียนรู้ คือ ปัจจัยสำคัญหนึ่งที่ทำให้องค์กรหนึ่ง ๆ จะเร็วขึ้นได้ คือ จะต้องเรียนรู้ไปพร้อม ๆ กันได้ ซึ่งถ้าอยากทำแบบนั้นได้ก็จะต้อง share ownership

By Chokchai
โลกการเขียนโค้ด ตอน ซามูไรกับสปาตั้น

โลกการเขียนโค้ด ตอน ซามูไรกับสปาตั้น

ซามูไรที่ได้รับความไว้วางใจให้แก้ core logic จะมีสัญชาตญาณซามูไร คือแก้ตรงนี้ จับยามสามตาแล้วรู้เลยว่าจะไประเบิดตรงโน้น แล้ววิ่งไปสกัดบั๊กไว้ก่อนความเสียหายจะเกิด (ถ้าเป็นในหนัง ตอนนี้เป็นบทที่บั๊กร้องว่า “มืงรู้ได้ไง?!” :D) หลังจากที

By Chokchai
ประสบการณ์ TDD

ประสบการณ์ TDD

มันมีบางชั่วขณะ ที่ผมอินกับ Test-Driven Development (TDD) มาก จนอยากจะแนะนำทักษะนี้ให้คนเขียนโค้ดทั่วโลกที่สนใจเลย ผมคิดว่า ทักษะนี้มีผลเยอะมาก ๆ กับความรู้ความชำนาญในการเขียนโค้ดของผมทุกวันนี้ แต่ที่ผมไม่เคยอธิบายเป็นคำพูดออกมาได้คือ ทำไมนะ? เมื่อเช้าตอนกำลังอ่านเกี

By Chokchai