Month: มกราคม 2010

Community-generated Traffic Information System

 - by Nat

ข้อมูลหาย ขออัพอีกครั้ง

 

 

http://www.slideshare.net/inatialz/communitygenerated-traffic-information-system

Related Blogs

[note] curly braces และ เพื่อนๆ

 - by Nat

From the top: square brackets, curly brackets (braces),

parentheses, angle brackets, and (in red) inequality signs

 

จาก http://en.wikipedia.org/wiki/Braces_%28punctuation%29#Braces

Related Blogs

ลองเล่น python + Imaging + numpy

 - by Nat

มี Digital Processing เลยหาเครื่องมือที่จะเอามาใช้หน่อย   ตอนแรกกะจะใช้ แต่ลองเอา wrapper ที่ทำให้ ใช้ มาลองดีกว่า เพื่อความมันส์(อยากเขียน เป็น)

เขียนไปเขียนมา ทำไปเกือบเสร็จ ( + ) เจอปัญหาเรื่อง datatype นิดหน่อย (ไม่รู้ว่ามัน cast ไปเป็น pointer to aligned data ยังไง)

ผสานกับเวลาที่เหลือน้อย  จึงคิดว่า กลับไปเขียน + c ให้เสร็จก่อนดีกว่า ที่เขียนใน มันเพี้ยนๆ

พอเขียน + c เสร็จ (แต่ไม่เรียบร้อย)

แต่รู้สึกว่า ในการทำงานหลายๆส่วนกับ นั้น ไม่ค่อยเป็นที่พอใจ มันเขียน code เวิ่นเว้อไป เช่นการทำ invert สีของรูปภาพ

// invert the

 

  for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++)
    data[istep+jchannels+k]=255-data[istep+jchannels+k];

แต่ในพวก มันเขียนแค่ 255 – matrix สี จึงคิดหาโปรแกรมอื่นมาใช้แทน เพราะขี้เกียจเข้า windows เพื่อไปใช้ และ อีกอย่างมันไม่ฟรีด้วย

จึงได้ข้อมูลพวก scilab , octave  เอ้า ! โหลดมาลองซะหน่อย

และหลังจากนั้นไปอีก….. Read this article »

(Cache) Python 2.4 + numpy + matplotlib + Imaging

 - by Nat

จากความเดิมตอนที่แล้วที่ ใช้ 2.5 กับ แล้วก็ 1.1.6  ก็ทำงานไปได้ระดับหนึ่ง

แต่เกิดอยากจะ plot histogram ขึ้นมาเลยไปมองที่ เนื่องจากครั้งที่แล้วยังลงไม่ได้

แต่แล้วก็ได้พบพานกับ -0.99.1.1 เคยเห็นใน superpack ก็เลยโหลดมาลองซะหน่อย

Read this article »

Unit Vectors – Normalizing ใช้ python และ numpy

 - by Nat

 

ก่อนที่เราจะ normalize vector ได้ เราต้องหา norm ( magnitude หรือ ขนาด) ของมันก่อน

ซึ่งมันหาได้โดยการ ถอด Square root ของ ผลบวกกำลังสองครับ (sumsquare)

    length = sqrt((ax * ax) + (ay * ay) + (az * az))
    length = sqrt(9 + 1 + 4) = 3.742

ซึ่ง 3.742 จะเป็น ขนาดของ Vector [1,2,3] ครับ

ถ้าจะ normalize  vector  นี้ก็เอา magnitude ไปหารทุกตัวครับ

    x = 3.0 / 3.742 = 0.802
    y = 1.0 / 3.742 = 0.267
    z = 2.0 / 3.742 = 0.534

 

ซึ่งใน python เขียนแค่

ก็จะได้คำตอบ

([ 0.26726124,  0.53452248,  0.80178373])

Read this article »

[Google Maps Geocoding] ลอง Parse Json ด้วย Groovy + Java (Netbeans)

 - by Nat

โปรเจ็คตลกๆมาอีกแล้ว  เพราะโปรเจ็คนี้ผมใช้  Json Lib + + Java

แต่ผมใช้ Groovy ดึง json (URL.text) แล้วใช้ Java เป็นตัวแกะ jsonObject เป็น jsonArray

หลังจากนั้นเอาข้อมูลโยนกลับไปให้ Groovy ถอดเอาเฉพาะส่วนที่ต้องการออกมา (ในที่นี้คือ coordinates — latitude ,longitude นั่นแหละ)

ดูวุ่นวายมาก ทั้งๆที่ เขียน Groovy อย่างเดียวก็ได้ เพราะ Json Lib ก็ลองรับ groovy  หรือจะเขียน Java เพียวๆ เลยก็ได้ 

 

เรื่องของเรื่องคืออยากเขียน Java ร่วมกับ Groovy อีกครั้ง เพราะไม่ค่อยถูกกับ Java จริงๆ

มันดูเวื่นเว้อ  มันเขียนเวิ่นเว้อด้วย ยาวๆ งงๆ (อาจเป็นเพราะไม่ได้ศึกษาอย่างลึกซึ้ง)

groovy มันสั้น เข้าใจง่าย ไม่เวิ้นเว้อ (อาจจะใช้ได้ไม่เต็มประสิทธิภาพ แต่ผมชอบ พวก Closures )

 

เหตุผลที่ไม่เขียน Groovy เพียวๆไปเลยก็เพราะว่า 

code ตัวอย่างที่เค้ามีให้ดู มันพิมพ์ผิด 

def fromList = [1,true,'json'as JSONarray  

มันควรจะต้องเป็น JSONArray  เมื่อแก้และเอาอันอื่นมาลองดู มัน cast เป็น Type พวก net.sf.json.* ไม่ได้ อาการประมาณนี้ 

ก็เลยลองซัด Java + Groovy ไปเลย

มันก็เจอปัญหานิดหน่อยเพราะ ไม่ได้อ่าน Dependency List เลยค่อยๆตามหา พอได้ครบแล้วเพิ่งจะเห็นว่ามันมีบอกไว้ว่า 

Json-lib requires (at least) the following dependencies in your classpath:

  • jakarta commons-lang 2.4
  • jakarta commons-beanutils 1.7.0
  • jakarta commons-collections 3.2
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6

น่าเขกกะโหลกจริงๆ Read this article »

ลองถอดข้อมูลจาก JSON Format ด้วย Grails

 - by Nat

จากตอนที่แล้ว   Reverse Geocoding (Address Lookup) ผ่าน http


เรื่องวันนี้  ! ให้สังเกตว่า

 เมื่อเรา Request ไปข้อข้อมูลของ Thammasat Rangsit เราจะได้ ข้อมูลหน้าตาประมาณนี้

{
  "name": " Rangsit",
  "Status": {
    "code": 200,
    "request": "geocode"
  },
  "Placemark": [ {
    "id": "p1",
    "": " Rangsit Sport Center, Khlong Nueng, Khlong Luang, Pathum Thani 12110, Thailand",
    "AddressDetails": {
   "Accuracy" : 9,
   "AddressLine" : [ " Rangsit Sport Center" ]
},
    "ExtendedData": {
      "LatLonBox": {
        "north": 14.0785781,
        "south": 14.0569314,
        "east": 100.6173654,
        "west": 100.5853506
      }
Read this article »

Reverse Geocoding (Address Lookup) ผ่าน http

 - by Nat

ลองเล่น Reverse ของ google map api ซักกะหน่อย  

 

Reverse Geocoding คือการ เปลี่ยนชื่อสถานที่เป็นพิกัด (latitude , longitude) นั่นเอง  (ความจริงมันได้ข้อมูลอื่นๆมาด้วยอีกเยอะ)

 

วิธีทำก็ไปอ่านดูได้ที่ Reverse Geocoding (Address Lookup)  

หรือจะลองทำเลย  ก็แค่  Request ไปที่ http://maps.google.co.th/maps/geo?q=Thammasat&output=json&sensor=falsegl=th

ก็จะได้ข้อมูลมาประมาณนี้

{
  "name": " Rangsit",
  "Status": {
    "code": 200,
    "request": "geocode"
  },
  "Placemark": [ {
    "id": "p1",
    "": "Thammasat Rangsit Sport Center, Khlong Nueng, Khlong Luang, Pathum Thani 12110, Thailand",
    "AddressDetails": {
   "Accuracy" : 9,
   "AddressLine" : [ "Thammasat Rangsit Sport Center" ]
},
    "ExtendedData": {
      "LatLonBox": {
        "north": 14.0785781,
        "south": 14.0569314,
        "east": 100.6173654,
        "west": 100.5853506
      }
    },
    "Point": {
      "coordinates": [ 100.6013580, 14.0677550, 0 ]
    }
  }, 

ถ้าต้องการ output แบบ xml ก็ใส่ parameter ตรง output ไปว่า  &output=xml 

 

หลังจากนั้นก็เอาไป parse แล้ว ใช้ต่อได้เลย !! 

Related Blogs

เทคโนโลยีด้านการระบุตำแหน่งของผู้ส่งข้อมูล (ใช้ Geolocation API )

 - by Nat

ขอ blog จากเอกสารบางส่วนที่ส่ง NSC ไปหน่อย เผื่อมีประโยชน์กับท่านอื่นด้วย

ว่าด้วยเรื่องของการดึงข้อมูลพิกัดผ่านทาง Browser  (ดึงพิกัดออกมาจากมือถือนั่นแล)

 

การดึงพิกัดจากมือถือ ทำได้โยการใช้ API   ซึ่งส่วนสำคัญที่ใช้ในโครงงานนี้คือ Coordinates interface

ซึ่งมีรายละเอียดดังนี้


  interface Coordinates {
    readonly attribute double latitude;
    readonly attribute double longitude;
    readonly attribute double? altitude;
    readonly attribute double accuracy;
    readonly attribute double? altitudeAccuracy;
    readonly attribute double? heading;
    readonly attribute double? speed;
  };

 

แอตทริบิวต์ latitude , longitude เป็นค่าตำแหน่งในภูมิศาสตร์เก็บอยู่ในรูปทศนิยม

แอตทริบิวต์  altitude เป็นค่าความสูงของตำแหน่ง
แอตทริบิวต์  accuracy และ altitudeAccuracy เป็นค่าความแม่นยำของพิกัด
แอตทริบิวต์ heading เป็นทิศทางของการเคลื่อนที่
แอตทริบิวต์ speed เป็นความเร็วของการเคลื่อนที่

โดยมีวิธีการเรียกใช้ได้ดังนี้ 

ตัวอย่างการ ดึงค่าพิกัด

 

เมื่อเรียกฟังก์ชั่น displayLocation จะได้ดังนี้

sort List ใน views ที่มาจาก Relation แบบ hasMany ใน grails

 - by NAzT

>

ไม่ Blog ยาว ขอสั้นๆ

มี Domain แบบนี้

package com.nazt
 
class Experiment {
    static hasMany = [data:DataKeeper]
 
    String name = '[Experiment #]'
    Integer total
    Date dateCreated
    Date lastUpdated
    static constraints = {
        name(unique:true)
    }
    String toString()
    {
        name
    }
}

code เดิมๆ ใน views มันเป็นแบบนี้

<g:each in=”${experimentInstance.data}” var=”d”>

ก็แก้ให้มันเป็นแบบนี้ Read this article »

(cache) [mini Review] Movie – Up 2009 ( อัพ ปู่ซ่าบ้าพลัง )

 - by NAzT
เพิ่งดู จบไป  เป็น Animation ที่ได้คะแนนไป 8.5/10      69,616 votes จาก  imdb
 
หนังก็สนุกดี  ไม่ได้ตื่นเต้นมากนัก(ก็ไม่ได้ไล่ฆ่ากันนี่เนอะ)  แต่เนื้อเรื่องกินใจดีจริงๆ
 
ครั้งที่แล้วเพิ่งอัพเกี่ยวกับหนังเรื่อง Taken ไป เรื่องนั้นเป็นเรื่องความรักระหว่างพ่อกับลูก
 
แต่ อัพ (ปู่ซ่าบ้าพลัง) เป็นเรื่องราวความรักระหว่างคู่ เป็นรักที่ยิ่งใหญ่จริงๆ  อนิเมชั่น ถ่ายทอดความรักออกมาได้สัมผัสได้จริงๆ
 
รู้สึกถึงความรัก ความอบอุ่น … รักที่รักจริงๆ ในทุกอณูเลยทีเดียว
 
แรกๆ หนังไม่ค่อยมีบทพูด   แล้วช่วงเวลาของคนรักก็ผ่านไปเร็วมากๆ ( แต่เรื่องราวของความรักยังอยู่ตลอดเรื่อง )
 
เพราะไม่ค่อยมีบทพูดเนี่ยแหละรายละเอียดมันเป็นสิ่งที่ต้องสัมผัส …  ชอบๆ (หนังทำดีมั่กๆ)
 
แต่ว่า ยิ่งดูหนังแบบนี้  ยิ่งพบ ยิ่งเจอกับความรักที่ยิ่งใหญ่  ยิ่งดูแล้วก็ยิ่ง fail ในตัวเอง  ไม่รู้ว่าผมจะรักใครได้ขนาดบ้างไหม
 
แย่เนอะ รู้สึกแย่จัง
 
 
 
 
 
 
 

(cache) [Review] หนัง : Taken 2008

 - by NAzT

เพิ่งดู Taken จบไป

หนังเรื่องนี้ได้คะแนนจาก IMDb ไป   7.9/10   92,805 votes

มองรวมๆ สนุกนะ ก็ตื่นเต้นดี

ถึงแม้ว่าจะลุยเดี่ยวทั้งเรื่อง แต่ก็ไม่เวอร์เท่าไหร่ พอเป็นไปได้เพราะเคยทำงานให้รัฐบาล

รายละเอียดหนัง :

หนังแสดงให้เห็นถึงความรักระหว่างพ่อที่มีต่อลูกสาว  ส่วนลูกสาวก็เป็นเด็กวัยรุ่น(อายุ 17) 
ซึ่งเป็นวัยรุ่นแบบคลาสสิคจริงๆ หนีพ่อเที่ยวตามประสา

Quote จากในหนัง ..

พ่อไปทำงานซะมากไป จนต้องเลิกกับเมีย ( อารมณ์หนังสื่อได้ถึงจริงๆ ว่าไม่ได้เลิกเพราะทะเลาะกัน แต่จำเป็นต้องเลิกด้วยเหตุผลบางอย่าง )

ตาม Quote นี้

Lenore: I don't get you.
Bryan: What?
Lenore: You sacrificed our marriage to the service of the country, you've made a mess of your life in the service of your country; can't you sacrifice a little one time for your own daughter?
Bryan: I would sacrifice anything for her.

Read this article »

[cache] Grails Project : การตัดคำภาษาไทย(ด้วย Java) และประมวลผลด้วย Grails

 - by NAzT

 

ครึกครื้นอยากเขียน …

พอดีได้โจทย์ซึ่งเป็น Senior ของเพื่อน แต่ว่าอยากทำเลยเอามาลองเสียหน่อย

(ฝึกเขียน ด้วยการทำ โจทย์)

 

ได้ความรู้ + ประสบการณ์ มากเลยทีเดียว เพราะว่า

เพิ่งเริ่มจับ แล้วทำงานแบบเป็นชิ้นเป็นอัน ครั้งนี้ก็ครั้งแรก 

 

แต่ก่อนหน้านี้มีใช้ + xfire ในการทำ project วิชา SOAp ก็เรียบร้อยไป

(แต่  client ใช้ nusoap + codeigniter) เล่นกันทีเดียวคุ้ม Read this article »

[cache] Grails meeting day 1 @ opendream

 - by NAzT

เมื่อวันเสาร์ที่ 12 ธันวาคม 2552  ผมได้ไปงาน 1 มาครับ

ซึ่งกว่าจะสอบเสร็จ กว่าจะเขียนก็น๊านนาน (อู้ + อ้าง จริงๆ)

เริ่มเรื่องกันดีกว่า !

กว่าจะไปถึง ก็ “หลง” กันไปครับ ก็เมื่อยกันไปตามๆกัน  เพื่อนร่วมทริปก็ @ka_klang , @disscovery , @biggykung ครับ

Picture%206

เส้นทางที่ได้ไปเดินชมวิวในเมืองครับผม ;p

Read this article »