วันอาทิตย์ที่ 26 มิถุนายน พ.ศ. 2559

เพิ่ม PermGen space เพื่อให้ IDE ทำงานสะดวก...และไม่สะดุด



เคยไหม...ที่ทุกครั้ง เวลาที่เราเขียน Code บน NetBean หรือ Eclipse แล้วค้างๆๆๆๆๆ หรือ Deploy แล้วค้างแล้ว Dump ขึ้นตัวแดงมาเลยย... แล้วก็อ้างว่าเครื่องเก่าบ้าง กากบ้าง ต้องไปเพิ่ม Ram ให้เยอะขึ้น

จากการที่ท๊อปได้เข้าไปอ่านตาม Blog ต่างๆ เขาสรุปสาเหตุไว้ ดังนี้...

1. ปัญหาจากช่วง Deploy และ Undeploy 

-ช่วง runtime แต่ละ application จะถูกโหลดผ่านทาง application classloader โดยทำหน้าที่ โหลดไฟล์ .class จาก jar files และเมื่อ undeploy application นั้น classloader มันจะทำการละทิ้ง class ที่ได้มีการโหลดเข้ามา แล้วจะถูกจัดการโดย garbage collector ต่อมาในภายหลังเพื่อคืนทรัพยากรสู่ระบบ

และจากเหตุการณ์ตรงนี้แหละ....

-บางครั้ง classloader อาจยังมีการเก็บบางสิ่งที่ถูกโหลดเข้ามาไว้อยู่ และปกป้องมันจาก garbage collector เนื่องจากว่ามันอาจจะถูกใช้งานอยู่ ทำให้ garbage collector ไม่สามารถเข้ามาจัดการได้ จึงเป็นเหตุทำให้เกิดข้อผิดพลาด java.lang.OutOfMemoryError: PermGen space ได้
2. ปัญหาจากการจัดการ Memory ใน VM

-เดิมที memory ที่มีอยู่ใน Virtual Machine (VM) จะถูกหารไปใช้งานโดย number of region ซึ่งหนึ่งในนั้น คือ region ที่เป็น PermGen space (permanent generation space) ซึ่งเป็นพื้นที่ของ memory สำหรับโหลด class file เข้ามา

-สำหรับ size of memory region นั้น จะมีการกำหนดไว้อย่างคงที่โดยไม่มีการเปลี่ยนแปลงเมื่อ VM ทำงานอยู่ เราสามารถกำหนด size of region โดย -XX:MaxPermSize เช่น -XX:MaxPermSize = 256m หมายความว่า เรากำหนด size of memory region สูงสุดที่ 256 MB โดยหากเราไม่มีการกำหนด โดยพื้นฐานแล้วทางจะมีการกำหนดไว้ที่ 64 MB

3. ปัญหาจาก garbage collector 

-เนื่องจาก garbage collector ไม่สามารถคืนทรัพยากรสู่ระบบได้

วิธีการที่ garbage collector จัดการ... คือ ต้องเก็บ classes ใหม่ที่กำลังโหลดเข้ามาใน memory เป็นเหตุทำให้ VM นั้นเกิดการขาดแคลน space ใน memory region จึงต้องมี JAVA heap ไว้เพื่อช่วยจัดสรร memory ให้เพียงพอต่อ size of Object ที่อาศัยอยู่บน process heap

ปัญหาที่เกิดตามมา ก็คือ... เกิด Object นั้นออกจาก process และคืน memory สู่ระบบ

-เนื่องจากว่า JAVA application จะทำงานตาม process เดี่ยวๆ ของแต่ละ process ที่ทำงานอยู่ โดยจะไม่มีการแชร์ memory ร่วมกันระหว่าง process ซึ่งแต่ละ process จะถูกจัดสรร memory ให้แต่ละ process เองโดย JVM ที่เรียกว่า process heap 

เพราะฉะนั้น... การตั้งค่าพารามิเตอร์ –Xmx นั้นไม่ได้ช่วยอะไรมาก โดยพารามิเตอร์ดังกล่าว เป็นเพียงการกำหนด size of total heap เท่านั้น และไม่ได้ส่งผลกระทบอะไรต่อ size of PermGen region เลย

หลักๆ คือ ... 

-PermSize ไม่เพียงพอต่อการโหลด class file มาเก็บไว้ใน memory PermGen space 

สิ่งที่ต้องทำ คือ ...

-กำหนดค่า PermGen space และ heap size ให้เพียงพอต่อความต้องการใช้งาน

โดยทั่วไปเราจะกำหนด Environment Variables จาก JAVA_OPTS ซึ่งเป็น variable name ไว้กำหนดค่าต่างๆ ดังนี้

JAVA_OPTS="–Xms256m  -Xmx512m  -XX:PermSize=256m -XX:MaxPermSize=512m "

–Xms (initial java total heap size) ในกรณีที่เกิดปัญหาทำงานช้า
-Xmx : maximum java total heap size
-XX:PermSize : initial permanent  generation  space
-XX:MaxPermSize : maximum permanent generation space

นอกจากนี้ ยังมีพารามิเตอร์ตัวอื่นที่น่าสนใจ เช่น

-Xss128m เป็นการกำหนด stack size เท่ากับ 128MB
-ในแต่ละ thread ใน VM นั้น จะมี stack อยู่ โดย stack size จะจำกัดจำนวนของ thread ไว้ตามที่เราจะสามารถมีได้
ดังนั้น ถ้าจำนวนของ thread > stack size จะทำให้ขาดแคลน memory ตามที่แต่ละ thread มันต้องการ

-Xmn100m เป็นการกำหนด size of the heap สำหรับ young generation เท่ากับ 100MB
-memory ที่ถูกใช้งานโดย JVM จะถูกจัดเป็น generation

-ขั้นที่ 1 : generation จะแบ่งตามช่วงเวลาที่ memory pool นั้นได้ถือครอง object ในช่วงเวลาแตกต่างกันออกไป  โดย object ใหม่ที่ถูกเรียกเข้ามาใช้งานนั้นจะมีการจอง memory เพื่อใช้งานใน young generation region (บางครั้งอาจจะเรียกว่า new generation region) เมื่อไม่ได้ใช้งานจะถูกนำไปเก็บไว้ที่ memory old generation region 

-ขั้นที่ 2 : หาก memory young generation region เต็มแล้ว garbage collector จะทำการเรียกคืนหน่วยจำส่วนหนึ่ง ที่ไม่ได้มีการใช้งานแล้ว จาก old generation region แบ่งไปให้กับ young generation region

เดิมทีนั้น จะมีการแบ่ง generation ของ total heap size ต่อมาได้มีการแบ่ง old generation ออกมาเป็น tenured generation หลังจากที่ generational memory system นั้นได้ทำการหาร heap เข้าไป ใน sized partitions ที่ถูกแบ่งไว้อย่างระมัดระวังจะถูกเรียกว่า generation

–Xmn จะกำหนด size of the heap ที่ถูกจัดสรรสำหรับ Eden generation of the heap เพราะเริ่มแรก object ที่มีการใช้งานจะจอง memory เบื้องต้นบน Eden ก่อนที่จะถูกนำไปเก็บบน memory ทั้ง 2 spaces ระหว่าง survivor spaces จนกระทั่งมันไม่ได้ถูกเรียกใช้งาน และถูกนำไปเก็บไว้ยัง old generation region

older  generation = (ขนาดของ -Xmx) – (ขนาดของ -Xmn) 
-ดังนั้น... –Xmn จะต้องมีค่าต่ำกว่า –Xmx เสมอ

โดยทั่วไปเราไม่ต้องการ Eden ที่ใหญ่เกินไป หรือใช้มากกว่าที่ garbage collector จะเรียกคืนสู่ระบบได้ จึงไม่จำเป็นต้องตั้งค่าให้กับพารามิเตอร์ -Xmn เพิ่มก็ได้ 

-นอกจากนี้ ก็มีการแนะนำต่ออีกว่า... ควรเลือก JDK ให้เหมาะสมกับ OS เพราะ OS 64 bit  จะมี heap size default มากกว่า OS 32 bit เพื่อรองรับ size of object ที่ใหญ่ขึ้น

Keywork : JAVA Performance Tuning, Java Concurrency in Practice

Refference : 

-เรื่อง Dealing with “java.lang.OutOfMemoryError: PermGen space” error
http://stackoverflow.com/questions/88235/dealing-with-java-lang-outofmemoryerror-permgen-space-error

-เรื่อง Tomcat – java.lang.OutOfMemoryError: PermGen space
http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/

-เรื่อง java.lang.OutOfMemoryError: Permgen space
https://plumbr.eu/outofmemoryerror/permgen-space
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

วันเสาร์ที่ 25 มิถุนายน พ.ศ. 2559

Google I/O 2016 : Android Studio 2.2 , Espresso , Firebase , PWA , VR



วันที่ 25 มิถุนายน 2559 ที่ผ่านมา ท๊อปก็ได้ไปงาน Google I/O 2016 ที่ Siam Pavalai (Siam Paragon) ตอนลงทะเบียน ก็ได้เจ้า Google Cardboard มาเป็นของที่ระลึก...



เข้างานแล้ว... ก็มาแจกของกัน !!!


Google Cardboard รุ่นแรก 5555++


ซึ่งภายในงานก็มีสิ่งที่น่าสนใจมากมาย อาธิเช่น การเปิดตัว Android Studio 2.2 Preview 4 , Google Play Service , Firebase (พระเอกในงานเลย ตัวนี้) , Progressive Web Apps (PWA) แล้วก็ VR 360 องศา ซึ่งยังไม่เปิดตัวอย่างเป็นทางการในประเทศไทย อดใจรอสักนิสนึง...


โดยส่วนตัวผม ไปงานนี้ ถือว่าคุ้มนะ มีน้องที่บริษัทเดิมส่งรายละเอียดงานนี้มา ก็ลองไปดู ยอมรับว่า แรกๆ ตามไม่ค่อยทัน เนื่องจากไม่ได้จับ Android มาเกือบ 2 ปีและ แต่ได้มีโอกาสไปดาวโหลดมาเล่นบ้าง ลองสร้างโปรเจคเล่นๆ ศึกษา Coding แล้วก็เรียนรู้การทำงานกับ Genemotion ซึ่งก็ยอมรับว่า ตามไม่ทันจริงๆ แต่ในมุมมองของ Speaker ที่เป็น Expert ทางด้านนี้ หรือพวก Mobile Application Developer ทั้งหลาย ก็จะมองว่า ปีนี้ไม่ค่อยมีอะไรเปลี่ยนแปลงเท่าไหร่ อันนี้ถือว่าเป็นความคิดที่ดีกับตัวผมนะ เพราะผมเป็น Web Developer มา 2 ปี แต่สุดท้าย ก็ตามทันนะ เพราะหลังๆ เนื้อหาเริ่มสนุกขึ้น

....ตอนนี้ผมตามพวก Mobile Application Developer ทันแหละ 5555++

สำหรับการพูดของเหล่า Speaker ก็จะมีหัวข้อ ดังนี้

หัวข้อแรก : What's New in Android N (โดยพี่เนย GDG Thailand) : ก็จะพูดถึงคุณสมบัติที่ Android  N คือ เรื่องของการออกแบบ App ด้วยหลัก Constraint Layout (น่าสนใจมากๆ เพราะมันปฏิวัติการออกแบบหน้าจอในลักษณะลากวางอย่างสวยงาม ผมตั้งใจฟังเรื่องนี้เป็นพิเศษ... เพราะผมมีปัญหากับการออกแบบหน้าจอมาก จนเลิกเล่น Android ไปพักนึง) และส่วนหัวข้ออื่นๆ ก็จะมี เรื่อง การออกแบบให้หน้า App Split ไปมาด้วยหลัก Multi-window , การสร้าง Notification, การขยายหน้าจอ, Multi Locale, Data saver mode , การกำหนดการเข้าถึงของ Hardware, การ Support VR (อันนี้ก็น่าสนใจนะ)


และการพูดในส่วนอื่นๆ ก็จะมีเรื่อง...
-Vector Drawable (VD)
-RecyclerView
-Design Support Library
-Chrome Custom Tab
-Instant App

หัวข้อที่ 2 : Android Studio 2.2 และ New UI Design (โดยพี่ตี๋ GDG Thailand) : หัวข้อนี้พี่เขาได้แบ่งการพูดเป็น 4 หัวข้อหลัก คือ Design, Develop, Build และ Test

ก่อนที่จะเริ่ม เรามา Setup Android Studio 2.2 Preview 4 กันก่อนนะ... โดยให้เข้าไปที่ http://tools.android.com/download/studio เพื่อทดสอบของดีของ Google กัน




หลังจาก Download ลงมาเสร็จ ให้ไปที่ C:\Users\admin\...\android-studio\bin และคลิ๊กที่ studio64.exe เพื่อติดตั้ง SDK

กด Next เพื่อติดตั้ง


เลือก Standard


ตรวจสอบ Path และ SDK Component ก่อนที่จะติดตั้งลงไป





หลังจากติดตั้งเสร็จแล้ว ลองสร้างโปรเจคเองได้เลย....







คุณสมบัติของ Android Studio 2.2

1.) Design :
ข้อดี : 
-เลิกใช้ XML แล้วหันมาใช้ Layout Editor, Constraint Layout และ Layout Inspector
-สะดวกและรวดเร็ว แค่ลากวาง รู้จักการ join
-สร้างการทำงานของ App แบบ Responsive
-สร้าง Performance เนื่องเลิกใช้วิธีการซ้อน Component หลายๆ ชั้น เนื่องจากมองว่าทำให้ APK มีขนาดใหญ่ขึ้น ต่อไปจะมีวิธีที่ดีกว่านี้แล้ว เยี่ยมมากๆ
ข้อเสีย :
-Constraint Layout ตอนนี้อาจจะมี Bug เล็กน้อย แต่ถ้าเวอร์ชั่นนี้สมบูรณ์กว่านี้ ก็จะเป็นเครื่องมือที่ใช้จัด Layout ของ Android Apps ที่เยี่ยมมากๆ

2.) Develop :
-สอนการใช้งาน Firebase : https://firebase.google.com/

ต่อไปจากก็ไม่ต้องจ้าง Back-end Developer และนะ... เพราะมี Firebase ช่วยจ้า... 

-สอนการใช้งานจาก Sample Code : https://github.com/googlesamples
-สอนการใช้งานจาก Codelab : https://firebase.google.com/docs/test-lab/

3.) Build : 
-สอนเรื่อง Instant Run : เพิ่มประสิทธิภาพการ Build โดยไม่ต้อง Deploy APK ทุกครั้งที่ทำการเปลี่ยน Code แล้ว Run ทดสอบที่ Emulator
Reference : http://tools.android.com/tech-docs/instant-run

-Merge Manifest Viewer : สามารถตรวจสอบ Dependency ที่เพิ่มเข้าไปได้ ซึ่งจะแสดงการใช้งานไว้
-การใช้ Jack compiler เพื่อเพิ่มประสิทธิภาพการ Build

4.) Test :
-พูดเรื่อง Android Emulator มีลักษณะหน้าจอและการทำงานที่ใกล้เคียงกับของจริง

-การทดสอบ UI ด้วย Espresso
Reference : https://developer.android.com/training/testing/ui-testing/espresso-testing.html

-การ Monitor เพื่อดูขนาดของ APK สำหรับทดสอบ Performance ด้วย APK Analyzer


หัวข้อที่ 3 : Play Store Best Practise โดยคุณ Aun จาก GDG Thailand ฝ่าย Marketing ก็ได้มา Review วิธีทำการตลาดกับ Google Play เช่น
-เรื่องการเก็บเงินผ่านผู้ให้ผู้บริการ
-สร้างจุดเด่นและลบจุดด้อยของ App ตัวเอง
-การทำ Retention
-การออกแบบ Screen Shot, การกำหนดความน่าสนใจของ App, การสร้าง Contents, การสร้าง Ads
-การทดสอบการใช้งานของ App ด้วยวิธีแบบ Soft Launch
-การใช้ Keyword เพื่อส่งเสริมการ Search

หัวข้อที่ 4 : Advanced Espresso โดย Inaki Villar : บินมาจากสเปนเลยนะคนนี้
เขาก็ได้พูดถึงการทดสอบ UI ด้วย Espresso Framework ซึ่งประกอบด้วย จาก...
Link : Android Testing Support Library : https://google.github.io/android-testing-support-library/

ประกอบด้วย...

1. Android Junit Runner : https://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html
2. Espresso : https://google.github.io/android-testing-support-library/docs/espresso/cheatsheet/


3. UIAutomator : https://google.github.io/android-testing-support-library/docs/uiautomator/

หัวข้อที่ 5 : Firebase โดยพี่เนย พี่ตี๋ และพี่เอก จาก GDG Thailand : ได้มานำเสนอการใช้ Firebase ซึ่งต่อไปจะเข้ามาเป็นส่วนหนึ่งในเทคโนโลยี Back-end Server ทำหน้าที่ในการเก็บข้อมูลการ Login, การวิเคราะห์การใช้งาน Application และการใช้เทคโนโลยี Real Time Database โดยพี่เนย ก็ได้เกริ่นหลักการทั่วไปของ Firebase โดยเราสามารถสมัครเข้าใช้งานได้ ฟรี !!! และเรายังสามารถเข้าไปใน Console เพื่อทำเรื่องต่างๆ ได้ เช่น
-การเข้าถึงข้อมูล หรือ Authentication : เราสามารถเข้าไป set และ reset ข้อมูลการ login ของ User ได้
-การทำพวก DNS หรือ Hosting : เราสามารถใช้ NPM ในการจัดการเรื่องนี้ได้
-การเข้าไปที่ firebase.google.com เพื่อเอา Firebase มาใช้ในโปรเจคโดยใส่ SHA1
-เราสามารถเชื่อมต่อ Firebase กับ Android Studio เพื่อเรียกใช้ Service ที่เราต้องการได้ เพียงแค่ Click เดียว Code ทุกอย่างก็จะ Generate มาที่โปรเจคของเราเลย สุดยอดปะหละ !!!
-ลดการเขียน Code เพื่อเรียกใช้ Service ลงไปมาก เพราะ Firebase จัดการ Service ให้หมด
-การเก็บข้อมูลลง Database ใช้หลัก key-value
-เรื่องของ Cloud Messaging ที่จะเป็น Feature ไว้เพื่อส่ง Message และจะส่ง Notification ไปแสดงที่โทรศัพท์ของเราเพื่อรับส่งข่าวสาร ซึ่งหลักการทำงาน จะสามารถยิง Service ได้ 2 ทาง คือ ผ่านทาง Console ของ Firebase และผ่านทาง Application ที่ได้สร้างขึ้น และ Firebase ยังสามารถสร้าง Group เพื่อส่งข่าวสารได้ด้วย แถมยังสามารถส่งข่าวสารแบบ Stand Alone ได้อีกด้วยอะ เจ๋งมากๆๆๆ
-การทดสอบพวก Crash Reporting : พวกการตรวจสอบการทำงาน หรือ การ Error ของ Application
-การทำ Test Report และ การทำ Screen Shot อันนี้ยังเป็น Option ที่ยังเสียเงินอยู่ ไม่ฟรีนะจ๊ะ !!!
-การทำ Dynamic Link เพื่อส่งเสริมเรื่องการ Invite เพื่อนมาโหลด App ตัวเอง
-เรื่องการส่งข้อมูล เป็น Option นี้น่าสนใจ !!! ถ้า App ยังไม่ Online ข้อมูลก็จะเก็บไว้ที่เครื่องเราก่อน เมื่อ App Online แล้ว ข้อมูลทุกอย่างก็จะส่งไปที่ Server ทันที ว้าวววว... เจ๋งฝุดๆ

และสุดท้าย...พี่เขายกตัวอย่าง App Chat Room ที่ทำขึ้นมา เพื่อให้เห็นถึงความเก่งกาจของ Firebase ที่ทำงานแบบ Realtime สุดๆ (สามารถ Create Update Delete ได้เร็วฝุดๆ)

หัวข้อที่ 6 VR at Google โดยพี่วิทยา จาก GDG Thailand : หัวข้อนี้ก็ไม่ค่อยมีอะไรมาอัพเดตมาก ก็ได้พูดถึงที่มาของ VR ว่า มีการคิดมานานแล้วโดย NASA ตั้งแต่ปี 1990 แต่ยังไม่สำเร็จ จนกระทั่ง Google ได้นำมาพัฒนาต่อจนเกิด VR รุ่นแรก ซึ่งเป็นรุ่นเดียวกับที่ได้แจกในงาน Google I/O 2016 นั้นแหละ หลังจากนั้นก็ได้กล่าวถึงว่า ปัจจุบันก็มีบริษัทต่างๆ ทำ SDK มาให้ใช้พัฒนา เช่น Unity แต่ก็จะต้องมีการไป Convert เพื่อใช้งานอีก และในอนาคต VR ก็จะมีการพัฒนาให้มาคู่กับโทรศัพท์ของเราแล้วนะ โดยพี่เขาก็ได้เปิดงานของ Daydream ให้ดูกัน


Daydream Labs: Lessons Learned from VR Prototyping - Google I/O 2016


และอีกเรื่อง คือ Progressive Web App : ก็จะมีการพูดถึง การใช้งาน Toolkit : Web + Mobile Web App
นั่นคือ AngularJS 2, Polymer, SW-Toolbox, SW-Prefetch, Push notification, Service Worker

reference :
-Progressive Web Apps : https://developers.google.com/web/progressive-web-apps/
-AngularJS : https://angularjs.org/
-Polymer : https://www.polymer-project.org/1.0/
-Ionic Framework : http://ionicframework.com/

สุดท้าย !!! แหล่งข้อมูลจากทาง GDG Thailand ซึ่งจะมี Code Lab และ Slide สรุปให้ของทั้งงาน
https://github.com/Google-IO-extended-bangkok

What's new in aNdroid :
http://www.slideshare.net/nuuneoi/whats-new-in-android-google-io-extended-bangkok-2016

Advanced Espresso :
https://speakerdeck.com/cdsap/espresso-io-extended-bangkok

What's new in Android Studio 2.2 : https://docs.google.com/presentation/d/1XWvLcV1XlcB4llJri6agY3X6BsvT9p7N0QfzItjWvXg/edit?usp=sharing

Introduction to Firebase :
http://www.slideshare.net/nuuneoi/introduction-to-firebase-google-io-extended-bangkok-2016

Firebase Cloud Messaging : https://docs.google.com/presentation/d/1HPLk1PXaGUjqTlPB6RHsgrTunJNo10kbGZ-JX_7JELw/edit?usp=sharing

และนี่ก็คือสรุปเนื้อหาทั้งหมดในงาน Google I/O 2016 โดยพี่เนย GDG Thailand ครับ...


top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

วันศุกร์ที่ 24 มิถุนายน พ.ศ. 2559

Welcome to Codelabs! : แหล่งเรียนรู้ Coding สำหรับชาว Geek จากงาน Google I/O 2016


สวัสดีครับ ในปี 2016 ช่วงกลางๆ ปีที่ผ่านมา ก็มีข่าวว่า Google จะจัดงานสัมมนาที่ใหญ่ที่สุดของนักพัฒนาที่รวมหัวข้อบรรยายและวิทยากรแนวหน้าจากไทยและนานาชาติ I/O Extended Bangkok 


แหล่งข้อมูล : https://events.google.com/io2016/

ซึ่งในปีนี้จัดเต็มกับหัวข้อใหม่ล่าสุดส่งตรงจากงาน Google I/O เช่น Android, Progressive Web App, Firebase และ VR ครบทั้งฝั่งแอนดรอยด์และเว็บแพลตฟอร์ม

และภายในงาน...ทาง Google ก็ได้นำเสนอแหล่งเรียนรู้ของ Geek ที่มีใจรักในการเขียน Code ในรูปแบบใหม่ๆ ด้วยเทคโนโลยีใหม่ๆ ที่ทันสมัย และสนุกมากกว่าเดิม โดยแหล่งเรียนรู้นี้มีชื่อว่า Codelab นั้นเอง...





แหล่งข้อมูล : https://codelabs.developers.google.com/

โดย Google Codelabs จะนำเสนอวิธีการเรียนการสอนด้วยวิธีสร้างกิจกรรม Lab และจับเวลาการทำ Lab เพื่อสร้างเสริมประสบการณ์ ซึ่งภายใน Codelabs จะมีการสร้างกระบวนการเรียนรู้ไว้เป็น Lab เล็กๆ
โดยการเพิ่มเทคโนโลยีหรือ Feature ใหม่ๆ เข้าไป เช่น เทคโนโลยี Android Wear, Google Compute Engine, Project Tango และการใช้ Google APIs บน iOS





สำหรับใครที่สนใจอยากจะฝึกปรือฝีมือตัวเอง อยากจะลองเข้าไปทดสอบเทคโนโลยีต่างๆ ของ Google ก็สามารถติดตามได้ที่... https://codelabs.developers.google.com/io2016 นะครับ...




แหล่งข้อมูลอ้างอิง :
Google Developer Groups (GDGs) : Community สำหรับนักพัฒนาที่มีความสนใจในเทคโนโลยีของ Google เช่น Android, Chrome, Drive, Google Cloud platforms, Maps API, YouTube API
http://www.gdg.in.th/
http://www.gdg.in.th/2016/io2016bkk
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

วันพฤหัสบดีที่ 23 มิถุนายน พ.ศ. 2559

JSON : J2EE Development


-JSON (JavaScript Object Notation)
http://crunchify.com/what-is-json-javascript-object-notation/

-JSON Manipulation
http://crunchify.com/json-manipulation-in-java-examples/

-การเขียน JSON object ไปสู่ File ใน Java
http://crunchify.com/how-to-write-json-object-to-file-in-java/

-การอ่าน JSON Object จาก File ใน Java
http://crunchify.com/how-to-read-json-object-from-file-in-java/

-การแปลง JSON ไปเป็น HTML table ด้วย Converter Script
http://crunchify.com/crunchifyjsontohtml-js-json-to-html-table-converter-script/

-การ Iterate (looping) JSONArray ใน JavaScript
http://crunchify.com/how-to-iterate-through-jsonarray-in-javascript/

-การส่งค่า (Parse) JSONObject และ JSONArrays
http://crunchify.com/java-how-to-parse-jsonobject-and-jsonarrays/

-การ Merge/Concat Multiple JSONObjects ใน Java
http://crunchify.com/how-to-merge-concat-multiple-jsonobjects-in-java-best-way-to-combine-two-jsonobjects/

-JSON Processing API และ การใช้ Pretty Print JSON Output (Gson + Jackson)
http://crunchify.com/java-jsongenerator-json-processing-api-and-how-to-enable-pretty-print-json-output-gson-jackson/

-Escape Character Utility สำหรับ URL และ JSON data
http://crunchify.com/escape-character-utility-for-url-and-json-data-free-to-use-in-your-project/
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

วันพุธที่ 22 มิถุนายน พ.ศ. 2559

Java Method : J2EE Development



-การใช้งาน Java Method Hiding และ Overriding (Override Static Method ใน Java)
http://crunchify.com/java-method-hiding-and-overriding-override-static-method-in-java/

-ตัวอย่างและวิธีการใช้งาน Java Method Overriding
http://crunchify.com/java-method-overriding-examples-and-concepts-overriding-rules/

-การใช้ Primitive Types Instead ของ Wrapper Classes
http://crunchify.com/java-tip-wherever-possible-try-to-use-primitive-types-instead-of-wrapper-classes/

-การใช้งาน Reflection เพื่อเรียก Java Method ขณะ Runtime
http://crunchify.com/java-reflection-how-to-use-reflection-to-call-java-method-at-runtime/

อะไร คือ Abstract Class และ Abstract Method ใน Java? และเราจะมีวิธีใช้งานอย่างไร
http://crunchify.com/what-is-an-abstract-class-and-abstract-method-in-java-when-should-i-use-it/

-Instance Fields ของ Class Public
http://crunchify.com/java-tips-never-make-an-instance-fields-of-class-public/

-ความแตกต่างระหว่าง throw กับ throws ใน Java
http://crunchify.com/what-is-a-difference-between-throw-vs-throws-in-java/

Reference : http://chimera.labs.oreilly.com/books/1234000001805/ch06.html#learnjava3-CHP-6-SECT-6.2
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

Java HTTP : J2EE Development




-การส่งข้อความ URL ด้วย HTTP request GET/POST ใน Java
http://crunchify.com/java-url-example-getting-text-from-url/

-วิธีการรับ HTTP Response Header ใน Java
http://crunchify.com/simple-way-to-get-http-response-header-in-java/

-การส่ง HTTP Request และการรับ Response ใน Java
http://crunchify.com/how-to-send-http-request-and-capture-response-in-java/

-การรับ Entity ContentType ใน HttpClient
http://crunchify.com/java-how-to-get-entity-contenttype-in-httpclient/

-การ Ping Status ของ HTTP End Point ใน Java
http://crunchify.com/how-to-get-ping-status-of-any-http-end-point-in-java/

-การรับค่า Server IP Address และ Hostname ใน Java
http://crunchify.com/how-to-get-server-ip-address-and-hostname-in-java/

-การ Encode หรือ Decode URL String หรือ Form Parameter
http://crunchify.com/java-how-to-encode-or-decode-url-string-or-form-parameter/

-Embedded HTTP Jersey server ระหว่างที่ Java Application เริ่มทำงาน
http://crunchify.com/how-to-start-embedded-http-jersey-server-during-java-application-startup/

-Enable HTTPS หรือ SSL ของ Apache Tomcat Server – Port 8443
http://crunchify.com/step-by-step-guide-to-enable-https-or-ssl-correct-way-on-apache-tomcat-server-port-8443/

-Social Sharing URLs
http://crunchify.com/list-of-all-social-sharing-urls-for-handy-reference-social-media-sharing-buttons-without-javascript/
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

Java Collections : J2EE Development



-ความแตกต่างระหว่าง HashSet และ TreeSet ใน Java
http://crunchify.com/java-hashset-vs-treeset/

-อะไร คือ Java Collections Framework
http://crunchify.com/what-is-java-collections-framework-benefits-of-collections-framework/

-Java Collections (hashCode() และ equals())
http://crunchify.com/how-to-override-equals-and-hashcode-method-in-java/

-Java Synchronized Collections (java.util.Collections)
http://crunchify.com/java-synchronized-collections-examples-java-util-collections/

-วิธีการใช้ Map กับ Values (Map Interface)
http://crunchify.com/java-how-to-sort-a-map-on-the-values-the-map-interface-java-collections/

-เปรียบเทียบ Performance และความแตกต่างระหว่าง IdentityHashMap และ HashMap
http://crunchify.com/in-java-what-is-a-difference-between-identityhashmap-and-hashmap-performance-comparision/

-HashMap Vs. ConcurrentHashMap Vs. SynchronizedMap
http://crunchify.com/hashmap-vs-concurrenthashmap-vs-synchronizedmap-how-a-hashmap-can-be-synchronized-in-java/

-ตรวจสอบด้วย Key/Value ที่อยู่ภายใน Map ด้วย Java Hashmap (containsKey(Object key) และ containsValue(Object value))
http://crunchify.com/java-hashmap-containskeyobject-key-and-containsvalueobject-value-check-if-key-exists-in-map/
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

วันอังคารที่ 21 มิถุนายน พ.ศ. 2559

Java Spring Framework : J2EE Development


-Spring 3.x.x และ 4.x.x MVC Framework
http://crunchify.com/spring-mvc-introduction-to-spring-3-mvc-framework/

-การใช้ Bean ใน Spring Application
http://crunchify.com/spring-mvc-how-to-declare-a-bean-in-spring-application/

-วิธีใช้ AJAX, jQuery ใน Spring Web MVC (.jsp)
http://crunchify.com/how-to-use-ajax-jquery-in-spring-web-mvc-jsp-example/

-การอัพเดต Sparkline Graph ทุกๆ 3 วินาทีใน Spring MVC (Realtime Update)
http://crunchify.com/how-to-update-sparkline-graph-every-3-seconds-in-spring-mvc-realtime-update/

-Spring MVC Project
http://crunchify.com/working-on-spring-mvc-project-how-to-report-list-of-all-loaded-spring-beans-during-startup/

-Spring MVC 4.1.X (การรับส่ง Email ด้วย org.springframework.mail. javamail.JavaMailSenderImpl)
http://crunchify.com/spring-mvc-4-1-x-simple-way-to-send-an-email-using-org-springframework-mail-javamail-javamailsenderimpl/

-Spring Framework 4.2.3 @Order Annotation (การจัดเรียงลำดับด้วย Annotated Bean Component)
http://crunchify.com/spring-framework-4-order-annotation-tutorial-sort-order-for-an-annotated-component/
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

Java String Collection : J2EE Development




-การใช้ StringTokenizer และ String Split
http://crunchify.com/java-stringtokenizer-and-string-split-example/

-การแปลงจาก HashMap ไปสู่ ArrayList ใน Java
http://crunchify.com/how-to-convert-hashmap-to-arraylist-in-java/

-การสร้าง Java eNum
http://crunchify.com/why-and-for-what-should-i-use-enum-java-enum-examples/

-การแปลง Byte[] Array ไปเป็น String
http://crunchify.com/java-how-to-convert-byte-array-to-string/

-การแปลง Char Array ไปเป็น String
http://crunchify.com/java-two-ways-to-convert-char-array-to-string/

-การแปลง String ไปเป็น Char Array
http://crunchify.com/java-simple-way-to-convert-string-to-char-array/

-การหา Unique Values ใน ArrayList โดยใช้ TreeSet, HashSet
http://crunchify.com/java-how-to-find-unique-values-in-arraylist-using-treeset-hashset/

-การ Reverse String ใน Java
http://crunchify.com/how-to-reverse-a-string-in-java/

-การหา Elements ที่เหมือนกันใน UnSorted Array
http://crunchify.com/how-to-find-common-elements-of-two-unsorted-array/

-การ Replace/Remove Characters จาก String
http://crunchify.com/java-program-to-replaceremove-characters-from-string/

-การ Duplicate Elements จาก List
http://crunchify.com/java-how-to-find-duplicate-elements-from-list/

-การตรวจสอบ String ด้วยการ Substring
http://crunchify.com/java-how-to-check-if-a-string-contains-a-substring-implement-your-own-method/

-การรวมกันทั้ง 2 Arrays โดยใช้ Primitive Data Types (โดยไม่ใช้ Java Collection)
http://crunchify.com/java-union-of-two-arrays-using-primitive-data-types-dont-use-java-collection/

-การรวมกันทั้ง 2 Arrays โดยใช้ Java Collection Class
http://crunchify.com/java-union-of-two-arrays-using-java-collection-class/

-การแปลง Arrays ไปเป็น Set
http://crunchify.com/java-collection-how-to-convert-arrays-to-set/

-การ Swap สมาชิกด้วยวิธีที่นอกเหนือจากการใช้ Temp Variable
http://crunchify.com/java-how-to-swap-two-members-without-using-temp-variable/

-การหา Permutations ของ String
http://crunchify.com/how-to-find-all-permutations-of-a-string-in-java-example/

-การเปรียบเทียบ Arrays โดยใช้ Equal
http://crunchify.com/best-way-to-compare-if-two-arrays-are-equal/

-การกำหนด Non-Empty String Like -Code- Return a String Like -CCoCodCode-
http://crunchify.com/java-given-a-non-empty-string-like-code-return-a-string-like-ccocodcode/

-รู้จักกับ Java Static Methods, Variables, Static Block and Class with Example
http://crunchify.com/java-static-methods-variables-static-block-and-class-with-example/

-การหา Duplicate Character จาก String ใน Java
http://crunchify.com/best-way-to-find-duplicate-character-from-a-string-in-java/

-การใช้ CopyOnWriteArrayList กับ ArrayList ใน Java
http://crunchify.com/copyonwritearraylist-vs-arraylist-in-java-comparison-and-example/

-ArrayBlockingQueue กับ Google Guava Non-Blocking EvictingQueue
http://crunchify.com/arrayblockingqueue-vs-google-guava-non-blocking-evictingqueue-example/

-การเปรียบเทียบ String Arrays, Integer Arrays และ Strings ใน Java
http://crunchify.com/best-way-to-compare-string-arrays-int-arrays-and-strings-in-java-crunchifycompare-utility-for-your-project/

-การเปรียบเทียบ Java eNum Comparison ด้วย Equals (==) operator, Switch-Case statement และ .equals() method)
http://crunchify.com/java-enum-comparison-using-equals-operator-switch-case-statement-and-equals-method-complete-example/
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

Java Thread : J2EE Development




-Thread-Safe และ Fast Singleton Implementation (Singleton Design Pattern ใน java)
http://crunchify.com/thread-safe-and-a-fast-singleton-implementation-in-java/

-อะไร คือ Daemon Thread ใน Java
http://crunchify.com/what-is-daemon-thread-in-java-example-attached/

-Process ID และ Live Threads ของ Java Application
http://crunchify.com/how-to-get-process-id-and-live-threads-of-a-java-application/

-การทดสอบหลาย Threads ใน Java
http://crunchify.com/how-to-run-multiple-threads-concurrently-in-java-executorservice-approach/

-การ Start/Spawn เพื่อสร้าง Thread ใน Background ของ Java
http://crunchify.com/how-to-startspawn-new-thread-in-background-in-java/

-การสร้าง Java Deadlock Programmatically และการวิเคราะห์ Deadlock
http://crunchify.com/how-to-generate-java-deadlock-programmatically-and-how-to-analyze-deadlock/

-การสร้าง Java Thread Dump Programmatically
http://crunchify.com/how-to-generate-java-thread-dump-programmatically/

-Exception ใน thread main (java.lang.CloneNotSupportedException)
http://crunchify.com/how-to-avoid-exception-in-thread-main-java-lang-clonenotsupportedexception/

-การสร้าง Lazy Singleton ThreadSafe นอกเหนือจาก Synchronized Keyword
http://crunchify.com/lazy-creation-of-singleton-threadsafe-instance-without-using-synchronized-keyword/

-การปรับปรุง Simple Threadsafe Cache ด้วย HashMap นอกเหนือจากการใช้ Synchronized Collection
http://crunchify.com/implement-simple-threadsafe-cache-using-hashmap-without-using-synchronized-collection/

-เงื่อนไขที่มีผลใน Java Multi-threading Concurrency
http://crunchify.com/have-you-noticed-race-condition-in-java-multithreading-concurrency-example-how-to-deal-with-it/

-Threadsafe BlockingQueue ใน Java
http://crunchify.com/what-is-threadsafe-blockingqueue-in-java-and-when-you-should-use-it-implementation-attached/

-ตัวอย่าง Simple Thread
http://crunchify.com/java-simple-thread-example/

-ตัวอย่าง Thread State
http://crunchify.com/java-thread-state-introduction-with-example/

-การสร้าง Timer Object สำหรับ Execution ภายใน Background Thread (Timer.schedule())
http://crunchify.com/java-create-a-timer-object-for-future-execution-in-a-background-thread/

-อะไร คือ Java Semaphore และ Mutex (Java Concurrency MultiThread)
http://crunchify.com/what-is-java-semaphore-and-mutex-java-concurrency-multithread-explained-with-example/
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

Java Framework : J2EE Development




Top 10 Java Interview Questions 
http://crunchify.com/top-10-java-interview-questions-answers-must-read-before-appearing-for-any-java-interview/

Java Annotations 
-ทำความเข้าใจกับ Java Annotations
http://crunchify.com/understanding-java-annotation-annotation-examples/

Java Calendar
-การเพิ่มนาทีที่ Calendar Object
http://crunchify.com/java-how-to-add-n-minutes-to-calendar-data-object/

Java Cookies
-การจัดการ Java Servlet Session ด้วย Cookies
http://crunchify.com/how-to-do-java-servlet-session-management-using-cookies/

Java Date
-การคำนวณเวลาด้วย Java Date
http://crunchify.com/how-to-calculate-the-difference-between-two-java-date-instances/

Java Mail
-การส่ง Email ด้วย Java MailAPI กับวิธีการเพิ่มไฟล์รูปขนาดใหญ่เพื่อส่ง E-mail
http://crunchify.com/how-send-email-using-java-mailapi-with-large-image-attachment/

-ตัวอย่าง Java MailAPI (การส่ง Email ด้วย GMail SMTP (TLS Authentication))
http://crunchify.com/java-mailapi-example-send-an-email-via-gmail-smtp/

-การสร้าง Validate Email Address ด้วย Java Mail API
http://crunchify.com/how-to-validate-email-address-using-java-mail-api/

Java Exception
-การเกิด Exception ใน thread “main” java.lang.UnsupportedClassVersionError: (com/crunchify/Main : Unsupported major.minor version 51.0)
http://crunchify.com/exception-in-thread-main-java-lang-unsupportedclassversionerror-comcrunchifymain-unsupported-major-minor-version-51-0/

-การกำหนดวิธีตรวจสอบและไม่ตรวจสอบ Exceptions
http://crunchify.com/better-understanding-on-checked-vs-unchecked-exceptions-how-to-handle-exception-better-way-in-java/

-java.lang.UnsatisfiedLinkError
http://crunchify.com/how-to-fix-java-lang-unsatisfiedlinkerror-no-snappyjava-in-java-library-path-error/

Java Hibernate
-พื้นฐานการใช้ Hibernate
http://crunchify.com/lessons-to-learn-fundamental-of-hibernate-core-implementation/

Java Interface
-วิธีใช้งาน Java Interface
http://crunchify.com/what-is-an-interface-in-java-how-its-used-java-tutorial-example-attached/

Java IO
-วิธีการบันทึกและโหลดข้อมูลจากไฟล์ (I/O Read-Write Operation)
http://crunchify.com/java-saving-and-loading-data-from-a-file-simple-production-ready-utility-for-file-readwrite-operation/

-Java NIO (Non-blocking I/O) กับตัวอย่างการใช้งานระหว่าง Server-Client (java.nio.ByteBuffer และ channels.Selector : Java NIO Vs. IO)
http://crunchify.com/java-nio-non-blocking-io-with-server-client-example-java-nio-bytebuffer-and-channels-selector-java-nio-vs-io/

Java Iterate Loop
-5 วิธีที่จะ Iterate Through Loop ใน Java
http://crunchify.com/how-to-iterate-through-java-list-4-way-to-iterate-through-loop/

-พื้นฐาน Java Iterator, ListIterator และ ConcurrentModificationException
http://crunchify.com/java-iterator-listiterator-fundamentals-concurrentmodificationexception/

Java JDBC
-ความแตกต่าง ระหว่าง JDBC’s Statement, PreparedStatement และ CallableStatement
http://crunchify.com/what-are-the-difference-between-jdbcs-statement-preparedstatement-and-callablestatement/

-การเชื่อมต่อ JDBC กับ MySQL ด้วย BasicDataSource
http://crunchify.com/java-what-is-basicdatasource-how-to-create-basicdatasource-object/

-การเชื่อมต่อ JDBC กับ Oracle Database และตัวอย่างการ ExecuteQuery ใน Java
http://crunchify.com/simple-oracle-database-jdbc-connect-and-executequery-example-in-java/

Java Jar File
http://crunchify.com/in-java-how-to-find-list-of-all-class-names-from-inside-jar-file-jar-class-finder-utility/

Java JUnit
-การใช้ JUnit 4.x
http://crunchify.com/simple-junit-4-tutorial-hello-world-example/

Java 8 Stream API Operations and Lambda Expression
http://crunchify.com/java-8-stream-operations-and-lambda-expression-tutorial/

Java Log4j
-การ configure log4j.properties และตัวอย่างการใช้งาน Program
http://crunchify.com/java-how-to-configure-log4j-logger-property-correctly/

-การกำหนด Logging Level ใน Log4j (Configuring Log4j)
http://crunchify.com/java-how-to-create-your-own-logging-level-in-log4j-configuring-log4j/

-การสร้าง Logging สำหรับ Enterprise Java Application
http://crunchify.com/better-logging-for-your-enterprise-java-application-crunchifybetterlog4jlogging-java/

-การแสดง ERROR StatusLogger No log4j2
http://crunchify.com/error-statuslogger-no-log4j2-configuration-file-found-using-default-configuration-logging-only-errors-to-the-console/

-การใช้ Log File Tailer (tail -f) ใน Java
http://crunchify.com/log-file-tailer-tail-f-implementation-in-java-best-way-to-tail-any-file-programmatically/

Java OSGi
-เข้าใจในหลักของ OSGi โดยใช้หลัก Puzzle Approach
http://crunchify.com/understand-osgi-concepts-try-to-follow-the-puzzle-approach/

Java Package
-การ Import Packages
http://crunchify.com/java-simple-way-to-import-all-missing-packages-at-once/

Java Prime Number
-การค้นหา Prime Number ใน Java
http://crunchify.com/in-java-how-to-find-if-number-is-prime-or-not-best-way-to-generate-prime-number-in-java/

Java QR Code
-การสร้าง QR Code Generator
http://crunchify.com/java-simple-qr-code-generator-example/

Java Random
-การ Random Number ในภาษา Java
http://crunchify.com/how-to-generate-random-number-in-java-with-some-variations/

-การ Random Key-Value Element จากการใช้ HashMap
http://crunchify.com/java-how-to-get-random-key-value-element-from-hashmap/

Java Regular Expression
-อะไร คือ RegEx Pattern (Regular Expression)
http://crunchify.com/what-is-regex-pattern-regular-expression-how-to-use-it-in-java-example-attached/

Java Secure
-UUID, UID, SecureRandom หรือ MessageDigest
http://crunchify.com/uuid-uid-random-or-messagedigest-number-of-ways-to-create-unique-idkey-in-java/

Java SVN
-การ Setup WordPress Plugin ใน Eclipse และการใช้งาน SVN สำหรับ WordPress Plugin Development
http://crunchify.com/eclipse-and-wordpress-plugin-svn-repository-connectivity/

Java Timer
-Operation n Number ของ Times
http://crunchify.com/how-to-retry-operation-n-number-of-times-in-java/

-การ Convert Time ระหว่าง Timezone
http://crunchify.com/how-to-convert-time-between-timezone-in-java/

-Java Timer และ TimerTask
http://crunchify.com/java-timer-and-timertask-reminder-class-tutorials-example/

-Java 8 java.time.temporal.TemporalAdjusters และ Stream.flatMap()
http://crunchify.com/java-8-temporaladjusters-and-stream-flatmap-tutorial/

-การลบ Expired Elements จาก HashMap และการเพิ่ม Elements
http://crunchify.com/clean-expired-element-from-map-while-adding-elements-at-the-same-time-java-timer-timertask-and-futures-complete-examples/

Java Transaction
-Lock(), UnLock(), ReentrantLock(), TryLock() และความแตกต่างระหว่าง Synchronized Block ใน Java
http://crunchify.com/what-is-lock-unlock-reentrantlock-trylock-and-how-its-different-from-synchronized-block-in-java/

Java Command
-การแสดง Name Server  Java โดยใช้ Dig command
http://crunchify.com/best-way-to-get-any-domains-zone-records-mx-and-name-server-in-java-using-dig-command/

Java Reflection
-การสร้าง Java POJO ด้วย Reflection API (ClassName, DeclaredFields, ObjectType, SuperType)
http://crunchify.com/create-simple-pojo-and-multiple-java-reflection-examples/

Java XML
-วิธีการนับจำนวน XML Elements ใน Java
http://crunchify.com/simple-way-to-count-number-of-xml-elements-in-java/

-วิธีการเขียน XML (DOM) File ใน Java
http://crunchify.com/java-simple-way-to-write-xml-dom-file-in-java/

-วิธีการใช้งาน XML XPath Parser ทำอย่างไรถึงจะส่งข้อมูล XML โดยใช้ XPath ใน Java
http://crunchify.com/java-xml-xpath-parser-how-to-parse-xml-document-using-xpath-in-java/

Java File
-การ Upload หลาย Files โดยกำหนด Location ใช้งานเฉพาะ
http://crunchify.com/spring-mvc-tutorial-how-to-upload-multiple-files-to-specific-location/

Java Linux
-tcpdump Linux Command ด้วย Java Process Class และ TCP/IP Packets
http://crunchify.com/how-to-execute-tcpdump-linux-command-using-java-process-class-and-capture-tcpip-packets/

-การใช้ Regular Expression (RegEx)
http://crunchify.com/what-is-uptime-in-linux-and-how-to-parse-result-in-java-using-regular-expression-regex/

Java Packages
http://crunchify.com/java-simple-way-to-import-all-missing-packages-at-once/

Java Design Pattern
-Factory Design Method Pattern
http://crunchify.com/java-factory-design-method-pattern-object-oriented-design-design-patterns/

-Singleton Object & Employee (Java POJO & Detailed TestCase)
http://crunchify.com/complete-end-to-end-java-tutorial-with-singleton-object-employee-crunchify-object-pojo-detailed-testcase/

Java Utils
-java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException?
http://crunchify.com/org-apache-catalina-lifecycleexception/

-fix “org.eclipse.jst.ws.util.JspUtils cannot be resolved to a type” เพื่อแก้ปัญหา Error ใน Eclipse
http://crunchify.com/how-to-fix-org-eclipse-jst-ws-util-jsputils-cannot-be-resolved-to-a-type-error-in-eclipse/

-Java Regex (java.util.regex.Matcher)
http://crunchify.com/java-regular-expression-matcher-all-in-one-tutorial/

-java.util.Map และ java.util.List ใน Java 8
http://crunchify.com/in-java-8-how-to-iterate-through-java-util-map-and-java-util-list-example-attached-with-total-5-different-ways/

Java JSP
-JSP file validation ใน Eclipse
http://crunchify.com/how-to-exclude-jsp-file-validation-in-eclipse/
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

Java Algorithm : J2EE Development



-การเขียน Bubble Sort Algorithm (Descending Order)
http://crunchify.com/java-bubble-sort-algorithm-descending-order-sample/

-การเขียน Bubble Sort Algorithm (Ascending Order)
http://crunchify.com/java-bubble-sort-algorithm-ascending-order-sample/

-LinkedList Instance ใน Java
http://crunchify.com/how-to-iterate-through-linkedlist-instance-in-java/

-การเขียน Fibonacci Series (N Number)
http://crunchify.com/write-java-program-to-print-fibonacci-series-upto-n-number/

-การหา Middle Element ของ LinkedList
http://crunchify.com/java-how-to-find-middle-element-of-linkedlist/

-LinkedList Class ใน Java
http://crunchify.com/how-to-implement-a-linkedlist-class-from-scratch-in-java/

-ตัวอย่าง Singly Linked List Implementation ใน Java
http://crunchify.com/a-simple-singly-linked-list-implementation-in-java/

-การสร้าง Singleton QUEUE Global Object (FIFO (First in First Out))
http://crunchify.com/how-to-create-singleton-queue-global-object-for-fifo-first-in-first-out-in-java/

-การกำหนด Non-Blocking โดยกำหนด Size Queue ใน Java
http://crunchify.com/how-to-create-your-own-non-blocking-queue-in-java-same-as-evictingqueue/
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

วันเสาร์ที่ 18 มิถุนายน พ.ศ. 2559

Linux and Unix Command



File/Directory Basics
lsList files
cpCopy files
mvRename files
rmDelete files
lnLink files
cdChange directory
pwdPrint current directory name
mkdirCreate directory
rmdirDelete directory
File Viewing
catView files
lessPage trough files
headView file beginning
tailView files ending
nlNumber lines
odView binary files
xxdView binary files
gvView Postscript/PDF files
xdviView TeX DVI files
File Creation and Editing
emacsText editor
vimText editor
umaskSet default file protections
sofficeEdit Word/Excel/PowerPoint docs
abiwordEdit Word documents
gnumericEdit Excel documents
File Properties
statDisplay file attributes
wcCount bytes/words/lines
duMeasure disk usage
fileIdentify file types
touchChange file timestamps
chownChange file owner
chgrpChange file group
chmodChange file protections
chattrChange advanced file attributes
IsattrList advanced file attributes
File Location
findLocate files
slocateLocate files via index
whichLocate commands
whereisLocate standard files
File Text Manipulation
grepSearch text for matching lines
cutExtract columns
pasteAppend columns
trTranslate characters
sortSort lines
uniqLocate indentical lines
teeCopy stdin to file and to stdout simultaneously
File Compression
gzipCompress files (GNU Zip)
CompressCompress files (Unix)
bzip2Compress files (BZip2)
zipCompress files (Windows Zip)
File Comparison
diffCompare files line by line
commCompare sorted files
cmpCompare files byte by byte
md5sumCompute Checksums
Disks and Filesystems
dfShow free disk space
mountMake a disk accessible
fsckCheck a disk for errors
syncFlush disk caches
Backups and Remote Storage
mtControl a type drive
dumpBack up a disk
restoreRestore a dump
tarRead/write type archives
cdrecordBurn a CD
rsyncMirror a set of files
Printing
lprPrint files
lpqView print queue
lprmRemove print jobs
Spelling Operations
lookLook up spelling
aspellCheck spelling interactively
spellCheck spelling in batch
Processes
psList all processes
wList users' processes
uptimeView the system load
topMonitor processes
xloadMonitor system load
freeDisplay free memory
killTerminate processes
niceSet process priorities
reniceChange process priorities
Scheduling Jobs
sleepWait for some time
watchRun programs at set intervals
atSchedule a job
crontabSchedule repeated jobs
Hosts
unamePrint system information
hostnamePrint the system's hostname
ifconfigSet/display network information
hostLook up DNS
whoisLookup domain registrants
pingCheck if host is reachable
tracerouteView network path to a host
Networking
sshSecurely log into remote hosts
telnetLog into remote hosts
scpSecurely copy files between hosts
stfpSecurely copy files between hosts
ftpCopy files between hosts
evolutionGUI email client
muttText-based email client
mailMinimal email client
mozillaWeb browser
lynxText-only web browser
wgetRetrieve web pages to disk
slrnRead Usenet news
gaimInstant messaging/IRC
talkLinux/Unix chat
writeSend messages to a termainal
mesgProhibit talk/write
Audio and Video
gripPlay CDs and rip MP3s
xmmsPlay audio files
cdparanoiaRip audio
audacityEdit audio
xcdroastBurn CDs

-How to using Terminal?
https://help.ubuntu.com/community/UsingTheTerminal

-How do I open a terminal?
http://askubuntu.com/questions/183775/how-do-i-open-a-terminal

-How do I restart shutdown from a terminal?
http://askubuntu.com/questions/187071/how-do-i-restart-shutdown-from-a-terminal

-How do you open a command line?
http://askubuntu.com/questions/196212/how-do-you-open-a-command-line

-How to setup and use ftp server in ubuntu linux?
https://linuxconfig.org/how-to-setup-and-use-ftp-server-in-ubuntu-linux
https://help.ubuntu.com/lts/serverguide/ftp-server.html
https://th.godaddy.com/help/how-to-set-up-an-ftp-server-on-ubuntu-1404-12301
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.