본문 바로가기

IT

크롤러 (crawler) 웹에서 크롤링 관련 설명을 체계적으로 해놓은 곳을 처음 찾았다. 영어이기는 하지만 재미있다. 아래는 내가 찾았다는 IBM의 크롤러관련 설명 페이지이다. http://publib.boulder.ibm.com/infocenter/discover/v9r1m0/index.jsp?topic=%2Fcom.ibm.discovery.es.ad.doc%2Fiiysacweb.htm 내 직업이 크롤링이지만 사실 크롤러에는 여러가지 종류가 있다. 흔히, 구글같이 큰~~ 웹 크롤러를 생각하겠지만, 이미지만 모으는 이미지 크롤러, 전화번호만 모으는 크롤러, 특정 사이트만 수집하는 크롤러 알고있는지 모르겠지만 사실 크롤링의 목적은 모아온 정보를 어떻게든 이용하기 위해서일 것이다. web crawler는 웹 페이지 검색을 위한 데이.. 더보기
개발자라면 구독해야할 사이트 구글 I/O 컨퍼런스 구글 IO에서는 web, mobile, enterprise application에 대한 발표가 이루어 진다. 2008년에 시작되었으며 wiki문서를 보면 history를 살펴 볼 수 있다. http://en.wikipedia.org/wiki/Google_I/O 올해 발표되었던 세션을 참고해 보자 매년 열리는데 최신 기술에 대한 google의 발표니 꼭 들어보아야한다. http://www.google.com/events/io/2011/sessions.html 페이스 북의 최신 기술을 발표하는 컨퍼런스 http://www.facebook.com/f8 별로 twitter를 좋아하지는 않지만 twitter의 최신.. 더보기
mysql replication 문제 (update replication 실패) 며칠전에 mysql master장비에 update를 했는데 replica(slave) 장비에는 update되지 않는 현상을 발견했다. slave 장비의 Seconds_Behind_Master도 0이었다. 즉, update량이 많아서 늦어지는 것이 아니었다는 이야기다. 나는 그 row들에 다시한번 update를 하다가 이상한 점을 발견했는데 실제로 update되지 않는 것을 목격한 것이다. 즉, master에 update MyDatabase.MyTable set myname="jigu" where id=12345; 라는 query를 쳤을 때 mater 장비의 myname에는 "jigu"가 slave의 myname에는 "abc"라는 이전값이 그대로 있는 것이다. 원인은 database name을 주는 방식에.. 더보기
크롤링에서 문서의 최신성 (freshness) 크롤링에서 문서의 freshness는 중요한 부분중의 하나이다. 어떤 site url을 방문 오늘 10:30 AM에 방문했다고 하자 하지만 그 문서(web page)가 10:50 AM에 변경되었다면 어떻게 될까? 즉, 우리가 방문했던 결과는 예전이 되는 것이다. 만약 그 문서가 web상에서 사라졌다면 우리는 없는 문서를 가지고 있는 것이다. web의 content들은 보통 create,update,delete의 동작을 반복한다. 따라서 문서가 생겼는지, 변경되었는지, 삭제되었는지를 빨리 알아내는 것은 매우 중요하다고 할 수 있다. 크롤러는 새로 생긴 문서를 최대한 빨리 발견해야하고 변경된 문서를 빨리 방문해 local에 저장된 문서의 최신성을 보장해주며 삭제된 문서를 빨리 발견하여야 한다. 이 중에서 변.. 더보기
Java pipeline framework (자바 파이프라이닝 처리) 자파 파이프라인 프레임워크 내가 말하려는 파이프라인은 JAVA pipeline framework 모델이다. 언어는 JAVA가 아니어도 된다. 이미지 검색을 해봤는데 마음에 드는 그림이 없어서 직접 그렸다. 그러니까 공장에서 자동차를 조립하는 것을 상상해보면된다. 저런 pipeline이 있고 그 line에 따라서 job(자동)가 오면 작업자1(process1), 작업자2(process2), 작업자3(process3)이 차례로 job에 대해 어떤 일을 진행한다. 이런 종류의 프로세스는 같은 작업에 대해서 병렬적인 프로세스를 위해 쓰인다. 저런 line이 10개면 동시에 10개의 파이프라인에서 10대의 자동차를 생산할 수 있기 때문이다. http://www.informit.com/articles/article.. 더보기
Mysql timestamp update null value, mysql에서 timestamp 컬럼에 null을 update할때 Mysql에서 자주 사용하는 TimeStamp는 날짜, 혹은 시간을 나타내는 컬럼이다. Mysql의 Tiemstamp관련 문서다. http://dev.mysql.com/doc/refman/5.0/en/timestamp.html TIMESTAMP columns are NOT NULL by default, cannot contain NULL values, and assigning NULL assigns the current timestamp. However, a TIMESTAMP column can be permitted to contain NULL by declaring it with the NULL attribute. In this case, the default value also becomes NUL.. 더보기
java remote debugger, 자바 원격 디버깅 eclipse를 사용해 자바 원격 디버깅하는 방법에 대해서 설명한다. 영어에 거부감이 없다면 여기를 참고해도 좋다. http://www.eclipsezone.com/eclipse/forums/t53459.html 내 경우에는 원격 서버(linux)에서 돌릴 프로그램이 local에서 돌지 않기 때문에 remote debugging을 진행했다. linux에서만 도는 c library를 window에서는 돌릴 수 없기 때문에 ;;; 이런 경우 외에도 로컬이 아닌 원격장비에서만 일어나는 에러를 잡기 위해서 진행해 볼 수도 있다. 만약 test.java 파일을 컴파일 해서 test.class가 생성되었다면 실행은 아래와 같이 할 것이다. 서버 (10.8.34.1) $> java test 거기에 -Xdebug -X.. 더보기
이미지 바코드 스캔 라이브러리 이미지 바코드 스캔 라이브러리이다. 아이폰 용 라이브러리 http://zbar.sourceforge.net/iphone/index.html 여기는 app도 만들고 library와 sdk까지 받을 수 있다. 자바 (안드로이드 용) http://code.google.com/p/zxing/ 1D 2D를 다 지원하고 java로 되어있나보다 나중에 필요할지 몰라서 찾아놓는다. zxing Multi-format 1D/2D barcode image processing library with clients for Android, Java ZXing ("Zebra Crossing") ZXing (pronounced "zebra crossing") is an open-source, multi-format 1D/2D bar.. 더보기
트위터 날씨 서비스 (twitter weather) 트위터 블로그를 보니 날씨서비스와 연동한 이야기가 있어서 올려본다. 날씨 관련 site와 같이 만든 모양인데 날씨에 대한 사람들의 이야기를 들을 수 있다. http://www.weather.com/social/national Weather Tweets in Your Town No Results Found. Please search again. US locations only. Please search again. VIEW TWEETS The Latest Weather Tweets See what people are saying about the weather across the US. Or view any location to join the conversation. Content from Twitter.. 더보기
TED 신시아 브리질: 개인용 로봇의 발흥 MIT에서 로봇을 연구하는 신시아 브리질이 어렸을 때 느꼈던 자신의 로봇에 대한 세계관과 현재 실제로 하려는 일을 공유 한다. 개인적으로도 로봇의 지능같은 것보다는 사람과 상호작용하는 interface가 중요하다고 생각한다. 나는 프로그래머인데 개발자들이 보통 성능에 치중하고 운영과 모니터링을 생각하지 못하는 것과도 같다. 프로그램도 로봇도 우리를 도와 주기위해서는 우리에게 편안한 인터페이스가 제공되어야한다고 생각한다. 더보기