2013. 2. 1.

다른계정의 모든 테이블명과 동일하게 뷰 만들기 (심볼릭링크?)


만약 AAA 라는 다른 계정의 테이블을 조회하고자 한다면
쿼리의 테이블명앞에 AAA.테이블명 처럼 명시해야만 자신의 계정 테이블과 구분이 가능하다. 하지만 두개의 다른 계정에서 각각 같은 쿼리로 사용하고 싶을때는 다음과 같이 처리하면 AAA.테이블명 을 그냥 테이블명 으로 심볼릭 링크 효과를 줄수 있다.

테이블의 수가 많으므로 다음처럼 쿼리로해결


select
'CREATE OR REPLACE FORCE VIEW ' ||table_name||' ('||column_name||') AS
SELECT '||column_name||' FROM AAA.'||table_name
from (
select table_name,
          substr(xmlagg(
                          sys.XMLType.createXML(
                                     '<'||flag||'>,' || column_name||'</'||flag||'>'
                                     ) order by column_id).extract('/a1/text()'), 2) column_name
  from (select table_name
             , column_name
             , column_id
             , nvl2(column_name, 'a' || row_number() over (partition by table_name, column_name order by column_id),
                               'a2')  as flag
          from cols
       )
 group by table_name
 )

2012. 9. 15.

iPhone 5



한마디로 이번 아이폰5는 하드웨어의 혁신.

한국에선 많은사람들이 디자인이 똑같다는 이유로 까고있지만 혁신은 다른곳에 있었다는.

마감처리는 정말 완벽을 추구했고 모든 것을 최대한 작고 효율적으로 설계했죠.


자, 따져보자구요.

좀더 길어져서 4인치(16:9) 가 되었다는것은 다들 아실것이니 생략.


1. Slim & Light
 - 7.6mm & 112g (Galaxy S3 = 9.0mm & 138.5g)
 - LTE One Chip
 - Nano USIM
 - Lightning Connector (기존과 호환이 안되는것이 함정)

2. 전면 카메라 HD급 Facetime 가능
 - 120만 화소 사진과 HD 동영상(720p), 초당 최대 30프레임

3. 장인정신
 - 정밀하게 맞춰진 인레이 (동일조각 725개중 가장 정밀하게 맞는것으로 조립)
 - 사파이어 크리스탈 (카메라표면은 기스(흠)가 나지않게 하겠다는 의지)
 - 다이아몬드 커팅 빗각 모서리 (마감의 완성 및 최상의 그립감을 제공?)

하드웨어적으로 명품은 인정!!
정말 명품시계만드는거랑 다를바가 없네요.

애플이 이러한 아이폰5를 만든 배경은 이렇게 추정되겠다는.

  하나. 이미 스마트폰의 상향평준화가 이루어짐.
  두울. 소프트웨어와 하드웨어의 완벽한 분리 (iOS)
  세엣. 어차피 스마트폰또한 일종의 그냥 컴퓨터따위일뿐 내실이 중요함
  네엣. 이미 10년은 놀고먹어도 될정도의 현금을 보유
  다섯. 태평성대에 완성도를 극강으로 올려보겠다는 의지
  여섯. 이렇게 완성도를 높여 놓으면 이후 혁신의 모험이 가능



완성도 따지는 일인으로써 이번 아이폰은 하드웨어적으로는 대만족입니다.

그래도 디자인 및 소프트웨어 혁신이 아쉬운건 어쩔?
끄읏!

2012. 9. 14.

2012년 제 16호 태풍 산바(SANBA) 속보

이런이런.. 어찌하여 하늘은

우리나라에게 태풍 3연속 스트라이크를 날리시는겁니까!

아침10시보다 약간 오른쪽으로 방향을 틀었지만 경로가 이미 강한영향권이라 걱정입니다.

다음주 월화수.. 군요

참으로 경이로운 자연입니다만 이런게 자연인것이니 피해가 적도록 조심히 지나갔으면..

딴길로 새주시면 ㄳㄳ


제 16호 태풍 산바(SANBA) 기상청
| 2012년 09월 14일 16시 00분 현재

일시중심위치중심기압(hPa)최대풍속강풍반경(km)
[예외반경]
강도크기진행
방향
이동
속도
(km/h)
70%확률
반경(km)
위도(N)경도(E)초속(m/s)시속(km/h)
14일 15시 현재19.1129.891056202530매우 강대형19
15일 15시 예상23.5128.391056202530매우 강대형북북서21150
16일 15시 예상28.5127.693050180480매우 강중형23250
17일 15시 예상34.0127.595541148400
[북서 약 350]
중형26400
18일 15시 예상41.7129.99852797250
[북서 약 180]
소형북북동37550
19일 15시 예상49.7136.6996북동43


태풍정보 발생 경로

Categories: , ,

2012. 1. 5.

java ftp download & upload

이글을 쓰게 된 동기 

1. java를 통한 ftp 서버의 특정파일을 download & upload 하는 방법을 검색

2. 대부분 apache-commons-net.jar 을 활용하여 사용함을 확인
3. apache-commons-net.jar 을 활용하여 구현
4. 접속은 가능하나 접속이후 rename 명령을 제외하고 connection reset error 발생
5. 뭔짓꺼리 및 검색을 다해봐도 답을 얻지 못함.
6. java ftp lib 다른 것을 찾아본 결과 simple java ftp 소스를 발견!
7. 구현결과 아주아주 잘 작동됨.
8. 그냥 링크를 첨부하려다 추후 페이지가 없어질까 걱정되 블로그에 백업하기로함 
9. 완젼 땡큐 쏘머치!


A simple Java FTP connection + file download and upload


The Java or JDK comes with NO support of any official API for FTP connection. But there is an internal that comes in the sun.net package, but this is NOT well-documented, and you will hardly find how to use other methods within the sun.net.ftp.FtpClient class.
The sun.net.ftp.FtpClient actually sticks to the RFC959. But once you use this to build the class within your Java program, you will always get the complain that this internal API is likely to be discarded in the future versions of JDK.
But Java has the implementation of RFC1738, which is the URL spec, that can be used for initiating FTP connections, download and upload files. In order to be free from the hassle that an upgrade of the JDK might get your program to fail to work, due to it uses sun.net.ftp.FtpClient, therefore it’s best to use the URL spec. I’ve got a simple Java file that does the simple FTP connection, and opens an InputStream for downloading file, or opens an OutputStream for uploading file as follows:
import java.net.*;
import java.io.*;
public class SimpleFTPClient
{
  /** The URL connection object */
  private URLConnection m_client;
  /** The FTP host/server to be connected */
  private String host;
  /** The FTP user */
  private String user;
  /** The FTP user’s password */
  private String password;
  /** The remote file that needs to be uploaded or downloaded */
  private String remoteFile;
  /** The previous error message triggered after a method is called */
  private String erMesg;
  /** The previous success message after any method is called */
  private String succMesg;
  public SimpleFTPClient(){}
  /** Setter method for the FTP host/server */
  public void setHost (String host)
  {
    this.host = host;
  }
  /** Setter method for the FTP user */
  public void setUser (String user)
  {
    this.user = user;
  }
  /** Setter method for the FTP user’s password */
  public void setPassword (String p)
  {
    this.password = p;
  }
  /** Setter method for the remote file, this must include the sub-directory path relative
   to the user’s home directory, e.g you’e going to download a file that is within a sub directory
   called “sdir”, and the file is named “d.txt”, so you shall include the path as “sdir/d.txt”
  */
  public void setRemoteFile (String d)
  {
    this.remoteFile = d;
  }
  /** The method that returns the last message of success of any method call */
  public synchronized String getLastSuccessMessage()
  {
    if (succMesg==null ) return “”; return succMesg;
  }
  /** The method that returns the last message of error resulted from any exception of any method call */
  public synchronized String getLastErrorMessage()
  {
    if (erMesg==null ) return “”; return erMesg;
  }
  /** The method that handles file uploading, this method takes the absolute file path
   of a local file to be uploaded to the remote FTP server, and the remote file will then
   be transfered to the FTP server and saved as the relative path name specified in method setRemoteFile
   @param localfilename – the local absolute file name of the file in local hard drive that needs to
   FTP over
  */
  public synchronized boolean uploadFile (String localfilename)
  {
    try{
      InputStream is = new FileInputStream(localfilename);
      BufferedInputStream bis = new BufferedInputStream(is);
      OutputStream os =m_client.getOutputStream();
      BufferedOutputStream bos = new BufferedOutputStream(os);
      byte[] buffer = new byte[1024];
      int readCount;
      while( (readCount = bis.read(buffer)) > 0)
      {
            bos.write(buffer, 0, readCount);
      }
      bos.close();
      this.succMesg = “Uploaded!”;
      return true;
    }
    catch(Exception ex)
    {
      StringWriter sw0= new StringWriter ();
      PrintWriter p0= new PrintWriter ( sw0, true );
      ex.printStackTrace ( p0 );
      erMesg = sw0.getBuffer().toString ();
      return false;
    }
  }
  /** The method to download a file and save it onto the local drive of the client in the specified absolut path
   @param localfilename – the local absolute file name that the file needs to be saved as */
  public synchronized boolean downloadFile (String localfilename)
  {
    try{
      InputStream is = m_client.getInputStream();
      BufferedInputStream bis = new BufferedInputStream(is);
      OutputStream os = new FileOutputStream(localfilename);
      BufferedOutputStream bos = new BufferedOutputStream(os);
      byte[] buffer = new byte[1024];
      int readCount;
      while( (readCount = bis.read(buffer)) > 0)
      {
        bos.write(buffer, 0, readCount);
      }
      bos.close();
      is.close (); // close the FTP inputstream
      this.succMesg = “Downloaded!”;
      return true;
    }catch(Exception ex)
    {
      StringWriter sw0= new StringWriter ();
      PrintWriter p0= new PrintWriter ( sw0, true );
      ex.printStackTrace ( p0 );
      erMesg = sw0.getBuffer().toString ();
      return false;
    }
  }
  /** The method that connects to the remote FTP server */
  public synchronized boolean connect()
  {
    try{
    URL url = new URL(“ftp://”+user+”:”+password+”@”+host+”/”+remoteFile+”;type=i”);
    m_client = url.openConnection();
    return true;
    }
    catch(Exception ex)
    {
      StringWriter sw0= new StringWriter ();
      PrintWriter p0= new PrintWriter ( sw0, true );
      ex.printStackTrace ( p0 );
      erMesg = sw0.getBuffer().toString ();
      return false;
    }
  }
  
}
If you can’t read the above, copy it to a text pad or note pad for better reading. Click here (works in IE only) to copy code now!
And to use the above class for downloading or uploading file, you just need the simple few lines of code as follows:
1. Initiate the FTP connection first as follows, set the FTP server host name or IP address, and the user name and password, and call the connect method to connect to the FTP server
  SimpleFTPClient f= new SimpleFTPClient ();
  f.setHost(”remoteftpserver.com”);
  f.setUser(”ftpuser”);
  f.setPassword(”ftpuserpass2009″);
  boolean connected=f.connect();
2. If you wanna upload a file, you need to set the file path relative to the FTP user’s home directory. For example, to upload a file into the sub folder “public_html” and the file to be named/saved as “u.txt”
/** Set the remote file name */
f.setRemoteFile(”public_html/u.txt”);
if ( connected){
  // Upload a file from your local drive, lets say in “c:/ftpul/u.txt”
  if (f.uploadFile(”c:/ftpdl/u.txt”))
    // display the message of success if uploaded
  System.out.println(f.getLastSuccessMessage ());
  else
    System.out.println(f.getLastErrorMessage ());
  }
  else
  // Display any connection exception, if any
    System.out.println(f.getLastErrorMessage ());
3. Similarly, if you wanna download a file, you need to set the file path relative to the FTP user’s home directory. For example, to download a file from the sub folder “download” and the file to be downloaded is “dl.txt”
/** Set the remote file name */
f.setRemoteFile(”download/dl.txt”);
if ( connected){
  // The downloaded file to be saved to the local drive
  // as mydl.txt and in the subfoler c:\ftpdownloads
  if (f.downloadFile(”c:/ftpdownloads/mydl.txt”))
    // display the message of success if uploaded
    System.out.println(f.getLastSuccessMessage ());
  else
    System.out.println(f.getLastErrorMessage ());
}
else
  // Display any connection exception, if any
  System.out.println(f.getLastErrorMessage ());

Categories: , ,

2011. 4. 15.

단군의땅 통일서버 준비

안녕하세요~ 화랑천입니다.
제가 작업해오던 5001 테스트용 서버를 "통일서버" 로 명명하고 오픈준비에 들어갑니다.
미적미적 준비되던 단군의땅 통일서버에 대해 아직 모르시는분들이 많으므로 요약하자면

1. 신시시대와 아사달시대 배경을 통일 (아사달게임 시스템 유지)
2. 1~99레벨은 신시배경, 100~200레벨은 아사달배경
3. 새로운 밸런싱 기준표 적용 (아이템, 몹, 돈) 
4. 무기숙련도 200 제한
5. 완벽한 운영 (백업&순위제공)

네~ 기존 서버와 다를게 별로 없어보이지만 좀더 완성도높은 단군의땅, 이상적인 단군의땅의 모습입니다.
제대로 큰틀을 한번 잡아보자해서 시작했으며 오랜 숙원(?)사업 이었습니다 -_-
그런데 작업량이 많고 회사일에 가정일에 치이면서 하느라 작업 늦어지고 있네요 ^^
단땅의 미적거림이야뭐... 수십년(?)동안 지속되던일이니.. 다들 넓은 아량으로 ㅎㅎ

어찌되었든.. 현재 50렙까지 작업을 한상태에서 오픈베타형식으로 오픈할까합니다.
레벨제한을 50레벨로 하고 작업이 되는데로 10레벨씩 풀예정입니다.(기존 온라인게임처럼말이죠)
물론 일정은 5월중이 될것으로 보이구요. 많은기대는 역시 금물! -ㅁ-
하지만 오픈베타라 함은 캐릭터 관리가 그때부터 반영구로 유지되는점이 핵심이죠!
오픈베타라도 하면 좀더 책임감있게 작업이 진행될듯하여 채찍질해봅니다. =)

많은 관심과 조언부탁드립니다~!!

단군의땅 공식 카페주소 : http://cafe.daum.net/dangunland

2011. 3. 16.

통큰모니터 LG IPS236V-PN , 알파스캔 IPS23LED

요즘 없어서 못판다는 통큰 모니터 LG "IPS236V-PN" 

저도 요놈을 사려고 알아보고다니는 중입니다.

문제는 정말로 없어서 못팔고 3월15일날 1차물량이 풀렸다지만

용산발 물량인지라 시간이 좀 걸리는듯 하네요.

소비자가 가장 원하는 충실한 스펙에 싼가격!!

IPS236V-PN 은 LED, UH-IPS패널에 23인치, HDMI 단자를 포함하고있습니다.

IPTV의 셋톱박스와 HDMI 연결하면 TV로도 활용할수 있죠. (단 스피커는 외장)

자~~!! 그렇다면 알파스캔 "IPS23LED"는??

제가 거론한 이유는 바로 LG 통큰모니터와 어깨를 나란이 할 대항마이기 때문입니다.

현재 LG  "IPS236V-PN" 모니터는 물량문제 뿐만아니라

흰색 바탕에서 하단 모서리 좌우측 부위가 어둡거나

검정색 바탕에서 우측 하단 모서리에 빛샘 현상 혹은 전반적으로 보라도리 현상으로

교환하거나 환불받는 수량이 많다는 점입니다.

그런데도 인기가 높은 이유는 대안이 없기 때문이죠.

알파스캔 "IPS23LED" 는 2011년 3월에 나온 신제품으로

소비자의 의견을 상당히 수렴하여 나온 제품이라고 하네요.

LG IPS236V-PN 에 비해 주목할만한 특징은 바로 "내장 스피커" 입니다.
(내장 스피커에 대해 만족스럽지 못하다는 의견이 있어서 오히려 LG모니터에 원하는 외장스피커 조합이 장점이 될 수도 있습니다)

상당히 매력적인 옵션이죠. 나머지 스펙은 모두 같습니다.
(LED, UH-IPS패널에 23인치, HDMI 단자)
(응답속도가 LG보다 좋다고하는데 확실한 비교후기가 없어서 확실하진 않네요)
아.. HDMI-HDMI 케이블을 신청하면 준다는군요.

또한 중요한 빛샘현상의 경우 아직 후기가 몇개 없어서 전반적으로 알수 는 없으나
"빛샘 약간 티잘안구요 보라돌이 블랙 테스트할때 약간 있긴한대 심한것도아니구요"
라는 의견이 보이는군요.

(알파스캔도 같은 LG Display패널을 사용하므로 빛샘이나 보라돌이현상은 같습니다)

LG는 28만원정도 알파스캔은 25~26만원으로 가격은 최소 2마넌이상 차이가 납니다.

스펙과 디자인및 브랜드 차이를 감안하면 충분히 대동소이하게 경쟁력이 있겠네요.

그리하여 저의 결정은!!

LG를 이미 주문한 상태라 ㅡ.ㅜ

배송이 늦어진다 싶으면 취소를 하고, 알파스캔으로 갈 생각이고요,
배송을 받았는데 빛샘현상이 심하다면 교환해보고 환불까지 하게되면
알파스캔으로 가는수밖에요 =)

패널이 똑같아서 뽑기운만이 영향을 미칠뿐!! 구매결정에 후회는 없겠네요.

알파스캔의 장점은 2~3마넌 싸고 +HDMI-HDMI케이블 +내장스피커

구성품 다 포함하면 LG와의 가격차이가 5마넌정도 싸다고 볼수 있네요.

알파스캔에서 이렇게 가격적 경쟁력을 내세우는것을 보니 

LG가 통큰모니터라고 하기엔 상당히 남는장사를 하고있네요 =)

여담이지만 LED가 아닌 IPS패널 23인치의 통큰모니터는 DELL U2311H 가 진리입니다 (23만원)
(LED가 아니어도 소비전력은 차이없음. 수명의차이랄까.)

2011. 3. 9.

스탠스형 김치냉장고 LG 디오스 R-D415MNMT


요즘 가장 잘나간다는 스탠드형 김치냉장고를 타킷!!

스탠드형 김치냉장고는 일반적으로 뚜껑식보다 김치보관 능력이 떨어진다는건 아시리라 봅니다.

처음엔 "김치냉장고=딤채" 로 인식하고 알아봤습니다.

딤채는 모터를 LG제품을 쓰므로 전력소모도 같고요

딤채의 하단 서랍은 끝까지 나오는 유일한 브랜드이기도 하구요.

그런데!! 일반 냉장고 대용으로 사용할수가 없습니다.

돈도많고 공간도 넓어서 일반냉장고따로, 김치냉장고 따로 산다면 딤채쪽에 별고민없이 선택할지도 모릅니다.

하지만 공간도 없고, 돈도 부족하지만 일반냉장고+김치냉장고 효과를 내는 유일한 대안은 바로 LG 2011년형입니다.

바로 요놈 ~
브랜드
LG전자
405ℓ, 스탠드형, 4룸, 냉장+냉동, 땅속익힘, 나노항균, 칸칸탈취, 맛지킴, 쿨링케어, 칸칸입체냉각, 리니어컴프레서, 매직도어, 터치식LE...

LG에서 대단한 제품을 출시했는데요. 냉장고와 김치냉장고의 중간인 제품입니다.

LG에서 사용자의 니즈를 정확히 파악하고 출시한 제품인것 같네요.

요새 어머님들의 대부분은 그냥 반찬을 보관하는것마저 냉장고보단 김치냉장고를 더 선호하시죠.

일반 냉장고만 사기엔 김치냉장고가 아쉽고, 스탠드형 김치냉장고만 사기엔 냉동실이 문제죠.

가장큰 특징은 상단부를 세로로 나누어 일반 냉장고처럼 한쪽을 냉동, 한쪽을 냉장고로 사용할수 있다는 점입니다.

이러한 유형의 김치냉장고는 LG제품이 유일하므로 선택의 여부는 가격과 홈바유무 정도가 됩니다.

홈바가 없는제품은 인터넷가로 160만원 부터 있고, 홈바(매직도어)가 있는 제품은 170만원부터 있습니다.

또하나, 모델명이 415인것과 416인 것이 있는데 모두 똑같으나 소위말하는 부속품이 다릅니다.

416 제품은 소비전력이 22W 로 4W 정도 높죠. 가격은? 30마넌 이상 비쌉니다;;

전력소모가 높은것은 더 좋고 안정적인 냉장능력을 가졌다고 볼수 있겠죠.

LG전자에 공식적으로 문의한 결과 2011년 부터 김치냉장고 전력소비 측정 기준이 변경됨에 따라

실제로 2011년 출시된 416모델이 415모델보다 소비전력이 더 낮다는 답변을 받았습니다.

따라서 415모델의 2011년 기준 소비전력은 22W 보다 높다는 겁니다.

삼성이 2010년 기준 17W(1등급) 에서 2011년 기준으로 27.5W (3등급) 로 변경된 전례를 보면

415모델 또한 2등급이하로 떨어진게 확실합니다.

현재 정확한 415모델의 2011년 기준 소비전력을 문의해 놓았으니 답변오는데로 알려드리겠습니다 =)


답변이 왔군요!!

안녕하세요, 고객님
문의 주신 내용에 대해 답변 드립니다.

R-D415모델 매직 도어가 없는 제품의 경우 2011년의 소비전력 기준대로라면
25.5kWh/월 정도로 3등급이라고 보시면 됩니다.
R-D415모델 중 매직도어가 달린 제품은
'11년 기준으로는 28.9kWh/월 정도이며 4등급입니다.
405L로 타사보다 용량이 더 큰 점을 고려하신다면
소비전력 효율이 더 높다고 보시면 될 것 같습니다.

답변 도움 되셨길 바라며 감사합니다.
앞으로 더욱 좋은 인연으로 뵙길 기대하겠습니다. 감사합니다.
헐~ 생각보다 많이 낮아졌습니다. 매직도어형은 4등급이라니;;


요즘 LG에서 김치냉장고를 "국내유일 1등급"으로 광고하는 것은 2011년형이 아닌 "2011년 신제품" 이며


모델명에 416과 같이 뒤가 6으로 끝나는 제품입니다.


정리해보면


416 모델은 매직도어가 있으면 22kWh/월 , 없으면 20kWh/월

415 모델의 매직도어가 있으면 29kWh/월 , 없으면 26kWh/월


어익후.. 생각보다 차이가 많이 납니다. 6~7KWh/월 이라뇨~

LG전자 공식 홈페이지에는 "415(18kWh/월) , 416(22kWh/월)" 으로 표시하고 있군요.


일부러 재고처리를 하려는 눈속임에 많이 실망스럽네요. 착오 없으시길 바랍니다.

Categories: , , ,

Copyright © 화랑천's 소소하기

Distributed By My Blogger Themes | Blogger Theme By NewBloggerThemes 위로