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#' 카테고리의 다른 글

asp.net core 3.1, NLog 설정시 문제해결  (0) 2020.06.26
log4net.config 예제  (0) 2019.08.03
GDI+ Bitmap Rotaion  (0) 2019.02.19
WPF RichText에서 HTML 표시하기  (0) 2019.02.09
Visual Studio Debug.WriteLine 표시가 안될때 대처 방안  (2) 2018.11.15
WPF, Template Select 하기  (0) 2018.05.29

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

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을 누르면 히스토리 모두를 볼 수 있습니다.


 RichText에서 HTML을 표시할 수 있는 방법에 대해 설명해놓은 글입니다.

물론 샘플 소스도 같이 있습니다.

https://www.codeproject.com/Articles/1097390/Displaying-HTML-in-a-WPF-RichTextBox


소스를 다운로드해서 샘플을 켜보면 RichText에 TextBox의 Text로 바로 바인딩을 걸어놔서, HTML 문법오류가나면, 바로 프로그램이 죽습니다.

그래서 생성자에 바로 HTML을 입력하고 테스트해보았습니다.






핵심은  HtmlConverter에서 HTML 분석기를 만들어 HtmlToXamlConveter를 호출한다는 겁니다.

FlowDocument 를 만들어서 입력하게끔하네요. 


RTF문서 만들고, 입력내용에 대해 수정하기가 쉽지않은데...

HTML로 하니 간편한 듯합니다..

유용하네요.



MainWindow.xaml


<Window x:Class="RichTextBlockSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:local="clr-namespace:RichTextBlockSample"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        Title="HTML TextBlock sample"
        Width="400"
        Height="300"
        mc:Ignorable="d">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <TextBox Name="TextBox"
                 Margin="10,0"
                 HorizontalAlignment="Stretch"
                 VerticalAlignment="Center"
                 Text=""
                 TextWrapping="Wrap" />
        <RichTextBox Grid.Row="1"
                     local:HtmlRichTextBoxBehavior.Text="{Binding ElementName=TextBox, Path=Text}"
                     IsDocumentEnabled="True"
                     IsReadOnly="True" />
        <!--
        <WebBrowser Grid.Row="2"
                    local:WebBrowserBehavior.Body="{Binding ElementName=TextBox, Path=Text}" />-->
    </Grid>
</Window>



MainWindows.xaml.cs

using System.Windows;
using System.Windows.Controls;

namespace RichTextBlockSample
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
	{
		public MainWindow()
		{
			InitializeComponent();

            TextBox.Text = "<span style=\"color:red; font-size:20px; font-weight:bold\">hello</span>";
            TextBox.Text += "<span style=\"color:blue; font-size:20px; font-weight:bold; font-family:aria\">world</span>";
            TextBox.Text += "<span style=\"color:green; font-size:20px; font-weight:bold; font-family:nanumgothic\">안녕하세요</span>";
        }
	}
}


라이센스 : https://www.codeproject.com/info/cpol10.aspx 보니 소스 재배포가 가능해서 파일 첨부합니다.


RichTextBlockSample.zip



'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 표시가 안될때 대처 방안  (2) 2018.11.15
WPF, Template Select 하기  (0) 2018.05.29
WPF MVVM 샘플코드  (0) 2018.05.28

1. 빌드하는 모드가 Debug모드인지 확인할 것.


2. 도구 / 옵션 / 디버깅 / 일반에 출력 창의 모든 텍스트를 [직접실행]창으로 리다이렉션 체크해제 확인

(Menu > tools > options > debugging > General > Redirect all output window text to the immediate window (NOT Checked)






2. 프로젝트 설정 페이지에서 빌드, 설정은 빌드, DEBUG 상수 정의, TRACE 상수 정의 확인 

(Project Properties > Build > Define DEBUG constant / Defile TRACE constatnt are all checked.




3. 출력 창에서 마우스 오른쪽 버튼 눌러 프로그램 출력 체크 확인 (이걸 몰라서 헤멨다 아오..)




4. 기타 App.config 에 이런거 있어도 안되고.

  <system.diagnostics>

    <trace>

      <listeners>

        <!-- This next line is the troublemaker. If it is there delete it-->

        <clear/>

      </listeners>

    </trace>

  </system.diagnostics>





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

GDI+ Bitmap Rotaion  (0) 2019.02.19
WPF RichText에서 HTML 표시하기  (0) 2019.02.09
Visual Studio Debug.WriteLine 표시가 안될때 대처 방안  (2) 2018.11.15
WPF, Template Select 하기  (0) 2018.05.29
WPF MVVM 샘플코드  (0) 2018.05.28
doxygen 설치 및 설정  (0) 2018.05.14
  1. 이재겸 2020.07.29 23:43

    흑흑 감사합니다. 3번 문제 때문에 crtdbg 로 릭 안나와서 자판찢으면서 울고있었어요.

    • Favicon of https://bigcode.tistory.com 에리스 2020.08.07 22:36 신고

      저도 3번문제 때문에 열이 받쳐..ㅡㅡ; 포스팅으로 정리했던기억이 나네요.
      ㅎㅎㅎ

+ Recent posts