Home

windows: เอาพยากรณ์อากาศออกไป

หลัง update windows มันมีอะไรแปลกๆ เพิ่มขึ้นมาอย่างหนึ่ง คือพยากรณ์อากาศตรง task bar คิดว่าคนที่ต้องการจะดูมันตลอดทั้งวันนี้คงมีน้อยมากๆ เอาออกไปเหอะ

  1. คลิก task bar
  2. ไปที่ News and interests
  3. คลิก turn off

PowerBuilder: Target ( Template Application )

วิธีสร้าง target application จาก template

  1. เปิด workspace ที่ต้องการขึ้นมาเช่น งานชิ้นใหม่ก็เปิดจาก development.pbw
  2. คลิก file
  3. คลิก Open..
  4. Browse ไปไฟล์ *.pbw ที่ต้องการ
  5. คลิก OK
  6. คลิก file
  7. คลิก New…
  8. ที่เท็บ Target เลือก Template Application
  9. คลิก OK
  10. หน้า About the Template Application Wizard
  11. คลิก Next >
  12. หน้า What you will do
  13. คลิก Next >
  14. หน้า Specify New Application and Library
    • Application Name: ใส่ชื่อ เช่น prototype_pb8
    • Library: ใส่ชื่อ Library ตัวหลักเช่น C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\main.pb
    • Target: เช่น C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\prototype_pb8.pb
  15. หน้า Specify Template Type เลือกชนิดของ application ที่ต้องการ
    • MDI Application with Microhelp
    • SDI Application
    • PFC-base application
  16. เลือก MDI
  17. คลิก Next >
  18. หน้า Adjust Application Library Search Path
  19. คลิก Next >
  20. หน้า Name MDI Frame and Menu
    • MDI Frame: ใส่ชื่อ เช่น w_main
    • MDI Frame Menu: เช่น m_main
  21. คลิก Next >
  22. หน้า Name MDI Base Sheet, Menu and Service
    • Base Sheet Window: เช่น w_basesheet
    • Sheet Menu: เช่น m_sheet
    • Sheet Manager Service: เช่น n_sheetmanager
  23. คลิก Next >
  24. หน้า Name individual Sheets
    • Sheet 1: เช่น w_sheet1
    • Sheet 2: เช่น w_sheet2
    • Sheet 3: เช่น w_sheet3
  25. คลิก Next >
  26. หน้า Assign Display Name to Sheets
    • W_sheet1 Title (1) : เช่น Untitled for Sheet 1
    • W_sheet2 Title (2) : เช่น Untitled for Sheet 2
    • W_sheet3 Title (3) : เช่น Untitled for Sheet 3
  27. คลิก Next >
  28. หน้า Name About Box and Toolbar Window
    • About Window: เช่น w_about
    • Toolbar Window: เช่น w_toolbars
  29. คลิก Next >
  30. หน้า Specify Connectivity
    • Requires SQL Database connection
    • Requires EAServer connection
    • None
  31. เลือก Requires SQL Database connection
  32. คลิก Next >
  33. หน้า Choose Database Profile
    • เลือก database ที่ต้องการ
  34. หน้า Specify Connectivity Source Info
    • Application INI file คือเก็บไว้ในไฟล์ .ini
    • Registry Settings ฝากไว้ในความจำของ windows
    • Script
    • Connection Service Object: เก็บไว้ในชื่อ เช่น n_connectservice
  35. คลิก Next >
  36. หน้า Name Application INI File
    • Application INI File: เช่น C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\main.ini
  37. คลิก Next >
  38. หน้า Create Project?
    • No. create project later
    • Yes, Create project now
  39. เลือก Yes ซิจะได้ไปต่อ
  40. คลิก Next >
  41. หน้า Specify Project Object
    • Project: เช่น p_prototype_pb8_exe
  42. คลิก Next >
  43. Specify Executable and Resource Files
    • Executable File Name เช่น C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\prototype_pb8.exe
    • Option Resource File (.pbr) เว้นไว้ก่อน
  44. คลิก Next >
  45. Specify Build Options จากจุดนนี้ไปทำเหมือนตอน build เอา

PowerBuilder: Deploy

การ Deploy โปรเจกต์ powerbuilder ไปยัง user สามารถทำได้โดยมีส่วนประกอบ 2 ส่วนด้วยกัน

  1. ไฟล์ *.exe
    • ชื่อไฟล์โดยปกติจะโดนระบุไว้ในไฟล์ *.pbt
    • ถ้าไม่มีการเพิ่มหรือลด library ใน target ก็ไม่จำเป็นต้องส่งไฟล์นี้ให้ user
  2. ไฟล์ *.pbd
    • เป็นไฟล์ที่เกิดจากการแปลงไฟล์ library ( *.pbl ) โดยจะมีชื่อเดียวกันแต่นามสกุล .pbd โดยจะอยู่ใน path เดียวกัน
    • สามารถนำไฟล์ pbd ไปแทนที่ไฟล์เดิมในเครื่อง user ได้ทันที ตัว .exe จะสามารถใช้ datawindow, function, window และส่วนประกอบอื่น ๆ ที่อยู่ใน library version นั้น ๆ ได้ทันที
    • ไฟล์ pbd อื่น ๆ สามารถเรียกใช้สิ่งที่อยู่ใน pbd อื่น ๆ ได้ ถ้ายังเป็นชื่อเดิม มี parameter เหมือนเดิม ถึงตัวมันเองจะเก่ากว่า หรือว่าใหม่กว่าไฟล์ pbd ตัวนั้น ๆ

ข้อดีจากคุณสมบัติของไฟล์ pbd และ exe ทำให้เวลาที่ส่งโปรแกม update ให้ user สามารถส่งบางฟีเจอร์ ไปให้ user แต่ละกลุ่มได้โดยการส่ง pbd ให้ต่างกัน กลุ่ม a อาจจะได้รับไฟล์ pbd ที่ใหม่กว่าเพื่อทดลองใช้ฟีเจอร์ใหม่ ๆ ในเมนูเดียวกันกับกลุ่ม b ที่ได้รับไฟล์ pbd เวอร์ชั่นก่อนหน้าที่ใช้งานได้ อาจจะไม่ดีนัก แต่ทำงานได้อยู่

PowerBuilder: build application

การ build source code ของเราเป็น application ( .exe ) ทำได้ง่าย ๆ โดย

  1. เปิด workspace ที่ต้องการขึ้นมาเช่น งานชิ้นใหม่ก็เปิดจาก development.pbw
  2. ใน System tree คลิก target ที่ต้องการ build
  3. คลิกขวา New…
  4. ที่เท็บ Project เลือก Application Wizard
  5. คลิก OK
  6. จะมีหน้าต่าง About the Application Project Wizard ขึ้นมา คลิก Next >
  7. หน้า Specify Destination Library
  8. คลิก Next >
  9. หน้า Specify Project Object จะให้เราสามาารถตั้งชื่อได้ เช่น p_prototypes_pb8_exe
  10. คลิก Next >
  11. หน้า Specify Executable and Resource Files จะช่องให้ว่าจะ build ไฟล์ .exe ไว้ที่ไหน ชื่ออะไร
  12. คลิก Next >
  13. หน้า Specify Build Options มีอยู่ 2 Options
    • Fill Build จะ build ทั้ง target
    • Incremental Build จะ build เฉพาะไฟล์ที่เปลี่ยนแปลงจากครั้งที่ Build ล่าสุดเท่านั้น จะเร็วกว่า
  14. คลิก Next >
  15. หน้า Generate Machine Code?
  16. คลิก Next >
  17. หน้า Specify Dynamic Library Options
  18. ติ๊ก Build Dynamic Libaries (.PBD)
  19. คลิก Next >
  20. หน้า Specify Version Information จะไว้ระบุข้อมูลของโปรแกรม เช่น บริษัท version
  21. คลิก Next >
  22. หน้า Ready to Create Application จะให้รายละเอียดตัวเลือกที่ผ่านมา
  23. คลิก Finish
  24. จะเห็นหน้าที่ใช้ Build โดยด้านล่างจะมี list Library ให้สามารถเลือกทับ Resource File Name นั้น ๆ ได้
  25. คลิก Deploy จากเมนู

ด้านล่างจะมี log แสดงการทำงานอยู่ เมื่อแสดงข้อความประมาณ

———- Deploy: Deploy of p_prototypes_pb8_exe
Creating executable file . . .
Inspecting Application Dependencies. . .
Inspecting Application Dependencies. . .
Inspecting application libraries . . .
Writing C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\common.pbl(prototypes_pb8) . . .
———- Finished Deploy of p_prototypes_pb8_exe


โปรแกรมของเราจะเสร็จสมบูรณ์

PowerBuilder: Target

ตัวโปรแกรมจริง ๆ ของ powerbuilder ที่เอาไป build เป็น *.exe จะอยู่ในไฟล์ target โดยไฟล์นี่จะมีหน้าที่ลิสต์ Library ต่าง ๆ ที่ใช้ไว้

  1. เปิด workspace ที่ต้องการขึ้นมาเช่น งานชิ้นใหม่ก็เปิดจาก development.pbw
  2. คลิก file
  3. คลิก Open..
  4. Browse ไปไฟล์ *.pbw ที่ต้องการ
  5. คลิก OK
  6. คลิก file
  7. คลิก New…
  8. ที่เท็บ Target เลือก Application
  9. ระบุ
    • Application Name: เช่น prototypes_pb8 ย่อมาจาก Prototype Power Builder 8
    • Library: จะเป็นไฟล์ที่เก็บส่วนประกอบย่อย ต่าง ๆ เป็นกลุ่ม ๆ เหมือนห้องสมุดที่แบ่งเป็นห้องสมุดการแพทย์ก็อยู่ที่หนึ่ง ห้องสมุดเกี่ยวกับการเกษตรก็อยู่อีกที่ เช่น C:\UsersDatas\ProjectsGit\PowerBuilder\Prototype_PB8\common.pbl
      สาเหตุที่ไฟล์นี้ใช้คำว่า common เพราะตั้งใจจะไว้เก็บ function กลาง ไว้ใช้ทั้งโปรแกรม
    • Target: จะเป็นชื่อไฟล์ .exe ที่จะ build ขึ้นมา เช่น C:\UsersDatas\ProjectsGit\PowerBuilder\Prototype_PB8\prototypes_pb8.pbt

เมื่อเปิดโพลเดอร์ C:\UsersDatas\ProjectsGit\PowerBuilder\Prototype_PB8 จะเห็นอยู่ 2 ไฟล์ main_pb8.pbt และ common.pbl ที่จะอธิบายต่อไป

PowerBuilder: new project / open project

ไฟล์ project ของ PowerBuilder จะมีนามสกุล *.pbw ย่อมาจาก PowerBuilder Workspace เป็นไฟล์ที่จะบันทึก กลุ่มของ target ไว้ภายใน โดยไฟล์ *.pbw จะสามารถมี target ภายในได้มากกว่า 1 และ target เดียวกันสามารถอยู่ได้ในหลาย worksapce

สามารถสร้างใหม่ได้โดย

  1. คลิก file
  2. คลิก New…
  3. ที่เท็บ Workspace คลิก Workspace คลิก OK
  4. ตั้งชื่อที่ต้องการ
  5. คลิก save

โดยผมเลือกสร้าง workspace ไว้ 3 กลุ่มดังนี้

  • development สำหรับพัฒนาโปรแกรม
  • production งานที่ build ให้ user จะอยู่ในนี้
  • prototype สำหรับทดลองแนวทางต่าง ๆ ง่าย ๆ เร็ว ๆ

ในครั้งต่อไปที่เปิดโปรเจกต์ต้องเปิดจากไฟล์ตัวนี้ ไม่อย่างนั้นจะหาส่วนต่างๆ ไม่เจอได้

ตอนต่อไป PowerBuilder: Target

PowerBuilder 8: ภาษาไทย

ถ้าเปิดโปรเจคขึ้นมาแล้วตัวอักษรไม่สามารถอ่านได้เป็นตัวเหลี่ยมๆ อะไรแปลกๆ เป็นภาษาต่างแดน ต่างด่าว ต่างดาว แก้ได้โดย

  1. ไปที่ menu ของ windows 10
  2. คลิก Settings
  3. คลิก Time & Language
  4. คลิก Language
  5. คลิก Administrative language setting
  6. คลิก Change system locale
  7. เลือก Current system locale เป็น Thai (Thailand) เอาที่ติ๊กช่อง Use Unicode UTF-8 for worldwide language support ออกไป
  8. restart windows

PowerBuilder 8: ติดตั้ง

จริงๆ แล้ว PowerBuilder 8 ออกมาในปี 2001 มาติดตั้งปีนี้ 2021 ก็ 20 ปีพอดี ถ้าจะนับเป็นคนก็เป็นหนุ่มสาวกันแล้วละ แน่นอนว่ามันไม่ทันกับ windows 10 แน่นอน การลงมันเลยต้องมีการติดตั้งที่พิเศษจากโปรแกรมอื่นๆ

  1. หาตัวติดตั้งมาก่อน หาโหลดไม่ได้แล้วจัดเป็นโปรแกรม classic ที่ใช้ตอนนี้ได้เป็นมรดกมาจากรุ่นพี่ ถ้ามีแล้วจงรักษาเอาไว้ให้ดี
  2. ไปคลิกที่ตัวติดตั้ง C:\PowerBuilder v.8\pb 8.01\Setup.exe
    1. ในหน้า Select Components ให้เอา PowerBuilder, PowerDynamo และ Adaptive Server Anyware ออกไปก่อนเพราะถ้าติดตั้งตอนนี้มันจะค้างที่ 70% ถ้าเจอค้างกด end task ตัวติดตั้งตัวแรกทิ้งไปเลย
    2. ติดตั้งโปรแกรมโดยเลี่ยงทั้ง 3 โปรแกรมให้มากที่สุด restart
    3. ติดตั้งโปรแกรม C:\PowerBuilder v.8\pb 8.01\Setup.exe ใหม่อีกครั้ง คราวนี้เลือกติดตั้งทุกตัว
  3. update โดยติดตั้ง C:\PowerBuilder v.8\PB 8.02\PB802.zip\PB802.exe
  4. update โดยติดตั้ง C:\PowerBuilder v.8\PB 8.03\PB803.zip\PB803.exe
  5. โปรแกรมจะถูกติดตั้งเรียบร้อยแล้วแต่ว่าคู่มือจะไม่สามารถกด F1 จากตัวโปรแกรมได้ ให้ไปล้วง short cut ออกมาจาก C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Sybase\PowerBuilder 8.0\

อ่านเพิ่มเติม https://pitt.plusmagi.com/powerbuilder-8-ภาษาไทย

About PowerBuilder: 101

เริ่มจากอะไรคือ PowerBuilder นิยามง่ายๆ คือเป็น program ที่ไว้สร้าง program แต่ไม่เน้น programming มากนัก ไม่ขนาด Microsoft Visual Studio แต่อยู่ประมาณ Code Less, ลากๆ วางๆ แต่ไม่ขนาด Workflow JoGet หรือ UiPath

ประวัติคร่าวๆ ตามธรรมเนียม

  • เริ่มจากบริษัท PowerSoft ปล่อยออกมาในปี 1991 ( เก่ามาก PHP เริ่มปี 1994 นะคิดดู )
  • ไปอยู่กับ SAP ในปี 2013 ข้ามไป version 15 ละ
  • แล้วมี Appeon เอามาเปลี่ยนระบบเป็น c# แทนใน version R2 แต่ยังกึ่งๆ PowerScript  กับ .NET อยู่

แก้เข้า linux / windows แล้วเวลาเปลี่ยน

ถ้าเครื่องลง dual boot หลังไปใช้ linux แล้วกลับมาบูทเข้า windows จะพบว่าเวลามันจะเปลี่ยนไปหลายชั่วโมง โดยที่ไม่ได้ตั้งเวลาใหม่แต่อย่างใด ทั้ง ๆ ที่ตอนใช้ลินุกซ์เวลาก็ถูกต้องนะ

ปัญหาแบบนี้สามารถแก้ได้ง่าย ๆ โดยพิมพ์ใน terminal ด้วยสิทธิ์ root

timedatectl set-local-rtc 1

จากนั้นปัญหานี้จะหมดไปละ

สาเหตุ ในคอมพิวเตอร์มีนาฬิกาอยู่ 2 ตัว คือ 1 นาฬิกาบนแมนบอร์ด ( bios / cmos / uefi ) 2 นาฬิกาบนระบบปฏิบัติการ โดยค่าตั้งต้น linux จะคิดว่านาฬิกาบนเมนบอร์จะเป็นเวลาตาม UTC ไม่ใช่เวลาท้องถิ่น แต่วินโดวน์จะคิดว่าเป็นเวลาท้องถิ่น เวลาที่เราใช้ linux หรือ windows ต่างก็ sync เวลาใหม่ลงไปที่นาฬิกาบนแมนบอร์ด แต่เพราะว่าทั้งสองตัวเข้าใจว่าเป็นจึงเห็นเวลาเปลี่ยนไป เปลี่ยนมา

ขอบคุณวิธีและคำอธิบายจาก Wrong Time Displayed in Windows-Linux Dual Boot Setup? Here’s How to Fix it