전체보기

 

 

 

잘 쓰고 있던 캡틴아메리카 메탈컵이 깨지는 바람에 새로운 텀블러를 고르던 중

관리하기 편한 스테인리스로 된 텀블러를 사야겠다고 다짐

 

다양한 텀블러들이 많았으나 스타벅스 제품이 디자인도 품질도 괜찮을거 같아서 찾아보았는데

사이렌 콜드컵을 판매하고 있었다.

 

요 제품들

 

그런데 한가지 아쉬운게 빨대가 플라스틱이었다. 이왕이면 빨대도 스테인리스면 좋겠다고 생각해서 다시 검색을 해보니

국내에서는 팔지 않는 스타벅스 아이스 크러쉬 텀블러를 병행수입해서 판매하고 있었다.

 

특이한 건 이건 빨대도 스테인리스였고 디자인도 예뻤다

 

총 5가지 색상

 

 

이 중에서는 퍼플블루가 가장 인기가 있었는데 재고가 없는 곳이 많았다. 재고가 남은 곳으로 가서 구매

신기한 건 국내 스타벅스 스테인리스 텀블러가 31000원인데 이거는 16000 ~ 20000원 사이에 판매하고 있었다.

 

가격도 싼데 빨대도 스테인리스. 게다가 빨대 세척솔까지 준다.

 

갠적으로 디자인도 이게 더 낫다.

 

포장
스테인리스 빨대와 세척솔
퍼플블루 텀블러
동봉된 설명서

 

텀블러 내부
뚜껑은 플라스틱이다. 그런데 상품정보에  보온 보냉도 된다고 써있었는데 문구는 온리 찬물만 된다고 한다
뚜껑
색감이 참 맘에 든다.
용량은 473ml

 

빨대와 같이 한 컷

 

이제 얼음에 물 타먹기 딱 좋은 날씨니 열심히 물을 먹어야겠다.

 

떨어뜨려도 찌그러질지언정 깨지진 않을테니 안심이 된다.

 

그런데 스테인리스 빨대 호불호가 갈리나본데 물 마실 때 쇠맛이 난다는 사람도 있었다.

 

개인적으로는 쇠맛이라기보다는 쇠향?이 좀 나는거 같긴한데 예민한 사람들이라면 느낄 수 있을 것 같다.

 

마시는데 방해가 될 정도는 아니었고 그게 싫다면 빨대만 바꿔서 쓰면 된다.

 

 

 

다빈치 리졸브 15.2.4 기준

 

크로마키 영상과 일반 영상 합성하는 방법

 

 

크로마키 영상은 Chroma key clips 또는 green screen으로 유튜브에서 검색시 무료 클립들을 받을 수 있다.

사용 조건도 확인 필수

크로마키 영상 선정시 곡선이 있는 영상보다는 각진 영상들로 하는게 깔끔하고 합성하기 편하다
(예를 들면 티비화면, 폰화면 같은 사각형으로 크로마키 영역이 되어있는 영상들)

이렇게 사각형으로 된 크로마키 영상들이 작업하기 편하다

 

 

 

어벤져스 인피니티워 개봉당시 메가박스에서 한정판으로 판매했던 메탈컵

 

 

구매당시 캡틴 아메리카 메탈컵

 

파란색으로 시원시원해서 찬물 마실 때 애용중이었지만 한번 떨어뜨렸더니 내부소재에 금이가서 물이 새고 있었다.

어쩐지 물이 없는데 찰랑찰랑 거리던게 이 때문이었다.

 

 

쓰다보니 생활기스도 많이 났다

 

더이상 이제 물컵으로 활용할 수 없어 무엇으로 써야 좋을까  고민하다가 딱히 용도는 떠오르지 않았고

그냥 장식용으로 써야겠다 싶어서 밋밋한 방패에 색을 입혀보기로 하였다

바로 이 방패!

 

손톱으로 긁어도 충분히 벗겨낼 수 있었다

 

 

도색을 벗겨낸 모습

 

더 이상은 무리..

 

철제 자와 각종 도구로 열심히 벗겨낸 작업 영상

 

이제 빨간색 네임펜으로 칠해주기만 하면 된다.

 

 

완성!

가까이서 보면 지저분하다. 그래서 장식용으로 두고 멀리서 보는게 좋겠다

 

작게보니 좀 낫다

 

확실히 색을 입히니 훨씬 멋있다

 

더 좋은 도구들이 있으면 깔끔하게 했을 것 같은데 없어서 더 이상은 역부족..

 

캡틴 아메리카 피규어라도 하나 사야되는가 싶다.

 

아이언맨과 건틀렛도 색을 입히면 예쁠 것 같다는 생각이 든다

 

 

 



요즘 급 빠져버린 토트넘 마그넷 모으기

우선 손흥민은 기본이고 엠블럼에 신구장 마그넷까지





신구장 마그넷은 나오자마자 품절되었따가 다시 입고 되었는데

얼른 구매했더니 금새 또 품절이 떴다.

그런데 우측에 좀 깨져있는건 아쉽..



챔스에서 우승하면 또 어떤 기념 마그넷이 나올진 모르겠지만 기대가 된다.

얼마 전 나왔던 챔스 열쇠고리도 살려고 했지만 또 매진이 되어버렸는데 재입고가 되었으면 좋겠다




 

 

AIA Vitality x T건강걷기 앱을 알고 난 이후부터 내 삶이 달라졌다.

걸음 수로 포인트만 채우면 통신요금 할인을 받을 수 있다니..

운동도 하고 할인도 받고 일석이조! 이걸 왜 뒤늦게 알았을까. 이 앱을 추천해준 친구에가 감사를 표한다

 

앱 설명 페이지 https://www.tworld.co.kr/poc/html/product/TS3.6.1T.1.html

 

T건강걷기 X AIA Vitality < 제휴혜택 | T world

SK텔레콤 고객만을 위한 '걷기 리워드 프로그램'입니다. "T건강걷기 X AIA Vitality 앱"을 통해 주간단위 걷기 목표를 달성하면, 보상으로 통신비 할인 및 다양한 혜택을 받을 수 있습니다. 단, [마케팅 활용을 위한 개인정보 수집 및 이용동의/ 개인정보 제공 동의]를 완료해야 주간미션 달성에 따른 혜택을 받을 수 있으며, 향후 AIA 보험 관련 마케팅 전화를 받을 수 있습니다. Google Play 또는 Apple App Store에서 T건강걷

www.tworld.co.kr

참고로 SKT사용자만 가능함

4가지 보상을 받을 수 있으나 통신비 할인이 가장 현명한 선택

 

미션은 매주 월요일부터 시작되며 일주일동안 진행되고 한달에 총 4번 도전 가능하며 할인도 중복으로 된다고 한다.

통신비 할인의 경우 다음달 청구요금에 바로 적용됨.

이런식으로 중복 할인도 가능

처음에는 250포인트를 달성해야 보상획득이 가능하며 하루 최대 100p 획득가능

단 7500걸음을 걸어야 50p, 12500 걸음을 걸어야 100p 획득 가능하다

목표를 달성하면 획득해야하는 포인트가 250p에서 300p , 350p 이런식으로 점점 늘어난다. 

최대 제한이 몇 포인트인지는 모름

 

참고로 7000 걸음을 걸어보았는데 영등포역에서 마포대교 끝까지 정도면 7000 걸음을 채울 수 있었다

 

 

평일은 출퇴근 하느라 7500걸음은 채울 수 있었는데 주말은 집에서 마냥 쉬고 싶었다. 

하지만 걸음 수는 채워야 하고 그렇다고 손으로 마냥 흔들고 있을 수도 없는 일

 

그래서 고안해낸 장치

30cm 자, 신발 끈, 폰 케이스로 만든 걷기 장치

물론 나는 걷지 않는다

 

고무줄을 생각했으나 마땅한 고무줄이 없었고 뒤적거리다 찾은 도구들로 만들어보았다

 

자를 책상에 끼워 자의 탄성을 이용한다

 

핑거스냅으로 자를 한번 튕겨주면 탄성으로 폰이 흔들린다. 그럼 걸음 수가 늘어난다.

 

 

시연 영상

 

한번의 핑거스냅으로 평균 4~50걸음을 획득할 수 있다.

 

그런데 사실 해보면 생각만큼 유용하진 않다. 왜냐하면 수시로 계속 튕겨줘야 하기 때문.

자동으로 계속 흔들어주는게 아닌 이상 결국 본인이 계속 해줘야 한다. 물론 팔로 흔드는 것 보단 편하겠지만.

 

 

 

 

 

 

삼성 무선충전배터리 EB-U1200 보러가기

https://yonoo88.tistory.com/1271

 

샤오미 보조배터리를 살까 하다가 어차피 갤10을 쓰고 있으니 같은 삼성으로 써보자 해서 구입

 

배송비 합쳐 18000원에 구입(정가 21000원)

 

EB-P1100 전면

 

재질은 플라스틱이 아닌 금속 느낌의 재질로 모서리에 폰이 긁힐 경우 기스가 날 수도 있을 것 같아 케이스를 씌우면 좋을 것 같다

 

10000 mAh의 용량이지만 실사용용량은 6300 mAh. 같은 용량의 샤오미는 7000mAh를 조금 넘는다고 한다.

배터리

삼성 공식 홈페이지 : https://www.samsung.com/sec/mobile-accessories/10000mah-battery-pack-eb-p110c/EB-P1100CPKGKR/)

  • 용량10000 mAh
  • 사용 가능 용량 (일반 충전)6300 mAh, 31.5 Wh
  • 사용 가능 용량 (고속 충전)3100 mAh, 27.9 Wh
  • 갤럭시S9 2.1 회 충전, 갤럭시노트9 1.6회 충전 가능

 

듀얼 충전도 가능한 2개의 포트

* 배터리팩 상단에 위치한 '배터리 체크' 버튼을 눌러 고속 충전 모드에서 듀얼 충전 모드로 변경하세요.
* 고속 충전은 하나의 기기를 충전할 때만 사용 가능합니다.
* 내장된 충전 케이블은 약 20 cm 길이의 Type-C 케이블로 1개만 제공됩니다. 
* 상기 이미지의 케이블 외 부속품은 연출용이며, 내장 케이블 외의 별도 케이블은 추가로 구매가능합니다.
별도로 판매 하는 케이블 사양은 국가별로 다를 수 있습니다.

 

배터리 체크 버튼을 누르면 듀얼충전모드로 변경이 가능하다는데

테스트해보니 딱히 안눌러도 2개의 기기 충전이 가능했다.

 

또 1개의 기기만 충전할 때도 눌러보았는데 고속충전은 유지되었다.

딱히 저 배터리 체크 버튼의 기능이 뭔지는 모르겠다.

 

배터리 잔량 표시

 

 

구성품은 20cm C 타입 케이블이 전부이다.

 

사이즈는 갤S10과 비슷한 크기이며

약 14cm x 7cm의 크기이다.

 

다른 제품으로 무선 충전도 지원하는 삼성 무선충전 보조배터리도 있는데 그건 5만원이 넘기 때문에

굳이 살 필요 없이 이걸로도 충분하다고 본다.

 

배터리 스펙

 

기본 코드는 이 링크를 참고하였습니다.

https://javaslave.tistory.com/78

 

POI Library를 이용한 Excel Read

Apache POI Grid 형태의 데이터를 핸들링 하는 화면에는 보통 '엑셀다운로드', '엑셀업로드' 버튼이 존재한다. 이를 구현하기 위해서 Apache에서 제공하는 POI 라이브러리를 이용하는 방법을 알아보도록 하자. Jav..

javaslave.tistory.com

 

POI 버전은 3.11을 사용하였습니다. (최신 poi 4점대 버전에서는 코드가 동작하지 않습니다)

poi 3.11 라이브러리 파일

lib (2).zip
7.51MB
lib.zip
3.21MB

용량 제한으로 압축파일 2개로 나뉘어 첨부함

 

사용 용도 

엑셀 내용( 확장자 xlsx 필수)
account.xlsx
0.01MB

위와 같은 엑셀 내용에서 각 열 별로 데이터를 긁어와 각 ArrayList에 저장함

로그인시

ID에는 ArrayList1.get(0)

암호에는 ArrayList2.get(0) 

이런 식을 1:1 매칭해서 로그인에 활용하는 단순 용도

총 6개의 ArrayList  선언 (액셀에 총 6개의 열이 있기 때문)

 

스위치 문에서 각 열마다 1개의 ArrayList에 값을 넣음

발생하는 문제점

첫 열의 개수에 따라 나머지 열의 개수가 결정됨

첫 열이 10개고 나머지 열이 20개,16개 등등 제 각기라면 첫 열 기준으로 모두 10개의 데이터만 가져오게 되는 문제가 존재함

 

전체 코드

package poi;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class POIReader {
    public static List<String> account1 = new ArrayList<String>();
    public static List<String> account2= new ArrayList<String>();
    public static List<String> account3 = new ArrayList<String>();
    public static List<String> account4 = new ArrayList<String>();
    public static List<String> account5 = new ArrayList<String>();
    public static List<String> account6 = new ArrayList<String>();
    
   /**
    * XLSX 파일을 분석하여 List<poi> 객체로 반환
    * @param filePath
 * @return 
    * @return
    */
   public static void xlsxTopoiList(String filePath) {
       // 반환할 객체를 생성
       FileInputStream fis = null;
       XSSFWorkbook  workbook = null;
       
       try {
           
           fis= new FileInputStream(filePath);
           // XSSFWorkbook은 엑셀파일 전체 내용을 담고 있는 객체
           workbook = new XSSFWorkbook (fis);
           
           // 탐색에 사용할 Sheet, Row, Cell 객체
           XSSFSheet curSheet;
           XSSFRow   curRow;
           XSSFCell  curCell;
//           poiList vo;
           
           // Sheet 탐색 for문
           for(int sheetIndex = 0 ; sheetIndex < workbook.getNumberOfSheets(); sheetIndex++) {
               // 현재 Sheet 반환
               curSheet = workbook.getSheetAt(sheetIndex);
               
               // row 탐색 for문
               for(int rowIndex=0; rowIndex < curSheet.getPhysicalNumberOfRows(); rowIndex++) {
                   // row 0은 헤더정보이기 때문에 무시
                   if(rowIndex != 0) {
                       // 현재 row 반환
                       curRow = curSheet.getRow(rowIndex);
//                       vo = new poiList();
                       String value;
                           // row의 첫번째 cell값이 비어있지 않은 경우 만 cell탐색
                       System.out.println("---"+curRow.getCell(0));
                       if(curRow.getCell(0) != null){ // 첫번째열 모자를 때 구분
                    	   if(!"".equals(curRow.getCell(0).getStringCellValue())) {
                               
                               // cell 탐색 for 문
                               for(int cellIndex=0;cellIndex<curRow.getPhysicalNumberOfCells(); cellIndex++) {
                                   curCell = curRow.getCell(cellIndex);
                                   
                                   if(true) {
                                       value = "";
                                       // cell 스타일이 다르더라도 String으로 반환 받음
                                       if(curCell != null){ //각 열의 목록 길이에 따라 분기
                                    	   switch (curCell.getCellType()){
                                           case XSSFCell.CELL_TYPE_FORMULA:
                                               value = curCell.getCellFormula();
                                               break;
                                           case XSSFCell.CELL_TYPE_NUMERIC:
                                               value = curCell.getNumericCellValue()+"";
                                               break;
                                           case XSSFCell.CELL_TYPE_STRING:
                                               value = curCell.getStringCellValue()+"";
                                               break;
                                           case XSSFCell.CELL_TYPE_BLANK:
                                               value = curCell.getBooleanCellValue()+"";
                                               break;
                                           case XSSFCell.CELL_TYPE_ERROR:
                                               value = curCell.getErrorCellValue()+"";
                                               break;
                                           default:
                                               value = new String();
                                               break;
                                           }
                                       }
                                       switch (cellIndex) {
                                       case 0: // name
                                    	   account1.add(rowIndex-1, value);
                                           break;
                                           
                                       case 1: // 암호                                	   
                                    	   account2.add(rowIndex-1, value);
                                           break;
                                           
                                       case 2: // 여기서 하나씩 분류
                                    	   account3.add(rowIndex-1, value);
                                           break;
           
                                       case 3: // 여기서 하나씩 분류
                                    	   account4.add(rowIndex-1, value);
                                           break;
                                           
                                       case 4: // 여기서 하나씩 분류
                                    	   account5.add(rowIndex-1, value);
                                           break;
                                           
                                       case 5: // 여기서 하나씩 분류
                                    	   account6.add(rowIndex-1, value);
                                           break;
                                       default:
                                           break;
                                       }
                                   }
                               }
                           }
                       }
                       
                   }
               }
           }
       } catch (FileNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
           
       } finally {
           try {
               // 사용한 자원은 finally에서 해제
               if( workbook!= null) 
            	   workbook.close();
               if( fis!= null) fis.close();
               
           } catch (IOException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
           }
       }
   }
}

 

 

깜빡 하면서 실행되지 않는다

최신 버전의 이클립스를 사용하다가 플러그인이 지원을 하지 않아 구 버전(Neon) 이클립스를 받아서 실행하였다

그런데 실행이 되지 않는다. 또 한참을 삽질을 했다.

이 현상을 해결하기 위해 구글링을 해보면 eclipse.ini 파일 수정하라는 얘기가 제일 많이 나온다

-vm 에 자바 경로를 추가해라..

java.se.ee 였나 이거 추가해라.. 등등이 있는데 전혀 해결되지 않았다

결론은 자바 버전이 문제였다

자바를 11.0.2 최신 버전을 설치했었는데 이게 이클립스 구버전에서 지원이 안되는 것이었나보다.

자바를 지우고 구버전 JDK 1.8.0을 설치하였따

그랬더니 단번에 해결..

오늘도 역시나 최신 업데이트는 함부로 하는게 아니라는 진리를 깨달았다..

+ Recent posts