แสดงบทความที่มีป้ายกำกับ google แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ google แสดงบทความทั้งหมด

วันเสาร์ที่ 7 มิถุนายน พ.ศ. 2551

Google Treasure Hunt 2008 Question 4 (prime)

ตอนจบของการล่าสมบัติ คือการหาจำนวนเฉพาะที่น้อยที่สุดที่เป็นผลรวมของจำนวนเฉพาะที่ต่อเนื่องกันตามจำนวนที่ระบุเท่ากัน โดยของผมได้ 15, 31, 127, 515 จำนวน จะบอกว่าเห็นแว๊บแรก มองเห็นว่ามันคือ 2^4-1, 2^5-1, 2^7-1, 2^9+3 ทำให้อดคิดไม่ได้ว่ามันเกี่ยวอะไรกันหรือเปล่า จริง ๆ ไม่ได้เกี่ยวอะไร (มั๊ง)

แต่ข้อนี้ผมทำได้ช้ามาก ๆ เพราะตอนแรกอ่านโจทย์ไม่ละเอียดเอง ไม่ทันสังเกตว่ามันต้องการแค่จำนวนเฉพาะที่ต่อเนื่องกัน ผมนึกว่าจำนวนเฉพาะใด ๆ ก็ได้มาบวกกัน ทำให้โจทย์ยากขึ้นเยอะมาก ซึ่งจริง ๆ เขียนโค้ดจนได้โค้ดที่พร้อมรันแล้ว ซึ่งประเมินแล้วว่ารันนานแน่ ๆ เพราะซับซ้อนมาก ขนาด list ที่ใช้ก็ใหญ่มาก ต้องเก็บข้อมูลเป็น bit เพื่อลดขนาดข้อมูลกันเลยทีเดียว อัพโหลดโค้ด และ text file ที่เก็บจำนวนเฉพาะที่คำนวณไว้แล้ว 6 แสนตัวไปไว้เครื่อง server Linux 64bit ram 8GB รันไปได้หน่อยนึง กะว่าคงต้องรอสักอาทิตย์จึงจะเห็นผล จนแว๊บเห็นคุณ @macroart tweet บอกว่าเขียนบล็อกเรื่องนี้ไปแล้ว เลยเข้าไปอ่านดูถึงรู้ว่าพลาดไปแล้ว

สรุปว่าเขียนใหม่ครับ เหลือโค้ดไว้ใช้เฉพาะตัวโหลด prime ใน file มาเป็น list ที่เหลือเขียนใหม่เลย ลองแบบยังไม่อ่านแนวทางของคุณ @macroart แต่สุดท้ายได้แนวคิดคล้าย ๆ กัน คือผมมองเป็นบล็อก เหมือนรถไฟ 4 ขบวนค่อยวิ่งออกจากต้นทาง โดยตอนแรกหาผลรวมเท่าจำนวนที่ระบุของแต่ละขบวนก่อน แล้วค่อย ๆ ขยับรถไฟไปทีละหน่อย โดยลบเลขตัวน้อยท้ายขบวนออก บวกด้วยตัวถัดไปที่อยู่หัวขบวน ค่อย ๆ เทียบค่าทีละคู่ ดังนั้นคู่ที่ 1 กับ 2 จะเริ่มวิ่งก่อน จนกว่าจะได้ผลรวมเท่ากัน ค่อยเทียบกับขบวนที่ 3 และเมื่อทั้ง 3 ขบวนมีผลรวมเท่ากัน ค่อยไปเทียบกับขบวนที่ 4 จนกว่าจะเท่ากันหมด

รอบแรกมีบั๊กนิดหน่อย เพราะการอ้างตำแหน่ง list หัวขบวนผิด พอแก้แล้วก็รันไม่กี่วินาทีก็ได้คำตอบ ช้ากว่าของ @macroart เพราะรถไฟของแกมีการเร่งเครื่องได้ด้วยถ้าผลรวมต่างกันมาก ๆ ตรงนี้ไม่ได้คิด

ผลลัพธ์ที่ได้คือ

ANSWER = 7448179
[41266, 21229, 5870, 1441] [7448179, 7448179, 7448179, 7448179]
0 : 496459 496471 496477 496481 496487 496493 496499 496511 496549 496579 496583 496609 496631 496669 496681
1 : 240073 240089 240101 240109 240113 240131 240139 240151 240169 240173 240197 240203 240209 240257 240259 240263 240271 240283 240287 240319 240341 240347 240349 240353 240371 240379 240421 240433 240437 240473 240479
2 : 57973 57977 57991 58013 58027 58031 58043 58049 58057 58061 58067 58073 58099 58109 58111 58129 58147 58151 58153 58169 58171 58189 58193 58199 58207 58211 58217 58229 58231 58237 58243 58271 58309 58313 58321 58337 58363 58367 58369 58379 58391 58393 58403 58411 58417 58427 58439 58441 58451 58453 58477 58481 58511 58537 58543 58549 58567 58573 58579 58601 58603 58613 58631 58657 58661 58679 58687 58693 58699 58711 58727 58733 58741 58757 58763 58771 58787 58789 58831 58889 58897 58901 58907 58909 58913 58921 58937 58943 58963 58967 58979 58991 58997 59009 59011 59021 59023 59029 59051 59053 59063 59069 59077 59083 59093 59107 59113 59119 59123 59141 59149 59159 59167 59183 59197 59207 59209 59219 59221 59233 59239 59243 59263 59273 59281 59333 59341
3 : 12041 12043 12049 12071 12073 12097 12101 12107 12109 12113 12119 12143 12149 12157 12161 12163 12197 12203 12211 12227 12239 12241 12251 12253 12263 12269 12277 12281 12289 12301 12323 12329 12343 12347 12373 12377 12379 12391 12401 12409 12413 12421 12433 12437 12451 12457 12473 12479 12487 12491 12497 12503 12511 12517 12527 12539 12541 12547 12553 12569 12577 12583 12589 12601 12611 12613 12619 12637 12641 12647 12653 12659 12671 12689 12697 12703 12713 12721 12739 12743 12757 12763 12781 12791 12799 12809 12821 12823 12829 12841 12853 12889 12893 12899 12907 12911 12917 12919 12923 12941 12953 12959 12967 12973 12979 12983 13001 13003 13007 13009 13033 13037 13043 13049 13063 13093 13099 13103 13109 13121 13127 13147 13151 13159 13163 13171 13177 13183 13187 13217 13219 13229 13241 13249 13259 13267 13291 13297 13309 13313 13327 13331 13337 13339 13367 13381 13397 13399 13411 13417 13421 13441 13451 13457 13463 13469 13477 13487 13499 13513 13523 13537 13553 13567 13577 13591 13597 13613 13619 13627 13633 13649 13669 13679 13681 13687 13691 13693 13697 13709 13711 13721 13723 13729 13751 13757 13759 13763 13781 13789 13799 13807 13829 13831 13841 13859 13873 13877 13879 13883 13901 13903 13907 13913 13921 13931 13933 13963 13967 13997 13999 14009 14011 14029 14033 14051 14057 14071 14081 14083 14087 14107 14143 14149 14153 14159 14173 14177 14197 14207 14221 14243 14249 14251 14281 14293 14303 14321 14323 14327 14341 14347 14369 14387 14389 14401 14407 14411 14419 14423 14431 14437 14447 14449 14461 14479 14489 14503 14519 14533 14537 14543 14549 14551 14557 14561 14563 14591 14593 14621 14627 14629 14633 14639 14653 14657 14669 14683 14699 14713 14717 14723 14731 14737 14741 14747 14753 14759 14767 14771 14779 14783 14797 14813 14821 14827 14831 14843 14851 14867 14869 14879 14887 14891 14897 14923 14929 14939 14947 14951 14957 14969 14983 15013 15017 15031 15053 15061 15073 15077 15083 15091 15101 15107 15121 15131 15137 15139 15149 15161 15173 15187 15193 15199 15217 15227 15233 15241 15259 15263 15269 15271 15277 15287 15289 15299 15307 15313 15319 15329 15331 15349 15359 15361 15373 15377 15383 15391 15401 15413 15427 15439 15443 15451 15461 15467 15473 15493 15497 15511 15527 15541 15551 15559 15569 15581 15583 15601 15607 15619 15629 15641 15643 15647 15649 15661 15667 15671 15679 15683 15727 15731 15733 15737 15739 15749 15761 15767 15773 15787 15791 15797 15803 15809 15817 15823 15859 15877 15881 15887 15889 15901 15907 15913 15919 15923 15937 15959 15971 15973 15991 16001 16007 16033 16057 16061 16063 16067 16069 16073 16087 16091 16097 16103 16111 16127 16139 16141 16183 16187 16189 16193 16217 16223 16229 16231 16249 16253 16267 16273 16301 16319 16333 16339 16349 16361 16363 16369 16381 16411 16417 16421 16427 16433 16447 16451 16453 16477 16481 16487 16493 16519 16529 16547 16553 16561 16567 16573 16603 16607 16619 16631 16633 16649 16651 16657 16661 16673 16691 16693 16699 16703 16729 16741 16747 16759 16763 16787 16811 16823 16829 16831 16843 16871 16879 16883 16889 16901 16903 16921 16927 16931 16937 16943 16963
done.

real 0m21.637s
user 0m16.273s
sys 0m0.328s


7448179 คือจำนวนเฉพาะที่เล็กที่สุด ที่เป็นผลบวกของจำนวนเฉพาะที่ต่อเนื่องกันจำนวน 15, 31, 127 และ 515 จำนวน

ยังไม่เฉลยโค้ดนะครับ ขออุบไว้ก่อน เดี๋ยวไม่สนุก

สรุปว่าได้คำตอบครบทั้ง 4 ข้อแล้ว นอนหลับสนิทซักที เก็บภาพนี้ไว้เป็นที่ระลึก

google-treasurehunt-result

วันศุกร์ที่ 30 พฤษภาคม พ.ศ. 2551

Google Treasure Hunt

เล่นมั่ง ๆ

ตอนแรกที่เห็นโจทย์ข้อแรก (robot) สมองกำลังมึน คิดไปมายิ่งปวดหัว เลยเลิกซะ แต่พอเห็นหลาย ๆ คนโพสต์บล็อก เชียร์ว่าไม่ยาก ๆ เอาวะลองดูใหม่ซักตั้ง

เข้าเว็บ http://treasurehunt.appspot.com/ ปุ๊บคราวนี้ได้ข้อ 3 (network) เลย ลองอันนี้ก่อนละกัน พบว่าง่ายมาก ๆ สำหรับคนที่เข้าใจเรื่อง routing table ของระบบเน็ตเวิร์คแบบ TCP/IP หลักการคือดูว่าจากต้นทางจะไปหาปลายทางต้องเดินผ่าน node ไหนบ้าง เช่นผมเริ่มจาก G ต้องไป A ก็ดูว่า ip ของ A คืออะไร แล้วดูในตารางว่า แถว G มี route ไปหา A ไหม ซึ่งดูได้จากคอลัมน์ของ routing 3 คอลัมน์แรก ถ้ามีก็ให้ไป ip นั้นเลย ถ้าไม่มี ให้ไป default route คือคอลัมน์สุดท้าย เช่นของผมไม่มีใน 3 คอลัมน์แรก ก็ให้ดู ip ในคอลัมน์สุดท้ายซึ่งบอกให้ไป ip หนึ่ง ดูในตารางพบว่าเป็นของ H ก็จดในกระดาษว่า GH แล้วก็ทำเช่นเดียวกันไปเรื่อย ๆ สุดท้ายก็พบว่าเส้นทางเดินคือ GHIJKCOLMBA ก็คือคำตอบที่ต้องส่งไป คำถามนี้ใช้เวลา 2-3 นาทีก็เสร็จ ถูกในครั้งแรกเลยด้วย

ย้อนมาทำข้อ 1 (robot) มีตารางขนาดใหญ่อันหนึ่ง หุ่นยนต์อยู่มุมบนซ้าย ปลายทางอยู่มุมล่างขวา ให้หาจำนวนเส้นทางที่หุ่นยนต์สามารถเดินจากมุมบนซ้ายมามุมล่างขวา โดยให้หุ่นยนต์เดินลง หรือเดินไปทางขวาเท่านั้น วิธีคิดน่าจะมี 2 แนวทางคือ ใช้คณิตศาสตร์ คือเรื่องความน่าจะเป็น กับโปรแกรมมิ่งเอาดื้อ ๆ ซึ่งผมเลือกเขียนโปรแกรม ง่ายกว่าสำหรับผม ก่อนอื่นก็หาแพตเทิร์นของมันให้ได้ก่อน โดยค่อย ๆ คิดโดยมองจากมุมล่างขวาซึ่งเป็นปลายทางว่า

ตารางขนาด 1x1 หุ่นยนต์อยู่ที่ตำแหน่งเดียวกับปลายทาง คำตอบ = 0
ตารางขนาด 1x2 คำตอบ = 1
ตารางขนาด 1xn คำตอบ = 1
ตารางขนาด nx1 คำตอบ = 1 เช่นกัน

ตารางขนาด 2x2 คำตอบ = 2
ตารางขนาด 2x3, 3x2 คำตอบ = 3
ตารางขนาด 3x3 คำตอบ = 6

ไล่ต่อไปอีกหน่อย ก็เริ่มจับทางได้ว่า จำนวนวิธีการเดินของตารางขนาด mxn ก็คือ จำนวนวิธีการเดินของตารางขนาด (m-1) x n + จำนวนวิธีการเดินของตารางขนาด m x (n-1)

เขียนให้สวย ๆ ก็ได้ว่า f(m,n) = f(m-1,n) + f(m,n-1) แบบนี้มัน recursive ชัด ๆ ว่าแล้วก็จับ python มาเขียนโค้ด ได้ว่า

def r(a,b):
if (a == 1) and (b == 1):
return 0
elif (a == 1) or (b == 1):
return 1
else:
return r(a-1,b)+r(a,b-1)

m, n = 4, 5
print r(m,n)


ลองค่า m และ n น้อย ๆ ดูแล้วถูกต้องดี อืมม ไม่เลว ๆ แต่พอใส่ค่าจริง ๆ ลงไป คือ 43, 49 ปรากฏว่าเงียบไปนานมาก ดูท่าไม่ดีละ ลองลดลงเหลือ 20, 20 ก็ยังนาน เฮ่ย ไม่ธรรมดาแฮะ แสดงว่าจำนวนทางเดินมันเยอะมาก ทำ recursive ไม่ไหวแล้ว เปลี่ยนมาเป็น array ละกัน

a=43
b=49

d=[]
for i in range(a):
d[i:]=[[]]
for j in range(b):
if (i == 0) and (j == 0):
d[i][j:] = [0]
elif (i == 0) or (j == 0):
d[i][j:] = [1]
else:
d[i][j:] = [d[i][j-1] + d[i-1][j]]

print d[a-1][b-1]


โชคดีที่ python ใช้เลขจำนวนเต็มขนาดใหญ่ได้ทันที เพราะคำตอบของมันคือ 85182187099351463190080550 ส่งคำตอบเข้าไป ผ่านฉลุย (ถ้าใช้โปรแกรมแรกคิด คงหลายวันเสร็จ)

คำถามข้อที่ 2 ให้ดาวน์โหลดไฟล์ .zip มาไฟล์หนึ่ง พร้อมโจทย์

Unzip the archive, then process the resulting files to obtain a numeric result. You'll be taking the sum of lines from files matching a certain description, and multiplying those sums together to obtain a final result. Note that files have many different extensions, like '.pdf' and '.js', but all are plain text files containing a small number of lines of text.

Sum of line 4 for all files with path or name containing stu and ending in .pdf
Sum of line 4 for all files with path or name containing zzz and ending in .js
Hint: If the requested line does not exist, do not increment the sum.

Multiply all the above sums together and enter the product below.
(Note: Answer must be an exact, decimal representation of the number.)


โอว แบบนี้ต้องเขียนโปรแกรมเท่านั้น และหนทางหาคำตอบที่ดีที่สุดคือ shell programming ครับพี่น้อง ไม่ยากเลย แต่ครั้งแรกตีโจทย์ผิด อ่านไม่ดีเอง คือคิดว่าชื่อแฟ้มมี stu และนามสกุล .pdf เท่านั้น ที่จริงแล้วในชื่อ path ก็ได้ รอบแรกผิดแค่ตรงนี้เอง

มีอีกจุดที่ต้องระวังคือ โจทย์ให้เอาบรรทัดที่ 4 มา แต่ถ้าจำนวนบรรทัดมีไม่ถึง ก็ไม่ต้องเพิ่มค่า sum ดีที่โจทย์เตือนไว้ เพราะไม่อย่างนั้น ถ้าใช้แค่ head + tail จะได้บรรทัดสุดท้ายมาเสมอ โดยอาจจะไม่ใช่บรรทัดที่ 4 ก็ได้ ผลคือได้ shell script หน้าตาอย่างนี้มา

ln1=4
st1="stu"
ext1=".pdf"

ln2=4
st2="zzz"
ext2=".js"

repeat(){
n=1
while [ ${n} -le ${1} ]; do
n=$(($n+1))
echo 0
done
}

s=0
for a in `find . | grep ${st1} | grep ${ext1}$`; do
s=$((`repeat ${ln1} | cat ${a} - | head -n ${ln1} | tail -n 1`+${s}))
done

t=0
for a in `find . | grep ${st2} | grep ${ext2}$`; do
t=$((`repeat ${ln2} | cat ${a} - | head -n ${ln2} | tail -n 1`+${t}))
done

echo "s= ${s}"
echo "t= ${t}"
echo "s*t= $((${s}*${t}))"


ซึ่งผมได้คำตอบคือ 2683982036 ส่งไปในครั้งที่สองก็ถูกต้องเรียบร้อยดี

รออาทิตย์หน้าจะมีคำถามใหม่มาอีก แต่ไม่รู้วันไหน เห็นว่าตอบถูกหมดเป็นคนแรกมีรางวัลให้ ทำอย่างไรจะได้เป็นคนแรกล่ะนี่ เอาน่าเผื่อมีรางวัลปลอบใจเป็น invite ให้ลองใช้ google app engine ก็คงจะดี

วันศุกร์ที่ 7 มีนาคม พ.ศ. 2551

Google Reader Shared Items + ReadBurner

เมื่อวานอ่าน feed เจอว่า Alexander Marktl ผู้พัฒนาเว็บไซต์ readburner.com ประกาศยุติเว็บไซต์แล้ว ทั้ง ๆ ที่เพิ่งเปิดมาได้เพียง 2 เดือน เสียดายมาก ๆ เห็นว่า Marktl ไม่สามารถเจียดเวลามาดูแลได้ เนื่องจากเป็นเพียงงานที่ทำในเวลาว่าง ที่จริง ตอนที่รู้จัก ReadBurner ครั้งแรก (ผ่าน lifehacker.com) ก็ตั้งใจว่าจะเขียนถึงสักครั้งหนึ่ง เนื่องจากเป็นไอเดียใหม่ที่เจ๋งมาก ก็ขอใช้โอกาสนี้กล่าวถึงละกัน

ราว ๆ ปลายปี 2550 Google Reader มีฟีเจอร์ใหม่ ให้ผู้ใช้สามารถ share feed item กันได้ คือชอบ feed item ไหน อยากให้เพื่อนรู้ด้วย ก็คลิก share ได้เลย เพื่อน ๆ ใน gtalk ของเรา ที่ใช้ Google Reader เหมือนกัน ก็จะเห็น item ที่เพื่อนคนอื่น share ไว้ แบบนี้

Google Reader Shared Items

ผลคือการอ่าน feed สนุกขึ้นมาก เพราะอย่างที่รู้ ๆ กันว่า feed วันนึง ๆ มี item เยอะมาก และบางอันที่น่าสนใจเราดันไม่ได้ subscribe ไว้อีก แต่เพื่อน ๆ เราอาจจะมี ก็ได้มา share ให้เราอ่านด้วย feed item ที่ถูก share ผมก็จะอ่านก่อน เพราะถ้าเขา share มาแปลว่ามันน่าสนใจจริง ๆ ก็ทำให้ประหยัดเวลาไปได้พอสมควร ส่วนคนที่ไม่ได้ add เป็นเพื่อนไว้ ถ้าเค้ามี shared item url ก็สามารถเอามา subscribe ไว้อ่านได้

เช่นของผมเข้าไปดูได้ที่ http://www.google.com/reader/shared/06070222257138471631 หรือถ้าต้องการสมัคร feed ไว้อ่านใน Google Reader ก็มีลิงก์ให้ในหน้านี้

การอ่าน feed บน Google Reader เลยกลายเป็น Social Network อีกแบบ

ReadBurner จับเอาฟีเจอร์การ share ของ Google Reader มาเล่น โดยเสนอให้ผู้ใช้ Google Reader เอา share url มาใส่ในเว็บ โดยไม่ต้องสมัครสมาชิก จากนั้น ReadBurner จะคอยตรวจสอบดูว่า feed ไหนที่เป็นที่นิยมในแต่ละวัน หรือสัปดาห์ โดยดูจากจำนวนการ share เท่านั้น ไม่ต้องโหวตแบบ digg ซึ่งเป็นลูกเล่นที่เจ๋งมาก ผู้ใช้แค่อ่าน feed และ share อันที่ตัวเองชอบ เท่านั้นก็เป็นการโหวต feed ยอดนิยมได้ทันทีโดยอัตโนมัติ ซึ่งแนวคิดแบบ FeedBurner ก็ถูกลอกเลียนอย่างรวดเร็ว เช่น Shared Reader หรือ RSSMeme แต่ในความคิดของผม คิดว่าไม่มีอันไหนสู้ ReadBurner ต้นตำรับได้

หลังจากประกาศยุติ ReadBurner แล้ว Marktl ก็แนะนำว่าถ้าชอบไอเดียของ ReadBurner ก็ให้ลองเปลี่ยนไปใช้ RSSMeme (developed by Benjamin Golub) ซึ่งเป็น clone ของ ReadBurner ที่เขาคิดว่าดีที่สุด ซึ่งผมก็ได้ไปลองดูแล้ว ถือว่า ok ละ แต่อันนี้มาแปลกหน่อย คือนอกจากจะไม่มีการสมัครสมาชิกเหมือนกับ ReadBurner แล้ว ก็ยังไม่มีช่องให้เพิ่ม feed ด้วย แต่ค้นดูแล้วปรากฎว่ามัน add shared items ของผมไว้เรียบร้อยแล้ว ไม่รู้มาได้ไงเหมือนกัน อาจจะเพราะเคยเพิ่มไว้ใน ReadBurner มาก่อน ประเด็นการไม่ให้เพิ่ม feed นี้ก็เคยคิดเหมือนกันว่า กรณี ReadBurner ให้ใครก็ได้ เพิ่ม feed เข้าไปในระบบได้เอง อาจจะทำให้เกิดการสร้าง account ใน google reader หลอก ๆ มาปั่นคะแนนความนิยมก็ได้ ในกรณีของ RSSMeme ถ้าไม่พบชื่อตัวเองในระบบ ก็ให้เมลไปแจ้งเขาได้ โดยส่ง shared items url ไป

ส่วนโดเมน readburner.com และเทคโนโลยีที่ Marktl คิดค้นพัฒนาขึ้นเค้าก็ประกาศขายแล้วครับ คงรอดูกันต่อไปว่า จะมีใครซื้อทั้งสองอย่างนี้ไปดำเนินการต่อหรือเปล่า ขอให้มีเถอะ ถ้าหายไปเฉย ๆ นี่เสียดายมาก

วันพุธที่ 25 กรกฎาคม พ.ศ. 2550

คู่มือการใช้ Google Apps ภาษาไทย ที่สมบูรณ์ที่สุด

เป็นของคุณพรทิพย์ กองชุน ที่ปรึกษา Google, Inc. ประจำประเทศไทย

http://www.pornthip.com/googleapps/GoogleApps_Admin_V2.0.htm

ละเอียดถึงใจจริงๆ ครับ ผมเองตอนที่ได้รู้จัก Google Apps ใหม่ๆ ก็คิดจะเขียนเป็นตอนๆ โดยคิดว่าอยากให้เป็นข้อมูลที่ถูกต้อง ทำได้ไม่ยาก ทุกคนทำได้เอง แต่กลับไม่ค่อยมีเวลา เลยค้างๆ คาๆ อยู่แค่นั้น พอเห็นคู่มือคุณพรทิพย์แล้ว โอเคเลย ผมไม่ต้องเขียนต่อละ ขออ้างอิงลิงก์ต่อให้ไปอ่านเอาเองละกัน แนะนำว่า ใครสนใจ เอาไปปริ้นต์ไว้อ้างอิงเลยครับ

ส่วนอ้ายประเภทแอบอ้างเอา Google Apps ไปคิดค่าบริการรายปีนี่ ขอเถอะครับ อย่าทำเลย ถ้าจะทำ ขอให้เป็นการคิดค่าบริการครั้งเดียวจบดีกว่า ซึ่งผมได้แต่หวังว่า การช่วยกันให้ข้อมูลออกไปมากๆ จะทำให้คนเข้าใจมากขึ้น แล้วการแอบอ้างแบบนี้จะกลายเป็นผลลบต่อตัวผู้กระทำเอง

วันอาทิตย์ที่ 18 มีนาคม พ.ศ. 2550

ใช้ gmail เป็นโปรแกรมอ่านและส่งเมล (mail client)

พึ่งเห็นฟีเจอร์ใหม่ของ gmail คือการที่มันสามารถ "ดูด" เมลจาก pop mail server ที่ไหนก็ได้มาอ่าน ใน gmail ผนวกกับการที่เราสามารถใช้ gmail ในการส่งเมลในชื่อบัญชีอื่นได้ ซึ่งอันหลังนี้เห็นนานแล้ว นั่นแปลว่าเราสามารถใช้ gmail ทำหน้าที่เป็นโปรแกรมอ่านและส่งเมล เช่นเดียวกับ thunderbird, evolution หรือ outlook นั่นเอง

เอ แล้วใช้ gmail จะมีข้อดี "กว่า" อย่างไร?
ข้อดีคือ 1) มัน online สามารถล็อกอินใช้จากที่ไหนก็ได้ 2) เอาไว้ค้นเมล เพราะ gmail มันค้นหาเมลเก่ง 3) ผมเช็คเมลที่ gmail เป็นหลักอยู่แล้ว การดูดเมลมารวมกัน ก็ทำให้สะดวกในการเช็คเมล 4) การเช็ค spam ของ gmail ค่อนข้างเก่งทีเดียวครับ ใช้แล้วคัดแยก spam ได้ไวขึ้นเยอะ

อย่างไรก็ตาม เนื่องจากตอนนี้ยังเป็นฟีเจอร์ใหม่อยู่ ซึ่ง gmail บอกว่าจะจำกัดการทดลองใช้งาน บางท่านอาจจะยังไม่สามารถใช้ฟีเจอร์นี้ได้ ก็รออีกนิดแล้วกันนะครับ อ่อ มีเทคนิคอย่างหนึ่งคือ ถ้าตั้งให้ UI ของ gmail เป็นภาษาอังกฤษ มักจะได้ใช้ฟีเจอร์ใหม่ๆ ก่อนภาษาอื่นๆ อีกประการคือ สามารถเพิ่มได้เพียง 5 บัญชีเท่านั้น (จริงๆ ก็เพียงพอสำหรับผู้ใช้ส่วนใหญ่นะ) และใช้ได้เฉพาะ pop3 หรือ pop3s เท่านั้น imap ใช้ไม่ได้

มาลองใช้งานกันดีกว่า

วันพุธที่ 28 กุมภาพันธ์ พ.ศ. 2550

Step-by-step apps for-your-domain (2)

ขั้นต่อมาคือสมัครใช้บริการ Google Apps for your domain กัน ถึงตอนนี้ Google Apps ตัดคำว่า for your domain ออกไปละ สงสัยจะยาวไป และก็มีบริการแบบเก็บเงินด้วย แต่อย่างเราๆ ใช้กันก็ใช้แบบฟรีก็หรูแล้วละครับ

แต่ถ้าอยากลองใช้แบบ premier ก็สามารถลองอัพเกรดได้ฟรี ถึงวันที่ 30 เมษายน 2550 นี้ แต่ต้องป้อนเลขบัตรเครดิตก่อน ซึ่ง google จะขออนุมัติการจ่ายเงินกับ bank ไว้ แต่จะยังไม่ charge นั่นคือเราจะยังไม่ถูกเรียกเก็บเงิน แต่วงเงินจะถูกกันไว้เท่าที่ google เรียกเก็บ ถ้าเรายกเลิก premier ก่อนวันที่ 30 เมษายน ก็ไม่ต้องจ่ายอะไรเลย แต่ถ้าเลยละก็จะโดน charge เงินทันที ทำให้ผมไม่กล้าทดลองใช้ กลัวลืมยกเลิก อีกอย่างหนึ่ง ดูตารางเปรียบเทียบแล้ว สิ่งที่เพิ่มมาก็ไม่ได้มีอะไรจำเป็นสำหรับเราเท่าไหร่

เริ่มกันเลยดีกว่า

วันอังคารที่ 6 กุมภาพันธ์ พ.ศ. 2550

Step-by-step apps for-your-domain (1)

จัดให้ตามคำขอของคุณหน่อย :-D:
apps for-your-domain ในที่นี้หมายถึง บริการบนอินเทอร์เน็ตซึ่งเราสามารถเชื่อมโยงกับโดเมนของเราเองได้ ทำให้ดูมีเอกลักษณ์ เพราะอยู่บนโดเมนของเราทั้งหมด ในที่นี้จะกล่าวถึงเฉพาะที่ "ฟรี" เท่านั้น (ซึ่งเท่าที่ทราบ มี google ที่ "ให้" มากที่สุด) นั่นแปลว่า เราเสียเงินจดโดเมนอย่างเดียว ปีละประมาณ 300 บาท แต่เราจะมี Web, Email, Blog, Calendar, Jabber, My Startpage เป็นของโดเมนเราเอง สามารถใช้ได้กับผู้ใช้ที่เป็นสมาชิกในโดเมนได้อีกด้วย

ผมจะค่อยๆ ทยอยเขียนแนะนำการเซ็ตทีละบริการแล้วกันนะครับ วันนี้เอาเรื่องแรกก่อน คือการเตรียมตัว

วันจันทร์ที่ 22 มกราคม พ.ศ. 2550

blogger for your domain

google ทำอะไรที่เป็น "for your domain" ออกมาค่อนข้างเยอะ เมื่อวานพึ่งรู้ว่า blogger ใหม่ สามารถตั้งให้ใช้ domain ของเราได้เช่นเดียวกัน ซึ่งทำให้จำได้ง่ายดี เป็นเอกลักษณ์เฉพาะตัวด้วย

ปกติการเขียน blog ที่ blogger.com เราจะได้ url ที่เป็น http://yourname.blogspot.com/ เสมอ ยกเว้น ให้มันใช้ ftp account หรือ sftp เพื่อโอนไฟล์ไปอัพเดทที่ host อื่น (เช่นก่อนนี้ผมเคยใช้ฟรีโฮสติ้งของ se-ed.net ก็สามารถให้ blogger สร้างบล็อกที่ http://se-ed.net/kamthorn/ ได้) แต่ในรุ่นใหม่นี้ เรามีทางเลือกอื่นคือ ใช้ domain ของเราเองได้ด้วย

วิธีทำง่ายๆ คือ สมมติเรามี domain morninggarden.com อยู่แล้ว ต้องการให้บล็อกเป็น url http://blog.morninggarden.com/ เราก็ไปเพิ่ม record ใน dns ของเรา ให้ชื่อ blog ชี้ไปที่ CNAME ghs.google.com วิธีการก็คงแตกต่างไป แล้วแต่ว่าเราจดโดเมนกับใคร หรือใช้ dns server ของใคร

จากนั้นก็ไปกำหนดใน blogger.com โดยเลือก setting ที่บล็อกที่ต้องการแก้ไข เลือก publishing เลือก your domain ป้อนชื่อ blog.morninggarden.com ลงไป กดปุ่ม save setting ถ้าเดิมเราใช้ blogspot อยู่ เช่น http://morninggarden.blogspot.com/ เวลามีคนเข้าที่ url เดิม มันจะ redirect มาที่ใหม่ให้เอง

เท่านี้ก็เรียบร้อย เสียเงินจดโดเมนอย่างเดียว (ปีละประมาณ 300 บาท หรืออาจจะหาได้ถูกกว่านี้) ก็เอามาใช้งานได้เยอะแยะแล้วครับ (อ่าน ตอนเก่า) สรุปถึงตอนนี้คือ ด้วยโดเมนอย่างเดียว เราสามารถมี E-Mail, Web Site, Calendar, Jabber และ Blog ได้ทันที ง่ายๆ และคุณภาพดีตามแบบ google อีกด้วย

วันอังคารที่ 5 กันยายน พ.ศ. 2549

Google Apps for Your Domain

น่าจะผ่านหูผ่านตาไปบ้างแล้วนะครับ เกี่ยวกับ Google Apps for Your Domain ซึ่งเดิมเคยขอ gmail for your domain ไว้ ก็เลยลองล็อกอินเข้าไปดู ก็สามารถเปิดเซอร์วิซ Google Pages ได้อีกอันหนึ่ง นอกเหนือไปจาก Gmail, Gtalk และ Calendar

ทีนี้เลยได้ไอเดียว่า ด้วยแอ็พลิเคชันเด่นๆ ทั้ง 4 ตัวนี้ ก็สามารถใช้ google ทำ "host ฟรี" ได้ในระดับนึง คือสามารถสร้างเว็บเพจได้ มีอีเมล (สุดยอดแล้ว) ปฏิทิน (อันนี้มีประโยชน์มาก ไว้แชร์ปฏิทินกัน) และ gtalk ไว้สื่อสารแบบทันใจ เหมาะมากกับองค์กรเล็กๆ (ไม่เกิน 25-40 คน) ถ้าจะเสียเงินก็คงแค่จดโดเมน (.com ก็ไม่เกิน 300 ต่อปี .xx.th ก็ราว 700 ต่อปี)