Description: Description: JLab

JLab เป็นซอฟต์แวร์ช่วยพัฒนาโปรแกรมภาษาจาวา
และเป็นชุดปฏิบัติการและทดสอบในห้องปฏิบัติการซอฟต์แวร์

คุณสมบัติ (ภาพยนตร์สาธิตการทำงาน)
การติดตั้ง
ตัวอย่างชุดปฏิบัติการ
การใช้งานในระบบ online (pdf)
รุ่นต่างๆ
คำถามซ้ำซาก

กระดานถามตอบเกี่ยวกับ JLab



ผู้จัดทำ : สมชาย ประสิทธิ์จูตระกูล 

คุณสมบัติ

JLab ทำงานในสองสภาพดังนี้

  • Offline : เป็นซอฟต์แวร์ช่วยพัฒนาโปรแกรมภาษาจาวา (Integrated Java Program Development Environment) มีคุณสมบัติของ IDE ทั่วไปดังนี้
    • Edit : syntax highlight + auto indent + auto format + auto code completion + undo/redo + comment/uncomment + line numbers
    • Build : compile + run + run Test Script 
    • Debug : step in + step out + step over + run to cursor + breakpoint + pause + multi-thread support + with local vars and stack trace displays
    • Support both Sun's and IBM's Java 2 SDK 
    • Support standard JDK Help files in HTMLHelp, WinHelp, HTML formats, or auto generate from j2sdk installation
    • Support jivelint (Java static analyzer), jacobe (Java source code beautifier), RSM (Resource Standard Metric) and javadoc (Java document generator)
    • Come with JLabIO class to ease the input, formatting, and file operations
    • Open/Save the project in standard Java archive format (jar)
    • Export to java or RTF files and Print/Page setup features
    • Import java source codes of any standard Java 2 classes
    • Support  RetroGuard for obfuscating jar file
    • javac / Jikes : user selectable compiler (Jikes is a much faster compiler from IBM)
    • Thai / English : user selectable language for javac compilation error message with additional suggestions also in Thai
    • Standard and easy to use GUI with skin support
    • Online update
    • Run on Windows 98, Me, NT4, 2000, XP, Vista, 7, 8
  • Online : เป็นซอฟต์แวร์ใช้ในห้องปฏิบัติการเพื่อการปฏิบัติการโปรแกรม และการทดสอบย่อยเก็บคะแนน โดยตัว JLab ติดต่อกับเครื่องแม่ข่าย  เพื่อรับชุดปฏิบัติการ จัดเก็บ และแสดงผลการปฏิบัติการ

ลักษณะของปฏิบัติการประกอบด้วย

    • คำถามปรนัยสั้นๅ ก่อนลงมือปฏิบัติการ  (ตรวจให้รู้คะแนนทันที ทำได้ครั้งเดียว)
    • เขียนโปรแกรมตามคำสั่ง (โดยสามารถสั่ง run test script เพื่อตรวจดูความถูกต้องได้  ตรวจให้รู้คะแนนทันที สามารถแก้ไขแล้วทดสอบ ได้หลายๆ ครั้งจนกว่าจะพอใจ)
    • คำถามอัตนัย : ตอบคำถามสั้นๆ ทำการทดลองด้วยการเขียนโปรแกรม เติมผลลัพธ์ และสรุปการปฏิบัติการ (ผู้ช่วยสอนตรวจหลังปฏิบัติการ)
    • มีระบบตรวจสอบ login/logout ของผู้เข้าปฏิบัติการ และเก็บ access log
    • มีระบบควบคุมเวลาการปฏิบัติการ
    • มีระบบสำรองผลการปฏิบัติการ ในกรณีต้องเปลี่ยนเครื่อง
    • มีระบบตรวจและจัดเก็บคะแนนมากสุดระหว่างการทดสอบและปฏิบัติการ
    • จัดเก็บผลการปฏิบัติการในรูปแบบ html พร้อมแสดงหลังปฏิบัติการ
    • มีระบบการยอมลดคะแนนเต็ม เพื่อแลกกับการได้สิทธิอ่านข้อแนะนำเพิ่มเติม ในกรณีที่ทำการทดสอบไม่ได้
    • รองรับเครื่องแม่ข่ายคุมการปฏิบัติการได้หลายเครื่อง (สำหรับกรณีที่อาจมีข้อบกพร่องทางเครือข่าย)
    • เครื่องแม่ข่ายเป็นได้ทั้ง Windows NT4, 2000, XP, Unix หรือ Linux
    • เก็บ JLab + J2SDK + Help files ทั้งหมดไว้ที่เครื่องแม่ข่ายเพียงชุดเดียวเพื่อให้ใช้ร่วมกันก็ได้ ทำให้ง่ายต่อการปรับเปลี่ยนซอฟต์แวร์

ปัจจุบัน JLab ถูกใช้เป็นซอฟต์แวร์ช่วยการทดสอบย่อยในวิชา 2110211  โครงสร้างข้อมูลเบื้องต้น (นิสิต 100 คน สองอาทิตย์ครั้ง) และเป็นปฏิบัติการเสริมสำหรับวิชา 2110101 การทำโปรแกรมคอมพิวเตอร์ (นิสิต 400 คน สองคนต่อเครื่อง อาทิตยละสองรอบ)

ผมใช้เครื่อง NEC Express 5800 Multiprocessor two-Pentium Pro 200MHz (เครื่องเก่าซื้อมาตั้งแต่ปี ค.ศ. 1999) + 2GB IDE HD + 144MB RAM  ซึ่งสามารถรองรับการปฏิบัติการได้ 100 เครื่องพร้อมๆ กัน ได้สบายๆ  (ยังไม่เคยลองมากกว่านี้)


รุ่นต่างๆ

รายการของคุณสมบัติต่างๆ ที่ได้ทำมา

  • ver 9.14.01 (30/01/2013)
    • ปรับ JPlay ให้บันทึกน้อยลง
    • แก้ปัญหาการบันทึกเมื่อใช้กับ java 7u11
  • ver 9.13.07 (06/07/2012)
    • เพิ่ม JPlay (บันทึกการเขียนโปรแกรมใน lab ดูตัวอย่าง)
    • ปรับวิธีการนับคำสั่งการทำงานใน jprofile
  • ver 9.13.03 (01/03/2012)
    • เพิ่มความสามารถในการนับจำนวนครั้งที่แต่ละคำสั่งทำงานในโปรแกรม ใช้ประโยชน์ในการศึกษาประสิทธิภาพการทำงานของอัลกอริทึม (ดู ตัวอย่าง), สั่งใช้ความสามารถนี้ด้วยเมนู Run -> Run+Profile หรือด้วยปุ่ม Ctrl+Shift+F5
    • ข้อจำกัดเมื่อทำงานในภาวะแบบนับคำสั่ง
      • รองรับ Java 2 ลงมา ยังไม่รู้จักคำสั่งใน Java 5, 7 :(
      • โปรแกรมจะทำงานช้าลงประมาณ 10 เท่า (เท่าที่ทำการทดลองมา)
  • ver 9.12.05 (01/05/2011)
    • ใช้ OneJar ในการสร้าง executable jar
    • ฆ่าแมลง : copy ลง clipboard
  • ver 9.12.03 (21/03/2011)
    • ฆ่าแมลง : แก้ปัญหา mousewheel scroll up ไม่ได้ ของ Microsoft Mouse
  • ver 9.11.06 (07/06/2010)
    • เพิ่มการสร้าง Executable jar ในเมนู File -> Export (จะ embed คลาสใน jlab.* ให้ใน jar)
    • เลิกการ save as แบบ .jar และลบ acm.jar กับ junit.jar ออก
    • เพิ่มบริการ keyPressed, getKeyEvent ใน DWindow
    • เพิ่มบริการ jlab.tester (มีการบันทึกผลของ testscript ทุกครั้ง)
    • ตั้ง mainClass ให้กับคลาสแรกที่สร้างโดยอัตโนมัติ (เปลี่ยนเองได้ใน Tools -> Options
    • ฆ่าแมลง : การสร้าง javadoc, การใช้ \ ในคำสั่งที่เรียก jar (เปลี่ยนเป็น /)
  • ver 9.11.04 (22/04/2010)
    • เพิ่มตัวเชื่อม "เรียนนิรันดร์" ไปที่หน้า ULearn ที่หน้าแรกของ JLab
    • ฆ่าแมลง : jar ของ Java 6u20 เปลี่ยนไป (มีปัญหาเปิดแฟ้มที่มีการประกาศ package ไม่ได้), error เมื่อเรียกใช้กับระบบที่ไม่ได้ติดตั้ง jdk
  • ver 9.10.01 (20/07/2009)
    • ฆ่าแมลง : DWindow บางครั้งไม่วาด, drawString ของ DWindow แสดงผลช้า
  • ver 9.09.09 (9/09/2008)
    • Drag & drop .jar หรือ .jlab ไว้ที่หัววินโดว์ JLab เพื่อรวมแฟ้มที่ลากมาเข้าให้โปรแกรมที่เขียนใช้อ้างอิงได้
    • แนบแฟ้ม jlab.chm ที่มีรายละเอียดการใช้งานบางส่วนของ String, Math, Scanner, DWindow, DPoint, DImage
    • มีตัวแจ้งเตือนตอนเปิดโปรแกรม ถ้าพบว่าเครื่องที่ใช้อยู่ตั้งภาษาไทยไม่ถูกต้อง
    • แสดงวินโดว์แบบ DWindow ที่หัวมุมขวาบนของ JLab วินโดว์
    • เพิ่ม hot-key : shift+ctrl+space (ย้ายวินโดว์มาไว้กลางจอ), shift+ctrl+UP (เพิ่มขนาดตัวอักษร), shift+ctrl+DOWN (ลดขนาดตัวอักษร)
    • แสดง magic key เมื่อได้คะแนนเต็ม (ใช้กับระบบ E-learning วิชาการเขียนโปรแกรมของ Thailand Cyber Univ.)
    • ฆ่าแมลง : ปรับให้การ repaint ใน DWindow ทำงานได้ถูกต้องระหว่างการ debug, การจัดรูปแบบคำสั่งผิดกรณี -1 กับคำสั่งที่เกี่ยวกับ generics
  • Ver 9.06.06 (06/06/2008)
    • เพิ่มเมนู tools -> command prompt
    • เพิ่ม hintstring ใน testscript
    • ยอมให้ปรับขนาดฟอนต์และระยะห่างบรรทัด เมื่อมี protected lines
  • ver 9.02.02 (02/02/2008)
    • เพิ่ม "ปฏิบัติการฝึกหัด" ไว้ที่หน้าแรก เพื่อให้ฝึกการเขียนโปรแกรม (จอแรกหลังเรียก JLab ลองกดดู ต้องต่อ net นะครับ)
    • กำหนดคะแนนเต็มของแต่ละข้อไว้ใน tester  แล้วระบบจะรวบรวมและแสดงให้เอง (ไม่ต้องกำหนดใน qconfig.ini)
    • บันทึกคะแนนที่ทำได้ใน cookie เพื่อให้ javascript ใน mainpage อ่านไปแสดงได้
      (และบังคับให้ mainpage refresh เมื่อมีคะแนนเปลี่ยนแปลง)
    • เพิ่ม mailbox และ mail subject ใน quiz package ให้ง่ายต่อการส่ง mail
    • ใช้ MXLoopup หา mail gateway ให้อัตโนมัติ
    • ให้บันทึกเป็น .alab ใน author mode
    • ปรับการแสดงโลโก้ JLab แบบ fade-in fade-out
    • เลิกแนบ jike (เขาไม่ทำ Java 5) กับ retroguard (เขาเปลี่ยน license)
    • ฆ่าแมลง : ปรับวิธีการ initialize debugger ใหม่, แก้ปัญหาการกด F1 ไม่ได้ใน author mode, ปรับปรุงตัว Tester, ปรับ jpec.stx ให้รู้จักคลาสอีกมากมายของ Java5 และ 6, ไม่อนุญาตให้ beatify และ refactor คลาสที่มี protected lines, แก้ไขเรื่องการไม่ตั้งสีให้กับ normal text, การตั้งสีให้ text file, การตั้งสีที่ผลลัพธ์ใน submitted HTML, และการตั้ง line spacing ต่าง ๆ
  • ver 8.09.10 (10/09/2007)
    • ฆ่าแมลง : ตั้ง jdk version ผิด, เรียก debugger ครั้งแรก ๆ อาจไม่ติด, ctrl-mousewheel ปรับขนาดแล้วเละ (แก้โดยไม่ให้ปรับ), แสดงข้อความผิดถ้ามี '\0' (เช่น System.out.println("AB\0CD");)
  • ver 8.06.06v (05/07/2007)
    • แค่แก้ไข installer ให้ใช้ได้กับ Windows Vista
  • ver 8.06.06 (06/06/2007)
    • เพิ่ม jlab.Tester ใน jlab packageเพื่อการเขียนตัวตรวจให้คะแนนที่ง่ายขึ้น
    • ฆ่าแมลง : แก้ให้แสดง splash screen แบบปกติได้บน Vista (แต่ก็ยังมีปัญหากับ Vista ครับ)
  • ver 8.02.02 (02/02/2007)
    • เพิ่ม acm.jar ตามกลุ่ม ACM Java Task Force
    • สามารถ ลากและปล่อย แฟ้ม.class ลง JLab ให้เขา decompiler เป็น source code ให้อัตโนมัติ
    • ปรับให้นำเสนอบทเรียนไปพร้อมกับให้ปฎิบัติการเขียนไปด้วย (เพิ่ม Main, Demo, Quiz tabs)
      (วางแผนให้ใช้ JLab ครบวงจร : ฟังคำบรรยาย ดูการสาธิต ทำทดสอบย่อย และลองเขียนโปรแกรม)
    • ตั้งให้ compiler ใช้ Java 5 อัติโนมัติ
    • เขียนคลังคำสั่ง Tester เพื่อให้ผู้ออกโจทย์เขียนตัวตรวจได้ง่ายขึ้น (ล้อเลียน JUnit 4.0)
      ลองดูตัวอย่างการเขียนตัวตรวจได้
    • ฆ่าแมลง : แก้ให้รู้จัก Java 6, ปรับให้ใช้ได้กับคลาส Scanner (วางแผนว่าจะเลิกให้ JLabIO), ปรับการ obfucate ให้รองรับคุณสมบัติใหม่ของ Java 5 (ใช้ retroguard รุ่นใหม่ 2.3)
  • ver 7.07.07 (07/07/2006)
    • online mode
      • แสดงข่าวสารจากผู้คุมสอบแบบ real-time ระหว่างการสอบ (เช่นคำแนะนำ การแก้ไขโจทย์ ...)
      • แสดงสถิติคะแนนของนักเรียนทั้งหมดระหว่างการสอบ (เปลี่ยนแปลงแบบ real-time)

คะแนน

13:43:18

08.0 - 10.0


06.0 - 08.0


04.0 - 06.0


02.0 - 04.0


00.0 - 02.0


 

จำนวน

      • ลดปริมาณเนื้อที่เก็บของผลสอบที่ server
      • ในกรณีอนุญาตให้ทำ lab ต่อนอกเวลา นักเรียนสามารถเลือกทำต่อจากผลที่เคยส่งในอดีตขณะ log-in
    • author mode
      • แก้ไขการกำหนดประเภทของคลาสใน tester ให้สื่อความหมายมากขึ้น (TesterPrivate, TesterPublic, Incomplete)
    • offline mode
      • เพิ่ม hotkey เพื่อปรับขนาดของตัวอักษร
      • ให้ระบบทำงานและแสดง call-tree ของเมท็อดที่สนใจได้ระหว่างการทำงาน
        (ใช้บ่อย ตอนสอน recursive methods)
    • ฆ่าแมลง : ป้องกันการเรียก jlab เกินหนึ่งครั้งใน lab
  • ver 6.06.06 (06/06/05)
    • เพิ่มความยืดหยุ่นในการเชื่อมต่อกับ server กรณี resolve ชื่อเครื่องแม่ข่ายไม่สำเร็จ
    • ใส่เวลากำกับการกด compile ทุกครั้งในข้อมูลสถิติ
    • ฆ่าแมลง : แก้ปัญหาเรื่องเปลี่ยนแบบอักษรกับแฟ้มที่มีการป้องกันการแก้ไข
  • ver 6.01.11 (11/01/05)
    • ทำคำถามแบบตัวเลือกให้รับแบบ multiple-select (checkbox) ได้
    • ใช้ user name ของ Windows มาเป็น user id ตอน login เข้าทำปฏิบัติการ
    • เปิดโอกาสให้นักเรียนเลือกทำปฏิบัติการย้อนหลังได้ตามที่ผู้ควบคุมอนุญาต
    • เพิ่มหน่วยปิดเปิด server ตามเวลาที่กำหนด โดยทำงานเป็น service หนึ่งของ NT (ใช้ได้เฉพาะกับ server ที่เป็น NT, 2000 หรือ 2003)
    • จำลองการใช้ online mode ได้ (เพื่อให้เห็นลักษณะการใช้งานในห้องปฏิบัติการ การเข้าสู่ระบบ การรับ การเขียนโปรแกรม การตรวจสอบ การส่งงานและอื่น ๆเรียกใช้การจำลองนี้ที่ เมนู Start->Programs->JLab-6->JLab-Simulated-Online (Lab)
    • แนบหน้าเอกสารต่าง ๆ ที่ปรากฎในเวปนี้ เพื่อให้ไปดูได้แบบ offline พร้อม ภาพยนตร์สาธิตการใช้งาน JLab
    • เพิ่มเมนู Window->clear console
    • เพิ่ม beanshell console เพื่อใช้ในการทดสอบเรียกใช้งานคลาสที่กำลังพัฒนา หรือทดสอบคำสั่งอื่น ๆ ในจาวาได้อย่างคล่องตัว (ดูภาพยนตร์สาธิต)
    • เพิ่มเมนู Window->Back ในการถอยกลับไป page ก่อนหน้า (สำหรับกรณีที่ระบบ disable ปุ่มขวาของ browser ระหว่างการทำ quiz)
    • เพิ่ม command line option /noflashwindow (ใช้ช่วยในกรณ๊ที่มีปัญหาตอน startup ตัว flash window จะได้ไม่บัง error message)
    • สามารถ add แฟ้มแบบ Text ได้ (เมนู File->New-Text File) เพื่ออำนวยความสะดวกในการสร้างแฟ้มข้อความ เพื่อใช้บันทึกอะไรก็ได้ หรือเพื่อให้สร้างแฟ้มข้อมูลที่ใช้กับโจทย์ของโปรแกรมต้องมีการอ่านแฟ้ม
    • เปลี่ยน startup flash window (About window) ให้ดูแปลกตา
    • ฆ่าแมลง : truncate คะแนนให้เหลือเฉพาะสองหลักขวา, เติม file type ให้เป็น .jlab ตอนบันทึกแฟ้ม, การสร้าง jar ให้เข้ามาตรฐานมากขึ้น การตั้ง font ที่ถูกต้องสำหรับ code ที่มี protected area  การตรวจสอบการลบ temp space ที่รัดกุมมากขึ้น  และเรื่องจุกจิกอื่น ๆ ที่พบ
  • ver 5.11.01 (01/11/04)
    • แก้ตัว editor ให้จัดรูปแบบ สารพัดคุณสมบัติใหม่ ๆ ของ Java 5 พวก generics, enum, enhanced for (ดูภาพยนตร์สาธิต)
    • สามารถตั้ง breakpoint กับบรรทัดใน inner classes ได้แล้ว (แต่ต้องตั้งตอนเรียก debugger แล้ว)
    • เชื่อมกับ J2ME Wireless Toolkit ได้ (ลองกับ Toolkit 2.2 beta) เมื่อกด run จะ compile, preverify, package เป็น jar, สร้าง jad file แล้วก็ launch emulator ให้อัตโนมัติ นอกจากนี้ debugger ก็ทำงานร่วมกันได้ด้วย
    • เพิ่มการแสดงรูปผู้สอบ เมื่ออยู่ใน quiz mode
    • ฆ่าสารพัดแมลงอีกหลายตัวใน debugger
  • ver 5.07.09 (9/07/04)
    • ใส่แฟ้มผิดรุ่นใน 5.7.8 ก็เลยใช้ไม่ได้  แก้ไขแล้ว
  • ver 5.07.08 (8/07/04)
    • เมื่อทำ autostep กับการทำงานแบบ multithread แต่ละ thread มีสี highlight thread ละสี ทำให้เห็นการทำงานแบบแบ่งปันกันอย่างชัดเจน และยังมีตัวปรับความเร็วการ autostep อีกด้วย (ข้อแนะนำ : แนะนำให้เปิด Windows Media player ไว้ขณะทำ autostep จะทำให้ autostep เร็วขึ้นอย่างฉับพลัน  ยังงงงงอยู่เหมือนกันว่าทำไม?) ดูภาพยนตร์สาธิตการทำงานก่อนก็ได้
    • ฆ่าสารพัดแมลงใน debugger, run+profile และอื่น ๆ
  • ver 5.05.00 (31/05/04)
    • ให้ debug panels ต่าง ๆ ปรับขนาดได้
    • เพิ่มเมนู STOP (ที่ทำหน้าที่เหมือนการกด Shift_F5) เพื่อยกเลิกการทำงานของโปรแกรมที่สั่ง Run หรือ Debug
    • เรียกใช้ JAD (http://www.kpdus.tripod.com/jad.html)  เพื่อแสดง source code กับ byte code คู่กัน
    • ถอดความสามารถเรื่อง skin ออก (รู้สึกรำคาญ)
    • online mode : การเลือก lab ที่จะเข้าปฏิบัติการ กระทำผ่านเมนูที่ติดตั้งที่ server (admin สามารถปรับปรุงเปลี่ยนที่ server ได้ง่ายกว่าในอดีต)
    • ใช้ได้กับ j2sdk1.5 beta 2 (เรื่อง debugger ไม่มีปัญหาแล้ว  แต่ตัว editor ยังไม่รู้จัก syntax ใหม่ ๆ ของ 1.5 ครับ)
    • ฆ่าแมลง : การคำนวณคะแนนที่เป็นเศษทศนิยมถูกปัดเศษ, obfuscate เฉพาะ public (เปลี่ยนเป็นรวมพวก protected ด้วย)  และแมลงตัวเล็กตัวน้อยที่น่ารำคาญจำนวนหนึ่ง
  • ver 5.01.21 (21/01/04)
    • ฆ่าแมลง : ตั้ง java class option เป็น 1.4 แล้วแปลไม่ได้ (#15), ลืมแนบ control ให้สองตัว (#21)
  • ver 5.01.14 (14/01/04)
    • ใช้กับ j2sdk1.5.0 alpha release ได้  (แต่ตัว debugger ยังมีปัญหาอยู่)
    • autoStep : เมื่อตั้งให้ทำงานในภาวะ autoStep ผู้ใช้จะเห็นโปรแกรมค่อยๆ ทำงานไปทีละคำสั่ง โดยคำสั่งที่กำลังทำงานอยู่จะมีสีให้เห็นเด่นชัด (คิดง่ายๆ เหมือนๆ การ debug โปรแกรมแหละ แต่ระบบช่วยกดปุ่ม step ให้อัตโนมัติ  ดูภาพยนตร์สาธิต)
    • สามารถให้ระบบทำ profile นับจำนวนครั้งที่บรรทัดที่เราสนใจทำงาน เหมาะในกาเสริมการสอนอัลกอริทึมระหว่างการวิเคราะห์ (เช่นตั้งคำถามว่า บรรทัดที่ 13, 15, และ 21 ของโปรแกรม heap sort จะทำงานกี่ครั้ง เมื่อตั้งให้ข้อมูลทดสอบมีค่าเรียงลำดับจากน้อยไปมาก อะไรทำนองนี้ เป็นต้น) วิธีใช้งานก็เพียงแต่คลิกที่หมายเลขบรรทัด (ตรงแถบที่แสดงบรรทัด) ที่สนใจ (เหมือนกับการตั้ง breakpoint) แล้วก็สั่งโปรแกรมทำงาน (เลือกเมนู "Run+Profile") เมื่อโปรแกรมทำงานเสร็จ ก็จะมีสรุปจำนวนครั้งที่บรรทัดต่างๆ ทำงานให้เห็น (ดูภาพยนตร์สาธิต)
    • ปรับหน้าตานิดหน่อยให้ดูแบบ XP ถ้านำไปใช้งานใน XP
    • รับรู้การหมุน mousewheel และเพิ่ม horizontal scrollbar
    • เพิ่มบริการการ copy แบบ rtf, html ทั้งแบบรวมหมายเลขบรรทัดและไม่รวม (จะได้สะดวกเวลาตัดปะ code ไปไว้แสดงในเอกสารอื่นๆ )
    • เชื่อมต่อกับ FindBugs (วิธีติดตั้ง ให้ download zip จาก http://www.cs.umd.edu/~pugh/java/bugs แล้ว unzip ลงใน JLab-5\Tools จากนั้น เปลี่ยนชื่อ folder ของ FindBugs ซึ่งจะมีหมายเลขรุ่นด้วย เช่น "FindBugs-0.7.0" เป็น "FindBugs" )
    • ปรับการทำงานใน online mode เพื่อให้สามารถเลือกทำ lab หรือ quiz ต่างๆ ได้จากระบบ JLab เอง (รุ่นเก่าใช้เลือกจาก icon บน desktop)
    • ฆ่าแมลง : ไม่รับ control codes (เช่น ESC) 
  • ver 4.11.11 (11/11/03)
    • เพิ่มให้รับปุ่ม ctrl-break เพื่อหยุดโปรแกรมที่ทำงานอยู่ (เช่นโปรแกรมติด loop) - คุณบัณฑิต จิตคงชื่นแนะนำมา
    • เพิ่มเมนู Edit->Paste as New Class เพื่ออำนวยความสะดวกในกรณี copy-&-paste คลาส
    • รับรู้ link ประเภท import เพื่อให้สามารถ load แฟ้ม java อัตโนมัติโดยการกด link ที่หน้าเอกสาร html (หรือ pdf)
    • ลดเวลาการทำงานตอน load  JLab
    • ยอมรับ  drag-drop แฟ้มแบบ .java หลายๆ แฟ้ม  และแฟ้ม .jlab ได้ (ขณะยังไม่ได้เปิดแฟ้ม .jlab ใดๆ)
    • สนับสนุนปฏิบัติการแบบเปิด (ไม่มีการกำหนดเรื่องเวลา)
    • ฆ่าแมลง : กำจัด Error 32011 (แสดงตอนเปิดแฟ้ม jlab), ปรับช่องว่างหน้าหลัง { } ใน auto format, ตั้งค่าให้ถูกต้องตอนสร้าง javadoc
  • ver 4.06.08 (08/06/03)
    • ใช้กับ compiler ของ JSR014 และ JSR201 ได้ (รองรับ generic type, enum, static import, foreach, autoboxing, variance, varargs) ซึ่งเป็นคุณสมบัติใหม่ๆ ของรุ่น 1.5  (ที่จะออกปีหน้า)  ต้อง download  http://developer.java.sun.com/developer/earlyAccess/adding_generics/index.html จากนั้น unzip เอา gjc-rt.jar และ collect.jar เก็บไว้ที่ JLab folder แล้วใส่ -source 1.5 ไว้ที่ javac option
    • เรียกใช้ JRefactory (jrefactory.sourceforge.net) สำหรับการปรับเปลี่ยน code (refactor) ได้สะดวกและเป็นระบบ  อีกทั้งรองรับการเพิ่มโครงของ javadoc comment ให้กับ source code อย่างอัตโนมัติ
    • เรียกใช้ Java2HTML (www.java2html.com) สำหรับสร้างชุด html pages ที่แทน source codes ต่างๆ พร้อมกับ links
    • เรียกใช้ BeanShell (www.beanshell.org) ได้กับ classes ที่กำลังพัฒนาอยู่ภายใต้ JLab console, DOS console, หรือแบบ standalone
    • อนุญาตให้ beautify ทุกๆ คลาสได้ (น่าจะทำต้องนานแล้ว)
    • ปิดบริการสร้าง javadoc help file ของ Java 2 API spec. จาก source code ของ Java 2 platform แบบอัตโนมัติตอนเรียกครั้งแรก หลัง install JLab  เนื่องจากระบบทำงานช้าและกินหน่วยความจำมากเกินไป
    • เปลี่ยนมาใช้ Inno Setup (http://www.jrsoftware.org) เป็นตัว setup
    • ทำ file association ของแฟ้มแบบ .jlab กับ JLab (double click แฟ้มแบบ .jlab จะเรียก JLab และเปิดให้เลย)
    • ฆ่าแมลง : จัดรูปแบบ unary operators ไม่ดี, File->New เลือก template ผิด, flash screen ชอบบัง dialog box, tab order ตามที่ต่างๆ ไม่เป็นระเบียบ, ...
  • ver 4.00.01 (05/04/03)
    • แนบ junit.jar ใน installation และเพิ่ม template ในการเขียน unit test
    • เขียน HTML editor สำหรับการเขียน sheet lab (ใช้ MSHTML ช่วย)
    • ฆ่าแมลง : ความคลาดเคลื่อนของการแสดงหมายเลขบรรทัดใน editor, การสร้าง javadoc ให้ทำแบบเล็กสุดๆ, หมายเลขบรรทัดที่ export หรือพิมพ์ออกมาต้องมีสีตามสภาวะของบรรทัดด้วย, เพิ่มให้ใส่ชื่อ class หรือ package ที่ไม่ต้องการให้ debugger step into, การลบแฟ้มภายในไม่มี dialog โผล่ ถ้าเกิด sharing violation, ให้ watchdog ไม่สนใจ app ของ j2sdk, จอเลอะเทอะเมื่อมีภาษาไทยปนอังกฤษกับแบบอักษรที่ไม่มีไทย
  • ver 3.08.00  - (ใช้ทดสอบในห้องปฏิบัติการของวิชา 2110101 และ 2110211)
    • Author mode : ในอดีต ผมต้องใช้เครื่องมือพื้นฐานตัวอื่นมาสร้างแฟ้ม lab หรือ quiz ซึ่งยุ่งยากซับซ้อน คราวนี้เราสามารถใช้ตัว JLab สร้างแฟ้ม lab หรือ quiz ได้ด้วยตัวเอง (แต่ยังต้องอาศัย HTML editor ตัวอื่น) ซึ่งมีคุณสมบัติในการ
      • import HTML pages (Instruction, Mini-Quiz, Answer Sheet, Template, Hints) และ resources อื่นๆ
      • ตั้งสถานะของแฟ้ม java ต่างๆ (TestScript, Incomplete หรืออื่นๆ)
      • export เป็น JLab Package โดยการ jar TestScript classes ทั้งหมด (obfuscate ด้วย), encrypt เฉลยคำถามปรนัย ของ Mini Quiz  ตั้งค่าพารามิเตอร์ต่างๆ  แล้ว jar เป็นแฟ้ม jlab  แฟ้มเดียว
    • Watchdog module เฉพาะสำหรับการใช้ JLab ในห้องปฏิบัติการ (Lab mode)
      • คอยควบคุมและตักเตือนมิให้ผู้ใช้ JLab ไปสั่งทำงานโปรแกรมอื่นของระบบ (เช่นไปแอบเปิด e-book มาอ่านระหว่างการสอบย่อย เป็นต้น ^_^ )
      • ดูแลในกรณีที่ผู้ใช้ได้คะแนนเต็มในการเขียนโปรแกรมหลังสั่ง TestScript แล้ว ก็จะส่ง และปิดระบบให้อัตโนมัติ
      • และเรื่องจุกๆ จิกๆ อื่นๆ
    • ฆ่าแมลง : การ repaint ของ editor, เลขบรรทัดใน export RTF file เพี้ยน, พิมพ์แฟ้มที่มี protected lines จะผิดพลาด, javadoc ต้องไม่สร้าง private method, และอื่นๆ จุกๆ จิกๆ
    • อื่นๆ : รอเครื่องแม่ข่ายเปิดให้บริการแบบอัตโนมัติ ใช้กับ jikes 1.18 ได้, อ่าน doc จาก jar ที่ถูก import เข้ามาได้, hint มี tab ของตัวเอง, ปรับเมนูการ login-logout-exit เล็กน้อย, สรุป error ของ jikes ได้สะอาดขึ้น (ใช้ +E ของ jikes)
  • ver 3.07.03  - (18/11/45)
    • bug fixed : crash when exit with skin, error parsing input tag, rtf files aren't saved in jar, can't get hint file, incorrect Jacobe indentation setting, too many unnecessary warning messages during sign-in, incorrectly format the ^=  operator
    • addtional features : record javac error messages during lab session in submitted files, copy both text and rtf formats into clipboard, add openURL & openFileOutputStream methods in jlab.JLabIO.
  • ver 3.07.02  - (7/11/45)
    • bug fixed : RunTestScript, ShowPoint, javac invalid option error
    • support Jacobe 5.7
  • ver 3.07.01  - (1/11/45)
    • some bug fixed in Lab mode
  • ver 3.07.00  - (28/10/45)
    • bugs fixed - (JPec:repaint, line highlight, & cr/lf bugs, time's-up bug, F4 bug, html refresh)
    • support additional user defined jar files in classpath
    • get rid of all FileSystemObject calls (no more antivirus pop-ups)
    • auto create api help files on the first startup (no need to download and install the big java help file)
    • support RSM (Resource Standard Metric) code analyzer from mSquaredTechnologies.com
    • support RetroGuard (www.retrologic.com) for obfuscating project jar file
    • easily import java source codes of any standard Java 2 clasess
    • add print/page setup features
    • show progress bar on startup
    • allow submission in demo mode
    • use server's clock in Lab mode
    • auto-submission when time's up
    • eliminate unnecessary (showPoint) pop up message boxes
    • reduce minor flickers in console output
    • fix javac's Thai error message for j2sdk 1.4.1
    • work with the newest Jikes (version 1.17)
    • count and keep the frequencies of each javac error messages in Lab sessions
  • ver 3.06.07  - 13/07/45
    • minor bugs fixed
    • set javac option "-target 1.1" as a default
    • add JLabIO.openFile to jlab.lib, and update the jlab.hlp
    • use SmartInstall as the installation s/w
    • add copyright notice (for Sun's J2SDK and IBM's Jikes)
    • add additional S/W tools installation page (jivelint, jacobe, jdk help files)
  • ver 3.06.06 (minor patch) - 02/07/45
    • วิธี patch หลังจากติดตั้ง รุ่น 3.06.05 แล้ว  ทำการ unzip แฟ้ม jlab.exe จาก jlab366.zip เพื่อทับแฟ้ม jlab.exe เดิมใน directory ที่ได้ลง JLab-3 ไว้
    • รายการแก้ไข
      • แก้ปัญหาบางประการระหว่างปฏิบัติการ
      • แก้ปัญหา export ลง directory ผิดที่
  • ver 3.06.05 - 24/06/45
    (รุ่นนี้เริ่มใช้ใน Lab ของวิชา 2110101 Computer Programming นักเรียนประมาณ 400 คน)
    • ส่วน Online
      • รองรับการใช้งานกับเครื่องแม่ข่ายหลักและเครื่องสำรอง
    • ใช้ได้กับ j2sdk 1.4.0 ของ Sun หรือกับ jikes ของ IBM (เป็น compiler ที่เร็วมาก)
    • เชื่อมต่อกับ jacobe เพื่อทำ source code beautifier
    • เชื่อมต่อกับ jivelint เพื่อตรวจสอบกฏเกณฑ์การเขียนโปรแกรมตามมาตรฐานทั่วไป
    • รองรับการเขียนโปรแกรมแบบเป็น package
    • Save as executable jar file
    • Export as java หรือ RTF files
    • ใช้ JPEC (Java Program Editing Control - งานของปกรณ์และปรเมษฐ์) เพื่อเพิ่มคุณสมบัติในการ edit
      • Java syntax highlight
      • font face / size / styte setting
      • auto indenting / spacing / code completion / formatting
      • indent/outdent
      • unlimited undo / redo
      • comment / uncomment
    • ตั้งได้สารพัด options
    • เลือกแสดง error message ของ javac ให้เป็นภาษาไทยได้ พร้อม pop up feature แสดงคำแนะนำสำหรับความผิดพลาดที่เกิดขึ้น
    • context sensitive help สำหรับ Java API 
    • รวม html files ทั้งหลายให้แสดงภายใต้ tabs เช่นเดียวกับ source codes เพื่อเพิ่ม usability
    • online update เชื่อมกับ JLab server ทางอินเตอรเน็ต หรือผ่านทาง diskette ก็ได้
    • เพิ่มคุณสมบัติการ debug multi-threaded programs
      • แสดง threads ต่างๆ ด้วย tabs  ซึ่งผู้ใช้สามารถเลือกดูสถานะได้
      • เห็นการเกิด / ตาย ของ threads ต่างๆ อย่างทันทีทันใด
      • ตั้ง breakpoints ก่อน หรือระหว่างการ debug ได้
    • console windows ทำหน้าที่เป็น stdin ด้วย
    • เรียกใช้ JLab ได้หลาย instances
    • เพิ่ม class JLabPanel ใน jlab package เพื่อความง่ายในการเขียนโปรแกรมแบบ GUI + button-driven อย่างง่ายๆ
  • ver 3.01 - 17/12/44
    • Offline : เป็น Java IDE (แบบง่ายๆ ) เต็มรูปแบบ
      • add/remove classes (ใช้ tabstrip control  หนึ่ง tab ต่อหนึ่งแฟ้ม)
      • save/save as ทั้ง project แบบ jar
      • สร้าง javadoc ได้
      • มี dialog box เพื่อตั้งค่าของ command line argument ได้
  • ver 2.02 
    • เพิ่มบริการชุด API (เล็กๆ) ใน jLab.jar สำหรับการรับและแสดงผลข้อมูล (JLab.getIntDialog, JLab.getDoubleDialog, JLab.getBooleanDialog, JLab.showMessageDialog) โดยจะแสดง dialog box แบบ always on top
    • จัดการแฟ้มภายในแบบ rtf
    • ปรับปรุงความเร็วในการทำ colorization ตอน submit
    • ปรับปรุงการแสดงบรรทัดที่ compile แล้วผิด ให้ซับซ้อนน้อยลง (แสดงคล้ายๆ กับ JBuilder)
    • แก้ปัญหาไม่ให้ editor เปลี่ยนแป้นพิมพ์เป็นภาษาไทยอัตโนมัติ
    • สร้าง setup program เพื่อ register และ copy dll และ ocx เฉพาะที่ต้องการเท่านั้น
    • ใช้ได้กับ Windows 98, Windows NT 4 (sp6), Windows 2000 (sp2)
  • ver 2.01
    • สามารถบันทึก (save, save as) ชุดทดสอบได้ (ใช้คุณสมบัตินี้ในการ resume การทดสอบย่อยได้ในห้องปฏิบัติการ ในกรณีที่ต้องเปลี่ยนเครื่องที่ใช้ทดสอบ)
    • อนุญาตให้ minimize, maximize, restore, ย่อ ขยาย และย้ายวินโดว์ได้ เมื่อใช้แบบ offline
  • ver 2.00 เปลี่ยนชื่อเป็น JLab (เพราะ Sun เขาห้ามใช้คำว่า Java ประกอบชื่อซอฟต์แวร์) และมีคุณสมบัติเพิ่มเติมหลักๆ ดังนี้
    • สามารถ debug (step into, step over, run to cursor, set/clear breakpoint, pause, watch) โปรแกรมได้ (ใช้บริการต่างๆ ภายใน jLab.jar)
    • เพิ่มการแสดง เลขบรรทัดที่ด้านซ้ายของ source code (ซึ่งเป็นบริเวณที่ใช้แสดงสถานะต่างๆ ระหว่างการ debug ด้วย)
  • ver 1.0c 
    • เปลี่ยน skin ได้ (ใช้ vbAccelerator NeoCaption Component
    • logout จากเครื่องหนึ่ง เพื่อ resume การทดสอบต่อที่เครื่องอื่น
    • ให้สี keyword ต่างๆ ของ source code ที่ submit ไปในรูปแบบ html
  • ver 1.0b 
    • เพิ่ม feature "ชื้อ hint ด้วยคะแนน"
    • copy, cut, paste ต้องตัด >> ตั้วชี้ error line ออก
    • submitted html แสดงเวลาที่เหลือดีกว่า เวลาจริง
    • ปิดบริการ ปุ่มขวา และ hot key ต่างๆ ของ IE (WBCustomizer)  เฉพาะ online mode
    •  ปิดบริการปุ่ม task switch ทั้งหลาย CTRL+ESC, ALT+TAB, ALT+CTRL+DEL เฉพาะ online mode
    • เก็บสถิติต่างๆ ในการทดสอบ (เวลา, จำนวนครั้งที่แปล, จำนวนครั้งที่ selftest, จำนวนครั้งที่ submit, จำนวน key strokes...)
  • ver 1.0a 
    • ส่วน selftest ตัวระบบเองช่วงเริ่มต้นโปรแกรม ก่อนให้ sign-in (เตรียม folder ที่จำเป็น และลอง compile และสั่งงานได้จริงหรือไม่)
    • บีบอัดชุดทดสอบให้เป็น jar และติดตั้งชุดทดสอบผ่าน web โดยอัตโนมัติ ( URLDownloadToFile )

 


คำถามซ้ำซาก

ถาม : ติดตั้งแล้วมีปัญหาเรื่องภาษาไทย ทำไงดี ?

ตอบ : ดูวิธีการตั้งภาษาไทยได้ที่นี่ (Windows XP) ถ้าใช้ Windows 7 ดูได้ที่นี่

ถาม : JLab ราคาเท่าไหร่ ?

ตอบ : ฟรีครับ ไม่กล้าคิดเงิน (และก็ไม่อนุญาตให้ใครเอาไปขายต่อนะครับ) ขอมีคนใช้มากๆ ก็สุขใจแล้วครับ

ถาม : เขียน Java IDE ขึ้นมาทำไม กระจอกกว่า JBuilder หรือ Sun's ONE Studio ที่เขามีรุ่นฟรีอยู่แล้ว เสียเวลาทำไปทำไม ?

ตอบ : แต่เดิมผมไม่คิดจะเขียนหรอกครับ ผมเริ่มพัฒนา JLab รุ่น 0.1 (ตอนนั้นเรียกว่า JavaIQE - Integrated Quiz Enviornment) ตั้งใจแค่เป็นเครื่องมือเสริม Notepad + J2SDK ในการช่วยคุมการทดสอบย่อยในวิชาโครงสร้างข้อมูลเท่านั้นเอง (มีเพียงตัวนำข้อสอบส่งผลสอบ และตัวจับเวลาเท่านั้น) อยากจะให้นักเรียนลองเขียนโปรแกรมสดกันบ้างในการ quiz และอยากให้ตรวจกันเลย ไม่ต้องมาเสียเวลาหลังสอบ  นักเรียนก็ใช้เครื่องมือดิบสุดๆ คือ Notepad + J2SDK

ต่อมาก็รู้สึกว่าใช้ยาก วุ่นวาย ต้องเปลี่ยนวินโดว์ไป notepad สลับมา dos box เพื่อสั่ง javac แล้วก็ java มีปัญหาเรื่อง classpath ไม่ได้ตั้งบ้างล่ะ อีกทั้งบางคนไปเขียนโปรแกรมใน folder ที่ไม่ได้มีไว้เพื่อการส่งผลสอบ ก็ยุ่งกันใหญ่ วุ่นวายเหลือเกิน ซ้ำร้ายไปกว่านั้นบางคนทิ้งแฟ้มไว้ให้เพื่อนที่จะมาสอบรอบหลังดูอีกต่างหาก จะป้องกันอย่างไร จุกจิกเหลือเกิน 

ก็เลยเขียนเป็นโปรแกรมเบ็ดเสร็จเลยดีกว่า (JLab 1) มี editor (ใช้แค่ text edit control ของ วินโดว์) มีเมนูให้ login + compile + run + submit + logout จากนั้นเขียนโปรแกรมยึดเครื่อง ไม่ให้นิสิตออกนอกโปรแกรมเราได้ระหว่างการทดสอบย่อย (ต้องดักสารพัด ctrl+alt+del, ctrl+tab, start menu + ...)

เขียนไปเขียนมาชักมัน ตัวเองอยากเขียน debugger ก็เลยเพิ่มตัว interface กับ jdb เข้าไป (เป็น JLab 2) ทรมานพอสมควรกับ feature นี้ และไม่ค่อยมีคนใช้ เพราะมันช้า และนักเรียนส่วนใหญ่ไม่ค่อยได้ฝึกใช้ debugger กันเท่าไรนัก

เรื่องมันก็เกิดตรงที่ผมเองเป็นผู้ผลักดันให้เขาเปลี่ยนจาก Pascal เป็น Java ในวิชาการทำโปรแกรมคอมพิวเตอร์ สำหรับเด็กวิศวะปีหนึ่ง สอนเขียนโปรแกรม ก็ต้องให้นักเรียนเขียนโปรแกรม ก็มาคิดว่าถ้าจะให้นักเรียนปีหนึ่งใช้ JBuilder หรือ Forte for Java หรือก็น่ากลัวเกินไป เพราะผมและเพื่อนที่เคยเขียนโปรแกรมกันมาบ้างเจอเข้าทีแรกยังอึ้งในคุณสมบัติที่มีมากมายเหลือเกิน (learning curve มันชัน) จึงคิดว่าน่าจะไม่เหมาะ  อีกทั้งที่ภาคฯ ผม (รวมทั้งที่บ้านผมด้วย) มีเครื่องคอมพิวเตอร์ที่ไม่ค่อยนำสมัยนัก ใช้ JBuilder หรือ Forte ที่ไร ต้องรอกันเบื่อเลย  หรือจะใช้ JCreator คุณสมบัติน้อยหน่อย แต่ก็ดีพอเกินความต้องการ หรือจะใช้ BlueJ ที่คนเขาสนใจกันมากในการเรียนการสอนทาง OOP หรือตัวอื่น ตัวไหนดีล่ะ ?

ไม่เอาดีกว่า ทำเองเลยดีกว่า (หน้ามืด อาศัยความมันเข้าว่า)  เขียนเองใช้เอง อย่างน้อยก็มีคนใช้ 900 คนต่อปีแน่ๆ อีกทั้งจะต้องใช้ใน lab ของวิชา ซึ่งทำให้เราสามารถปรับแต่งคุณสมบัติเดิมในการรับส่ง quiz มาเป็นรับส่ง sheet lab ก็สิ้นเรื่อง ซึ่งหาซอฟต์แวร์ตัวใดในโลก (แจกฟรี ทำเป็นภาษาไทยๆ) ที่ทำแบบนี้ไม่มีแน่ ความเป็น IDE นั้นเป็นคุณสมบัติเพียงแค่ส่วนหนึ่งเท่านั้น

ก็เลยต้องมานั่งคิดเรื่องความเป็น IDE ตรงที่ต้องมีคุณสมบัติที่จำเป็นๆ สำหรับเด็กเพิ่งฝึกเขียนโปรแกรม อีกทั้งถ้าเป็นไปได้ช่วยการฝึกเขียนโปรแกรมด้วยก็ยิ่งดี  ก็เริ่มจากการคัดเฉพาะคุณสมบัติที่ต้องใช้ ง่ายๆ (และที่สำคัญทำให้งานของผมน้อยลงด้วย) คือต้องให้เขาอย่ามาเผชิญปัญหาการสู้รบกับคำสั่งของ j2sdk (ก็ทำเป็นปุ่มเป็นเมนู ซึ่งมีน้อยๆ)  อีกทั้งปัญหาภาษาอังกฤษ  (ก็แปล error messages และ messages อื่นๆ ของระบบให้เป็นภาษาไทย) เรื่อง GUI (ใช้ tabstrip และแยกวินโดว์เป็นส่วนๆ ไม่ทับกัน) ความสับสนเรื่องสารพัดแฟ้มในการพัฒนา ทั้ง .java   .class  .html (ก็ตั้งภายในระบบให้ แต่ระบบจะรวมทั้งหมดเป็น .jar เสมอ) ปัญหาการเขียนโปรแกรมไม่สวยและผิดหลักการ (ก็เชื่อมต่อกับโปรแกรมจำพวก beatifier, lint, javadoc, help files ให้) เป็นต้น

เขียนซะยาว โดยสรุปก็คือเราทำเองเพราะ

  1. สิ่งที่ต้องการใช้ใน lab (ควบคุมเวลา ตรวจผล รับส่งปฏิบัติการ ...) นั้นไม่มีใครเขาทำกัน
  2. ต้องการของง่ายๆ ไทยๆ เหมาะสำหรับผู้เริ่มเขียนโปรแกรม
  3. ใช้กับเครื่อง 200MHz ได้
  4. อยากรู้อยากทำ

ถาม : ทดลองใช้ JLab มานานแค่ไหนแล้วเนี่ย ?

ตอบ : 14 ปีแล้วตั้งแต่รุ่นทารก (รุ่น 0.1) จนถึงปัจจุบัน (รุ่น 9 กว่าๆ)

  • ใช้ JLab 0.1 วิชา 2110211 หนึ่งเทอม (2541)
  • JLab 1 + 2 อีกหนึ่งเทอม วิชา 2110211 (2542, 2543)
  • JLab 3 อีกหนึ่งเทอม วิชา 2110211 (2544)
  • JLab 3.06 วิชา 2110101 ภาคต้น 2545
  • JLab 3.08  วิชา 2110101 และ 2110211 ภาคปลาย 2545
  • JLab 4.6.8 วิชา 2110101 ภาคต้น 2546
  • JLab 4.11.11 วิชา 2110101 และ 2110211 ภาคปลาย 2546
  • JLab 5.5.0 วิชา 2110101, 2547
  • JLab 6 วิชา 2110101, (2548)
  • JLab 7 วิชา 2110101, 2110211, (2549)
  • JLab 8 วิชา 2110101, 2110211, , (2550)
  • JLab 9 วิชา 2110101, 2110211, (2551)
  • JLab 9.10.xx วิชา 2110101, 2110211, (2552)
  • JLab 9.11.xxวิชา 2110101, (2553)
  • JLab 9.12.xxวิชา 2110101, (2554)
  • JLab 9.13.xxวิชา 2110101, (2555)

ถาม : ซอฟต์แวร์ทั่วไปมีปัญหาทั้งนั้น  แล้ว JLab ล่ะ เป็นไง

ตอบ : ตอนแรกๆ มีปัญหาจุกจิก แต่ก็เข้าที่ขึ้นเรื่อยๆ ปัจจุบัน (2547) ใช้ได้ราบรื่นมาก 100 เครื่องพร้อม ๆ กันในห้องปฏิบัติการของทั้งสองวิชา

ถาม : IDE สำหรับ Java ไม่เขียนด้วย 100% Pure Java ได้ไง เสียชื่อหมด ?

ตอบ : ยอมเสียชื่อครับ ที่บ้านผมยังใช้ Cyrix 233MHz ครับ (และยังไม่คิดจะ upgrade ด้วย)  เขียนด้วย Java ทั้งตัวก็คงไม่เสร็จหรอกครับ  (เม.ย. 46: ทนไม่ไหวแล้ว เพิ่งเปลี่ยนเป็น AMD XP 2000+ ครับ ร้อนจริงๆ ทั้ง CPU และห้องทำงาน)

ถาม : แล้วพัฒนา JLab ด้วยภาษาอะไร ?

ตอบ : ฮะ ฮา ฮ่า Visual Basic 6.0 ครับ ขอหัวเราะอีกครั้ง 555555

ถาม : ใช้เวลาพัฒนานานเท่าไร 

ตอบ : ทำมาตั้งแต่ปี พ.ศ. 2543 (เป็นงานอดิเรก) ทำเมื่อยามจำเป็นเฉพาะเทอมที่นักเรียนต้องใช้ ตอนนี้รักเหมือนลูก จะเลี้ยงให้โตไปเรื่อยๆ

ถาม : มีใครช่วยบ้าง ?

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

ถาม : open source กับเขาด้วยหรือเปล่า ?

ตอบ : ไม่กล้าเปิดครับ กระป๋อง source code นี้มันเหม็นและสกปรกมากๆ

ถาม : ขอทุนสนับสนุนจากที่ไหนหรือเปล่า ?

ตอบ : ยังไม่สนใจขอ

ถาม : มีปัญหา และข้อแนะนำ จะติดต่อได้ที่ไหน

ตอบ : เขียนได้ในกระดานถามตอบเลยครับ


(06/06/11)  

back