D:\Logs\2019\20190803\LOG_A_20190803.txt 형식으로 작성이 된다.

 

<?xml version="1.0" encoding="utf-8" ?>

<log4net>

  <appender name="DebugAppender" type="log4net.Appender.DebugAppender" >

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />

    </layout>

  </appender>

  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">   

    <file type="log4net.Util.PatternString" value="D:\Logs\%date{yyyy}\%date{yyyy}%date{MM}%date{dd}\LOG_" />

    <datePattern value="'A_'yyyyMMdd'.txt'" />

    <param name="AppendToFile" value="true" />

    <param name="rollingStyle" value="Date" />

    <staticLogFileName value="false" />

    <layout  type="log4net.Layout.PatternLayout">

      <param name="conversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />

    </layout>

  </appender>

  <root>

    <level value="ALL"/>

    <appender-ref ref="DebugAppender" />

    <appender-ref ref="RollingLogFileAppender" />

  </root>

</log4net>

'C#' 카테고리의 다른 글

log4net.config 예제  (0) 2019.08.03
GDI+ Bitmap Rotaion  (0) 2019.02.19
WPF RichText에서 HTML 표시하기  (0) 2019.02.09
Visual Studio Debug.WriteLine 표시가 안될때 대처 방안  (0) 2018.11.15
WPF, Template Select 하기  (0) 2018.05.29
WPF MVVM 샘플코드  (0) 2018.05.28

cmd 창을 자주 사용하게 되어, 작업 표시줄에 등록해서 사용중입니다.

그런데, cmd를 관리자모드로 열고 싶은데, 마우스 오른쪽 눌러서 관리자모드로 열기가 귀찮더군요.

 

기본으로 관리자모드로 열 수 있게 설정하는 방법입니다.

 

명령프롬프트 속성 / 바로가기 탭에서 고급 버튼을 누릅니다.
관리자 권한으로 실행 체크 하시고 확인!

국내에서도 드디어 온라인 정식 서비스가 시작되는군요.

 

스위치 온라인을 이용하면 무료로 이용할 수 있는 게임입니다.

(저는 일본 온라인 계정을 미리 사용하는 중이었습니다..)

 

99명과 온라인으로 대결한다는 컨셉이 흥미롭습니다.

게임을 시작하면 같이 대결할 온라인 멤버들을 기다립니다.

기다리는데 오래걸리지 않고 생각보다 빨리 진행됩니다.

진입화면입니다. 단순합니다^^;

 

 

로비에서 대기하는 중입니다. 99명이 다채워지면 게임이 시작됩니다.

초록색 육각형. 특정인을 꼬집에서 공략할 수 도 있습니다.

먼저 죽게 되면 K.O. 순위가 먹여집니다.

 

 

망했다.mp4

 

 

 

99명과 테트리스 대전을 펼치는 와이프님입니다.ㅎㅎ

 

 

나름 테트리스 좀 한다고 생각했는데, 99명중에 8등도 쉽지 않군요... 8등도 잘한겁니다 ㅠㅠ

 

죽고 난뒤 다른 매치에서 계속 하고 싶다면 A를 좀 길게 눌러주면 됩니다.

 

 

테트리스가 엄청나게 오래된 게임인데, 온라인 실시간 대결하면서 즐기니 또 다른 새로운 느낌입니다.!

윈도우 환경으로 소개를 합니다. 그런데 대부분 프로그램에서 linux 커맨드로도 실행이 가능합니다.

DVD -> MP3 추출 프로그램

좋아하는 영화 DVD에서 어학공부 등을 하기 위해 MP3 등을 추출할 때 좋습니다..

http://www.icepine.com/free-dvd-to-avi-converter/

Output format에서 MP3나 AVI-H264등의 코덱으로 뽑아 낼 수 있습니다.

 

파일 변환 프로그램 FFMPEG

ffmpeg은 굉장히 유명한 라이브러리이자 툴입니다. 각종 영상프로그램에서 많이 쓰이고 있습니다.

https://ffmpeg.zeranoe.com/builds/win64/static/

static 빌드를 한 파일을 이용해 command line으로 여러가지 작업을 할 수 있습니다.

 

그중 파일 합치기(같은 코덱) 작업일 경우 아래와 같이 수행합니다.(윈도우)

 

ffmpeg -f concat -i list.txt -c copy [output파일명]

 

list.txt 파일에는 합쳐야 할 대상 파일을 저장해놓으면 됩니다.

file [파일명(확장자포함)]

file [파일명(확장자포함)]

file [파일명(확장자포함)]

 

 

MKV 컨테이너 정보 수정 프로그램  MKVToolNix

 

mkv는 동영상 컨테이너 확장자로써, 각 언어별 영상, 음성, 자막 등의 기능을 제공해주는 파일 확장자입니다.

이 툴을 이용해서 mkv의 영상 음성 순서를 변경하거나 첨부하거나 조작할 수 있습니다.

고화질 파일을 구했고, MP3 한글 더빙 파일이 있는데, 결합하고 싶다.. 이러면 이 툴을 이용하면 됩니다.

 

https://mkvtoolnix.download/downloads.html

 

음성의 지연 시간 조절등으로 타이밍 조절이 가능합니다.

소스파일 추가를 통해서 합칠 파일들을 추가하고, 아래 코덱에서 뺄 것들을 체크 해제하거나. 속성 창에서 조절할 항목들을 세팅한 한 후, 합치기 시작하면 됩니다. MKV는 영상의 컨테이너 이기 때문에 대부분의 작업이 빨리 끝납니다.

svn 서버를 설정하고 client에서 checkout 시 다음과 같은 오류를 만날 수 있습니다.

 

svn: E170013: Unable to connect to a repository at URL 'http://192.168.0.70:9000/!/%23testsource'
svn: E175009: The XML response contains invalid XML
svn: E130003: Malformed XML: no element found at line 1

 

client버전 문제다.. 서버문제다. 이야기들이 많은데,

 

주소가 잘못되어서 그럴 경우도 있습니다.

아래 주소 문서에 해결 방법이 있습니다.

 

https://www.visualsvn.com/support/topic/00102/

 

 

 

1. http로 서비스 되는 주소로 직접 들어갑니다.

 

2. svn 리포지토리로 로그인해서, 오른쪽 상단에 아래처럼 보이는 버튼을 클릭합니다.

3. 그럼 리포지토리 URL이 나올텐데요. 이 URL로 접속 시도를 하면 됩니다.

 

 

가끔 npm 버전이 낮은 경우 npm 패키지 설치가 잘 안될때가 있습니다.

npm 버전을 최신으로 바꾸는 방법입니다.

 

기준 버전은 Node v10.15.3, NPM 6.4.1 입니다.

 

1. 파워쉘을 관리자 권한으로 실행.

 

2. 아래 커맨드를 실행

 

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force

 

 

3. 다시 아래 커맨드로 npm-windows-upgrade 설치

 

npm install -g npm-windows-upgrade

 

4. 이후 아래 명령어로 원하는 버전 설치

 

대개의 경우는 위 단계로 잘 마무리가 됩니다. 노트북에 npm-windows-upgrade 설치시에도 그랬구요.

 

========

그런데, 뭐가 잘 못 됬는지, 에러 안내 메시지처럼 npm -i npm 명령어를 쳐서 그런건지..

제대로 설치가 안되는 경우가 있습니다.

 

오류 메시지와 함께, 아래 링크를 주면서 따라해보라 하는데도 안됩니다.

https://github.com/felixrieseberg/npm-windows-upgrade#usage

 

 

6.9.0 을 설치하려고 했는데, 6.4.1이 설치되어있다.  일반적인 이유는 어쩌구 저쩌구..

 

내용은, nodejs 프로그램제거, %programfiles%\nodejs 내용, 폴더 삭제,

%appdata%\npm, %appdata%\npm-cache 다 삭제.

node, npm과 관련된 path 모두 삭제 (시작 검색에서 환경변수 입력)

그리고 재인스톨.... 하라고 했는데도 잘 안됩니다.

 

조금 삽질을 하다가.. 검색으로 해결 했는데 아래처럼 하여 해결 하였습니다.

https://github.com/coreybutler/nvm-windows/issues/300#issuecomment-476728267

 

nodejs 폴더로 가서 기존 npm, npx 명령어들을 다음으로 변경

npm1.cmd, npm1, npx1, npx1.cmd

 

그리고 npm1 update -g 실행

 

잘 됩니다.

 

 

 

npm 파일들은 새로 만들어졌네요.

첫째나 둘째가 유치원 혹은 어린이집에서 수업을 듣고 사용한 DVD를 가져오는데,

집에 DVD 플레이어가 없어, 보여주기 난감할때가 있습니다.

 

집에서는 영상을 주로 스마트 TV나, 셋탑박스 NAS등을 이용해서 파일로 재생하기 때문인데요.

이럴때 PC에 DVD내용을 MP4로 옮겨서 usb에 등에 편하게 옮기는 방법입니다.

 

바로 handbrake 라는 툴을 이용하면 간단하게 사용이 가능합니다.

handbrake는 영상 변환 툴로써 파일 변환이 기본 목적이지만 DVD를 옮길때도 유용합니다.

 

 

준비물 : DVD드라이브가 있는 PC나 맥, 복사할 DVD

 

아래 사이트에 접속하면, 다음과 같은 화면이 나타납니다.

https://handbrake.fr/news.php

 

 

https://handbrake.fr/downloads.php

에 접속하시면 gui 버전을 받을 수 있습니다. macOS, Windows, Linux 모두 받을 수 있습니다.

 

https://handbrake.fr/downloads2.php

에 접속하시면 cli 커맨드 라인으로 입력할 수 있는 버전도 받을 수 있습니다. 커맨드 라인으로

대량 배치처리할때 편합니다.

 

gui 버전 기준으로 설명합니다.

 

1.다운로드 페이지에서 윈도우용을 설치합니다. (설치과정은 생략합니다.)

 

 

 

2. 먼저, DVD를 PC DVD 드라이브에 넣습니다.

 

3. handbrake 프로그램을 실행하면 소스 선택 화면이 나타납니다.

E:를 선택합니다.

 

4. 스캔화면이 나타납니다.

5. HandBrake 프로그램을 켠 후 다른 DVD를 가져올때도 좌측 상단에 OpenSouce메뉴를 통해서 설정이 가능합니다.

 

 

6. 트랙을 복사하기 전에 먼저 해둘 일이 있습니다. 바로 출력 설정인데요. Tools > Preferences 메뉴로 들어갑니다.

7. 왼쪽 탭에서 Output Files 탭을 선택하고, Default Path에 저장될 디렉토리를 지정해줍니다.

그리고 MP4 File Extension에서는 Always use MP4를 선택했습니다.(이건 옵션입니다.)

 

8. 의도인지 모르겠지만, 하단에 Save As에 첫번째 저장될 트랙의 이름도 지정하도록 하고 되어있습니다.

아래와 같이 저장될 이름을 기입합니다.

Summary  탭에서 MP4나 MKV로 선택할 수 있습니다.

 

9. 이제 복사할 트랙들을은 작업목록에 올려야합니다. Add to Queue메뉴에서 Add All을 선택합니다.

모든 트랙을 복사할 예정입니다.

 

혹시 6, 7번에서 저장될 디렉토리를 설정하지 않았다면 아래와 같은 경고 메시지가 나타납니다.

 

10. 상단에 queue에 변환할 목록들이 추가된 것을 확인할 수 있습니다.

 

11. 작업 목록 화면에서 Start Queue를 클릭하면 mp4로 변환이 됩니다.



HTML5에서 로컬 DB로 사용가능하며,(웹브라우저일 경우 제약이 각각 있습니다... ) 

CouchDB와 편리하게 서버동기화가 가능하도록 마련되어있습니다...


웹이라는 제약은 물론 있지만, cordova를 통해 앱으로 만들 경우 Plugin으로 그 제약을 풀 수 있다는 장점이 있죠...

(인터페이스는 동일)



기존 HTML5의 로컬DB스펙인 WEBSQL은 예전에 SQLITE기반이었던거 같은데... 

아마도 특정 벤더에 종속되는 것을 막기 위해서 그런지.... 

표준화되면서 폐기되버렸네요... ㅡㅡ;

대신 키/밸류 기반의 IndexedDB라는걸 각 브라우저 벤더사에서 각각 제공해주는 듯합니다.


PouchDB는 이러한 춘추전국시대 같은 다양한 환경에서 최적에 상황에 맞도록 셋팅가능하게 합니다.. 아래링크 참조합니다.

https://pouchdb.com/adapters.html



PouchDB를 위한 12가지 프로팁 (읽어볼만하며, PouchDB의 특징도 알 수 있습니다.)

https://pouchdb.com/2014/06/17/12-pro-tips-for-better-code-with-pouchdb.html



- API 레퍼런스는 여기서 확인이 가능합니다.

https://pouchdb.com/api.html


- ES7일 경우 async , await가 사용가능하나,, ES5는 Promise패턴을 이용해야합니다.


-  Mango Query(cf.Mongo DB) 가 가능한 헬퍼 패키지가 있어 사용할 수 있습니다. 

Vue 인스턴스 생성시 최초에, 객체를 주입하고, 이후 각 콤포넌트에서 this.$bucket 으로 접근하는 방식..

https://www.npmjs.com/package/vue-pouch-db


- ibm watson 데이터랩에서 제공하는 Vuejs / PouchDB 튜터리얼 문서입니다.

https://github.com/ibm-watson-data-lab/shopping-list-vuejs-pouchdb/blob/master/tutorial.md


- MongoDB같은 json 문서 DB입니다.. RDB랑 같이 생각해선 곤란....하구요. MongoDB같은 접근법이 필요합니다.


- 테이블 개념이 없네요.. 이것 때문에 좀 헷갈렸는데. DB가 여러개. 문서속에 하위노드나, attach, 연결정보를 추가하도록 합니다.



Vuejs에서 사용시 아래와 같이 사용했습니다.


- 초기 접근

노드 입력시 guid가 필요해서 vuex에  공용 guid생성 함수를 만들어서 사용했습니다.


최초, 로딩되도록 아래 같이 호출합니다.

created () {
this.load()
},


로드 메소드는 아래와 같이 구성했고..

methods: {
load () {

var vm = this;
this.$bucket.db('vmbook').allDocs({include_docs: true})
.then(function (res) {
vm.groups = res.rows
}).catch(function (err) {
alert(err);
});
},


저장 버튼 눌렀을때 메소드 구현은 아래와 같이 했습니다.

save () {
var vm = this;
this.$bucket.db('vmbook').put({
_id: this.$store.state.global.uuid(),
title: this.regform.group_name, items: []})
.then(function(res) {
vm.load()
vm.show = false
}) .catch(function(err) {
alert(err)
//vm.show = false
})
}
},


삽질이 있었지만.. 잘됩니다.



웹쪽 기술동향을 알 수 있다는 점에서는 흥미롭네요.

    private Bitmap RotateBitmap(Bitmap bitmap, float angle)
    {
        int w, h, x, y;
        var dW = (double)bitmap.Width;
        var dH = (double)bitmap.Height;

        double degrees = Math.Abs(angle);
        if (degrees <= 90)
        {
            double radians = 0.0174532925 * degrees;
            double dSin = Math.Sin(radians);
            double dCos = Math.Cos(radians);
            w = (int)(dH * dSin + dW * dCos);
            h = (int)(dW * dSin + dH * dCos);
            x = (w - bitmap.Width) / 2;
            y = (h - bitmap.Height) / 2;
        }
        else
        {
            degrees -= 90;
            double radians = 0.0174532925 * degrees;
            double dSin = Math.Sin(radians);
            double dCos = Math.Cos(radians);
            w = (int)(dW * dSin + dH * dCos);
            h = (int)(dH * dSin + dW * dCos);
            x = (w - bitmap.Width) / 2;
            y = (h - bitmap.Height) / 2;
        }

        var rotateAtX = bitmap.Width / 2f;
        var rotateAtY = bitmap.Height / 2f;

        var bmpRet = new Bitmap(w, h);
        bmpRet.SetResolution(bitmap.HorizontalResolution, bitmap.VerticalResolution);
        using (var graphics = Graphics.FromImage(bmpRet))
        {
            graphics.Clear(Color.White);
            graphics.TranslateTransform(rotateAtX + x, rotateAtY + y);
            graphics.RotateTransform(angle);
            graphics.TranslateTransform(-rotateAtX - x, -rotateAtY - y);
            graphics.DrawImage(bitmap, new PointF(0 + x, 0 + y));
        }
        return bmpRet;
    }

https://stackoverflow.com/questions/5172906/rotating-graphics


'C#' 카테고리의 다른 글

log4net.config 예제  (0) 2019.08.03
GDI+ Bitmap Rotaion  (0) 2019.02.19
WPF RichText에서 HTML 표시하기  (0) 2019.02.09
Visual Studio Debug.WriteLine 표시가 안될때 대처 방안  (0) 2018.11.15
WPF, Template Select 하기  (0) 2018.05.29
WPF MVVM 샘플코드  (0) 2018.05.28

요즘 커맨드 명령이 많이 쓰이는 듯합니다.

npm도 그렇고, dotnet 프로젝트도 커맨드 명령어로 생성하도록 하네요.

그래서 커맨드 창에 기억하고픈  커맨드만 따로 저장하는 방법이 없을까 하다가 이 방법 쓰면 좋겠다 하고 고안해보았습니다.

*파워쉘을 쓸 경우 기능이 풍부해서 아래와 같은 삽질(?) 안해도 될듯 싶습니다.


단순히 명령어를 그냥 그냥 복붙하면 제일 쉽습니다만....^^





1. 명령어를 입력합니다.


2. 기억하고픈 명령어는 방향키 상단키를 눌러 다시 나타나게 하고 앞에 REM 을 입력합니다.

 (도스명령어에서는 REM은 주석입니다. 따라서 아무런 일도 일어나지 않습니다.)

예) 

DIR /W 

REM DIR/W


그리고 이 방식으로 계속 기억하고 싶은 명령어는 위 방식으로 REM 을 해놓습니다.


3. REM 해놓은 명령어만 보고 싶을때 이렇게 합니다.


doskey /history | findstr -R "^REM"


앞에 REM만 달린 명령어들만 나열합니다.


위 명령들을 저장하고 싶으면 파일로 리다이렉션 시키면 됩니다.




doskey /history | findstr -R "^REM" > commands.txt



참고로,

F7을 누르면 히스토리 모두를 볼 수 있습니다.


+ Recent posts