워드프레스 3.5 기본 테마에서 글쓴이가 보이지 않는 문제 해결

워드프레스 3.5의 기본테마를 사용하고 있는데 다음과 같이 글쓴이의 이름이 보이지 않는 문제가 있습니다.

이 글은 미분류 카테고리로 분류되었고 님에 의해 2013년 1월 11일에 작성됐습니다.

그러나 html 소스코드에는 글쓴이가 존재하더군요.

알림판에서 외모 > 편집기에 들어가시면 테마의 css를 수정할 수 있습니다. 다음과 같이 수정해 주시면 간단히 문제는 해결됩니다.

.single-author .entry-meta .by-author {
    display: auto;
}

더 나은 방법을 알고 계신 분은 공유 부탁 드립니다.

LG 울트라북 Z460 부팅속도 (윈도우8)

집에서는 집중력이 영 떨어져서 도서관, 커피샵에서 개인 프로젝트를 진행하려고 노트북을 하나 장만했습니다.
LG 울트라북은 Z350이 유명한데 키보드가 작고 랜포트와 켄싱턴 락이 없어 윈도우8이 탑재된 14인치 모델인 Z460을 선택하게 되었습니다. 메모리만 별도로 구입해서 4GB 추가해 주었습니다. 가장 마음에 드는 점은 노트북 어뎁터가 엄청 작네요.
동영상을 보시면 절전모드가 무색해질 정도로 부팅속도가 굉장히 빠릅니다.

우분투에서 두시탈출 컬투쇼 예약 녹음하기

장거리 운전할 때 두시탈출 컬투쇼 들으면 졸음예방도 되고 지루하지 않아서 좋습니다. 라디오가 항상 잘 나온다는 보장도 없고 오후 2시~4시에만 컬투쇼를 들을 수 있기에 저는 우분투 기반의 홈서버를 활용하여 매일 컬투쇼를 예약 녹음하고 있습니다.

우선 다음과 같이 필요한 패키지를 설치합니다.

$ sudo apt-get install mimms

$ sudo apt-get install mplayer

$ sudo apt-get install lame 

SBS 라디오를 녹음하기 위한 스크립트를 생성합니다. 다음 내용을 rec_knn_radio.sh로 저장해 주세요.

#!/bin/bash

RADIO_ADDR=”mms://211.220.195.199/viewradio”

RADIO_NAME=”knn_radio”

PROGRAM_NAME=$1

RECORD_MINS=$2

DEST_DIR=$3

NO=$4

REC_DATE=`date +%Y%m%d`

TEMP_ASX=`mktemp -u`

TEMP_WAV=`mktemp -u`

MP3_FILE_NAME=$PROGRAM_NAME”_”$REC_DATE”_”$NO.mp3

ID3_TITLE=$PROGRAM_NAME”_”$REC_DATE”_”$NO

ID3_ARTIST=$RADIO_NAME

ID3_ALBUM=$PROGRAM_NAME

ID3_YEAR=`date +%Y`

mimms -t $RECORD_MINS $RADIO_ADDR $TEMP_ASX

mplayer -ao pcm:file=$TEMP_WAV $TEMP_ASX

lame –preset voice –tt $ID3_TITLE –ta $ID3_ARTIST –tl $ID3_ALBUM –ty $ID3_YEAR $TEMP_WAV $MP3                                       _FILE_NAME

rm $TEMP_WAV

rm $TEMP_ASX

mkdir -p $DEST_DIR

chgrp user $MP3_FILE_NAME

mv $MP3_FILE_NAME $DEST_DIR

SBS에서 고릴라 앱을 제공하면서 mms 서버를 막아놔서, KNN이 제공하는 mms를 활용하고 있습니다. 가끔은 컬투쇼가 아닌 다른 방송이 녹음되기도 합니다.

스크립트 파일에 실행 권한을 부여합니다.

$ chmod a+x recEbsRadio.sh

crontab에 다음과 같이 등록합니다.

# m h  dom mon dow   command

00 14 * * * /home/reshout/bin/rec_knn_radio.sh sbs_cultwo_show 60 /data/media/라디오 1 > /dev/null 2>&1

00 15 * * * /home/reshout/bin/rec_knn_radio.sh sbs_cultwo_show 60 /data/media/라디오 2 > /dev/null 2>&1

다음과 같은 형식의 이름으로 저장됩니다.

/data/media/라디오/sbs_cultwo_show_20121107_1.mp3

/data/media/라디오/sbs_cultwo_show_20121107_2.mp3

원인은 잘 모르겠지만 2시간 분량을 한번에 녹음할 수 없어서, 1시간씩 2번에 걸쳐 녹음하도록 설정했습니다.

조금 더 자세한 설명이 필요하시면 제가 예전에 작성한 글을 참조하세요.

http://reshout.com/2692460

Ubuntu 12.04 LTS에서 ffmpeg으로 아이폰용 동영상 인코딩하기

  1. ffmpeg이 포함된 패키지 설치
sudo apt-get install libav-tools
2. 코덱 라이브러리 설치
sudo apt-get install libavcodec-extra-53
3. ffmpeg 실행, 출력파일 이름(무한도전.mp4)의 확장자(mp4)에 따라 container format이 결정됩니다.
ffmpeg -i 무한도전.avi -vcodec libx264 -acodec aac -strict experimental -ab 128k -ac 2 -b:v 640k -threads 2 -partitions 0 -flags +loop -cmp +chroma -subq 1 -trellis 0 -refs 1 -coder 0 -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -maxrate 10M -bufsize 10M -qcomp 0.6 -qmin 2 -qmax 51 -qdiff 4 -level 30 무한도전.mp4

node.js로 토렌트에서 받은 파일 자동 정리

토렌트에서 받은 파일을 다운로드 디렉토리에서 원하는 곳으로 일일이 옮기는 것은 정말 귀찮은 작업입니다.

다음 파일의 다운로드가 완료되었을 때,

Mnet 슈퍼스타K4.6회.120921.720p.HDTV.H264-구제역돼지.mkv

다음 디렉토리로 이동하는 작업을,

/data/media/TV/슈퍼스타K4

자동화 하기 위해 간단한 node.js 모듈을 만들어 보았습니다.

이 모듈은 현재 홈서버에서 forever로 항시 동작하고 있습니다.

var fs = require(‘fs’);

var path = require(‘path’);

var torrentDir = ‘/data/torrent/’;

var completeDir = path.join(torrentDir, ‘complete’);

var mediaDir = ‘/data/media/’;

var tvDir = path.join(mediaDir, ‘TV’);

var workingFilename = {};

var dirMap = {};

dirMap[path.join(tvDir, ‘개그콘서트’)] = /개그.*콘서트|개콘/;

dirMap[path.join(tvDir, ‘무한도전’)] = /무한.*도전/;

dirMap[path.join(tvDir, ‘힐링캠프’)] = /힐링.*캠프/;

dirMap[path.join(tvDir, ‘슈퍼스타K4’)] = /슈퍼.*스타.*[kK].*4/;

dirMap[path.join(tvDir, ‘대왕의꿈’)] = /대왕의.*꿈/;

dirMap[path.join(tvDir, ‘대풍수’)] = /대풍수/;

fs.watch(completeDir, function(action, filename) {

  for (dir in dirMap) {

    var regExp = dirMap[dir];

    var targetDir = dir;

    if (regExp.test(filename)) {

      if (!workingFilename[filename]) {

        var fromPath = path.join(completeDir, filename);

        var toPath = path.join(targetDir, filename);

        workingFilename[filename] = toPath;

        setTimeout(function() {

          fs.rename(fromPath, toPath, function(err) {

            if (!err)

              console.log(filename + ‘: success’);

            else

              console.log(filename + ‘: fail, ‘ + err);

            setTimeout(function() {

              delete workingFilename[filename];

            }, 5000);

          });

        }, 5000);

      }

      break;

    }

  }

});

이 모듈을 활용하시려면 Transmission이든 Deluge든 파일을 다운로드 중에 저장하는 디렉토리와 다운로드 완료 후 저장하는 디렉토리를 다르게 설정하셔야 합니다.

코드에 대해서 간단히 설명드리자면, 동일한 파일에 대하여 중복으로 fs.watch()가 callback을 불러주는 문제를 피하기 위하여 workingFilename이라는 map을 활용하고 있고, 파일이 생성되고 저장되고 옮겨지는 등의 시간차를 감안하여 setTimeout()을 적절히 활용하였습니다.