년도별 글 목록: 2010

Excel 과 Twitter 매쉬업 – 엑셀로 100명이상에게 트위터 DM 동시에 보내기

트위터를 사용하다보면 동시에 여러명에게 DM을 보내야할 일이 가끔 생깁니다. 모임을 진행한다던지, 몇몇 지인들에게만 중요정보를 알린다던지 할때 말이죠. 공개트윗으로 날리긴 곤란하고, DM 으로 각각보내자니 힘들고.. 그래서 예전에 TweetGuru 의 MultiDM 이라는 서비스를 만들었는데요. 서버의 제약 문제 때문에 동시에 12명까지밖에 보낼수가 없게 되어있습니다. 그리고 계정정보들을 따로 저장해놨다가 하는등의 작업들이 필요했는데요. 많이들 쓰시는 Microsoft Excel 을 이용해서 DM 을 여러명에게 편하게 보낼수 있는 매쉬업을 공개합니다.

Excel 과 Twitter 매쉬업하기

지난번 파워포인트와 트위터 매쉬업하기 에서 사용했던 소스를 거의 그대로 활용합니다. VBA 코드로 되어있습니다. 아래와 같은 화면입니다.

Excel to Twitter Mashup

너무 간단해서 보시면 사용법은 다 아실듯 합니다. ID 칸에 보낼사람 트윗ID를 @ 없이 적고, 메시지를 적으면 됩니다. 메시지가 빈칸이면 위칸것을 재활용합니다. 캡쳐에 있는 대로라면 @clien_net 과 @tweet_id8 까지는 “즐거운 설날되세요!” 를 받고, 나머지 @tweet_id9-16 은 “즐거운 설날되세요! 새해 복많이 받으세요!” 를 받게 됩니다. 버튼을 누르면 작은창이 떠서 트위터 ID 와 암호를 물어봅니다.

주의하실 점은 화면에 있는 대로 트위터 자체의 제한인 일일 DM 250 개 제한과 시간당 API 150번 호출제한을 염두에 두세요.
이 파일로 150명에게 DM 보내고 나면 트위터 클라이언트가 바로 리밋걸리게 됩니다. 한시간동안 웹으로 밖에 못쓰시게 되는거죠.

그리고 정말 중요! 트위터의 정책상 같은 DM 을 반복해서 보내면 스팸으로 인식되어 계정사용에 문제가 생길수도 있습니다. 조심해서 사용하세요.
혹시 이 파일로 인해 생기는 문제는 제가 책임지지 않습니다.

아래는 이 엑셀+트위터 매쉬업의 코드입니다.

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Function DM(touser, tweetmsg, uid, pwd)
     Dim objHTTP As Object
     Set objHTTP = CreateObject("Microsoft.XMLHTTP")
          objHTTP.Open "POST", "http://twitter.com/direct_messages/new.xml", False, uid, pwd
          objHTTP.send "user=" & touser & "&text=" & tweetmsg
          DM = objHTTP.responseText
     Set objHTTP = Nothing
End Function
Function getStringBetween(str, sstart, send)
    PosStart = InStr(str, sstart)
    PosEnd = InStr(str, send)
    If (PosStart > 0) And (PosEnd > 0) Then
        getStringBetween = Mid(str, PosStart + Len(sstart), PosEnd - PosStart - Len(sstart))
    Else
        getStringBetween = ""
    End If
End Function
Function Send_DM()
    Load frmLogin
    frmLogin.Show
    strUID = frmLogin.txtUID
    strPWD = frmLogin.txtPWD
    Unload frmLogin
    If Len(strUID) = 0 Or Len(strPWD) = 0 Then Exit Function
    ' Twitter Limits 250 DM per day. You can't exceed this
    Application.Cursor = xlWait
    For i = 2 To 151
        TweetID = Cells(i, 1)
        If Len(Cells(i, 2)) > 0 Then
            tweetmsg = Cells(i, 2)
        End If
        If Len(TweetID) > 0 Then
            res = DM(TweetID, tweetmsg, strUID, strPWD)
            Cells(i, 5) = res
            If (Len(getStringBetween(res, "id", "/id")) > 0) Then
                Cells(i, 3) = "성공"
            Else
                Cells(i, 3) = "실패"
            End If
        Else
            Exit For
        End If
        ' 혹시 몰라서 한건의 DM당 1초씩 딜레이를 뒀습니다. 트위터 서버측에 부하를 줄이기 위함입니다.
        ' 시간이 문제가 안되시는분은 5000 정도로 해서 5초 딜레이를 주시면 전혀 무리없을듯 합니다.
        Sleep 1000
    Next i
    Application.Cursor = xlDefault
End Function

가지고 계신 트위터 사용자들 주소록이 있다면, 간단히 ID 부분에만 복사하셔서 쉽게 메시지 보내시면 됩니다.
주의! 다운 받아서 오픈한후 보안경고 창에서 매크로 사용토록 확인해주셔야 기능이 동작됩니다.

▶ 엑셀파일 다운로드 : Excel + Twitter Multi DM 엑셀 다운받기 – 제 Dropbox 입니다.

( 혹시 Dropbox 사용 안해보신분들은 꼭 만들어 두세요 윈도우/맥/아이폰 모두 연동되는 쓰기편한 웹하드로 2 Giga 까지 무료입니다. )

어떻게 사용하시느냐에 따라 좋은 전달도구가 될수도, 나쁜 광고용 도구로 전락될수도 있습니다.
국내 트위터 사용자분들을 믿습니다. 이걸 광고 및 나쁜용도로 사용하지 말아주세요.

엉뚱한 개발자 구루였습니다.

구글 버즈와 트위터 연동하기 : How to integrate Google Buzz to Twitter

오늘 새벽에 공개되어 트위터와 온통 외국 사이트들이 시끌벅적한 Google Buzz ( 구글 버즈 ) 한국명은 구글 와글? 인듯합니다.

구글 Buzz에 대한 상세소개는 윤석찬님 의 포스팅 Google Buzz, 지메일 기반 소셜 서비스 발표! 글을 참고하세요.

아직은 초창기라 정신없기는 한데.. 그냥 제가 트위터가지고 놀기 좋아하는터라 구글 Buzz 의 내용을 Twitter 에서도 볼수 있게 만들어 봅니다.

* 추가 : 이제 제 지메일 계정에도 Buzz 가 활성화 되어 가보니, Buzz -> Twitter 보다는 Twitter -> Buzz 의 구조를 염두에 두고 만든듯 합니다. 어떤걸 최후 종착역으로 설정할지는 사용자마음일듯합니다. 아래는 트위터를 데이타의 최종단으로 만들때 사용하는 방법입니다. 아래 방법을 사용하시면서 Buzz 의 Twitter 가져오기 기능을 활성하면 무한으로 반복되게 됩니다. 조심하세요 ^^; 둘중에 하나만 선택하셔야 합니다.

자신의 구글 Buzz 의 Feed 주소는 아래와 같습니다.

http://buzz.googleapis.com/feeds/{user}/public/posted

위에서 {user} 부분에 자기 구글아이디 또는 Profile 의 이름을 적어서 자신의 Buzz Feed가 맞는지 확인합니다.

이 주소를 구글 FeedBurner ( http://feedburner.google.com/ ) 에 가서 Feed 로 등록합니다.
Friendfeed 나 TwitterFeed 같은걸 이용해도 되는데.. 구글 FeedBurner 를 이용하면 트윗에 via Google 이라고 나와서.. 왠지 더 정품? 같아 보입니다.

Publicize -> Socialize 로 가서 아래와 같이 설정하면 끝!

Google Buzz to Twitter

구글 Buzz 의 Feed 는 Body 에 중요내용이 있으므로 Body Only 를 선택하는걸 잊지마세요 🙂

이렇게 하고난후 Buzz 에 글을 남기면 아래와 같이 트윗됩니다.

Google Buzz on Twitter

Buzz는 11시 25분에 남긴 거였는데 , 12시 다되서야 트윗되었네요.
좀 빠르게 남기시려면 피드버너에서 Ping 해주시면 됩니다. 자신의 피드버너의 피드 주소를 입력하시고 Ping 하시면 즉시 등록됩니다.
예로 만든 제 구글 버즈의 피드버너 피드주소는 http://feeds.feedburner.com/guru_buzz 입니다.

Twitter ! 트위터를 처음 시작할때 해야할 일

최근에 TV 에서 트위터에 대해 소개되면서 새로 Twitter 에 입문하시는 분들을 위해 간단히 정리해봅니다.

  1. http://twitter.com 에서 가입합니다. 이미 가입하고 오신거죠 ? 🙂
    1. 자신의 프로필 이미지를 등록하세요. 얼굴사진을 올리시면 더욱 좋습니다.
    2. Bio 에는 자신의 소개를 재미나게/성실히 적어주세요.
      이걸 보고 다른분이 많이 Follow 합니다.
    3. 블로그 나 자신을 알릴수 있는 URL 을 More Info URL 에 등록해주세요
  2. http://seesmic.com/seesmic_desktop/air/ 에서 Seesmic Desktop 클라이언트를 받아서 설치하시길 추천드립니다.
    웹으로 사용하는 트위터는 처음에 친숙해지기가 좀 어렵습니다.
  3. http://selfintro.xguru.net 에서 관심사가 비슷하신 분들 찾아서 Follow!
    Follow 하는 사람이 100명을 넘어가서 말이 많이 보이기 시작하면 즐거워 지실겁니다.
    검색창에 관심있는 단어를 넣고 검색해보세요.
    그리고 #self_intro 를 이용해 자기소개를 남겨보세요. https://xguru.net/521
  4. 어떤 말이 오가는지 보시고, @아이디 하셔서 답변을 보내보세요. Seesmic 에선 프로필 이미지위에 마우스를 올려 @를 누르세요. 이렇게 얘기를 나누면서 다른분들과 친해지는겁니다.
  5. 맘에 드는 트윗메시지는 RT 하시면서 자신의 의견도 덧붙여 보세요. RT 는 다른사람의 말을 자신의 Follower에게 재소개 하는 것입니다. 새로 추가된 Retweet 기능은 아무런 수정없이 그냥 바로 재소개 되며, Seesmic 의 경우 프로필 이미지에서 톱니바퀴 버튼을 눌러서 Quote Message 하시면 자신의 의견을 담아 RT 할수 있습니다.
  6. 꼭 Follow 해야할 한국인 트위터 6인 + 1
    1. @estima7
    2. @hur
    3. @leejeonghwan
    4. @hongss
    5. @ReadLead
    6. @markidea
    7. @xguru
      ==> 추천경위 및 소개보기
  7. Follow 해두면 심심하지 않을 한국인 트위터 12인
    1. @5oa
    2. @79k
    3. @doax
    4. @ososo
    5. @uioiu
    6. @ludensk
    7. @premist
    8. @myungee
    9. @piopopo
    10. @wony816
    11. @ladyqaqa
    12. @kyeungbum
      ==> 추천경위 및 소개보기
  8. Follow 해두면 좋을 외국 트위터 계정
    1. @GuyKawasaki
    2. @rww
    3. @timoreilly
    4. @radar
    5. @mashable
  9. 알아두면 좋은 트위터 메쉬업
    1. Twitpic – 이미지 공유 , 트위터 계정으로 로그인
    2. Song.ly – 음악 공유
    3. bit.ly – Short Url ( j.mp 도 같은 서비스임 )
    4. TwtPoll – 트위터 설문조사
  10. 꼭 읽어보셔야 할 트위터 소개 강좌들
    1. @barry_lee 님의 초보트위터 강좌
    2. @odlinuf 님의 트위터 정보 사이트 Twitteran의 트위터 기본사용법
    3. @pureRED_ 님의 트위터의 각 형식별(기본/답글/RT) 예제와 효과설명
  11. 제가 적은 트위터 관련 글들

혹시 모자란 부분이 있으면 말씀해주시면 추가해서 업데이트 하겠습니다.

GoodReader 2.4 버전 이상에서 USB 전송기능 해제하기

제가 강력히 추천해드리는 아이폰용 문서뷰어 앱 GoodReader 는 엄청큰 PDF 파일도 잘 읽어내고, DOC,XLS,PPT,TXT 등 많은 포맷을 지원하는 파일뷰어입니다. 내부에 정말 많은 기능을 가지고 있어서 파일관리 및 웹브라우저 기능까지도 가지고 있습니다. 0.99달러로 계속 할인중이므로 문서보는일이 많으시다면 구입하셔도 좋을듯 합니다. [iTunes 링크]

***************************** 중요공지 ************************************

GoodReader 가 다시 USB 전송기능을 정식으로 지원합니다. 예전처럼 편법이 아니기때문에 이 포스팅에서 하는 작업들이 필요없습니다.

http://www.goodiware.com/gr-man-tr-usb.html 에 가면 자세한 설명이 있습니다만, 간단한건 새 버전의 GoodReaderUSB 를 다운로드 하고 실행하면 쉽게 파일전송이 가능합니다.

아래 포스트내용은 그냥 예전기록을 위해 남겨둡니다.

*****************************************************************

굿리더는 2.3버전까지는 USB 연결기능까지도 제공해서 복잡한 WIFI 연결없이 Windows/Mac 상에서 쉽게 파일을 복사할수 있었습니다만, 애플의 요청으로 해당기능이 삭제되었습니다. 하지만 이 기능이 완전히 삭제된것이 아니고, 설정값으로 기능을 제한해 둔거라 설정값만 바꾸면 다시 USB 복사기능이 가능합니다. ( Jail Breaking 하셨다면 더 쉽게 가능한 방법이 많습니다. 이 포스팅은 순정 아이폰/아이팟 유저분들을 위한 방법입니다. )

원문은 일본어 포스팅인 [非JB]新規GoodReader v2.4でUSB転送を可能にさせる方法 입니다.

* 주의!!! : 아래 방법은 동기화된 파일을 수정하여 복원하는 방법으로 진행되므로 아이폰의 데이타가 잘못될수 있습니다. 꼭 아이튠스에서 아이폰의 백업을 받아두세요. 이 방법을 이용하다 잘못되는 경우에 대해서는 제가 책임지지 않습니다.

먼저 2개의 유틸리티가 필요합니다.

  • iBackupBot – iTunes 의 백업파일을 수정할수 있게 도와주는 유틸리티 입니다. (윈도우용만 있음)
  • GoodReaderUSB – iPhone Explorer 의 수정버전으로 GoodReader 에 파일복사를 도와주는 유틸리티입니다. (윈/맥 모두 지원)
  • GoodReaderUSB 는 배포가 중단되었습니다. i-Funbox 나 원본 iPhone Explorer를 이용하세요.

맥 사용자분들은 맥에서는 iBackupBot 과 똑같은 일을 해주는 어플이 현재 없기때문에 다른 윈도우PC에서 진행하셔야 합니다. 일단 수정만 되면 그다음부터는 맥에서도 GoodReaderUSB 를 이용해서 파일복사 가능합니다.

GoodReader 를 최신버전으로 업데이트 한후 iTunes 와 동기화 합니다. 그리고, 일단 iBackupBot을 먼저 설치합니다. GoodReaderUSB 는 그냥 실행파일 하나라 설치가 필요없습니다.
iBackupBot을 설치하고 실행하면, 아래와 같이 하드에 설치된 iTunes 의 정보를 분석하여 백업정보를 읽어냅니다.

전 터치와 아이폰, 그리고 풀백업이 하나 있어서 3개의 자료가 보입니다.

그중에서 가장 최신의 iPhone/Touch 백업자료를 선택합니다. 전 중간것이네요. 안에 내용로드가 조금 걸립니다. 그리고 왼측 자료를 더블클릭해서 연후에 왼쪽트리에서 GoodReader 를 찾습니다.

그리고 위에서 보는것처럼 우측에서 Library/Preferences/com.goodiware.GoodReader.plist 파일을 찾습니다.
더블클릭하면 Shareware 니까 등록하라는 창이 뜹니다만.. 그냥 Cancel 누릅니다. 🙂

그럼 XML 파일로된 내용이 나오는데.. 아래항목을 찾습니다.

fUSBIsAllowedfUSBWasShownOnce 항목 이름만으로도 아시겠죠 ? 이걸 아래처럼 true 로 바꿔줍니다.

그리고 위에 툴바에 저장버튼 눌러서 저장한 후 창을 닫습니다. 그리고 아래처럼 왼쪽의 체크표시를 클릭해서 체크합니다.

그리고 왼쪽의 트리창에서 GoodReader 항목을 찾아 마우스 우측버튼을 클릭합니다.

Restore 를 누르고 아래처럼 “Restore only checked files” 를 선택합니다.

그리고 확인을 누르면 아래처럼 Restoring 화면이 나옵니다. 이 화면이 나오고 한참 있다가 iPhone 이 “복원중” 상태로 들어가며 부분복원을 진행하게 됩니다.

그리고 또 한참 기다리면 복원이 끝나고 아이폰이 재부팅 됩니다. 그럼 일단 수정작업은 끝입니다.

그리고 나서 부팅한후에 GoodReader 를 실행해보면 아래처럼 2.3에서만 보이던 USB Folders 가 보입니다.

이제 GoodReaderUSB 를 실행시킵니다. EXE 하나로 되어있습니다. 화면에서처럼 우측에 아무파일이나 던져넣으면 끝입니다. 폴더 단위로도 복사됩니다.

조금 귀찮긴한데 한번 업뎃하고 나면 편하게 파일복사가 가능합니다. 2.5 에서 적용한후 2.5.1로 업그레이드 하여도 바로 사용됨을 확인했습니다.

* 다시 한번 주의!!! : 이 방법은 동기화된 파일을 수정하여 복원하는 방법으로 진행되므로 아이폰의 데이타가 잘못될수 있습니다. 꼭 아이튠스에서 아이폰의 백업을 받아두세요. 이 방법을 이용하다 잘못되는 경우에 대해서는 제가 책임지지 않습니다.

애자일 소프트웨어 개발을 위한 사용자 스토리 : User Stories Applied

예전에 썼던 ‘사용자 스토리 II – XP 를 XP 답게 만드는 것‘ 에서 만들었던 슬라이드 자료를 공개합니다.

좀 지난 글이긴 하지만, 이 주제는 소프트웨어 개발자들에게 계속 논의하고 공부해둘만한 가치가 있는것 같습니다.

국내에 출판된 사용자 스토리 : 고객 중심의 요구사항 기법 (원제 User Stories Applied : For Agile Software Development ) 번역본의 저자이신 심우곤 님께서 자료 공유를 문의하셔서, 몇몇 부분을 빼고 공유합니다.

사용자 스토리 는 Agile(애자일) 개발을 공부하거나 적용중이시라면 꼭 한번 읽어보실만한 책입니다.