วันอาทิตย์ที่ 13 กันยายน พ.ศ. 2558

My roadmap 2015 - 2016

เมื่อก่อนอยากศึกษาอะไรก็ศึกษาไปเลย แบบไม่ได้วางแผนอะไร เห็นอะไรมาแรงก็ศึกษาแบบสะเปะสะปะ
ก็เลยทำแผนการพัฒนาตัวเอง Roadmap ขึ้นมา จะได้ไม่หลงทิศหลงทาง

สิ่งที่จะต้องศึกษาภายใน 2015 - 2016
  • Ruby on Rails
  • JAVA EE(Servlet, JSP, Hibernate, Spring)
  • Android
  • AngularJS
  • Mongo DB
ศึกษาตัวไหน ได้อะไรมาบ้าง ก็จะลิสรายละเอียดในแต่ละหัวข้อเอาไว้

http://tech.co/wp-content/uploads/2014/08/rubyrails.png

  • การใช้ command เช่น rake, scaffold หรือจะเรียกว่า CRUD ก็ไม่ต่าง
  • Asset เช่น การ require ไฟล์ต่างๆ ที่เรียกได้ทั้งในระดับเดียวกัน หรือเรียกเรียกทุกไฟล์ที่อยู่ใน sub folder ทั้งหมดก็ได้ เช่น
    require_tree . เรียกทุกไฟล์ที่อยู่ในระดับเดียวกัน
    require_self จะเรียกทุกไฟล์ที่อยู่ใน sub folder
    * การเรียกไฟล์ javascript หรือ css ไม่จำเป็นต้องใส่นามสกุลไฟล์ rails จะรู้ด้วยตัวของมันเองเด้อ

    jquery_ujs ตัวนี้จะใช้กับระบบ CSRF หากมีใช้ ajax ในเพจ ก็ต้องใช้ตัวนี้ด้วย เพื่อใช้ในการส่ง token ไปกับฟอร์ม

    stylesheet_link_tag "xxx",  javascript_include_tag "xxx" การเรียกไฟล์ css และ javascript ที่จะอยู่ในรูป minifest  (xxx-908e25f4bf641868d8683022a5b62f54.js) รหัสหลัง - ได้มาจากการทำ hash ด้วย md5 เพิ่มเติมดูที่ หัวข้อ 4 In Production
  • get application name อยากดึงชื่อ application มาแสดง เช่น ใช้แสดงในแท็ก <title>Naytuadum - page name</title> สามารถใช้คำสั่งนี้ได้เลย Rails.application.class.parent
  • variable or 'dufault value' คงคล้ายๆกับ if else ถ้าตัวแปรไม่มีค่า หรือไม่มีตัวแปรนั้นๆ ก็จะแสดงค่าที่เรากำหนดเอาไว้

Ruby on Rails with Bootstrap3 AdminLTE

ใครที่ใช้ rails อยู่ แล้วจะหาธีม Bootstrap 3 ซักตัวมาใช้ ลองเอาตัวนี้ไปใช้ดู

https://github.com/fogza/rbtest1

Yii backend start kit

ใช้  Yii มาพอสมควรเลยทำตัว start kit(เค้าเรียกกันงี้ปะ? - -")  ไว้ให้ตัวเองใช้ ใครสนใจก็เอาไปใช้โลด อาจจะมีบัคนิดหน่อยแต่คงแก้กันได้ละมั้ง


  • Yii 1.x
  • Bootstrap 3 theme AdminLTE 2.0.4


https://github.com/fogza/yii-backend-start-kit

วันอังคารที่ 11 พฤศจิกายน พ.ศ. 2557

Yii แยก backend frontend แบบง่าย

หากเราอยากจะทำ backend, frontend ที่แยก theme และ login กันอย่างชัดเจน yii สามารถทำได้หลายแบบ หัวข้อนี้จะเอาวิธีง่ายๆ ซึ่งกว่ากระผมจะได้มานั้น งมผิดๆ ถูกๆ มา 2 วันเต็ม ขอบอกตรงนี้เลยว่า มันต้องใช้พลังเยอะจริงๆ - -"
ปล.อาจจะ งงกับคำว่า backend, admin หน่อยนะครับ เพราะรูปที่แคปไว้คนละช่วงเวลากัน คิดซะกว่าเป็น admin หมดละกันนะ

หัวข้อทั้งหมด
- Generate admin module
- Initial module (ตั้งค่า  component, layout path, theme)
- ประกาศใช้ module admin

วันเสาร์ที่ 5 กรกฎาคม พ.ศ. 2557

Codeigniter แก้ปัญหาการใช้ set_flashdata ไม่ได้ ก่อน redirect

หากต้องการจะให้โชว์ข้อความหน้าที่เราจะ redirect กลับไป ผมจะใช้ set_falshdata เพื่อเก็บข้อมูลซักอย่างลงใน session
แต่พบปัญหากรณีที่ login ผ่านแล้วผมเช็ค ip ที่ต้องการจะให้ใช้งานต่อ หากไม่ใช่ ip ที่มีอยู่ในระบบ จะทำการเคลียร์ session แล้ว redirect กลับไป

จังหวะที่เคลียร์ session ผมก็ใช้ set_falshdata และ redirect ไปปกติ แต่เพจที่ redirect กับไม่พบ session ที่เราสร้าง falshdata เอาไว้

หลังจากค้นหาข้อมูลอยู่นาน ก็พบว่า จังหวะที่เคลียร์เซสชั่น $this->session->sess_destroy();
แล้วใช้ $this->session->set_flashdata('error', '...'); ไม่สามารถใช้ได้ เพราะเซสชั่นเราถูกเคลียร์ไปหมดแล้ว

ปัญหานี้แก้โดยใช้
$this->session->sess_read()
$this->session->sess_create()
เพื่อเช็คว่า session สามารถใช้งานได้หรือไม่ หากไม่ได้ก็เปิดใช้ session ใหม่

สรุปที่พล่ามมาทั้งหมด โค้ดที่ใช้จะประมาณนี้

Before

$this->session->sess_destroy();
$this->session->set_flashdata('error', 'your ip don\'t permission');
redirect('home/login');

After

$this->session->sess_destroy();
if(!$this->session->sess_read())
{
$this->session->sess_create();
}

$this->session->set_flashdata('error', 'your ip don\'t permission');
redirect('home/login');
ใครที่เจอปัญหาคล้ายๆ กันก็ลองเอาไปใช้ดูครับ
อ้างอิงค์ flashdata not being stored between redirects when using Tank Auth

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

คัมภีร์การ convert timestamp to datetime ของแต่ละภาษา

วันพุธที่ 16 เมษายน พ.ศ. 2557

Marsonry jquery สำหรับจัดตำแหน่ง element