컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
feeds.feedburner.com/mwultong
Friday, March 08, 2013

시속 초속, 속도 단위 변환 계산기; m/s 초당 km/h 시간당 환산 Converter

"시속 몇 킬로미터(km/h : kilometer per hour; 킬로미터 매 시간)"와 "초속 몇 미터(m/s : meter per second; 미터 매 초)"를 상호 환산할 수 있는, 속도 단위 계산기입니다.

시속 칸에 숫자를 넣으면 초속으로 자동 변환되고, 초속 칸에 숫자를 넣으면 시속으로 변환되어 나옵니다. 엔터키를 칠 필요 없이 자동으로 계산됩니다. 숫자가 아닌 값을 넣으면 NaN(Not A Number; 숫자가 아님)이라는 에러 메시지가 출력됩니다.


시속 몇 킬로미터 입력 : km/h

초속 몇 미터     입력 : m/s



※ 브라우저 상태에 따라서 오작동할 수 있으니 사용 전에 테스트를 거치는 것이 좋습니다.

* "시속 216 킬로미터"가 "초속 60 미터"로 변환되면 정상 작동입니다.

* "초속 55 미터"가 "시속 198 킬로미터"로 변환되면 정상 작동입니다.




Thursday, March 07, 2013

구글어스에서 실시간 구름 위성사진, 전세계 날씨 기온 보기; Google Earth Real Time Cloud

구글어스 프로그램에서 현재 구름 위성사진을 실시간으로 보는 법입니다. 방법은 간단합니다.

* 구글어스 화면의 좌측 사이드바에서, 날씨 / 구름에 체크하면 구름사진이 나옵니다.

* 또한 날씨 / 기상정보와 기상예보에 체크하면 현재 전세계 기온이 화씨와 섭씨 순서대로 나옵니다.

클릭하면확대


위의 사진에서는 서울 기온만 나와 있지만, 마우스 휠을 돌려서 구글어스 화면을 더 확대하면 우리나라 지방 소도시들까지 현재 기온이 각각 표시됩니다.

태풍도 볼 수 있습니다. 위의 캡처된 사진에서는 대만 부근에 짜미(Trami)라는 이름의 태풍이 촬영되어 있습니다.

(이 포스트가 실제 작성된 날짜는 2013-08-22일입니다.)



Wednesday, March 06, 2013

VMware 가상PC 시계, 미래/과거의 가상 시간으로 맞추기; VM웨어 Workstation Virtual Date Time

VMware Workstation 내에 설치된 가상PC의 시계도 당연히 미래나 과거로 돌릴 수 있습니다. 예를 들어 윈도우나 오피스의 인증이 풀리는지 아닌지 테스트할 때 이런 "가상시간"이 편리합니다.

그러나 가상머신을 리부팅하면 호스트PC(물리적인 진짜 컴퓨터)의 현재 시각으로 자동으로 맞추어져 버리더군요.

VMware 버전 5.x나 6.x까지는 안 그랬던 것 같은데, 버전 7.x, 8.x 부터 그런 현상이 생겼습니다.

처음에는 버그인 줄 알았지만, 버그가 아니라 의도적으로 그렇게 만든 것이었습니다.

vmx 라는 텍스트 파일을 수정하면 해결됩니다. 가상OS가 Windows 7 64비트 버전이라면 "Windows 7 x64.vmx" 라는 파일이 있을 것입니다. 가상머신을 종료한 후, 그 vmx 파일 안에 메모장 등으로 다음 줄을 추가하면 됩니다.

time.synchronize.tools.startup = "FALSE"

이제 가상머신을 실행하면, 가상OS를 리부팅해도 가상시간이 유지됩니다.

단, 스냅샷으로 복원하면 위에서 추가한 코드가 사라지기 때문에, 위의 코드를 추가한 상태에서 다시 스냅샷을 만들어 주어야 합니다.


VMware | VM웨어

Tuesday, March 05, 2013

전자파] 밀리가우스(mG), 마이크로테슬라(μT) 환산 변환기; mG uT Converter

μT(마이크로테슬라) 값을 입력하면 mG(밀리가우스) 값이 출력되고, 반대로, mG 값을 입력하면 μT 값이 나오는 상호 변환기입니다.

환산 공식은 간단합니다. 1 μT = 10 mG 입니다. 그렇지만 헷갈릴 수 있기 때문에 계산기를 만들어 보았습니다.

밀리 가우스와 마이크로 테슬라는 둘 다, 자속밀도를 나타내는 단위인데, 전자파 문제를 다룰 때에는 밀리 가우스(mG)가 보편적으로 많이 사용되는 단위입니다.


마이크로 테슬라 입력: μT (microtesla)

밀리 가우스     입력: mG (milligauss)


※ 브라우저 상태에 따라 오작동 가능성이 있으니, 사용 전에 테스트를 거치는 것이 좋습니다. 0.5 마이크로 테슬라가 5밀리 가우스로 출력되면 정상 작동입니다. 숫자가 아닌 값을 입력하면 NaN(not a number; 숫자가 아니라는 뜻)이 출력됩니다.


그리스 문자 뮤(μ)는 입력이 불편하므로 "μT" 를 "uT"라고 쓰는 경우도 있습니다. 뮤를 입력하려면 다음과 같습니다.

한글 자모 히읗을 "ㅎ" (따옴표 제외) 이렇게 메모장 등에 입력한 후, 즉시 키보드의 "한자" 키를 누르면 그리스 문자 목록이 모니터 하단에 표시됩니다. 그 목록을 옆으로 스크롤하면 "μ"를 선택할 수 있습니다.



Monday, March 04, 2013

하드디스크 SMART 상태, 명령프롬프트에서 상세히 출력 프로그램; HDD 수명 체크 S.M.A.R.T. Monitoring Tools

하드디스크의 남은 수명을 예측하거나 에러 여부 등을 알기 위해서는 스마트(S.M.A.R.T.) 정보가 필요합니다. "Self-Monitoring, Analysis and Reporting Technology"의 약자입니다.

GUI가 아닌 커맨드라인 즉 CMD 명령프롬프트에서 하드의 스마트 정보를 보는 "S.M.A.R.T. Monitoring Tools"라는 프로그램이 있더군요. 무료이고 출력 정보도 대단히 상세합니다.

옵션이 많지만

smartctl.exe -x c:

이렇게 실행하면 다음과 같이 출력됩니다.

첫부분은 하드의 물리적 스펙이고, "Raw_Read_Error_Rate..." 항목부터 본격적인 스마트 정보입니다.

D:\X>smartctl.exe -x c:

smartctl 6.1 2013-03-16 r3800 [i686-w64-mingw32-xp-sp3] (sf-6.1-2)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Black
Device Model:     WDC WD1002FAEX-00Y9A0
Serial Number:    WD-WCAW********
LU WWN Device Id: 5 0014ee 205fd9b53
Firmware Version: 05.01D05
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri Jun 14 14:35:50 2013
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM level is:     254 (maximum performance), recommended: 128
APM feature is:   Unavailable
Rd look-ahead is: Enabled
Write cache is:   Enabled
ATA Security is:  Disabled, frozen [SEC2]

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x84) Offline data collection activity
                                        was suspended by an interrupting command from host.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (16800) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 173) minutes.
Conveyance self-test routine
recommended polling time:        (   5) minutes.
SCT capabilities:              (0x3035) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     POSR-K   200   200   051    -    6
  3 Spin_Up_Time            POS--K   173   173   021    -    4308
  4 Start_Stop_Count        -O--CK   099   099   000    -    1761
  5 Reallocated_Sector_Ct   PO--CK   200   200   140    -    0
  7 Seek_Error_Rate         -OSR-K   200   200   000    -    0
  9 Power_On_Hours          -O--CK   091   091   000    -    7077
 10 Spin_Retry_Count        -O--CK   100   100   000    -    0
 11 Calibration_Retry_Count -O--CK   100   100   000    -    0
 12 Power_Cycle_Count       -O--CK   099   099   000    -    1759
192 Power-Off_Retract_Count -O--CK   200   200   000    -    14
193 Load_Cycle_Count        -O--CK   200   200   000    -    1746
194 Temperature_Celsius     -O---K   104   099   000    -    43
196 Reallocated_Event_Count -O--CK   200   200   000    -    0
197 Current_Pending_Sector  -O--CK   200   200   000    -    0
198 Offline_Uncorrectable   ----CK   100   253   000    -    0
199 UDMA_CRC_Error_Count    -O--CK   200   200   000    -    0
200 Multi_Zone_Error_Rate   ---R--   100   253   000    -    0
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

General Purpose Log Directory Version 1
SMART           Log Directory Version 1 [multi-sector log support]
Address    Access  R/W   Size  Description
0x00       GPL,SL  R/O      1  Log Directory
0x01           SL  R/O      1  Summary SMART error log
0x02           SL  R/O      5  Comprehensive SMART error log
0x03       GPL     R/O      6  Ext. Comprehensive SMART error log
0x06           SL  R/O      1  SMART self-test log
0x07       GPL     R/O      1  Extended self-test log
0x09           SL  R/W      1  Selective self-test log
0x10       GPL     R/O      1  NCQ Command Error log
0x11       GPL     R/O      1  SATA Phy Event Counters
0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log
0xa0-0xa7  GPL,SL  VS      16  Device vendor specific log
0xa8-0xb5  GPL,SL  VS       1  Device vendor specific log
0xb6       GPL     VS       1  Device vendor specific log
0xb7       GPL,SL  VS       1  Device vendor specific log
0xbd       GPL,SL  VS       1  Device vendor specific log
0xc0       GPL,SL  VS       1  Device vendor specific log
0xc1       GPL     VS      24  Device vendor specific log
0xe0       GPL,SL  R/W      1  SCT Command/Status
0xe1       GPL,SL  R/W      1  SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (6 sectors)
Device Error Count: 1
        CR     = Command Register
        FEATR  = Features Register
        COUNT  = Count (was: Sector Count) Register
        LBA_48 = Upper bytes of LBA High/Mid/Low Registers ]  ATA-8
        LH     = LBA High (was: Cylinder High) Register    ]   LBA
        LM     = LBA Mid (was: Cylinder Low) Register      ] Register
        LL     = LBA Low (was: Sector Number) Register     ]
        DV     = Device (was: Device/Head) Register
        DC     = Device Control Register
        ER     = Error register
        ST     = Status register
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 1 [0] occurred at disk power-on lifetime: 0 hours (0 days + 0 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER -- ST COUNT  LBA_48  LH LM LL DV DC
  -- -- -- == -- == == == -- -- -- -- --
  04 -- 51 00 01 00 00 00 00 00 37 00 00  Error: ABRT

  Commands leading to the command that caused the error were:
  CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
  -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
  b0 00 d6 00 01 00 00 00 c2 4f be 00 00     00:00:46.851  SMART WRITE LOG
  b0 00 d5 00 20 00 00 00 c2 4f bf 00 00     00:00:46.379  SMART READ LOG
  b0 00 d6 00 01 00 00 00 c2 4f be 00 00     00:00:46.371  SMART WRITE LOG
  b0 00 d5 00 01 00 00 00 c2 4f bf 00 00     00:00:45.871  SMART READ LOG
  b0 00 d6 00 01 00 00 00 c2 4f be 00 00     00:00:45.861  SMART WRITE LOG

SMART Extended Self-test Log Version: 1 (1 sectors)
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      1075         -
# 2  Short offline       Completed without error       00%      1075         -
# 3  Short offline       Completed without error       00%       806         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

SCT Status Version:                  3
SCT Version (vendor specific):       258 (0x0102)
SCT Support Level:                   1
Device State:                        Active (0)
Current Temperature:                    43 Celsius
Power Cycle Min/Max Temperature:     29/43 Celsius
Lifetime    Min/Max Temperature:     29/48 Celsius
Under/Over Temperature Limit Count:   0/0
SCT Temperature History Version:     2
Temperature Sampling Period:         1 minute
Temperature Logging Interval:        1 minute
Min/Max recommended Temperature:      0/60 Celsius
Min/Max Temperature Limit:           -41/85 Celsius
Temperature History Size (Index):    478 (7)

Index    Estimated Time   Temperature Celsius
   8    2013-06-14 06:38    44  *************************
 ...    ..( 10 skipped).    ..  *************************
  19    2013-06-14 06:49    44  *************************
  20    2013-06-14 06:50    43  ************************
 ...    ..( 53 skipped).    ..  ************************
  74    2013-06-14 07:44    43  ************************
  75    2013-06-14 07:45     ?  -
  76    2013-06-14 07:46    29  **********
  77    2013-06-14 07:47    29  **********
  78    2013-06-14 07:48    30  ***********
  79    2013-06-14 07:49    31  ************
  80    2013-06-14 07:50    31  ************
  81    2013-06-14 07:51    32  *************
  82    2013-06-14 07:52    32  *************
  83    2013-06-14 07:53    33  **************
  84    2013-06-14 07:54    33  **************
  85    2013-06-14 07:55    34  ***************
  86    2013-06-14 07:56    34  ***************
  87    2013-06-14 07:57    35  ****************
 ...    ..(  2 skipped).    ..  ****************
  90    2013-06-14 08:00    35  ****************
  91    2013-06-14 08:01    36  *****************
  92    2013-06-14 08:02    36  *****************
  93    2013-06-14 08:03    37  ******************
  94    2013-06-14 08:04    37  ******************
  95    2013-06-14 08:05    37  ******************
  96    2013-06-14 08:06    38  *******************
 ...    ..(  2 skipped).    ..  *******************
  99    2013-06-14 08:09    38  *******************
 100    2013-06-14 08:10    39  ********************
 ...    ..(  4 skipped).    ..  ********************
 105    2013-06-14 08:15    39  ********************
 106    2013-06-14 08:16    40  *********************
 ...    ..( 15 skipped).    ..  *********************
 122    2013-06-14 08:32    40  *********************
 123    2013-06-14 08:33    41  **********************
 ...    ..( 18 skipped).    ..  **********************
 142    2013-06-14 08:52    41  **********************
 143    2013-06-14 08:53    42  ***********************
 ...    ..(142 skipped).    ..  ***********************
 286    2013-06-14 11:16    42  ***********************
 287    2013-06-14 11:17    43  ************************
 ...    ..( 19 skipped).    ..  ************************
 307    2013-06-14 11:37    43  ************************
 308    2013-06-14 11:38    39  ********************
 309    2013-06-14 11:39    39  ********************
 310    2013-06-14 11:40    40  *********************
 ...    ..( 11 skipped).    ..  *********************
 322    2013-06-14 11:52    40  *********************
 323    2013-06-14 11:53    41  **********************
 ...    ..(  8 skipped).    ..  **********************
 332    2013-06-14 12:02    41  **********************
 333    2013-06-14 12:03    42  ***********************
 ...    ..( 43 skipped).    ..  ***********************
 377    2013-06-14 12:47    42  ***********************
 378    2013-06-14 12:48    43  ************************
 ...    ..( 39 skipped).    ..  ************************
 418    2013-06-14 13:28    43  ************************
 419    2013-06-14 13:29    44  *************************
 ...    ..( 65 skipped).    ..  *************************
   7    2013-06-14 14:35    44  *************************

SCT Error Recovery Control command not supported

Device Statistics (GP Log 0x04) not supported

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x0001  2            0  Command failed due to ICRC error
0x0002  2            0  R_ERR response for data FIS
0x0003  2            0  R_ERR response for device-to-host data FIS
0x0004  2            0  R_ERR response for host-to-device data FIS
0x0005  2            0  R_ERR response for non-data FIS
0x0006  2            0  R_ERR response for device-to-host non-data FIS
0x0007  2            0  R_ERR response for host-to-device non-data FIS
0x000a  2            1  Device-to-host register FISes sent due to a COMRESET
0x000b  2            0  CRC errors within host-to-device FIS
0x8000  4        13895  Vendor specific


하드 정보를 이렇게 디테일하게 출력하는 프로그램은 제 경험상 처음인 듯싶습니다. 공개가 아닌 유료 프로그램들도 이렇게 자세하게 나오지는 않았습니다.

하드 섭씨 온도의 시간별 그래프까지 나오는군요.

S.M.A.R.T. Monitoring Tools 의 윈도우용 6.1-2 버전 설치파일은 "smartmontools-6.1-2.win32-setup.exe" 라는 파일명으로 되어 있습니다. 64비트 윈도우용도 포함되어 있고, 리눅스 버전도 받을 수 있습니다.

S.M.A.R.T. Monitoring Tools 다운로드:
http://sourceforge.net/projects/smartmontools



설치 프로그램에서 "Extract files only (파일을 풀기만 하기)"를 선택하면, USB메모리 등에 넣어서 다닐 수 있는 포터블(Portable) 버전이 됩니다.

그렇지만 설치된 파일들 중에서 smartctl.exe 라는 파일 하나만 있어도 잘 실행되더군요.


※ 이 글은 2013-06-14일에 작성된 것입니다.





스마트 정보만 간단하게 출력하려면
smartctl -A -f brief c:
이런 옵션을 사용하면 됩니다. -A 는 반드시 대문자여야 합니다.

다음과 같이 나옵니다.

D:\Z>smartctl -A -f brief c:
smartctl 6.1 2013-03-16 r3800 [i686-w64-mingw32-xp-sp3] (sf-6.1-2)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     POSR-K   200   200   051    -    6
  3 Spin_Up_Time            POS--K   173   173   021    -    4308
  4 Start_Stop_Count        -O--CK   099   099   000    -    1762
  5 Reallocated_Sector_Ct   PO--CK   200   200   140    -    0
  7 Seek_Error_Rate         -OSR-K   200   200   000    -    0
  9 Power_On_Hours          -O--CK   091   091   000    -    7080
 10 Spin_Retry_Count        -O--CK   100   100   000    -    0
 11 Calibration_Retry_Count -O--CK   100   100   000    -    0
 12 Power_Cycle_Count       -O--CK   099   099   000    -    1760
192 Power-Off_Retract_Count -O--CK   200   200   000    -    14
193 Load_Cycle_Count        -O--CK   200   200   000    -    1747
194 Temperature_Celsius     -O---K   104   099   000    -    43
196 Reallocated_Event_Count -O--CK   200   200   000    -    0
197 Current_Pending_Sector  -O--CK   200   200   000    -    0
198 Offline_Uncorrectable   ----CK   100   253   000    -    0
199 UDMA_CRC_Error_Count    -O--CK   200   200   000    -    0
200 Multi_Zone_Error_Rate   ---R--   100   253   000    -    0
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning




Sunday, January 18, 2009

로그(Log)의 밑(Base)을 구하는 온라인 계산기; Math Log get Base (b) Calc

공학이나 수학에서 로그의 밑을 구하는 계산기입니다. 예를 들어 Log(6) = 7 일 때, 밑(b)은 1.2917083420907467 입니다.

인터넷 브라우저 종류에 따라서, 출력된 "밑"의 소수점 끝 부분에서 미세한 오차가 생길 수 있습니다.


로그의 밑(Base) 구하기:

Log =




※ 브라우저 상태에 따라 오작동 가능성이 있으니, 사용 전에 테스트를 거치는 것이 좋습니다. Log(4) = 8 의 밑이 1.189207115002721 로 계산되면 정상 작동입니다.



참고: 로그 계산기; 로그값 구하기; 상용로그, 자연로그, 밑이 2인 로그; Log Calc



Saturday, January 17, 2009

자바 Java] Hashtable 예제 소스, 펄의 해쉬(Hash) 구현

펄(Perl)의 해쉬(Hash;해시)를 자바에서 Hashtable 로 구현하는 예제입니다. 간단한 데이터베이스를 만들 수 있습니다. 아래 예제에서는 해쉬에, 나라 이름과 수도명을 입력합니다. "미국"이 key, "워싱턴"은 value 입니다.

그리고 Hashtable이 아닌 HashMap도 있는데, HashMap은 키나 값에 null을 넣을 수 있지만, 쓰레드 세이프(Thread-Safe)가 아니라는 약간의 차이점이 있습니다.

예제 소스 파일명: MyHash.java
import java.util.*;

class MyHash {
  public static void main(String args[]) {

    Hashtable<String,String> capitalCity = new Hashtable<String,String>();

    capitalCity.put("미국", "워싱턴"); // 해쉬에 아이템을 넣는 작업
    capitalCity.put("오스트리아", "빈");
    capitalCity.put("프랑스", "Paris");


    // 해시 속의 아이템 1개를 화면에 출력하기
    System.out.println( capitalCity.get("프랑스") ); // 출력 결과: Paris
  }
}


Hashtable capitalCity = new Hashtable();
이렇게 타입을 지정하지 않으면 컴파일시 다음과 같은 경고 비슷한 문구가 나옵니다.

Note: MyHash.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.


"키"는 문자열이고, "값"은 정수라면 다음과 같이 합니다.
Hashtable<String, Integer> capitalCity = new Hashtable<String, Integer>();


BAT파일에서, 다른 BAT파일을 불러 반복 실행하기

아래 예제는 example.bat 이라는 배치파일 안에서, foo.bat 이라는 별도의 다른 배치파일을 호출하여 3번 반복 실행시키는 예제입니다. foo.bat 이라는 임의의 배치파일이 같은 디렉토리(폴더)에 있어야만 실행이 됩니다.

중요한 것은, 호출할 다른 배치파일 이름 앞에 반드시 call 을 붙여 주는 것입니다. 그렇지 않으면 반복이 안됩니다. 호출된 foo.bat 파일 속에서 그냥 종료되어 버리고, example.bat 파일로 다시 돌아오지 않게 됩니다.

예제 파일명: example.bat

@echo off

call foo.bat
call foo.bat
call foo.bat




배치파일 속에서 특정 부분 반복 예제 참고:
▶▶ BAT 파일 반복 시키기 배치파일 문법


BAT 파일 반복 시키기 배치파일 문법

배치파일 문법에서는 어떤 부분을 반복하려면 라벨을 만든 후에 goto문을 사용하면 됩니다. 아래 예제 소스에서 :REDO 라는 부분이 라벨인데, 콜론(:) 뒤에 REDO 등의 적당한 이름을 지정하면 라벨이 됩니다.

아래 예제 소스는, "문자열 출력 작업"이라는 글자들을 도스창 화면에 출력시킨 후 대기 상태로 들어가는 일을 무한 반복합니다.

무한 반복 시키기
배치 파일명: example.bat
@echo off

:REDO

echo 문자열 출력 작업
pause

goto REDO



위의 파일을 도스창을 열고 실행시키면, 다음 화면처럼 REDO... 사이의 부분이 무한 반복으로 실행됩니다. 키보드의 CTRL+C키를 눌러야만 중지됩니다.

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

D:\Z>example.bat
문자열 출력 작업
계속하려면 아무 키나 누르십시오 . . .
문자열 출력 작업
계속하려면 아무 키나 누르십시오 . . .
문자열 출력 작업
계속하려면 아무 키나 누르십시오 . . .
문자열 출력 작업
계속하려면 아무 키나 누르십시오 . . .
문자열 출력 작업
계속하려면 아무 키나 누르십시오 . . .
일괄 작업을 끝내시겠습니까 (Y/N)? y

D:\Z>


"계속하려면 아무 키나 누르십시오 . . ."라는 부분이 나오지 않고, 무작정 반복시키려면, 예제 소스에서 pause 라는 중지문을 삭제하면 됩니다.


지정한 특정 회수만큼 반복시키기
무한 반복이 아니라, 특정 회수만큼, 가령 10번 반복이 필요할 때, 10번만 반복하려면 다음 페이지의 소스처럼 하면 됩니다:
▶▶ 배치파일 무한루프 구현, 루프 탈출, 빠져 나오기 예제; Batch File Infinity Loop


외부 배치파일 호출하여 반복 실행 예제:
▶▶ BAT파일에서, 다른 BAT파일을 불러 반복 실행하기


Saturday, January 10, 2009

마크레빈슨 앰프 음질, 가장 잘 어울리는 스피커?; Mark Levinson Amp

이 글은 1990년대의 상황입니다.

마크레빈슨 앰프에는 JBL 스피커를 붙이는 것이 정석입니다. 가장 궁합이 잘 맞습니다. 녹음 스튜디오에서는 대부분 "마크레빈슨 + JBL 스피커"를 음질의 기준으로 삼아 음반을 제작합니다.

마크레빈슨 앰프는 오디오 업계의 "레퍼런스 앰프"입니다. 타회사 신제품 앰프 음질을 비교할 때, "마크레빈슨보다 소리가 차갑다." 또는, "대륙적 호방함이 있는 마크레빈슨에 비해 소리가 영국적이다, 북구적인 편이다..." 등으로 각종 판단 기준이 되어 줍니다.

스피커 등의 오디오 기기를 제작할 때 마크레빈슨 앰프에 물려서 음질을 테스트합니다. 그래서 모든 스피커는 사실상 마크레빈슨과 잘 어울리게 되어 있습니다.

한편, 앰프를 만드는 회사에서는, 대부분 JBL스피커를 물려서 음질을 테스트합니다.

국내 호텔 나이트클럽에서 "마크레빈슨 + JBL 에베레스트"의 조합을 사용하더군요. 그렇지만 JBL 스피커는 소형 제품이라도 소리가 강렬하기 때문에 가정용으로는 그리 적합하지 않을 것입니다. 가정용 스피커는 영국제 "BBC모니터" 같은 섬세한 스피커가 이상적입니다. 마크레빈슨은 대형 스피커가 아닌, 아주 작은 스피커도 잘 구동시켜줍니다.


마크레빈슨 앰프의 음질의 특징은 "소리가 뜨겁고 탄력이 있다"는 것입니다. 트랜지스터 앰프는 소리가 차가운 것이 보통인데 마크레빈슨은 진공관 앰프처럼 소리가 뜨거운 편입니다. 재즈에 이상적인 음질이지만 클래식에도 적합합니다.

대체로 오디오 기기는 소리가 뜨겁게/따뜻하게 느껴질수록 고급 제품입니다. 회로가 똑같을 경우, 부품이 고급일수록 소리의 온도가 높아지는 경향이 있다고 생각됩니다. 마크레빈슨은 볼륨 하나만 해도 30만원 정도 나간다고 합니다. 반면 전자 부품상에서 파는 보통 볼륨의 가격은 1000원 이하일 것입니다.

마크레빈슨 앰프를 사용한다고 해서 항상 최고의 음질이 나오는 것은 아니고, 마크레빈슨에 싸구려 스피커를 붙이면 싸구려 음질이 나옵니다. 마크레빈슨에서 라디오 수준의 음질이 나오는 경우도 본 적이 있습니다.


Saturday, January 03, 2009

욕실 미끄럼방지제 트러스티 스텝 사용기, 타일 바닥용; TRUSTY STEP

지난번에 아버지가 욕실에서 미끄러져서 크게 다칠 뻔했습니다. 바닥 타일이 평소에 좀 미끄러운 편이었지만, 그 동안 신경을 쓰지 못하고 있었습니다. 이번에는 어떻게든 해결해야겠다는 생각으로 인터넷을 찾아보니, 미끄럼방지법은 크게 2가지가 있었습니다. 하나는 3M에서 나온 "미끄럼방지 테이프"이고, 다른 하나는 "바르는 액체" 형식이었습니다.

처음에는 3M 미끄럼방지 테이프를 사려고 했지만, 저희집 욕실 바닥은 타일 1개당 면적이 화투장 2배 정도로 작아서 테이프 형식이 곤란했습니다.

또한 시공의 편의성을 따져볼 때, 바르는 액체 형식이 더 편리했습니다. 그래서 아래 사진의 "트러스티 스텝"이라는 것을 2통 샀습니다. 내용물은 미국산인데, 포장은 국내의 "인드림텍"이라는 회사에서 한 듯했습니다. 국내 대학병원에서도 사용한다고 적혀 있고, 맥도날드 매장 바닥에도 시공한다고 하더군요.


클릭하면확대
욕실 바닥 타일 마끄럼 방지
욕실 타일에 바르는 미끄럼 방지제


그런데 1번만 바르니 효과가 거의 없었습니다. 타일이 물에 젖으니 여전히 미끄러웠습니다. 3번쯤 반복 시공해야만 비로소 덜 미끄럽게 되었습니다. 이제는 욕실 바닥이 비눗물에 젖더라도 그리 미끄럽지 않게 되었습니다. 슬리퍼 신은 발로 타일 바닥을 문질러 보니, 바닥이 뻑뻑하게 느껴지더군요.

타일 표면을 미세하게 부식시켜서 요철을 만들어서 마찰력을 높이는 원리라고 합니다. 그래서 혹시 타일이 변색되거나 이상하게 되는 것은 아닌가 했는데, 타일 표면은 전혀 손상되지도 변색되지도 않았습니다.

타일 바닥의 기름기나 먼지를 깨끗히 청소하고 건조시킨 후, 트러스티 스텝이라는 액체를 마사지하듯이 장시간에 걸쳐 타일에 골고루 바르고 문질러 줍니다. 그런 후 30분쯤 건조시키고, 물로 씻어주면 시공이 끝입니다. 다음날 다시 시공을 되풀이해야 효과가 좋아집니다.

추운 영하의 날씨에는 시공하지 말라고 되어 있고, 또한 직사광선이 닿는 타일에는 시공이 불가능하다고 되어 있습니다.


위의 사진에 있는 병 2개가 든 한 세트를 3만원 정도의 가격에 구입했습니다. 좀 비싸지만 욕실에서 미끄러져서 중상을 입는 것보다는 훨씬 나을 것입니다.


바나나 사진 1개 확대; a Banana

지난번에는 바나나 한손 사진을 올렸는데 오늘은 바나나 1개를 확대한 사진입니다.

가령 포토샵의 스포이드 툴로 바나나 몸통과 속살(?)의 "RGB 색상 값"을 채집해 놓으면, 포토샵으로 바나나를 그릴 때 사실적인 색상의 바나나 그림을 그릴 수가 있습니다.

클릭하면확대
바나나
바나나 사진


Saturday, December 20, 2008

바나나 사진, 바나나 한다발 한손; a Bunch of Bananas

1년 전쯤에 찍은 바나나 사진입니다. 혹시 바나나 3D 모델링할 때 참고가 될까 해서 사진으로 찍어 두었습니다.

예전에는 바나나가 너무 귀해서 (제주도산 바나나밖에는 없었고 외국산은 수입이 안되던 시절) 환상적인 맛으로 여겨졌는데 요즘에는 흔해서 그런지 별로 맛이 없더군요.

클릭하면확대
바나나 사진
바나나 사진

카메라: 니콘 D40X (DSLR) + 외장 플래시


중한사전 한중사전 중국어사전; Casio EW-L3200 Chinese Korean Dic

Casio EW-L3200 은 일본어 강화판 전자사전이지만 중국어사전인 중한사전과 한중사전도 들어 있습니다. 중국어를 전문적으로 공부하는 경우가 아닌 이상, 충분히 실용적인 사전이었습니다. "고려대학교 민족문화연구소"에서 만든 사전이라고 되어 있습니다. 본토 중국인의 발음도 들을 수 있었습니다. 당연히 간체자도 지원됩니다. 아래 사진의, 우측 상단 사진에 보면 "산업(産業)" 할 때의 낳을 산(産)자가 중국어 간체자로 선택되어 있습니다.

클릭하면확대
중한사전 한중사전 중국어사전
중국어 전자사전

위의 사진은 한글 발음으로 중국 한자어를 찾아보는 장면인데, 키보드를 사용하여 중국어 병음으로 즉 로마자로 직접 입력할 수도 있습니다.

위의 사진에서 우측 상단 사진의 한자 고르기 화면은 Zoom키로 확대한 상태입니다.

한중사전도 들어 있지만 위의 사진에는 나와 있지 않습니다.

한편, 전자사전을 1개월 이상 사용하지 않을 때에는 반드시 건전지를 빼 놓아야 합니다. 전자사전의 전원이 OFF 된 상태에서도 미세한 전력소모가 있어서 전지는 여전히 계속 소모되기 때문입니다. 몇 달 후에 보면 "자연 방전"되어 건전지가 100% 소모 상태가 됩니다. 건전지가 아까운 것도 문제지만, 건전지가 자연 방전되면 건전지에서 "액"이 흘러나와서 전자사전을 못 쓰게 만드는 위험한 경우가 생길 수 있습니다.


같이 수록된 다른 사전들 보기: ▶▶ 전자사전 구입기 리뷰; 카시오 EW-L3200, Casio 엑스워드 흑백 액정 Review

Saturday, December 13, 2008

WMA ASF파일을 MP3로 변환하는 프리웨어 쉐어웨어 프로그램; WMA MP3 Converter

MS의 음악/소리 파일 포맷인 WMA 를 MP3로 변환해 주는 변환기를 찾아보니 구글에서 우선 2가지가 보이더군요.

하나는 쉐어웨어인 "4U WMA MP3 Converter" 이것과

프리웨어(무료) 프로그램인 "Free WMA to MP3 Converter"인데, 아래 그림 속에 스크린샷으로 들어 있습니다.

ASF확장자를 가진 음악 파일도 WMA입니다.

클릭하면확대
WMA ASF 파일, MP3 변환기
WMA ASF, MP3 변환기 프로그램 2개

쉐어웨어인 "4U WMA MP3 Converter" 이 프로그램의 변환 음질이 더 좋았습니다. 그러나 제약이 있습니다. 각 원본 파일의 60%만 변환되고, 완벽히 변환하려면 유료로 등록을 해야 했습니다.

무료 프로그램인 "Free WMA to MP3 Converter"는 변환 자체는 100% 되는데 잡음이 많이 들어가 있었습니다. 그리고 변환 옵션도 빈약했습니다. 음질이 중요하지 않은 경우에만 쓸만했습니다.

아무리 좋은 프로그램이라도, 파일을 다른 형식으로 변환 작업을 하면 음질이 아주 약간씩은 저하됩니다.

그리고 WMA를 MP3로 변환하니, 파일 용량이 몇 배나 늘어나는 경우가 많았습니다.

음악을 압축하는 알고리즘은 "손실형 압축"이기에, 변환하면 이론적으로 반드시 음질이 나빠집니다.

꼭 필요한 경우가 아니면, 음악 파일은 다른 형식으로 변환하지 않는 것이 음질상 좋습니다.

< 쉐어웨어 WMA MP3변환기 다운로드 받기 주소 >

< 무료 WMA MP3변환기 다운받기 주소 >




하드디스크 남은 용량, 파일 개수 보기 프로그램: 트리 사이즈 특이한 그래프 TreeSize Professional

대형 프로그램을 설치했을 때는, 파일들이 하드를 얼마나 차지하는지 그래프 형식 등으로 자세히 분석해야 할 때가 있습니다. 이때 TreeSize 라는 프로그램이 가장 좋았습니다.

저는 파일 용량이 아니라, 파일 개수를 볼 때 이 프로그램을 주로 사용합니다. 왜냐하면 하나의 디렉토리에 너무 많은 (수만개 이상의) 파일들이 있다면 하드에 논리적 에러가 발생하는 경우가 많기 때문입니다.

여러 개의 하드 디스크 중에서 어떤 디스크의 용량을 볼지 선택해 주어야 합니다. 아래 그림의 경우, 좌측 맨 아래, 하늘색 화살표가 C드라이브 등의 드라이브를 가리키는데, 자신이 원하는 드라이브를 클릭해 주면 그래프가 나옵니다.

클릭하면확대
하드디스크 용량, 파일 갯수 보는 프로그램
TreeSize Professional v5.1.1 캡처 화면

위의 그림의 그래프가, 저의 하드의 C드라이브의 모든 폴더들의 용량을 분석한 것입니다. 아주 신기합니다. 옛날 버전의 트리사이즈에는 없던 새로운 그래프입니다.

이 형식의 그래프가 가장 특이하고 재미있지만, 한눈에 알아보기는 좀 힘듭니다. 아이콘들을 눌러보면, 여러 종류의 각종 그래프 형식이 나오기 때문에, 자신의 취향에 맞는 그래프를 선택해서 사용하면 됩니다. 자잘한 기능들이 너무 많아서 오히려 쉽게 익히기 힘든 면이 있습니다.

트리사이즈 프로라는 프로그램은, 프리웨어(무료)는 아니고 쉐어웨어입니다. JAM Software GmbH 라는 회사에서 만들었는데 독일 회사인 듯했습니다.

< TreeSize Professional 평가판 다운로드 주소 >


Saturday, December 06, 2008

주가 추세선 작성하기, 코스피 그래프에서; 주식투자 Stock Trend Line

키움증권 HTS에서는 상단 풀다운 메뉴에서 "보기 > 차트툴바"를 선택하면, 화면 우측에 툴바가 나옵니다. 아래 그림에서는 그 툴바를 아래쪽으로 이동시킨 상태입니다. 그래야 화면을 더 넓게 쓸 수 있습니다. 녹색 화살표가 가리키는 아이콘을 클릭하여 자신의 취향대로 아이콘들을 설정해야 합니다.

직선 추세선이 여러 가지가 있는데 "간라인(Gann Line)"이라는 추세선을 사용하면 가장 편리합니다.

업데이트: "간라인"보다는 직선 추세선이라는 명칭의 추세선을 사용하는 것이 정석입니다. 다만 그 추세선을 더블클릭하여 "좌측으로 확장" "우측으로 확장" 옵션을 체크해 주어야 좌우로 무한히 선의 길이가 길어집니다.

아래 그림에서는 간라인 아이콘을 "직선 추세선"이라고 표시했는데 오류입니다.
-----

HTS프로그램 안에, 자동추세선 긋기 기능도 있긴 하지만, 제대로 긋지를 못해서 실용성이 별로 없었습니다. 추세선은 수동으로 작성하는 것이 가장 좋았습니다.

클릭하면확대
주가 추세선 작성
코스피 일봉 차트: 주가 직선 추세선 긋기

피보나치 어쩌고 하는 나머지 툴들은 추세선이라기보다는 "기술적 분석"에 사용되는 도구이고, 주가 예측에 추세선만큼 큰 도움이 되지는 않았습니다.

위의 그림에서, 맨 우측 하단의 GL 이라는 아이콘을 클릭하면 추세선 그리기 연필이 나옵니다. 연필이 나타나면, 그래프에 대고 선을 긋고, 그런 후, 마우스 우측 버튼을 누르면 "추세선 그리기 모드"가 종료됩니다.


고대 로마 입체 3D 지도, 콜로세움 구글어스에서 보기; Ancient Rome in 3D

위성사진에 찍힌 콜로세움은 납작한 평면으로 보여서 별로 볼품이 없습니다. 그렇지만 고대 로마를 3D로 재현한 모델링에서는 콜로세움이 극히 사실적으로 만들어져 있습니다. 콜로세움뿐만이 아니라 고대 로마 시내 건축물의 대부분이 3D로 구현되어 있습니다.

그런데 구글어스에서는 기본값으로는 입체 모델을 보여주지 않기에, 입체 모델이 화면에 나오도록 조정해 주어야 합니다. 그리고 구글어스의 일반 기능과 달리, 시스템 사양이 상당히 좋아야만 합니다. 권장 사양은 다음과 같았습니다:

* 듀얼코어(Dual-Core) 2.0GHz CPU
* 3기가 바이트(GB) RAM
* 비디오 메모리 512MB 이상 달린 고급 GPU

초고속 인터넷으로도 10분쯤 계속 데이터를 다운로드 받아야 했습니다.

입체 건축물이기 때문에 경기장 바닥까지 들어가서 구경할 수 있지만, 각도 조절이 좀 힘듭니다.

클릭하면확대
고대 로마 콜롯세움
로마의 콜로세움을 구글어스에서 보는 법

* 구글어스를 한글판이 아닌 영문판으로 설정해 줍니다.

* 위의 그림에서, 빨간 화살표가 가리키는 곳, 즉 Gallery 밑에 있는 "Ancient Rome in 3D (3D 고대 로마)"를 더블클릭하면, 로마로 갑니다.

* 노란 입체 아이콘이 화면에 둥둥 떠 있습니다. 그 노란 아이콘을 클릭하면 창이 나오는데 그 창에서

Ancient Terrain (**Load First)
Ancient Roman Landmarks (250 buildings)
Ancient Roman Buildings (5000+ buildings)

이런 링크들을 차례로 클릭해 주면, 필요한 데이터가 다운이 됩니다. 그런데 이 부분에서 링크가 잘 작동하지 않을 때가 있더군요.

* 위의 그림에서, 하늘색 화살표가 가리키는 곳에 .kmz 파일들이 다운되고 있을 것입니다. 한참 기다리면 로마 시내 바닥에서 작은 입체 건물들이 하나 둘씩 나타나고, 더 오래 기다리면 시내 전체가 완성됩니다.

* 노란 아이콘들이 거추장스러우면, 빨간 화살표가 가리키는 "Ancient Rome in 3D" 이 부분을 체크 해제해 주면 아이콘만 없어집니다.




Saturday, October 25, 2008

BDI지수 그래프, 벌크선 운임 지수 보기 프로그램; 주식투자 조선주 해운주 Baltic Dry Index

얼마 전에 키움증권 월드 티커에 BDI지수(Baltic Dry Index) 보기 기능이 추가되었습니다. 그런데 아직도 키움증권HTS 내부에는 BDI지수 보기 기능이 여전히 없었습니다. BDI지수를 영국 런던에서 받아올 때는 공짜가 아니고 유료인 것 같은데, 아무튼 사용자 입장에서는 월드 티커에서 BDI지수를 무료로 볼 수 있게 되었습니다. 물론 증권사 홈피에서 가입하고 HTS를 다운받아서 설치해야 합니다. 계좌를 만들 필요는 없습니다.

요즘 BDI지수가 대폭락하고 있는데, 이것은 세계 경제가 쪽박나고 있다는 증거 중의 하나이기도 합니다. 올 6월까지만 해도 BDI지수가 1만이 넘었는데 지금은 몇 달 만에 1천도 위태롭습니다.

전자제품 같은 완제품은 컨테이너선("한진해운"이 독보적)으로 운반하고, 철광석이나 곡물 등의 원자재는 벌크선("대한해운"이 1위)으로 운반합니다. BDI지수는 벌크선의 "뱃삯"인데, 이것이 낮다는 것은 결국 불경기라는 뜻이 됩니다. 물론 화물선을 너무 많이 건조해서 그런 면도 있습니다..

클릭하면확대
BDI지수 보는 프로그램
벌크선 운임지수(BDI) 그래프

위의 그림에서 빨간 화살표가 가리키는 곳을 클릭하면 메뉴가 나오고,

녹색 화살표가 가리키는 환경설정에서 BDI지수가 나오게 설정하고,

검은 화살표가 가리키는 종합화면의 "미국/유럽"을 보면 BDI지수 그래프가 나옵니다.

월드 티커 설정법: ▶▶ 원 달러 환율, 코스피, 나스닥 선물, BDI지수 실시간 티커 설정; Stock Ticker




업데이트: http://stockcharts.com/ 에서 BDI 로 검색하면 BDI 차트를 무료로 볼 수 있습니다. 회원 가입 필요도 없습니다.

Saturday, October 18, 2008

다우존스 산업지수 보기; 미국 다우 지수 그래프 차트, 주식투자; DJIA

미국 주식 시장은 한국시간으로 밤 10시 30분에 시작됩니다. 어젯밤에도 다우 지수 1분봉을 좀 구경하다가 잠을 잤는데 오늘 아침에 보니 다우 일봉이 -1.41% 하락해 있더군요. 5일 이평선(아래 그림에서 가늘고 빨간 곡선)이 상향으로 치켜올라간 상태라서 폭락세는 잠시 멈춘 듯합니다.

키움증권에서는 해외증시차트(0730번 화면)에서 다우지수를 볼 수는 있지만 차트가 간이차트라서 불편했습니다.

아래 그림처럼 0600번 종합차트에서 보는 것이 더 편리했습니다. 아래 그림 좌측 상단의 입력창(빨간 화살표가 가리키는 곳)에 해당하는 곳에 0600 이라는 숫자를 입력하면 그래프 차트가 나옵니다.

하늘색 화살표가 가리키는 목록을 "해외"로 선택하고, 녹색 화살표가 가리키는 입력칸에 다우존스라고 입력하면 "다우존스 산업지수"가 나오고 그것을 선택하면 다우존스 지수 그래프가 나옵니다.

클릭하면확대
다우존스 산업 평균 지수
다우 지수 (Dow Jones Industrial Average) 차트, 키움증권HTS에서

국내 코스피 종합주가지수와 마찬가지로 그래프가 "실시간"으로 갱신됩니다. 15분 지연 시세가 아니고 미국과 똑같이 리얼타임으로 그래프가 그려집니다. 일본 니케이 지수와 달리 미국 지수는 무료로 실시간 시세를 볼 수 있었습니다.

간밤의 다우지수를 보면 오늘 한국 코스피 지수가 상승할지 하락할지 대충 예측할 수 있습니다. 그래서 꼭 확인해야 하는 중요한 지수입니다.



Categories
Recent 10 Posts
Monthly Archives
Top