ขอ ChatGPT ช่วยทำการบ้าน

คุณครูให้การบ้านการโปรแกรมด้วยภาษาไพทอน มีโจทย์ว่า จงพิมพ์ 1 ถึง 10 ด้วยไพทอน ลองขอความช่วยเหลือจาก ChatGPT โดยส่งคำถามไปว่าเป็นภาษาอังกฤษว่า How can you write a loop in Python to print numbers from 1 to 10? แล้ว ChatGPT ก็ส่งคำตอบมาเป็นโค้ดให้ 2 บรรทัด ว่าต้องเขียนอย่างไร เอาคำตอบนี้ไปส่งครูได้เลย

เขียนโค้ดของ python บน pycharm

พร้อมอธิบายเป็นภาษาไทยประกอบโค้ดว่า นี่คือตัวอย่างของการเขียนลูปในไพทอนเพื่อพิมพ์ตัวเลข 1 ถึง 10: for i in range(1, 11): print(i) ในตัวอย่างนี้เราใช้ลูป for เพื่อวนลูปตามช่วงของตัวเลข 1 ถึง 10 (รวมทั้งตัวท้าย 10) โดยใช้ฟังก์ชัน range เพื่อสร้างลำดับของตัวเลข และลูป for จะวนลูปตามแต่ละตัวเลขในลำดับนั้น ๆ โดยเก็บค่าปัจจุบันไว้ในตัวแปร i และใช้ฟังก์ชัน print เพื่อแสดงค่าของ i ออกทางคอนโซล (console) ของโปรแกรม

เมื่อนำ code ไปประมวลผลบน pycharm พบว่าใช้งานได้ปกติ ผลลัพธ์คือ 1 – 10 แสดงผลบน console ตามคำอธิบายของ ChatGPT อย่างถูกต้อง ถ้าคุณครูสั่งงานด้วยโจทย์ที่ยากขึ้น สำหรับนักเรียนในระดับมัธยมศึกษา ก็เชื่อว่า ChatGPT จะตอบคำถามได้อย่างถูกต้อง พร้อมคำอธิบายโค้ดโดยละเอียด

https://thaiall.com/pycharm

https://chatgpt.openai.com/

เกมสนุกและสร้างสรรค์ #puzzle #1

โค้ดเกมหากุญแจ ที่เขียนด้วย javascript ใน homepage นี้ มีวัตถุประสงค์ในการสุ่ม กุญแจ (key) และสร้างคำแนะนำ (hint) ทั้ง 5 ข้อ ให้กับผู้เล่นเกมได้ทายตัวเลข 3 ตัวที่ไม่ซ้ำกัน กรอกลงในช่อง 3 ช่องแบบไม่ซ้ำ แล้วกดปุ่ม check ถ้าทายถูกก็จะพบคำว่า “You Crack it.” แต่ถ้าทายผิดก็จะพบคำว่า “Try once again.”

ซึ่งการเรียนรู้แบบสร้างสรรค์เป็นฐาน มีขั้นตอนที่ 1 คือ การกระตุ้นความสนใจ ดังนั้นการเริ่มต้นด้วยการคำนวณชวนคิดอย่างมีจินตนาการ เพื่อตามหาตัวเลข 3 ตัว หรือตามหากุญแจที่หายไป จากลายแทงที่เตรียมให้ทั้งหมด 5 ลายแทงดังตัวอย่าง เชื่อว่าจะช่วยกระตุ้นความสนใจ ก่อนเข้าสู่บทเรียนได้เป็นอย่างดี สำหรับ การเรียนรู้แบบสร้างสรรค์เป็นฐาน (CBL = Creative-Based Learning)

What is the key?


ซึ่ง CBL ประกอบด้วย 5 ขั้นตอน ดังนี้ ขั้นตอนที่ 1 กระตุ้นความสนใจ (Interested) ขั้นตอนที่ 2 ตั้งปัญหารายบุคคลและกลุ่มตามความสนใจ (Problem) ขั้นตอนที่ 3 ค้นคว้าและทดลอง (Search and Test) ขั้นตอนที่ 4 นำเสนอผลงาน (Result) ขั้นตอนที่ 5 สรุปและประเมินผล (Conclusion) พบว่า เวทิสา ตุ้ยเขียว สกนธ์ชัย ชะนูนันท์ และ อัญชลี สิริกุลขจร (2563) ศึกษาเรื่อง แนวทางการจัดการเรียนรู้แบบสร้างสรรค์เป็นฐานที่ส่งเสริมสมรรถนะการแก้ปัญหาแบบร่วมมืออย่างสร้างสรรค์ของนักเรียนในระดับชั้นมัธยมศึกษาปีที่ 4 เรื่อง ปฏิกิริยาเคมี ซึ่งผลการวิจัยมีแนวทาง 5 ขั้นตอน อ้างอิงจาก Luachaiphanit, W. (2015). Creativity-Based Learning (CBL). Journal of Learning Innovations Walailak University,1(2), 23-37. [in Thai]

https://www.thaiall.com/php/whatisthekey.htm

#เล่าสู่กันฟัง 63-045 เชื่อม php กับ postgresql บน heroku เป็นรุ่น 1

หลายวันมานี้ มีโอกาสทดสอบ code
ตามคำแนะนำของน้องฟลุ๊คปี 3 (วชิรศักดิ์ สายสูงธนาศักดิ์)
ว่าอยากให้สอนรุ่นน้อง เพราะเค้าไปเห็นมา
ซึ่งเดิมเคยให้นิสิตทำระบบฐานข้อมูล
เรียนรู้สภาพแวดล้อมของผู้ให้บริการ
กับ Free web host เชิงธุรกิจ หลายค่าย
แต่เมื่อเวลาผ่านไป ข้อมูลที่ไม่เคลื่อนไหว
ก็จะหายไป คล้ายกับธนาคารที่ย้ายที่เก็บ
และการปล่อยทิ้งร้างก็เข้าเงื่อนไขพักบัญชี

น้องฟลุ๊คเค้าแนะนำ react บน heroku.com
แต่ผมสนใจ postgresql กับ php
และอีกหลายแอพที่เชื่อมโยงกัน
ซึ่ง heroku มีให้เลือกใช้เยอะมาก
เพราะเป็น cloud application platform
มีให้เลือกพัฒนาอะไรก็ได้
เปิดให้พัฒนาทั้งบน Windows, Linux และ Mac
การใช้งานต้องใช้ git และโปรแกรม heroku
อย่างน้อยก็ต้องติดตั้ง 2 ตัวนี้
1. heroku ใช้เชื่อมบัญชีสำหรับ clone, push
2. git ใช้บริหารจัดการระบบ version
ระบบนี้ ยังไม่รองรับเขียน code บนเว็บ
จะต้องเขียนใน localhost แล้ว push

ถ้าจะเขียน hello world ก็ต้อง clone
Repository ที่สร้างไว้ใน heroku ลงมา
แต่ง code ใน folder ให้เรียบร้อย
แล้ว push ขึ้นไป
หรือใช้ heroku create สั่งสร้าง repository
บน localhost แล้วกำหนด composer.json
ให้เรียบร้อยก่อน push ก็ได้

หากจะใช้ postgresql ก็ต้องขอใช้ resource
จากนั้นก็มีตัวอย่าง code index.php
ที่ดึง config แบบไม่ต้องผ่านมือเรา
ว่ามีชื่อโฮส ฐานข้อมูล หรือรหัสอะไร
ถ้าอยากเห็นเราก็ echo มาดูได้

คืนที่ 6 มี.ค.63 มีโอกาสนำโค้ด
mysqlworking มาปรับเป็น postqresqlworking
ก็ใช้แอพนี้ได้บน herokuapp.com ได้เลย
แต่ที่แชร์เป็นรุ่น 9145
ไปยังไม่ได้ปรับให้งาม เลอะเยอะเลย



http://www.thaiall.com/perlphpasp/source.pl?key=9145

http://thaiall.com/heroku/

การใช้งาน scratch ครั้งแรก

Scratch คือ เครื่องมือสำหรับการโปรแกรมด้วยแผนภาพ ด้วยการต่อจิ๊กซอล นำชิ้นคำสั่งมาร้อยเรียงเรื่องราวอย่างเป็นระบบ ใช้ได้ฟรี สำหรับนักเรียน ครู อาจารย์ สามารถใช้สร้างสรรค์ตัวการ์ตูน เล่านิทาน เกม ดนตรี ศิลปะ บอกเล่าถึงชีวิต และสังคม การฝึกใช้ถือเป็นก้าวสำคัญของผู้เริ่มต้นที่จะศึกษาการโปรแกรมในระดับที่สูงขึ้น Scratch ใช้ในขอบเขตอื่นได้ ทั้งโครงงานวิทยาศาสตร์ คณิตศาสตร์ สังคมศาสตร์ รวมทั้งการสร้างแบบจำลอง และการทดลอง แล้วยังช่วยสร้างเอกสารนำเสนอของนักเรียน ครู อาจารย์ การเปิดโครงงานสามารถใช้งานบนเว็บไซต์ เผยแพร่ แบ่งปัน แก้ไขผ่านเว็บบราวเซอร์ ซึ่ง Scratch เริ่มต้นโครงการจากการทำงานร่วมกันระหว่าง Google และ MIT’s Scratch team แล้วทีมของ Google ได้พัฒนา Blockly เพื่อสนับสนุนการเรียนรู้การโปรแกรม และการนำไปใช้ในภาคธุรกิจได้ (แปลจาก wikipedia.org และ mit.edu) #

scratch first program
scratch first program

วัตถุประสงค์
1. เพื่อเรียนรู้การต่อ block
2. เพื่อประมวลตาม block ที่ต่อเสร็จ
3. เพื่อเก็บ script เข้าเครื่องคอมพิวเตอร์ได้
4. เพื่อนำ script กลับมาประมวลผลได้

การใช้งาน scratch ครั้งแรก

1. เข้า http://scratch.mit.edu
2. กด create เพื่อสร้างผลงาน หรือคลิ๊ก “Try it out”
3. ถ้าติดตั้ง Flash แล้ว จะข้ามไปข้อ 4
แต่ถ้าไม่ได้ติดตั้ง Flash ไว้ก่อนหน้านี้
เมื่อทดสอบใน chrome browser จะพบข้อความ
– ให้คลิ๊ก “Click to enable Adobe Flash Player”
– ให้คลิ๊ก “Allow” to Run Flash
4. พบตัว Scratch สีเหลือง หน้าตาเหมือนแมว
ในหน้าต่าง Stage ที่เป็นเวทีแสดงของแมว
ส่วนนี้ขยายเต็ม full screen ได้
5. ด้านบนของตัวแมว Scratch จะช่อง Project title
พบชื่องานว่า “Untitled” เริ่มต้นก็ควรตั้งชื่องานใหม่
ให้เปลี่ยนชื่องานนี้เป็น mycat หรือตามที่ชอบ
6. ในแท็บ (Tab) ชื่อ Scripts มี Block palette
ปัจจุบันอยู่ที่กลุ่มบล็อก Motion
ด้านล่างเป็นบล็อกที่ใช้ได้ในกลุ่มนี้
7. การเริ่มต้น ให้คลิ๊กกลุ่มบล็อก Events
จะพบบล็อกชื่อว่า “When clicked”
8. ใช้ mouse คลิ๊กบล็อกนั้น ค้างไว้ (hold)
แล้วลากไป (drag) ปล่อยในพื้นที่ Scripts area ด้านขวา
ที่เป็นพื้นที่ต่อบล็อก ให้ปล่อยบล็อกไว้โซนด้านบนของที่ว่าง
จะได้จัดวางเป็นระเบียบแบบบนลงล่าง (Top-Down design)
9. กลับไปคลิ๊กกลุ่มบล็อก Motion อีกครั้ง
จะพบบล็อกชื่อ “move 10 steps”
ลากไปต่อท้ายบล็อก “When clicked”
10. ทดสอบสั่งงาน – ครั้งแรก
โดยคลิ๊กสัญลักษณ์รูปธงสีเขียว (Green flag to start)
หมายถึง ทำงานตามสั่ง
จะพบว่าแมวเดินไป 10 steps
กดที่ธงสีเขียวอีกครั้งก็เดินอีก 10 steps ซึ่งไปได้ประมาณ 10 จุด
11. เก็บ script ไว้ในเครื่อง (download script)
สั่งผ่าน menu bar ให้คลิ๊ก file, download to your computer
ก็จะได้แฟ้ม mycat.sb2 มาไว้ในเครื่องคอมพิวเตอร์
12. ปิดหน้าต่าง หรือกลับไปที่ http://scratch.mit.edu
แล้วคลิ๊ก create ใหม่
จะพบว่างานที่เคยทำไว้ หายไปจาก Scripts area และ Stage
13. เรียก script กลับมาจากในเครื่อง (upload script)
สั่งผ่าน menu bar ให้คลิ๊ก file, upload from your computer
แล้วกด ok เพื่อยืนยัน ก็จะพบว่า script ที่เคยเก็บไว้ กลับมาแล้ว
มีวัตถุสั่งงาน 2 วัตถุเหมือนเดิม ในพื้นที่ทำงาน
14. ทำการสร้างบล็อกเพิ่มอีก 2 บล็อก
คือ “When clicked” และ “move -10 steps”
โดยเปลี่ยนจากเลข 10 เป็น -10
หากคลิ๊กที่ธงสีเขียวในบล็อกชุดใดก็จะทำงานตามบล็อกในชุดนั้น
ทำให้แมวเดินหน้า ถอยหลังได้ ตามการคลิ๊ก

first script
first script

text processing แบบ csv ในภาษา perl

ตัวอย่างผลแบบ csv
ตัวอย่างผลแบบ csv

มีโอกาสรื้อโค้ดภาษา perl อ่าน course กับ regist
ซึ่งจัดเก็บแบบ csv โดยส่งรหัสนักศึกษา ปี และภาค ไปถาม
แล้วตอบกลับเป็นรายวิชาที่ลงทะเบียน
ทำให้รู้ว่าลงวิชาอะไรไปบ้างในแต่ละภาคเรียน
เป็นเพียงช่วงหนึ่งของ code หลักที่ใช้ทำ transcript
แต่มีเพื่อนต้องการข้อมูลเพียงเท่านี้ไปประมวลผลต่อ
จึงตัด code ออกมาให้เหลือข้อมูลเท่านี้
มีตัวอย่าง code ดังนี้
#!/usr/bin/perl
# ?idstd=1234&yr=2012&sem=1
&parse;
print “Content-type:text/html\n\n”;
open(FILE,”course.txt”); @rec=<FILE>; close(FILE);
foreach $r(@rec) {
@d = split(“,”,$r);
$dd = join ‘,’,$d[2],$d[3],$d[4]; #code, subject name, credit
$scode{$d[0]} = $dd;
}
# ==================
$file = join ”,”regist”, $config{‘yr’} , $config{‘sem’} ,”.txt”;
open(FILE,”$file”); @rec=<FILE>; close(FILE);
foreach $r(@rec) {
@r = split(“\n”,$r);
@d = split(“,”,$r[0]);
if ($config{‘idstd’} eq $d[2]) {  print  $d[1] . “,”.$scode{$d[2]}.”,<br/>”; }
}
# ==================
sub parse {
if ($ENV{‘REQUEST_METHOD’} eq ‘GET’) {
@pairs = split(/&/, $ENV{‘QUERY_STRING’});
} elsif ($ENV{‘REQUEST_METHOD’} eq ‘POST’) {
read(STDIN, $buffer, $ENV{‘CONTENT_LENGTH’});
@pairs = split(/&/, $buffer);
}
foreach $pair (@pairs) {
local($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
$name =~ s/~!/~!/g;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
$value =~ s/~!/~!/g;
$value =~ s/<!–(.|\n)*–>//g;
$config{$name} = $value;
}
}

Web Site Development Process – The life-cycle steps

กระบวนการพัฒนาเว็บไซต์
กระบวนการพัฒนาเว็บไซต์

Web Site Development Process – The life-cycle steps
by Benny Alexander

Like the traditional software development, the process of web site development can also be divided into different life cycle steps. This can help to format the team effectively, and the standards and procedures can be adopted to achieve maximum quality. This article explains the steps of development which can be possibly arranged as a process of web engineering. This is just a guideline to help you, to know, how a process can be done. The steps may vary from application to application. Write me your suggestions and comments on this article to enquiry@macronimous.com.
A system development process can follow a number of standard or company specific frameworks, methodologies, modeling tools and languages. Software development life cycle normally comes with some standards which can fulfill the needs of any development team. Like software, web sites can also be developed with certain methods with some changes and additions with the existing software development process. Let us see the steps involve in any web site development.
1. Analysis:
Once a customer is started discussing his requirements, the team gets into it, towards the preliminary requirement analysis. As the web site is going to be a part of a system, It needs a complete analysis as, how the web site or the web based application is going to help the present system and how the site is going to help the business. Moreover the analysis should cover all the aspects especially on how the web site is going to join the existing system. The first important thing is finding the targeted audience. Then, All the present hardware, software, people and data should be considered during the time of analysis. For example, if a company XYZ corp is in need of a web site to have its human resource details online, the analysis team may try to utilize the existing data about the employees from the present database. The analysis should be done in the way, that it may not be too time consuming or with very less informative. The team should be able to come up with the complete cost- benefit analysis and as the plan for the project will be an output of analysis, it should be realistic. To achieve this the analyst should consult the designers, developers and testers to come up with a realistic plan.
Input:Interviews with the clients, Mails and supporting docs by the client, Discussions Notes, Online chat, recorded telephone conversations,Model sites/applications etc.,
Output: 1. Work plan, 2. Cost involved, 3. Team requirements, 4. Hardware-software requirements, 5. Supporting documents and 6. the approval.
2. Specification Building:
Preliminary specifications are drawn up by covering up each and every element of the requirement. For example if the product is a web site then the modules of the site including general layout, site navigation and dynamic parts of the site should be included in the spec. Larger projects will require further levels of consultation to assess additional business and technical requirements. After reviewing and approving the preliminary document, a written proposal is prepared, outlining the scope of the project including responsibilities, timelines and costs.
Input: Reports from the analysis team.
Output: Complete requirement specifications to the individuals and the customer/customer’s representative.
3. Design and development:
After building the specification, work on the web site is scheduled upon receipt of the signed proposal, a deposit, and any written content materials and graphics you wish to include. Here normally the layouts and navigation will be designed as a prototype.
Some customers may be interested only in a full functional prototype. In this case we may need to show them the interactivity of the application or site. But in most of the cases customer may be interested in viewing two or three design with all images and navigation.
There can be a lot of suggestions and changes from the customer side, and all the changes should be freezed before moving into the next phase. The revisions could be redisplayed via the web for the customer to view.
As needed, customer comments, feedback and approvals can be communicated by
e-mail, fax and telephone.
Throughout the design phase the team should develop test plans and procedures for quality assurance. It is necessary to obtain client approval on design and project plans.
In parallel the Database team will sit and understand the requirements and develop the database with all the data structures and sample data will also be prepared.
Input: Requirement specification.
Output: Site design with templates, Images and prototype.
4. Content writing:
This phase is necessary mainly for the web sites. There are professional content developers who can write industry specific and relevant content for the site. Content writers to add their text can utilize the design templates. The grammatical and spelling check should be over in this phase.
Input: Designed template.
Output: Site with formatted content.
5. Coding:
Now its programmers turn to add his code without disturbing the design. Unlike traditional design the developer must know the interface and the code should not disturb the look and feel of the site or application. So the developer should understand the design and navigation. If the site is dynamic then the code should utilize the template. The developer may need to interact with the designer, in order to understand the design. The designer may need to develop some graphic buttons when ever the developer is in need, especially while using some form buttons. If a team of developers is working they should use a CVS to control their sources. Coding team should generate necessary testing plans as well as technical documentation. For example Java users can use JavaDoc to develop their documents to understand their code flow. The end-user documentation can also be prepared by the coding team, which can be used by a technical writer who can understand them, writes helps and manuals later.
Input: The site with forms and the requirement specification.
Output : Database driven functions with the site, Coding documents.
6. Testing:
Unlike software, web based applications need intensive testing, as the applications will always function as a multi-user system with bandwidth limitations. Some of the testing which should be done are, Integration testing, Stress testing, Scalablity testing, load testing, resolution testing and cross-browser compatibility testing. Both automated testing and manual testing should be done without fail. For example its needed to test fast loading graphics and to calculate their loading time, as they are very important for any web site. There are certain testing tools as well as some online testing tools which can help the testers to test their applications. For example ASP developers can use Microsoft’s Web Application Test Tool to test the ASP applications, which is a free tool available from the Microsoft site to download.
After doing all the testing a live testing is necessary for web sites and web based applications. After uploading the site there should be a complete testing(E.g.. Links test)
Input: The site, Requirement specifications, supporting documents, technical specifications and technical documents.
Output: Completed application/site, testing reports, error logs, frequent interaction with the developers and designers.
7. Promotion:
This phase is applicable only for web sites. Promotion needs preparation of meta tags, constant analysis and submitting the URL to the search engines and directories. There is a details article in this site on site promotion, click here to read it. The site promotion is normally an ongoing process as the strategies of search engine may change quite often. Submitting a site URLs once in 2 months can be an ideal submission policy. If the customer is willing, then paid click and paid submissions can also be done with additional cost.
Input: Site with content, Client mails mentioning the competitors.
Output: Site submission with necessary meta tag preparation.
8. Maintenance and Updating:
Web sites will need quite frequent updations to keep them very fresh. In that case we need to do analysis again, and all the other life cycle steps will repeat. Bug fixes can be done during the time of maintenance. Once your web site is operational, ongoing promotion, technical maintenance, content management & updating, site visit activity reports, staff training and mentoring is needed on a regular basis depend on the complexity of your web site and the needs within your organization.
Input: Site/Application, content/functions to be updated, re-Analysis reports.
Output: Updated application, supporting documents to other life cycle steps and teams.
The above-mentioned steps alone are not strict to web application or web site development. Some steps may not applicable for certain tasks. Its depend on the cost and time involved and the necessity. Sometimes if it is a intranet site, then there will be no site promotion. But even if you are a small development firm, if you adopt certain planning along with this web engineering steps in mind, it will definitely reflects in the Quality of the outcome.