การโชว์รูปให้เป็นแบบ slide show โดยใช้ javascript by nandanai
Sep0
ขั้นแรกเราต้องไปโหลด ไฟล์ .js ที่ชื่อว่า jquery มาก่อน โดยในตัวอย่างนี้จะใช้ jquery-1-4-2.min.js
และในไฟล์ของเราจะเขียนฟังก์ชั่นดังนี้
<script type=”text/javascript”>
var position = 1; // ตำแหน่งของรูปเริ่มต้นว่าจะให้รูปแรกโชว์รูปที่เท่าไร
var count = 3; //จำนวนรูปทั้งหมดที่จะให้โชว์(โชว์ทีละรูปแต่กดเลื่อนไปมา)
function slide_banner(dir) // dir จะเป็นตัวกำหนดว่าเลื่อนไปทางซ้ายหรือขวา( +1 ขวา, -1 ซ้าย)
{
position += dir;
if(position == 0){
position = count;
}
if(position == count+1){
position = 1;
}
$(‘#frame’).stop().animate({marginLeft:-(615*(position-1))+’px’}, 1000); //frame คือ id ของ div ที่ครอบรูปทั้งหมดไว้โดยเลข 615 นั่นคือความกว้างของ div ที่มีรูปหนึ่งรูปนั่นเอง(div ที่อยู่ใน div ที่ครอปรูปทั้งหมด) และเลข 1000 คือเวลาที่ใช้ในการทำ animation จนเสร็จ(ms)
}
</script>
และในไฟล์ .css ของเราจะเป็น
.frame{
height: 76px;
width: 300%; //จำนวน % จะคิดจากจำนวนรูปทั้งหมด x100 ซึ่งในตัวอย่างคือ 3 รูป
}
.frame .image{
height: 76px;
width: 615px;
float: left;
}
การส่งค่าจากแฟลชให้แสดงที่ console ในเว็บเบราเซอร์ต่างๆ by Ziah
Sep0
โดยปกติแล้วเราชาว Flash โปรแกรมเมอร์เวลาต้องการจะเช็คค่าที่ตำแหน่งต่างๆของโค้ดของเรา เราก็มักจะใช้ trace(“//string”); เพื่อเช็คค่าต่างๆขณะที่รันเทสแอปพลิเคชั่นของเรา แต่ในบางทีแล้วเราต้องการที่จะดักค่าที่เราต้องการทดสอบกับข้อมูลจริง ซึ่งต้องเป็นตัวที่ publish ไปรันบนแอปพลิเคชั่นจริงๆแล้วเราจึงไม่สามารถดู trace ที่เราเขียนขึ้นมาได้ เราจึงต้องมีการใช้วิธีต่างกันไป โดยวิธีที่จะนำมาเสนอในวันนี้จะเป็นดังนี้ครับ
เราจะทำการเรียกฟังก์ชั่น console.log ของ javascript ซึ่งจะแสดงค่าที่เราใส่ไว้ใน console ของ Developer Tools ที่มีใน Web Browser ในสมัยนี้ ซึ่งต่างๆกันไป
วิธีการเรียก console.log ก็จะมีหน้าตาดังนี้
ExternalInterface.call("console.log",[{
'test':"call me maybe"
}]);
จากการใช้ ฟังก์ชั่น ExternalInterface.call ซึ่งรับค่าสองตัว คือ ชื่อฟังก์ชั่น JS ที่จะเรียกและ ค่า Argument ที่จะส่งไปในฟังก์ชั่นนั้น ทำให้เราสามารถเรียกฟังก์ชั่น console.log ได้โดยใส่ค่าที่ต้องแสดงหรือตัวแปรที่ต้องการทราบค่า (นอกจากนั้นเรายังสามารถใส่ Object ทั้งก้อนเพื่อดูค่าด้านในได้เลยซึ่ง trace ทำไม่ได้)
ซึ่งจะทำให้เราเห็นค่าดังนี้
สร้างบรัชเองง่ายๆและประยุกต์ใช้กับภาำพต่างๆ by nontra
Sep0
วันนี้จะมาสอนสร้างบรัชสำหรับใช้กับงานอื่นๆเพื่อเป็นการทุ่นเวลากันค่ะ
.
อันดับแรกก็เริ่มวาดกันก่อนเลย ในตัวอย่างจะเป็นแพทเทิร์นลายดอกไม้ วาดแค่กลีบเดียวก็พอ
.
.
.
.
.
.
จากนั้นก็ก๊อปปี้วางให้ครบ5แฉกและแต่งเพิ่มนิดหน่อยเป็นอันเรียบร้อย
.
.
.
.
จากนั้นเลือก Edit > Define Brush Preset เพื่อเซฟให้เป็นบรัช
.
ได้เรียบร้อยก็นำไปใช้งานกันได้เลย ตามตัวอย่างจะทำลายบนผ้าม่านให้ดูนะคะ
.
.
.
.
ผ้าม่านรอฝังลายมาแย้ว
.
.
.
.
.
.
จากนั้นก็แปะบรัชลงไปเลยค่ะ แต่สังเกตว่าลายจะดูลอยๆไม่สมจริง ดังนั้นต้องใส่เงาเพิ่ม
ลงไปเพื่อให้แสงเงาเข้าที่มากขึ้น
.
.
.
.
แต่งแสงเพิ่มอีกหน่อยตรงจุดที่แสงตกกระทบ หากลายชัดเกินไป ให้ใช้เบลอ
ช่วยปรับบางจุดให้เข้าที่มากขึ้น
.
.
.
.
เสร็จเรียบร้อยแล้ววววววว !! <3
HandlerSocket NoSQL ในรูปแบบของ MySQL by heha
Sep2
ก่อนอื่นต้องเท้าความก่อนว่า HandlerSocket คืออะไร HandlerSocket คือ Plugin MySQL ของ InnoDB Engine (เท่านั้น) ที่จะช่วยให้เราสามารถใช้ NoSQL ในรูปแบบของ MySQL ทำให้ได้ speed เพิ่มขึ้นมากหลายเท่าโดยที่โครงสร้างข้อมูลยังอยู่ในรูปแบบของตารางอยู่ (ผู้เขียน HandlerSocket claim ว่าเร็วกว่า Memcache ถ้าปริมาณข้อมูลใส่ใน memory ได้พอเลยนะเออ!) ซึ่งหลักการของ HandlerSocket คือตัดขั้นตอนที่ไม่จำเป็นออกจาก MySQL ทั้งหมด โดยเฉพาะอย่างยิ่ง SQL Parse ซึ่งเป็นขั้นตอนที่กินเวลามากที่สุด แต่ก่อนอื่น เรามาทำความเข้าใจกันสักนิดก่อนจะใช้งาน HandlerSocket
- ต้องแก้ Code ใหม่เนื่องจากไม่สามารถใช้ SQL query ได้อีกต่อไป ต้องใช้ function ที่ตัวเชื่อมกับ HandlerSocket มีให้เท่านั้น
- Join ไม่ได้เพราะเป็นการใช้งานแบบ NoSQL เต็มรูปแบบ ใช้ได้เฉพาะ Query ง่ายๆ ของ SELECT,INSERT, UPDATE, DELETE ที่อ้างอิงกับ primary key
- Replication ไม่ได้ถ้าใช้เป็นรูปแบบการ write (แก้ปัญหาได้ด้วยการใช้แค่ read อย่างเดียว write ยังใช้เป็น SQL เหมือนเดิม)
- ไม่มีระบบ Autenticatation ไม่มี Security ใดๆ (ต้องเข้าใจก่อนว่า NoSQL เจ้าอื่นๆ เช่น Redis, Memcache ก็เป็นแบบนี้เช่นกัน) แต่สามารถใช้ Firewall block port ที่จะใช้งานจากภายนอกแทนได้
- ควรปิดระบบ query cache เวลาใช้งานไม่งั้นค่าที่อ่านมาได้อาจผิดพลาด (แต่เนื่องจากมันเร็วส์อยู่แล้ว ปิด query cache ก็ไมได้กระทบกับระบบอะไรมากหรอก)
- ถ้า insert รัวๆ Auto Increment จะนับข้ามบ้างเป็นบางครั้ง ถ้าไม่ serious ว่าเลขต้องเรียงต่อกันก็ไม่เป็นไรครับ
- ใช้ได้กับ InnoDB Storage Engine เท่านั้น!
มาดูที่ข้อดีกันบ้าง
- เร็วส์ (750,000 query/sec แต่อันนี้เป็นคำโม้จากคนสร้างนะครับ ใช้จริงอาจไม่ถึง แต่เร็วกว่า memcache ถ้า memory พอดีกับข้อมูลครับ)
- INSERT, UPDATE ตัว HandlerSocket จะจับมัดเป็นก้อนเดียวกันโยนไปทีเดียวเลยเหมือนใช้ Transaction ในตัว (เฉพาะ performance นะครับ ไม่ได้ใช้ transaction ได้เต็มรูปแบบ) จริงๆ ก็คือ เร็วส์แหละครับ
- ข้อมูลยังคงออกมาเป็นรูปแบบของตาราง MySQL ที่เราคุ้นเคย เรายังใช้ SQL มาดึงข้อมูลภายหลังได้ หากเกิดเปลี่ยนใจไม่อยากใช้ HandlerSocket แล้ว
- เร็วส์ เร็วส์ เร็วส์ (ไม่มีข้อดีอย่างอื่นแล้ว)
ถ้าพิจารณาข้อจำกัดต่างๆ แล้ว ทุกอย่างผ่านหมด ก็มาดูที่วิธีติดตั้งได้เลย
1. install percona server ก่อนเลยครับ ถ้าไม่ใช้ Percona Server ก็ต้อง compile plugin ใช้เองซึ่งวุ่นวายกว่ามากครับ วิธี Install ตามนี้เลย
2. แก้ไขไฟล์ my.cnf เพิ่มบรรทัดเหล่านี้เข้าไป
loose_handlersocket_port = 9998
# the port number to bind to for read requests
loose_handlersocket_port_wr = 9999
# the port number to bind to for write requests
loose_handlersocket_threads = 16
# the number of worker threads for read requests
loose_handlersocket_threads_wr = 1
# the number of worker threads for write requests
open_files_limit = 65535
# to allow handlersocket to accept many concurrent
# connections, make open_files_limit as large as
# possible.
9998 คือ port สำหรับ read อย่างเดียว ส่วน 9999 คือ port สำหรับ write นะครับ (แก้เลขเป็น port อื่นได้)
3. login เข้า MySQL เป็น root แล้วพิมพ์คำสั่งไปว่า
install plugin handlersocket soname 'handlersocket.so';
4. สั่ง SHOW PROCESS LIST ถ้า Install สำเร็จจะปรากฏ Worker ใน process list ดังนี้
mysql> SHOW PROCESSLIST;
+----+-------------+-----------------+---------------+---------+------+-------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+-----------------+---------------+---------+------+-------------------------------------------+------------------+
| 1 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 2 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
...
| 16 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 17 | system user | connecting host | handlersocket | Connect | NULL | handlersocket: mode=wr, 0 conns, 0 active | NULL |
5. เสร็จสิ้น หลังจากนี้ก็ต้องหา library ที่สามารถติดต่อกับ HandlerSocket มาใช้ละครับ เช่น php ใช้ php-handlersocket nodejs ใช้ node-handlersocket
การใส่ Texture ให้วัตถุ [Ps] by Amp3r3
Sep0
การใส่ Texture ให้วัตถุในโฟโต้ช้อป เป็นเทคนิคอย่างนึงที่ทำให้ภาพหรือวัตถุมีชีวิตชีวาและดูเสมือนจริงขึ้น ส่วนใหญ่จะใช้กับงานพวกรีทัชภาพ ทำแอดโฆษณา โปสเตอร์ต่างๆ
โดยสามารถค้นหา Texture ที่ต้องการได้ในเว็บดาว์นโหลด(ฟรี)
วันนี้…จะมาให้ไอโฟนที่ดูใหม่ๆ ให้กลายเป็นไอโฟนแตกๆพังๆ โดยการใส่ Texture
เริ่มจาก…เสิร์ชหา Texture กระจกแตกจากเว็บโหลดฟรีนะจ๊ะ(ในการเสิร์ช ให้เสิร์ชจากไฟล์ขนาดใหญ่จะส่งผลดีกับงานมากกว่า)
Free Transform รูป Teaxture (Ctrl+t) ให้มีขนาดเท่ากับด้านหน้าของไอโฟน
จากนั้นให้เปลี่ยนโหมด Texture เป็น Multiply (ในการเปลี่ยนโหมดของ Texture ส่วนใหญ่จะใช้ Multiply หรือ Overlay นั้นขึ้นอยู่กับคุณสมบัติเฉพาะของ Texture นั้นๆ)
จากนั้นก็…ปรับนู้น แต่งนี่ ให้ดูว่าคนเป็นขยัน…!!!
เสร็จ…!!!