11/15/2013

[Alfresco] ลองทำ Web Service ด้วย Java

Alfresco มีช่องทางในการที่ให้เราสร้าง Web Service ขึ้นมาได้โดยใช้ความสามารถของ Spring Surf ซึ่ง Alfresco เราสามารถสร้างได้โดยเลือกระหว่าง 2 ภาษาคือ JavaScript ซึ่งใช้ Rhino Library ของ Mozilla เหมาะสำหรับงานที่ไม่มีความซับซ้อนมากมายอะไร และ Java สำหรับงานที่ซับซ้อนมาก

11/02/2013

รู้จักกับ Vundle

Vundle เป็นปลั๊กอินที่เอาไว้จัดการกับปลั๊กอินใน Vim อีกทีนึง

วิธีการติดตั้ง

  1. โคลนซอร์สโค้ดของ Vundle จาก https://github.com/gmarik/vundle โดยผมจะโคลนไว้ที่ ~/.vim/bundle
  2. เปิดไฟล์ ~/.vimrc และเพิ่มเข้าไปดังนี้
    filetype off
    set rtp+=~/.vim/bundle/vundle
    call vundle#rc()
    filetype plugin indent on

การใช้งาน

  1. เพิ่มปลั๊กอินของเราเข้าไป โดยใส่ต่อเข้าไปใน ~/.vimrc
    Bundle 'scrooloose/nerdtree'
  2. ออกจาก vim และสั่ง
    vim +BundleInstall +qall
  3. Vundle จะโหลด plugin ลงมาให้ซึ่งเบื้องหลังก็คือการโคลนด้วย git นั้นเอง
 จากการติดตั้งและการใช้งานข้างบนแล้ว Vundle ยังสามารถ Update โดยสั่ง
:BundleUpdate ใน command mode หากสั่งจากภายใน vim หรือ vim +BundleUpdate +qall 

และต้องการถอนการติดตั้งให้ลบ Bundle ที่ต้องการใน ~/.vimrc และสั่ง :BundleClean หรือ vim +BundleClean +qall ได้อีกด้วย

และหากต้องการหาปลั๊กอิน Vundle ก็สามารถทำได้เช่นกันโดยสั่ง
:BundleSearch <plugin_name>

10/25/2013

แก้ปัญหาใช้ backspace ใน vim ไม่ได้

ด้วยความอยากลอง vim 7.4 (อยากใช้ของใหม่ไปงั้น) เลยจัดมาผ่าน HomeBrew หลังจากลงสำเร็จไปได้ด้วยดีและลองใช้งานก็ไม่มีปัญหาอะไรจนกระทั่ง

"เห้ย กด backspace ไม่ได้ Ctrl-w ก็ไม่ได้ด้วย!!!"

ลองปิดเปิดใหม่ก็ไม่หาย จะ reinstall ใหม่ก็ขี้เกียจ เอาวะ google ก็ได้แล้วก็เจอกับแสงสว่างจาก vim wikia ว่าจะต้องเซต backspace ใน insert mode นะด้วยการสั่ง

set backspace=indent,eol,start

แต่สั่ง ณ ตอนนั้น พอปิดเปิดใหม่ก็จะใช้ไม่ได้ต้องสั่งเพราะงั้นก็เอาไปใส่ใน .vimrc ซะ เปิดมาก็ใช้ได้เหมือนปกติล่ะ

Alfresco maven all-in-one archetype ภาคกำเนิด

ในการพัฒนา Alfresco นั้นจะมีระบบที่เรียกว่า Alfresco Module Package (AMP) ซึ่งจะต้องวางโฟลเดอร์ให้ตรงตามโครงสร้างของ Alfresco และสร้าง Ant script ขึ้นมาเพื่อช่วยจัดการในเรื่องของการสร้างแพ็คเกจ ซึ่งข้อเสียมันคือมันไม่สามารถจัดการ dependencies ได้และจะต้องสร้างจากมือทุกครั้ง (หรือเรียกว่าไม่มีแม่แบบของโปรเจคให้) และตัว AMP เองบางทีก็ไม่เหมาะกับการปรับแต่งอะไรเล็กๆ น้อยๆ ได้ ด้วยเหตุนี้เองจึงมีคนใน community ได้สร้างปลั๊กอินเพื่อต่อกับเครื่องมืออีกตัวนึงชื่อว่า Maven

10/15/2013

เอาไฟล์กลับมาได้ด้วย git reset

ตอนแรกจะลบไฟลเดอร์ link ที่สร้างจาก ln แต่ด้วยความที่ติด autocomplete ของ terminal ก็เลยกด tab รัวๆ ฮ่าๆๆ ตอนกด enter ก็เห็นแว๊บนึงว่า เห้ยทำไม link ที่จะลบมันมี / ต่อท้ายเลยสังหรณ์ใจไม่ดีกลับไปดูโฟลเดอร์จริงๆ ปรากฎคือ โฟลเดอร์หาย T__T ดีนะ ว่ามี git แล้วก็แก้ไม่เยอะด้วยเลยจัด

git reset --hard HEAD

อ่า โล่งใจไฟล์กลับมาแล้ว ถ้าแก้เยอะนี่อาจจะเศร้าได้เลยทีเดียว มันอาจจะมีท่าอื่นก็ได้นะ แต่ใช้ git ไม่เป็นอ่ะ

9/13/2013

เซตชื่อและอีเมลสำหรับการคอมมิตในแต่ล่ะโปรเจค

ปกติผมใช้ git config --global user.name และ git config --global user.email มาตลอดด้วยความที่ติดมาตอนเรียนที่มหาวิทยาลัย (เค้าสอนยังไงก็ใช้ยังงั้น :D ) จนมาวันนี้

แล้วถ้าเรามีอยากใช้คนละอีเมลในแต่ล่ะโปรเจคล่ะ?

ยกตัวอย่างเช่น ผมมีโปรเจคนึงที่ทำภายในบริษัทผมอยากจะใช้อีเมลของบริษัท แต่ถ้าทำเล่นกับเพื่อนๆ ใช้อีเมลบริษัทมันก็แปลกๆ ใช้อีเมลที่ใช้ปกติทั่วไปดีกว่า เลยไปถาม google ก็เจอกับลิ้งค์การปรับแต่งของ git (link) ก็เลยสรุปได้ว่าเราสามารถใส่ใน .git/config ได้เลย เช่น อยากให้ชื่อเป็น wingyplus และอีเมลเป็น wingyminus@gmail.com สำหรับโปรเจคนี้ ก็ให้เพิ่มเข้าไปที่ .git/config ได้เลย (config หน้าตาแบบนี้เค้าเรียกว่าอะไรไม่รู้)

[user]
    name = wingyplus
    email = wingyminus@gmail.com

จากนั้นลอง commit ก็จะใช้ชื่อและอีเมล (สังเกตตรง Author:) ตามที่เราตั้งไว้ดังรูป



5/25/2013

Deploy Django to webserver (apache2, wsgi)

Note ไว้สำหรับตัวเองเพราะต้องเอา Django ไปใช้

วัตถุดิบ

  1. OS ที่ใช้
    • Ubuntu Quantal 64-bit
  2. Web Server
    • apache httpd + mod_wsgi
  3. Database
    • MySQL

วิธีการลง

  1. ลง Ubuntu ก่อน ฮาา
  2. ลง  MySQL Server
    • sudo apt-get install mysql-server # ขั้นตอนนี้ MySQL จะให้เซต password ให้ใส่ตามต้องการ
  3. ลง apache httpd และ mod_wsgi โดยใช้คำสั่ง 
    • sudo apt-get install apache2 libapache2-mod-wsgi
  4. ลง Django webframework และ Python MySQL
    • sudo apt-get install python-django python-mysqldb
  5. นำ django web ที่เราทำใส่ใน /var/www 
  6. เปิดไฟล์ /etc/apache2/sites-available/default ขึ้นมาเพื่อ config wsgi
  7. restart apache config
    sudo service apache2 restart
  8. deploy Model ลง database โดยไปที่ web ของเรา
    สั่ง python manage.py syncdb # ให้ตรวจสอบ config ของ database ก่อนที่จะสั่งด้วย
  9. เปิด browser เข้าเวบของเราก็จะเข้าได้ทันที