TwitThai

Home Planet Categories Categories

TwittBkk #1

  • Overview
  • Registration
  • Registrants

Search Engine

  • My tweet in 5/10/2008 - เตรียมสอบ podcamp และเลือกตั้งผู้ว่า กทม.
  • <b>Twitter</b> Updates for 2008-10-05
  • สาวปลาแห้ง*
  • <b>Twitter</b> Patterns &amp; <b>Twitter</b> Gallery
  • My tweet in 4/10/2008 - Improve and Update DailyTweet
more

Navigation

  • Recent posts
  • Planet
    • Categories
      • Blog
      • Search Engine
    • Sources

User login

  • Request new password
Powered by Drupal, an open source content management system

Blog

อะ เวย์

markpeak - Sun, 10/05/2008 - 03:17

ไม่อยู่สิบวัน

จะพยายาม geotagging ตัวเองผ่านทาง Twitter ถ้าค่ามือถือไม่กินตายไปเสียก่อน

Categories: Blog

Twitter T-shirt: the second edition

sugree - Tue, 09/30/2008 - 22:54

@molecularck is collecting a group of twitter-ers who want to have the second generation of Twitter t-shirt featuring FailWhale.

There is no final cost yet but it should be around 160 baht per piece. If you want to have one, please add your detail to this page. The design of this t-shirt is as follow.

source: TwitThai

Categories: Blog

Modern Radio: MCOT dot Net 2008-09-11 - Firefox and Twitter

sugree - Sat, 09/13/2008 - 22:29

เมื่อวันก่อนไปไว้อาลัย 9-11 ที่อ.ส.ม.ท.ในรายงาน MCOT dot Net มี @bact และ @kengggg ไปร่วมด้วย ดูเหมือนว่าผมจะเป็นตัวแถม เค้าจะคุยกันเรื่อง Firefox ต่อจากคราวก่อน ส่วนผมโผล่ไปคุยเรื่อง Twitter ไปถึงก่อนเวลานะ ฆ่าเวลาด้วยการเล่นรูบิค

ฟังย้อนหลัง

พึ่งเคยเข้าห้องออกอากาศวิทยุเป็นครั้งแรก ให้ความรู้สึกว่า... เปลี่ยนที่นินทา คุยกันอยู่ 3 คน ลืมไปแล้วว่ามีผู้ดำเนินรายการ รู้สึกผิดเล็กๆ ที่ทำให้ @Angkut แทบสำลัก และเจ็บใจ @bi89 นิดๆ ดันมาแฉออกอากาศ

สาระไม่ค่อยมี เน้นฮา รึเปล่าหว่า ที่แน่ๆ เวลาผ่านเร็วมาก ไม่ได้เรื่องได้ราว ลองฟังดูแล้วจะเข้าใจ (ผมยังไม่ได้ฟังเอง) คงต้องฟังเองมั๊ง

Categories: Blog

Ambient Awareness: Why People Tweet

markpeak - Sun, 09/07/2008 - 09:50

Brave New World of Digital Intimacy

This fascinating article from NYT about Facebook news feed and twitter/microblogging answers almost (if not all) of my questions: why people tweet?

The short answer is new technical term called ambient awareness.

I’ll try to describe a longer answer with my new & experimental writing technique: ‘ambient writing’ (a new catchphrase for ‘lazy copy & paste’). Anyway, with my own emphasis and quick thought.

It is, they say, very much like being physically near someone and picking up on his mood through the little things he does — body language, sighs, stray comments — out of the corner of your eye.

because a blog post is usually a written piece, sometimes quite long: a statement of opinion, a story, an analysis. But these new updates are something different. They’re far shorter, far more frequent and less carefully considered.

Example.

Each so-called tweet was so brief as to be virtually meaningless. But as the days went by, something changed. Haley discovered that he was beginning to sense the rhythms of his friends’ lives in a way he never had before.

Yet another example :P

Each little update — each individual bit of social information — is insignificant on its own, even supremely mundane. But taken together, over time, the little snippets coalesce into a surprisingly sophisticated portrait of your friends’ and family members’ lives, like thousands of dots making a pointillist painting.

Right. Now we all can predict when @sugree wakes up, leaves home and goes to bed.

This was never before possible, because in the real world, no friend would bother to call you up and detail the sandwiches she was eating.

If one does, we call him/her “เสือก”.

The ambient information becomes like “a type of E.S.P.,” as Haley described it. “It’s like I can distantly read everyone’s mind,” Haley went on to say.

IMO, @pphetra masters this skill. If you don’t know him, then follow him.

It can also lead to more real-life contact, because when one member of Haley’s group decides to go out to a bar or see a band and Twitters about his plans, the others see it, and some decide to drop by — ad hoc, self-organizing socializing.

Right. I have seen several go-for-movie appointments on my twittersphere.

And when they do socialize face to face, it feels oddly as if they’ve never actually been apart. They don’t need to ask, “So, what have you been up to?” because they already know. Instead, they’ll begin discussing something that one of the friends Twittered that afternoon, as if picking up a conversation in the middle.

All of my twitter friends seem to know about @kengggg’s dog.

“No message is the single-most-important message. It’s sort of like when you’re sitting with someone and you look over and they smile at you. You’re sitting here reading the paper, and you’re doing your side-by-side thing, and you just sort of let people know you’re aware of them.”

I just wonder how does it compare with old school IRC? I’ve never be an IRC addict before.

Yet it is also why it can be extremely hard to understand the phenomenon until you’ve experienced it.

Just sign up a twitter account now.

Merely looking at a stranger’s Twitter or Facebook feed isn’t interesting, because it seems like blather. Follow it for a day, though, and it begins to feel like a short story; follow it for a month, and it’s a novel.

Is it the same as witnessing a celebrity’s life via gossip magazine and paparazzi?

the growing popularity of online awareness as a reaction to social isolation, the modern American disconnectedness

The mobile workforce requires people to travel more frequently for work, leaving friends and family behind, and members of the growing army of the self-employed often spend their days in solitude. Ambient intimacy becomes a way to “feel less alone,”

That’s exactly what I said in my attempt to explain Twitter.

awareness tools aren’t as cognitively demanding as an e-mail message. E-mail is something you have to stop to open and assess. It’s personal; someone is asking for 100 percent of your attention. In contrast, ambient updates are all visible on one single page in a big row, and they’re not really directed at you. This makes them skimmable, like newspaper headlines; maybe you’ll read them all, maybe you’ll skip some.

IM is more like email. It just real-time email, someone still wants your attention. Microblogging/feed are different.

After following Seery’s Twitter stream for a year, I’m more knowledgeable about the details of her life than the lives of my two sisters in Canada, whom I talk to only once every month or so.

As mentioned above, we all know how @sugree’s life is.

their sociality had truly exploded was in their “weak ties” — loose acquaintances, people they knew less well.

Sociologists have long found that “weak ties” greatly expand your ability to solve problems. For example, if you’re looking for a job and ask your friends, they won’t be much help; they’re too similar to you. Remote acquaintances will be much more useful, because they’re farther afield, yet still socially intimate enough to want to help you out.

I heard someone, probably @sunit, mentioned this phrase before. Need to check.

“I outsource my entire life,” she said. “I can solve any problem on Twitter in six minutes.”

The latest question I asked was “what is the Guyver Unit called in English?” I think answers came in 5 mins and from 3-4 people.

awareness tools like News Feed might be creating a whole new class of relationships that are nearly parasocial

“The information we subscribe to on a feed is not the same as in a deep social relationship,”

‘You’re being very nice and trying to help me, but though you feel like you know me, you don’t.’ ” Boyd sighed. “They can observe you, but it’s not the same as knowing you.”

Do you know me? or just suppose-to-know?

“These technologies allow you to be much more broadly friendly, but you just spread yourself much more thinly over many more people.”

a common plague of Facebook: the recent ex.

Yet Ahan knows that she cannot simply walk away from her online life, because the people she knows online won’t stop talking about her, or posting unflattering photos. She needs to stay on Facebook just to monitor what’s being said about her.

Never tries that with Thai friends and Hi5. I simply can’t stand glittering profile page.

This is a common complaint I heard, particularly from people in their 20s who were in college when Facebook appeared and have never lived as adults without online awareness. For them, participation isn’t optional.

True but again, I don’t use Hi5.

If you don’t dive in, other people will define who you are. So you constantly stream your pictures, your thoughts, your relationship status and what you’re doing — right now! — if only to ensure the virtual version of you is accurate, or at least the one you want to present to the world.

Definitely true. Everyone who read my blog has their own ‘perception’ of me. Some say I’m good, some say I’m too mean. Which one is the real me?

It brings back the dynamics of small-town life, where everybody knows your business.

Indeed, our modern awareness tools reverse the original conceit of the Internet. When cyberspace came along in the early ’90s, it was celebrated as a place where you could reinvent your identity — become someone new.

This is interesting. The previous books about internet might be already obsoleted. Anonymity can be canceled by the power of network?

‘On the Internet, nobody knows you’re a dog’? On the Internet today, everybody knows you’re a dog!

Could I be a seal instead of dog? How about cat or rabbit?

“Can you imagine a Facebook for children in kindergarten, and they never lose touch with those kids for the rest of their lives? What’s that going to do to them?”

Once a while ago, I tweeted:

“Dad, how did you meet mom?”
“Twitter”

Categories: Blog

Tweet to Text 3

sugree - Thu, 09/04/2008 - 12:39

It seems Python on non-linux platform, e.g., Mac and Windows, doesn't support Unicode so well. I added another option to specify target encoding if necessary and the default encoding is 'utf-8'. This patch is against Tweet to Text 2.

  • --encoding=utf-8 - to specify encoding match your terminal.
diff --git a/track.py b/track.py
index e651f51..1842e61 100644
--- a/track.py
+++ b/track.py
@@ -52,6 +52,9 @@ class App:
         parser.add_option('-p', '--pages',
                           default=4, type='int', dest='pages',
                           help='max pages')
+        parser.add_option('--encoding',
+                          default='utf-8', dest='encoding',
+                          help='output encoding')
 
         self.options, self.args = parser.parse_args()
 
@@ -81,7 +84,8 @@ class App:
 
         history.reverse()
         for i in history:
-            print format_tweet(i)
+            tweet = format_tweet(i)
+            print tweet.encode(self.options.encoding, 'replace')
 
         if verbose:

Full code:

#!/usr/bin/env python
 
from urllib import urlencode
from urllib2 import urlopen, HTTPCookieProcessor, build_opener, install_opener, Request
from optparse import OptionParser
import time
from datetime import datetime
 
import simplejson
 
cookie_processor = HTTPCookieProcessor()
opener = build_opener(cookie_processor)
install_opener(opener)
 
api_url = 'http://search.twitter.com/search.json'
results_per_page = 100
verbose = False
 
def search(q, data=None):
    if not data:
        data = urlencode({'q': q,
                          'rpp': results_per_page})
    if verbose:
        print data
    req = Request(api_url, data)
    fd = urlopen(req)
    results = simplejson.loads(fd.read())
    return results
 
def unescape(t):
    t = t.replace('&quot;', '"')
    t = t.replace('&amp;', '&')
    return t
 
def format_tweet(t):
    created_at = datetime.fromtimestamp(time.mktime(
                 time.strptime(t['created_at'][:-6], '%a, %d %b %Y %H:%M:%S'))-
                 time.timezone)
    return '(%s) %s: %s' % (created_at.strftime('%H:%M'),
                            t['from_user'],
                            unescape(t['text']))
 
class App:
    def __init__(self):
        parser = OptionParser()
        parser.add_option('-v', '--verbose',
                          default=False, action='store_true', dest='verbose',
                          help='verbose')
        parser.add_option('-r', '--rpp',
                          default=20, type='int', dest='rpp',
                          help='results per page')
        parser.add_option('-p', '--pages',
                          default=4, type='int', dest='pages',
                          help='max pages')
        parser.add_option('--encoding',
                          default='utf-8', dest='encoding',
                          help='output encoding')
 
        self.options, self.args = parser.parse_args()
 
        global verbose, results_per_page
        verbose = self.options.verbose
        results_per_page = self.options.rpp
 
    def run(self):
        keys = {}
        history = []
        query = ' '.join(self.args)
        results = search(query)
        for i in results['results']:
            if i['id'] not in keys:
                history.append(i)
                keys[i['id']] = 1
 
        for p in range(self.options.pages-1):
            if 'next_page' not in results:
                break
            next_page = results['next_page']
            results = search(query, next_page[1:])
            for i in results['results']:
                if i['id'] not in keys:
                    history.append(i)
                    keys[i['id']] = 1
 
        history.reverse()
        for i in history:
            tweet = format_tweet(i)
            print tweet.encode(self.options.encoding, 'replace')
 
        if verbose:
            print len(history)
 
if __name__ == '__main__':
    app = App()
    app.run()
Categories: Blog

Tweet to Text 2

sugree - Wed, 09/03/2008 - 13:35

Because of my debate, I found a duplication bug in Tweet to Text that led me to post the fix here.

diff --git a/track.py b/track.py
index ea27c2f..e651f51 100644
--- a/track.py
+++ b/track.py
@@ -65,7 +65,9 @@ class App:
         query = ' '.join(self.args)
         results = search(query)
         for i in results['results']:
-            history.append(i)
+            if i['id'] not in keys:
+                history.append(i)
+                keys[i['id']] = 1
 
         for p in range(self.options.pages-1):
             if 'next_page' not in results:
@@ -73,7 +75,9 @@ class App:
             next_page = results['next_page']
             results = search(query, next_page[1:])
             for i in results['results']:
-                history.append(i)
+                if i['id'] not in keys:
+                    history.append(i)
+                    keys[i['id']] = 1

After patched:

#!/usr/bin/env python
 
from urllib import urlencode
from urllib2 import urlopen, HTTPCookieProcessor, build_opener, install_opener, Request
from optparse import OptionParser
import time
from datetime import datetime
 
import simplejson
 
cookie_processor = HTTPCookieProcessor()
opener = build_opener(cookie_processor)
install_opener(opener)
 
api_url = 'http://search.twitter.com/search.json'
results_per_page = 100
verbose = False
 
def search(q, data=None):
    if not data:
        data = urlencode({'q': q,
                          'rpp': results_per_page})
    if verbose:
        print data
    req = Request(api_url, data)
    fd = urlopen(req)
    results = simplejson.loads(fd.read())
    return results
 
def unescape(t):
    t = t.replace('&quot;', '"')
    t = t.replace('&amp;', '&')
    return t
 
def format_tweet(t):
    created_at = datetime.fromtimestamp(time.mktime(
                 time.strptime(t['created_at'][:-6], '%a, %d %b %Y %H:%M:%S'))-
                 time.timezone)
    return '(%s) %s: %s' % (created_at.strftime('%H:%M'),
                            t['from_user'],
                            unescape(t['text']))
 
class App:
    def __init__(self):
        parser = OptionParser()
        parser.add_option('-v', '--verbose',
                          default=False, action='store_true', dest='verbose',
                          help='verbose')
        parser.add_option('-r', '--rpp',
                          default=20, type='int', dest='rpp',
                          help='results per page')
        parser.add_option('-p', '--pages',
                          default=4, type='int', dest='pages',
                          help='max pages')
 
        self.options, self.args = parser.parse_args()
 
        global verbose, results_per_page
        verbose = self.options.verbose
        results_per_page = self.options.rpp
 
    def run(self):
        keys = {}
        history = []
        query = ' '.join(self.args)
        results = search(query)
        for i in results['results']:
            if i['id'] not in keys:
                history.append(i)
                keys[i['id']] = 1
 
        for p in range(self.options.pages-1):
            if 'next_page' not in results:
                break
            next_page = results['next_page']
            results = search(query, next_page[1:])
            for i in results['results']:
                if i['id'] not in keys:
                    history.append(i)
                    keys[i['id']] = 1
 
        history.reverse()
        for i in history:
            print format_tweet(i)
 
        if verbose:
            print len(history)
 
if __name__ == '__main__':
    app = App()
    app.run()

I love git!

Categories: Blog

Twitter Debate - Chrome is open source?

sugree - Wed, 09/03/2008 - 13:20

หลังจาก Tweet to Text และ Twitter Debate ดูเหมือนว่าดีเบตจะได้รับความนิยมมากขึ้น วันนี้ตอนสายๆ มีอีกหนึ่งวง วงนี้ใหญ่หน่อย มันเริ่มจากแค่ Chrome มาจบที่ mindset สนุกดี

ไม่ได้ตัด เพราะขี้เกียจ ลองอ่านเล่นๆ เอาไอเดีย

(11:11) sugree: @deans4j imo, the problem is "logic"
(11:12) sugree: who's next?
(11:15) sugree: @kengggg or moz.in.th. imo, shorter is better
(11:15) sugree: @deans4j แบบว่าทุกคนใช้ logic แปลก มันไม่เป็นธรรมชาติ เหมือนมันขัดความรู้สึกยังไงชอบกล
(11:16) sugree: @nopparat so scary. แกงกะหรี่ไข่วัว
(11:20) sugree: @makissy the place that you drink don't drive
(11:21) sugree: @phisite i agree. cool anyway
(11:21) sugree: @Oakyman i guess dotarai will offer for free
(11:27) sugree: @nopparat it's fast
(11:28) sugree: @kengggg register now before someone take it
(11:35) chanwit: google chrome seems to be not real opensource?
(11:35) sugree: @kengggg not your money anyway. lol
(11:36) sugree: @chanwit it's open you can checkout
(11:36) sugree: @chanwit but not now. svn fall down last night
(11:36) sugree: reading emails
(11:36) sugree: oh. so many emails
(11:37) chanwit: @sugree it's open, but seems to be not with the opensource spirit
(11:38) chanwit: @sugree mozilla looks more freedom
(11:39) sugree: @chanwit lol. it's google way. you can contribute. and then fork if necessary
(11:39) sugree: @chanwit no. i think they are the same. not real open
(11:40) sugree: parliament dissolve?
(11:40) chanwit: @sugree but with moziila, you can push something in easier than google's model i think.
(11:40) sugree: simply dissolve
(11:40) sugree: and pad will be back after election
(11:40) sugree: what's pad want?
(11:41) sugree: just let them be a part of cabinet
(11:41) chanwit: @sugree for example, it said it's opensourcing #chromium not #chrome
(11:41) sugree: @chanwit it's ok as long as chrome let us develop plugin. it's google style open source
(11:42) sugree: @chanwit if they want some feature you made, they will hire you anyway
(11:42) chanwit: @sugree we need someone to finally fork it. lol
(11:43) sugree: @chanwit yes. it open chromium. after compiled, we get chrome.
(11:43) chanwit: @sugree um.. propbably that's their model
(11:43) sugree: @chanwit just fork chrome+firefox
(11:43) sugree: chromefox!
(11:44) chanwit: @sugree chromefox is a good name
(11:44) p_warawit: drafting data sourcing plan and architecture. Drawing finished, now the boring part - describes it.
(11:44) sugree: @mobilebomb that's why twitter is great
(11:45) chanwit: @sugree are we debating ? lol
(11:45) chanwit: @sugree but we've come up with a good conclusion
(11:47) sugree: @chanwit lol. it's about logic. like i mention earlier
(11:48) sugree: @baramunchies someone will do it definitely
(11:51) sugree: oops! i passed 60k milestone silently
(11:52) pphetra: @sugree and mindset
(11:52) sugree: oh. i forget to tweet a cool thing
(11:53) sugree: @pphetra you are right. logic + mindset we need in thailand right now definitely
(11:56) chanwit: @pphetra @sugree logic and mindset looks to be IQ + EQ ?
(11:56) sugree: @somsak ok. i will
(11:56) sugree: @chanwit EQ != mindset
(11:56) chanwit: logic reflects your intelligence ? and mindset reflects your emotion?
(11:56) sugree: mindset != emotion
(11:56) chanwit: lol. my logic is not good enough to have this concluded correctly.
(11:57) sugree: emotion doesn't relate to logic
(11:57) sugree: logic for me is common sense
(11:57) chanwit: @sugree EQ reflects mindset, and vice versa?
(11:57) sugree: just follow your heart
(11:58) sugree: @chanwit really? hmm. what is mindset?
(11:58) chanwit: you have a high EQ, you have a belief then you use EQ to control your belief ?
(11:59) sugree: mindset is something inside instinct. i guess
(11:59) sugree: don't do something because of emotion. emotion-driven approach is not good
(12:00) sugree: logic-driven is the must
(12:01) chanwit: what's on logic side? you've got a high IQ meaning that you're easier to draw your logic? probably yes.
(12:01) sugree: or in short, the problem now is thai ppl's basic instinct
(12:01) sugree: @nopparat ah. cool. unimind is centralized approach
(12:02) sugree: IQ may represent logic as well as common sense
(12:02) chanwit: @nopparat what's about now? p2p?
(12:02) chanwit: p2p is a good approach, but for make it work we still need "a tracker"
(12:03) sugree: EQ is the emotional stability
(12:03) chanwit: @deans4j lol
(12:03) sugree: @chanwit distributed-mind
(12:03) sugree: pad is unimind
(12:04) sugree: @chanwit use distributed hash to avoid centralized component
(12:05) pphetra: mindset -&gt; the established set of attitudes held by someone.
(12:05) sugree: since pad is unimind, killing the god hand might destroy the whole community
(12:05) sugree: @pphetra thanks. it's clear now.
(12:05) sugree: mindset is actually brainwash
(12:07) sugree: i used to think "is there any subliminal messages in astv?"
(12:07) sugree: it's not easy to change someone mindset
(12:08) DrRider: @kengggg moz.in.th sounds like mosquito?
(12:08) sugree: dmc and astv are the big success cases
(12:09) chanwit: is it faith?
(12:09) DrRider: @kengggg oops, too late :P
(12:09) sugree: it would be nice if we can reproduce dmc and astv to promote foss in thailand
(12:09) chanwit: belief or faith ?
(12:10) sugree: @chanwit not just faith i guess. mindset is the way you think. not just what you believe.
(12:10) DrRider: @kengggg I hate Starbucks
(12:11) DrRider: @sugree in which scale that is using to measure EQ?
(12:11) sugree: mindset is a neural network
(12:11) DrRider: @sugree propaganda
(12:11) sugree: @DrRider i don't know much about EQ. it's new way to measure emotional stability
(12:12) sugree: @DrRider don't trust me. my IQ is not so high.
(12:12) chanwit: @deans4j i don't know
(12:12) sugree: @DrRider ah. propaganda
(12:13) DrRider: @kengggg I bought an espresso machine, making espresso at home
(12:13) sugree: to measure EQ, they just let us answer the question. something about making decision in many situations
(12:13) DrRider: want espresso? make your own :P
(12:13) sugree: very similar to IQ?
(12:14) sugree: and the score is a number. not more than that
(12:14) bact: จัดห้อง หนังสือกองโต -- (um) in msn/im name for no PM from holysky.
(12:14) DrRider: @deans4j wow = World of Warcraft?
(12:15) DrRider: @wiennat good idea
(12:15) sugree: @wiennat no. we should attack astv to link duocore/fukduk to feed over 2M subscribers
(12:15) DrRider: way to 2000 tweet
(12:16) DrRider: 30 more tweets
(12:16) DrRider: @deans4j never played that game, though :P
(12:17) sugree: propaganda is a way to change mindset
(12:17) sugree: propaganda+tv = perfect mindset machine
(12:17) DrRider: @kengggg Starbucks is very overprice for Thai
(12:18) sugree: so mindset is the secret behind logic
(12:19) p_warawit: today I heard a lot about Google Chrome.
(12:19) chanwit: I'm probably getting it clearer about mindset
(12:19) DrRider: Why doesn't anybody open Moonbucks or Starbugs, selling resemble products as Starbucks
(12:20) DrRider: Like most Thai people do with Windows Vista
(12:21) DrRider: but for 20 baht for a grande of Latte :P
(12:21) sugree: debate done?
(12:22) chanwit: @sugree i'm not in a good condition to continue. i need more info.
(12:23) pphetra: @sugree propaganda + book + trust -&gt; longer effect (tv -&gt; short term effect)
(12:23) p_warawit: @sugree mindset is perceptions, values, beliefs we take it for granted and never question it.
(12:23) sugree: @chanwit lol. me too. end here
(12:25) chanwit: cool @pphetra and @p_warawit give some useful thoughts and definition
(12:25) sugree: @p_warawit never question? hmm. very interesting. i never think about that
(12:25) sugree: that's because of my mindset. lol
(12:26) sugree: @pphetra in thailand? oh. there are many books blamed thaksin.
(12:28) sugree: @PURErikU we are discussing about yesterday debate
(12:31) sugree: @deans4j it's knowledge?
(12:33) p_warawit: An example of different mindset, Westerner - competition is good. Asian - compromise is good.
(12:34) bact: @simplywit Cafe Country, Nimmanhemin, CM
(12:35) p_warawit: internet connection is so bad today. How can I work from home effectively?
(12:35) sugree: @p_warawit very clear
(12:35) sugree: so what's pad's mindset? what's gov's mindset? what's coup's mindset?
(12:36) bact: @sugree it could be know-ledge, but never discover-ledge. passively-2nd-tier kind of know.
(12:38) sugree: @bact ok. indirect knowledge
(12:39) sugree: how to derive mindset?
(12:40) bact: http://twitpic.com/a29i - don't worry about pipewater ppl, they are not yellow (yet?)
(12:44) p_warawit: to change mindset - current values & beliefs have to be broke first. it's simply 'discredit' , if they would listen.
(12:46) sugree: @p_warawit so what pad did was to change mindset by discrediting thaksin
(12:46) p_warawit: what's more feasible is change it when 'extreme experience' happen thus shaken a person's current beliefs.
(12:48) p_warawit: @sugree I believe so. If you are listening to ASTV long enough and listen to nothing else - soon you'll be come PAD. I'll be as well.
(12:55) sugree: reading feeds
(12:57) pphetra: competitive mindset ("I win, you lose"), a beaten-down mindset ("I give up, do what you want to me")
(12:59) p_warawit: I've got an email for invitation to ITU on Friday. Who wants it?
(12:59) bact: http://twitpic.com/a2ap - err.. (con)fusion food
(13:02) p_warawit: oops ... afternoon meeting.
(13:03) sugree: mindset it is
Categories: Blog

Twitter Debate

markpeak - Tue, 09/02/2008 - 14:45

เมื่อเช้าตามเวลาเมืองไทย (หรือดึกตามเวลาผม) ได้ดีเบตทางการเมืองผ่าน Twitter กับคุณ @vuthi แห่งบริษัท metamedia (บล็อก) คิดว่าบทสนทนาน่าสนใจ เลยอยากจดเก็บไว้

ขอบคุณ @sugree ที่ช่วยเขียนโปรแกรมดูดข้อความออกมาให้ ผมคงแปะไว้เฉยๆ ไม่สรุปอะไรเพื่อลดการชี้นำ ข้อความทั้งหมดไม่มีการ edit แต่อย่างใด ใช้วิจารญาณในการอ่านเอาเองนะครับ ถ้าใครรู้จักพี่แก ฝากช่วยบอกว่ายังติดตอบคำถามผมอยู่สองข้อ จะมาตอบในนี้หรือใน Twitter ก็ได้ครับ

หมายเหตุ: อาจมีคนสงสัยที่ผมถามเรื่อง iPhone ที่มาดูตามนี้

(03:49) vuthi: นักข่าว No Brain TV ท่าจะมีภูมิคุ้มกันแก้สน้ำตา
(03:50) vuthi: อยากจะเอาไปฝาก แต่จะหาได้จากไหนเนี่ย

...

(00:17) vuthi: ประกาศภาวะฉุกเฉินในกทม !
(00:25) vuthi: รบ. ขนคนมา มอมเหล้ามอมยา ยุให้ทะเลาะกับ พธม.
(00:26) vuthi: แล้วประกาศ พรก. ฉุกเฉิน หาเรื่องให้คนเกลียดมัน
(00:28) markpeak: พธม. ขนคนมา มอมใบกระท่อม ยุให้บุกสถานที่ราชการ
(00:29) markpeak: แล้วประกาศ ห้ามรุนแรง หาเรื่องให้คนเกลียดมัน
(00:38) markpeak: @moui แฟน พธม. ใน twitter คงดีใจกระมังครับ
(00:38) vuthi: @markpeak ก็ต้องรอดูว่าใครจะโดนเกลียดมากกว่ากัน :)
(00:41) markpeak: @vuthi ลองถามใน twitter ดูสิครับ
(00:42) vuthi: โรงเรียนในสังกัด กทม. หยุดเรียน
(00:43) markpeak: เลือกตั้งแพ้เขา <--- อ่อนเอง <--- ออกมาเต้น <--- กินใบกระท่อม
(00:46) markpeak: @moui ใบกระท่อมเป็นสมุนไพรครับ
(00:47) markpeak: @moui ไม้กอล์ฟเป็นเครื่องกีฬา
(00:48) vuthi: @markpeak เชื่อหรือว่าไม่มีการซื้อเสียง ?
(00:50) markpeak: @vuthi เชื่อครับ แล้วไงต่อ
(00:51) vuthi: @markpeak การเข้าสู่อำนาจ (เลือกตั้ง) เป็นเพียงส่วนหนึ่งของประชาธิปไตย
(00:53) markpeak: @vuthi แล้วไงต่อครับ? แต่งตั้ง?
(00:55) vuthi: หากมีการใช้อำนาจที่ไม่ถูกต้อง ปชช มีสิทธิต่อต้าน
(00:55) vuthi: ไม่ได้หมายความว่าจะให้เข้าสู่อำนาจในลักษณะอื่น
(00:56) markpeak: @vuthi แน่ใจนะครับ
(00:56) markpeak: รอบก่อนก็เชิญทหารมานี่นา
(00:58) markpeak: @pittaya you're ชนชั้นกลาง
(00:58) markpeak: ห้ามโกงเลือกตั้ง แต่รปห. ได้ บุก NBT ได้
(00:58) vuthi: เมื่อกี้คือคำอธิบายของข้อความก่อนหน้า
(00:59) vuthi: แต่ถ้าถามความเห็นเรื่องระบอบการปกครอง
(00:59) markpeak: @vuthi ตอนทหารครองเมือง ไม่ออกมาต้าน?
(00:59) vuthi: เราถูกปลูกฝัง มาให้ชื่นชอบประชาธิปไตย
(01:00) markpeak: สพรั่งกิน TOT/การท่า ตกข่าว?
(01:00) markpeak: เขายายเที่ยง ทำลืม?
(01:00) vuthi: โดยไม่ได้ดูให้ดีกว่าเราพร้อม/เหมาะ กับมันหรือไม่
(01:01) vuthi: สิ่งที่ใช้ได้ดีในยุโรป อาจจะใช้ไม่ได้ดีในประเทศอื่น
(01:02) markpeak: @vuthi เราควรจะเผด็จการ?
(01:02) vuthi: โอเค เรื่องคนทำผิด มีทั้งสองฝ่าย
(01:02) vuthi: ถ้าจะเอามาเรียงกัน ดูน้ำหนักความผิด
(01:02) vuthi: ฝ่ายไหนมากกว่ากัน ?
(01:03) markpeak: @vuthi ผิดทั้งคู่ ไม่ลงโทษทั้งคู่?
(01:03) markpeak: ผิดมาก ลงโทษมาก ผิดน้อย ลงโทษน้อย
(01:04) markpeak: @vuthi พี่ยังไม่ตอบคำถามผมสักข้อเลย
(01:04) markpeak: ขอข้อเดียว ปชต. ใช้ไม่ได้ แล้วควรทำยังไง?
(01:05) vuthi: ฝ่ายไหนผิดกว่า ทำให้ประเทศชาติเดือดร้อนกว่า
(01:05) vuthi: ผมก็ต่อต้านฝ่ายนั้น
(01:07) vuthi: บางทีผมก็คิดว่า เผด็จการแบบเมืองจีน ยังดีกว่า
(01:07) markpeak: @vuthi ความผิดวัดกันเป็นตัวเลข?
(01:07) vuthi: หรือไม่ก็ประชาธิปไตย+เผด็จการนิดๆ
(01:08) markpeak: เราควรต่อต้านคนที่ผิดที่สุดคนเดียว?
(01:08) vuthi: ผมเห็นว่าทหารทำถูกแล้วที่ล้มทักษิณ ก็ไม่ต้าน
(01:08) vuthi: ผมไม่ได้หลงไหลในประชาธิปไตยโดยไม่ลืมหูลืมตา
(01:08) markpeak: ถ้าแบบนั้นผมขอเป็นที่สอง?
(01:09) vuthi: ทุกอย่าง เหมาะสม หรือไม่ขึ้นกับเวลาและสถานการณ์
(01:10) markpeak: @vuthi โอเคครับ ผมเข้าใจแล้วว่าพี่ชอบเผด็จการ ไม่ค้านละ ทราบจุดยืน
(01:10) vuthi: ความเสียหาย เปรียบเทียบขนาดกันได้
(01:10) markpeak: ต่อไปผมจะโกงให้เก่งเป็นอันดับสองของประเทศ
(01:10) markpeak: จะได้ไม่เป็นศัตรูกับพี่
(01:11) markpeak: หรือไม่ก็ประชาธิปไตย+เผด็จการนิดๆ --> ไม่ได้แปลว่า เผด็จการเหรอ
(01:12) markpeak: @vuthi ขอตัวเลขหน่อยครับ ความเสียหายกี่ล้าน
(01:14) markpeak: ถ้าชอบจีน ก็ควรจะชอบล้อมปราบ?
(01:14) vuthi: ถ้ากำจัดโกงอันดับหนึ่งได้ ย่อมดีต่อประเทศกว่าอันดับสอง
(01:14) vuthi: ตัวเลข ก็ไปดูจากคดีต่างๆได้
(01:14) markpeak: ทักษิณเป็นเผด็จการสภา รักตายเลย?
(01:15) vuthi: ถ้า ผู้ปกตรองไม่มีปัญหา ก็ไม่มีคนมาต่อต้าน ไม่ต้องปราบ
(01:15) markpeak: ขอตัวเลขรวมสิครับ ฝ่ายไหนทำชาติเสียหายเท่าไร
(01:15) markpeak: ถ้ามีตัวเลข ผมพร้อมจะเชื่อพี่ทันที
(01:16) markpeak: วัดได้ พิสูจน์ได้ ทำไมจะไม่เชื่อ
(01:16) markpeak: ขอตัวเลขแค่สองตัว เท่านั้น
(01:16) vuthi: กรุณาอย่าเอาคำไปโยงมั่ว กับเผด็จการสภา
(01:16) markpeak: ฝ่ายไหนโกงมากกว่า เท่าไร
(01:17) markpeak: เผด็จการก็คือเผด็จการ ไม่ฟังเสียงข้างน้อย
(01:17) vuthi: กำลังจะบอกว่า ทักษิณทำเสียหาย น้อยกว่าทหารยึดอำนาจ ?
(01:17) markpeak: ชอบเผด็จการ ก้ควรชอบทุกแบบ
(01:18) vuthi: ผมบอกแล้ว ทุกอย่างเหมาะสมหรือไม่ขึ้นกับเวลาและสถานการณ์
(01:19) vuthi: ทำไมชอบเผด็จการต้องชอบทุกรูปแบบ
(01:20) markpeak: @vuthi อ้าว ถ้ามากกว่า ขอ proof หน่อยสิครับ
(01:20) markpeak: ตอนพี่เรียน dr เค้าไม่ได้สอนให้มี citation?
(01:20) markpeak: ถ้าผมบอกว่า ตอนนี้ ปชต.​เหมาะสมล่ะครับ
(01:23) markpeak: ถ้าชอบบางแบบ ไม่เลือกปฏิบัติ?
(01:24) vuthi: ผมเชื่อว่ามากกว่า ผมจึงปฏิบัติเช่นนี้
(01:24) vuthi: ถ้าน้อยกว่าก็ขอ proof เหมือนกัน
(01:26) markpeak: ผมไม่ได้บอกว่าไม่เชื่อนี่ครับ ยังไม่ได้เชื่อใครเลย
(01:26) markpeak: กำลังอยากจะเชื่อ ขอแค่ proof
(01:26) markpeak: "เชื่อว่ามากกว่า" เพราะอะไร?
(01:26) markpeak: เพราะฟังเขามา?
(01:26) vuthi: และเชื่อว่า เอาผู้นำที่ไร้ศีลธรรมลง คุ้มกว่าความเสียหายทางเศรษฐกิจ
(01:28) markpeak: พี่บอกว่าวัดได้ ไม่มีเลข
(01:28) markpeak: ไม่มี proof
(01:28) markpeak: ตอนเรียน dr เค้าไม่ว่าเหรอครับ
(01:29) vuthi: ผมบอกว่าเปรียบเทียบได้ ซึ่งไม่จำเป็นต้องเปรียบด้วยตัวเลข
(01:30) markpeak: อ้าว แล้วเปรียบเทียบอย่างไร นั่งทางในเอา?
(01:30) markpeak: ขูดต้นไม้แล้วมันบอก?
(01:31) vuthi: เชื่อจาก ข้อมูลที่ได้รับ เห็น วิเคราะห์ พูดคุย
(01:32) markpeak: ขอข้อมูลที่ว่าหน่อยสิครับ
(01:32) markpeak: ลิงก์ก็ได้
(01:32) vuthi: น้องเอ๋ย ยังมีอีกหลายสิ่งที่ในระบบการศึกษาเค้าไม่สอน
(01:32) markpeak: ผมตกข่าว อยากได้ข้อมูลเดียวกัน
(01:32) markpeak: เราเชื่อได้ไงว่าข้อมูลจริง?
(01:33) markpeak: ถ้าพนักงานพิมพ์ดีด พิมพ์ 0 ตก
(01:33) markpeak: ตายห่าเลย MGR ชอบพิมพ์ผิด
(01:33) markpeak: ผู้นำมีเมีย 5 คนนี่มีศีลธรรมหรือเปล่าครับ?
(01:34) markpeak: ผู้นำหนีหมายศาล มีศีลธรรมปะครับ
(01:34) vuthi: ใจเย็นๆ อย่าเพิ่งถากถางมาก
(01:35) markpeak: อ้าว พี่ไม่ตอบผมเลย?
(01:35) markpeak: เลี่ยงคำถามหรือเปล่าครับ
(01:35) markpeak: จริงๆ ตอบข้อเดียวพอ ขอเลข 2 ตัว
(01:35) markpeak: ทักษิณ​โกงเท่าไร ทหารเท่าไร
(01:35) vuthi: ฟังข้อกล่าวหา ฟังข้อแก้ตัว แล้ววิเคราะห์เองว่าจะเชื่อใคร
(01:37) vuthi: ผมไม่ได้บอกว่าเกลียดทักษิณเพราะโกงมากกว่าทหาร
(01:37) markpeak: ถ้าตอบได้ ผมก็พร้อมจะย้ายข้างนะครับ
(01:37) vuthi: แต่เกลียดเพราะทำความเสียหายมากกว่าทหาร
(01:37) vuthi: ความเสียหายไม่ได้วัดเฉพาะตัวเลข แต่รวมถึงการเปลี่ยนแปลงกฏหมาย
(01:38) markpeak: มากกว่าแค่ไหน
(01:38) markpeak: ผมถามหลายรอบแล้วเนี่ย
(01:38) vuthi: การทำตัวที่ไม่อยู่ในศีลธรรม ไม่เป็นผู้นำที่ดี
(01:38) markpeak: ง่วงแล้วเนี่ย
(01:38) markpeak: ความเสียหาย เท่าไร
(01:39) markpeak: หรือว่าความเสียหายเป็น relativity?
(01:39) vuthi: ความเสียหายไม่จำเป็นต้องบอกว่าเท่าไร ในหัวมีแต่เงินหรือไง ?
(01:39) markpeak: มีเมีย 5 คน ผิดศีลธรรมไหมครับ?
(01:39) vuthi: ฆ่าคนตาย เสียหาย เท่าไร ?
(01:40) markpeak: อ้าว ไม่ได้บอกว่าเป็นเงินนี่ครับ ตอบเป็นคนก็ได้
(01:40) vuthi: บางสิ่งก็ไม่สามารถตีเป็นตัวเลขได้ จริงมะ
(01:41) markpeak: ผู้นำที่ดี คือใคร
(01:41) markpeak: ทักษิณ ฆ่า 100 ทหารฆ่า 0
(01:42) markpeak: ตอบแบบนี้ผมโอเคนะ
(01:42) vuthi: หน่วยไม่เท่ากัน จะเทียบกันได้ยังไง
(01:43) vuthi: หมาตายหนึ่งตัว กับคนตายหนึ่งคน มีค่าเท่ากันหรือ
(01:43) markpeak: อ้าว "มากกว่า" ของพี่ ก็แปลว่าเทียบได้สิครับ
(01:44) markpeak: ผมก็ถามตามที่พี่ตอบ
(01:44) markpeak: ถามตามน้ำไปเรื่อยๆ
(01:44) markpeak: พี่บอกว่า เสียหายมากกว่า
(01:44) markpeak: ผมก็อยากรู้แค่ว่า แค่ไหน เท่านั้นเอง
(01:45) markpeak: ถามมาครึ่ง ชม. แล้วเนี่ย
(01:45) markpeak: ยังไม่ได้คำตอบเลย
(01:46) markpeak: ขอเป็นลิงก์ก็ได้
(01:53) markpeak: @vuthi ตีสามแล้ว ผมนอนนะครับ
(01:54) markpeak: proof อีเมลตามมาวันหลังก็ได้
(01:54) markpeak: หรือจะส่งเข้า twitter ก็ได้ครับ
(01:54) markpeak: เดี๋ยวเพื่อนฝูงส่งต่อมาให้ผมเอง
(01:54) markpeak: ผมเข้าใจว่า การหาลิงก์ต้องใช้เวลา
(01:55) markpeak: ขอ 2 คำถามนะครับ
(01:55) markpeak: 1.) ทักษิณทำความเสียหายมากกว่า เท่าไร?
(01:55) vuthi: ผมตอบไปหมดแล้วนะ ว่าจากข้อมูลข่าวสารที่ได้รับ
(01:55) markpeak: 2.) ผู้นำมีเมีย 5 คน ผิดศีลธรรมไหม
(01:55) vuthi: ผมเชื่อว่ามากกว่า แต่จะเอาตัวเลข ลิงค์ ฯลฯ คงไม่มี
(01:55) markpeak: อ้อ อีกคำถาม
(01:55) markpeak: 3.) jailbreak iphone ผิดศีลธรรมไหม
(01:56) vuthi: มันเป็นอะไรที่ตกผลึกมา 3-4 ปี
(01:58) vuthi: ผมเข้าใจว่าคนเราเติบโตมาต่างกัน ได้รับการอบรมต่างกัน
(01:58) vuthi: มาตรฐานทางศีลธรรม มันก็ต่างกัน
(01:58) vuthi: สิ่งที่คนหนึ่งเห็นผิด อีกคนอาจคิดไม่ผิด เถียงไม่จบ
(01:58) markpeak: @vuthi ข้อแรกจบไป ขออีกสองข้อครับ พอละ
(02:00) markpeak: คนต่างกัน เลยต้องมี ปชต. ไม่ใช่เหรอครับ
(02:00) markpeak: ผมถามในมุมมองของพี่
(02:00) markpeak: 1) มีเมีย 5 คน ผิดศีลธรรมไหม
(02:01) markpeak: 2.) jailbreak iphone ผิดศีลธรรมไหม
(02:01) markpeak: ขอคำตอบแค่ เยสโน
(02:01) markpeak: เถียงไม่จบ ก็ควรจะโหวต?
(02:06) vuthi: ไปทำงานละ
(02:07) markpeak: เพื่อนๆ twitter ฝากรอคำตอบของ @vuthi ด้วยนะครับ
(02:07) markpeak: นอนก่อน ส่งมาเป็นลิงก์ก็ได้
(02:07) markpeak: มีเมีย 5 คน ผิดศีลธรรมไหม
(02:07) markpeak: jailbreak iphone ผิดศีลธรรมไหม
(02:08) markpeak: คำตอบเป็นไบนารีสองตัว y/n
(02:08) markpeak: ผมรอคำตอบมาทั้งคืนแล้ว
(02:08) markpeak: พี่แกไม่ตอบ
(02:08) markpeak: หนีไปทำงานแล้ว
(02:08) markpeak: @sugree ฝาก monitor คำตอบให้ด้วย
(02:09) markpeak: @gumara แปลว่า พธม ผิดศีลธรรม
(02:10) markpeak: แต่ผิดน้อยกว่าคนอื่น เลยไม่เป็นไร
(02:10) markpeak: น้อยกว่าเพราะเชื่อว่าน้อยกว่า ประสบการณ์ผมสั่งสม 3-4 ปีบอก
(02:11) markpeak: เราควรเอาคนที่ผิดศีลธรรมที่สุดออกไป
(02:11) markpeak: คนอื่นไม่เป็นไร
(02:11) markpeak: กำจัดผิดศีลธรรม เศรษฐกิจพังไม่เป็นไร
(02:12) markpeak: นี่คือ สิ่งที่ผมได้จาก @vuthi วันนี้

(03:58) vuthi: Something is seriously wrong. มีคนเชื่อว่าเมืองไทยไม่มีการซื้อเสียง

Categories: Blog

Tweet to Text

sugree - Tue, 09/02/2008 - 10:42

Sometimes you might want to keep your old tweet in your blog forever. Publish the fruitful conversation or debate in your blog everlasting long. There is no easy way yet as far as I know. But it is possible to use Twitter Search. @markpeak asked me for help. Below script is my help.

#!/usr/bin/env python
 
from urllib import urlencode
from urllib2 import urlopen, HTTPCookieProcessor, build_opener, install_opener, Request
from optparse import OptionParser
import time
from datetime import datetime
 
import simplejson
 
cookie_processor = HTTPCookieProcessor()
opener = build_opener(cookie_processor)
install_opener(opener)
 
api_url = 'http://search.twitter.com/search.json'
results_per_page = 100
verbose = False
 
def search(q, data=None):
    if not data:
        data = urlencode({'q': q,
                          'rpp': results_per_page})
    if verbose:
        print data
    req = Request(api_url, data)
    fd = urlopen(req)
    results = simplejson.loads(fd.read())
    return results
 
def unescape(t):
    t = t.replace('&quot;', '"')
    t = t.replace('&amp;', '&')
    return t
 
def format_tweet(t):
    created_at = datetime.fromtimestamp(time.mktime(
                 time.strptime(t['created_at'][:-6], '%a, %d %b %Y %H:%M:%S'))-
                 time.timezone)
    return '(%s) %s: %s' % (created_at.strftime('%H:%M'),
                            t['from_user'],
                            unescape(t['text']))
 
class App:
    def __init__(self):
        parser = OptionParser()
        parser.add_option('-v', '--verbose',
                          default=False, action='store_true', dest='verbose',
                          help='verbose')
        parser.add_option('-r', '--rpp',
                          default=20, type='int', dest='rpp',
                          help='results per page')
        parser.add_option('-p', '--pages',
                          default=4, type='int', dest='pages',
                          help='max pages')
 
        self.options, self.args = parser.parse_args()
 
        global verbose, results_per_page
        verbose = self.options.verbose
        results_per_page = self.options.rpp
 
    def run(self):
        history = []
        query = ' '.join(self.args)
        results = search(query)
        for i in results['results']:
            history.append(i)
 
        for p in range(self.options.pages-1):
            if 'next_page' not in results:
                break
            next_page = results['next_page']
            results = search(query, next_page[1:])
            for i in results['results']:
                history.append(i)
 
        history.reverse()
        for i in history:
            print format_tweet(i)
 
        if verbose:
            print len(history)
 
if __name__ == '__main__':
    app = App()
    app.run()

The usage is very straightforward. Simply call above script with query you want. There are 3 options.

  • -p n - specify number of pages you want to obtain
  • -r n - specify number of results per page
  • -v - turn on verbose mode

For example:

sugree@sugree-laptop:twittertrack$ python track.py -r 20 -p 1 from:nytonkla OR from:hohoteam
(23:34) nytonkla: กลับบ้านมาแล้ว อย่างง่วง
(00:24) hohoteam: @markpeak ไปสิ FOWA อิอิ
(00:40) nytonkla: นอนแล้วนะ ง่วงเหนื่อย
(00:43) hohoteam: manager manager manager
(00:51) hohoteam: register 1 domain success
(01:19) hohoteam: @kengggg อย่าลืมเอา clips งาน ไปแปะใน Barcamp นะเฟ้ย ส่งไปให้แล้ว เดี๋ยวจะช้าเกิน
(01:25) hohoteam: ปะทะกันแล้ว
(09:47) hohoteam: chrome VS firefox
(09:49) hohoteam: welcome to the real world. good luck firefox. good bye chrome. long live IE.
(10:11) hohoteam: @dtinth not sure. i cannot access to their site. read review only.
(10:14) hohoteam: เบอร์บาตอฟ 30.75 ล้านปอนด์ + แคมป์เบลล์ บ้าป่าวว่ะ ไม่คุ้มเลย เอาเด็กไปแลกทำไมเนี่ย เงินก็มี
(10:15) hohoteam: ฮ่วย โรบินโญ่มาแมนซิตี้ 32.5 ล้านปอนด์ ตัดหน้าเชลซี อะไรกันเนี่ย
(10:20) hohoteam: พี่แม้วขายแมนซิตี้ไปแว้ว นกรู้???
(10:20) hohoteam: ปลาดุก ซาฮา ไปท๊อฟฟี่แล้ว ขอให้โชคดีนะ
(10:20) hohoteam: @NaiOhm ตอนนั้นผ่าไส้ติ่งอยู่ครับ ไปไม่ได้
(10:37) hohoteam: ลุงหมักด่านักข่าวว่าอย่าพูดแซง รอให้จบก่อน หงิดไปเลย
(10:38) hohoteam: นักข่าวถามได้ซังกะบ๊วยมาก
(10:41) hohoteam: @NaiOhm ได้ครับ email มาที่ hoho AT duocore.tv
(10:44) hohoteam: อ่ะ แค่ให้ยืมตัว โอเคๆ
(11:01) nytonkla: อ้าวเวร.. กกต. สรุปยุบพรรคพลังปปช.

Note to @markpeak: The correct argument for you is -r 100 -p 20.

Categories: Blog

Twitter Grade

molecularck - Mon, 09/01/2008 - 14:19

Twitter Grade: 73 - Rank #2543 out of 10,369

Full Name: molecularck (nueng)

Follower Count: 243

Following Count: 283

Update Count: 13,143

From @sugree

Categories: Blog

Twitter Grade

sugree - Mon, 09/01/2008 - 09:04

Twitter Grade: 92 - Rank #739 out of 10,260

  • Full Name: sugree
  • Follower Count: 790
  • Following Count: 766
  • Update Count: 59,419

more: jedineko, llun, celerachan

Categories: Blog

Alternative Twitter SMS

sugree - Tue, 08/19/2008 - 00:15

Twitter disabled international SMS to Thailand and many other countries since August 14, 2008. I have been trying to find alternative solution including to ask friends in mobile business to convince any operators in Thailand to offer alternative services. Sadly, they did not understand me even I proposed to pay for this subscription. It is worth for me even 100 THB per month.

After a few days, there are so many startups which trying to fill this gap. This is a big opportunity.

Below are what I found.

  • @tweetsms - http://www.tweetsms.com/
  • @twitsmsco - http://www.twitsms.com.au/ and http://www.twitsms.co.uk/
  • @Twit_Mobile - http://twitmobile.com/
  • @jstride - http://www.senokian.com/tweeteroo/

I want to try all of them but sadly most of them do not support Thailand yet. The only available for Thailand is Tweeteroo! I tried it already :) It works but not perfect. Tweeteroo fetches direct messages periodically and send SMS when it finds new messages. There are 2 problems.

  1. I don't know the interval but it is polling model. That means there is some delay at maximum the interval period.
  2. This polling model reduces my hourly limit. This problem is critical.

My suggestion is to use direct messages notification via email to trigger the fetch process. The step behind is unclear. Anyway, this is such a good alternative for Thailand. I do not want all updates via SMS. Only direct messages are more than enough for me.

Try it yourself! For more information, read this blog. Note that you need the code for beta test. Read that blog carefully and you will get it.

Thanks for great work!

Categories: Blog

Do anything at BarCamp Bangkok 2

sugree - Thu, 08/14/2008 - 10:34

I don't have good camera. My microphone sucks. This is the best I have.

Categories: Blog

Twitter is looking for local mobile operators

sugree - Thu, 08/14/2008 - 09:30

ผมอยู่กับ Twitter มาเกือบปี ราวๆ 10 เดือน SMS เป็นสิ่งที่ทำให้ Twitter มีประโยชน์มากถึงมากที่สุด เจอประกาศหยุด SMS เมื่อเช้าทำเอานิ่งไปพักใหญ่ ใน getsatisfaction ก็บ่นกันยาว ใน search ก็ไม่ใช่น้อย ความจริงก็คือ ทุกคนคงใช้ SMS กันหมด แค่ 250 ข้อความต่อสัปดาห์มันเกินพอ ผมยังใช้ไม่เคยถึง 50 ด้วยซ้ำ แต่เนื่องจากคนใช้กันเยอะ เวลาจ่ายเนี่ย Twitter รับภาระคนเดียวล้วนๆ ซึ่งไม่ยุติธรรม ผมเห็นด้วยเต็มที่ เมื่อถึงเวลาก็ต้องหยุดให้บริการ และวันนี้ก็คือเวลานั้น

ใครควรรับผิดชอบค่าใช้จ่ายส่วนนี้?

ไม่ต้องมองหาที่ไหนไกล ผมยินดีรับผิดชอบค่าใช้จ่ายส่วนนี้เอง จริงๆ แล้วมีทางอื่นอีก นั่นคือ local operator หรือผู้ให้บริการในประเทศ ในไทยนี่มี AIS, Dtac, True Move, Hutch และ Thai Mobile ผมเชื่อว่าทุกเจ้ามีความสามารถที่จะแบกรับค่าใช้จ่ายส่วนนี้ แลกกับ SMS ที่จะรับแล้วส่งต่อไปให้ Twitter อีกที ถ้าส่งทาง SMS ด้วยราคาปกติในประเทศได้ หลายคนคงไม่จำเป็นต้องใช้ GPRS/EDGE ในบางกรณี อย่างน้อยผมก็ยินดี

หลายๆ ครั้ง GPRS/EDGE มันหนาแน่น มันช้า ผมอยากส่งมาก แต่ทำใจกับ 9 บาทต่อข้อความไม่ได้ ถ้าเหลือ 3 บาทเหมือนปกติ หรือถ้าใช้โปรโมชั่นตามปกติได้ก็ยิ่งดีใหญ่ ผมเดาเอาเองว่าเวลาส่ง SMS ข้ามประเทศมันก็ส่งทาง IP นี่แหละ นั่นแปลว่าถูกมาก เก็บค่าบริการ SMS ตามปกติธรรมดาก็น่าจะไม่เสียหายมาก หรืออีกทางก็คือเก็บค่าบริการสำหรับ SMS ที่ส่งมาจาก Twitter ผมยินดีจ่ายเดือนละ 100 บาท แต่ต้องไม่ขึ้นกับผู้ให้บริการนะ ผมยังไม่คิดย้ายค่าย ไม่ว่าในกรณีใดๆ ก็ตาม

ตอนนี้ต้องการผู้กล้า ผู้ให้บริการในไทย ใครก็ได้ ติดต่อ Twitter ด่วน อยากรับ SMS เหมือนเดิม ถ้าส่ง SMS ได้ด้วยอัตราปกติจะดีมาก

มองอีกมุม ผมรับโฆษณา SMS วันนึงไม่ต่ำกว่า 3 ข้อความ ผมรับ SMS จาก Twitter เฉลี่ยวันละ 2 ข้อความเนื่องจากภาษาไทยกินที่มากกว่าปกติ (จริงๆ แล้วข้อความเดียวถูกหั่นเป็น 2) ผมไม่เคยยินดีที่จะรับโฆษณา แต่ถ้าผมต้องรับเพื่อแลกกับ SMS จาก Twitter ผมก็ยินดีต้อนรับโฆษณา มันเป็นการแลกเปลี่ยนที่เท่าเทียม

NokNok อาจเป็นทางออก แต่ผมไม่คิดว่าควรแข่งกับ Twitter ไม่ใช่ว่าไม่มีทางชนะ แต่มันเป็นชัยชนะที่ไม่ยั่งยืน แทนที่จะแข่งควรหาทางเป็นพันธมิตรมากกว่า น่าจะมีหนทางเชื่อม Twitter กับ NokNok เข้าด้วยกันแบบสนิทแนบแน่น ย้ำอีกที ผมยินดีจ่าย แต่ 250 ข้อความต่อเดือนน้อยไปนิดนะครับ แม้ว่ายังไม่เคยใช้ถึงแต่ก็เสียวนิดๆ ถ้าซัก 300 ข้อความต่อเดือนจะสบายใจขึ้นหน่อย 300 นี่หมายถึงเฉพาะ direct messages นะ ตอนนี้ยังไม่มี direct messages only

ใครก็ได้ ช่วยติดต่อ Twitter ด่วน

Categories: Blog

SedThink - The first NokNok desktop client in the AIR

sugree - Tue, 08/12/2008 - 21:50

It is not easy to use both Twitter and NokNok at the same time. My effort is noknok.py written in Python. That means you need basic knowledge to run Python or else it might be a kind of nightmare. @iake made noknok.exe based on noknok.py; however, you have to run it manually. If you forget to run, nothing happen.

Sadly, there is no official APIs for NokNok yet. Don't worry. Most of the time we don't need APIs. If there is noknok.py, it is possible to have more and more. Today the wait is over. SedThink is available to help you.

<!--break-->

Basically, SedThink is a desktop client for popular web-based services providing APIs such as Twitter and Hi5. As a plus, it also supports NokNok! By using SedThink you don't need to run noknok.py or noknok.exe. Every updates will be cross-posed to both Twitter and NokNok automatically. In addition, you will see both Twitter timeline and NokNok timeline in one screen as well as alert.

SedThink is developed in Adobe AIR so it should run on any platforms including Windows, Linux and Mac. The developer is @bunthidj. Great job so far. Below is my quote.

NokNok in the AIR

Now NokNok is able to fly in the AIR. If you are Hi5 user, you may fall in love with SedThink very easy. Try to use Hi5 via SedThink, it is really awesome!

Categories: Blog

Mein Führer: Twitter is down again (Hell subtitle)

molecularck - Sat, 08/09/2008 - 08:17

from @sajal via @luke_bkk

Sorry for the awesome laugh. I can’t stop laughing during watched this clip.

คงไม่ต้องพูดซ้ำซากจากภาษาอังกฤษอันห่วย ๆ ไปดู ซับนรก twitter ดีกว่า ฮาขี้แตกขี้แตน

Categories: Blog

jibjib beta speaks non-english to TwitPic

sugree - Wed, 08/06/2008 - 22:58

To all jibjib users, in case you did not notice, jibjib has an encoding problem with TwitPic for so long. That means you cannot tweet with picture in Thai. It took me long time to find the right solution to POST unicode in multipart/form-data. Now this issue is fixed.

<!--break-->

This is not critical bug but I highly recommend to upgrade anyway.

Twitter rules!

CLDC 1.1/MIDP 2.0

  • jibjib-beta-midp20_cldc11.jad
  • jibjib-beta-midp20_cldc11.jar

CLDC 1.0/MIDP 2.0

  • jibjib-beta-midp20_cldc10.jad
  • jibjib-beta-midp20_cldc10.jar
Categories: Blog

jibjib beta supports more phones

sugree - Wed, 08/06/2008 - 11:20

It has been so long since previous jibjib beta. In other words, jibjib is now stable enough for production. However, @iake found bug regarding favorite yesterday. And I also found another bug regarding JSON. One more thing, I am changing build.xml to use J2ME Polish for better GUI and better specific device support.

<!--break-->

I was very busy during last month so this migration did not finished until last night. Here you go. Now you have 2 choices; CLDC 1.0 or CLDC 1.1.

CLDC 1.1/MIDP 2.0

  • jibjib-beta-midp20_cldc11.jad
  • jibjib-beta-midp20_cldc11.jar

CLDC 1.0/MIDP 2.0

  • jibjib-beta-midp20_cldc10.jad
  • jibjib-beta-midp20_cldc10.jar

Most recent phones are CLDC 1.1. If it does not work, please try CLDC 1.0 instead.

Categories: Blog

Pidgin Microblog 0.1 is available now

sugree - Sat, 08/02/2008 - 09:06

Yesterday was marked as a big day in Twitter universe because we have officially Twitter plugin for Pidgin and libpurple for all addicted who want something similar to Twitter IM in term of feeling.

microblog-purple supports 2 platforms, Windows and Ubuntu. However, you may compile it yourself on your platform. The first version is 0.1 came with load of features that you missed for so long.

<!--break-->

Download and try it now!

  • Source - microblog-purple-0.1.tar.gz
  • Windows - pidgin-microblog-0.1.exe

For Ubuntu and other Debian-based, I built and uploaded to GetDeb to provide both 32 bit and 64 bit version.

http://www.getdeb.net/app/Pidgin+Microblog

  • deb 32 bit
  • deb 64 bit

Note that these packages were built on Hardy.

All issues should be reported at Issues page.

Categories: Blog

Mitter 0.3.2.2 for Debian-based distributions

sugree - Sat, 08/02/2008 - 08:55

After spending a few days with GetDeb, I has successfully compiled Mitter on GetDeb and uploaded to the front page. The main page is available at below url.

http://www.getdeb.net/app/Mitter

Bookmark it! The current stable is 0.3.2.2. It is available in both 32 bit and 64 bit.

  • 32 bit
  • 64 bit
<!--break-->

All issues could be reported at the Issues page directly. This package should be compatible with all Debian-based distributions, e.g., Debian and Ubuntu.

Categories: Blog
  • 1
  • 2
  • next ›
  • last »
RoopleTheme