Sablog Models/인터넷·웹 8

장고는 반쪽 MVC이다

요 며칠 간 프로젝트를 진행하면서 장고(Django)를 쓰기 시작했다. 사실 장고 자체를 접해 본 건 다소 오래 된 일이었던 것으로 기억한다. 아마 서버를 겸해 공부한답시고 설치한 리눅스가 너무 어려워서 날리면서 한동안은 리눅스와 거리를 두고 살았고, 파이썬도 잊었을 것이다. 그 이후 호스팅 업체를 알아보면서 윈도우 기반으로 PHP+MySQL이 돌아가는 APM을 쓴 적도 있다. 지금은? 만약 지금의 내가 과거의 내게 충고할 수 있다면, PHP를 가능한 대안으로 생각할 여지를 만들도록 놔 두지 않을 것이다. 요즘은 멀티부팅을 밥 먹듯 한다. 장고는 MVC 웹 프레임워크이다. 구체적으로는 DBMS에 대한 파이썬 클래스 ORM 래핑이 M이고, HTTP Request-Response를 수행하는 파이썬 객체 래핑..

티스토리용 SyntaxHighlighter 3.0을 소개합니다!

시험 기간이 끝나자마자 포스팅을 시작한다. 이러니 성적이 좋을 수가 있나. 2010년 7월 2일, SyntaxHighlighter 3.0.83이 배포되기 시작했다. (사본 다운로드) 티스토리용 파일은 글 하단에 있지만 수정된 파일 하나만 올려 놓았기 때문에 이 파일도 받아야 한다. - SyntaxHighlighter 웹 사이트 바로가기 1. 소개 3.0은 매우 많은 개선점을 컨셉으로 만들어졌다. 외부 동작 변화 Copy to Clipboard와 View Source가 하나로 합쳐졌다고 할 수 있겠다. 원래 클립보드에 복사할 때에는 플래시 파일을 쓰고, 소스 보기에는 새 창을 띄웠다. 이제 렌더된 SH 영역을 더블클릭해 주면 소스를 편집할 수 있다. 이 상태에서 영역을 선택하거나 일부를 지우고 복사할 수 ..

유용한 확장 JavaScript Library (2) importScript()

JavaScript에는 import 기능이 없다. 알다시피 함수를 만들어 모듈화하는 것은 중요하다. 그 과정에서 소스가 길어지면 라이브러리를 몇 조각으로 쪼개게 되며, 한 파일에서 다른 파일을 불러와 함수를 사용할 필요가 있다. 파일 간에 의존성이 생기는 것이다. C에 #include가 있듯이, CSS에는 @import, PHP에는 @require나 @require_once, JSP에는 @include file이 있다. 그러나 JS에서는 이런 동적 링크 함수가 없어서, HTML에서 직접 script 태그를 이용하지 않으면 추가가 안 된다. 그러나 직접 불러오는 것이 불가능하다면 HTML에 script 태그를 집어넣으면 된다. 실행문 중간에 넣으려면, 가장 간단한 형태는 다음과 같다. document.wr..

유용한 확장 JavaScript Library (1) insertAfter()

"블로그에 새로운 글감을 찾았다." 라기보다는 그냥 가내수공업으로 JS로 이것저것 만드는 도중에 함수를 만들고 있다. 최근에 JS를 새로 익히면서 DOM 따위는 순식간에 이해했지만(이미 XML을 충분히 배운 덕분에), 역시 골치를 썩이는 건 이 함수 놈들. 표준 함수들은 그나마 용법이 잘 정리되어 있지만... 사용자가 만들어서 널리 쓰이는 함수들 때문에 헷갈리기 일쑤다. 확장 함수 이름을 다 똑같이 쓰다 보니 표준 함수인지 헷갈리기 시작하면 2시간 삽질은 기본이다. 그래서 나는 표준 함수 말고 일단 확장 함수들을 정리할 생각이다. 이 글을 읽는 사람이 DOM, 노드 구조 등에 관한 기본 지식이 있는 초보 개발자라고 가정하고, 상세한 설명은 하지 않겠다. 첫 번째 대상은 insertAfter()이다. 이 ..

네이버 블로그 포스트 내용을 plain text로 보기.

(이 글에는 쓰이는 시점의 네이버 블로그 시스템이 반영되어 있으므로, 여기서 소개하는 지침은 나중에 사용 불가능할 수도 있습니다.) 저작권을 준수하는 사람으로서 이런 걸 올리면 안 되지만, 기본적인 (X)HTML 예의마저 안 지키는 네이버는 종종 엿먹이고 싶은 상대다. 일단 마우스 우클릭 방지 스크립트를 무력화하는 프로그램에는 IETOY Spell 알툴바-_- 등등이 있다. 최근에 네이버에서 이것들을 거의 모두 막았다. 자바스크립트에서는 아래 툴이 잘 알려져 있다. 물론 이걸 무력화시키기도 한다. javascript: function r(d) { d.on-contextmenu=null; d.on-selectstart=null; d.on-dragstart=null; d.on-keydown=null; d.o..

ActiveX를 다운받게 하려면 브라우저 검사는 하란 말이다.. - HTML 브라우저 검사

구글 신의 도움을 받아 거미줄(web-_-)을 산책하던 중 이런 페이지를 발견했다. 젠장. ActiveX 설치를 권고하려면 브라우저가 MS IE인지 검사라도 하란 말이다. 저렇게 위험 요소가 득시글거리는 사이트에 들어가는 사람은, 혹은 애초에 저 사이트를 이용하는 사람들은 대개 IE를 사용하겠지. 파폭을 사용한다면 이 창을 보고 액티브엑스 설치인 줄은 알 테고. 하지만 기본적으로 원칙에 어긋나지 않는가. 방법. 자바스크립트의 navigator.userAgent를 이용한다. 자바조차 작동하지 않는 OS에는 상당히 미안하지만, 간단한 방법이다. 사이, ... 뒤에 이 코드를 붙여 넣으면 된다. 여기서 나오는 index.php가 싫다면 다른 페이지로 바꿔도 된다. 인터넷 익스플로러가 있어야 한다는 안내 페이지..

미친소 폐기일 카운터 수정본입니다.

미친소 잡는 날 남았습니다. 미친소 잡는 날 남았습니다. 저는 도아 님의 글에서 가져온 이 배너 원본을 상당히 오랫동안 달고 있었습니다. (HTML 표준만 아주 약간 수정했습니다.) ­ 얼마 전에 좀 더 수정했는데, 다른 분들을 위해 소스를 이 부분만 따로 올려 드리려고 합니다. MB = Mad Bulls 미친 소 잡는 날 남았습니다. ㅠㅠ See more... MB = Mad Bulls 미친 소 잡는 날 남았습니다. ㅠㅠ See more... Mad Bulls에 대한 간략한 설명과, 이 배너의 원본을 제공해 주신 도아 님의 글로 가는 링크가 추가되었습니다.

조만간 어셈블리어 SyntaxHighlighter Brush를 재게시하겠습니다.

지금 제 블로그에 SyntaxHighlighter를 설치해 놓고, 별도의 확장 코드를 만들어서 어셈블리어 코드를 올리는 중입니다. 일단 당장 SH에서 어셈블리어를 못 올리는 게 아쉬워서 파일을 올리긴 했지만, -_-; 이건 뭐 걸레입니다. SyntaxHighlighter의 구조를 완전히 이해했으니 시험 끝나고 재개발 들어갑니다. (오늘 시험 첫 날이었습니다. 이게 뭐 하는 짓이지... 4일까지 시험인데) 목표는: 1) 이름만 8086이지 명령어 등등 x86 예약어까지 모조리 있는 문제 해결 2) SH 2.0 패키지에서 도입된 형식으로 가독성 향상 3) MASM, GAS 따로 만들어 지원하고, aliases 수정. (게시 원본은 NASM) 참고. 저도 2.0.320으로 업그레이드 완료했습니다.