XAMPP Version History

IT/Programming/Solution/Tip 2014. 4. 24. 21:37

 

 

 

 

 

출처 : http://code.stephenmorley.org/articles/xampp-version-history-apache-mysql-php/

설정

트랙백

댓글

CentOS EPEL Repo 이용

IT/Programming/Solution/Tip 2014. 4. 16. 18:34

기본 패키지에서 설치할 수 없는 다양한 패키지들은 EPEL(Extra Packages for Enterprise Linux) 에서 구할수 있다.

 

CentOS EPEL Repo 를 설치해주고 원하는 패키지를 설치하면 된다.

 

아래는 weechat을 CentOS 5.4 에서 설치하는 예이다.

  1. Download the latest epel-release rpm from
    http://dl.fedoraproject.org/pub/epel/5/x86_64/
  2. Install epel-release rpm:
    # rpm -Uvh epel-release*rpm
  3. Install weechat-devel rpm package:
    # yum install weechat-devel
 

* 메신저로 추가 문의하는 사람이 있어 내용을 덧붙입니다.

여기서 EPEL 시리즈를 올바르게 설치하려면 위의 링크(http://dl.fedoraproject.org/pub/epel/5)에서 무작정 epel 을 내려 받지 마세요.

자신의 배포판 버젼과 시스템 아키텍쳐에 맞는 EPEL 을 설치하시길 바랍니다. 6.x 배포판을 x86_64 시스템 환경으로 구동하신다면

http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 이 링크를 통해서 epel 을 설치할 수 있습니다.

 

epel rpm 은 올바르게 경로를 찾아가셔서 CTRL + F 로 epel 을 검색하셔서 rpm 주소를 가져오신 후, wget 등으로 rpm 을 내려받아 설치하시면 됩니다.

설정

트랙백

댓글

/etc/lightdm/lightdm.conf 수정 후 부팅 문제

IT/Programming/Solution/Tip 2014. 4. 5. 22:52

Ubuntu에서 root 로그인을 위해 /etc/lightdm/lightdm.conf 에서 greeter-show-manual-login=true 설정을 적용했을 때 부팅이 안되는 경우, recovery 모드나 싱글 모드나 live cd 등을 이용하여 쉘을 띄운 후 다음과 같이 작업한다. :

 

/etc/lightdm/lightdm.conf.d/50-unity-greeter.conf 를 열고 아래와 같이 해당 내용을 편집한다 :

 

[SeatDefaults]
 greeter-session=unity-greeter
 greeter-show-manual-login=true

 

필자가 직접 경험한 문제는 아니고, 친구 문제의 해결을 도우면서 겪은 이슈라서 바로 해결되지 않을 수 있다.

 

그래도 문제가 계속 일어난다면, /etc/lightdm/lightdm.conf 에 적용된 greeter-show-manual-login=true 설정을 해제해주면 된다.

설정

트랙백

댓글

(jQuery) Uncaught Error: cannot call methods on dialog prior to initialization

IT/Programming/Solution/Tip 2014. 4. 3. 16:24

Uncaught Error: cannot call methods on dialog prior to initialization


jQuery로 작업을 하다가 위와 같은 에러를 만나서 엄청 고생을 했다. 


천천히 잘 읽어보면, 초기화되지 않은 상태로 호출을 하여 문제가 되는 것이다.

이는 다양한 상황에서 발생할 수 있는 문제이다. 예를 들면 다이얼로그가 존재하지도 않는데 open() 이나 close() 를 호출한다던가..



관련된 포스트가 있어서 인용한다. : (출처 : http://hbs.pe.kr/50152021782)


기다리던 jQueryUI 1.9 가 업데이트 되었습니다.


grid 가 제외되어서 안타깝습니다만..


어쨌든 개발중 1.9를 적용해 보고 발생하는 오류 포인트에 대해 간단히 정리합니다.


저의 경우 1.8.24 에서 1.9 로 올라갔기 때문에 정확히 1.9의 변경사항에만 영향이 있었습니다.

 

jQueryUI 1.8

        $('<div/>').dialog('close');

        오류 없음

 

        jQueryUI 1.9

        $('<div/>').dialog('close');

        Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'

 

위처럼 간단히 오류 재현코드를 작성해 보았습니다.

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

1. jQueryUI 1.9 이전에는 UI Plugin initialize 되지 않은 객체에 실행되면 그냥 무시 되었습니다.

2. jQueryUI 1.9 에서는 initialize 되지 않은 플러그인 관련 옵션/메소드를 사용할 경우 오류가 발생 합니다.

 

제가 발견한 포인트는 다음과 같습니다.

1. Dialog 생성되기 전에 close 부터 하는 경우. (dialog 있으면 close, 없어도 무시였으나 이제는 오류가 발생)

2. Div 밑에 children button icon 변경하는 경우
div.children().button('option','icons',{primary:'ui-icon-close'});
children
 버튼이 아닌 객체가 포함되어 있다면 1.8에서는 문제 없으나 1.9에서는 오류 발생
따라서 children('BUTTON') 등으로 대상을 정확히 특정 하는 것이 좋고  좋은건 selector 의존을 줄이고 memoization 활용 하면 됩니다.

 

특히  포인트의 2번째는 본인의 코드가 아닌 플러그인이나 프레임웍 등에 의해 하위 객체 구성이 바뀌는 경우 children이나 find통한 chaining에서 문제가   있습니다.



근데 난 jQueryUI 1.10 을 사용 중인데 이런 에러가 나는 걸 보니 꼭 위의 포스트처럼 1.9 버젼에만 국한된 이슈가 아닌 것 같다.


나는 Ajax로 다이얼로그에서 다른 페이지를 load() 할 때 이 문제를 만났는데, 온갖 삽질 끝에 불러오는 페이지에 있는 include 되는 모든 스크립트를 제거하고 시도한 끝에 해결할 수 있었다. 페이지가 순수하게 내가 의도한 데이터만 들어와야하는데, 페이지에 포함되어 있는 불필요한 스크립트 등이 함께 불러와져서 문제가 발생한 것이다.


천천히 소스를 검토해보고, 하나씩 테스트해봐가며 문제를 찾아보면 어렵지 않게 해결할 수 있는 문제다.

정작 나는 거의 5시간을 소비해버리고 말았지만..;; -_-;


설정

트랙백

댓글

Sublime Text :: Bracket Highlighter

IT/Programming/Solution/Tip 2014. 3. 29. 15:23

이번에 Sublime Text 를 사용하면서 Bracket Highlighter 이라는 플러그인을 사용하였는데, 꽤 만족스럽다.

Sublime Text 자체에도 하이라이팅을 해주긴 하지만 많이 흐릿하고 눈에 잘 보이지도 않고, 지원하지 않는 문자도 있어 이 플러그인을 사용하는 것을 강력히 추천한다.

 

다만 아주 가끔씩 bracket 이 정확히 쌍을 이룸에도 불구하고 bracket missing 을 띄우는 문제가 있긴하다.

 

 

 

공식 홈페이지 : https://sublime.wbond.net/packages/BracketHighlighter

플러그인 설치를 처음 한다면 opentutorial 의 다음 강좌를 참고하면 된다. : http://opentutorials.org/course/671/3642

 

설치 초기에는 단순히 밑줄로 하이라이팅을 해줄텐데, Preferences > Package Settings > Bracket Hightlighter > Bracket Setting Default 로 들어가서 bracket_styles 로 검색하여 "style" : "underline" 를 "style" : "solid" 로 고쳐주면 된다.

설정

트랙백

댓글

(Java) eclipse :: This file system is read only ~ 해결방법

IT/Programming/Solution/Tip 2014. 2. 6. 16:13

the project was not built due to this file system is read only : 경로~

 

eclipse 에서 보통 외부에서 새로운 프로젝트를 내려받아 열어서 작업했을 경우 위와 같은 오류 메시지를 볼 수 있다.

한마디로 빌드를 하고 산출물(output)을 뿌릴 장소가 read only(보통 해당 경로가 존재하지 않아도 read only 오류를 내는 것 같다.) 이기 때문에 이런 오류가 발생한다.

 

이런 경우, Java Build Path 에서 output folder를 올바른 경로로 바꿔주는 것으로 문제를 해결할 수 있다.

 

해당 프로젝트의 Properties 를 열고(Project-Properties 또는 해당 프로젝트 오른쪽 클릭-Properties) Java Build Path 를 누르고 Source 탭을 선택하자.

 

<그림 1> Project Properties - Java Build Path

 

위와 같은 화면에서 아래에 보면 [Default output folder:] 라고 적혀있는 output folder 설정 공간이 있다. [Browse] 를 누르고 올바른 output folder 를 지정해주면 문제는 해결된다.

 

설정

트랙백

댓글

Visual Studio 2012 winres.h 가 include path 에 없을 때

IT/Programming/Solution/Tip 2013. 12. 18. 17:49

Visual Studio 2012 버젼부터 winres.h 가 Windows Kit8.0 의 Include Path 로 이동되었다.

 

VS12를 설치하면 Windows Kits 8.0도 같이 설치가 되니, 별도로 설치할 필요가 없을 것이다.

참고) Windows Kit 8.0 and Visual Studio 2012 - are they shipped together?

 

또한, VS12 의 Include Path 설정에 알아서 Windows Kits\8.0\Include\ 가 들어가 있으므로 문제될 것은 없지만 보통 resource를 편집하는 서드파티 프로그램을 사용할 때 Header Path를 설정해주어야하는데, 이때 아래의 경로 값을 참고하여 적절히 넣어주면 된다.

 

VS10 까지만해도 아래와 같이 VS 디렉터리에 winres.h가 존재했지만,

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include

 

VS12 부터는 Windows Kits\8.0 디렉터리에 winres.h가 들어간다.

C:\Program Files (x86)\Windows Kits\8.0\Include\um

설정

트랙백

댓글

Visual Studio 에서 전역(Global) Include Path 설정하기

IT/Programming/Solution/Tip 2013. 12. 17. 19:13

 

본 포스팅은 VS2010 이후 버전에서 IncludePath를 전역적으로(Globally) 세팅하는 방법을 소개하고 있습니다.

정확히는 VC++ Directories 항목들을 세팅합니다. 여기에 Include Path가 포함되어 있고 대부분의 개발자들이 Include Path를 수정하기 위해 VC++ Directores 항목을 찾기 때문에 제목을 "전역 Include Path 설정하기" 라고 지었습니다.

 

 

VS2008 까지는 Tools>Options>Projects and Solutions>VC++ Directories 에서 설정할 수 있었지만, VS2010 부터는 이 항목이 Property Sheet Manager로 옮겨가서 더 이상 사용할 수 없는 항목이 되었다.

 

 

 

View>Property Manager 혹은 View>Other Windows>Property Manager를 누르면 Solution Explorer 가 있는 박스에 Property Manager 윈도우가 추가된다.

 

 

 

※ 프로젝트를 하나라도 열고 있어야지 Property Manager 에서 VC++ Directories 설정이 가능하다.

 

Microsoft.Cpp.설정한 Build Platform 명칭(여기서는 Win32).user 을 오른쪽 클릭하고 Property에 들어가면

아래와 같이 VC++ Directories 를 설정할 수 있다.

 

 

 

여기서 설정한 변수들은 모두 전역적으로 적용된다. 프로젝트별로 선택적으로 적용시키기 위해서는 프로젝트마다 우클릭을 하여 Property 창을 띄워 수정해야하지만, 여기서 전역적으로 적용시키면 이후 작업한 프로젝트부터는 기본적으로 이 설정으로 세팅된다.

 

원리는 아래와 같다.

 

Visual Studio는 %LOCALAPPDATA%\Microsoft\MSBuild\v4.0 경로의 property 파일을 읽어들여 적용시킨다.

위 처럼 Property Manager에서 해당 빌드 플랫폼의 설정을 수정한 경우, %LOCALAPPDATA%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props 를 수정하게 된다. (즉, 위의 과정을 따르지 않고 해당 경로로 직접 이동하여 해당 파일을 적절히 수정해도 된다는 말이다.)

 

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <IncludePath>C:\CustomPath</IncludePath>
  </PropertyGroup>
  <ItemDefinitionGroup />
  <ItemGroup />
</Project>

 

 

만약 본인이 임의로 수정해놓고 원래대로 값을 돌려놓고 싶은 경우에는 props파일을 연 후 설정한 옵션의 bracket 범위를 지워주면 된다.

여기서는 IncludePath가 추가되었으므로 <IncludePath>C:\CustomPath</IncludePath> 자체를 지우고 저장한 후 Visual Studio를 열고 새 프로젝트를 생성해보면 기본값으로 적용이 되어있을 것이다.

 

좀 더 다양한 정보를 얻고 싶다면 아래의 링크로!

http://blogs.msdn.com/b/vsproject/archive/2009/07/07/vc-directories.aspx

 

 

설정

트랙백

댓글

Visual Studio 속성 매크로

IT/Programming/Solution/Tip 2013. 12. 17. 15:24

매크로

설명

$(RemoteMachine)

디버그 속성 페이지에서 Remote Machine 속성의 값으로 설정합니다. 자세한 내용은 C/C++ 디버그 구성에 대한 프로젝트 설정 변경을 참조하십시오.

$(Configuration)

현재 프로젝트 구성의 이름(예: "Debug")

$(Platform)

현재 프로젝트 플랫폼의 이름(예: "Win32")

$(ParentName)

(사용하지 않음) 이 프로젝트 항목을 포함하는 항목의 이름. 부모 폴더 이름이나 프로젝트 이름입니다.

$(RootNameSpace)

응용 프로그램을 포함하는 네임스페이스(있을 경우)

$(IntDir)

중간 파일에 지정된 디렉터리 경로로서 프로젝트 디렉터리에 대해 상대적인 경로. 이 경로에는 뒤에 슬래시가 붙어야 합니다. 이 경로는 Intermediate Directory 속성의 값이 됩니다.

$(OutDir)

출력 파일 디렉터리의 경로로서 프로젝트 디렉터리에 대해 상대적인 경로. 이 경로에는 뒤에 슬래시가 붙어야 합니다. 이 경로는 Output Directory 속성의 값이 됩니다.

$(DevEnvDir)

드라이브와 경로로 정의되는 Visual Studio 2010의 설치 디렉터리로, 뒤에는 백슬래시(\)가 붙습니다.

$(InputDir)

(사용하지 않음, 마이그레이션됨) 드라이브 + 경로로 정의되는 입력 파일의 디렉터리로서 뒤에는 백슬래시(\)가 붙습니다. 해당 프로젝트가 입력 파일인 경우 이 매크로는 $(ProjectDir)와 같습니다.

$(InputPath)

(사용하지 않음, 마이그레이션됨) 드라이브 + 경로 + 기본 이름 + 파일 확장명으로 정의되는 입력 파일의 절대 경로 이름. 해당 프로젝트가 입력 파일인 경우 이 매크로는 $(ProjectPath)와 같습니다.

$(InputName)

(사용하지 않음, 마이그레이션됨) 입력 파일의 기본 이름. 해당 프로젝트가 입력 파일인 경우 이 매크로는 $(ProjectName)와 같습니다.

$(InputFileName)

(사용하지 않음, 마이그레이션됨) 기본 이름 + 파일 확장명으로 정의되는 입력 파일의 파일 이름. 해당 프로젝트가 입력 파일인 경우 이 매크로는 $(ProjectFileName)와 같습니다.

$(InputExt)

(사용하지 않음, 마이그레이션됨) 입력 파일의 파일 확장명. 파일 확장명 앞에는 '.'이 붙습니다. 해당 프로젝트가 입력 파일인 경우 이 매크로는 $(ProjectExt)와 같습니다.

$(ProjectDir)

드라이브 + 경로로 정의되는 프로젝트의 디렉터리로서 뒤에는 백슬래시(\)가 붙습니다.

$(ProjectPath)

드라이브 + 경로 + 기본 이름 + 파일 확장명으로 정의되는 프로젝트의 절대 경로 이름.

$(ProjectName)

프로젝트의 기본 이름.

$(ProjectFileName)

기본 이름 + 파일 확장명으로 정의되는 프로젝트의 파일 이름.

$(ProjectExt)

프로젝트의 파일 확장명. 파일 확장명 앞에는 '.'이 붙습니다.

$(SolutionDir)

드라이브 + 경로로 정의되는 솔루션의 디렉터리로서 뒤에는 백슬래시(\)가 붙습니다.

$(SolutionPath)

드라이브 + 경로 + 기본 이름 + 파일 확장명으로 정의되는 솔루션의 절대 경로 이름.

$(SolutionName)

솔루션의 기본 이름.

$(SolutionFileName)

기본 이름 + 파일 확장명으로 정의되는 솔루션의 파일 이름.

$(SolutionExt)

솔루션의 파일 확장명. 파일 확장명 앞에는 '.'이 붙습니다.

$(TargetDir)

드라이브 + 경로로 정의되는 빌드용 기본 출력 파일의 디렉터리로서 뒤에는 백슬래시(\)가 붙습니다.

$(TargetPath)

드라이브 + 경로 + 기본 이름 + 파일 확장명으로 정의되는 빌드용 기본 출력 파일의 절대 경로 이름.

$(TargetName)

빌드용 기본 출력 파일의 기본 이름.

$(TargetFileName)

기본 이름 + 파일 확장명으로 정의되는 빌드용 기본 출력 파일의 파일 이름.

$(TargetExt)

빌드용 기본 출력 파일의 파일 확장명. 파일 확장명 앞에는 '.'이 붙습니다.

$(VSInstallDir)

Visual Studio 2010을 설치한 디렉터리. 

이 속성에는 대상 Visual Studio의 버전이 포함되며 이 버전은 호스트 Visual Studio 버전과 다를 수 있습니다. 예를 들어 $(PlatformToolset) = v90을 사용하여 빌드할 경우 $(VSInstallDir)에는 Visual Studio 2008 설치 경로가 포함됩니다.

$(VCInstallDir)

Visual C++ 2010을 설치한 디렉터리. 

이 속성에는 대상 Visual C++의 버전이 포함되며 이 버전은 호스트 Visual Studio 버전과 다를 수 있습니다. 예를 들어 $(PlatformToolset) = v90을 사용하여 빌드할 경우 $(VCInstallDir)에는 Visual C++ 2008 설치 경로가 포함됩니다.

$(FrameworkDir)

.NET Framework를 설치한 디렉터리.

$(FrameworkVersion)

Visual Studio에서 사용되는 .NET Framework의 버전. $(FrameworkDir)와 함께 사용하면 Visual Studio에서 사용되는 .NET Framework 버전의 전체 경로를 나타냅니다.

$(FrameworkSDKDir)

.NET Framework를 설치한 디렉터리. .NET Framework는 Visual Studio 2010과 함께 또는 별도로 설치할 수 있습니다.

$(WebDeployPath)

웹 배포 루트에서 프로젝트 출력이 속한 상대 경로. RelativePath 와 같은 값을 반환합니다.

$(WebDeployRoot)

<localhost>의 절대 경로(예: c:\inetpub\wwwroot).

$(SafeParentName)

(사용하지 않음) 올바른 이름 형식에서 바로 상위 항목의 이름. 예를 들어, 폼은 .resx 파일의 상위 항목입니다.

$(SafeInputName)

(사용하지 않음) 올바른 클래스 이름으로 정의되는 파일 이름(확장명은 제외).

$(SafeRootNamespace)

(사용하지 않음) 프로젝트 마법사에서 코드를 추가할 네임스페이스 이름. 이 네임스페이스 이름은 올바른 C++ 식별자에 사용할 수 있는 문자만 포함합니다.

$(FxCopDir)

fxcop.cmd 파일의 경로. fxcop.cmd 파일은 모든 Visual C++ 버전에 설치되어 있지는 않습니다.

 

 

 

 

출처 : http://msdn.microsoft.com/ko-kr/library/c02as0cs.aspx

설정

트랙백

댓글

(Linux) script

IT/Programming/Solution/Tip 2013. 11. 4. 18:22

script 명령을 사용하면 쉘에서 보여졌던 모든 내용들을 자연스럽게 저장할 수 있다.

 

 

 

 

설정

트랙백

댓글