'개발'에 해당되는 글 4

  1. 2008/09/21 디토 Wubi로 우분투 설치 (0)
  2. 2008/08/31 디토 Grails 맛보기 (0)
  3. 2008/08/30 디토 Qt를 써보다 (0)
  4. 2008/08/01 디토 PHP 5.3 Alpha 1 (7)

Wubi로 우분투 설치

개발 | 2008/09/21 20:32 | 디토
Wubi를 사용하면 우분투 설치 CD를 굽거나 파티션을 나눌 필요 없이 윈도우에서 바로 우분투를 설치할 수 있습니다. FAT32 파티션 위에 디스크 이미지를 올려서 돌아가는 것 같고요. 성능은 일반적으로 설치한 것과 거의 비슷합니다. 물론 기능도 똑같죠.
마침 파티션을 건드릴 수 없는 상황이었는데, Wubi 덕분에 아주 간편하게 리눅스 설치를 마칠 수 있었습니다. 윈도우 XP만 쓰다가 오랜만에 리눅스를 사용하게 되니 기분이 좋네요.
참, 한가지 팁을 알려드리죠. 인스톨러를 받아서 그냥 사용하면 아무 미러 사이트나 골라서 파일을 내려받기 때문에 아주 오랜 시간이 걸립니다. (이상한 곳을 고르더군요 -_-;;) 그럴 때는 국내 미러에서 데스크탑 설치 ISO 파일을 받아 인스톨러 실행 파일과 같은 폴더에 넣고 인스톨러를 실행하면 해당 디스크 이미지를 사용하므로 훨씬 시간을 절약할 수 있어요.
태그 : Wubi, 우분투

Grails 맛보기

개발 | 2008/08/31 22:37 | 디토

IBM 디벨로퍼웍스에서 주최한 Play, developerWorks! 이벤트 응모작입니다. 자바 VM 위에서 작동하는 동적 언어 Groovy로 된 웹 프레임워크 Grails의 설치 및 설정, 그리고 간단한 애플리케이션 작성을 시연합니다. 깊은 부분까지 자세히 파고 들지는 않고, Grails를 사용할 때의 편리함을 맛볼 수 있도록 제작하였습니다.

사실 Java, Groovy, Grails 다 잘 모르긴 하지만 튜토리얼대로 하니 잘 되더군요;; 스크린캐스트를 만들어 본 것도 처음이라 약간 어색합니다. (특히 자막을 메모장으로 쓴 -_-) 편집 도구를 써볼까 하다가 결국엔 그냥 제출해버렸습니다.


아이팟 터치가 받고 싶어서 응모하긴 했지만 별로 가능해보이진 않네요. 적어도 외장 하드는 받을 수 있을거라 생각! (용량이 얼마나 되는지는...?)

Qt를 써보다

개발 | 2008/08/30 20:25 | 디토
모종의 프로젝트를 위해서 Qt를 쓰기로 했습니다. 한번 이것저것 해봤는데 꽤 마음에 드네요. 오랜 역사를 가진 만큼 상당히 잘 짜여 있습니다.
Qt가 C++로 작성되어 있긴 하지만, Qt만의 객체 시스템 덕분에 또 하나의 언어처럼 느껴집니다. 그래서인지 모든 객체를 QObject로 하지 않으면 안 될 것 같다는 생각이 계속 드네요. (그럼 그렇게 하지 뭐.)
문제는 제가 C++에 익숙하지 않다는 건데, 진행하면서 공부해야겠죠. 그리고 확실히 동적 언어를 쓸 때보다 코드 양이 많네요. 차라리 PyQt로 옮기거나, 핵심 부분만 C++로 하고 나머지는 스크립트로 작업하는 것도 괜찮을 것 같습니다. 마침 Qt에는 스크립팅 지원도 있으니까...
태그 : C++, QT

PHP 5.3 Alpha 1

개발 | 2008/08/01 22:00 | 디토

PHP 5.3 알파 1이 나왔습니다. 아직 윈도우용 바이너리는 없으니 PHP Snapshots 사이트에서 받으시기 바랍니다.

이런 저런 커다란 변화가 있는데, 꽤 큰 파장을 일으킬 것 같네요. 제발 5.3 정식판이 나왔을 때 넘어가는 서버가 많기를… T_T


5.3에 추가된 기능 (아래에 나와있는 코드는 테스트해보진 않았지만 잘 돌아갈겁니다):

이름 공간

// a.php
namespace LangDev;
class Lambda { ... }

// b.php
include "a.php";
new LangDev::Lambda;

using LangDev;
new Lambda;

using LangDev::Lambda as LDLambda;
new LDLambda;

실행 시간에 static 메소드 바인딩

이거 있으면 쉽게 Active Record 패턴을 구현할 수 있습니다.

class A {
static function getClassName() {
return get_class();
}
static function printClassName() {
echo static::getClassName();
}
}

class B extends A { /* nothing! */ }

B::printClassName(); // prints "B"

__callStatic 매직 메소드

class StaticCaller {
static function __callStatic($name, $args) {
echo "$name $args[0]!\n";
}
}

StaticCaller::hello("LangDev"); // hello LangDev!
StaticCaller::thank("you"); // thank you!

람다 함수와 클로져

결국 들어가네요!

$lambda = function () { echo "Hello, world!"; }
$lambda();

// closure
$action = "Hello";
$lambda = function ($name) use ($action) { echo "$action, $name!"; }
$lambda("world");

이항식 ?:

// echo $a == $b ? 'equal' : '';
echo $a == $b ?: 'equal';


그 밖의 변화

  • NOWDOC (HEREDOC과 비슷하지만 변수 확장을 하지 않음), 제한 있는 GOTO (!)
  • intl (i18n/l10n 지원), phar (jar 같은), fileinfo (파일 포맷 검출), sqlite3 확장
  • 사이클릭 가비지 콜렉터 지원 (optional)
  • libmysql을 대체하는 MySQLnd 드라이버 (optional)
  • 윈도 2000 미만 버전 (98, NT4, …) 지원 안함
태그 : php