All of the below use only a single HTML element. Any kind of CSS goes, as long as it's supported in at least one browser.
Square
<a class="hashtag" href="/tags/square">#square</a> { width: 100px; height: 100px; background: red; }
Rectangle
<a class="hashtag" href="/tags/rectangle">#rectangle</a> { width: 200px; height: 100px; background: red;
Circle
<a class="hashtag" href="/tags/circle">#circle</a> { width: 100px; height: 100px; background: red; -moz-border-radius: 50px; -webkit-border-radius: 50px; border-radius: 50px; }/* Cleaner, but slightly less support: use "50%" as value */
Oval
Triangle Up
Triangle Down
Triangle Left
Triangle Right
Triangle Top Left
Triangle Top Right
Triangle Bottom Left
Triangle Bottom Right
Curved Tail Arrow via Ando Razafimandimby
Trapezoid
Parallelogram
Trapezoid
Star (6-points)
Star (5-points) via Kit MacAllister
Pentagon
Hexagon
Octagon
Heart via Nicolas Gallagher
Infinity via Nicolas Gallagher
Diamond Square via Joseph Silber
Diamond Shield via Joseph Silber
Diamond Narrow via Joseph Silber
Cut Diamond via Alexander Futekov
Egg
Pac-Man
Talk Bubble
12 Point Burst via Alan Johnson
8 Point Burst via Alan Johnson
Yin Yang via Alexander Futekov
Badge Ribbon via Catalin Rosu
แบบอื่น ๆ
Crowdsourcing is inarguably the fastest growing trend in the market these days. The term was coined by Jeff Howe in an article in ‘Wired magazine’ in 2006 and has since re-invented the way people do business. In just six years of existence, top crowdsourcing sites have won insurmountable laurels and success in the business community. Ben Kerschberg, in his enlightening article published in Forbes magazine highlighted “How Crowdsourcing Is Tackling Poverty In The Developing World”.
The concept of employing a creative crowd for projects crept into the design field in 2008 when 99designs launched the first logo design contest site. After that, many promising companies like MycroBurst and CrowdSPRING stepped up and served the community with full flow. Today, we present you with an interesting infographic on top 5 design crowdsourcing sites. Through our infographic, we have illustrated some very fascinating facts and figures about the best crowdsourcing sites in the field of design.
อันนี้ copy มาล้วน ๆ ครับ ยังไม่มีความสามารถพอที่จะเขียนอย่างนี้ได้
เอามาจาก www.thaihosttalk.com ตามนี้นะครับ
นี่เป็นเกร็ดเล็กๆน้อยๆเบื้องต้นสำหรับมือใหม่ที่จะช่วยปรับแต่งให้เครื่อง Linux มีความปลอดภัยมากยิ่งขึ้นครับ โดยตัวอย่างที่ให้เป็นคำสั่งบนเครื่อง debian ถ้าใครใช้ distro อื่นๆก็อาจจะมีรายละเอียดปลีกย่อยแตกต่างกันไป (ส่วนใหญ่จะคล้ายๆกันแต่ต่างกันที่สถานที่เก็บ config ไฟล์ต่างๆ) ผิดพลาดประการใดก็ขออภัยด้วยครับ
แบ่งขั้นตอนคร่าวๆได้ดังนี้
- สร้าง user ขึ้นมาใหม่ - เพื่อที่จะได้ไม่ต้องเข้าเป็น root ตลอดเวลา ช่วยทั้งเรื่องความปลอดภัยและป้องกันความซุ่มซ่ามของตัวเองทำเครื่องพังจากการใช้คำสั่งอย่างไม่ระมัดระวัง
- เปลี่ยน root password - โดยเฉพาะคนที่ได้ root password มาจากคนอื่น (แต่ถ้าเราเปลี่ยนแล้ว คนๆนั้นก็จะเข้า root ไม่ได้นะครับ เว้นแต่ว่าจะให้สิทธิ์ใน sudoers ไว้ตามข้างล่าง)
- ปิด service ต่างๆที่ไม่ได้ใช้ - เพื่อลดจำนวนช่องโหว่ลง
- ลง sudo - จะได้ไม่ต้อง login เข้า root ตามข้อ (1) ข้างบน
- ตั้งค่า SSH - ไม่ให้ login โดยใช้ root และทำ public key authentication (ถ้าต้องการ)
- ตั้งค่า iptables - เพื่อเปิดใช้เฉพาะ port ที่จำเป็นจริงๆ
มาเริ่มกันเลยดีกว่า..
1. สร้าง user โดยใช้คำสั่ง adduser
$ adduser username $ passwd username
2. เปลี่ยน root password
$ passwd
3. ปิด service ต่าง ๆ ที่ไม่ได้ใช้
ปกติผมจะไปเพิ่มหรือลบ symbolic link ตาม /etc/rcX.d/ เอาด้วยความเคยชิน แต่เดี๋ยวนี้ใช้สคริปต์ update-rc.d ได้ครับ (สำหรับ debian) หรือ 'service' สำหรับ Centos
$ update-rc.d -f service_name remove
4. ลง sudo
$ apt-get install sudo
หรือใครใช้ Centos ก็ให้ใช้ yum เอา
จากนั้นก็ให้ใช้ visudo เพื่อแก้ไฟล์ sudoers อยากให้ใครใช้คำสั่งที่ต้องใช้ root privilege ได้ก็ใส่บรรทัดนี้เข้าไป
username ALL=(ALL)
5. ตั้งค่า SSH
อันดับแรกที่ผมทำเลยคือปิด root login ครับ ให้เข้ามาเป็น user ธรรมดาแล้วมา sudo เอา เปิดไฟล์ /etc/ssh/sshd_config โดยใช้ editor ที่ถนัด แล้วมองหาบรรทัด PermitRootLogin yes แล้วเปลี่ยนเป็น PermitRootLogin no แทน
จากนั้นก็เช็คว่าให้ใช้ SSH version 2 เท่านั้น โดยดูในไฟล์เดิมแล้วหาบรรทัด Protocol 2,1 แล้วเปลี่ยนเป็น Protocol 2 แทน ถ้าเป็น Protocol 2 อยู่แล้วก็ไม่ต้องไปยุ่งอะไรมันครับ
ถ้าอยากจะเปลี่ยน port SSH ด้วยก็ทำได้ครับ หาบรรทัด Port 22 แล้วเปลี่ยนเลข 22 เป็น port อื่นที่เราต้องการ
สำหรับคนที่โรคจิตวิตกจริตอย่างผมก็อาจจะอยากใช้ public key authentication แทน ก็ทำได้ครับ ก่อนอื่นก็สร้าง public/private key บนเครื่องตัวเองก่อน
$ ssh-keygen -t rsa
และควรจะใส่ password ให้กับ key นี้ด้วยเพื่อเพิ่มความปลอดภัย (ไม่งั้นถ้า private key โดนขโมย คนที่ขโมยก็จะสามารถเข้าเครื่องเราได้ทันที)
จากนั้นก็ upload public key ขึ้นไปบน server
$ scp id_rsa.pub username@server:id_rsa.pub
แล้ว log เข้าไปที่ server เพื่อตั้งให้ใช้ key นี้สำหรับ login
$ cd (ไปที่ home ของ user ที่ต้องการ) $ mkdir .ssh $ chmod 700 .ssh $ cat id_rsa.pub >> .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys
แล้วเปิดไฟล์ /etc/ssh/sshd_config ขึ้นมาอีกครั้งเพื่อตั้งให้ใช้ public key เท่านั้น
หาบรรทัด PasswordAuthentication yes แล้วเปลี่ยนเป็น PasswordAuthentication no
หาบรรทัด UsePAM yes แล้วเปลี่ยนเป็น UsePAM no
ถ้ามั่นใจว่าไม่ได้ทำอะไรผิดก็ทำการ restart sshd
$ /etc/init.d/ssh restart
*** ควรจะทำที่หน้าจอหรือผ่าน iKVM เพราะถ้า config พลาดอาจจะทำให้เข้าเครื่องไม่ได้ (เตือนแล้วนะครับ) หรือถ้าจำเป็นจริงๆที่ต้องทำจากข้างนอกก็ต้องไม่ปิด session ssh ปัจจุบันจนกว่าจะมั่นใจว่าสามารถเข้า session ใหม่ผ่าน public key ได้ ***
6. ตั้งค่า iptables
โดยปกติผมจะปิดทุก port ยกเว้นแต่ port ที่ต้องใช้จริงๆ ขั้นตอนต่อไปจะทำในไฟล์หรือใส่ command เข้าไปเลยก็ได้ ถ้าสร้างไฟล์ก็ให้เริ่มไฟล์ด้วย *filter เพื่อบอกว่าเรากำลังแก้ filter table อยู่ ดังนี้
$ vi /etc/iptables.test.rules
*filter -A INPUT -i lo -j ACCEPT -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT -A OUTPUT -j ACCEPT -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A INPUT -j DROP -A FORWARD -j DROP COMMIT
อธิบาย rules ต่างๆ
- อนุญาต traffic จาก loopback interface
- ถ้ามี traffic มาที่ 127.0.0.0/8 ต้องมาจาก loopback interface เท่านั้น
- อนุญาต incoming traffic ที่เริ่มจากเครื่องนี้
- อนุญาต outgoing traffic ทั้งหมด
- อนุญาต tcp traffic ที่มาที่ port 80
- อนุญาต tcp traffic ที่มาที่ port 22 (SSH)
- อนุญาต ping
- เก็บ log traffic ที่ไม่ได้รับอนุญาต
- drop incoming traffic อื่นๆ
- drop traffic อื่นๆ ที่จะต้องถูก forward
เสร็จแล้วก็ load เข้า iptables โดยคำสั่ง
$ iptables-restore < /etc/iptables.test.rules
หรือถ้าไม่ทำใส่ไฟล์ก็ให้ใช้คำสั่ง iptables นำหน้าแทนครับ เช่น
$ iptables -A INPUT -i lo -j ACCEPT
แล้วใส่เข้าไปทีละบรรทัด
จากนั้นก็ดูความเรียบร้อย
$ iptables -L
และลองดูว่า port ที่ต้องการจะใช้ใช้ได้จริงหรือเปล่า และ port อื่นๆได้ถูกปิดไปจริงหรือไม่ (สำหรับคนที่เปลี่ยน port ssh ก็อย่าลืมเปลี่ยนตามนะครับ) ถ้าเรียบร้อยดีก็ save ไป
$ iptables-save > /etc/iptables.up.rules
แล้วสร้าง script ขึ้นมาเพื่อโหลด rules ตอน boot
$vi /etc/network/if-pre-up.d/iptables
#!/bin/bash /sbin/iptables-restore < /etc/iptables.up.rules
save ไฟล์แล้วเปลี่ยน permission ให้เป็น executable
$ chmod +x /etc/network/if-pre-up.d/iptables
เป็นอันเสร็จเรียบร้อย
(ลอกมาจาก blog ตัวเอง + update นิดหน่อย) original ที่นี่ http://just-another-...ลอดภัยให้-debi/
ที่มา www.thaihosttalk.com
<?php function smsnotify($mobile_no,$msg,$sender) { $user_id = "gatewayusername"; $passwd = "gatewaypassword"; $host = "api.smsgateway.com";<br /> $port = "80";<br /> $path = "/api_sms.jsp"; $data="user_id=$user_id&passwd=$passwd&sender=$sender&mobile_no=$mobile_no&msg=$msg"; $fp=@fsockopen($host,80); if ( $fp) { fputs($fp,"POST $path HTTP/1.1\r\n"); fputs($fp,"Host: $host\r\n"); fputs($fp,"Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp,"Content-length: ".strlen($data)."\r\n"); fputs($fp,"Connection: close\r\n\r\n"); fputs($fp,$data); while(!feof($fp)) { $buffer=fgets($fp,128); } fclose($fp); } } $phonno='00000000'; $msg='This is a SMS message'; smsnotify($phonno,$msg,"SenderName"); ?>
ปล. ยังไม่ได้ทดสอบนะจ๊ะ
ที่มา www.thaihosttalk.com
การติดตั้ง DirectAdmin บน CentOS 6 minimal ซึ่ง CentOS 6 minimal ไม่มี library พื้นฐานบางตัวมาให้โดยเฉพาะ mysql หลังจากลง CentOS เรียบร้อย ให้สั่ง update และติดตั้ง package เพิ่มเติม
yum update rpm -Uvh http://mirrors.thzhost.com/epel/6/x86_64/epel-release-6-5.noarch.rpm yum install gcc-c++ make patch screen wget quota ncftp bind bind-utils caching-nameserver which bison flex webalizer patch openssl-devel.x86_64 curl-devel.x86_64 e2fsprogs-devel.x86_64 perl-DBI ntp tcpdump iptables telnet traceroute rsync openssh-clients perl-Term-ReadKey autoconf rpm-build vim-enhanced nginx automake libaio libcurl-devel
หลังจากนั้นให้ติดตั้ง DirectAdmin ตามปกติ
คู่มือติดตั้ง CentOS 6
ที่มา www.thaihosttalk.com
บริการใหม่จาก AIS คือ Airnet ส่งสัญญาณอินเตอร์เน็ตผ่าน GSM มาถึงบ้านเราเลย แถมความเร็ว Upload/Download 7/7 mbps เสียด้วย
ลองดูแพคเกจและบริการ
แถมพื้นที่ให้บริการก็ครอบคลุมถึงบ้านผมเสียด้วย
ลองอ่านจากรีวิวนะครับ
ซื้อ Nook Touch มา 2 เดือนแล้ว วันนี้เลยลองเล่นเสียหน่อย หวาดเสียวอยู่เหมือนกันว่ามันจะ brick
ขั้นที่ 1 Backup current Nook Touch firmware ตามขั้นตอน Backup/Restore N2E
อ้างอิง
- N2E1.1 TouchNooter 2.1.31
- Rooted Nook Touch Review - eReading Apps, PDF, Web Browser, etc
- Nook Touch Rooting Guide
- Backup/Restore N2E
- How To Root Android Nook Touch Reader
- Nook Touch Working Apps List
- Nook-touch-rootkit
- How to Unroot Nook Touch to Restore it to Original Firmware
- รีวิว Rooted Nook Touch ... the E-ink tablet แบบบ้านๆ
เคยมีปัญหาเครื่อง Lenovo Z470 หา Wifi access point (ของข้าพเจ้าเอง) ไม่เจออยู่หลายครั้งเหมือนกัน ในขณะ(เดียวกัน)ที่เครื่องอื่น ๆ กลับหา access point นั้นเจอ และใช้งานได้ตามปกติ แต่เจ้าของ access point กลับหาไม่เจอ
เง็ง ๆๆๆ มาก ๆๆๆ
ก็เลยเอาสาย LAN ไปเสียบ แล้วเข้าไป config ใหม่ ที่ลองแก้อยู่มี 2 จุด คือ Encryption เปลี่ยนเป็น TKIP/AES กับอีกจุดคือ เปลี่ยน Channel จาก Auto ไปเป็น 1-13 (อะไรก็ได้)
ซึ่งก็สามารถแก้ไขปัญหาไปได้ ก็เคยคิดอยู่เหมือนกันว่า ช่วงคลื่นของ Wifi ที่ access point ของเรา อาจจะชนกับ access point ของเครื่องอื่น ๆ ในบริเวณนั้น ๆ
วันนี้ ได้ไปอ่านบทความชิ้นหนึ่ง IETF ไปประชุมที่ฝรั่งเศส พร้อมปรับปรุง Wi-Fi ให้โรงแรม จึงได้ถึงบางอ้อ และทึ่งกับวิธีการจัดการแก้ปัญหาของทีมวิศวกรเครือข่าย (คือตัวเองไม่ได้เป็นวิศวกรเครือข่าย สมัยเรียน Wifi ยังไม่เกิด แม้แต่ Cellular ก็เพิ่งเริ่มมีได้ไม่นาน แต่ก็พอรู้มาบ้าง) ที่แก้ปัญหาจากความเข้าใจหลักการทำงานพื้นฐานและดัดแปลง ปรับแต่งศักยภาพของอุปกรณ์ที่มีอยู่ทั้งหมดให้สามารถทำงานร่วมกันได้โดยไม่ต้องลงทุนเพิ่มเติม นี่แหละสุดยอด!!!!!
บทความนั้นมีรายละเอียดตามนี้
เรื่องราวแปลกประหลาดบางทีก็เกิดขึ้นได้ในโลกไอทีเมื่อทีม IETF หรือ Internet Engineering Task Force (ที่ไมโครซอฟท์เพิ่งส่งมาตรฐาน HTTP 2.0 ให้พิจารณา) ได้ไปประชุมกันที่โรงแรม Concorde Lafayette ในปารีส และพบว่าอินเทอร์เน็ตใช้งานแทบไม่ได้ แพ็กเก็ตสูญหายไปถึง 30% และเวลา latency ของเครือข่ายนั้นสูงถึง 5-6 วินาที
เหตุผลของเรื่องนี้คือผู้เข้าประชุมกับ IETF นั้นล้วนใช้อินเทอร์เน็ตกันทุกคน พอคนใช้มากๆ เข้าช่องความถี่วิทยุของ Wi-Fi ก็เต็มจนใช้งานไม่ได้
แต่ในเมื่อวิศวกรที่ออกแบบอินเทอร์เน็ตมารวมกันจนเต็มโรงแรม จะมีอะไรต้องกลัวอีก?
หนึ่งในนั้น คือ Chris Elliott อดีตวิศวกรของซิสโก้ ได้เข้าตรวจสอบเครือข่าย และพบว่าการคอนฟิก Access Point (AP), การวางแผนคลื่นความถี่, ตลอดจนการเลือกจุดวาง AP ของโรงแรมนั้นทำได้ไม่ดี
Elliott ตรวจสอบการเชื่อมต่อของ MAC, IP ว่ามาจากพอร์ดใดบ้างด้วย netdisco แล้วจึงมอนิเตอร์คอนฟิกที่เขาแก้ไปด้วย rancid ที่จะล็อกอินเข้าไปยังอุปกรณ์เพื่อเก็บความเปลี่ยนแปลงของคอนฟิกมาลง CVS เป็นระยะ
หลังจากนั้นทีมวิศวกรของ IETF เริ่มเปลี่ยนแปลงค่าต่างๆ เริ่มด้วยการปรับค่าความไวต่อสัญญาณฝั่ง "รับ" ของ AP ให้ต่ำลง, เพิ่มความเร็วต่ำสุดจาก 1Mbps เป็น 2Mbps ทำให้อุปกรณ์ต้องต่อเข้ากับ AP ที่ใกล้ตัวเองมากกว่า, ลดความแรงสัญญาณส่งลงเหลือ 10dBm จาก 20dBm, สุดท้ายคือการเพิ่มช่องสัญญาณจาก 3 ช่องปรกติ ที่มักใช้ 1, 6, 11 เป็น 1, 5, 9 ,13 แม้จะมีปัญหาการกวนกันระหว่างช่องสัญญาณบ้างและอุปกรณ์บางตัวไม่สามารถเชื่อมต่อที่ช่อง 13 ได้ แต่ก็ทำให้การจัดการทำได้ดีขึ้น จากนั้นทีมงานจึงเลือกเปลี่ยนโหมดการทำงานของ AP บางตัวให้เป็น 5GHz แทน
ทีมเน็ตเวิร์คทีมนี้คงหาจ้างไม่ได้ที่ไหนในโลก
ที่มา - NetworkWorld
ที่มา www.blognone.com
- ส่งไป yahoo.com ได้
- ส่งไป hotmail.com ได้บ้าง ไม่ได้บ้าง ตีกลับบ้าง
- ส่งไป gmail.com ไม่ได้เลย ตีกลับตลอด
ข้อความตีกลับมา ก็ประมาณนี้ :
This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: xxx@gmail.com SMTP error from remote mail server after end of data:
host gmail-smtp-in.l.google.com [209.85.225.27]:
550-5.7.1 [202.129.16.49] The IP you're using to send mail is not authorized to
550-5.7.1 send email directly to our servers. Please use the SMTP relay at your
550-5.7.1 service provider instead. Learn more at
550 5.7.1 http://support.google.com/mail/bin/answer.py?answer=10336 pa2si6663151igc.55 ------ This is a copy of the message, including all the headers. ------ Return-path:
Received: from localhost ([127.0.0.1] helo=www.napradu.go.th)
by s1.myhost.com with esmtpa (Exim 4.73)
(envelope-from)
id 1SDI7B-0006cP-5q
for xxx@gmail.com; Thu, 29 Mar 2012 23:22:21 +0700
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8;
format=flowed
Content-Transfer-Encoding: 7bit
Date: Thu, 29 Mar 2012 23:22:20 +0700
From: xxx@xxx.go.th
To:
Subject: =?UTF-8?Q?=E0=B8=97=E0=B8=94=E0=B8=AA=E0=B8=AD=E0=B8=9A=E0=B8=88?= =?UTF-8?Q?=E0=B8=B2=E0=B8=81=20softganz?=
Message-ID: <7f8a6ee0134f08296fbcd88e7b9deb7a@napradu.go.th>
X-Sender: xxx@xxx.go.th
User-Agent: Roundcube Webmail/0.7.2 Test
เท่าที่คาดไว้ สาเหตุ
CAT เปลี่ยนอะไรบางอย่าง ทำให้ต้องกำหนดค่า Reverse DNS (จากเดิมที่เคยส่งเมล์ได้เป็นปกติ) ก็เลยติดต่อไปทาง CAT แจ้งข้อมูลไป แล้วก็คอยอีก 2-3 วัน ได้ทราบว่ามีการกำหนดให้แล้ว ลองตรวจดูกับ www.mxtoolbox.com ปรากฏว่าเรียบร้อย แต่ก็ยังส่งไม่ผ่านอยู่ดี
อาจจะติด Black list เลยตรวจดูกับ ip-blacklist.e-dns.org ปรากฏว่าติดอยู่ 4 ที่ คือ Software Group Blackholes , APEWS Level 2 , Spamhaus PBL Policy Block List , Spamhaus ZEN Combined Block List ตัวที่คาดว่าอาจจะมีปัญหาคือ Spamhaus PBL Policy Block List
ลองเข้าไปตรวจสอบดูที่ Spamhaus PBL Policy Block List อ่านได้ความประมาณว่า IP เราเป็น IP Dynamic ซึ่งเป็น IP ที่ไม่สามารถส่งเมล์ออกได้ เลยทำการขอลบ IP ออก แล้วคอยอีกประมาณ 1 ชั่วโมง
ก็เริ่มจะส่งได้ hotmail.com ไปเข้า junk mail , gmail.com ไปเข้า junk mail ก็ยังดีที่ไม่โดน reject
ขั้นตอนการติดตั้ง
ดาวน์โหลด และติดตั้ง Eclipse
sudo apt-get install eclipse-jdt
หรือเปิด Ubuntu Software Center แล้วค้นหา eclipse-jdt แล้วก็ติดตั้งเสีย
ติดตั้ง ADT Plugin for Eclipse
- Go to Help->Install Software
- Click on "Available Software Sites"
- Set "check" on check box - http://download.eclipse.org/releases/helios (for helios - Eclipse 3.6 )
Click Add, in the top-right corner. In the Add Repository dialog that appears, enter "ADT Plugin" for the Name and the following URL for the Location:
https://dl-ssl.google.com/android/eclipse/
Click OK
บันทึก : หากมีปัญหาในการติดตั้ง ให้ลองเปลี่ยนเป็น http แทน https หากยังไม่ได้อีก ให้เข้าไปดาวน์โหลด ADT-17.0.0.zip (ไม่ต้องแตกไฟล์) แล้วเลือก Location เป็นไฟล์นี้แทน
In the Available Software dialog, select the checkbox next to Developer Tools and click Next.
In the next window, you'll see a list of the tools to be downloaded. Click Next. Read and accept the license agreements, then click Finish.
Note: If you get a security warning saying that the authenticity or validity of the software can't be established, click OK.
- When the installation completes, restart Eclipse.
แต่ที่เจ๋งกว่านั้นคือ AIDE - Android Java IDE