วิธีเพิ่มพื้นที่ของ EBS บน EC2 Ubuntu หลังจากเพิ่มพื้นที่ใน EBS volume แล้ว เราจะต้องสั่งคำสั่งเพิ่มเติมเพื่อให้ OS ubuntu ใช้พื้นที่ใหม่ที่เพิ่มขึ้น
1 ssh เข้าไปยังเครื่องที่ใช้ volume นั้นอยู่ พิมพ์คำสั่ง lsblk เพื่อดูว่า size
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 72G 0 disk `-xvda1 202:1 0 64G 0 part / xvdf 202:80 0 30G 0 disk `-xvdf1 202:81 0 16G 0 part /var/mapservervol สังเกตว่า xvdf มีไซส์ 30G แล้ว แต่ partition แรก xvdf1 ใช้ไป 16G ซึ่งก็ขนาดเดิมก่อนขยาย
Read more
กำลังแก้ script Dockerfile สลับกับการ build อยู่ดีๆ ก็เจอข้อความ **No space left on device** ไปต่อไม่ได้แล้ว ประมาณว่าพื้นที่ที่ docker ใช้ในการสร้าง file ต่างๆมันเต็มโควต้าแล้ว
ใช้ 3 คำสั่งนี้ แล้วทำให้มีพื้นที่คืนกลับมา สั่ง build งานต่อได้เสมอ
1 ลบ file ของ container ที่มีสถานะ exited
docker rm $(docker ps -q -f 'status=exited') 2 ลบ file image ที่(ห้อยต่องแต่ง)ไม่มีการอ้างอิงถึง
Read more
เราใช้ macOS และใช้ brew จนชินแล้ว มาวันนี้จะ upgrade version ของ nodejs ต้องเรียกว่าเคาะสนิม…หลังจากที่ไปจับเรื่องอื่นอยู่นาน ก็งงงง มึนมึน เรียกใช้ yarn แล้วมันฟ้องว่า ตอนนี้ในเครื่องคุณใช้ node v7 ซึ่งไม่ support แล้ว เราเลยไปหาว่าตอนนี้ node version อะไรที่เป็น LTS (long term support) เลยได้มาว่าจะติดตั้ง 8.x (8.9.4) ซึ่งเป็น long term support
ลองใช้ brew search node, nodejs เห้ย!
Read more
แก้ปัญหา Exception Execution failed for task ‘:processDebugGoogleServices’.
> Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 9.0.0. ท้าวความไปว่าใน ionic project ที่ทำอยู่ใช้ ionic native ซึ่งต้องใช้ Google Play Services คือ Google Maps, Firebase Messaging (FCM)
Read more
เช้าวันนี้เปิดอีเมล ได้รับอีเมลแจ้งเตือนจาก lets’s encrypt ว่า SSL certificate ของ domain name ที่ทำเป็น blog กำลังจะหมดอายุ blog นี้เองนี่หล่ะ วิธีมันจะไม่ automatic ต้องทำเองเป็นครั้งๆไป
วิธีที่จะทำ
รันคำสั่ง certbot certonly เพื่อ renew/ต่ออายุ รันจากเครื่อง macbook ที่ใช้ทำงาน เอา hash ที่ได้มาใส่ไฟล์แล้ว push ขึ้นไปที่ gitlab เอา key ที่ได้ renew แล้วไป upload ขึ้น gitlab ใหม่ ขั้นตอน
Read more
สำหรับใครที่ต้องสร้างแอพที่ใช้งานกับ Maps 🗺️ หรือ Google Maps เคยอยากจะสร้าง pin สถานที่แบบสุ่มเอามั้ย?
ถ้าเอาแบบถั่วๆที่สุดคือไปจิ้มใน Google Maps แล้วแกะเอาพิกัด GPS หรือพิกัดแลตติจูด-ลองกิจูดเอามาใส่ให้ marker ผมขอเรียกเป็นภาษาโปรแกรมมิ่งว่าเป็นค่า Geolocation ละกันนะ
ผมอยากได้ Geolocation พิกัดรอบๆ ตำแหน่ง ตำแหน่งนึงที่ได้เลือกเอาไว้แล้ว โดยไม่ต้องไปนั่งจิ้มในแผนที่แล้วแกะเอามา สมมติว่าเลือกตำแหน่งศูนย์กลางไว้เป็น Central World อยากได้ marker อีก 10 แห่งในระยะ 3kmรอบๆนั้น ถ้ามานั่งจิ้มเอาคงเซ็งน่าดู
เลยไปหาเครื่องมือมาช่วยสร้าง Geolocation ให้เรา เพราะตอนนี้ผมขี้เกียจศึกษาว่าคำนวนพิกัดแลตติจูด-ลองกิจูดอย่างไร…แฮ่
มาทำความรู้จักเจ้าเครื่องมือนี้กันแบบเร็วๆ ไปที่เว็บไซด์ Geo MidPonint
Read more
ติดตั้ง Jenkins อีกตัวเพื่อจัดการ deploy application ตัวใหม่ที่กำลังพัฒนากันอยู่ ทำเป็น OS service เอาไว้ด้วย เวลา server มันถูกรีสตาร์ตมันจะได้กลับทำงานอยู่ตลอด
ตอนแรก project ที่พัฒนาอยู่ใช้ Ant build script ภายหลังเรามาเปลี่ยนเป็น Maven จึงไปปรับ Jenkins configuration จะให้ Jenkins เค้าติดตั้ง Apache Maven ให้ด้วย แต่ว่า check checkbox แล้วก็ยังใช้ไม่ได้ เค้าไม่ติดตั้งให้เลยต้องมาติดตั้ง maven command เองซะเลยดีกว่า
วิธีติดตั้ง maven ก็ไม่ซับซ้อน ไปโหลด binary distribution ที่เป็นไฟล์แบบ .
Read more
เจอ exception java.lang.IllegalStateException: Cannot call sendRedirect() after... ตัวนี้มานานแล้วมันมักจะเกิดขึ้นเวลาเราพยายามจะ redirect/ส่งต่อ request ไปยังหน้าอื่นๆ มันเกิดขึ้นเพราะเราไม่เข้าใจการทำงานของมันดีพอ ศึกษาจากโค้ดนี้
private void doPost() { if (someCondition) { sendRedirect(); } forward(); // โค้ดตรงบล๊อกนี้ก็ยังคงถูกเรียกใช้งานอยู่ ถึงแม้ว่า if condition ข้างบนก็ถูกเรียกใช้งาน } เราจะคุ้นเคยกับการที่ว่า คิดว่าการเรียก sendRedirect() เหมือนกับการสั่ง System.exit() คือ program จบเลย แต่มันไม่ใช่อย่างนั้นน่ะสิ่
Error Cannot call sendRedirect() after the response has been committed จึงเกิดขึ้นเมื่อ forward() มันถูกเรียก เท่ากับว่าเราเรียก sendRedirect() แล้วยังไปเรียก forward() อีก exception มันจึงเกิดขึ้น
Read more