본문 바로가기 메뉴 바로가기

컴맹 : 진화의 시작

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

컴맹 : 진화의 시작

검색하기 폼
  • 전체보기.. (790) N
    • readme.md (1)
    • 사설 (8)
    • 개발 (416) N
      • 개인 프로젝트 (8)
      • Linux (88)
      • Cloud (Alibaba) (4)
      • Cloud (AWS) (15)
      • Cloud (GCP) (44)
      • 기계학습 (13)
      • Network (18)
      • PHP (20)
      • python (32)
      • kubernetes (1)
      • docker (13)
      • IaC (3)
      • Apache Airflow (6) N
      • Java (1)
      • Node.js (7)
      • Vue.js (2)
      • DB (30)
      • GNU Build System (3)
      • 버전관리시스템 (15)
      • Shell Script (14)
      • Compile error (9)
      • 운영체제 (16)
      • CI.CD (1)
      • tools (14)
      • UML (10)
      • Link (18)
      • 길 잃은 게시물 (11)
    • 생활 (361)
      • 내 집 마련하기 (5)
      • 아빠일기 (0)
      • 주절주절 (168)
      • 리뷰 (57)
      • 외식 (20)
      • 책 (86)
      • 여행 (14)
      • 회고 (7)
      • 블로그 결산 (2)
      • 요리 (1)
      • 잡동사니 (1)
    • 비공개 (1)
      • -----아래는 비공개----- (1)
      • 코드 (0)
      • 임시 (0)
      • FS : 회사 대외비 (0)
      • Wedding : 준비 과정 (0)
      • 개인정보 (0)
  • 방명록

전체보기.. (790)
Audacity는 이미 실행 중입니다.

Ubuntu 16.04에서 Audacity를 사용하던 도중에 어떤 이유로 시스템을 재부팅 했는데 (OS crash로 인해), 부팅이 된 후로는 Audacity가 실행이 안됐습니다. 실행시켜보면 아래와 같은 팝업만 노출이 되었구요. 아마도 프로그램이 실행될 때 대부분의 애플리케이션이 그러듯이 pid 파일을 저장해둘 것 이라고 생각했는데요. 관련해서 보통의 애플리케이션은 pid를 /var/run/ 디렉터리 밑에 저장하도록 처리를 합니다. 하지만 Audacity 관련해서는 찾을 수가 없었습니다. 조금 더 찾아보니 아래 경로에 lock 파일이 있었네요. /var/tmp/audacity-{USER}/audacity-lock-{USER} 해당 파일을 삭제하고 Audacity가 정상적으로 동작되는 것을 확인했습니다...

개발/Linux 2019. 6. 20. 17:35
PyTorch Hub 톺아보기

앞선 글에서 PyTorch Hub를 맛보고자 Load tacotron2+waveglow from PyTorch Hub 를 진행해봤습니다. 이번 글에서는 PyTorch Hub가 어떤 원리로 어떻게 사용되는 것인지 살펴보려고 합니다. 모든 내용을 살펴본 이후에는 우리의 커스텀 모델을 등록하는 것으로 글을 마무리 합니다. torch.hub.load() 자, 이전에 작성했던 코드에서부터 출발 해볼까요? # contents of waveglow.py import torch waveglow = torch.hub.load('nvidia/DeepLearningExamples', 'nvidia_waveglow') torch를 import하고 torch.hub.load() 함수를 통해 미리 학습된 모델을 불러왔습니다. 이..

개발/기계학습 2019. 6. 19. 09:41
Load tacotron2+waveglow from PyTorch Hub

PyTorch Hub의 기세가 무섭습니다. 코드 구현체를 찾으려면 GitHub을 기웃거리면 되고 컨테이너를 찾으려면 Docker Hub로 가면 되듯이 얼마후면 딥러닝 모델 구현체를 찾기 위해서는 PyTorch Hub를 찾는 날이 올지도 모르겠습니다. 유명한 딥러닝 모델의 구현체들이 아래처럼 속속 등록되고 있는데요, 그중에 유독 눈에 띈 것은 Filter를 audio로 지정했을 때 나오는 Nvidia에서 구현한 Tacotron2, WaveGlow였습니다. 요즘 관심있게 보고 있던 모델이었기 때문에 PyTorch Hub와 함께 묶어서 살펴보기 좋겠다는 생각이 들어서 아래 링크를 참고해서 테스트를 진행해봤습니다. https://pytorch.org/hub/nvidia_deeplearningexamples_wa..

개발/기계학습 2019. 6. 17. 21:06
Docker 컨테이너 안에 jupyter 접속하기

여기 블로그 글을 RSS 받으시는 분들은 아시겠지만 저는 도커 환경을 꽤 좋아합니다. 일단 1) PC를 군더더기 없이 깔끔하게 사용할 수 있는 장점이 있고 2) 정리할때도 깔끔하게 할 수 있습니다. 3) 나중에 다른 시스템으로 옮길 때 호환성은 이루말 할수 없습니다. 아무튼, 이런 장점들 때문에 웬만하면 모든 개발을 도커에서 진행하고 있는데 아래와 같은 상황을 마주했습니다. 한참 딥러닝 모델을 개발하고, 이를 jupyter notebook으로 inference등의 테스트를 진행하려고 보니, Host 머신에서 jupyter의 포트로 접속 할 수가 없지 않겠습니까? Host에서 컨테이너 내부의 포트로 접속하려면 PNAT나 Proxy를 사용해야 하는데 이런것들은 처음 컨테이너를 생성할 때 지정을 해줘야 하는 ..

개발/docker 2019. 6. 17. 19:41
librosa.util.exceptions.ParameterError: data must be floating-point

librosa를 이용해서 load, write 하는 방법은 아래처럼 간단합니다. from librosa.core import load from librosa.output import write_wav y, sr = load('/tmp/test.wav', sr=44100) write_wav('/tmp/new.wav', y, sr) 그런데 write_wav() 하는 과정에서 에러가 발생하는 경우가 있는데요. librosa.util.exceptions.ParameterError: data must be floating-point 원본 파일에 따라 에러가 발생되는 경우가 있는 것 같습니다. 일단 상세한 원인은 librosa쪽 코드를 열어봐야겠지만 가장 간단한 해결방법은 librosa를 다시 설치하는 겁니다. 기..

개발/python 2019. 6. 13. 18:49
conda tab completion (자동완성) 만들기

conda를 사용하면서 activate와 deactivate를 타이핑하는 것이 왜 이리 힘들던지, 그리고 환경을 이동하는 것이 어찌나 불편했는지 모릅니다. 그래서 dialog를 이용해서 아래와 같은 툴을 만들어서 사용하기도 했습니다. 예를 들어 터미널에서. conda라는 명령어를 타이핑하면 바로 위의 dialog가 나옵니다. 그리고 환경을 선택해서 사용했었네요. 소스코드는 아래 링크에서 확인하실 수 있습니다. https://github.com/jybaek/conda_connector 주로 이런 방식으로 사용해오다가 다른 git, docker와 같은 일반적인 명령어들처럼 tab을 이용해서 자동 완성하는 게 더 고급져 보이지 않을까 하는 생각을 하게 됩니다. 그래서 bash_completion을 만들게 되었..

개발/Linux 2019. 6. 11. 20:39
Jekyll 블로그 docker로 한방에 올리기

GitHub을 통해 호스팅이 가능해지면서 Jekyll 블로그가 선풍적인 인기인데요, 이 대열에는 제가 활동하고 있는 Google Cloud Platform 사용자 그룹의 홈페이지도 합류해있습니다. 페이지를 운영하면서 소스코드를 수정 할 때면 바로바로 결과물을 확인 할 수 없었기 때문에 자질구레한 커밋들이 너무 많이 남게 되었는데요. 사실 로컬에 Jekyll 환경을 구축하고 결과물을 확인하면서 개발하면 이런 불상사를 막을 수 있습니다만, 그 환경을 구축하면 또 뭔가 찝찝한 설치 파일들이 OS 구석구석에 설치되겠죠. 아래처럼 gem이 기본적으로 설치되어 있어야 하고 gem으로 bundler, jekyll 설치해야 합니다. 그리고 끝으로 번들을 이용해서 서버를 올리는 구성인거죠. 뭐 설치되는게 이정도면 양반이..

개발/docker 2019. 6. 11. 20:15
[CVE-2019-12735] Vim 취약점 발견

https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md 평소 vim을 즐겨 쓰고 있는데 회사 동료가 vim 패치를 하셔야 하지 않냐며 링크를 던져주셨습니다. 링크에 취약점 내용을 살펴보니 1) 공격자는 nc(netcat)을 통해 포트를 열고 있고 2) 공격자가 배포한 특수 파일을 보통의 사람이 vim으로 열었을 때 3) 파일에 감춰져있는 코드가 동작. nc로 shell을 실행시켜 공격자에게 연결해주는 방식이네요. 셸을 통째로 열어주는 것이기 때문에 상당히 위험한 취약점이지만 이 모든 게 성립하려면 1) 사용자가 계속 특수 파일을 열고 있어야 하고(닫으면 공격자와 연결된 세션이 종료됨), 2) 사용자의 OS에 설치된..

개발/Linux 2019. 6. 11. 14:50
다시쓰는 Flask unittest (하편)

이전 편 : 다시쓰는 Flask unittest (상편) 앞서 우리는 Flask의 기본 예제코드를 pytest를 통해 테스트해봤습니다. 몇 몇 분들은 아마 눈치를 채셨을지 모르겠지만 사실 앞에서 테스트한 내용은 함수 단위의 테스트지 실제 Flask 서버와 무관합니다. /hello, /world 와 같은 API를 테스트한다고는 했지만 사실상 hello(), world() 함수를 호출하고 끝냈으니까요. 이번에는 조금 더 현실적인 Flask 코드를 놓고 unittest를 진행하는 방법에 대해서 알아보도록 하겠습니다. 일단 아래처럼 미리 준비된 코드를 가져와봤습니다. #!/usr/bin/env python # coding=utf8 # content of my_flask.py # Restful API from f..

개발/python 2019. 6. 10. 23:31
다시쓰는 Flask unittest (상편)

우리가 개발한 프로그램을 테스트하는 방법론이 여러가지 나오고 있는데 이번에는 그 기본이 되는 unittest를 flask와 연계해서 알아보고자 합니다. 인터넷에 flask와 unittest로 검색해보면 Flask 공식 홈페이지를 포함해서 여러자료가 리스트 되지만 대부분 공식 홈페이지의 예제를 그대로 참고한 것으로 이해하기에 난해한 부분이 있습니다. 그래서 굳이 넘쳐나는 자료들 속에 다시 키보드를 잡아들었습니다. 아무튼 이번 글이 누군가에게 현실적인 도움이 되기를 바랍니다. Flask 코드 작성 우선 unittest를 위해 아래와 같은 코드를 작성해보도록 합시다. # contents of my_flask.py from flask import Flask app = Flask(__name__) @app.rou..

개발/python 2019. 6. 7. 22:26
about.md

If you have more questions, send me an e-mail ( oops.jybaek+blog@gmail.com ). # Who is “Jaeyeon Baek”? - software developer - /bin/sh ./startup; Linuxer; Writing at https://jybaek.tistory.com # Technical Skills - Linux kernel programming - C/C++, Multi-thread programming, Socket programming, Etc.. - Python, Java, Spring, Shell Script, PHP, Node.js - Linux, Ubuntu, CentOS - Redis, MySQL, PostgreS..

readme.md 2019. 6. 5. 18:39
도커가 답이다.

예전에 리눅스 계통의 OS를 사용할 때 보면 이것저것 설치하면서 점점 덕지덕지해지는 느낌을 많이 받았었다. 나중에는 내가 뭘 설치했는지도 가물가물하고. 예를들어 개인용 워크스테이션으로 리눅스를 사용하면서 nginx 는 그다지 많이 활용 할일이 없는데 아주 가끔 브라우저를 통해 동료들과 무언가를 공유해야 하는 일이 있을 수 있다. 이때 로컬에 nginx를 설치해버리면 그야말고 일년에 한두번 사용하는 모듈을 관리까지 해줘야 하는 판국이 되버린다. 살아있는지, 죽어있는지, 포트 점유는 안하고 있는지 등등 깜빡했다가는 나중에 충돌날수도 있고. 아무튼 이런 고민을 현대에 와서는 docker가 모두 해결해준다. 이미 잘 구성되어 있는 컨테이너를 내려 받아서 사용하면 로컬 OS는 깔끔한 상태가 계속 유지된다. ngi..

생활/주절주절 2019. 6. 4. 16:48
스케일링 후 출혈

스케일링 후 지혈이 안됐던 상황에 대한 기록. 생애 첫 스케일링은 화끈한 주말을 선물해줬다. 동네 병원에서 못뺀디는 사랑니 발치 때문에 대학병원에 갔고 겸사겸사 스케일링 받으시라고 해서 흔쾌히 수락. 사실 한번도 받아본적이 없어서 내심 걱정은 됐다. 치과를 20년 넘게 온적이 없으니까. 다행히 간호사의 현란함로 30-45분간 스케일링이 끝날 수 있었고 상쾌한(?) 기분을 느끼며 집으로 운전까지 하며 돌아왔다. 틈틈이 룸미러로 이를 확인하며 신기해하기도. 스케일링 후 약 1시간후에 아침식사를 했고 3시간 정도 후에는 노곤함에 낮잠을 잤다. 문제는 약 2시간 자고 일어나서 터졌다. 잠에서 깼는데 입안에 뭔가 가득 차있는 느낌. 흡사 선지국에 선지같은 느낌이랄까. 놀라서 화장실에 달려가 거울을 보니 입안은 온..

생활/주절주절 2019. 6. 3. 08:38
오픈소스 오디오 편집툴 : Audacity

대량의 오디오를 편집해야 하는 일이 있어서 막막했는데 Audacity를 만나고 걱정이 해소되었습니다. 여기서 제가 이야기하는 편집이라고 하면 긴 오디오 파일을 여러개로 나눈다던지, 아니면 소리가 없는 구간을 잘라내는 등의 행동을 이야기 합니다. 일단 Audacity는 윈도우와 Mac, 리눅스까지 모든 OS를 지원하는 오픈소스 프로젝트 입니다. 아래 경로에서 다운로드 받으실 수 있습니다. https://www.audacityteam.org/download/ 제 경우에는 ubuntu를 사용하기 때문에 아래와 같이 설치를 진행했습니다. sudo apt-get install audacity 설치가 완료되고 실행하면 아래와 같은 화면을 볼 수 있습니다. 이제 편집하려는 오디오 파일을 끌어다가 중앙에 회색 부분에 ..

생활/리뷰 2019. 5. 31. 18:35
[python] FileNotFoundError: [Errno 2] No such file or directory: 'avconv': 'avconv'

python에 librosa를 통해 오디오 파일을 numpy로 읽어오는 코드가 아래와 같이 작성되어 있습니다. import librosa wave_path = '/home/caley/test.wav' sr = 44100 try: wav_np = librosa.core.load(wave_path, sr=sr)[0] except FileNotFoundError as e: print(e) wave_path에 test.wav는 실제로 존재하는 파일이지만 웬일인지 librosa는 에러를 발생시킵니다. FileNotFoundError: [Errno 2] No such file or directory: 'avconv': 'avconv' 이유는 librosa가 내부적으로 사용..

개발/python 2019. 5. 30. 17:14
DataLoader num_workers에 대한 고찰

Pytorch에서 학습 데이터를 읽어오는 용도로 사용되는 DataLoader는 torch 라이브러리를 import만 하면 쉽게 사용할 수 있어서 흔히 공식처럼 잘 쓰고 있습니다. 다음과 같이 같이 사용할 수 있겠네요. from torch.utils.data import DataLoader 상세한 설명이 기술되어 있는 공식 문서는 아래 링크에서 살펴볼 수 있습니다. https://pytorch.org/docs/stable/data.html#torch.utils.data.DataLoader 인자로 여러가지 파라미터를 넘길수 있는데 여기서 이야기하고자 하는 부분은 num_workers인데 공식문서의 설명은 다음과 같이 되어 있습니다. num_workers (int, optional) – how many sub..

개발/기계학습 2019. 5. 28. 19:24
외부 네트워크에서 localhost로 접속 - ngrok

ngrok을 설명하기 전에 이것이 필요한 상황에 대해서 이야기를 간단하게 하는게 이해에 도움이 될 듯 하다. 우리가 웹이나 API를 개발할 때 당장 public 망에서 테스트를 해야 하는 경우를 생각해보자. 예를들어 slack bot을 개발한다고 생각해보면 아래 슬랙 API 화면에 보이는것처럼 public IP를 갖고 있는 서버가 있어야 정상적인 테스트가 가능하다. ( Request URL에 들어가는 주소는 슬랙 API를 처리할 개인 서버쯤으로 생각하면 된다. ) 하지만 개발단계에서 우리는 아직 서버가 없을수도 있고 퍼블릭 IP를 할당받지 못했을 수도 있다. 기타 다른 여러가지 이유로 localhost로 테스트를 해야 하는 경우가 있는데 대부분의 웹 개발는 개발환경이나 프러덕트 환경에 deploy 하기 ..

개발/tools 2019. 5. 28. 09:49
docker 데이터 디렉터리 변경

(*) 우분투 16.0.4 환경에서의 글입니다. 버전이나 OS의 종류에 따라 내용이 적용되지 않을 수도 있습니다. docker를 처음 설치하고 보면 이미지나 컨터이너등 모든 정보가 쌓이는 공간이 /var/lib/docker 로 동작하는 것을 알 수 있습니다. 보통의 사용자 환경을 보면 root 디렉터리는 빠르고 비싼 SSD를 사용하기 때문에 용량이 충분하지 않은데 별 생각없이 이미지와 컨테이너를 생성하다보면 어느샌가 용량부족으로 어려움을 겪게 될 것으로 생각됩니다. 그렇기 때문에 처음 docker를 설치해줬을때부터 이런 데이터가 적재되는 곳을 충분히 여유있는 HDD로 잡아주는게 좋은데요. 이번글에서는 그 방법에 대해서 소개합니다. 우선 데이터 경로가 어디로 잡혀있는지 아래 명령어를 통해 확인해줍니다. $..

개발/docker 2019. 5. 27. 12:02
nvidia-docker Installation in Ubuntu

nvidia-docker를 사용하기 위해서는 우선 docker가 설치되어 있어야 한다. 우리는 대부분 커뮤니티 버전을 사용하게 될 것이므로 docker Community Edition(docker-ce) 버전으로 설치해주도록 하자. 아래 명령어를 실행하게 되면 get.docker.com에 등록되어 있는 스크립트가 바로 로컬에서 실행되게 되는데 이 스크립트는 기본적으로 docker-ce 레포지토리를 가르키고 있기 때문에 바로 실행시켜주면 되겠다. curl -fsSL https://get.docker.com/ | sudo sh 잠시후 docker 설치가 마무리 되면 nvidia-docker를 설치해주면 된다. 버전이 변경됨에 따라 내용이 달라질 수 있기 때문에 공식 홈페이지의 설치 방법도 함께 확인하면 좋다..

개발/docker 2019. 5. 27. 10:45
Next'19 Recap 커뮤니티 라운지 후기

코엑스 그랜드볼룸에서 진행된 Next'19 Recap 행사에 다녀왔다. 매년 샌프란시스코에서 연례행사로 진행되는 Cloud Next의 한국버전이라고 생각하면 쉬운데 구글 코리아에서 진행한 행사이다. 내 경우에는 일반적인 컨퍼런스 참여나 오거나이징 하는 것과는 다르게 이번 행사는 커뮤니티라운지를 운영하는 위치로 참여했다. 라운지 안에 모든것은 이미 클라우드팀에서 세팅해줘서 맘편히 놀기만 하면 됐던, 그런 행사가 되시겠다. 함께 운영하신 분들의 이름은 GDG :-) 커뮤니티 라운지의 출입이나 게임 랭크보드 관리, 팝콘, 음료 등 이용하시는 분들에게 필요한 대부분의 편의시설은 라운지 안에 흰색티셔츠를 입고 계신 스태프분들이 도와주셨다. 그럼 GDG는? 라운지를 이용하시는 분들의 네트워킹을 돕거나 기술에 대한 ..

생활/리뷰 2019. 5. 25. 22:21
이전 1 ··· 5 6 7 8 9 10 11 ··· 40 다음
이전 다음
최근에 올라온 글
  • EKS Airflow에 git-sync 적용
  • KubernetesExecutor 적용
  • EKS 위에 Airflow 구성
  • HHKB Hybrid Type-S (해피⋯
최근에 달린 댓글
  • 감사합니다
  • 도움이 되셨다니 좋네요. 감⋯
  • 감사합니다 덕분에 알고갑니다
  • 감사합니다 :-)
글 보관함
  • 2022/05 (5)
  • 2022/04 (3)
  • 2022/03 (2)
  • 2022/02 (2)
  • 2022/01 (1)
Total
1,645,270
Today
48
Yesterday
861

Blog is powered by Tistory / Designed by Tistory

티스토리툴바