การโชว์รูปให้เป็นแบบ slide show โดยใช้ javascript by

30
Sep
0

ขั้นแรกเราต้องไปโหลด ไฟล์ .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

30
Sep
0

โดยปกติแล้วเราชาว 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 ทำไม่ได้)

ซึ่งจะทำให้เราเห็นค่าดังนี้

ตัวอย่างจาก Google Chrome (กด F12 แล้วเปิด Console ด้านล่าง)

ตัวอย่างจาก Google Chrome (กด F12 แล้วเปิด Console ด้านล่าง)

สร้างบรัชเองง่ายๆและประยุกต์ใช้กับภาำพต่างๆ by

30
Sep
0

วันนี้จะมาสอนสร้างบรัชสำหรับใช้กับงานอื่นๆเพื่อเป็นการทุ่นเวลากันค่ะ

.

อันดับแรกก็เริ่มวาดกันก่อนเลย ในตัวอย่างจะเป็นแพทเทิร์นลายดอกไม้ วาดแค่กลีบเดียวก็พอ :D

.

.

.

.

.

.

จากนั้นก็ก๊อปปี้วางให้ครบ5แฉกและแต่งเพิ่มนิดหน่อยเป็นอันเรียบร้อย

.

.

.

.

จากนั้นเลือก Edit > Define Brush Preset เพื่อเซฟให้เป็นบรัช

.

ได้เรียบร้อยก็นำไปใช้งานกันได้เลย ตามตัวอย่างจะทำลายบนผ้าม่านให้ดูนะคะ

.

.

.

.

ผ้าม่านรอฝังลายมาแย้ว

.

.

.

.

.

.

จากนั้นก็แปะบรัชลงไปเลยค่ะ แต่สังเกตว่าลายจะดูลอยๆไม่สมจริง ดังนั้นต้องใส่เงาเพิ่ม

ลงไปเพื่อให้แสงเงาเข้าที่มากขึ้น

.

.

.

.

แต่งแสงเพิ่มอีกหน่อยตรงจุดที่แสงตกกระทบ หากลายชัดเกินไป ให้ใช้เบลอ

ช่วยปรับบางจุดให้เข้าที่มากขึ้น

.

.

.

.

เสร็จเรียบร้อยแล้ววววววว !! <3

HandlerSocket NoSQL ในรูปแบบของ MySQL by

30
Sep
2

ก่อนอื่นต้องเท้าความก่อนว่า 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 ตามนี้เลย

- apt-get
- yum

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

29
Sep
0

การใส่ Texture ให้วัตถุในโฟโต้ช้อป เป็นเทคนิคอย่างนึงที่ทำให้ภาพหรือวัตถุมีชีวิตชีวาและดูเสมือนจริงขึ้น ส่วนใหญ่จะใช้กับงานพวกรีทัชภาพ ทำแอดโฆษณา โปสเตอร์ต่างๆ

โดยสามารถค้นหา Texture ที่ต้องการได้ในเว็บดาว์นโหลด(ฟรี)

วันนี้…จะมาให้ไอโฟนที่ดูใหม่ๆ ให้กลายเป็นไอโฟนแตกๆพังๆ โดยการใส่ Texture

เริ่มจาก…เสิร์ชหา Texture กระจกแตกจากเว็บโหลดฟรีนะจ๊ะ(ในการเสิร์ช ให้เสิร์ชจากไฟล์ขนาดใหญ่จะส่งผลดีกับงานมากกว่า)

Free Transform รูป Teaxture (Ctrl+t) ให้มีขนาดเท่ากับด้านหน้าของไอโฟน

จากนั้นให้เปลี่ยนโหมด Texture เป็น Multiply (ในการเปลี่ยนโหมดของ Texture ส่วนใหญ่จะใช้ Multiply หรือ Overlay นั้นขึ้นอยู่กับคุณสมบัติเฉพาะของ Texture นั้นๆ)

จากนั้นก็…ปรับนู้น แต่งนี่ ให้ดูว่าคนเป็นขยัน…!!!

เสร็จ…!!!

กู้เงิน | เศรษฐกิจพอเพียง | สินเชื่อบุคคล | สมัครบัตรกดเงินสด | สินเชื่อ | เงินกู้ด่วน | ยืมเงินทรูมูฟ | เงินด่วนนอกระบบ