bookmark_border스마트폰의 마이크를 pc서 사용하기

http://www.senstic.com/android/PocketAudio/download.aspx

이 프로그램을 사용하면 스마트폰의 마이크를 pc로 전달하거나 PC의 스피커를 스마트폰으로 사용할수 있음,

이 프로프램은 안드로이드, 아이폰에서 동시에 사용할수 있으며 각자 구입을 해야 한다. 2달라 미만인것 같으니

퀄도 상당히 괜츈하게 나오는듯,,

WO MIC 의 경우 스마트폰이 서버가 되고 PC가 클라이언트가 되는방식인데

이 프로그램은 스마트폰이 클라이언트가 되고  PC가 서버가 되는 방식인듯 하다

PocketAudio

bookmark_borderFedora25, GTX1060 VGA Passthrough 성공

리눅스를 기본으로 어떻게 하면 윈도우를 돌리면서 게임을 할 수 있을지 고민하다가 결국 방법을 찾았네요.

이미 오래전부터 VGA Passthrough 를 사용하여 해당 기술을 사용한 리눅스 덕후들의 강좌와 동영상을 참고하여

이틀 삽질후에 성공했습니다.

1. 사양 (Z620 Workstation)

VGA: GTX1060  + Quadro K600

OS: Fedora 25 Workstation

VM: KVM (libvirt + virtmanager)

2. 참고자료

https://www.youtube.com/watch?v=GtV_pYIgxOA

http://vfio.blogspot.kr/2015/05/vfio-gpu-how-to-series-part-3-host.html

https://bluehatrecord.wordpress.com/2015/12/05/performing-iommu-based-gpu-pci-passthrough-with-fedora-22/

키포인트는 아래와 같습니다.

VGA패스쓰루로 사용할 VGA를 pci-stub 으로 제외하는 것과

KVM에서는 UEFI 바이오스를 사용하고,

NVIDIA VGA는 기본적으로 가상 환경을 지원하지 않기 때문에, KVM 에서 가상 환경이라고 인식하지 못하도록 kvm=off 를 주니 VGA가 인식이 되네요.

 

bookmark_border[C#] Version 자동 설정 및 BuildDateTime 구하기

Assembly의 Build된 일시를 구하기 위한 방법을 설명 드립니다.

  1. 먼저 [Properties] 폴더에 [AssemblyInf.cs]를 엽니다.
  2. 다음과 같은 부분을 찾습니다. 보통 최 하단에 위치하고 있습니다.
    1 // You can specify all the values or you can default the Revision and Build Numbers
    2 // by using the '*' as shown below:
    3 [assembly: AssemblyVersion("1.0.0.0")]
    4 [assembly: AssemblyFileVersion("1.0.0.0")]
  3. 주석 문구와 같이 버전의 정보를 사용자가 직접 설정할 수도 있고, 자동으로 설정되도록 할 수 있습니다. 자동으로 설정되도록 하기 위해 아래와 같이 변경합니다.

    1 // You can specify all the values or you can default the Revision and Build Numbers
    2 // by using the '*' as shown below:
    3 [assembly: AssemblyVersion("1.0.*")]
    4 [assembly: AssemblyFileVersion("1.0.*")]
  4. AssemblyVersion을 자동으로 설정되도록 하면, Build된 일시 정보를 바탕으로 Version Text값을 생성됩니다.  실제 생성되는 Version Text는 아래의 구조를 가집니다.
    1 //Version=MajorVersion.MinorVersion.BuildNumber.RevisionNumber
    2 //BuildNumber는 2000년 1월 1일을 기준으로 Build된 날짜까지의 총 일수로 설정됩니다.
    3 //RevisionNumber는 자정을 기준으로 Build된 시간까지의 지나간 초(Second) 값으로 설정됩니다.
    4 Version=1.0.4122.21378
  5. 위와 같이 공식을 알았으니 이제, Version Text를 읽어서 DateTime으로 변환해 봅시다!
    01 /// <summary>
    02 /// Version Text로부터 Build된 일시를 구합니다.
    03 /// </summary>
    04 /// <returns></returns>
    05 public DateTime getBuildDateTime()
    06 {
    07     //1. Assembly.GetExecutingAssembly().FullName의 값은
    08     //'ApplicationName, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
    09     //와 같다.
    10     string strVersionText = Assembly.GetExecutingAssembly().FullName
    11             .Split(',')[1]
    12             .Trim()
    13             .Split('=')[1];
    14
    15     //2. Version Text의 세번째 값(Build Number)은 2000년 1월 1일부터
    16     //Build된 날짜까지의 총 일(Days) 수 이다.
    17     int intDays = Convert.ToInt32(strVersionText.Split('.')[2]);
    18     DateTime refDate = new DateTime(2000, 1, 1);
    19     DateTime dtBuildDate = refDate.AddDays(intDays);
    20
    21     //3. Verion Text의 네번째 값(Revision NUmber)은 자정으로부터 Build된
    22     //시간까지의 지나간 초(Second) 값 이다.
    23     int intSeconds = Convert.ToInt32(strVersionText.Split('.')[3]);
    24     intSeconds = intSeconds * 2;
    25     dtBuildDate = dtBuildDate.AddSeconds(intSeconds);
    26
    27
    28     //4. 시차조정
    29     DaylightTime daylingTime = TimeZone.CurrentTimeZone
    30             .GetDaylightChanges(dtBuildDate.Year);
    31     if (TimeZone.IsDaylightSavingTime(dtBuildDate, daylingTime))
    32         dtBuildDate = dtBuildDate.Add(daylingTime.Delta);
    33
    34
    35     return dtBuildDate;
    36 }

아, 물론 Assembly 파일자체의 작성시간을 통해 BuildDate를 구하는 방법도 있습니다.

1 /// <summary>
2 /// Assembly의 Build된 일시를 구합니다.
3 /// </summary>
4 /// <returns></returns>
5 public DateTime getBuildDateTime()
6 {
7     Assembly assembly = Assembly.GetExecutingAssembly();
8     return System.IO.File.GetLastWriteTime(assembly.Location);
9 }

bookmark_borderMicrosoft Visual Studio 용으로 제작된 빌드 넘버 자동 증가 스크립트입니다.

수도 없이 빌드를 하는 와중에 매번 손으로 빌드 넘버를 올려주려니 손가락에 쥐가 나는 바람에 간단히 리소스 파일을 수정하는 스크립트를 제작했습니다.

파이썬으로 작성되었으므로, 당연히 Python이 설치되어 있어야겠죠?

사용하기 위해서는 다음과 같이 해주시면 됩니다.

  1. buildinc를 다운로드 받습니다.
  2. 이 파일을 적용하고자 하는 프로젝트의 root 폴더에 복사합니다.
  3. 프로젝트를 Visual Studio로 실행합니다.
  4. Release 설정의 빌드 이벤트 명령(Project / Properties / Build Events / Pre-Build Event / Command Line) 항목으로 들어갑니다.
  5. 빌드 되기 전에 이 파일이 실행되도록 다음을 입력합니다.  (buildinc.py <project name>)
  6. Release 빌드를 하면 빌드 이전에 Build number 항목이 1씩 증가됩니다.

VS 2012에서사용중…

bookmark_bordervc++ 자동으로 빌드 넘버 올려주는 매크로

Source : http://www.codeproject.com/macro/IncBuildNrMacro.asp

incbuildnrmacro

 

아래 FILEVERSION, PRODUCTVERSION, FileVersion, ProductVersion에 맨 뒤에 숫자를 자동으로 1씩 증가시킨다.

기능이나 설치 방법은 아래 저자글 참고.
기존 VC 2003까지 지원되는 것이나 VC 2005에서도 이상없이 지원된다. 그러나, 자동 빌드넘버 증가를 사용하지 않으려면 rc 파일에 아래 정의를 해준다.

#define Disable_IncBuildNrMacro

그러나, 계속 빌드넘버가 증가하게 되어 제어할 수 없다. 원인은 뭔지 모른다.

 

설치 방법

  1. C:\Users\Documents\Visual Studio 2010\Projects\VSMacros80 폴더의 해당 압축파일을 해제 한다.
  2. 도구 – > 매크로 -> 매크로 프로젝트 로드 선택
  3. 프로젝트 파일 선택 후 추가 버튼 클릭

macro1

4. 이벤트 처리코드 사용 선택 후 확인

macro25. 이제부터 자동으로 빌드 넘버가 올라간다

 

매크로를 추가 하거나 삭제가 안되는 문제가 있을 경우

C:\Windows\Microsoft.NET\Framework\v4.0.30319 폴더에 Microsoft.Vsa.dll 라는 파일이 없는것이다 해당 파일을 dotnetframework 2 에서 복사해서 붙여넣기 하면 정상적으로 작동 할것이다.