Javascript สั้นๆ ตอน Array ปลอมๆ [แล้วจะรู้ได้ยังไงว่าเป็น Array หรือ Object]

Javascript สั้นๆ ตอน Array ปลอมๆ [แล้วจะรู้ได้ยังไงว่าเป็น Array หรือ Object]

ใน JavaScript ไม่มีข้อมูลที่เป็น Array จริงๆ

Array ที่มีอยู่มัน array แบบหลอกๆ จริงแล้วมันเป็น object ที่มี key เป็นตัวเลข, มี method เกี่ยวกับ array, และมี property length

ถ้าเราพึ่งคำสั่ง typeof อย่างเดียวเราก็จะเจ็บอีกตามเคย

javascript-phony-array

กล่าวคือถ้าเราสั่ง typeof [] และ typeof {} มันจะบอกว่า เป็น object ทั้งคู่! แบบนี้
NAzT_s Blog

Read More

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

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

 

ก่อนที่เราจะ 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 เขียนแค่

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

array([ 0.26726124,  0.53452248,  0.80178373])

Read More

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

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

โปรเจ็คตลกๆมาอีกแล้ว  เพราะโปรเจ็คนี้ผมใช้  Json Lib + Groovy + 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 More

[code] อัพโหลดภาพเข้า twitpic โดยใช้ api

[code] อัพโหลดภาพเข้า twitpic โดยใช้ api จะใช้ CURL

ซึ่ง จาก function จะ input username ,password , filepath

function postTwitpic($username='',$password='',$filepath='')
{
	$postfields = array();
	$postfields['username'] = $username;
	$postfields['password'] =  $password;
	$postfields['media'] = "@$filepath";
	$twitter_url = 'http://twitpic.com/api/upload';
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
	curl_setopt($curl, CURLOPT_HEADER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
	curl_setopt($curl, CURLOPT_URL, $twitter_url);
	curl_setopt($curl, CURLOPT_POST, 3);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
	$result = curl_exec($curl);
	curl_close($curl);
	$login_xml = new SimpleXMLElement($result);
	if (isset($login_xml->error)) {
		print_r($login_xml);
		return false;
	} else
	{
		return $login_xml;
	}
}

function return message ที่โพส ยังไง print_r ดูได้ครับ

Read More

[Draft] : NPDigger Version Semi Auto

กำลังทำ npdigger version ใหม่แบบ Semi Automatic เปิดโปรแกรมทิ้งไว้ แล้วมันจะโพสเองเรื่อยๆ

จด code  ไว้หน่อยละกัน

function getCode($userkey)

{

if(isset($userkey))

{

// $this->db->select_min(‘added_time’);

// $this->db->where(‘status’, );

// $query= $this->db->get(‘captcha’);

/// $this->db->select(‘UNIX_TIMESTAMP(MIN(added_time)) AS MIN_STAMP’);

// $query= $this->db->get_where(‘captcha’, array(‘userkey’ => $userkey) );

$this->db->select(‘captcha, decaptcha’);

// $this->db->select_min(‘addfed_time’);

// $array = array(‘UNIX_TIMESTAMP(added_timed)’ => ‘UNIX_TIMESTAMP(MIN(added_time))’);

$where = “UNIX_TIMESTAMP(added_time) =  (select UNIX_TIMESTAMP(MIN(added_time))  FROM captcha WHERE userkey=’$userkey’) “;

$this->db->where($where);

$data_array[‘query’]=$this->db->get_where(‘captcha’, array(‘userkey’ => $userkey));

$this->load->view(‘digger_getCode’, $data_array);

echo “last”;

// print_r($data_array[‘query’]);

}

Read More