Month: ธันวาคม 2008
Telnet คุยกับ Server ( protocol : http )
สืบเนื่องมาจากตอนที่แล้ว Basic Socket ตอนที่ 1.1 : ปลอม Referrer ด้วย php ซึ่งตอนที่แล้วเราคุยกับ Server ด้วย Socket ของ PHP วันนี้เรามาคุยกับ Server ด้วย Telnet กันครับ Telnet คืออะไรลองหาคำตอบกันที่ google กันก่อนนะครับ ง่ายๆมันก็คือโปรแกรมสำหรับส่งคำสั่งไปยัง Server นั่นแหละครับส่งไปเพื่อ Remote Control เครื่องปลายทาง ไม่ต้องว่ากันมาก ดูรูปประกอบได้เลยครับ (ไม่ดูไม่รู้รื่องนะ) ซึ่งตอนแรกเราออกคำสั่ง telnet แล้วเกิด Connection Refuse ก็เพราะ
Basic Socket ตอนที่ 1.1 : ปลอม Referrer ด้วย php
ผมมี Code php อยู่ที่ http://www.together.in.th/php/referer.php ซึ่ง Code มีแค่ <?php printf(“You come from : %s”,$_SERVER["HTTP_REFERER"]); ?> ซึ่งจะบอกว่าเราไปยังหน้านั้น โดยคลิ๊กจากหน้าไหนเท่านั้นเองครับ ถ้าคลิกจากหน้านี้ก็จะได้ว่า You come from : http://www.together.in.th/ ซึ่งจากคราวที่แล้ว ->
Basic Socket Programming ตอนที่ 1 (php+wireshark)
วันนี้มาเขียนโปรแกรมโดยใช้ Socket แบบง่ายๆกัน โดยใช้ fsockopen ของ php ครับ เราจะทำตัวเป็น Browser กันนะครับ โดย Request ข้อมูลกับ Server เองครับ แต่วันนี้จะส่ง Request อย่างเดียวครับ แต่ยังไม่ส่งค่าไปด้วย (เช่นค่าจาก Form) อ้อ วันนี้เราจะใช้ Wireshark ร่วมกับ PHP นะครับ ใครจะใช้ Proxomitron ก็ไม่ว่ากันครับ โจทย์วันนี้ของเราคือ ถ้าเราใช้ Browser จะยี่ห้ออะไรก็แล้วแต่ครับ เปิดไป ที่ http://bbs.pramool.com/webboard/checksum/index7.php?imgnum=027511150aa7bbd1171c1ae4e1d6e80fcc1681f981fbb2ee1c915983a583d838 Browser ของเราก็จะไป Request ข้อมูลกับทาง Server แล้ว Server ก็จัดให้ตามคำขอครับผม ดูได้จากรูปได้เลยครับ ซึ่ง No.16 ก็คือ Request ของเรานั่นเอง ส่วน No.26 ก็จะเป็นคำตอบของ Server จะเห็นว่า Server [...]
Pango Cause Wireshark Crashed!
Process: wireshark-bin [563] Path: /Applications/Wireshark.app/Contents/Resources/bin/wireshark-bin Identifier: wireshark-bin Version: ??? (???) Code Type: X86 (Native) Parent Process: Wireshark [562] Date/Time: 2008-12-29 10:11:46.068 +0700 OS Version: Mac OS X 10.5.5 (9F33) Report Version: [...]
MPI Programming : ตอนที่ 2
Blocking Communication อันนี้เป็น Prototype ของ MPI_Send และ MPI_Recv ซึ่งเป็นการสื่อสารแบบ Blocking ครับ (มันมี Non-blocking ด้วยไว้ค่อยมาคุยกันอีกทีว่ามันต่างกันยังไงในวันหลังนะครับ) ที่ยกเรื่องนี้มาให้ดูก่อน เพราะตอนหน้าเราจะส่งข้อมูลข้าม Process โดยใช้ MPI (Send & Recv) กันแล้วคร้าบผม int MPI_Send( void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm );
MPI Programming ตอนที่ 1
วันนี้เราลองมาหัดเขียนโปรแกรมแบบ MPI กันดีกว่าครับ ศึกษาจาก Code กันไปเลย ง่ายๆ แต่ MPI คืออะไรล่ะ? มันเป็นแบบนี้ครับ เมื่อเราเขียนโปรแกรมแบบ Parallel Computers ซึ่งก็คือการเขียนโปรแกรมที่ให้ Computer หลายตัวช่วยกันประมวลผล (Cluster Computing) พอมีหลายหน่วยประมวลผลแล้วเราก็ต้องมีการส่งข้อมูลไปมาไงครับ เช่นมีงาน 100 งาน แล้วมี 4 Processors แบ่งกันทำคนละ 25 งาน พอทำเสร็จแล้วก็ต้องเอางานมารวมกัน ก็ต้องอาศัย MPI เนี่ยแหละครับในการส่งข้อมูลระหว่าง Processor อันนี้คือความหมายของ MPI แบบคร่าวๆครับผม MPI = Message Passing Interface แต่วันนี้ยังไม่มีการส่ง Message ครับผม Code ง่ายๆวันนี้ คำอธิบาย Code กด อ่านต่อได้เลยคร้าบบผมม
แนะนำ Ipod touch Clock : Night Stand
Night Stand เป็น Application ที่เอาไว้แสดงเวลาแบบในรูปล่ะครับ ซึ่งมีคุณสมบัติดังนี้ 1. ซึ่งเราสามารถปรับได้ว่าจะเอาสีอะไร (มีแดง เขียว น้ำเงินครับ) 2. ดูได้ทั้งแนวตั้งและแนวนอน 3. แสดง/ซ่อน Day of week 4. แสดง/ซ่อน วินาที 5. ปิด Auto Lock 6. แสดงเวลารูปแบบ 12 หรือแบบ 24 และที่สำคัญฟรีครับ Free หาโหลดได้ใน Store ได้เลยครับ
ข้อสอบ Computer Graphic
ข้อสอบ Midterm 2008 วิชา Computer Graphic ของธรรมศาสตร์ ออกไม่ยากเท่าไหร่ลองโหลดไปดูกันได้
So Faraway
“เราว่าไม่เห็นต้องลืมเลย แค่จำแต่เรื่องดีๆ ชีวิตเราก็มีความสุขได้แล้ว“ วันนี้ได้ดูตัวอย่างหนังสั้น ที่ชื่อว่า So faraway เห็นเค้าเขียนไว้ด้วยนะว่าได้รับรางวัลชนะเลิศการประกวด พอได้ดูก็ชอบแฮะ มีคำนึงที่ฟังแล้วสะดุด “เราว่าไม่เห็นต้องลืมเลย แค่จำแต่เรื่องดีๆ ชีวิตเราก็มีความสุขได้แล้ว” Related Blogs
AdSense Integrator
ถ้าใครมองหา Plugin ที่สำหรับแสดง Google Adsense ใน Blog แล้วล่ะก็ ผมขอแนะนำ AdSense Integrator ครับ เพราะสะดวกดี ไม่ต้องทำอะไรมาก แค่ติดตั้ง แล้วก็เอา Code ของ Google Adsense มาใส่ลงในช่องแล้วก็เลือกตำแหน่งที่จะให้แสดง ง่ายไหมล่ะครับ ^0^
จำนวนเฉพาะ Sequential (Sieve of Eratosthenes)
การหาจำนวนเฉพาะโดยใช้ Sieve Algorithm โดยใช้ Sieve of Eratosthenes โดยมันจะทำงานแบบนี้ อธิบายง่ายๆก็คือมันจะเอาจำนวนเฉพาะไปวนหารจนครบน่ะแหละ
โปรแกรมหาค่า Pi แบบ Parallel
โปรแกรมหาค่า Pi แบบ Parallel โดยคำนวณจากการ Integrate พื้นที่ใต้กราฟนั่นเอง โดย Code นี้ใส่ส่วนที่ทำให้แต่ละ Thread Synchronize ข้อมูลกัน ซึ่งให้เข้าเสียบตัวแปร Sum ทีละ Thread ซึ่ง Codeนี้ จะใช้ omp atomic บน ตัวแปร sum และแต่ละ Thread จะมี local_sum เป็นของตัวเอง ปล. ใช้ OpenMP ร่วมกับภาษา C จ้า
จำนวนเฉพาะ Sequential [2]
#include #include #include #define MAX 10000000 int Prime[MAX]={2,3,5,7,11,13,17,19,23,29}; int found=10; int isPrime(int input); int myFactor[8]={1,7,11,13,17,19,23,29}; int main() { int n=MAX/30; clock_t start, stop; int i; int j=0; int factVal=0; start = clock(); for(i=1;i<=n;i+=1) { for(j = 0; j < 8 ; ++j) { factVal=i*30+myFactor[j]; if(isPrime(factVal) && factVal <= MAX) { Prime[found]=factVal; ++found; [...]
โปรแกรมหาจำนวนเฉพาะแบบ Sequential
#include <stdio .h> #include <math .h> int isPrime(int num); int main() { int i; for(i=2;i< =1000000;++i) { if(isPrime(i)==1) { printf ("%dn",i); } } } int isPrime(int num) { int i; int flag=1; // assume input number is prime for(i=2;i<=sqrt(num);i+=2) { if( (num%i) == 0) { flag=0; break; } } return flag; } โปรแกรมหาจำนวนเฉพาะแบบ Sequential [...]
การเขียนโปรแกรมโดยใช้ MPI (nonblocking-communication)
Non Blocking Communication When using nonblocking send/receives, MPI uses a handle of type MPI_Request to give something that you can later on test against. So the invocation
Cluster – Assignment 1
CS348 Programming Assignment 1 Use hpccluster Out date: Dec 1 100 points Due date: Dec 8 This assignment intends to let you learn how to use cluster computer to run MPI programs. You must download the tucs-hpccluster-user-manual.pdf [...]
Cache Coherence
Cache Coherence คือการทำให้ข้อมูลที่มีอยู่ในแคชของโปรเซสเซอร์ ทุกตัวมีความสอดคล้องกับโปรเซสเซอร์ตัวอื่นๆ Snoop คือการจัดการให้แคชของโปรเซสเซอร์แต่ละตัว คอยฟังว่ามีการร้องขอข้อมูลในหน่วยความจำที่โปรเซสเซอร์กำลังใช้งานอยู่ของโปรเซสเซอร์ตัวอื่นๆทุกตัวหรือไม่ ซึ่งจะทำให้เกิดการติดต่อสื่อสารสถานะของข้อมูล เพื่อประสานงานการใช้ข้อมูลร่วมกันโดยเกิดข้อขัดแย้งน้อยที่สุด แต่จะเกิดปัญหาความล่าช้าบนระบบ Shared-bus เพราะการ snoop จะลด bandwidth ของบัสที่ใช้งานร่วมกัน แต่ในระบบ point-to-point จะมี snoop bus ต่างหาก ทำให้แคชสามารถทำงานโดยไม่ต้องไปรบกวนการทำงานของส่วนอื่นๆ Data Intervention คือเทคนิคที่เพิ่มความเร็วในการประสานการของทำงานของแคช โดยการที่แคชของโปรเซสเซอร์ต้องการอ่านข้อมูลเดียวกัน ที่กำลังใช้งานอยู่และเพิ่งจะเริ่มแก้ไข ก็จะส่งสัญญาณบอกโปรเซสเซอร์อีกตัวให้รอรับข้อมูลที่จะส่งไปให้ ไม่ต้องไปขอจากหน่วยความจำหลักให้เสียเวลา MPP (Massively Parallel Processing) คือสถาปัตยกรรมของการใช้โปรเซสเซอร์หลายตัว โดยที่โปรเซสเซอร์แต่ละตัว จะมีทรัพยากรระบบ(I/O, หน่วยความจำ)ของตนเองเป็นหน่วยๆย่อยมีการควบคุมตนเอง การเชื่อมโยงจะใช้ hardware หรือ software ก็ได้ สามารถขยายสเกลได้ดีมาก แต่ต้องเขียนโปรแกรมใหม่ ไม่สามารถใช้ของเดิมได้ CMP (Cellular MultiProcessing) คือสถาปัตยกรรมของการใช้โปรเซสเซอร์หลายตัว ที่ผสมผสานข้อดีของ SMP และ Clustering เข้าด้วยกัน โดยแบ่งโปรเซสเซอร์ออกเป็นหน่วยเล็ก ที่เรียกว่า subpod (ประกอบด้วย [...]
Document Indexing And Retrieval : Assignment 1
Document Indexing And Retrieval : Assignment 1 เป็นวิชาที่ไม่ได้ลงเรียนแล้ว เขียนโปรแกรมด้วยภาษา groovy (ลองมือ)
Ruby Array with Range : Note
กำลังสงสัยว่า ใน ruby a[0..n] ทำไมมันถึงไม่เหมือนกับ a[0,n] ครับ มันควรจะเหมือนกันไม่ใช่หรอครับ เพราะไปเขียน Merge Sort แล้ว มันให้ผลไม่เหมือนกันเกิด Infinite Loop เลยทีเดียว พอเปิดหนังสือดู อ้าว… เฮ้ย เจ้าตัว operator [ ] ของ array มันก็ให้ผลเหมือนกันนี่หว่า return เหมือนกันเลย หลังจากนั้นก็ลองไปเทสแยกดู ตอนแรก a[0,3] กับ a[0..3] มันเท่ากัน ก็เลย งงว่า มันก็เท่ากันนี่หว่า แต่ลองเช็คอีกทีว่าถ้าเป็น 0,0 มันจะ return อะไร แล้วก็โป๊ะเชะ ที่มันไม่เท่าเพราะ a=["a","b","c","d"] แล้ว >> a[0..0] => ["a"] ส่วน [...]
TCP & UDP Port Software
http://support.apple.com/kb/TS1629 http://wiki.citec.us/index.php?title=List_of_TCP_and_UDP_port_numbers Related Blogs A Letter to a Mother Unknown | The LA Progressive Reverse Phone Book Lookup – How to Identify Unknown Numbers … EPA Says Effect of Dispersants at Depth “Unknown” at Oil Change








