Creating a Blogger Static Home Page by Don James
키워드 : landing page
Wednesday, January 30, 2013
Saturday, January 26, 2013
Keynote 의 drawing 및 image editing 기능
Keynote versus Photoshop? Not as crazy as its sounds
Many people who use Keynote as a presentation tool may not even be aware that it comes with its own Illustrator-like Pen tool that can draw freehand vector paths, and you can expand the program’s basic shape options to make them infinitely extensible.
Select a shape, choose Format > Shape > Make Editable to make them editable (선택된 상태에서 그냥 한번 더 클릭해도 됨). You can then hold down the Alt key and click on any part of the shape’s paths to add an anchor point there, and double-clicking this point switches it between sharp angle and smooth Bézier curve, which you can further adjust by dragging Bézier handles (option 키를 누르고 드래깅하면 양쪽 핸들이 같은 길이가 됨). The same technique also works with lines, which lets you create curved arrows easily.
Many people who use Keynote as a presentation tool may not even be aware that it comes with its own Illustrator-like Pen tool that can draw freehand vector paths, and you can expand the program’s basic shape options to make them infinitely extensible.
Select a shape, choose Format > Shape > Make Editable to make them editable (선택된 상태에서 그냥 한번 더 클릭해도 됨). You can then hold down the Alt key and click on any part of the shape’s paths to add an anchor point there, and double-clicking this point switches it between sharp angle and smooth Bézier curve, which you can further adjust by dragging Bézier handles (option 키를 누르고 드래깅하면 양쪽 핸들이 같은 길이가 됨). The same technique also works with lines, which lets you create curved arrows easily.
Labels:
오피스
Wednesday, January 23, 2013
"Wide character in print" warning
검색어 : "Wide character in print" perl
레퍼런스 : Unicode-processing issues in Perl and how to cope with it
키워드 : utf-8
레퍼런스 : Unicode-processing issues in Perl and how to cope with it
키워드 : utf-8
Labels:
Perl
주어진 filepath 가 존재할 경우 available 한 다른 파일명을 얻어내는 함수
sub availableFilename
{
my $givenFilepath = shift;
if(-e $givenFilepath){
my ($dir, $filenameOnly, $ext) = filepathParse($givenFilepath);
my $virgin = 1;
my $otherFilepath = "";
for(my $i = 1; $i < 80; $i++){
$otherFilepath = $dir . $filenameOnly . $ext;
if(!(-e $otherFilepath)){
$virgin = 0;
last;
}
$filenameOnly .= "_";
}
if($virgin){return "";}
else{return $otherFilepath;}
}else{
return $givenFilepath;
}
}
Labels:
Perl
Perl의 File Write
Text File 에 쓰기
Binary File 에 쓰기
sub WriteToTextFile
{
my $outfile = shift;
my $text = shift;
my $errmsg = "Couldn't write to $outfile";
open (OUTFILE, ">$outfile") or die "$errmsg : $!";
print OUTFILE $text;
close OUTFILE;
print("Write success.\n");
}
Binary File 에 쓰기
sub WriteToBinFile
{
my $pa = shift;
my $outfile = shift;
my $buffer = "";
my $errmsg = "Couldn't write to $outfile";
open (OUTFILE, ">$outfile") or die "$errmsg : $!";
binmode (OUTFILE);
foreach(@$pa){
$buffer .= pack('C1', $_);
}
print OUTFILE $buffer;
close OUTFILE;
print("Write success.\n");
}
Labels:
Perl
Perl 의 regular expression 에서 문자가 몇번 repeat 되었는가 검사하는 법
인용 : When it is necessary to specify the minimum and maximum number of repeats explicitly, the bounds operator {} may be used. Thus. a{2} is the letter ‘a’ repeated exactly twice, a{2,4} represents the letter ‘a’ repeated between 2 and 4 times, and a{2,} represents the letter ‘a’ repeated at least twice with no upper limit.
검색어 : perl regular expression number repeat
출처 : Regular Expression Reference
검색어 : perl regular expression number repeat
출처 : Regular Expression Reference
Labels:
Perl
Perl의 regular expression 에서 개행문자 포함한 모든 문자 표현하는 법
다음과 같이 /s modifier 를 써준다.
([.|\n]+ 과 같이 쓰면 원하는 대로 동작 안함)
레퍼런스 : Regex to match any character including new lines
([.|\n]+ 과 같이 쓰면 원하는 대로 동작 안함)
$text = "The quick brown\nfox jumps over the lazy dog. Hahaha.";
if($text =~ /^(.+)jumps/s){
print "MATCH\n" . $text;
}else{
print "NOT match\n" . $text;
}
키워드 : all characters including newlines레퍼런스 : Regex to match any character including new lines
Labels:
Perl
Perl 에서 directory 내의 모든 file 리스팅하는 법
#!/usr/bin/perl -w
use strict;
use warnings;
my $dir = "/Users/username/documents folder";
opendir(DIR, $dir) or die $!;
while (my $file = readdir(DIR)) {
next if ($file =~ m/^\./); # ignore filenames starting with a dot.
print "$file\n";
}
closedir(DIR);
exit 0;
키워드 : folder, listing, iterate레퍼런스 : How do I list the files in a directory?
Labels:
Perl
Perl regular expression 의 ^ operator
[] 안에 쓰면 뒤에 오는 문자들에 대해 not 연산을 수행. priority 는 가장 낮다.
[^a|b] 로 쓰면 a 와 b 를 제외한 모든 문자 즉 NOT('a' OR 'b') 를 의미.
그 외의 경우에는 string 의 처음을 나타냄.
[^a|b] 로 쓰면 a 와 b 를 제외한 모든 문자 즉 NOT('a' OR 'b') 를 의미.
그 외의 경우에는 string 의 처음을 나타냄.
Labels:
Perl
Sunday, January 20, 2013
TextWrangler 의 Balance and Fold 기능
원하는 위치에 커서를 위치시키고 Command + Shift + B 한다.
이 기능을 쓰면 커서가 있는 곳을 둘러싼 bracket 이나 parenthesis 를 fold 해준다.
긴글 혹은 텍스트 내 출처 명기 등 추가 정보를 괄호 등으로 감싸서 깨끗하게 정리하기 좋다.
이 기능을 쓰면 커서가 있는 곳을 둘러싼 bracket 이나 parenthesis 를 fold 해준다.
긴글 혹은 텍스트 내 출처 명기 등 추가 정보를 괄호 등으로 감싸서 깨끗하게 정리하기 좋다.
Labels:
텍스트에디터
Saturday, January 19, 2013
Perl 에서 sort 하기
키와 몸무게 데이터가 있다고 할때 키로 sort 해보자.
use strict;
use warnings;
my @a = (
[168, 62],
[170, 54],
[168, 60],
[180, 100],
);
my @b = sort byHeight(@a);
printDS(\@b);
sub byHeight
{
return ($a->[1] <=> $b->[1]);
}
sub printDS
{
my $ds = shift;
use Data::Dumper;
print Dumper @$ds;
print "\n";
}
위의 byHeight() 는 다음과 같이 한 것과 동일하다.
sub byHeight
{
if($a->[0] > $b->[0]){
return 1;
}elsif($a->[0] < $b->[0]){
return -1;
}else{
return 0;
}
}
키가 같은 경우 몸무게로 sort 하게 하려면 다음과 같이 하면 된다. sub byHeight
{
if($a->[0] > $b->[0]){
return 1;
}elsif($a->[0] < $b->[0]){
return -1;
}else{
return ($a->[1] <=> $b->[1]);
}
}
키워드 : weight
Labels:
Perl
Friday, January 18, 2013
Perl 에서 hash 비우기
다음과 같이 하면 된다.
키워드 : empty, reference, hash table
%hash = ();
%$hash_ref = ();
출처 : How to clear perl hash키워드 : empty, reference, hash table
Labels:
Perl
string 의 eq 를 case insensitive 하게 하는 방법
uc() 또는 lc() 를 사용한다.
uc 는 to uppercase, lc 는 to lowercase 해주는 함수.
uc 는 to uppercase, lc 는 to lowercase 해주는 함수.
if(uc("PIzzA") eq uc("PizzA")){
print "MATCH\n";
}else{
print "Not match\n";
}
검색어 : compare, comparison, 비교, 스트링, 문자열, 대소문자
Labels:
Perl
Perl 에서 hash 를 iterate 하는 법
다음과 같이 하면 된다.
방법 1
방법 2
레퍼런스 : iterate through a hash
검색어 : hash perl enumerate
방법 1
foreach my $key ( keys %hash )
{
print "key: $key, value: $hash{$key}\n";
}
key 를 한번에 임시 list 에 받아오므로 key 로 정렬 가능하나 메모리 사용량 많음방법 2
while ( ($key, $value) = each %hash )
{
print "key: $key, value: $hash{$key}\n";
}
key 로 정렬은 못하지만 메모리 사용량 적음 (한번에 key, value pair 만큼만 메모리 사용됨)레퍼런스 : iterate through a hash
검색어 : hash perl enumerate
Labels:
Perl
Thursday, January 17, 2013
Pause/Break key의 역할
[IT강의실] 키보드의 SysRq, Scroll Lock, Pause 키는 어디에 쓰지?
동아일보 2013-01-16 16:02 최종수정 2013-01-16 17:17
PC를 켰을 때 운영체제 부팅 직전에 표시되는 바이오스(BIOS) 화면에서 Pause/Break키를 누르면 동작을 멈추게 할 수도 있다. 또한, 윈도 환경에서 윈도키와 Pause/Break키를 함께 누르면 해당 PC의 시스템정보를 볼 수 있다. 제어판에 들어갈 필요 없이 시스템 정보를 확인하고자 할 때 나름 요긴하다.
동아일보 2013-01-16 16:02 최종수정 2013-01-16 17:17
PC를 켰을 때 운영체제 부팅 직전에 표시되는 바이오스(BIOS) 화면에서 Pause/Break키를 누르면 동작을 멈추게 할 수도 있다. 또한, 윈도 환경에서 윈도키와 Pause/Break키를 함께 누르면 해당 PC의 시스템정보를 볼 수 있다. 제어판에 들어갈 필요 없이 시스템 정보를 확인하고자 할 때 나름 요긴하다.
Labels:
키보드
Wednesday, January 16, 2013
Perl 에서 array 를 n개의 같은 값으로 초기화하는 방법
my $s = 6 x 10;
my @a = (6) x 10;
print $s; print "\n";
printDS(\@a);
sub printDS
{
my $ds = shift;
use Data::Dumper;
print Dumper @$ds;
print "\n";
}
키워드 : same value검색어 : perl initialize array with same number
Labels:
Perl
Perl 에서 string 과 integer type conversion 하는 방법
Perl 에서는 스트링이나 숫자 타입이 별개가 아니라 Scalar 로 뭉뚱그려 사용된다. 변수 타입은 타입 정의에 의해 결정되는 것이 아니라 operand 에 의해 결정된다.
예)
레퍼런스 :
Automatic string to number conversion or casting in Perl
Perl: Convert from srting to number
예)
my @a = qw/100 200 300 400 500/; # 스트링으로서 정의
my $t = $a[2] + $a[3]; # 덧셈 operand 에 의해 숫자로 취급
print "$a[2] + $a[3] = " . $t; # . operand 에 의해 스트링으로 취급
print "\n";
foreach(@a){
if(/^3/){ # 스트링으로서 regular expression
print "$_ starts with 3.\n";
}
}
키워드 : type casting, 타입 변환, 문자열레퍼런스 :
Automatic string to number conversion or casting in Perl
Perl: Convert from srting to number
Labels:
Perl
Tuesday, January 15, 2013
Perl 에서 calculator 기능 사용하기
my $v = eval("1+1");
print $v;
실행하면 2가 찍힌다.키워드 : evaluate, bc, 계산기
Labels:
Perl
Monday, January 14, 2013
Perl 에서 sort 하기 / sort 된 array 에 새 item 삽입하기
use strict;
use warnings;
test();
sub test
{
my @a = (
["Hobbit", 168, 63],
["Elf", 180, 54],
["Dwarf", 159, 100],
);
my @b = sort byHeight(@a);
my @elmt = ("Human", 176, 70);
my @c = sort byHeight \@elmt, @b;
printDS(\@a);
printDS(\@b);
printDS(\@c);
}
sub byHeight{
$a->[1] <=> $b->[1];
}
sub printDS
{
my $ds = shift;
use Data::Dumper;
print Dumper @$ds;
print "~~~~~~~~~~~~~~~~~~~~~\n";
}
레퍼런스 : Insert into a sorted array키워드 : new element, elmt, binary search
Labels:
Perl
Sunday, January 13, 2013
Saturday, January 12, 2013
Perl 에서 array of arrays 를 특정 field 로 sort 하는 법
다음 참조하기: Perl 에서 sort 하기 / sort 된 array 에 새 item 삽입하기
-------------
예를 들어 12번째 field 로 sort 한다면
@AoA = sort { $a->[12] <=> $b->[12] } @AoA
예 1:
키워드 : 정렬
-------------
예를 들어 12번째 field 로 sort 한다면
@AoA = sort { $a->[12] <=> $b->[12] } @AoA
예 1:
my @aofa = ();
my @a = ("Glen Benton", 92);
my @b = ("Jimi Hendrix", 27);
my @c = ("Oda Nobunaga", 47);
my @d = ("Christ", 33);
push(@aofa, \@a);
push(@aofa, \@b);
push(@aofa, \@c);
push(@aofa, \@d);
for (@aofa) {
print "@$_"; print "\n";
}
print "\n";
my @sorted = sort {$a->[1] cmp $b->[1]} @aofa;
for (@sorted) {
print "@$_"; print "\n";
}
print "\n";
예 2:출처 : http://www.sitepoint.com/forums/showthread.php?659680-Perl-Sort-Array-of-Arraysmy @AoA = ( ['a', '2003-11-09', 'b'], ['c', '2003-11-01', 'd'], ['e', '2002-11-01', 'f'], ['g', '2003-10-01', 'h'], ['g', '2002-10-01', 'h'], );
#my @new_arr = sort {$a->[0] cmp $b->[0]} @AoA;
my @new_arr = sort {$a->[1] cmp $b->[1]} @AoA;
#my @new_arr = sort {$a->[2] cmp $b->[2]} @AoA;
for (@new_arr) { print "@$_"; print "\n"; }
키워드 : 정렬
Labels:
Perl
Perl에서 array 들로 이루어진 hash 의 pointer 다루기 예
1: my %hash;
2:
3: my @bee = ("Propolis", "Honey");
4: my @cow = ("Beef", "Milk");
5: my @hen = ("Chicken", "Egg");
6:
7: $hash{"Bee"} = \@bee;
8: $hash{"Cow"} = \@cow;
9: $hash{"Hen"} = \@hen;
10:
11: my $pHash = \%hash;
12:
13: my $pa = $pHash->{"Cow"};
14: print(@$pa); print "\n";
15: print($pa->[0]); print "\t";
16: print($pa->[1]); print "\n";
Labels:
Perl
Friday, January 11, 2013
Perl 에서 Hash table sort 하기기
key 로 sort 하기
키워드 : 해쉬, dictionary, 사전, 정렬
sub sortByKeySample
{
# define a hash
my %v = (20 => "Bee", 30 => "Aeron", 10 => "Dog", 40 => "Cat");
# sort by value and put the keys in an array
my @keys = sort {$a <=> $b} keys %v;
# loop through array to print the hash pairs ordered
foreach my $key (@keys)
{
print "$key: $v{$key}\n";
}
}
value 로 sort 하기 (ascending order) sub sortByValueSample
{
# define a hash
my %v = (v1 => 75, v2 => 251, v3 => 3, v4 => 12);
# sort by value and put the keys in an array
my @keys = sort {$v{$a} <=> $v{$b}} keys %v;
# loop through array to print the hash pairs ordered
foreach my $key (@keys)
{
print "$key: $v{$key}\n";
}
}
value 로 sort 하기 (descending order) sub sortByValueDescendingSample
{
# define a hash
my %v = (v1 => 75, v2 => 251, v3 => 3, v4 => 12);
# sort by value and put the keys in an array
my @keys = sort {$v{$b} <=> $v{$a}} keys %v;
# loop through array to print the hash pairs ordered
foreach my $key (@keys)
{
print "$key: $v{$key}\n";
}
}
레퍼런스 : Perl sort Function키워드 : 해쉬, dictionary, 사전, 정렬
Labels:
Perl
Wednesday, January 9, 2013
Perl script 자신의 이름 얻어내는 법
command line 에서 타이핑된 Perl command 의 이름을 얻으려면
$0 로 받으면 된다.
$0 로 받으면 된다.
print($0 . "\n");
Labels:
Perl
Perl 내부에서 bash script 호출하는 법
다음과 같이 하면 된다.
system('ls -l');
키워드 : call, 안쪽, 시스템, 유닉스 명령어, UNIX command
system('ls -l');
키워드 : call, 안쪽, 시스템, 유닉스 명령어, UNIX command
Saturday, January 5, 2013
Perl 의 array pointer 에서 array 멤버 개수 알아내기
last index 는 $#$pa 이므로 여기에 하나 더하면 멤버 개수가 되고
print($#$pa + 1);
scalar 값으로 받아도 된다.
print(scalar(@$pa));
키워드 : element, elmt, number of, count, pointers, list
print($#$pa + 1);
scalar 값으로 받아도 된다.
print(scalar(@$pa));
키워드 : element, elmt, number of, count, pointers, list
Labels:
Perl
Perl 에서 array pointer 와 복사
my @a = @$pa;
위와 같이 하면 $pa 가 가리키는 내용물이 모두 @a 로 카피된다.
reference 만 얻어지는 것이 아님.
키워드 : copy
위와 같이 하면 $pa 가 가리키는 내용물이 모두 @a 로 카피된다.
reference 만 얻어지는 것이 아님.
키워드 : copy
Labels:
Perl
Perl 에서 주어진 path 를 parsing 해서 directory, extension, filename 을 알아내는 방법
다음과 같이 한다.
키워드 : pathname, basename, string, filenameOnly
레퍼런스 : http://perldoc.perl.org/File/Basename.html
use File::Basename;
my @a = fileparse("/foo/bar/baz.txt", qr/\.[^.]*/);
print "dir : $a[1]\n";
print "file : $a[0]\n";
print "ext : $a[2]\n";
다음과 같은 함수를 만들어두면 좀더 직관적으로 쓸 수 있다. use File::Basename;
sub filepathParse
{
my @a = fileparse(shift, qr/\.[^.]*/);
return ($a[1], $a[0], $a[2]);
}
검색어 : perl path manipulation, filename키워드 : pathname, basename, string, filenameOnly
레퍼런스 : http://perldoc.perl.org/File/Basename.html
Labels:
Perl
Perl 의 file test 문
-r File is readable by effective uid/gid.
-w File is writable by effective uid/gid.
-x File is executable by effective uid/gid.
-o File is owned by effective uid.
-R File is readable by real uid/gid.
-W File is writable by real uid/gid.
-X File is executable by real uid/gid.
-O File is owned by real uid.
-e File exists.
-z File has zero size (is empty).
-s File has nonzero size (returns size in bytes).
-f File is a plain file.
-d File is a directory.
-l File is a symbolic link.
-p File is a named pipe (FIFO), or Filehandle is a pipe.
-S File is a socket.
-b File is a block special file.
-c File is a character special file.
-t Filehandle is opened to a tty.
키워드 : flags
How can I check if a file exists in Perl?
-w File is writable by effective uid/gid.
-x File is executable by effective uid/gid.
-o File is owned by effective uid.
-R File is readable by real uid/gid.
-W File is writable by real uid/gid.
-X File is executable by real uid/gid.
-O File is owned by real uid.
-e File exists.
-z File has zero size (is empty).
-s File has nonzero size (returns size in bytes).
-f File is a plain file.
-d File is a directory.
-l File is a symbolic link.
-p File is a named pipe (FIFO), or Filehandle is a pipe.
-S File is a socket.
-b File is a block special file.
-c File is a character special file.
-t Filehandle is opened to a tty.
키워드 : flags
How can I check if a file exists in Perl?
Labels:
Perl
UNIX pipes and redirects
The Unix Command Line: Pipes and Redirects ... tr, sort, uniq, comm 으로 사용한 예
Pipes and Filters ... cat, wc, sed, awk, grep 으로 사용한 예
Unix - Pipes and Filters ... ls, grep, sort 로 사용한 예
tr 'A-Z' 'a-z' <fnord.txt | tr -cs 'a-z' '\n' | sort | uniq | comm -23 - /usr/share/dict/words
Pipes and Filters ... cat, wc, sed, awk, grep 으로 사용한 예
$ cat apple.txt
core
worm seed
jewel
$ cat apple.txt | sed -e "s/e/WWW/"
corWWW
worm sWWWed
jWWWwel
$ cat apple.txt | sed -e "s/e/J/g"
corJ
worm sJJd
jJwJl
$ cat basket.txt
Layer1 = cloth
Layer2 = strawberries
Layer3 = fish
Layer4 = chocolate
Layer5 = punch cards
$ cat basket.txt | awk -F= '{print $1}'
Layer1
Layer2
Layer3
Layer4
Layer5
$ cat basket.txt | awk -F= '{print "HAS: " $2}'
HAS: cloth
HAS: strawberries
HAS: fish
HAS: chocolate
HAS: punch cards
Unix - Pipes and Filters ... ls, grep, sort 로 사용한 예
$ls -l | grep "Aug"
-rw-rw-rw- 1 john doc 11008 Aug 6 14:10 ch02
-rw-rw-rw- 1 john doc 8515 Aug 6 15:30 ch07
-rw-rw-r-- 1 john doc 2488 Aug 15 10:51 intro
-rw-rw-r-- 1 carol doc 1605 Aug 23 07:35 macros
$ls -l | grep "Aug" | sort +4n
-rw-rw-r-- 1 carol doc 1605 Aug 23 07:35 macros
-rw-rw-r-- 1 john doc 2488 Aug 15 10:51 intro
-rw-rw-rw- 1 john doc 8515 Aug 6 15:30 ch07
-rw-rw-rw- 1 john doc 11008 Aug 6 14:10 ch02
Labels:
UNIX
bash 에서 while 문으로 command line argument 를 loop 하는 법
for num
do
echo $num
done
for num; do ... 와for num in "$@"; do ... 는 동일.
How to loop through arguments in Bash ($1 $2 $3 and so forth)?
Labels:
UNIX
echo 를 newline 안하고 하는 방법
how do I echo $something >> file.txt without carriage return?
Bash Script, no new line for echo command
검색어 : bash echo without newline
Bash Script, no new line for echo command
검색어 : bash echo without newline
Labels:
UNIX
Thursday, January 3, 2013
bash shell 의 if statement
if [ $# -eq 0 ]
then
echo " is Zero"
else
echo " NOT Zero."
echo $#
fi
두줄을 한줄에 쓰려면 다음과 같이 한다. if [ $# -eq 0 ]; then
echo " is Zero"
else
echo " NOT Zero."
echo $#
fi
if [ $# -eq 0 ] 를 if [ $# -eq 0] 와 같이 쓰면 에러가 난다.
Labels:
UNIX
Perl 의 substring 함수
my $a = "ABCDEFG";
my $b = substr($a, 2, 4);
print "$b\n";
결과값은 CDEF 와 같이 나온다.레퍼런스 : Chop, Chomp, Length, and Substring
Labels:
Perl
Wednesday, January 2, 2013
Tuesday, January 1, 2013
TextWrangler 에서 특정 라인 넘버로 Go to Line 하는 방법
메뉴 : Search > Go to Line
핫키 : Command + J
Preference 세팅 : Editing > Use ‘Hard’ Line Numbering in Soft-Wrapped Text Views 에 체크.
인용 : The Go To Line command honors the “Use ‘Hard’ Line Numbering in Soft-Wrapped Text Views” option in the Editing preference panel.
레퍼런스 : TextWrangler 4.0 User Manual - Bare Bones Software
핫키 : Command + J
Preference 세팅 : Editing > Use ‘Hard’ Line Numbering in Soft-Wrapped Text Views 에 체크.
인용 : The Go To Line command honors the “Use ‘Hard’ Line Numbering in Soft-Wrapped Text Views” option in the Editing preference panel.
레퍼런스 : TextWrangler 4.0 User Manual - Bare Bones Software
Labels:
텍스트에디터
대소문자 변환
Converting Between Upper and Lower Case
http://perl.about.com/od/perltutorials/a/Perl-String-Manipulation.htm
http://perl.about.com/od/perltutorials/a/Perl-String-Manipulation.htm
Labels:
Perl
Subscribe to:
Posts (Atom)