Translate

2014년 7월 30일 수요일

[Ubuntu][Heroku] Heroku 설치 후 실행 시 '/usr/bin/env: ruby1.9.1: 그런 파일이나 디렉터리가 없습니다' 라고 뜨는 경우






환경: Ubuntu 13.10

Heroku를 한번 써보려 다음과 같이 설치를 했다. (공식홈페이지에 나와있는대로..)
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh



설치 후 실행을 하면 다음과 같이
'/usr/bin/env: ruby1.9.1: 그런 파일이나 디렉터리가 없습니다' 라고 표시가 된다.





다음과 같이 Heroku 스크립트 파일을 수정한다.
(heroku 위치는 다를 수 있다. which heroku 라고입력하면 경로가 표시된다.)





스크립트 파일을 열어보면 첫줄에 ruby{_VERSION_} 이 표시가 되어있다.



다음과 같이 뒤에 버전정보를 지워준다.
(나의경우 쉘에서 ruby 가 Path 에 잡혀있었다.)





2014년 7월 29일 화요일

[IntelliJ] SVN 커밋 시 'is out of date' 에러 문제






IntelliJ 에서 SVN 커밋하려 하는데
File '~~~~' is out of date 에러가 나면서 커밋이 되지 않는다.





파일을 몇개 삭제하고 파일을 생성하고 수정하고.. 커밋을 하지 않은상태였는데
사람들의 설명을 보니 HEAD 를 업데이트 하라고 하길래...
1004lucifer
update 항목에서 HEAD 리비전만 업데이트 하도록 체크하고 업데이트 하니
그 이후에 정상적으로 커밋이 된다.





===================
2014.08.25 추가
1004lucifer
기존에 커밋되어 있던 디렉토리명을 변경 후 커밋하려 할 때 'is out of date' 문제가 발생했다.
변경한 디렉토리를 선택 하고 위와 같이 작업을 했는데도 커밋이 정상적으로 되지 않길래
변경한 디렉토리의 상위 디렉토리에서 위와같이 작업을 하니 정상적으로 커밋이 되었다.
===================






2014년 7월 25일 금요일

[HTML] iframe 페이지 안에서 자신의 iframe 크기(width, height)를 알 수 있는 방법 (id 값 없이..)





기존에 아래와 같은 문제로 포스팅을 한 적이 있었다.


Android 2.x 의 문제를 해결하기 위해 부모객체에서 iframe의 id 로 찾아서
iframe 내부의 페이지에서 window.innerHeight 를 맞춰줬는데

크로스도메인 이슈를 활용하여 ID 값이 없어도 자신이 속한 iframe의 height 를 얻어낼 수 있는 방법을 찾았다.



outer.html

<html>
    <head></head>
    <body>
        <iframe src="http://[_DOMAIN_]/inner.html" style="border:0"></iframe><br/>
        <iframe src="http://m.nate.com" style="border:0"></iframe>
    </body>
</html>



inner.html

<html>
    <head></head>
    <body>
        <script>
            // Android 2.x 의 경우 자신을 감싸고있는 iframe 크기에 맞게 내부사이즈를 조절한다.
            if (navigator.userAgent.match(/Android 2/)) {
                var thisIframeHeight = 0;
                for (var i = 0; i < parent.frames.length; i++) {
                    try {
                        thisIframeHeight = parent.frames[i].innerHeight;
                    } catch (e) {}
                }
                if (thisIframeHeight != 0) {
                    window.innerHeight = thisIframeHeight + 'px';
                }
            }
        </script>
    </body>
</html>




장점
1. 자신이 만든 페이지가 다른 서비스의 iframe 에 들어갈 시 Android 2.x 에 대응하여 height 값을 조절할 수 있다.
2. iframe을 넣어줄 때 ID 값을 주지 않아도 iframe 내부의 페이지에서 자신의 크기(width, height) 를 가져올 수 있다.


단점
1. inner.html 페이지가 outer.html 페이지의 여러군데 iframe 으로 포함되어 있는경우
    어떤 iframe 이 자신의 iframe인지 구분할 수 없다. (id 값을 지정해야 구분 가능)






2014년 7월 23일 수요일

[Android][Javascript] Android 2.x 에서 stopPropagation(이벤트 버블 중지/취소) 동작하지 않는문제




Android 2.x 에서 event.stopPropagation() 기능이 작동하지 않는문제를 발견!!



결국 다음과 같이 꼼수를 사용




<script>
    $('#div1').bind('touchend', function() {
    if (eventBubble == false) {
        // todo
    }
});

$('#div2').bind('touchend', function(event) { 
    //event.stopPropagation();     Android 2.x 에서 동작하지 않는다.
        
    // todo
    
    eventBubble = true;
    setTimeout(function() {
        eventBubble = false;
    }, 100);
});
</script>

<div id="div1">
    <div id="div2" style="background-color:red; width:100px; height:100px;">
    </div>
</div>