2012-05-25

Ruby : 특정 디렉토리 밑에 있는 파일중에 200MB 넘는 파일 찾기

다음은 특정 디렉토리 아래에 있는 파일 중에서 200MB 넘는 파일을 찾아서, 크기로 정렬하여 출력하는 프로그램이다. 어려운 것은 아니지만, 필요할 때 찾아보면 좋을 듯 하여~ ^^

# -*- coding: cp949 -*-
require 'find'

$TARGET     = "C:\\"
$SIZE_LIMIT = 200_000_000

start_time = Time.now

puts "Script Start..."
puts "=========================================================================\n\n"

file_list = Array.new
Find.find($TARGET) do |path|
  if File.file?(path) and File.size(path) > $SIZE_LIMIT
    file_size = File.size(path)
    file_list << file_size.to_s + "|" + path
  end
end


file_list = file_list.sort do |a, b| 
  (a_size, a_file) = a.split(/\|/)
  (b_size, b_file) = b.split(/\|/)
  b_size.to_i <=> a_size.to_i
end


file_list.each do |file|
  (f_size, f_path) = file.split(/\|/)
  print f_size + " -> " + f_path + "\n"
end


end_time = Time.now


puts "\n\n========================================================================="
puts "Start Time : #{start_time}"
puts "End Time   : #{end_time}"

puts "Script End..."

2012-05-23

Grails : ROOT Context 로 Grails App 실행하기

Grails 로 App 을 만들어서, 실행을 하면, App Name 을 콘텍스트로 사용하여 아래와 같이 접속하여야 한다. URL 뒤에 콘텍스트 이름까지 입력하려니 많이 번거롭다.

http://localhost:8080/myApp

사이트를 만들면 ROOT 콘텍스트로 바로 접속할 수 있도록 하여, http://localhost:8080/ 로 접근을 하려는 것이 보통일 것이다.
이를 위해서 2가지 방법이 제공이 되는데, 첫번째는 application.properties 파일에 아래 내용을 추가 하는 것 :

app.context=/

두번째 방법은 Config.groovy 에 아래 내용을 추가하는 것이다

grails.app.context = "/" 

Groovy : 버전 정보 가져오기

Groovy 스크립트를 실행하면서 현재 실행되고 있는 Groovy 인터프리터의 버전을 알고 싶을 때, 버전에 따라서 아래와 같이 할 수 있으며, 현재 주력 버전이 1.8.6 이고, 곧 2.0.0 도 나올 것이라서 거의 대부분 첫번째 방법으로 사용하면 될 것이다.

groovy 1.6.6 and 1.7-rc-1 released 이후의 방법

import groovy.lang.GroovySystem
println GroovySystem.version
// or
println GroovySystem.getVersion()

if (GroovySystem.version >= "1.8.0")
    println "1.8.0 이상"

예전 방법

import org.codehaus.groovy.runtime.InvokerHelper  
println InvokerHelper.version 

2012-05-14

(Perl) StrawberryPerl 에서 PAR::Packer 설치하기

보통은 아래와 같이 CPAN 을 이용해서 모듈을 설치할 수 있다.

C:\> cpanm PAR::Packer

그런데, 최신 버전인 1.013은 에러 발생하며 설치 안된다. 부엉이님 께서 Perl / Win32 / PAR::Packer - PAR::Packer 1.013 설치 중 windres: can’t open file pp.manifest 오류가 발생하는 경우 에서 1.013 설치법을 설명을 해주었지만, 뭔가 좀 깔끔치 못한 느낌이다. 그래서, 바로 밑에 버전 1.012 을 설치하려고 하는데, 어떻게 해야될지 모르겠더라. CPAN 사이트에서 직접 다운로드 하여, 컴파일해서 설치할 수도 있겠지만, 좀 원시적인 느낌이다. cpan 을 사용해서 좀 더 편하게 설치할 수는 없을까? 하고 찾아보니, 방법이 없지는 않더라. PAR::Packer 1.012 의 실제 다운로드 주소가 http://search.cpan.org/CPAN/authors/id/R/RS/RSCHUPP/PAR-Packer-1.012.tar.gz 이며, 아래와 같이 설치한다.

C:\> cpanm RSCHUPP/PAR-Packer-1.012.tar.gz

의외로 간단한 방법이었다. 여전히 뭔가 좀 불편하지만 말이다.