livin' seberia

PRODUCE 413 - 3월 30일자

play with data



당초 '일일이 데이터를 긁어서 자바스크립트로 시각화까지 해야지~'하고 시작했으나,

오늘따라 일러스트레이터와 포토샵을 만지작거릴 일이 좀 많다보니, 또 그게 손에 배서 그냥 손코딩 손디자인... (오랜만에 내 휴이온 태블릿도 활용했다. 잘했어 토닥토닥) 샘플 작업했다 생각해야지.

확실히 소녀들처럼 샤방한 느낌은 덜하다. 당연한가. 


음 암튼, 신문사들이 싣는 정치인의 사진 속 인물들을 디텍트해서, 빈도수를 셌다. 나중에 발전시킨다면 여기에 왜 많이 사진이 나왔는지 주요 뉴스 링크도 하고, (여기엔 공간이 모자라 안 달았다만) 수치도 달겠지. 아마 누적 포토 수도 넣을 수 있을 것 같다. 참고로 이날 1위를 한 안철수 후보는 11개 신문에 전부 얼굴을 보여줬고(!) 횟수는 13회였다. 어떤 곳은 두 번씩 넣어주기도 했다는 뜻이다. 데이터를 더 모아보면 보수-진보 및 일반지-경제지 등의 매체 차이나 정당 규모별 노출 빈도도 알아볼 수 있을 것 같고. 참, 선거철 보도사진은 특히 centroid를 잡아 가중치를 매기기에 좋지 않다. 끄적끄적. 


과연... 관련 코딩을 완성할 것인가... (저, 저기...스마트미러나 끝내...) 

smart mirror project [day 7]

DIY IOT - smart mirror project

3월 28일 (작업날짜로 굳이 친다면) 일곱번째 날 

오늘의 목표(?) 혹은 완료된 작업(?) : 거울을 찾았다. 그리고 모니터도 골랐다. 그리고....


......물론 마지막 코딩을 하고 뭐 어쩌고 한 지는 꽤 오랜 시간이 흘렀다만(무려 한 달이 넘었다ㅠㅠ 그러니까 굳이 핑계를 대자면 학기 시작하면서 좀 바빠서...), 며칠간의 리서치와 노가다 끝에 드디어 살 것(;;;)을 정했다는 소식을 전하기 위해 글을 남긴다. 

그러니까 지난 시간까지 한 건 코드를 짜는 일이었다. 


얼추 이정도 까지는 완성이 됐는데, 한 가지 '며칠째' 손을 댔다 뗐다를 반복하는 부분이, 바로 '뉴스와 날씨의 실시간 동기화'다. 온갖 것을 다 써보았다. tkinter, schedule, 뭐 또 여러가지. 

하지만 아직까지도 문제는 해결되지 않고 있고 오늘 밤에는 기필코 해낼 것이다 ㅠㅠ  

내 귀여운 USB허브. 그런데 팔뚝에 꽂거나 3개 이상 꽂으면(그 말이 그 말인가) 인식이 안 된다. 고장났다는 뜻이다. 두 개라도 쓰려고 일단 모셔놨다.


오늘은 드디어 며칠간 재고 고르고 하던 미러를 득템했다. 구입처 : (주)미라클글라스   http://www.미라클글라스.com

▲뒤에는 임시로 아이패드의 시계 화면을 띄운 모습. 상당히 잘 비추고, 또 잘 비친다.


이 거울은 샘플용으로 업체 팀장님이 들고 오신 것인데, 어차피 위에 필름이 조금 벗겨져 못 쓰는 거라며 주고 가셨다. (물론 나는 거울을 추가로 구매할 예정이다. 별도로 실험하는 게 있어서... 여기엔 자세히 쓸 수 없다만.)

참고로 이 거울은 '원웨이 미러(one-way mirror)'라는 특수유리다. 유리 한 면에 코팅을 씌운 것인데, 두 가지 종류가 있었다. 한 가지는 미러 바깥쪽(우리가 보는 쪽)에 반사 필름을 붙여 가공한 것이고 다른 한 가지는 반대면(모니터 유리와 맞닿는 곳)에 필름을 붙인 것이다. 각 장단을 따지자면, 미러 바깥쪽에 반사 필름을 붙이면 뒤쪽에서 비추는 화면이 좀 더 잘 보이고, 대신 지문이 상당히 잘 묻어난다. 반대로 반대면에 필름을 붙인 것은 지문이 거의 묻어나지 않는 반면, 뒤쪽에서 비추는 화면이 조금 더 어둡다. 더 푸른 빛깔로 비춘다고 생각하면 된다. 나는 어차피 지문을 묻히지 않을 것이라는 일념하에 전자를 선택했다. (위 사진도 전자다)

가격은 통상 큰 규모로 설치하는 경우에 따라 견적을 내기 때문에 1m*1m = 20만원(ㄷㄷ)이라고 했는데, 어차피 우리는 그보다 훨씬훨씬 작은 것이 필요하다. 나같은 경우엔 300*400(mm)를 문의했다가 A4사이즈인 210*270(mm)로도 견적을 냈는데, 사실상 가격은 6만 5000원으로 같았다. 유리 가장자리는 모두 공정해주실 예정이고, 다만 퀵비는 별도... (물론 나는 직접 찾으러 갈 수도 있다....!!!) 유리는 모두 수입산이고, 우리나라에선 더이상 제작하지 않는다고 했다. 

고로 주문은 내일 들어간다. (아아 내지갑... 혹자의 말마따나 '장난감을 만드는 데에는 돈이 드는 법이다'...)


그렇다면 화면은 어찌하느냐? 

한국내에서 찾으려든다면 역시나 몹시 비싸다. 7인치짜리 모니터 하나가 최저 8만원이다. 굳이 필요도 없는 터치스크린을 장착해서 그런가...

무려 'DIY 모니터 만드는 법'을 공유하는 카페까지 들어가본 결과, 많은 이들이 '어차피 라즈베리파이로 만들거라면, 이베이에서 모니터 모듈을 사라!'라는 가르침을 설파하고 있었다!! 그래서 굳이 이베이에 들어가서 봤더니, 읭? 죄다 메이드인 차이나인데다가 배송비도 제법 든다. 

다년간의 검색 실력을 곁들인 덕에 나는 '그렇다면 알리익스프레스가 짱'이라는 사실을 깨우쳤고, 결국 알리에 들어가 이와 같은 모니터를 발견하기에 이른다!


오늘 사려고 봤더니 내일부터 2불 가까이 깎아준대서 (우리돈으로 2천원이 넘지 않는가! ㅎㅎ) 내일 주문할 예정이다. 20불 짜리도 있었는데, 그 업체보다 여기가 좀 더 빠르게 배송해준다고(평이 좋아서) 해서 이쪽으로 주문하려고 한다. 

모두 온다면, 드디어 조립까지 할 수 있는 것이다 ㅠㅠ 



......그러고보니 날씨용 GUI랑 실시간 업뎃이랑...... 아직도 산넘어 산이다. 



(오늘밤엔 좀 해볼까...)







'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 9]  (0) 2016.04.18
smart mirror project [day 8]  (0) 2016.04.12
smart mirror project [day 6]  (0) 2016.02.25
smart mirror project [day 5]  (1) 2016.02.23
smart mirror project [day 4]  (0) 2016.02.22

통신자료 제공내역 결과 통지 받는 법

analysis

남들은 쉽다고 하지만 나는 무척이나 어려웠던 통신자료 제공내역 결과 통지 받는 법을 공유하고자 한다.

내가 어려웠던 이유는 두 가지로 압축된다. 1. 나는 성격이 급하다. 2. Gmail을 쓴다(?). 

<해당 포스팅은 KT에서의 통신자료 제공내역 청구에 관한 내용을 다룬다. 왜냐면, 내가 그 통신사의 호갱님이니까...>


그러니까 이 자료를 신청한 것은 지난 3월 9일의 일이었다. 지금(21일)으로부터 12일 전이다. 자료 신청하는 방법은 olleh.com -> 로그인 한 뒤 -> 고객센터 -> 중간쯤 가로로 길게 메뉴바가 있다. 그 가운데 '통신자료제공내역 청구'라는 탭이 있으니 들어가서 시키는대로 동의하고 체크해드리면 된다. 대략 열흘 정도 걸린다고 소개된다. 

내가 내 정보를 받는 데 열흘이나 걸린다는 것을 납득하지 못하던 나는 '언제 신청했는지 날짜를 기억하지 못하고' 16일에 kt에 전화를 한다. 물론 핸드폰에서 100을 눌러서. (직통번호를 몰랐기 때문이다) ARS의 또박또박한 말투를 따라가다 또 한번 참지못하고 0번을 눌렀고, 이는 곧장 안내원으로 이어졌다. (다행히도 러시아워를 피해 전화를 했는지, 연결은 바로 됐다.)

개인적인 신조 중 하나가, 전화 안내원들과 통화할 땐 화를 내거나 흥분을 하거나 (물론 욕도) 하지 않는다는 것이다. 첫 통화는 이내 개인정보 전담부서로 이어졌고, 담당자분은 청구 내용이 너무 많이 밀려서 열흘보다 더 걸릴 수도 있다고 했다. 절차상 1)서버에 있는 개인 정보에 접근해 파일을 추출해야 하고 -> 2)이를 암호화해야하며 -> 3)웹용(정확히는 pdf)으로 전환해 메일을 발송해야 하기 때문에 이것만으로도 꽤 걸린다고 했다. 하지만 내가 알기론 이건 이메일 명세서와 같은 방식...


다행히 내 경우 열흘은 넘기지 않았다. 처음 통지서가 발송되기 까지는...

18일 첫 통지서가 도착했다. 비밀번호로 내 주민번호 앞자리만 누르면 된다고 했는데, 애꿎은 pdf파일은 비밀번호를 입력할 기회조차 주지 않았다. gmail은 늘 나를 미리보기의 세계로 인도했고, pdf뷰어는 '안열림'이라는 말만 내뱉었다. 시도해 본 것이 한 둘이 아니다. 내 컴퓨터가 맥북이라 보안상 문제가 됐나(참고로 kt는 재작년쯤 Active X가 있어야만 명세서가 열리던 html 시스템을 모두 보안pdf로 전환했다) 싶어서 윈도우 컴으로 돌려보고, 크롬도 써보고 파폭도 써보고 인터넷익스플로러에 아이폰, 갤럭시s까지 총동원한데다 pdf 파일 뷰어만 몇 개를 깔았는지 모른다. 끝끝내 파일은 열리지 않았다. 

다음날 KT에 전화를 걸었다. 친절한 ARS를 따라 번호를 꾹꾹 눌러가며 담당자와 기어코 통화가 됐고, 이러저러해서 파일이 열리지 않으니 다시 보내달라고 했다. 그는 다시 한 번 보내드리겠노라고 했다.


하지만 오늘까지 오지 않았다.

해결법을 SNS상에 물었으나 가장 마음에 드는 답이라곤 '팩스로 받아라'라는 것이었다. 그리고 오늘, 여지껏 오지 않은 메일과 아직도 열리지 않는 파일에 분통을 터뜨리며 다시한번 KT에 전화를 했고, 기어코 직통번호를 받아냈다. (1588-1130이다.) 팩스로 받는 것은 개인정보라 안 된다고 했고(!!!!) 굳이 오프라인으로 받고 싶다면 신분증을 지참해 kt로 가야한다고 했다. 

절충안은 G메일이 아닌 다른 메일로 받아보는 것이었다. 그렇게 결국에는 열리고야 말았다. 무엇이 문제였는지는 모른다. 다만 내가 여지껏 g메일로 받아오던 kt이메일 명세서는 단 한 번도 열린 적이 없었으며, 그것을 포워딩해서 그나마 '열리는' 메일로 보낸다한들 이또한 열리지는 않았다. 제3자에게 보내는 것이 허용되지 않는 꽤 무시무시한 보안시스템이라도 설치돼있는 모양인지, 아무튼 그러저러해서 받은 내역은 아래와 같다. 물론 나와 통화하신 분도 만만챦게 당혹스럽고 힘겨우셨으리라 생각한다. 내가 아무리 꾹꾹 참았기로서니와, 그래도 상대방입장에선 내 분노를 느꼈을 터이니, 조금 미안한 생각도 들었다.

통지 결과 털린 것은 아무 것도 없었다. 심지어 있기까지 했다면 나는 더더욱 폭발 했을지도 모른다. 하지만 왜 우리가, 나랏님의 '멋대로 들춰보는' 행태때문에 열흘 넘게 기다림을 겪고, 또 싫은 소리를 오가야 하는지에 대해선 도통 이해가 가지 않는다. 오늘은 이전까지의 내용을 살펴본 것에 불과하니, 실시간으로 통보가 오지 않는 한 우리는 이 절차를 '찜찜할 때마다' 반복해야 한다.

그나마 통신자료 제공내역이니 통지된다. 그 외의 것은 또 어찌 확인하겠는가.




'이세돌vs알파고' 분석 보려 했더니... 내 눈 앞에 광고만 50개

analysis

이세돌과 알파고의 대국이 펼쳐진 첫 날, 언론사들의 '광고 게임'도 함께 시작됐다. 정확히는 온라인 상 광고 수익을 거두기 위한 클릭 전쟁이 펼쳐졌다. 9일 오후 3시 30분부터 3시간 동안 '이세돌 인공지능'이라는 키워드로 포털사이트에 올라온 뉴스 건수는 모두 1011건이다. 같은 내용의 글자만 다른 뉴스들이 쏟아져 나왔다. 언론사는 84곳에 달했다. 

각 뉴스를 눌러 해당 언론사 사이트로 직접 연결해 광고 개수를 셌다. 이 과정에서 구글의 확장앱 가운데 하나인 애드블록(ad block)을 활용했다. 해당 앱은 사이트에 뜨는 광고를 잡아내 이를 차단하고, 광고가 몇 개나 숨겨있는지를 숫자로 보여주는 방식을 취한다. 기록된 수치를 토대로 해당 사이트의 광고 개수를 미루어볼 수 있는 것이다. 

가장 광고가 많은 언론사는 헤럴드경제였다. 한 화면에서 숨겨진 광고만 53개에 달했다. 


▲애드블락을 활용해 광고를 모두 지운 모습. 우측 상단에 붉은 원과 함께 53이라는 숫자가 적혀있다. 


▲애드블락을 하지 않았을 경우 화면


그 뒤를 충청일보(48개)와 동아일보(47개)가 이었다. 중앙 일간지 가운데선 동아일보가 가장 많은 수치를 보였다. 국내 대표적인 통신사인 연합뉴스도 광고가 40개에 달했다. 뉴시스(24개), 뉴스1(11개)보다 월등히 높은 수치다. 

방송사들은 광고 개수가 다소 적은 편이었다. MBC의 경우 애드블록에 잡히는 숫자가 0이다. KBS(1개)와 SBS(6개)도 한 자릿수를 기록했다. 다만 JTBC(17개)와 TV조선(16개), 채널A(21개) 등 종합편성채널은 두 자릿수를 보였고, YTN은 30개에 달했다. MBN은 지상파와 마찬가지로 5개를 보였다. 

같은 미디어그룹에 속해도 광고 현황은 천차만별이었다. MBN과 같은 매경미디어그룹에 속한 매일경제는 광고로 잡힌 팝업이 4개에 불과했다. 조선일보(15개)와 TV조선도 마찬가지였다. 다만 스포츠지(스포츠조선, 30개)는 조금 차이가 있었다. 중앙미디어그룹에 속한 중앙일보는 JTBC보다 7개 많은 24개를 기록했고, 일간스포츠는 31개에 달했다. 언론사별로 온라인 광고 유치 방식에 저마다 차이가 있음을 짐작할 수 있는 대목이다. 

온라인을 중심으로 하는 매체와 신문을 중심으로 하는 매체 사이에도 차이가 있었는데 결과는 다소 의외였다. 온라인 매체는 평균 20.35개를 기록했고, 지방지를 포함한 신문사와 방송사의 평균은 22.18개를 기록했다. 헤럴드경제와 충청일보, 동아일보에서 광고 수가 압도적으로 많기도 하지만 세계일보(41개)와 경향신문(32개), 서울신문(32개), 국민일보(32개)도 만만치 않게 높은 수치를 보였기 때문이다. 기존 신문지면에 싣던 광고 유치 방식을 그대로 옮겨와 온라인에서 이어갔을 가능성도 높다. 처음 시작하는 온라인 매체에 비해 광고를 수주하기도 더 쉬웠을 거란 분석이다. 

광고는 언론사들이 취할 수 있는 몇 안 되는 수익 구조 중 하나다. 불과 몇 년 전부터 네이버와 다음 등 주요 포털사이트들이 뉴스 기사를 해당 언론사 링크로 바로 연결할 수 있도록 조치를 취했고, 이에 따라 언론사들은 실시간 클릭경쟁을 통해 자신의 사이트를 누르도록 독자들을 유도하고 있다. 이른바 '뉴스 어뷰징(abusing)'이 더욱 극심해진 배경이다. 독자들은 광고를 지우느라 정작 콘텐츠를 읽기 어려운 언론사들을 골라 스스로 블랙리스트를 만들고 있다고 토로한다.  

이날 아침 한 언론에서는 '뉴욕타임즈는 광고 차단 앱을 깐 이용자는 뉴스를 볼 수 없도록 한다'는 내용의 기사를 실었다. (http://news.joins.com/article/19693036) 미국의 한 기자도 자신의 트위터에 이 내용을 올렸고, 독자들의 문의도 잇따랐다. 


▲ 출처 ( https://twitter.com/jeremymbarr/status/706864707840380929 )

언론사들의 고군분투는 계속된다. 다만 언론사의 수익구조를 보장해줄 정도로 독자들이 눈을 어지럽혀가며 광고를 차단하지 말아야만 하는지에 대해선 논의가 더 필요할 것으로 보인다. 


언론사별 광고 개수는 다음과 같다. 

표.pdf

[학회] CSCW 2016

analysis

학회에 다녀왔다. 그래서 smart mirror project가 잠시 중단됐다. 다녀온 학회는 CSCW(Computer-Supported Cooperative Work and Social Computing). HCI에서 가장 권위있는 학회는 아무래도 CHI이지만, 그렇게 브로드한 학회보다는 다소 디테일한 CSCW가 더 마음이 갔다. (물론 날짜도 맞고, 때마침 좋아하는 도시에서 열린 것도 있다만......)

도시는 미국 샌프란시스코였다. 장소는 하얏트 리젠시. 2월 29일부터 사흘동안 열렸고(27일부터 그 다음날까진 워크숍 기간이었다), 학회비는 학생기준(현장등록시) 우리돈 40여만원... (달러가 올라서 타격이 조금 더 컸다... 훌쩍...) 다음부턴 꼭 내가 논문을 내서 통과를 한 뒤 무료로 참석할 수 있도록 해야지... 참고로 CSCW의 논문통과율(acceptance rate)은 CHI와 비슷한 25%다. 

느낀 바를 압축하면 다음과 같다. 

1. CHI가 클릭수 높은 기사라면 CSCW는 후속보도를 할 수 있는 기획기사다.

2. 세상에 대한 관심과 궁금증이 결국 멋진 논문을 만든다!

3. 실험을 해보지 않고 아이디어만 내서는 좋은 논문이 나올 수 없다. 

4. 로컬의 특수성을 핑계로 글로벌만 바라보며 로컬을 연구하지 않는 것은 아주 거만한 일이다. 답도 재료도 늘 주변에 있다.


일단 이동네 명물 필즈커피를 한 잔.

민트를 띄워준다.



각설하고, 


내가 들어갔던 발표 및 관심있게 지켜본 논문 리스트를 말씀드리자면 다음과 같다. 

- the diffusion of Trust & Cooperation in Teams with Individual's Variations on baseline trust

- personality matters: Balancing for Personality types leads to better outcomes for crowd teams 

- embracing cultural diversity: online social ties in distributed workgroups

- effects of sensemaking translucence on distributed collaborative analysis

- on the wisdom of experts vs. crowds: Discovering Trustworthy topical news in microblogs

- computer mediated communication session: Provocations & applications to industry 

- Panel - Does the Sharing Economy do any Good? 

- What's in a Like? Attitudes and behaviors around receiving Likes on Facebook

- Once More with Feeling: Supportive Responses to social sharing on Facebook

- you get who you pay for: The Impact of Incentives on Participation Bias

- complex decision-making in clinical practice

- A Fundamentally Confused Document: Situation Reports and the Work of Producing Humanitarian Information 

- Community-based Data Validation Practice in Citizen Science

- Convivial Decay: Entangled Lifetimes in a Geriatric Infrastructure

- Storytelling with Data: Examining the Use of data by Non-profit Organizations

- keeping up with the tweet-dashians: The Impact of 'official' accounts on Online Rumoring

- crystallize: an Immersive, Collaborative game for second language learning


제목만 봐도 어떤 내용을 중점적으로 봤는지 아실 듯. 개인적으로는 건강이나 교육에는 그리 큰 관심이 없고, sns data 또는 journalism 데이터 자체에 초점을 맞췄다. 분위기는 crowd 중심의 big data -> experts 중심의 not that big data로 가는 듯. collective intelligence의 시대가 다소 저무는 느낌도 든다. 대신 함께 일하는 것, collaborate work에 대한 관심이 높았다. 자세한 논문 리뷰는 차차. 

 

개인적으로는 첫날 오전에 열린 구글의 사이먼 로저스 강연(키노트)이 궁금했는데, 비행기 도착시간 자체가 맞지 않아 놓쳤다. 사이먼 로저스라 한다면 가디언에서 데이터 저널리즘을 아주 획기적으로 시도한 뒤 이를 정착한 장본인이다. 이쪽 업계에서는 아주 후덜덜한 스펙을 지닌 자인데, 현재는 구글에서 데이터 저널리즘을 이끌고 있다. 자세한 내용은 여기서. http://simonrogers.net/   먼저 도착한 동료들에 따르면 "뻔한 얘길 했다"고 한다. 



  

smart mirror project [day 6]

DIY IOT - smart mirror project

2월 24일 여섯째날

오늘의 목표 : 정말로 오늘만큼은 이 모든 것들을 기필코 한 화면에 모으고야 말겠다.


아 빌어먹을.

사실은 요 이틀째 이게 제일 골치였다.



보시다시피 나는 시계와 날씨와 뉴스를 모두 한 코드에 넣었는데, 돌리고 또 돌려봐도 자꾸만 저 시계만 뜨는 것이다 .

물론 어떤 경우에는 시계는 사라지고 맨 마지막에 넣은 날씨만 살아남기도 했다!! 그리고 어떻게 해도 뉴스만 남는 법은 없었다. 


사태를 해결하기 위해 장장 수 시간을 쏟았고, 그 결과 



드디어!!! 내가 원하는 바를 이루고야 말았음 ㅠㅠ 엄마 보고싶어요 ㅠㅠ 너무 신나서 창 이름도 good으로... 


... 자 이게 어떻게 된 일인지, 비록 밤 12시를 넘긴 이 시각에 나홀로 연구실에 남아있긴 하다만 조금 썰을 풀어보도록 하겠다. 

문제의 발단은 늘 그렇듯 tree에 있다. 각자 따로 띄우면 멀쩡하게 잘만 출력되던 것들이, 합치면 돌연 실종되는 사태가 벌어진다? 그러면 이 코드 전체의 구조에 문제가 숨어있는 것이다. 물론 나도 그 사실은 이미 일찌감치 눈치채고 있었다. 

허나 wxpython의 구조는 뭔가 python 그 자체와는 또 상당히 달랐다. 

wxpython 웹페이지 만든 인간은 (물론 그가 wxpython도 개발했겠지만) 만나기만 해봐라 혼내줄테다. 

http://www.wxpython.org/docs/api/trees.html

이 사이트에 들어가보면 이유를 알 수 있다. 내가 찾는 트리 구조를 말그대로 줄줄줄 '나열'해준 덕에 내가 찾는 정보를 찾아 헤매느라 시간이 오히려 더 많이 걸렸다. wxpython은 앞서 말했듯 쓰는 사람이 별로 없는지 어쩌는지 라이브러리도 별로 없어서... 꺼이꺼이....


결론부터 말하자면, class안에 def를 달아 기능(function)을 만드는 데 끝나는 게 아니다. 나같은 경우엔 시계는 text 그 자체로 받아왔고(이미 시계를 텍스트로 전환하는 툴이 있었으므로) 기사와 날씨는 텍스트그리기 기능(그림판에서 A라고 쓰인 버튼이 수행하는 텍스트그리기 기능을 생각하면 된다)을 가져다 그 안에 데이터를 문자로 변환해 넣는 식으로 코드를 짰다. 이 텍스트그리기 기능이 PaintDC라는 것인데, 이 'DC'라는 것이 class-object-그리고 그 다음에나 있는 꼬랑지같은 녀석이었다. 아주 멀리멀리 떨어져있는 객체 오브 객체, 아주 작은 클래스인 셈이다.


그러니 시계 vs. 기사랑날씨 - 이 두 개의 이를테면 꾸러미 자체가 다른거다. 맨 바탕에 시계를 그려놨다면, 기사랑날씨는 맨 바탕에 올려둔 박스 안에 담아둔 셈이니까. 더구나 시계는 panel이라는 녀석이 받고 있었다. (그냥 맨바닥에 쓰되 그 맨바닥을 panel이라고 define했던 거다)


이게 바로 내가 이 모든 툴을 완성하기 전까지 코드를 공개할 수 없는 이유다. (ㅋㅋㅋㅋㅋ)


여차저차 기사랑 날씨는 같은 박스 안에 담아두고, 시계판과 공존할 수 있도록 열심히 잘 짜봤다. 

하지만 위에서 보다시피 폰트의 통일성까지는 도저히 구현할 수 없었다. (언젠가는 누군가 이 포스트를 보고 알려주겠지...) 박스 안에 폰트를 지정할라 치면 function은 font를 적용하지 못하네 어쩌네 잔말이 많다. 현재의 이 보통 폰트도 그냥 봐줄만해서 일단은 뒀다. (하지만 거울이 커지고 멀리서 거울을 봐야하는 사태가 벌어지면 폰트도 커져야 하고 색채와 글꼴도 바뀌어야하겠지...)



두 번째 난관. 

날씨 데이터가 너무 많아서 고르고 또 고르고, 하려고 봤더니 세상에, 일일이 입력하지 않는이상 오존정보부터 바람세기까지 다 거울에 비춰줘야 할 지경인 것이었다. 그래도 프로그래밍이라는 게 아날로그는 좀 최소화해야하지 않나 싶어서 최대한 짱구를 굴려봤다. for i in xrange(10)을 2,4,6,8,10으로 점핑해서 보여주는 방법을 써볼까해도 forecast.io에서 뱉어내는 순서가 내가 원하는 그런 순서도 아니었고... 

고로 날씨는 깔끔하게 '오늘 날씨', '현재기온', '체감기온', '현재 날씨'로만 구성해 '쳐 넣었다'.

코드로 살짝 말씀드리자면,


>> def call_forecast():

       a = []

      if fio.has_daily() is True:

daily = FIODaily.FIODaily(fio)

a.append('Today: ' + unicode(daily.icon))

if fio.has_currently() is True:

currently = FIOCurrently.FIOCurrently(fio)

a.append('Temperature: ' + unicode(currently.temperature))

a.append('ApparentTemperature: ' + unicode(currently.apparentTemperature))

a.append('Now: ' + unicode(currently.summary))

return a

>> weatherlist = call_forecast()


이런 식이다. 일일이 어펜드하는 정말 초보 수준이지만 언젠가는 극복할 수 있으리라 본다. (아니 뭐 사실 내가 필요한 정보가 뭐 이만큼인걸....)


세 번째 난관... 까지는 아니고 잠시 헤맨 내용

알다시피 망할 시계가 계속 이상한 시간을 가리키고 있었다. 그 이유를 살펴보니 GMT_9로 돼있었던 건데, 누군가가 일본을 기준으로 wxpython을 쓸 땐 GMT_9로 해야한다고 해서 그걸 그대로 가져다 썼더니만...

이후에 EST도 써보고 이것저것 굴려봤으나, 역시 우리의 wxpython은 자신만의 단어들을 보유하고 있었다! 대단혀유. 

참고 :  http://wxpython.org/Phoenix/docs/html/TZ.enumeration.html

GMT9 로 써야한다. 난 GMT+9로도 고쳐봤었는데... 어쩐지 안 먹더라니...




열심히 살고 있다고 광고나 할겸 지금 이 순간 내 책상이나 사진으로 찍어 올려야겠다. 


(책상이 어지러우면 간식을 더 먹는다는 연구결과도 있는데....)

아이템 1.  코끼리 바탕화면 맥북과 사자 얼굴 바탕화면의 데탑 모니터. 언젠가는 데탑모니터가 맥북을 잡아먹는다는 뜻은 아니고 그냥 심란할 때 동물 사진을 보면 뭔가 기분이 좋아진다. 마침 맥 기본 배경화면에 요놈들이 있길래...

아이템 2. 입학하고 손목이 안 좋아져서(나이를 먹어서) 예전에 사뒀던 파워볼을 다시 꺼내들었다. 손목은 모르겠고 팔꿈치 아래 근육이 점점 커지는 듯...

아이템 3. 알라딘굿즈 사은품으로 얻어내고야 만 Don't Panic 컵. 별로 살 책도 없었는데 굳이 사서 이 컵을 얻은 이유는 그냥 저 문구가 그렇게 와닿... 으흑흘그흐ㅡ흐그흑

아이템 4. 자색고구마와 썬업과 물과 호두과자. 운동도 안 하는데 살이나 찌지 말자며 물 두 병을 비우고 간식 대신 자색고구마를 먹겠다고 사둔 뒤, 오렌지향이 나는 쥬스와 천안에서 사온 지 12시간 된 마른(그러나 바삭한) 고칼로리 호두과자를 대신 비웠다. 점점 위장만 늘어난다.

아이템 5. 연구실 불이 아무리 밝아도 나는 나만의 로맨틱한, 마치 하버드 도서관같은 느낌의 주홍빛깔 조명을 쓰고야 말겠다며 얼마 전에 산 녀석인데 눈이 좀 부시다. 

아이템 6. 라식한 지 3년 만에 왼쪽 눈만 시력이 절반 이하로 뚝 떨어져 급히 수혈 중인 점안액... 아무리봐도 수술이 잘못된 것 같다... 


아 이거 쓸 시간에 잠을 자면 눈이 좋아지려나...



아무튼 이제 내게 남은 일은 크게 두 가지다. 

1. 오늘의 날씨는 sunny, cloudy, rain, snow등 몇 개 안 되니까 아이콘을 찾아 매칭을 시켜보자. 이건 어쩌면 잘 할 수도 있을 것 같다. 것보다, 뉴스와 날씨를 시시때때로 업데이트 해줘야하는데.... 아.... 그게 남은 거구나 어쩐지 뭔가 좀 빨리 끝났다 했다.........

2. 거울을 찾아야 한다. 그리고 그에 맞는 작은 모니터를 찾으면 된다. 모니터는 사실 라즈베리파이용 모니터를 구해다 쓸까 싶다. 너무 작나... 거울은 아마 청계천을 한 바퀴 돌아야 할 듯... 이 두 가지만 구하면 사실 다 끝난 거다. (뒤에 붙이는 거야 뭐!) 



음... 아무래도 3월을 넘기게 생겼다....



며칠 전 들은 말 중에 오늘 유독 힘이 됐던 한 마디! 

"터미널에 뜨는 오류메시지만큼 코딩 실력도 는다!"

................정말이쥬? ... 




-----------------------------------------------

새벽 1시 43분 현재 여지껏 잠이 오지 않아서 결국 위 '남은 일' 가운데 하나를 해치우기로 마음을 먹었다. 

일단 '한 시간에 한 번씩은 api 콜을 할 수 있도록 하는' 라이브러리를 찾았다. 

참고 :   https://pypi.python.org/pypi/schedule

MIT연구진이 만든 모양인데 참으로 감사하다. 



'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 8]  (0) 2016.04.12
smart mirror project [day 7]  (0) 2016.03.28
smart mirror project [day 5]  (1) 2016.02.23
smart mirror project [day 4]  (0) 2016.02.22
smart mirror project [day 3]  (0) 2016.02.19

smart mirror project [day 5]

DIY IOT - smart mirror project

2월 23일 화요일, 다섯째날

오늘의 목표: 한 화면에서 날씨도 나오고, 시간도 보이고, 뉴스도 출력하도록 해보자 ===> (오후에 변경) GUI에 데이터를 얹는거라도 완성하자 


아침부터 일단 ssh 연결 및 wifi 동글 활성화를 위해 라즈베리파이에 이것저것 설정을 했다. 

지난 번 나를 그토록 애먹였던 wifi 동글 설치는 의외로 아주 빠르게 잘 됐다. 뭐든 그렇지만 '차분하게' 따라하면 다 잘 풀린다. 드디어 랩 와이파이가 잡힌다 ㅠㅠ (물론 랜선을 연결해도 되긴 하지만......)

참고: http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_rpi&wr_id=18

   

더 욕심을 내서, 맥에서도 라즈베리파이 구동 화면을 검정화면 말고 풀 화면으로 모두 보기 위해 vnc viewer를 설치하기에 이르는데... 계속 host computer가 거부한다는 메시지만 뜬다. 그리고.... 이 서버는 내 맥을 외부에서 인식하기 위한... 그런 느낌을 준다... 이상한 일이지...

참고: http://jpub.tistory.com/286

일단은 넘어가기로... (이건 당장 중요한 일이 아니니까...) 내 바탕화면 코끼리의 자태가 살짝 보인다.


다시 시각화 작업을 시작해보자. 어젯밤에 나름 이런저런 고민과 실험을 한 끝에! gui 툴은 wxpython을 활용하기로 했다. 내가 생각한 python gui 라이브러리의 장단은 요렇다. 

 

Tkinter 

PyQT4 

wxpython 

 장점

굳이 설치할 필요가 없다. 파이썬 기본라이브러리로 내장돼있으니까.

정말 많은 용례가 있다. 참고할만한 사이트도 많고 소스도 많다. 

예쁘다. 뭔가 size 지정같은 것도 그렇고 얼핏보면 꽤 직관적인 것 같다. 라즈베리파이에선 설치도 아주 노말하게 잘 된다.

 단점

안 예쁘다.

설치가 겁나 빡세다. 

이상하게 내 맥에선 자꾸 설치가 튕긴다. 

너무 편파적인 분석일지도 모른다. 나는 원래 하나에 애정을 가지면 그냥 그것만 예뻐보이..ㅁ...


시각화


일단 wx.widget 라이브러리를 백번 활용해야겠다는 생각에 여기서 자체적으로 가지고 있는 시계 코드를 좀 써봤다. 

이 링크 최고다   http://zetcode.com/wxpython/in18/

잘 흘러가긴 하는데 시간이 살짝 맞지 않는다. 다시 잡아줘야할듯.


오후 2시 45분 현재.

이번엔 wxPython에 뉴스를 띄워보기로 한다. 전에 만들어둔 것을 복붙해서 요리조리 굴려보는 것이다. 하지만 이 코드 하나 가지고 지금 약 두 시간 정도를 헤매고 있다. 어찌보면 이거 하나 해결되면, 날씨도 쉽게 할 수 있을 듯도 한데...

(아무리봐도 정말 원시적으로 붙여넣는 코드화면....)

화면 속 노란색, 저 txt가 문제다. txt = dataread()를 하면, 그건 dataread()를 통해 얻는 텍스트데이터를 가져가는 게 아니라 dataread()라는 클래스(기능)을 가져갈 뿐이다. 즉, drawtext를 할 수 있는 string(문자)으로서 부적합한 셈이다. 

여기에 한 줄만 넣어 바꾸거나, 혹은 drawtext가 아닌, 말그대로 텍스트를 출력하는 게 가능하면 좋겠는데... gui라는 것이 그래픽 부분이니... 당췌 가능할지 모르겠다. (엉엉) 계속 찾아보던 중 방법을 알아냈다. (사실은 옆자리 태영이랑 앞자리 진한이가 도와줬다!!)

방법은 생각보다 간단했다. list 생성해 -> append를 하는 것... 그럼 type = list가 되니까, 거기서 요소를 추려내면 그건 txt!

나는 리스트까지만 생성하고, 어펜드는.... 하지 못했다.... 이게 바로 겉핥고 뛰어넘기의 한계 ㅠㅠ 


결과적으로 이와 같은 아름다운 결과가 드디어 나왔다 ㅠㅠ 



물론 날씨도 이렇게 잘 나온다. 



이렇게 데이터들을 GUI에 얹었다. 정말 행복한 하루다. 이제 이들을 한 화면으로 모아다가 예쁘게 배열도 좀 하고 정보도 좀 고르고 해야하는데...... to be continued....




 

'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 7]  (0) 2016.03.28
smart mirror project [day 6]  (0) 2016.02.25
smart mirror project [day 4]  (0) 2016.02.22
smart mirror project [day 3]  (0) 2016.02.19
smart mirror project [day 2]  (5) 2016.02.17

smart mirror project [day 4]

DIY IOT - smart mirror project

금토일 꿀맛휴가를(반타의적으로) 보낸 뒤 컴백.


2월 22일 월요일, 나흘째. 

지난이야기 : SSH 설정을 잘못하는 바람에 라즈베리파이가 집에선 돌아가지 않았고, 시각화 코드나 짤까 했으나 결국 이래저래 의욕도 꺾이고 졸립고 피곤하고 놀고싶고 신랑도 징징대고 그래서 나또한 같이 딩가딩가 놀아서 아무 것도 못 했다는 건설적인 이야기.

나도 블로그하는 사람들처럼 중간에 이모티콘도 넣고 예쁘게 좀 써볼까 싶어...


오늘의 목표 : 1. 파이썬 코드를 어떻게 화면 전체에 예쁘게 잘 구현하지? 검정화면(터미널) 말고 말야.   2. 이쁜 날씨 이모티콘들을 연동할테야. .... 0. 일단 SSH를 제대로 완성해 저 느려터진 마이구미 말고 내 맥에서 잘 한 번 써보자. 



0순위인 맥 ssh 연결이 연구실에선 잘 된다. 즉, ddns의 문제인가보다. 집에서 내가 라즈베리파이를 쓸 일이 있을까? 집은 쉬는 곳.........

일단 ssh 문제는 이정도로 그냥 만족하고 해보기로 한다. 



그래 나는 빠르게 일을 추진하는 걸 좋아하니까. 



그리고 첫번째 미션을 수행하기 위해 지난 주말에 살짝 찾아보기만 했던 그 코드를 꼼꼼히 살펴보기로 한다.

https://github.com/szantaii/mirror-pi

젠장. 이건 사실상 스마트미러를 완성할 수 있을법한 라이브러리다! 아 이건 내 취지에 맞지 않다.

...하지만 살짝 참고하기로 한다.


apt-get을 사용해 뭘 설치하든, 요즘은 죄다 ftp.kaist.ac.kr 미러에서 막힌다. 내가 좀 울었더니 연구실에서 "요즘 거기 안 돌아감" 이라고 한다. 고로 국가 자체를 변경해 우회해서 다운 받아야 할 지경. 

[라즈베리파이 리눅스 미러 변경하는 방법] http://www.berrycracker.net/archives/538       (개인적으로 이 포스팅이 가장 도움이 됐다. 여기 소개된 wget은 굳이 안 해도 괜찮음.)

[어렵고 복잡하고 키도 잘 안먹어 속이 정말 터지기 일보 직전인 vim 편집기에 대한 키 설명은 요기]    https://kldp.org/node/102947


아 드디어 앱트겟(apt-get)이 겁나 빠른 속도로 잘 돌아간다 ㅎㅎ하하하핳하하하하하하하핳



.... 전반적으로 내가 새로 배워야 할 언어가 느는 느낌이다. 

고로 파이썬만으로 GUI(graphic user interface)를 구현할 수 있을 만한 것을 찾아보라는 조언을 받들어 얼마전 시계를 구현할 때 썼던 Tkinter를 활용하기로 했다. (어쩌면 나는 pyQT를 다시 보게 될 지도) 고로 간단하게 일단은 띄우는 것부터 해보기로 한다. 연구실 오빠들에 따르면 쟝고나 플라스크를 쓰면 여러 장단이 있다고 하나 그럼 내가 할 일이 너무 는다. 고로 나는 그냥 Tkinter를 쓴다. 

하지만 아무리봐도 디자인이 너무 예쁘지 않아 PyQt4를 쓰기로 마음먹는다. (갈대같은 내마음) 이또한 설치 빡세기로 유명한 라이브러리인지라, 오늘 밤은 이대로 설치나 하며 보내야할 듯 싶다. (밤 11시52분 현재) 그러다 결국 설치하다 (빡쳐)죽겠다는 생각이 들어 재빠르게 wxpython을 깔았다. 이게 가장 나은 것 같다. (심지어, 좀 작긴 하지만, 그래도 html툴을 활용할 수도 있다!) 신난다. 지금은 이거 연습 중이다. 참고 사이트는 http://wiki.wxpython.org/wxPython%20by%20Example




(하지만 이 또한 맥에선 잘 깔리지 않는다. 이놈의 맥 보안설정....)

(리눅스 짱)

(그..그래서 오늘도 딱히 한 일이 없는 게야???)

(어라... 저 위에 목표를 하나도 달성하지 못..했....)




http://zetcode.com/wxpython/layout/

여기서 wxpython 좀 더 배울 수 있을 듯!! 팁좀 많이 얻어가장 :D





'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 6]  (0) 2016.02.25
smart mirror project [day 5]  (1) 2016.02.23
smart mirror project [day 3]  (0) 2016.02.19
smart mirror project [day 2]  (5) 2016.02.17
smart mirror project [day 1]  (0) 2016.02.17

smart mirror project [day 3]

DIY IOT - smart mirror project

그러니까 2월 18일 목요일, 셋째날.

아침 랩미팅을 마치고, 오늘은 시각화 작업 전에 라즈베리파이 ssh 연결 및 와이파이 연결을 성사시켜야겠다는 생각이 들었다. 렉쳐에서 들은 아두이노가 뭔가 매력적이어서 귀를 쫑긋거리며 또다시 개발잼에 빠지는데.... 허나 며칠 잠을 못 자 컨디션이 바닥을 친 가운데, 오늘은 일단 요것만 하고 집에 가서 시각화 작업을 해야지 하고 시작을 했는데...

망할. 우리의 사랑스러운 마이구미 라즈베리파이가 처음엔 와이파이 동글을 인식하는듯 싶더니, 한 번 sudo ifdown wlan0 을 실행한 뒤론 줄곧 먹통인 것이다!!! sudo ifup wlan0이 안 돼!!! ifconfig만 몇 번을 쳤는지 모른다 ㅠㅠ

애증의 와이파이. 애증의 동글. 남들은 잘만 돌아간다는 ipTime N100mini 인데, 나는 당췌 무엇을 건드리고 만진 것인지 그 이후로 나의 라즈베리파이는 no wirless interfaces found라는 메시지만 던졌다... 더구나 호기심도 넘치고, 내 손으로 고치는 걸 좋아하는(허나 고친 적은 없는) 이놈의 성격 탓에 이런저런 파일들을 만지기 시작하는데... (conf 파일 하나도 파일명이 잘못 타이핑돼있길래 굳이 mv 실행해서 바꾸...ㅁ.... warning을 몇 번을 봤는지 모름....)



결국 만들어놓은 py 파일만 이메일로 전송한 채 라즈베리파이 sd카드를 포맷하기에 이른다. 하핳ㅎ하핳하ㅏㅎㅎ핳핳

다시 까는 데 오늘따라 왜이리 오래 걸리는지. 기왕 새로 까는 거 noobs lite가 아닌 noobs full ver. 을 설치해서 그런가. 결국 점심 안 먹고 빨랑 집에 가서 쉬다가 시각화를 하겠다는 모든 계획은 물거품이 됐다. 다시말해 밥도 못 먹고 day 1의 작업을 처음부터 다시 다 했다는 말씀 되시겠다. 덕분에 나는 리눅스의 명령어를 조금은 외울 수 있었을 수도 있고... (좋게 생각하자...)



그래서 ssh 연결은 성공했느냐고?

일단 wifi 동글 설치는 집에가서 하겠다는(미루고 미루고) 마음가짐으로 원격제어가 가능한 ssh부터 확인했다. 아, 내 아이피는 왜 남들과 달리 10.으로 시작할까. 신기해하면서. 그리고 분명 랩에선 '올 작동함 오올' 하고 감탄을 하고 집으로 가져왔는데,



안 됨ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 집 컴이 모두 맥이라 모니터 연결할 길도 없는데 망ㅋㅋㅋㅋㅋㅋ 이럴 줄 알았으면 hdmi 선 좀 랩에서 가져다가 집 tv에라도 연결해서 쓸 걸 망ㅋㅋㅋㅋㅋㅋ 더구나 랩에서 작동하는 걸 보고 신나는 마음에 키보드, 마우스 동글 모조리 빼고 왔는데ㅋㅋㅋ 기가 인터넷 빵빵 터지는 우리집 랜선도 잘 인식했고, 전원도 샤오미 배터리 풀충전 된놈으로 아주 잘 돌아가고 있었는데... 찾아보니 ddns 문제일 수도 있다고 한다. 

주말에 랩 나가야하나 심각하게 고민했으나 생각을 고쳐먹음. (경부선 타고 주말에 상경하기란 역시나 버거운 일. 아 물론 금욜에 갈 수도 있으나 이미 허약해진 심신...)



주말엔 라즈베리파이를 가방 속에 고이 모셔두고, 샤오미 배터리나 충전하며 코드를 짜야겠다는 결심을 합니다. 한 것도 없이 지나가버린 나의 day 3... (매일매일 (언제 현실이 될 지 모르는)아이디어만 샘솟....) 



...혹시 랩에서 나오기 전에 shutdown 어쩌고를 입력하는 바람에 이렇게 된 건 아닐까?.... 의심만 느는 중....





ps. 블로그 글도 하루 밀려 쓰게 됐는데, 이유인즉 그새 내 티스토리 비번을 잊어버려서 로그인 락이 걸렸기 때문ㅋㅋㅋㅋㅋㅋㅋㅋ 아니 어떻게 매일 쓰는 사이트인데도 비번을 그리 틀리는지...... 



'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 5]  (1) 2016.02.23
smart mirror project [day 4]  (0) 2016.02.22
smart mirror project [day 2]  (5) 2016.02.17
smart mirror project [day 1]  (0) 2016.02.17
smart mirror project [intro]  (0) 2016.02.17

smart mirror project [day 2]

DIY IOT - smart mirror project

2월 17일 둘째날

오늘의 목표. 책을 살펴보니 라즈베리파이로 소리 정도는 재생 해보고 싶고, 날씨API를 끌어다 쓸 적절한 코드를 짜고자 한다. (시각화는 내일쯤...)


오늘은 소리를 재생했다. 스피커 케이블을 찾을 길이 없어 고민하고 있는데 연구실 오빠가 "이어폰을 쓰면 됨"이라고 알려주었다. 역시 길은 어디에나 있다. 느려터진 랜선을 부둥켜 안고 good morning wav 파일을 검색해 다운을 받았다. 그리고 돌려봤는데...... "good bye"란다. (음....?) 음원이 이상하다.


이어 날씨api를 받아 파이썬으로 코드를 작성해보았다. 이곳 저곳 뒤져봤는데, 많은 이들은 open weather api를 쓴다. (구글 웨더 api도 있었지만, 2010년대 초반 이후로 서비스가 중단됐다고 한다)

하지만 내가 제일 좋아하는 사이트(앱으로 즐겨찾기도 해뒀더랬다)는 forecast.io 다. 물론 당연히 이곳도 api를 제공한다! 심지어 언어별로 라이브러리도 친절하게 잘 형성돼있다. 

나는 파이썬을 쓰므로, 파이썬에 맞는 라이브러리 두 개를 찾았다. 

깃헙의 https://github.com/ZeevG/python-forecast.io     이걸 참고할 수 있고, 
참고로 파이썬 켜기 전에 pip install python-forecastio 를 돌려줘야 forecastio를 import 할 수 있다. 
또 다른 하나는 https://github.com/dvdme/forecastiopy    다. 이 또한 pip install forecastiopy를 해줘야 한다. 
개인적으로는 후자가 매우 마음에 들었다. 

위와 같은 결과가 나오고(개인적으로 저 마이구미를 꼭 화면에 담고 싶었으므로 걍 나이브하게 사진을 찍어 올림.....) 

나는 저 데이터들 가운데 temperature min - max 와 humidity, summary 를 뽑아낼 예정이다. 더불어 icon을 가져다 실제 예쁜 아이콘들과 매칭해 출력할 것이다. 


내친김에 뉴스api도 좀 썼다. ap news나 reuter보단 nytimes에 좀 더 마음이 가서... (물론 한국어를 파싱할 수 있는 네이버 개발자 툴을 활용할 수도 있지만... 한글화 작업은 다음에 해보기로... 더구나 나는 외신을 더 많이 보므로...)


결과적으로 top stories의 제목만 용케 잘 뽑아 왔다. 욝 타임즈의 api는 여기를 참고하면 된다. 

http://developer.nytimes.com/docs/top_stories_api/

물론 스택오버플로에 올라온 것도 활용했다. http://stackoverflow.com/questions/16431120/nytimes-api-python

처음엔 섹션을 science만 설정했는데, 오늘자 top stories에 해당 분야가 없었는지 출력값이 [ ]로 나와버렸다. 맞춤형 콘텐츠를 실시간으로 받아보는 일은 결국 콘텐츠 생산자에게 달려있으니...


그러고보니 시계를 안 했다. (ㅋㅋㅋㅋㅋㅋㅋ 미러의 핵심인데...)

이 글에서 맨 마지막에 나온 코드로는 팝업으로 뜨는 디지털 시계만 나온다. 맨 마지막줄 root.mainloop()을 후에 잘 활용하면 될 듯. 
내 라즈베리파이가 영 이상한 시간을 가리키고 있어서 사진은 저리 나왔다. 음, 영 이상한 시간은 아니고 GMT 기준시다. 세계기준시인 타임티커에서 데이터를 가져온 것으로 보이고, 이걸로라면 날짜도 바로 따올 수 있을 것 같다(???!)



....늘 그렇듯 안 예쁜 건 예쁘게 만들면 된다. (아마도 그럴거다...) 그리고 마이구미는 몹시 귀엽다.



이제 시각화 작업을 하면 된다.

(그럼 이제 다시 js와 css를 펼쳐야 하는 것인가...?...)



'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 5]  (1) 2016.02.23
smart mirror project [day 4]  (0) 2016.02.22
smart mirror project [day 3]  (0) 2016.02.19
smart mirror project [day 1]  (0) 2016.02.17
smart mirror project [intro]  (0) 2016.02.17