전체 글 118

Azure Function에서 Table Storage 데이터 읽기

일정 시간마다 실행되는 Azure Function 에서 Table Storage 의 데이터를 읽기. 한국어 포털에서는 해당 함수의 "통합" 페이지에서 아래와 같이 입력 설정을 해 준다.이 경우는 특별히 설정에서는 파티션 키나 행 키를 지정하지 않고 코드에서 지정해서 읽어오려고 하는 경우다.그리고 Storage 와 Storage.Table 을 사용하기 위한 어셈블리 참조와 using 문을 넣어주고, 설정한 테이블 매개변수 이름에 맞는 CloudTable 파라미터를 Run() 메소드에 추가해 준다.데이터를 나타내는 클래스는 TableEntity 를 상속해야 한다.#r "Microsoft.WindowsAzure.Storage" #r "Newtonsoft.Json" using Microsoft.Azure; us..

2017.09.09

WinPython - alembic 사용 시 설치 경로 관련 유의 사항

지금은 alembic 을 포터블하게 사용하기 위해서 WinPython(3.5.2.3 Zero 버전)을 사용하고 있는데, pip 를 이용해서 alembic 을 설치한 상태로 압축해서 다른 PC에 가져가면 "failed to create process" 라는 에러를 내면서 alembic 실행이 실패하는 문제가 있었다.이 상태에서도 기본 포함된 python 인터프리터를 실행하는 데에는 문제가 없었기 때문에 pip 로 추가설치한 패키지가 문제인 것 같았다.혹시 몰라서 내 PC에서 pip로 alembic 설치할 때의 WinPython 위치(예를들면 D:\Tools\WinPython)와 동일한 경로에다가 옮겼더니 다른 PC에서도 그제야 실행이 된다. 역시 pip 로 추가 설치한 패키지는 설치할 때 전체 경로가 고정..

2016.12.21

LINQPad 유용한 기능 하나 - Paste Escaped String

C#을 스크립팅 언어로 만들어주기까지 하는 완소 툴이 LINQPad 다. 오늘 JSON 문자열을 복사해서 코드에 붙여넣는 작업을 많이 할 일이 있어서 이것저것 알아보다가... 결국 별다른 팁을 못 찾았는데, 의외로 등잔 밑에 유용한 기능이 숨어 있었다.이런 JSON 문자열을 C# 코드에 문자열 리터럴로 넣으려면 큰따옴표를 전부 이스케이프 해주는 게 완전 귀찮은데...{"RequestedUserId":"wafe","TermId":"2017_1","CourseId":"1004","WeekId":"01","UseDept":true} Edit > Paste as Escaped String 기능을 사용하면 아래와 같이 그대로 코드에 사용할 수 있는 형태로 붙여넣어 준다. "{\"RequestedUserId\":\..

2016.12.06

WinPython에 바이너리 패키지 설치(mysqlclient 설치 삽질)

파이썬용 DB 마이그레이션 라이브러리인 alembic ( Outsider’s Dev Story alembic tag )을 사용해서 MySQL DB를 관리해보려는 생각으로, 일단 테스트를 해보려고 하니 WinPython Zero Version 에는 MySQL 클라이언트가 설치되어 있지 않다. 그래서 실행하면 mysqldb가 없다고 에러가 난다. 내가 사용한 것은 WinPython 3.5.2.3 64비트 Zero 버전인데, 여기 포함된 CPython 버전은 3.5대이다. 구글링해보니 파이썬 3부터는 mysqlclient를 설치하면 mysqldb 호환이 된다고 한다. pip install mysqlclient 해서 설치하면 일단 빌드가 필요하다고 나온다 흐아. 얼마전 글에서 WinPython의 빌드 설정을 m..

2016.11.25

Portable python - WinPython

파이썬을 포터블하게 사용할 수 있는 방법을 찾다가 발견한 것이 WinPython 이다. (왜 전에는 몰랐지?) WinPython 은 여러가지 패키지가 있는데, 파이썬 기반으로 유틸리티를 만들어서 간단히 복사해서 갖다놓기만 하면 실행이 가능한 형태로 쓰면서도 만들기도 편하게 하려는 것이 목표이므로, 가장 작은 Zero Version(WinPython 3.5.2.3Zero 등 끝에 Zero 가 붙은 판)을 사용하면 적당하다. 다운로드는 EXE인데, 뭘 설치해 준다기 보다는 지정한 경로에 압축만 풀어주는 정도다. 포함된 WinPython Control Panel.exe 를 사용하면 python.org 에서 배포하는 정식 인스톨러처럼 시스템에 등록도 해주는 기능이나 패키지 설치해주는 기능도 있다는데, Zero ..

2016.11.17

Internet Explorer 11 을 Internet Explorer 라고 부르지 못하고...

자이닉스 개발부 블로그에, 얼마 전에 자이닉스에 합류한 남정현 씨의 첫 포스트가 올라왔네요. :) Internet Explorer 11의 Breaking Changes(자이닉스 개발부 블로그) UserAgent 문자열에서 MSIE를 뺐다는 건, 요즈음의 웹프론트 개발 트렌드를 따르겠다는 모양으로 보이고, W3C의 표준 DOM API를 잘 따르겠다는 선언의 의미로 보입니다. 비슷한 전례로 이미 Windows 8의 메트로 모드 IE(Modern UI IE?)와 데스크톱 모드 IE를 User-Agent 문자열만으로 구분할 수 없도록 한 바가 있죠. User-Agent 문자열을 이용하여 브라우저 종류와 버전을 알아낸 후에 이건 IE용 코드고 저건 크롬용 코드라는 식으로 코드를 작성하지 말고, 관심있는 특정 기능..

2013.07.04

git bisect 로 소스의 특정 변경 사항을 찾아내기

ffmpeg의 avpicture_get_size() 함수를 보면 언제부터인가 첫번째 인자 타입이 enum PixelFormat pix_fmt 로 변경되었습니다. 최초로 이런 변경 사항이 적용된 커밋을 찾아서, 이 변경 사항의 영향 범위가 어느 정도인지 파악하고 싶었는데, ffmpeg 프로젝트의 git 저장소를 웹으로 보여주는 인터페이스에서는 그 지점을 찾기가 여간 힘든게 아니네요.우선 웹 인터페이스를 통해서 0.5 릴리스 브랜치의 가장 최근 커밋(head)에서는 avpicture_get_size()의 첫번째 인자 타입이 int pix_fmt 인 것은 확인을 했고요, 0.6 릴리스 브랜치의 head 에서는 PixelFormat pix_fmt 인 것을 확인했습니다. Get FFmpeg 페이지에서 보면 0.5..

2013.07.03

동영상 정보를 보여주는 유틸리티. MediaInfo

일하다보면 동영상을 다룰 일이 자주 있습니다. 동영상 관련해서는 유지보수 이슈가 꽤 많은 편이거든요. 인코더가 많다보니 동영상의 세부적인 정보? 내용? 들이 아주 제각각인 경우가 꽤 있죠. 프레임 단위로 뭔가 분석해보고 싶을 때에는 ffprobe 를 사용해야겠지만, 거기까지 가면 이미 지옥문을 열었다고 볼 수 있고요... ^^; 보통은 코덱이나 비트레이트, 어떤 스트림이 포함되어 있는지를 우선 확인하는 게 순서인데 그럴 때 MediaInfo 라는 오픈소스 도구를 사용하면 도움이 많이 됩니다. 설치하고 나면 탐색기에서 동영상 파일을 오른쪽 클릭하여 컨텍스트 메뉴에서 바로 실행할 수 있어서 편리합니다. 여러가지 View 를 제공하는데 저는 아래 이미지처럼 TreeView 형태로 사용하는 편입니다.

2013.06.18