SAI กับ Facebook ที่สะดวกแปลกๆ by Lynne
Mar0
ไม่รู้ว่ารู้กันหรือยัง แต่ ลองเป็น โปรแกรม SAI และ เปิด FB ขึ้นมา แล้วลองทำตามดูกัน
เริ่มจาก เปิด SAI แล้ว เปิดรูปที่ชอบขึ้นมา 1 รูป
จากนั้นใช้ selection คลุมรูป แล้วกด กด Ctrl+C
เปิด FB กล่อง chat / inbox / ข้อความ สุดแท้แต่ละเรียก
Ctrl + V สิคะ รออะไร
แปะลงไปตรงกล่องข้อความ
รอซักครู่….
รูปที่เลือกไว้ใน SAI มาแปะใน CHAT แล้ว !!
ยัง ยังไม่พอ ถ้า ลอง Ctrl + V ที่ กล่อง status ก็ จะเป็นกัน อัพรูปขึ้น FB ไปเลย
สะดวกแปลกๆ ใช่ไหมล่ะ
อัศจรรย์ จริงๆ……
ลองเล่นกันดูนะน่อ
^0^
เม้าส์ปากกาวาดเส้นแล้วไม่มีน้ำหนัก ไดรเวอร์ไม่ทำงาน by Lynne
Feb6
บางครั้ง การใช้เม้าส์ปากกาจะมีปัญหาdriver ไม่ทำงาน หรือ อื่นๆ (เอาเป็นว่าวาดแล้วแปลกๆ เส้นไม่มีน้ำหนัก ไม่เล็กใหญ่ตามแรงกด บลาๆ)
ไปที่ช่อง search พิมพ์คำว่า SERVICE ลงไป
จะมีหน้าต่าง service ขึ้นมา (ตรงแทบจะเป็นรูปฟันเฟือง)
หาคำว่า wacom customer service (บางรุ่นจะ ขึ้น เป็น wacom driver service หรือ อื่นๆ หลักๆให้หาคำว่า wacom + service)
double click เข้าไปจะเจอหน้าต่างแบบนี้ ให้กดปุ่ม STOP
จากนั้นกด START อีกที จะมีแถบสีฟ้าๆ วิ่ง
กลับไปเปิดโปรแกรมวาดรูปอีกที น้ำหนัก เม้าส์ปากกาจะมาแล้วจ้า
ปัญหาแบบนี้แก้ไขได้ด้วยการ restart แต่มันก็ โคตรเสียเวลา ถ้าเครื่องอืดๆ ลองวิธีนี้ดู ไม่ต้อง restart เครื่องด้วยนะ อัศจรรย์จริงๆ
Javascript “this”, “self” object by heha
Dec0
เราคงจะคุ้นเคยว่าในภาษา OOP ทั่วๆ ไปอย่าง C#, Java นั้นจะมีการใช้งาน this เพื่ออ้างอิงถึงตัว obj ของ class นั้นๆ แต่ว่า this ใน javascript นั้นจะแตกต่างกันออกไป เราลองมาดูตัวอย่าง
var obj = {
items: ["a", "b", "c"],
process: function() {
this.items.forEach(function(item) {
this.print(item);
});
},
print: function(item) {
console.log('*' + item + '*');
}
};
obj.process();
ตัวอย่างนี้เราประกาศตัวแปรชื่อ obj มี properties ชื่อ items และมี function ชื่อ process กับ print เราสั่งให้ทำงานด้วย obj.process() ซึ่งจะเห็นว่ามีการสั่ง this.items.forEach ณ บรรทัดนี้โค้ดจะยังทำงานได้ดังที่เราคาดหวังอยู่ แต่เมื่อเข้ามาอยู่ใน forEach แล้วบรรทัดที่สั่ง this.print(item); ก็ควรจะทำงานได้เหมือน this.items ใช่ไหมครับ แต่เดี๋ยวก่อน! ลอง copy ไปรันใน Google Chrome Developer Tools หรือ Firebug ไหงไม่มีผลลัพธ์ออกมาเลยล่ะ! ลองมาดูที่บรรทัดนี้อีกครั้ง
this.items.forEach(function(item) {
this.print(item);
});
this.items อ้างถึง items จาก function ชื่อ process ได้ แต่ this.print ทำไมสั่งไม่ได้ล่ะ? เป็นเพราะเมื่อมีการประกาศ function(item) {} ซึ่งเป็น function anonymous (ไม่มีชื่อ) ขึ้นมาจะพบว่ามีการสร้าง block ขอบเขตให้ตัวแปร block ใหม่ การประกาศตัวแปรใดๆ ในนี้จะไม่สามารถถูกเรียกจากนอก scope function นี้ได้ใช่ไหมครับ เช่น
this.items.forEach(function(item) {
var a =5;
});
console.log(a);
แน่นอน เราไม่สามารถสั่งการแบบนี้ได้ a จะได้เป็น undefined เช่นเดียวกันกับตัวแปร this ซึ่งตัว javascript จะถือว่าเป็นตัวแปรภายใน scope anonymous function โดยอัตโนมัติ เราไม่ได้เป็นคนประกาศตัวแปรชื่อ this การที่เราสั่ง this.print(item) this นั้นเป็นตัวแปรภายใน scope ที่เราสร้างขึ้นเอง จะไม่สามารถอ้างอิงถึง function print ได้จริงๆ เพราะอยู่คนละ scope กัน ดังนั้น ทีนี้มาดูวิธีแก้ปัญหากันครับ
var self = this;
this.items.forEach(function(item) {
self.print(item);
});
เราจะสร้างตัวแปรชื่อ self มารับค่า this เอาไว้ก่อนเข้าส่วนของ forEach ซึ่งภาษา Javascript นี้สามารถอ้างอิงถึงตัวแปรที่อยู่ภายนอก scope ได้ (ตรงกันข้าม ไม่สามารถอ้างถึงตัวแปรที่อยู่ภายใน scope ที่ลึกกว่าได้ดังที่แสดงให้ดูไปแล้ว เนื่องจาก code ด้านในยังไม่ถูก execute จริงๆ) ทำให้มีตัวแปรที่จำค่า this ของก่อนเข้า forEach เอาไว้ พอมีการอ้างถึง self ซึ่งเก็บว่า this ของ scope ตัวนอกเอาไว้จึงสามารถทำงานได้เป็นปกติครับ เทคนิคนี้ถูกใช้อย่างแพร่หลายมากใน library javascript หลายๆ ตัว ดังนั้นถ้าเจอ self เมื่อไหร่ให้เดาได้เลยว่ามันคือ this ของ scope ตัวนอกครับ
Reference: http://book.mixu.net/ch4.html