Visual Studio Code의 PHP intelephense 확장에서 Undefined function ‘mysql_query’ 등의 경고를 보낼 때 해결방법

mysql_query나 mysql_fetch_object 같은건 PHP에서 이미 버린 함수지만, 구버전 PHP로 코딩을 해야 할 경우엔 어쩔 수 없이 쓰게 된다.

그런데 문제가 위의 스샷처럼 Visual Studio Code에 설치한 PHP intelephense가 정의되지 않은 함수라고 경고를 잔뜩 내보내서 진짜 문법 문제를 한눈에 알아보기 어렵다는 것이다.

이 경우 intelephense.stubs 설정에 mysql을 추가해 주면 mysql 관련 함수가 정의되지 않았다는 경고는 안나오게 된다.

php와 go의 속도 차이

회사에서 내가 개발해 쓰는 스크립트 중에 문자열을 분해해서 인덱스를 구성하는 프로그램이 있다. 대략 1억 2천만번의 반복을 해야 하고, 매 반복마다 수십 개의 if문과 문자열 분해, 때로는 다시 수십 번의 반복을 돌려야 하는 단순 무식한 스크립트이다. 한번 실행하는데 4시간 정도의 시간이 소요 되기 때문에 php-cli로 실행하는데, 굳이 php를 쓰는 이유는 웹사이트와 공통 라이브러리를 쓰기 위해서 뿐이었다.

그런데 이번에 수정을 하다가 결과를 테스트 하는데 4시간이나 걸리는 것이 짜증이 나서, 혹시나 하는 마음에 컨버전을 해 봤다. go 언어로 해당 부분을 다시 짜 돌려 본 것이다. python을 안 쓰고 go를 쓴 이유는 어차피 나는 python이나 go나 초보이고, go가 더 실행이 빠르다는 편견이 있어서 이다. 속도 개선이 얼마나 되는지가 목적이었으므로.

놀라운 것은 같은 일을 하는 go 스크립트를 실행했을 때 90초 밖에 안 걸렸다는 점이다. 4시간 vs 90초. 160배나 빠르다.

실무에 go를 활용 해야겠다는 생각을 하게 된 일이었다.

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

텍스트큐브에서 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

로그인하면 예약글을 미뤄주는 Draco Delay – 1.01

데스노트에서 L이 죽자, 컴퓨터를 사용 안하면 자동으로 메시지가 보내지도록 되어있던것 기억 나시나요? ^^;

Draco Delay 는 블로그 사용자가 로그인할때마다  예약된 글의 예약시간을 지정된 시간만큼 더 늦춰주는 플러그인입니다.

일이 있어 접속을 못한 날에 알아서 공개될 글을 써두거나, 부재중의 메시지를 글로 만들어 이 플러그인으로 설정해두면, 사용자가 접속했을 경우 자동으로 공개를 늦춰주고, 접속이 없을 경우에 공개되게 됩니다.

자세한 설명은 http://sites.google.com/site/draco-textcube-plugins/draco-delay

다운로드
– 버전 1.01 : 글번호를 지정하지 않으면 예약글이 미뤄지지 않는 문제 수정

ps.
Draco Delay 는 이름이 이상하지만, 그냥 플러그인 이름들이 A,B,C로 시작하는건 만들었길래 붙인거니 넘어가시기 바랍니다. 🙂 그리고 이 플러그인은 설치형 텍스트큐브용 플러그인입니다. (티스토리에 쓰는 방법 없냐는 질문은 제발 하지마세요….한 20번은 들은거 같네..;;)

트래픽 도둑을 찾았습니다 Part.2

지난번  “트래픽 도둑을 찾았습니다.“이후, 트래픽은 어느정도 줄어들었지만, 여전히 많은 트래픽이 유출되어 어제 저녁 블로그가 닫히고 말았습니다. 그래서 더 이상 무단 이미지 링크를 놔둘수 없다고 판단해서 예전에 만들다 만 프로그램을 손봐서 재가동시켰습니다.


무단 이미지 링크 관리 프로그램. 코드 정리가 안되서 공개는 포기.

이 프로그램의 원리는 간단한데, 제 블로그가 아닌 곳에서 JPG, PNG, GIF등의 이미지 파일이 요청되면 .htaccess를 통해서 이미지가 아닌 PHP프로그램으로 연결시키고, PHP프로그램은 이미지를 뿌려주며 리퍼러를 기록해 둡니다. 제가 나중에 기록중에서 간단하게 체크만 하면 해당 주소를 허용할것인지 차단할 것인지 결정할수 있습니다. 그후 PHP프로그램은 차단 주소에 해당하는 리퍼러를 만나면 요청이 들어온 이미지가 아닌 훨씬 작은 “경고 이미지”를 자동으로 전송하게 됩니다. 기본 아이디어는 2004년에 alistapart.com에서 소개된 것입니다.  여기에 mysql과 관리자 인터페이스를 추가한거죠. PHP프로그램을 조금이라도 아시는 분이라면 (저도 기초밖에 모르니) 금방 만드실수 있을겁니다.

이 방식의 장점은, 단순히 .htaccess만을 사용하는 방법보다 훨씬 지능적인 처리가 가능하다는 것입니다. 무단 링크를 사용한 펌글을 쉽게 알수 있고, 무조건 내가 아는 주소만 허용하는게 아니라 일단 한번은 이미지를 보여준후 기록된 리퍼러를 판단해 차단을 결정할 수 있죠. .htaccess를 사용하면 웹 RSS 리더나 메타 사이트, 검색 사이트 등 허용해야 할 곳이 수도 없이 많은데 이 방식은 그냥 기록된 리스트에서 허용해버리면 됩니다.

어제의 트래픽초과의 범인도 이 프로그램으로 쉽게 알수 있었습니다. 다음 게시판에 “대한민국이 대량 보유해야 할 전략적 무기들”이라는 말도 안되는 제목으로 제 “트랜스포머에 출연한 미군 병기들”의 그림과 글을 무단으로 퍼갔군요. 남이 자료 정리해서 1시간 내내 쓴글을 쓱 긁어서 제목바꿔 4천명이 넘는 사람에게 읽히게 하며 자랑하다니, 양심이 참 없습니다.


내 글을 긁어가고 이미지가 무단 링크된 다음 게시판의 글

그 밖에 엠파스 블로그와 네이버 블로그, 엉뚱한 아랍 게시판과 동구권 모 나라,중국의 게임포탈등 -_-; 에서도 제 이미지를 무단 링크해서 트래픽을 구멍내고 있었더군요. 전부 차단해버렸습니다. 이젠, 제 블로그를 열심히 꾸며서 좋은쪽으로 트래픽 올리는 일만 남았네요.