2018년 7월 18일 수요일

eclipse rcp dialog resize

  Dialog 안에 메소드를 만든다.

private void autoResize(){
    getShell().layout( true, true);
    final Point newSize = getShell().computeSize( SWT.DEFAULT , SWT.DEFAULT );
    getShell().setSize( newSize );
}

2018년 7월 17일 화요일

원리금 균등 상환 공식

function halbu_same($src,$rate,$period)
{
        //인풋부분 : src(원금), rate(이율-소수점단위), period(기간-개월수)
        $s_rate = 1 + ( $rate / 12 );//원금증가율
        $o_money = $src * ( 1 - $s_rate) / ( 1 - pow($s_rate,$period));//초회원금
        $r_money = $src * $rate / 12;//초회이자
        return ceil($o_money + $r_money);//월상환금액(원리금균등분할상환)
        //소수점 자리 처리 => ceil(올림), round(반올림), floor(절사) 캐피탈사마다 다름
// 예제 : 500만원을 7.5%의 이율로 24개월 대출 받았을 때 월상환금액 구하기
$money = halbu_same( 5000000, 0.075, 24 );
print $money; //224,998원

2018년 3월 26일 월요일

3gb minning

비트코인 골드

-- 마이너 다운로드 : https://www.bminercontent.com/releases/bminer-v6.0.0-d111154-amd64.zip

-- vcruntime140.dll 다운로드 https://www.microsoft.com/en-us/download/details.aspx?id=52685

-- 실행배치 :
bminer.exe -uri stratum://계정.워커@asia.equihash-hub.miningpoolhub.com:20595  -nofee
pause

2017년 12월 10일 일요일

eclipse target.nl 변경

Windows > preference

Plug-in development > Target platform

Running Platform - Edit Button Click

Location, Content , Envoronment ,Argument , 탭에서

Environment 클릭 Locale 선택

2017년 12월 6일 수요일

Gson iterate jsonobject

https://stackoverflow.com/questions/31094305/java-gson-getting-the-list-of-all-keys-under-a-jsonobject




As of Gson 2.8.1 you can use keySet():
String json = "{\"key1\":\"val\", \"key2\":\"val\"}";

JsonParser parser = new JsonParser();
JsonObject jsonObject = parser.parse(json).getAsJsonObject();

Set<String> keys = jsonObject.keySet();





Since Java 8 you can use Streams as better looking alternative:
String str = "{\"key1\":\"val1\", \"key2\":\"val2\"}";

JsonParser parser = new JsonParser();
JsonObject jObj = (JsonObject) parser.parse(str);

List<String> keys = jObj.entrySet()
    .stream()
    .map(i -> i.getKey())
    .collect(Collectors.toCollection(ArrayList::new));

keys.forEach(System.out::println);
You can use JsonParser to convert your Json into an intermediate structure which allow you to examine the json content.
String yourJson = "{your json here}";
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(yourJson);
JsonObject obj = element.getAsJsonObject(); //since you know it's a JsonObject
Set<Map.Entry<String, JsonElement>> entries = obj.entrySet();//will return members of your object
for (Map.Entry<String, JsonElement> entry: entries) {
    System.out.println(entry.getKey());
}

2017년 12월 5일 화요일

파이썬을 이용한 크롤링 한경 구축 python easy_install pip Selenium

참고 : https://beomi.github.io/2017/02/27/HowToMakeWebCrawler-With-Selenium/
파이썬에 대한 기초 지식이 있는 분은 위 링크로 가능 하지만 , 생초짜인 나를 위해 하나씩 작성 함


1.윈도우 파이썬 설치

환경 : 윈도우 10

https://www.python.org/downloads/ 에서 최신 버전을 다운 받자.

2017-12-05 일 현재 최신 버전은 3.6.3 이다. 바로 다운 받는 주소는 https://www.python.org/ftp/python/3.6.3/python-3.6.3.exe 이다.














all user 와 add to path 체크 해주자.



2. easy_install 설치


https://bootstrap.pypa.io/ez_setup.py 다운로드

윈도우키+R cmd 입력 도스창열고

python ez_setup.py 입력















에러가 난다 . 구글링 키워드 : python ez_setup.py ssl error




3번째 글 Python Error When Installing ez_setup.py "could not create SSL/TLS ...
거의 정확 할 듯해



답변에 보니 --insecure 옵션 붙이라는군

다시 cmd 창에
python ez_setup.py --insecure 실행

훔 또 에러.
error: [WinError 5] 액세스가 거부되었습니다: 'C:\\ProgramData\\Anaconda3\\Scripts\\easy_install-script.py'
다운로드까지는 잘 되고, 엑세스 거부라니 ... ㅠㅠ .

다시 구글링 키워드 : error: [WinError 5] 액세스가 거부되었습니다: 'C:\\ProgramData\\Anaconda3\\Scripts\\easy_install-script.py'


















3번째글 관리자 권한으로 하래.. 나랑 똑같음 ㅋㅋ .. 나도 윈도우10임


여기서 윈도우10 관리자권한으로 실행 하는 팁
작업 표시줄에서 cmd 위에 두고 마우스 오른쪽 버튼 클릭 관리자권한으로 실행 클릭



















다시 cmd 창에
python ez_setup.py --insecure 실행





Installed c:\programdata\anaconda3\lib\site-packages\setuptools-33.1.1-py3.6.egg
Processing dependencies for setuptools==33.1.1
Finished processing dependencies for setuptools==33.1.1
짜잔

이제 커맨드 창에서 쓸 수 있도록 환경변수 등록
탐색기 > 내PC > 마우스오른쪽버튼 - 속성 선택













고급시스템 설정 클릭








제일 하단의 환경변수 클릭

















사용자이름에 대한 사용자 변수(U) 에서 리스트 중 Path 클릭 후 아래 편집 버튼 클릭

















아까 완료된 메세지중  easy_install.exe 의 위치를 추가 해야 함
Installing easy_install.exe script to C:\ProgramData\Anaconda3\Scripts

찾아보기 버튼 눌러서 C:\ProgramData\Anaconda3\Scripts 폴더 클릭 하려고 하는데 ProgramData 가 안보임 ㅋㅋ

폴더 있나 커맨드에서 들어가 봄 :
cd C:\ProgramData\Anaconda3\Scripts







새로만들기  눌러서 C:\ProgramData\Anaconda3\Scripts 붙여 넣기

확인 버튼 클릭

커맨드 창은 다 닫는다. 새로 열어야 추가한 path 적용 됨


3. pip 설치

커맨드 창에서 easy_install pip 입력
혹시 또 관리자로 하라고 할려나?

역시나.. 관리자 권한 필요.


다시 관리자 권한으로 커맨드 실행

설치 완료







4. 셀레니움 설치

커맨드 창에서 pip install selenium 입력
혹시나 해서 관리자모드 커맨드가 아닌 일반모드 커맨드 창으로 실행 해 봤는데 완료 됨
pip 는 관리자 모드 필요 없음


 5. 크롬 웹드라이버 다운로드
















2017년 10월 24일 화요일

Webdriver file attach


https://stackoverflow.com/questions/16896685/how-to-upload-file-using-selenium-webdriver-in-java



    upload.click();

    //put path to your image in a clipboard
    StringSelection ss = new StringSelection("C:\\IMG_3827.JPG");
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

    //imitate mouse events like ENTER, CTRL+C, CTRL+V
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    robot.keyPress(KeyEvent.VK_CONTROL);
    //open upload window
    upload.click();

    //put path to your image in a clipboard
    StringSelection ss = new StringSelection("C:\\IMG_3827.JPG");
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

    //imitate mouse events like ENTER, CTRL+C, CTRL+V
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

eclipse rcp dialog resize

  Dialog 안에 메소드를 만든다. private void autoResize(){     getShell().layout( true, true);     final Point newSize = getShell().computeSize...