Galzip v0.1.3 ( unalz 도움 프로그램 )

jg의 이미지

특징

gtk2-perl 을 기반으로 하여서 설치가 용이함
unalz의 기능(암호와 코드페이지 바꾸기) 지원

테스트 환경

젠투와 우분투에서 실험해보았으며
utf-8 과 euc-kr 환경에서 테스트하였습니다.

우선 gtk2-perl 과 unalz가 설치되어 있어야합니다.

데비안, 우분투

sudo apt-get install libgtk2-perl unalz

unalz 버전이 아마 v0.55일 겁니다.

젠투

emerge -pv gtk2-perl

안타깝게 젠투에서는 unalz를 직접 빌드하셔야합니다.
su -
pushd /usr/local/src
wget -O - <a href="http://www.kipple.pe.kr/win/unalz/unalz-0.61.tgz" rel="nofollow">http://www.kipple.pe.kr/win/unalz/unalz-0.61.tgz</a> | tar xzf -
cd unalz
wget --user-agent=w3m -O - <a href="http://kldp.org/files/unalz_makefile.patch_.txt" rel="nofollow">http://kldp.org/files/unalz_makefile.patch_.txt</a> | patch -p1
make posix
make install
popd

기타 등등.. -_-;

다음은 갈집을 설치합니다.

pushd /tmp
wget --user-agent=w3m -O - <a href="http://kldp.org/files/galzip_0.1.3.tgz" rel="nofollow">http://kldp.org/files/galzip_0.1.3.tgz</a> | tar xzf -
install -m 755 galzip /usr/local/bin
install -m 644 galzip.mo /usr/share/locale/ko/LC_MESSAGES
rm galzip galzip.mo
popd

명령어는 galzip 입니다.

아무 옵션 없이 실행하면 다음과 같은 창이 뜹니다.

노틸러스를 사용하시면 혼잣말에 등록하시면
콤팩트(작은창) 모드도 유용할 겁니다.

자신의 계정으로 아래를 복사&붙여넣기 하시면 됩니다.

_naudir="${HOME}/.gnome2/nautilus-scripts"
mkdir -p "$_naudir" 2>/dev/null
cd "$_naudir"
ln -s /usr/local/bin/galzip "(갈집) 여기에 풀기"

그러면 아래와 같이 뜹니다.

작은창 모드로 푸는 모습

제약사항

unalz 는 꼭 -utf8, -cp949, -euc-kr 의 옵션이 활성화 되도록 설치하셔야 합니다.
( posix, posix-utf8, linux-utf8 등으로 가능합니다.)
진행바가 뚝뚝 끊겨서 나오는 것은 그렇게 제작 되었기 때문입니다. -_-

그밖에..

어딘가 알 수 없는 버그가 있을지도 모르겠습니다..
원래 utf-8 로만 동작하게 만들었는데 euc-kr까지 지원하게 되면서
소스가 더 지저분해졌습니다. -_-;;

버그는 이 게시판 또는 제 메일로.. < jeongoon@gmail.com >

--
perl -e's@@JEON Myoung-jin@;sub man{s| _|her e|}
sub see{s;^;Just;;u;s;e ;Perl ;;to;print$_,$/}$uperMan=M;
s=^....=U are not=;s~$uperMan~~;&admitIt;s=U are = A=;s|young|_|;&man;
sub admitIt{say;ye;s!-\w+! Hacker!};see U'

File attachments: 
Forums: 
jg의 이미지

중간에 압축을 멈추는게 잘안되네요.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

jg의 이미지

버그 수정하였습니다. 버전은 0.1.1 입니다.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

jg의 이미지

부연 설명을 하자면
“똑똑한 위치에 풀기”는 파일롤러와 비슷합니다.
압축을 풀었을 때 파일이 하나면 그대로 풀고 그 이상이면 폴더를 만들어서 풉니다.

리스트에서 열 간격 조정이 안되는 건 제가 못찾은 건지 기본으로 지원되는 옵션이 없더군요.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

jg의 이미지

compact 모드에서 Gtk2->main_quit()에 문제가 있었네요.
수정하였습니다. 버전은 0.1.2 입니다.

얼추 완료되었으니.. 슬슬 file-roller 옮겨가야겠네요.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

aero의 이미지

Perl코드가 지저분하고 읽기 힘들다는 편견을 가지고 있는 분들에게 보여주고 싶을정도로
코드가 아주 깔끔하고 깨끗하네요. :)

Good 입니다.

jg의 이미지

감사합니다. 코딩이 잘 안될 때 틈틈히 코드를 다듬었던 게 효과가 있었네요. :)

http://perlmania.or.kr/pmdocs/kdh/perl_coding_style.html

이 글을 읽고 기존의 제 스타일을 약간 바꿨습니다.
다만 위 글에서는 bsd 스타일 괄호를 쓰지 말도록 권고하고 있는데
그것만은 포기할 수가 없는 제 스타일이라 그대로 썼습니다.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

aero의 이미지

저도 예전엔 BSD스타일을 선호했는데
호주 monash 대학의 교수이고 OOP in Perl을 지은 유명한 Damian Conway가 쓴
Perl코딩규약에 대한 책 Perl Best Practices ( http://www.oreilly.com/catalog/perlbp/ )
를 보고 K&R스타일로 바꿨습니다.
요즘은 Perl Best Practices의 규칙을 그대로 따르도록 노력하고 있고요
http://search.cpan.org/dist/Perl-Critic/ 모듈을 쓰면 PBP의 규칙을 채크할 수 있어서 좋고
Perl::Critic 모듈 깔면 perlcritic (http://search.cpan.org/dist/Perl-Critic/bin/perlcritic )
이라는 명령행 프로그램이 같이 설치 되는데 이것으로 그때 그때 편하게 채크 가능합니다.

jg의 이미지

참고하겠습니다. 오랜 습관이지만 조금 더 열린 마음을 가지고 접근해보도록 하겠습니다.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

only2sea의 이미지

BSD 방식이 K&R 방식보다 덜 깔끔하게 보여서 그런 건가요?

특히 if ... else if ... else if... else 같은 곳에서??

블로그: http://turtleforward.blogspot.com

jg의 이미지

네.. 저는 BSD 스타일이 더 균형 있어 보이더군요.
숨통을 좀 틔어주는 것 같기도 하구요. 예전에 K&R로 잠깐 썼었는데
결국 아래처럼 공백을 주는 식으로 쓰다가..

if ( 이런저런조건1 &&
     이런저런조건2  ) {
 
        doSomething();
}

`이럴 바에야 그냥 BSD식을 쓰는게 낫지 않나?' 하는 생각이 들더군요.
반면 BSD 스타일의 괄호는 다음과 같이 한 줄씩 코드가 담겨있을 때는
약간 공간 낭비가 된다는 생각이 들고는 합니다만 여백의 미라 생각하고 있습니다. =_=;

if ( 조건 )
{
        doSometingInALine1();
}
else
{
        doSometingInALine2();
}

--
어? 쓰고 보니 위치가 이상하네요. 저한테 물어보신 거 맞나요?

--

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

only2sea의 이미지

unalz 설치할 때 make posix를 하고 있는데 그렇게 하면
utf-8 서포트가 되지 않는 것 같은데 그렇게 하는 것이
맞나요?

그리고 patch를 적용하지 않고 대신에 make linux-utf8로 빌드하면
되지 않나요? (확인은 해 보지 않았지만 이 옵션은 0.61부터 생긴 것 같네요.)

블로그: http://turtleforward.blogspot.com

jg의 이미지

아닙니다. posix 로 컴파일 할 경우 -utf8, -euc-kr -cp949 옵션이 활성화 되구요,
linux-utf8 로 컴파일하면 무조건 utf-8 로 풀도록 컴파일 됩니다.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

only2sea의 이미지

아하, 그렇다는 말은 galzip을 이용하려면
반드시 posix로 설치하여야 된다는 뜻이군요.

제약사항에 나오는 -utf8 -euc-kr -cp949를
활성화해야 된다는 말이 그 뜻이군요.

아, 그리고 linux-utf8 옵션은 0.50부터 생긴 것
같네요.

블로그: http://turtleforward.blogspot.com

only2sea의 이미지

으흠...

posix-utf8과 linux-utf8이 대응된다면
패치를 하지 않으려면 posix에 대응되는 linux라는 옵션이 있어야
하겠네요.

freebsd에서는 -liconv가 붙어 있어야 하겠지만 linux에서는 필요 없을
테니까요.

unalz와 galzip의 ebuild를 만드는 중인데 애매해서요. unalz에
USE flag로 unicode를 주고 켜면 utf8로 압축이 풀리도록 해 놓고
galzip을 설치할 때에는 unalz가 unicode로 설치되어 있으면
설치가 안 되게 해야겠군요. "-unicode로 해서 다시 빌드하세요"
하는 식으로...

좋은 프로그램 감사합니다. :)

블로그: http://turtleforward.blogspot.com

jg의 이미지

우분투에서 테스트 할 때까지만 해도 저런 컴파일 옵션이 있다는 것을 미처 몰랐습니다.
그래서 반영이 되지 않았구요. 다음 버전에서는 자동으로 옵션을 체크해서 비활성화
하든지 해야겠습니다.
사실 그 밖에도 한 가지 사소한 버그를 발견했는데
사용자가 거의 없는 것 같아서 신경을 끄고 있었습니다.
gtk 프로그래밍을 처음 해봐서 자료 찾는데 시간이 좀 걸리거든요;

아무튼 감사합니다. :-)

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

jg의 이미지

linux-utf8 로 컴파일할 경우 아무 옵션을 주지 않았을 때 utf-8 으로 푸는 것이었군요.
어제 소스코드를 보고나서야 깨닳았습니다. orz

아치 리눅스에서 테스트를 안하고 있었는데 어제 심각한 버그를 발견해서 급하게 고치면서
봤는데 iconv를 사용하는 것은 같고 기본으로 utf-8을 사용하는 것만 다르군요.
리눅스에서 사용하지 말아야 할 것은 posix-noiconv 뿐입니다.

--
perl -e's@@JEON Myoung-jin@;sub man{s| _|her e|}
sub see{s;^;Just;;u;s;e ;Perl ;;to;print$_,$/}$uperMan=M;
s=^....=U are not=;s~$uperMan~~;&admitIt;s=U are = A=;s|young|_|;&man;
sub admitIt{say;ye;s!-\w+! Hacker!};see U'

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

junichel의 이미지

누가만들었는지 모르고 편하게 쓰고있었는데 형이 만들었었네요.
잘 쓸께요.

--
끝까지 타오르는거다!

jg의 이미지

ㅋㅋㅋ 쌩유.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

익명 사용자의 이미지

_naudir="${HOME}/.gnome2/nautlius-scripts"
mkdir -p "$_naudir" 2>/dev/null
cd "$_naudir"
ln -s /usr/local/bin/galzip "(갈집) 여기에 풀기"

_naudir="${HOME}/.gnome2/nautlius-scripts"

_naudir="${HOME}/.gnome2/nautilus-scripts" 철자순서가 바뀜.

jg의 이미지

감사합니다. ^.^

--
perl -e's@@JEON Myoung-jin@;sub man{s| _|her e|}
sub see{s;^;Just;;u;s;e ;Perl ;;to;print$_,$/}$uperMan=M;
s=^....=U are not=;s~$uperMan~~;&admitIt;s=U are = A=;s|young|_|;&man;
sub admitIt{say;ye;s!-\w+! Hacker!};see U'

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

antz의 이미지

멋지군요. :-)
유용할것 같습니다.

---


Jabber: lum0320@jabber.org

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.