9월 102016
 

우리는 ubuntu에서 패키지 인덱스를 업데이트 하기 위해 apt-get update 라는 명령을 사용하여 업데이트한다. 하지만 만약 커스텀 패키지를 이용하는 경우 (예: owncloud)에 keyexpired라는 문구를 볼 수 있다. 이는 패키지를 서명하는데 사용된 인증키가 시간이 지나 만료되었기 때문이다. 따라서 키를 다시 업데이트 해주는 작업이 필요하다. 아래의 절차를 따라 새로 받아보도록 하자. read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
7월 312016
 

머신러닝이라는 과목에 대하여 어떻게 하면 공부를 효율적으로 즐겁게 할 수 있을지를 고민하던 중 “코세라”에 대하여 알게 되었다. 코세라는 컴퓨터과학과 교수인 Andrew Ng과  Daphne Koller가 공동 창업하여, 비싼 등록금을 내지 못하고 교육의 기회를 가지지 못하는 사람들을 위해 공짜로 온라인 수업을 제공하는 서비스이다[1]. 코세라에서 다양한 머신러닝 수업이 열려있는 것을 확인할 수 있었는데, 이 중 가장 빨리 시작하면서 강의가 길지 않고 요점만 들을 수 있는 수업을 찾다가 창업자인 Andrew Ng교수가 직접 강의하는 ML수업을 선택하게 되었다. read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
7월 242016
 

기존에 사용하고 있던 “러셀 홉스 – 자동커피메이커”가 고장나서, 이를 대체할 제품을 찾다가 핸드 드립이라는 새로운 분야에 도전해보기로 하였다. 예전에는 이미 갈아져 있는 원두가루를 사용하다가, 언젠가 부터 원두를 사서 수동 그라인더를 도입하여 갈아서 쓰기 시작하기도 하고 점점 아날로그 풍으로 넘어가고 있었던 점도 손 맛(?)을 느낄 수 있는 핸드 드립을 시작하게된 이유이기도 하다.  코스트코에서 커피서버, 드립퍼, 거름종이는 구할 수 있었지만 드립용 주전자는 구할 수 없었다. 대신 전기주전자가 그 자리를 차지하고 있는 듯 했다. 하지만 일단 드립세트를 구매해서 집에서 내려먹어 봤으나 집에는 냄비밖에 없었기 때문에 물을 내가 원하는데로 컨트롤 할 수가 없다는 문제가 있었다. 그래서 커피포트(주전자)를 구매하게 되었다. read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
6월 122016
 

인천에서 태어난 나는 1995년 수인선이 영업정지 된다는 것을 방송을 통해서 보면서 한 번쯤은 타보고 싶다는 생각을 하곤 했었다. 물론 직접 타지는 못했지만 송도역이나 소래역은 직접 보기도 했었고 영업 정지 후에도 철로가 꽤 오래동안 남아 있었기 때문에, 한 번 쯤은 길 따라서 가볼일 있겠지라고 생각했는데, 나이를 먹으면서 점점 사라져가는 옛날 협궤 철도길을 보고 있어야 했다. 처음 연수지구에 이사 왔을 때 현재 일부구간 개통되어 있는 “수도권 전철 수인선”을 위한 다리도 노반도 이미 지어져 있었기 때문에 금방 개통될 줄 알았으나 설마 2012년에 개통될줄은 상상도 못했다. read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
3월 102016
 

윈도우에서 “bundler install”할 때 아래와 같은 에러가 발생했을 때 해결방법

의외로 간단하게 끝났다[1].

 

번들러를 다시 깔아주면 해결되는 듯 하다. read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
12월 082014
 

올해도 여김없이 관제 연하장을 구매해 보았다. 작년에는 연하엽서 구매를 못했었는데, 이번에는 구매를 위해 11월 초에 우체국에 방문했다. 그런데 결국 구매할 수 있었던 건 2014년도 판 우체국 엽서 세트였다. 들어보니 올해는 연하 엽서만 따로 판매하지 않고, 홈페이지를 통해서만 구매할 수 있다는 것이였다. 온라인으로는 30장씩 판매하며, 총 500장밖에 준비 안되 있었어서 금세 동났다고 한다. 내년에는 홈페이지를 주기적으로 확인해야하는건지… 어쨋든 연하장은 딱히 바로 필요 없었기 때문에 엽서 세트만 구매 했다. 엽서 세트는 4,800원에 구매 가능했다. 그런데 왠지 요즘 유행하는 “허니버터칩 인질극[1]”을 보는 듯 해서 씁쓸했다. read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
10월 302014
 

1. 서론
  mysql 데이터베이스의 파티션이 커지면 데이터베이스 파일을 새로운 파티션에 옮기고 심볼릭 링크를 걸어서 용량을 확보하는 방법이 있다. 한편 우분투에서는 apparmor라고 하는 권한 관리 시스템이 존재하여서, 심볼릭 링크 후에 새로운 경로(파티션)에 대한 권한을 줄 필요가 있다.
  여기서 apparmor가 설치된 mysql 환경에서 어떻게 파티션을 만들고, 공간을 확장하는지 알아 본다.
 
2. 수행 방법
1) 추가할 디스크 마운팅 및 포멧
 # fdisk -l      // 파티션 할당 상태 확인
 # fdisk /dev/xvdb  // /dev/xvdb : 추가된 디스크 주소
    n 누루고 파티션 설정(primary partition, cylinder etc)
    w 눌러서 저장
 # mkfs.ext4 /dev/xvdb1     // ext4로 포멧
 # mount /dev/xvdb1 /mnt/mysql_disk1   // 마운팅
 
 # blkid     // 추가된 /dev/xvdb1 의 UUID 확인
 # vi /etc/fstab    // 재부팅시 바로 자동 마운팅을 위해 설정
  UUID=<> /mnt/mysql_disk1 ext4 rw 0 0     # 제일 아래줄에 추가
 # df -h     // 디스크 용량 확인
 
2) Apparmor 설정파일 변경 [1]
 – 우분투는 접근관리를 좀 더 잘 하기 위해 파일에 권한을 사용자 단위로 지정하는 것이 아니라, 실행되어 있는 프로그램이 어디에 접근할 수 있는지를 설정함으로써 해결하고자 하였다. 이 편이 관리 측면에서 더 이득이 크다.
 
 # vi /etc/apparmor.d/user.sbin.mysqld
      # 제일 아래줄에 추가
      /mnt/mysql_disk1/mysql_data r,
      /mnt/mysql_disk1/mysql_data/** rwk,
 
3) sql 서버 종료
     # service mysql stop
4) 데이터파일을 새로 저장할 큰 용량의 디스크로 복사 (ubuntu mysql은 /var/lib/mysql 에 있음)
     # cd /var/lib/mysql
     # cp -R * /mnt/mysql_disk1/mysql_data
5) 기존 파일 백업
     # mv /var/lib/mysql /var/lib/mysql_bak
6) 심볼릭 링크 연결
     # cd /var/lib
     # ln -s /mnt/mysql_disk1/mysql_data mysql
7) sql 서버 다시 켜기
     # service mysql start
8) DB에 잘 접속되나 테스트
 
3. 정 리
 파일 복사하는데 꽤 시간이 걸리기 때문에 추후에는 mysql서버를 하나 더 준비하여 데이터를 옮기도록 작업하는 것이 더 좋을 것으로 예상된다. 그리고 데이터 베이스 파일을 하나로 하지 않고 여러개로 나누어서, 파일 단위로 심볼릭 링크를 걸어서 해결하는 방향이 더 좋을 것이라고 생각한다.
 
4. 관련 자료
[1] Recover an Innodb mysql database from an EBS on Ec2, Stack Exchange : http://dba.stackexchange.com/questions/57424/recover-an-innodb-mysql-database-from-an-ebs-on-ec2
[2] https://blogs.oracle.com/jsmyth/entry/running_out_of_physical_disk read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
7월 032014
 

윈도우에서 레일즈로 프로그래밍하면서 뭔가 한 번에 되는 것이 없다는 것을 자주 느끼곤 하는데, rmagick 이라는 gem을 설치할 때도 마찬가지 였다. rmagick은 오픈소스 이미지 프로세싱 라이브러리로 유명한 ImageMagick라는 라이브러리를 루비에서도 쓸 수 있게 wrapping한 gem이다. 전부가 그런 것은 아니고 C나 C++로 만들어진 대다수의 오픈소스 라이브러리는 크로스 컴파일을 지원하지만, 제일 컴파일하고 실행하기 좋은 환경은 리눅스 환경일 것이다. 어쨋든 rmagick을 윈도우에서 써야하는 이상 Gemfile에 rmagick을 넣고 bundle을 돌렸다. 역시나 에러 발생. 이런쪽 문제가 발생하면 구글에게 물어보라고 했던가, 검색하자마자 스택오버플로우 글 하나를 첫번째로 띄어주었다[1]. 글을 읽어보니 이전 포스팅에서 확인한 것과 같이 라이브러리를 설치해야한다는 것이였다. 별 생각없이 다운로드 받아서 실행해본 결과 역시나 실패. [1][2]의 글을 좀 열심히 읽어보니 라이브러리를 설치한 디렉토리에 빈칸이 있으면 안된다는 것이었다. “Program files”폴더에 설치 됬으니 당연히 빈칸이 들어갈 수 밖에… 지우고 다시 설치하였다. 그랬는데도 컴파일이 되지 않았다. 무엇 때문인지 하고 봤더니 ” c:\ImageMagick-6.8.0-3-Q16″에 “-“기호나 “.” 같은 특수문자 때문인듯 했다. 그래서 시키는 대로 “c:\ImageMagick” 폴더에 설치를 했다. 그랬더니 gem 설치가 성공하는 듯 했다. 하지만 이렇게 성공했다면 여기에 글을 남기지는 않았을 것이다. 역시나 안됬다. 에러를 뿌리면서 안됬는데 아래의 에러가 발생한다.

또 열심히 구글링을 했더니 [3]의 문서를 발견하였다. 문서를 간단히 살펴보니 imagemagick 라이브러리의 버젼에 따라서 컴파일이 안된다는 말로 간단히 요약할 수 있었다. 직접 컴파일해서 연동하는 방법도 써있으니 필요하신분은 참고하시면 될 듯. 어쨋든 되는 버젼을 확인해보니 ‘ImageMagick-6.8.7-8-Q16-x86-dll’에서는 컴파일이 가능하다고 하여 다운로드 받아서 위와 같은 방법으로 실행해 보니 문제 없이 설치할 수 있었다. 이상으로 문제 해결! read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
6월 292014
 

  필자는 가끔씩 현재 미국에 방문연구원으로 가 있는 연구실 선배에게 편지를 보내곤 한다. 그러던 중 저렴하고 누구나 다 하는 방법이 아닌 새로운 방식으로 편지를 보내고 싶었다. 예전에 우체국에 물건을 납품하는 회사에 다니면서 별의 별 우체국의 발송 옵션이 있다는 것을 알게 되었기 때문에 분명히 국제 우편에도 이상하고, 특이한, 잘 알려지지 않은 발송 옵션이 있을 것이라고 생각하였다. 그래서 우정사업본부 홈페이지에서 국제통상우편에 대해서 공부해 보았다. 그 결과, 우편의 내용을 숨길 수 있으며(우편엽서 탈락), 가격은 비싸지 않고(서장 탈락), 간단한 A4용지 한 장 정도의 내용을 적어 보낼 수 있는 항공서간의 존재를 알게 되었다. read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr
6월 142014
 

다음 자동완성 워크플로우에 대한 수요가 있어서 만들어 보았습니다. 개인적으로 사전 자동완성은 타사 보다 다음이 좀 더 나은 것 같습니다. 혹시 원하는 사전이 있다면 말씀해 주시면 추가하도록 하겠습니다. 그리고 버그 알려주시는 것은 언제나 환영합니다^^ 방법은 이메일이나 코멘트를 통하여 부탁드립니다! read more

Share on Google+Share on LinkedInTweet about this on TwitterShare on FacebookShare on Tumblr