안드로이드 이북 리더 추천 Koreader

koreader 는 kindle kobo 와 같은 ebook에 설치해서 사용하는 e-ink 플랫폼용 앱이다

안드로이드용 버전도 있어 이북과 타블렛을 왔다갔다 하면서 읽을 수 있다. 페이지 싱크가 된다.

특히 내가 좋아하는 기능은 흐리게 스캔된 책의 검정 글씨를 좀 더 진한 색으로 바꾸어주는 darken 기능인데 아무래도 e-ink 리더의 흑백을 고려한 기능인데 굉장히 유용하다

우리집 통신 요금 계산 및 청구서 (총 월 9.6만원)

집에서는 일단 100메가 인터넷으로 아주 만족스럽게 사용 중.

다만 wifi 음영 지역이 있어서 개선해야 한다.

인터넷/TV/전화

한달 통신비

  • 스마트광랜다이렉트 34,490 -> 16,390
  • 인터넷전화Wifi폰 16,000 -> 5,500
  • Btv_D실속형 5,000 -> 2,200
  • 전체 55,000 -> 24,090

휴대폰

첫째가 초등학생이 되어 SKT 사용을 시작하면서 내가 결합할인 이득을 독차지 하고 있다.

나름 무제한 3G 인데 (54요금제) ㅋㅋ 월 11380원이라니

폰은 중고로 mi4c 사용

첫째는 쿠키즈 요금제로 14,850원을 내고 있고

아내는 일반적(?)인 LTE 사용자로 46000원 정도 낸다고 하니

우리 온가족 통신 요금은 9.6 만원인 셈이다.

stride 도입 기념 action / decision 뭔지 확인.

회사에서 stride 를 외부망 (인터넷망) 채팅 프로그램으로 도입했다. 빠른 소통을 위한 것이라고 한다. 보통 채팅은 email 이나 bug tracker 에 비해서 “유실” 될 가능성이 높은데 기업형 메신져를 도입하면 그 대화 내용이 중앙 보관되므로 이론상 기록이 남는다.

slack은 월 8달러/인당, stride는 월 3 달러/인당

채팅과 기록의 의미라면 stride가 저렴한 듯? 채팅창에 몇가지 기능이 있는 것 같아 살펴 보았는데 결론부터 얘기하면 별거 없다.

action / decision 개요

https://www.stride.com/blog/stride-actions-decisions 이 문서에 의하면

action 과 decision 은 많은 대화속에서 중요한 대화를 찾기 위해서 만들어졌다. 당신은 action 또는 decision 을 통해 대화의 일부를 추출해 낼 수 있다. 그러면 이러한 것은 하이라이트로 들어가게 되고 누구나 언제나 참고 할 수 있게 된다. 그래서 채팅 전체 내용을 훑어보며 중요한지 아닌지를 판가름 할게 아니라 명시적으로 하이라이트 할 수 있게 해준다. 그리하여 채팅룸을 스마트 콜라보로 승화시킬 수 있다. 그렇지만 액션과 디시전은 단순히 하이라이트 하는 것만은 아니다. 다양한 방법으로 효과적으로 사용할 수 있다. 보통 액션은 특정 팀원에게 할당하는데 사용하고 디시전은 긴 토론을 요약하게 하고 그 결과를 공유하게 한다. (공지사항 같은 개념?)

어떻게 쓰는가?

action / decision 이 뭔지 알았으면 슈퍼 프로덕티브 하게 써보자. 2가지 방식으로 만들 수 있다.

  1.  메세지 위에 마우스를 올리고 대화 우측에 … 메뉴를 클릭해서 만든다. (만들 때, 사용자를 assign 하면 최고!)
  2.  아니면 그냥 대화창에서 직접 만들어라

모든 action / decision 을 확인하고 있으면 대화창 우측에 하이라이트 버튼을 클릭해라.

액션이 클릭되어서 마킹 되면, 그 내용도 채팅창에 들어가서 누구나 알게 된다.

언제 쓰는가?

actions 과 decision 들은 채팅 참여자들의 재량이다. 모든 팀은 각자 적절하게 room 이 만들어져 있을 것이다.

Action

  • 이슈를 검토하고 팀메이트에게 이슈를 할당한다. 이슈가 해소되면 박스를 클릭하면 된다.
  • 일이 완료 되었음이 동료에게 알려진다.
  • 이러한 결과를 decision 을 만들어서 중요 공지를 한다.

Decision

  •  하루 일과 및 목표를 하이라이팅 한다.
  •  중요 토론의 결과를 알린다.
  •  일과 종료시 하루 리포트를 전파하고 다음 목표를 정한다.

결론

의미를 찾아내려고 했으나 찾아낼 수가 없다.

Admin 이 개인간 대화도 볼 수 있는가 알아보니

private 방은 그 chat log를 볼 수 없고 일반 1:1 대화는 볼 수 있다.

 

 

java stream parallel 을 이용한 Thread 병렬 처리와 몇개의 core 갯수만큼 병렬 처리 하는지 확인

CPU 가 논리 코어가 16개인 AMD ryzen 7 을 사용하는데 다음의 코드를 이용하면 thread 갯수별로 각 test 가 작동하는데 걸리는 시간을 측정해 볼 수 있다.

package test.test;

import java.util.stream.IntStream;

import org.junit.Test;

public class PararrelTest {
	@Test
	public void test64SleepThread() {
		IntStream.range(1, 64).parallel().forEach(nbr -> {
			try { Thread.sleep(1000); } catch (InterruptedException e) { }
		});
	}

	@Test
	public void test32SleepThread() {
		IntStream.range(1, 32).parallel().forEach( nbr -> {
			try { Thread.sleep(1000); } catch (InterruptedException e) { }
		} );
	}

	@Test
	public void test16SleepThread() {
		IntStream.range(1, 16).parallel().forEach(nbr -> {
			try { Thread.sleep(1000); } catch (InterruptedException e) { }
		});
	}

	@Test
	public void test8SleepThread() {
		IntStream.range(1, 8).parallel().forEach(nbr -> {
			try { Thread.sleep(1000); } catch (InterruptedException e) { }
		});
	}
}

테스트 결과와 같이
16코어로 16 x 4인 64개의 Thread를 1초씩 재우면 총 4초가 걸리고 (16개가 동시에 1초씩 쉰다.)
32개의 Thread는 2초가
그리고 16개와 8개는 1초씩 쉬게 된다.

eclipse neon 이후의 경로 분리 %userprofile%\.p2 (The Eclipse executable launcher was unable to locate its companion shared library.)

The Eclipse executable launcher was unable to locate its
companion shared library.

eclipse 의 폴더 용량이 이상하게 작아서 보니 shared library 라고 해서 eclipse 버전별로 공용으로 쓸 수 있는 라이브러리들을 마치 메이븐의 .m2 디렉토리와 같이 한곳에 모아두나보다.

%userprofile%\.p2 경로에 가보면 왠만한 플러그인들이 여기 옹기종기 모여있다.
원래 eclipse 폴더가 200~300 메가 되었는데
신버전의 eclipse 는 20~30 메가 정도 밖에 안된다. 이런 형태의 폴더 운영은 애플 진영에서는 싫어 하지 않나 ㅋㅋ

아. SI 초기에 Eclipse 폴더를 zip으로 압축해서 전해주던 방식은 어떻게 바뀌었을까? 왠지 그립다.

Eclipse 4.8 Photon 의 새로운 기능들

 

Eclipse 4.8 Photon 의 기능 을 정리해본다.

java 10 의 지원

var 변수를 지원한다.

String s = new String(“hello World”);

var x = s;

java 10은 var가 String 이라고 판단한다.

Eclipse 는 var에 대한 Quick Assist 로 “change var to String” 등을 지원하고 그 역방향도 지원한다.

java 9의 지원

참고로 Eclipse 4.7 Oxygen 은 java 9을 지원하지 않는다. java 10도 지원하는데.. 매년 6월에 새로운 릴리즈가 나오는 Eclipse. 이 속도를 java 가 따라잡으려 하는건가?

java 9은 module 구문과 모듈러 기능을 지원한다.

Configuring the Contents of a module container

Junit 5.1 의 지원

junit 5.1의 jupiter test를 지원한다.

@Nested 테스트 케이스의 지원 중첩된 테스트를 구조적으로 할 수 있다.

Java Editor의 강화

case 구문의 ctrl+click 지원

case 클릭시 switch 시작점으로 이동

non-ASCII characters 붙여 넣기시 보정 지원

가끔 한글 주석이 깨진채로 소스 저장시 저장할 수 없다는 에러가 나오던데 이것을 해결할 수 있는 방안이 나온 것 같다.

어두운 테마 컬러링 강화

컬러링이 기본적으로 강화된 것도 환영하지만

요상하게 가독성 안 좋던 것들도 해결되었다고 한다.

before

Java Views and Dialogs

Test 소스 아이콘 구별 개선 / 모듈러 지원

소스 폴더가 테스트인지 아닌지 아이콘으로 구별 가능

java 9 의 모듈러 기능을 테스트 코드 부분에 적극 대응한 것 같다.

라이브러리의 알파벳 순 정렬

어머 왠일이니! 친절도 하셔라

Java Compiler

java 9 의 Module 부분을 정규 표현식으로 검색

text search 말고 이제 java search 써볼까..

New formatter 의 많은 부분

탭이 너무 많았던 formatter 설정부

엄청난 포멧팅의 개선

Align descriptions, grouped by type

클리닝 액션

소스에서 필요 없는 구문을 찾아서 자동 삭제 해준다.

Debug의 개선

오.. 가장 기대 되는 부분이다!

프로토타입

Prototype Java Launch Configuration

Test 시 파라미터들을 세팅하고 선택적으로 실행해 볼 수 있다.

Advanced Source lookup

method exit breakpoint / exception breakpoint

익센션 발생시에 브레이크 포인트 발생?! 킹왕짱 좋네.

“메소드 나갈때” 라는 브레이크 포인트가 있어 리턴 밸류를 보기 완전 좋아졌다.

Display View 의 이름이 Debug Shell 로 바뀜

사용 할 때마다 느겼던 그것

이게 왜 display 라는 탭 이름을 가지고 있을까 했던 그것.

Debug Shell

특정 포트를 사용하는 프로그램이 뭔지 알아내기

가끔 내가 사용하고자 하는 포트를 다른 프로그램이 선점하는 경우가 있다. 그 포트를 사용하는 프로그램이 무엇인지 어떻게 알 수 있을까?

windows 에서는 다음의 명령으로 가능하다.

>netstat -a -n -p tcp -b

핵심은 -b 에 있다.

-b : 연결 프로그램 정보 출력 (이 옵션을 쓸 경우 관리자 권한이어야 한다.)

-a는 모든 것을 보여주는데 보통 Listening , 대기 중인것은 생략되기 때문에 꼭 적어주어야 모든 포트 정보를 볼 수 있다.

-n 은 숫자 형태로 정보를 표시하라는 것이고 -p tcp 는 tcp 프로토콜을 사용하는 것을 보여주라는 의미이다.

 

 

 

git 2개의 branch 에 merge된 branch 들의 목록 비교 하는 방법

아래의 스크립트를 git-bash 에서 실행시키면 두 branch 간에 merge 된 branch 차이점을 볼 수 있다.
아래의 예에서는 PROD와 STG 사이에 적용된 branch 들이 차이점을 훑어볼 수 있다.

git checkout STG
 
for k in `git branch -a --no-merge | sed s/^..//`; do echo -e `git log -1 --pretty=format:"%ci %cn" "$k"`\\t"$k"; done | sort -r > diffbranchA.txt
 
git checkout PROD
 
for k in `git branch -a --no-merge | sed s/^..//`; do echo -e `git log -1 --pretty=format:"%ci %cn" "$k"`\\t"$k"; done | sort -r > diffbranchB.txt
 
diff diffbranchA.txt diffbranchB.txt | grep 0900