<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8244509629672045924</id><updated>2026-07-17T21:26:30.256-07:00</updated><category term="asp.net"/><category term="C# Winapp"/><category term="Crystal Reports"/><category term="SQLServer"/><category term="C#"/><category term="jquery"/><category term="Ajax"/><category term="css"/><category term="asp.net mvc"/><category term="visual studio.net"/><category term="node.js"/><category term="gridview"/><category term="ssrs"/><category term="IIS"/><category term="react.js"/><category term="npm"/><category term="javascript"/><category term="VB.NET"/><category term="windows7"/><category term="Active Directory"/><category term="PHP"/><category term="windows server 2008"/><category term="windowxp"/><category term="MySql"/><category term="joomla"/><category term="web design"/><category term="Freebsd"/><category term="Visual Studio Code"/><category term="andriod"/><category term="bootstrap"/><category term="dotnet"/><category term="extension joomla"/><category term="web"/><category term="Master Page"/><category term="Utility"/><category term="apache"/><category term="best practices"/><category term="blog"/><category term="code programming"/><category term="github"/><category term="jcomment"/><category term="mvc"/><category term="other"/><category term="web service"/><category term="Backup"/><category term="Cloudflare"/><category term="Community Builder"/><category term="Fix case(laguna)"/><category term="ModalPopupExtender"/><category term="OOP"/><category term="Prettier"/><category term="Sequelize"/><category term="Trick"/><category term="authen"/><category term="clickonce"/><category term="design pattern"/><category term="dns"/><category term="gentelella"/><category term="html"/><category term="image"/><category term="password"/><category term="repeater"/><category term="resize"/><category term="rewrite"/><category term="security"/><category term="singleton"/><category term="upload file"/><category term="visualbox"/><category term="web.config"/><category term="window domain"/><title type='text'>IT Knowledge</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>514</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-2316211478481696303</id><published>2023-08-27T09:11:00.004-07:00</published><updated>2023-08-27T09:11:30.625-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="css"/><title type='text'>Flexbos Froggy</title><summary type="text">&amp;nbsp;https://flexboxfroggy.com/#th</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/2316211478481696303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2023/08/flexbos-froggy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/2316211478481696303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/2316211478481696303'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2023/08/flexbos-froggy.html' title='Flexbos Froggy'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjW9fhNcnld0wI8rJpmCl1Fha2MRKs3tIzgYOlinJP4QkqR2HKpNFjX1j5qJOuUCvBba5QLotD7tPdtYKaSW_2bgi46wKudHOlAobyZNXdNKUMjv2lE2ZUNl0rf5cQLvu_glJwqpfKRlpQoJ1MMJMkN4gkravW9jJWazugPlbT5N4Alk1NMzisRsUQtAO1H=s72-w665-h287-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-8057363307589069140</id><published>2023-07-24T20:24:00.002-07:00</published><updated>2023-07-24T20:24:54.378-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="react.js"/><title type='text'>Hello/สวัสดี i18n สร้างเว็บรองรับหลายภาษาบน React</title><summary type="text">&amp;nbsp;สวัสดีครับผมแมกซ์นะครับ อากาศเย็นซะงั้นหรือผมรู้สึกไปเอง เหมือนจะไม่สบาย วันนี้มานำเสนอเครื่องมือช่วยในการสร้างและจัดการภาษาภายในเว็บ ซึ่งเป็นสิ่งสำคัญอย่างหนึ่ง ในตอนแรกผมสร้างเว็บแอพ โดยทั้งหมดใช้ภาษาอังกฤษ และมาลองคิดทบทวน ถามผู้ใช้อีกที สิ่งที่เค้าต้องการคือภาษาไทยสิ !เข้าใจง่าย ตรงไปตรงมา เราทำให้ผู้ใช้คือคนไทย งั้นก็เปลี่ยนทำเป็นไทยเลยไหม แต่สิ่งที่อยากได้ด้วยคือความสากล จึงเป็นที่มา</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/8057363307589069140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2023/07/hello-i18n-react.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/8057363307589069140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/8057363307589069140'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2023/07/hello-i18n-react.html' title='Hello/สวัสดี i18n สร้างเว็บรองรับหลายภาษาบน React'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-7824856025144461610</id><published>2023-07-18T20:33:00.000-07:00</published><updated>2023-07-18T20:33:03.300-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="react.js"/><title type='text'>มาทำความรู้จัก React Context API กันเถอะ</title><summary type="text">&amp;nbsp;เมื่อโปรเจคของเราใหญ่มากขึ้นเรื่อยๆ เรามักจะเจอกับปัญหาการจัดการState วันนี้ผมจะมาพาทุกคนไปรู้จักกับReact APIตัวหนึ่งที่ช่วยให้เราสามารถจัดการStateได้สะดวกมากยิ่งขึ้น โดยเฉพาะในโปรเจคขนาดใหญ่What is Context?ContextคือReact APIที่ช่วยให้เราสามารถแชร์ข้อมูลระหว่างComponentsได้โดยไม่ต้องส่งPropsการแชร์ข้อมูลระหว่าง Components โดยไม่ใช้ Contextเมื่อก่อนสมัยที่เรายังไม่มีContextหากเราต้องการแชร์</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/7824856025144461610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2023/07/react-context-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/7824856025144461610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/7824856025144461610'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2023/07/react-context-api.html' title='มาทำความรู้จัก React Context API กันเถอะ'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-3300247817728460423</id><published>2022-12-26T20:10:00.004-08:00</published><updated>2022-12-26T20:10:33.393-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer"/><title type='text'>How to backup multiple SQL Server databases automatically</title><summary type="text">&amp;nbsp;In situations with few databases, maintaining the regular backup routine can be achieved easily, either with the help of a few simple scripts or by configuring a SQL Server agent job that will perform the backup automatically. However, if there are hundreds of databases to manage, backing up each database manually can prove to be a quite time-consuming task. In this case, it would be useful</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/3300247817728460423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2022/12/how-to-backup-multiple-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/3300247817728460423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/3300247817728460423'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2022/12/how-to-backup-multiple-sql-server.html' title='How to backup multiple SQL Server databases automatically'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-1110083886401924452</id><published>2022-12-26T20:08:00.003-08:00</published><updated>2022-12-26T20:08:28.472-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer"/><title type='text'>How to delete old database backup files automatically in SQL Server</title><summary type="text">&amp;nbsp;How to delete old database backup files automatically in SQL ServerIntroductionWhile working with a number of databases, creating a recovery plan can be challenging, especially if we want a foolproof design. Automated backup and restore strategies ensure the recovery plan is successful. However, strategies relying on frequent backups, although part of a sound strategy, can start causing </summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/1110083886401924452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2022/12/how-to-delete-old-database-backup-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1110083886401924452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1110083886401924452'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2022/12/how-to-delete-old-database-backup-files.html' title='How to delete old database backup files automatically in SQL Server'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-8615199796427676021</id><published>2022-09-25T20:47:00.001-07:00</published><updated>2022-09-25T20:47:20.874-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><title type='text'>Deploying Node/Express app on a Windows Server</title><summary type="text">&amp;nbsp;Before we continue, you should have a basic knowledge of Setting up a simple&amp;nbsp;Express App&amp;nbsp;and using&amp;nbsp;Nodemon&amp;nbsp;or any other Node Process manager.To speed things up, i have setup a simple express app with a single endpoint for this demo, please note that the target is not necessarily an introduction to Express but how to deploy an Express based app on Windows.&amp;nbsp;</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/8615199796427676021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2022/09/deploying-nodeexpress-app-on-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/8615199796427676021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/8615199796427676021'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2022/09/deploying-nodeexpress-app-on-windows.html' title='Deploying Node/Express app on a Windows Server'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-4994023493085535306</id><published>2021-12-13T00:59:00.000-08:00</published><updated>2021-12-13T00:59:08.532-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer"/><title type='text'>Historical Queries run on a SQL Server database</title><summary type="text">&amp;nbsp;SELECT&amp;nbsp; d.plan_handle ,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; d.sql_handle ,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e.textFROM&amp;nbsp; &amp;nbsp; sys.dm_exec_query_stats d&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CROSS APPLY sys.dm_exec_sql_text(d.plan_handle) AS eWHERE text like &#39;%2021-05-31%&#39;Source :&amp;nbsp;https://dba.stackexchange.com/questions/4043/can-i-see-historical-queries-run-on-a-sql-server-database</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/4994023493085535306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/12/historical-queries-run-on-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/4994023493085535306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/4994023493085535306'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/12/historical-queries-run-on-sql-server.html' title='Historical Queries run on a SQL Server database'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-32117900984037343</id><published>2021-03-04T11:37:00.004-08:00</published><updated>2021-03-04T11:37:29.207-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><title type='text'>How to Document an Express API with Swagger UI and JSDoc</title><summary type="text">JSDoc&amp;nbsp;is a popular tool for generating documentation from comments in the source code of your app. This serves two purposes. First, the documentation is directly available to anyone viewing the source code. Second, the comments can be compiled later into a complete set of reference documentation.Swagger&amp;nbsp;provides a tool for presenting this documentation:&amp;nbsp;Swagger UI. Swagger UI </summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/32117900984037343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/03/how-to-document-express-api-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/32117900984037343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/32117900984037343'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/03/how-to-document-express-api-with.html' title='How to Document an Express API with Swagger UI and JSDoc'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-6142532503725476438</id><published>2021-01-19T10:27:00.002-08:00</published><updated>2023-07-18T20:34:28.912-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="react.js"/><title type='text'>React Structure โครงสร้าง react พื้นฐานสำหรับสร้างโปรเจคได้ง่ายและรวดเร็ว</title><summary type="text">&amp;nbsp;เนื่องจากการสร้างโปรเจคใหม่การ create react project แล้วต้อง install หรือ add module ที่ต้องใช้งานบ้างครั้งอาจลืมว่าต้องใช้งานอะไรบ้าง หรือการต้องวางโฟเดอร์หรือรูปแบบการวางไฟล์ในโปรเจคอาจทำให้เสียเวลาและไม่ครบถ้วน การวางโครงสร้างโปรเจคไว้เป็นพื้นฐานจะช่วยให้สามารถเริ่มโปรเจคได้เร็วขึ้น **ชื่อโฟเดอร์อาจมีการปรับเปลี่ยนตามความเหมาะสมตามรูปแบบงานที่ได้รับมอบหมาย**รูปโครงสร้างหรือตำแหน่งไฟล์</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/6142532503725476438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/react-structure-react.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/6142532503725476438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/6142532503725476438'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/react-structure-react.html' title='React Structure โครงสร้าง react พื้นฐานสำหรับสร้างโปรเจคได้ง่ายและรวดเร็ว'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-6632692057053173515</id><published>2021-01-19T10:23:00.002-08:00</published><updated>2023-07-18T20:34:42.331-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="react.js"/><title type='text'>React Folder Structure in 5 Steps</title><summary type="text">&amp;nbsp;How to structure large React apps into folders and files is a highly opinionated topic. I struggled for a while writing about this subject, because there is no right way to do it. However, every other week people ask me about how I structure my React projects. Not only about folder structures for small React projects, but more importantly about scalable React applications. After </summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/6632692057053173515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/react-folder-structure-in-5-steps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/6632692057053173515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/6632692057053173515'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/react-folder-structure-in-5-steps.html' title='React Folder Structure in 5 Steps'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-8105773370057154636</id><published>2021-01-19T10:17:00.001-08:00</published><updated>2023-07-18T20:34:50.406-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="react.js"/><title type='text'>React JS— Architecture + Features + Folder structure + Design Pattern</title><summary type="text">&amp;nbsp;Last updated on January 17, 2021.Trying my best to keep the story up-to-date. (react v17.0.1)Git repo:&amp;nbsp;SAURABH SHAH / ReactJS myapp · GitLab&amp;nbsp;(wip)fig-1. ReactJS app architecture modulesThis story will cover all the aspects of a react js web app architecture. If you are creating a new responsive web application using react JS, then follow along.Our app architecture includes various</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/8105773370057154636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/react-js-architecture-features-folder.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/8105773370057154636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/8105773370057154636'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/react-js-architecture-features-folder.html' title='React JS— Architecture + Features + Folder structure + Design Pattern'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-4692055275105298021</id><published>2021-01-19T09:47:00.001-08:00</published><updated>2021-01-19T09:47:21.611-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><title type='text'>Security Checklist for Express (NodeJS)</title><summary type="text">&amp;nbsp;ความปลอดภัย ภัยคุกคาม เป็นเรื่องที่ยากจะเข้าใจ เพราะในทุกๆวัน การโจมตี มันมีวิธีการมากมาย ในฐานะนักพัฒนาซอฟท์แวร์ ไม่ควรมองข้ามวิธีการที่จะปกป้องซอฟท์แวร์ของเราให้มีความปลอดภัยอยู่เสมอ จากผู้โจมตีระบบผมได้รับโปรเจคช่วงนี้เป็น NodeJS Engineer / API Developer โปรเจคช่วงนี้จะดูแล Backend ทั้งหมด ตั้งแต่Implement APIs ด้วย Expressสร้าง Dockerfile, docker-compose.ymlDeployment docker image และ</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/4692055275105298021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/security-checklist-for-express-nodejs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/4692055275105298021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/4692055275105298021'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/security-checklist-for-express-nodejs.html' title='Security Checklist for Express (NodeJS)'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-1472571180122376014</id><published>2021-01-19T09:24:00.002-08:00</published><updated>2021-01-19T09:24:32.876-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><title type='text'>เรียนรู้การใช้ JWT กับ Passport.js Authentication</title><summary type="text">&amp;nbsp;ในปัจจุบันนี้ Web App และ Mobile App ส่วนใหญ่นั้นจะมีการยืนยันตัวตนก่อนเข้าระบบ ซึ่งมีวิธีการเข้าสู่ระบบที่หลากหลายและแตกต่างกัน เช่น Facebook&amp;nbsp;, Google, Twitter หรือ Email และ Password เป็นต้นก่อนจะไปเริ่มโค้ดกัน เรามาทำความเข้าใจเกี่ยวกับ&amp;nbsp;Passport.js&amp;nbsp;และ&amp;nbsp;JWT&amp;nbsp;กันก่อนว่าคืออะไรPassport.jsPassport is Simple, unobtrusive authentication for Node.jsตามคำนิยามแปลได้ว่า “</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/1472571180122376014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/jwt-passportjs-authentication.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1472571180122376014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1472571180122376014'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/jwt-passportjs-authentication.html' title='เรียนรู้การใช้ JWT กับ Passport.js Authentication'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-151817204873710754</id><published>2021-01-19T08:53:00.004-08:00</published><updated>2021-01-19T08:53:54.152-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><title type='text'>ทำ Stateless Authentication บน Express ด้วย Passport.js + JWT</title><summary type="text">&amp;nbsp;เนื้อหาของบทความนี้จะคลอบคลุมหัวข้อดังต่อไปนี้Setup API server อย่างง่ายด้วย Express.jsMiddleware คืออะไร?Stateless vs Stateful อย่างคร่าวๆJWT คืออะไร?ทำ Authentication ด้วย JWT + Passport.js- สร้าง JWT ยังไง?- Passport.js คืออะไร? Strategy คืออะไร?- Applied JWT + Passport Authenticationปล. ถ้าเข้าใจหัวข้อ 1–4 อยู่แล้วก้ข้ามไป 5 เลยก็ได้นะครับ!ปล2. ถ้าหลุดส่วนไหน ท้ายสุดจะมีโค้ดสรุปให้อีกที</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/151817204873710754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/stateless-authentication-express.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/151817204873710754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/151817204873710754'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/stateless-authentication-express.html' title='ทำ Stateless Authentication บน Express ด้วย Passport.js + JWT'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-4728508723234082011</id><published>2021-01-19T08:02:00.002-08:00</published><updated>2021-01-19T08:02:21.402-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>10 ฟังก์ชันสำหรับ Array ที่ควรรู้ในภาษา JavaScript</title><summary type="text">&amp;nbsp;สำหรับการจัดการ Array นั้น JavaScript ก็มี&amp;nbsp;built-in utilities&amp;nbsp;มาให้ใช้เยอะแยะมากมาย แต่ในบทความนี้ จะหยิบมา 10 ฟังก์ชันที่ควรรู้ ซึ่งมีอะไรบ้าง ไปดูกันเล๊ยยยย1. forEach()ฟังก์ชันที่วนลูปแต่ละ element ใน array โดยไม่มี returnconst arr = [1, 2, 3, 4, 5, 6];arr.forEach(item =&amp;gt; {   console.log(item); // output: 1 2 3 4 5 6});2. includes()ฟังก์ชันนี้จะตรวจสอบค่า element ที่ให้มาว่า</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/4728508723234082011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/10-array-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/4728508723234082011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/4728508723234082011'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/10-array-javascript.html' title='10 ฟังก์ชันสำหรับ Array ที่ควรรู้ในภาษา JavaScript'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-5824608630238720423</id><published>2021-01-19T03:16:00.006-08:00</published><updated>2021-01-19T03:17:23.838-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Syntax และ Shorthand Techniquesในภาษา JavaScript</title><summary type="text">&amp;nbsp;สำหรับภาษา JavaScript เชื่อว่าเป็นภาษาที่หลายคนคุ้นเคยกันมาอย่างช้านาน เนื่องจากเป็นภาษาที่ใช้สำหรับเพิ่มลูกเล่นให้กับเว็บไซต์ และบทความนี้จะมาแนะนำ Syntax และวิธีการเขียนโค้ดให้สั้นและกระชัด แบบจัดเต็ม มีอะไรบ้างนั้นไปดูกันเล๊ยยยย?: (Ternary Operator)รูปย่อของ if ที่น่าจะคุ้นเคยกันในหลายๆภาษา เช่น php , dartรูปแบบคือ&amp;nbsp;condition? true : falseการเขียนรูปแบบทั่วไปbool isLogin = false;</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/5824608630238720423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/syntax-shorthand-techniques-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/5824608630238720423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/5824608630238720423'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/syntax-shorthand-techniques-javascript.html' title='Syntax และ Shorthand Techniquesในภาษา JavaScript'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-1330493961940049909</id><published>2021-01-18T22:45:00.006-08:00</published><updated>2021-01-18T22:45:58.446-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><title type='text'>Project Structure of RESTFul API with Express.js on Node.js</title><summary type="text">&amp;nbsp;บทความนี้ เป็นการแนะนำการ Setup โครงสร้างโปรเจคสำหรับสร้าง RESTFul API ด้วย&amp;nbsp;Node.js&amp;nbsp;และ&amp;nbsp;Express.js&amp;nbsp;เชื่อว่าคนที่เคยเขียน API ด้วย Express ต้องเคยเจอปัญหาว่าจะสร้างโครงสร้างของโปรเจคอย่างไรดี เนื่องจากทาง Express ไม่มีรูปแบบที่แนะนำ ทำให้การพัฒนาเป็นไปอย่างหลากหลาย ตามความถนัดของแต่ละคน หรือแต่ละทีมตามที่ตกลงกัน ซึ่งบทความนี้จะแนะนำการวางโครงสร้างโปรเจคที่จะทำให้การพัฒนา</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/1330493961940049909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/project-structure-of-restful-api-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1330493961940049909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1330493961940049909'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/project-structure-of-restful-api-with.html' title='Project Structure of RESTFul API with Express.js on Node.js'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-193829331838012684</id><published>2021-01-18T22:42:00.006-08:00</published><updated>2021-01-18T22:42:38.971-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Null , Undefined และ NaN ใน Javascript ต่างกันอย่างไร</title><summary type="text">&amp;nbsp;หากใครเขียนภาษา javascript แน่นอนว่าต้องเคยเจอ ค่าของตัวแปรเป็น null, undefined หรือ NaN อย่างแน่นอน แล้วเคยสงสัยไหม? ว่ามันต่างกันอย่างไร วันนี้เรามาทำความเข้าใจกัน ++nullตัวแปรที่เป็นค่า null ใน JavaScript หมายถึงเป็นตัวแปรที่ไม่มีค่าใดๆเลยlet x = null;console.log(x);          // nullconsole.log(x == &quot;&quot;);    // falseconsole.log(x == null);  // trueundefinedตัวแปรที่ประกาศขึ้นมา แต่ไม่ได้</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/193829331838012684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/null-undefined-nan-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/193829331838012684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/193829331838012684'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/null-undefined-nan-javascript.html' title='Null , Undefined และ NaN ใน Javascript ต่างกันอย่างไร'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-5992668135738179512</id><published>2021-01-18T18:27:00.000-08:00</published><updated>2021-01-18T18:27:00.529-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Utility"/><title type='text'>รวม 20 คีย์ลัดใช้บ่อยที่คนยังไม่ค่อยรู้ สำหรับ Windows</title><summary type="text">&amp;nbsp;คีย์ลัดที่ใช้บ่อยAlt + Tab&amp;nbsp;: สลับ โปรแกรมที่กำลังเปิดอยู่Window + Tab&amp;nbsp;: เพิ่ม เดสก์ท็อป (จอใหม่)Window + Control + &amp;lt; หรือ &amp;gt;&amp;nbsp;: สลับ เดสก์ท็อปWindow + D&amp;nbsp;: ซ่อน/แสดง โปรแกรมที่กำลังใช้อยู่Window + M&amp;nbsp;: ซ่อน ทุกโปรแกรมทันที (อิอิ)Window + E&amp;nbsp;: เปิด My ComputerCtrl + Alt + Delete&amp;nbsp;: เปิด Task ManagerWindow + เลข 1-9&amp;nbsp;: เรียกโปรแกรมที่เปิดค้างไว้ตาม</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/5992668135738179512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/20-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/5992668135738179512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/5992668135738179512'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/20-windows.html' title='รวม 20 คีย์ลัดใช้บ่อยที่คนยังไม่ค่อยรู้ สำหรับ Windows'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-6879847025796226424</id><published>2021-01-16T06:25:00.001-08:00</published><updated>2023-07-18T20:35:01.257-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="react.js"/><title type='text'>แนะนำ React Lifecycle Methods</title><summary type="text">&amp;nbsp;สำหรับคนที่เพิ่งเขียน React หรือ React Native ใหม่ๆ เวลาอ่านเอกสารของ React เรื่อง React Lifecycle Methods อาจจะงงๆ เรื่องลำดับ และขั้นตอนการทำงานของ method แต่ละตัว แนะนำให้เข้าไปดูไดอะแกรมในเว็บนี้ได้ครับ เราสามารถคลิกเข้าไปดูรายละเอียดของแต่ละ method ได้เลย.รายละเอียด:&amp;nbsp;http://bit.ly/2I4Ngaxsource:https://codingthailand.com/blog/%e0%b9%81%e0%b8%99%e0%b8%b0%e0%b8%99%e0%b8%</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/6879847025796226424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/react-lifecycle-methods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/6879847025796226424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/6879847025796226424'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/react-lifecycle-methods.html' title='แนะนำ React Lifecycle Methods'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-8243448015456527481</id><published>2021-01-16T06:23:00.002-08:00</published><updated>2023-07-18T20:35:10.644-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="react.js"/><title type='text'>ศึกษา React ลองดูชีทสรุปเรียงตามนี้</title><summary type="text">&amp;nbsp;สำหรับคนที่เพิ่งเริ่มต้นศึกษา React ลองดูชีทสรุปเรียงตามนี้นะครับ จะทำให้เห็นภาพรวมของ JavaScript ES6+, React และ Redux ได้เป็นอย่างดี จะได้ดูด้วยว่าเราศึกษามาถูกทางหรือเข้าใจอย่างดีแล้วหรือไม่ ลองดูครับ&amp;nbsp;.1. JavaScript ES6+ =&amp;gt;&amp;nbsp;https://devhints.io/es62. React =&amp;gt;&amp;nbsp;https://devhints.io/react3. React และ React Redux =&amp;gt;&amp;nbsp;https://devhints.io/redux.อ้อ อีกอันนึงคือ </summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/8243448015456527481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/react.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/8243448015456527481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/8243448015456527481'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/react.html' title='ศึกษา React ลองดูชีทสรุปเรียงตามนี้'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-1204458944378486385</id><published>2021-01-16T06:21:00.003-08:00</published><updated>2023-07-18T20:35:20.110-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="npm"/><category scheme="http://www.blogger.com/atom/ns#" term="react.js"/><title type='text'>แนะนำ 15 ไลบรารี ของ React ที่น่าใช้ในปี 2020</title><summary type="text">&amp;nbsp;1. สร้าง QRCode แบบง่าย ๆ ลองตัวนี้▸&amp;nbsp;https://github.com/zpao/qrcode.react.2. สร้าง rich text editor ง่าย ๆ ด้วย React Quill▸&amp;nbsp;https://zenoamaro.github.io/react-quill.3. ครอบตัดรูปภาพด้วย React Image Crop▸&amp;nbsp;https://github.com/DominicTobias/react-image-crop.4. drag and drop รูปภาพ เพื่อเตรียมอัปโหลดด้วย react-dropzone▸&amp;nbsp;https://react-dropzone.js.org/.5. สร้างปฏิทินกิจกรรม </summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/1204458944378486385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/15-react-2020.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1204458944378486385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1204458944378486385'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/15-react-2020.html' title='แนะนำ 15 ไลบรารี ของ React ที่น่าใช้ในปี 2020'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-4699048098092331680</id><published>2021-01-16T06:12:00.004-08:00</published><updated>2021-01-16T06:12:32.615-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><category scheme="http://www.blogger.com/atom/ns#" term="npm"/><title type='text'>สรุป 14 คำสั่ง NPM ที่ใช้บ่อย สำหรับสาย Node.js</title><summary type="text">&amp;nbsp;&amp;nbsp;•&amp;nbsp;npm initเริ่มต้นใช้งาน และช่วยให้เราสร้าง และใส่รายละเอียดเกี่ยวกับโปรเจคของเรา (package.json)•&amp;nbsp;npm install module_nameติดตั้ง module•&amp;nbsp;npm install -g module_nameติดตั้ง module ในระดับ global•&amp;nbsp;npm install module_name –saveติดตั้ง module และเพิ่มมันเข้าไปในไฟล์ package.json (ข้างใน dependencies)•&amp;nbsp;npm install module_name –save-devเหมือนกันกับข้างบน ติดตั้ง </summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/4699048098092331680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/14-npm-nodejs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/4699048098092331680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/4699048098092331680'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/14-npm-nodejs.html' title='สรุป 14 คำสั่ง NPM ที่ใช้บ่อย สำหรับสาย Node.js'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-7282732529611442338</id><published>2021-01-16T06:11:00.003-08:00</published><updated>2021-01-16T06:11:26.691-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><category scheme="http://www.blogger.com/atom/ns#" term="npm"/><title type='text'>แนะนำ Sails.js MVC Framework สำหรับ Node.js</title><summary type="text">&amp;nbsp;แนะนำ Sails.js MVC Framework สำหรับ Node.js ที่ครบเครื่อง ใช้งานง่าย และมี features ครบถ้วน ครับ&amp;nbsp;จุดเด่น1. เหมาะสำหรับทำ RESTful APIs มาก เพราะมีตัว genereate โค้ดอัตโนมัติภายในบรรทัดเดียว!2. เหมาะสำหรับงานแบบ Realtime โค้ดที่ใช้เขียนง่าย และสั้นมาก! (เขียนครอบ socket.io อีกที)3. มี ORM ให้ใช้ สามารถติดต่อฐานข้อมูลได้หลายตัว เช่น MySQL, PostgreSQL, MongoDB, SQLite3, Redis เป็นต้น (ใช้ </summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/7282732529611442338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/sailsjs-mvc-framework-nodejs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/7282732529611442338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/7282732529611442338'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/sailsjs-mvc-framework-nodejs.html' title='แนะนำ Sails.js MVC Framework สำหรับ Node.js'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8244509629672045924.post-1063363135302536616</id><published>2021-01-16T06:10:00.002-08:00</published><updated>2021-01-16T06:10:10.399-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><category scheme="http://www.blogger.com/atom/ns#" term="npm"/><title type='text'>สร้าง RESTful API แบบไม่ต้องเขียนโค้ดเลยสักบรรทัด</title><summary type="text">&amp;nbsp;เห็นเฟรมเวิร์คตัวนี้ผ่านตามาสักพัก ก็เพิ่งเคยได้ลอง แล้วพบว่า เออเฟรมเวิร์กดี ชีวิตดีจริง ๆ สำหรับใครที่เคยปวดหัวกับการสร้าง RESTful API บทความนี้จะช่วยให้ท่านเสียเวลากับมันน้อยลง&amp;nbsp;(รึเปล่า 55)รู้จักกับ Sails.jscredit: sailsjs.comSails.js&amp;nbsp;มีคอนเซปต์มาจาก Rails (หากเขียน Rails เป็น ก็จะรู้ว่ามันคล้าย ๆ กัน) เพียงแต่การทำงานของมัน พัฒนามาจาก Node.js เท่านั้นเองSails.js&amp;nbsp;สามารถ</summary><link rel='replies' type='application/atom+xml' href='http://theheing.blogspot.com/feeds/1063363135302536616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theheing.blogspot.com/2021/01/restful-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1063363135302536616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8244509629672045924/posts/default/1063363135302536616'/><link rel='alternate' type='text/html' href='http://theheing.blogspot.com/2021/01/restful-api.html' title='สร้าง RESTful API แบบไม่ต้องเขียนโค้ดเลยสักบรรทัด'/><author><name>theheing</name><uri>http://www.blogger.com/profile/08509144710921095739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTzqfk6bVoUEDHpOy9C5MR7_KLmZE9BBK6pWhfDIm5_YuefNMqDmJkmvTyiQLoLHxdeBm8RGUll5RQaazIjUv_sZ3-iLWDOAO1wEwbe_o58DKoZbfzJVSIE0XQ_QC2-0/s220/2.jpg'/></author><thr:total>0</thr:total></entry></feed>