우분투에서 Visual Studio Code가 파일 변경을 인식하지 못할 때

요즘 Visual Studio Code를 주력 편집기로 사용중이다. 좀 무겁지만 편리한 기능이 많고 커스터마이징이 잘 되서 정말 좋은 듯.

sftp 확장기능을 설치해 놓고 sftp설정에서 uploadOnSave와 downloadOnOpen 설정을 해 두면, 예전에 쓰던 EditPlus 의 ftp 기능처럼 사용할 수도 있어서 급할 때 편리하다.

그런데 윈도우에서는 downloadOnOpen 를 설정해 두면 파일을 열었을 때 원격에서 받아서 갱신한다음 다시 파일을 여는데, 우분투 18.04에서 이게 작동하지 않는 것이었다. 파일 갱신은 잘 되는데, vs code가 파일 변경을 파악하지 못하고 그대로 예전 파일 내용을 보여주는 상황. 실수하면 갱신한 내용을 날려버릴 수 있는 문제이기 때문에 해결방법을 찾아봤다.

일단은 vs code 설정에서 실험적인 파일 와처를 사용하도록 설정하면, 다운로드 후에 잘 인식되어 내용이 갱신된다.

이중 form 태그를 사용했다면 데이터는 어떻게 보내지나?

이건 팁도 아니고 그냥 실험수준의 글이다. 한 6,7년전에 php에 한창 재미가 들렸을 때 했던 뻘 짓 중 하나.

다음과 같은 코드가 있다.

//test.php
<?
print_r($_POST);
?>
<form name=f1 method=post action=”test.php”>
<input type=”hidden” name=”aaa” value=”11″>

<form name=f2 method=post action=”test.php”>
<input type=”hidden” name=”bbb” value=”22″>
<input type=”submit” value=”Submit22″>
<input type=”hidden” name=”ddd” value=”44″>
</form>

<input type=”hidden” name=”eee” value=”55″>

<form name=f3 method=post action=”test.php”>
<input type=”hidden” name=”ccc” value=”33″>
<input type=”submit” value=”Submit33″>
</form>

<input type=”submit” value=”Submit11″>
</form>

즉, 1개의 form태그 안에 2개의 form이 들어가 있다. 이런 코딩을 할리는 없겠지만, 모든 뻘짓은 애초에 재미에 그 기반을 둔다.

사용자 삽입 이미지

미리보면 이런 이미지다. 여기에서 각 버튼 들을 눌러보면 어떤 답이 나올까?

 

 

정답

Submit22 :  Array ( [aaa] => 11 [bbb] => 22 [ddd] => 44 )

Submit33 : Array ( [ccc] => 33 )

Submit11 : Array ()

 

즉, submit 버튼을 누르면  form 태그로 둘러 쌓인 input값들을 보내지만, /form 태그로 닫힌 그 이전 값은 보내지 못한다.
설사 자신이 속한 form을 닫은게 아니더라도 말이다.
반대로 /form태그로 막히지 않은 영역의 input값은 설사 자신이 직접 속한게 아니더라도 보내버린다.

 

텍스트큐브에서 웹슬라이스 기능 제거

텍스트큐브에서 IE8의 웹슬라이스 기능을 지원하면서 문제가 몇 가지 생겼다.
우선 xhtml의 규약에서는 ul태그(혹은 ol태그)와 li 태그 사이에 다른 태그가 들어가면 안되지만, 텍스트큐브에서 강제로 div태그들을 집어넣는다.
그리고 IE6에서는 이 div태그들이 잘못 해석되어 여백을 띄워버리는 버그가 발생한다. (어차피 IE6을 지원하고 싶은 마음도 없지만)

텍스트큐브에서 웹슬라이스 기능을 제거하는 방법은 http://www.dezrare.com/713 에 나와있다.

표지, 최근 글, 최근 덧글 등에 들어간 IE 8의 웹조각(web slice) 기능으로 발생할 수 있는 불만사항을 해결한다.

– 클라이언트의 문제제기

–  IE6.0에서의 빈줄 발생 문제

/library/view/view.php

 

문서내 검색 : “function addWebSlice”
addWebSlice함수를 찾는다.

function addWebSlice($content, $id, $title) {
 //return ‘<div class=”hslice” id=”‘.$id.'” style=”margin:0;padding:0;”>’.CRLF.
 // ‘<h4 class=”entry-title” style=”visibility:hidden;height:0;padding:0;margin:0;”>’.$title.'</h4>’.CRLF.
 // ‘<div class=”entry-content” style=”margin:0;padding:0;”>’.CRLF.$content.CRLF.'</div>’.CRLF.
 // ‘</div>’.CRLF;

    return $content;
}

기존의 웹조각 소스를 주석처리하고.. 그냥 $content값을 그대로 리턴한다.

출처 : http://www.dezrare.com/713

텍스트큐브 1.8의 플러그인 최소/최대 지원버전 체크 설정의 의문점.

텍스트큐브가 버전 1.8이 되면서 여러 새로운 변경점이 생겼습니다. 그중에 플러그인의 세부 정보를 담은 xml파일에는 “최소 지원 버전 / 최대 지원 버전 / 필요함수 명기”을 할수 있는 기능이 생겼습니다.

형식은 다음과 같습니다.

사용자 삽입 이미지
http://docs.google.com/View?id=dgc24tzr_136ckbg4ngn

이 같은 표현은 텍스트큐브의 버전이 다양해지고, 플러그인이 다양해지면서 꼭 필요한 기능이긴 합니다. 설치했는데 호환이 안되서 오작동 하는 플러그인이 생길 경우 피해가 생길 수 있으니까요.

그런데 생각해보면 좀 이상합니다.

최소 버전 표기는 텍스트큐브 1.7에서는 지원하지 않습니다. 즉 <minVersion>1.8</minVersion> 라고 표기해도, 1.7에서는 자기에게 맞지 않는 버전인지 알 수 없습니다.

최대 버전 표기는 더 이상합니다. 내가 1.8용으로 만든 플러그인이 앞으로 나올 1.9나 2.0에서 호환이 될지, 어느 버전까지 지원할 수 있을지 어떻게 예상할 수 있단 말입니까? 그렇다고 현재 확실한 버전까지 써 놓으면, 플러그인에 별 다른 변경이 없어도 텍스트큐브의 새 버전이 나올 때마다 그 숫자를 갱신해줘야 하는 겁니다.

결국 저 기능은, 사용 기준이나 예를 명확히 하지 않고  ‘이런 기능이 있다’는 안내 수준으로 끝내면, 거의 실용성이 없거나 각자 자기 기준대로 사용될 가능성이 높습니다.

최근 텍스트큐브의 업데이트가 마음에 안 듭니다.

텍스트큐브라는 설치형 블로그의 최대 장점은 개인의 자유로운 활용이고, 그 핵심중 하나는 플러그인의 다양성입니다. 하지만 텍스트큐브 플러그인 개발자들의 의욕은 이미 바닥입니다. textcube.org의 플러그인 항목을 보면 최근 몇 달간 업데이트가 거의 없다시피 합니다.

그런데, 기존 플러그인에 호환성 문제가 발생할 수 있는 업데이트가 텍스트큐브 1.8에 있었습니다. 플러그인 개발에 대한 문서화가 거의 안되어 있었기 때문에 많은 개발자들이 mysql 쿼리를 아무생각 없이 사용했는데, 그것이 1.8부터 막혔기 때문입니다. DB쿼리를 사용하는 상당수 플러그인이 수정되어야 합니다.

아무리 필요성이 있는 업데이트라고 해도…. 텍스트큐브를 더욱더 전문가용 툴로 만들어 버리는 이런 업데이트는 문제가 있다고 봅니다.