Windows10 에서 Linux 를 사용하는 글을 발견하여 링크를 남깁니다.
https://medium.com/@rkttu/start-java-dev-with-win-10-402cb91126fd
Windows10 에서 Linux 를 사용하는 글을 발견하여 링크를 남깁니다.
https://medium.com/@rkttu/start-java-dev-with-win-10-402cb91126fd
오늘도 Visual Studio Extension 입니다. ㅎㅎ
오늘은 검색하다가 발견한 링크하나만 투척합니다.
https://hmemcpy.com/2015/10/7-open-source-visual-studio-extensions-to-make-your-life-easier/
Visual Studio Extension - Debug Command Line (0) | 2017.09.06 |
---|---|
폴더 동기화 프로그램 [rsync(linux), cwrsync(windows)] (0) | 2010.06.28 |
무료 텍스트편집기(Acroedit, Notepad++) (0) | 2010.06.21 |
Doxygen 을 이용한 CHM 파일 만들기 (0) | 2010.03.22 |
[OpenProj]일정관리툴 (0) | 2010.01.06 |
정말 오래간만에 블로그에 왔네요..
방금 휴면상태를 풀었다는... ㅋ
오늘은 Visual Studio Extension 중에 제가 사용하는 extension 하나를 소개할까 합니다.
Debug Command Line 입니다.
Link : https://marketplace.visualstudio.com/items?itemName=SamHarwell.DebugCommandLine
기능은 Debug 시작시 넘기는 arguments 를 toolbar 에 추가하고
필요시에 toolbar 에서 선택해서 arguments 를 쉽게 변경하여 실행할 수 있게 해주는 기능입니다.
지원하는 버전은 Visual Studio 2012 ~ 2017 까지 지원하니 참고하세요~
Visual Studio Extension - 7 open-source Visual Studio Extensions (0) | 2017.09.12 |
---|---|
폴더 동기화 프로그램 [rsync(linux), cwrsync(windows)] (0) | 2010.06.28 |
무료 텍스트편집기(Acroedit, Notepad++) (0) | 2010.06.21 |
Doxygen 을 이용한 CHM 파일 만들기 (0) | 2010.03.22 |
[OpenProj]일정관리툴 (0) | 2010.01.06 |
개발자라면 언젠가는 사용하게되는 것이 버전관리툴(svn, git, ...)과 Issue Tracker 죠.
오늘은 TortoiseGit 과 issue tracker 를 연동하는 법을 소개하겠습니다.(단순히 issue 번호에 link 거는 정도 까지만 입니다.)
TortoiseGit 으로 Local 저장소를 준비해주세요.
그리고 연동할 Issue Tracker 도 있어야겠죠?
윈도우 탐색기에서 Local 저장소를 선택 후 우클릭 하고
TortoiseGit -> Settings 클릭하면 아래와 같은 화면이 뜹니다.
- Hook Scripts/Issue Tracker Config 를 선택
- Config source 는 공통적으로 적용할 예정이므로 Global 을 선택했습니다.
- bugtraq.url : http://my_mantis/view.php?id=%BUGID% <- (요건 제가 사용중인 MantisBt 이니, 각자가 사용하고자 하는 IssueTracker 의 url 을 넣으셔야 합니다)
- bugtraq.message : %BUGID%
- bugtraq.logregex : Test 버튼 눌러서 입력합니다.
Message part expression : [Ii]ssues?:?(\s*(,|and)?\s*#\d+)+
Bug-ID expression : (\d+)
- 이제 설정이 완료되었습니다.
- git commit log 작성시 Tester 의 Sample text 처럼 입력하면 log 확인창에 아래와 같이 issue 번호에 링크가 걸리게 됩니다.
이제 링크를 클릭하여 Issue Tracker 의 해당 이슈가 보이면 성공이죠~
이상으로 TortoiseGit 에 Issue Tracker 연동 방법에 대한 정리를 마치겠습니다~~
SVN 백업 및 복구 (0) | 2010.11.23 |
---|---|
[Tip]svn server 주소를 ip 가 아닌 domain name 으로 하라. (0) | 2010.01.04 |
svn:externals - SVN 다른 저장소와 연결 하기 (0) | 2009.12.02 |
http://fmtlib.net/3.0.0/index.html
c, c++ 에서 프로그래밍을 할 때 printf, sprintf 등과 같은 함수들을 자주 사용하시죠?
로그를 남기거나 문자열을 조합하거나 할 때 전 보통 아래와 같이 쓰곤 했습니다.
std::string my_name = "simmanix"; int age = 26; // 네.. 거짓말입니다... 20 대로 돌아가고 싶네요.. ㅜㅜ char szMyInfo[256]; sprintf( szMyInfo, "name = %s, age = %d", my_name.c_str(), age );
그러다가 가끔 실수로
sprintf( szMyInfo, "name = %s, age = %d", my_name, age );
이렇게 해서 낭패를 보기도 하죠.(컴파일 에러가 안나죠 ;;;;)
조합할 내용이 많을 경우 %s,%d,%c,%u, 등등 타입에 맞게 순서를 지켜야 하는 번거로움도 있습니다.
그리고 저의 경우 format string 을 외부파일로 만들어서
c++ 프로그램과 c# 프로그램이 공용으로 사용해야하는 경우가 있었습니다.
이런 문제들을 해결해야 했고 그렇다고 직접 구현하기는 너무 귀찮았습니다.
(사실 능력이 부족합니다.. ㅜㅜ)
결국 구글링한 끝에 cppformat 이라는 라이브러리를 발견하고는 바로 적용했습니다.
cppformat 은 cross-platform 이며, c의 printf 방식으로도 사용할 수 있고 c# 방식으로도 사용할 수 있습니다.
간단하게 위에서 예를 들었던 코드를 cppformat 으로 써서 c# 방식으로 바꿔보겠습니다.
std::string my_name = "simmanix"; int age = 26; // 네.. 거짓말입니다... 20 대로 돌아가고 싶네요.. ㅜㅜ //char szMyInfo[256]; /* sprintf( szMyInfo, "name = %s, age = %d", my_name, age ); std::string my_string = szMyInfo; */ std::string my_string = fmt::format( "name = {}, age = {}", my_name, age );
변화를 감지하셨나요?
%s,%d 가 없어지고 {},{} 로 대체되었습니다.
이제 자료형에 따른 %s,%d 사용 그리고 나열순서에서 해방될 수 있습니다.
이 외에 특별한 형태로 출력해야 하는 경우도 지원하고 있는데
자세한 설명은 link 로 대신하겠습니다.
http://fmtlib.net/latest/api.html
http://fmtlib.net/3.0.0/syntax.html
cppformat 은 window 및 linux 에서도 정상적으로 동작하는 것을 확인했습니다.
로그파일을 분석할 때 여러 문자열을 동시에 검색하고 싶을 때가 있다.
Start, End, Req, Res 등을 같이 검색하는 경우 등이다.
Notepad++ 에서 아래와 같이 검색하면 된다.
(Start|End) | (Req|Res) |
[정규표현식] 특정문자열로 끝나는 문자열 검색하기 (0) | 2016.05.24 |
---|
특정문자열로 끝나는 문자열을 검색해보자.
찾고 싶은 것이 예를들어 ".tga" 라면
다음과 같이 검색하면 된다.
^.*.tga$
해석:
^ |
줄이나 문자열의 시작 |
. |
일반적으로 새 줄을 제외한 모든 문자를 의미한다. |
\.tga |
.tga |
$ | 줄이나 문자열의 끝 |
[정규표현식] Notepad++ 에서 여러 문자열 동시 검색하기 (0) | 2016.05.24 |
---|
윈도우 탐색기에서는 여러 폴더에 있는 특정 파일들을 복사하는 기능이 없죠.
저의 경우에는 업무상 여러 폴더에 있는 특정파일들을 다른 경로에 동일한 구조로 복사해야 하는 경우가 빈번합니다.
매번 탐색기로 작업을 하자니 너무 번거로와서 파워쉘로 만들어 봤습니다.
복사할 파일이 다를 경우 스크립트를 수정해야 하긴 하지만 하나하나 복사하는 것보다는 좀 더 수월합니다.
자 스크립트 나갑니다.
# filename : copy_files.ps1 # author : simmanix # date : 2016-05-18 16:40 $ROOT_DIR= $PSScriptRoot echo $ROOT_DIR $DEST_PATH="DestPath" $Src_Nation="USA" $Files = New-Object System.Collections.ArrayList $Files += "TTF\TTFInfo.xml" $Files += "Config\NationInfo.xml" function fCopyFile () { $D_PATH=$args[0] $File=$args[1] If ( $args.Count -lt 2 ) { return } echo "cur path = $D_PATH" echo "cur file = $File" echo "cp $ROOT_DIR\$DEST_PATH\$Src_Nation\$File $ROOT_DIR\$M_TYPE\$D_PATH\$File" & cp $ROOT_DIR\$DEST_PATH\$Src_Nation\$File $ROOT_DIR\$M_TYPE\$D_PATH\$File } cd .\$DEST_PATH $ARR_NATION = Get-ChildItem -Directory -Name for( $i = 0 ; $i -lt $ARR_NATION.Count ; $i++ ) { $NATION = $ARR_NATION[$i] If ( $Src_Nation -eq $NATION ) { continue; } for( $j = 0 ; $j -lt $Files.Count ; $j++ ) { fCopyFile $NATION $Files[$j] } cd $ROOT_DIR }
설명
$Files += "여기에 복사하고자 하는 파일들을 추가합니다.txt"
$ARR_NATION -> 복사하고자 하는 대상 폴더입니다. 위에서는 특정 폴더내의 모든 폴더에 넣는 코드입니다. 여러분들은 $Files 처럼 만들고 사용하는 것이 좋겠죠?
나머지는 충분히 분석가능하리라 생각합니다.
VisualStudio 의 빌드이벤트에 Powershell 사용하기 (0) | 2016.05.24 |
---|---|
PowerShell 설정 (0) | 2016.05.24 |
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
powershell "$(SolutionDir)build_event_before.ps1" "$(ProjectName) " "$(NATION)"
# filename : build_event_before.ps1 # author : simmanix # date : 2016-04-07 21:42 # Visual Studio 에서 빌드시 프로젝트 별로 설정된 Predefine_$NATION.h 가 include 되도록 수정한다. $invocation = (Get-Variable MyInvocation).Value $scriptPath = Split-Path $invocation.MyCommand.Path $scriptName = $invocation.MyCommand.Name echo "--------------- start $scriptName ---------------" if( $args.Count -lt 2 ) { echo "usage : $scripName param1 param2" echo "--------------- failed $scriptName ---------------" exit 1 } $ProjName = $args[0] $Nation = $args[1] echo "ProjectName : $ProjName" echo "Nation : $Nation" $PredefineFileName = $PSScriptRoot + "\src\" + $ProjName + "\Predefine.h" $OldNation = 0 $Lines = Get-Content $PredefineFileName | % { if( $_ -match "#include `"Predefine_" ) { $sp = $_.split("_"); $OldNation = $sp[1].replace( ".h`"", "" ); $bSame = $OldNation -eq $Nation; $_ = $sp[0] + "_" + $Nation + ".h`""; } $_; } if( $bSame ) { echo "Not changed because same nation"; } else { Set-Content -path $PredefineFileName -Value $Lines echo "Changed $OldNation to $Nation" } echo "--------------- succeed $scriptName ---------------"
특정파일들을 여러 폴더에 복사하는 PowerShell Script (0) | 2016.05.24 |
---|---|
PowerShell 설정 (0) | 2016.05.24 |
PowerShell Policy 변경
PS>Set-ExecutePolicy unrestricted
PS>Get_ExecutePolicy을 실행하여 Unrestricted 임을 확인
VisualStudio 에서 pre-build event 에 powershell 을 사용하기 위해
PS>Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
PS>Get-Host
특정파일들을 여러 폴더에 복사하는 PowerShell Script (0) | 2016.05.24 |
---|---|
VisualStudio 의 빌드이벤트에 Powershell 사용하기 (0) | 2016.05.24 |