Ubuntu 14.04에서 Oracle Java JDK 설치 

Ubuntu에서 Java를 설치하려면 Open JDK가 기본 선택을 설치됨. 그러나 Oracle JDK를 설치하려면 아래의 명령어(command)를 입력하여 설치해야함.

sudo apt-get update
sudo apt-get -y install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java8-installer
sudo update-java-alternatives -s java-8-oracle
sudo apt-get install oracle-java8-set-default


Buy me a coffeeBuy me a coffee

The Guts of Unicode in Python 

- PyCon 2013 talk by Benjamin Peterson


Summary

This talk will examine how Python's internal Unicode representation has changed from its introduction through the latest major changes in Python 3.3. I'll present properties of the current Unicode implementation like algorithmic complexity and standard compliance. The talk will also compare Unicode in Python with some other languages. Finally, I'll look into the future of Python's Unicode.


Buy me a coffeeBuy me a coffee

Python의 CJK(Chinese-Japanese-Korean,동아시아문자처리) 라이브러리 정리


1. Cjklib 0.3.2 

Homepage: http://cjklib.org/0.3/

Python Package Index: https://pypi.python.org/pypi/cjklib/0.3.2


2. cjktools 1.6.0

Homepage: https://pypi.python.org/pypi/cjktools

Github: https://github.com/larsyencken/cjktools/


위의 2개의 CJK라이브러리를 조사해본 결과, Python2기반으로 작성되었으나, Python3로 변환되지 않았음.

cjklib의 경우는 중국어 중에서 만다린(보통화, 북경어), 상하이어, 광동어(홍콩어), 일본어, 한국어에 대한 지원이 있음을 확인했으나, 라이브러리 사용이 어렵게 느껴짐을 확인.


cjktools의 경우는 중국어와 일본어만 다루기 때문에 CJK(Chinese-Japanese-Korean)의 Korean이 없다는 것을 확인.


위의 라이브러리가 Python3로 변환되지 않은 것을 보고, 이번에 Python3를 공부할겸, Python3의 문자열 처리 및 Unicode Consortium의 unihan database 내용을 확인해보겠습니다.


CJK(Chinese-Japanese-Korean)의 개발에 대한 내용은 Adobe에서 활동하는 Ken Lunde의 책 "CJKV Information Processing"을 참조하여, 사용하기 편한 Python3 라이브러리를 만들어볼 계획입니다.

 

아래는 Python CJK라이브러리 조사전에 CJK에 관심을 가지게 된 트윗글



“Genuine Han Unification is not outside the realm of extreme possibilities.”— Fox William Mulder, FBI Special Agent

슬라이드의 마지막장에 있는 의미심장한 문구




Buy me a coffeeBuy me a coffee

2016년 1월 7일, Amazon에서 AWS Seoul Region(서울 리젼) 설립을 발표하였습니다.




위의 발표공지를 보고나서, AWS Seoul Region의 Latency와 AWS Tokyo Region의 Latency를 측정해보았습니다.

측정은 Apache ab와 nginx를 이용하여 다음의 링크를 사용하여 측정했습니다.



AWS Tokyo Region 

 # ab -n 10 -c 1 http://**.**.**.**/index.html

This is ApacheBench, Version 2.3 <$Revision: 1706008 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/


Benchmarking **.**.**.** (be patient).....done



Server Software:        nginx/1.9.9

Server Hostname:        **.**.**.**

Server Port:            80


Document Path:          /index.html

Document Length:        612 bytes


Concurrency Level:      1

Time taken for tests:   0.848 seconds

Complete requests:      10

Failed requests:        0

Total transferred:      8440 bytes

HTML transferred:       6120 bytes

Requests per second:    11.79 [#/sec] (mean)

Time per request:       84.805 [ms] (mean)

Time per request:       84.805 [ms] (mean, across all concurrent requests)

Transfer rate:          9.72 [Kbytes/sec] received


Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:       40   42   1.3     42      45

Processing:    41   43   1.2     43      45

Waiting:       41   42   1.2     42      45

Total:         82   85   1.8     84      88


Percentage of the requests served within a certain time (ms)

  50%     84

  66%     85

  75%     85

  80%     87

  90%     88

  95%     88

  98%     88

  99%     88

 100%     88 (longest request)

AWS Seoul Region

 # ab -n 10 -c 1 http://**.**.**.**/index.html

This is ApacheBench, Version 2.3 <$Revision: 1706008 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/


Benchmarking **.**.**.** (be patient).....done



Server Software:        nginx/1.9.9

Server Hostname:        **.**.**.**

Server Port:            80


Document Path:          /index.html

Document Length:        612 bytes


Concurrency Level:      1

Time taken for tests:   0.172 seconds

Complete requests:      10

Failed requests:        0

Total transferred:      8440 bytes

HTML transferred:       6120 bytes

Requests per second:    58.14 [#/sec] (mean)

Time per request:       17.201 [ms] (mean)

Time per request:       17.201 [ms] (mean, across all concurrent requests)

Transfer rate:          47.92 [Kbytes/sec] received


Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        7    9   1.3      9      11

Processing:     6    8   2.2      8      14

Waiting:        6    8   2.2      8      14

Total:         14   17   2.4     17      22


Percentage of the requests served within a certain time (ms)

  50%     17

  66%     18

  75%     18

  80%     19

  90%     22

  95%     22

  98%     22

  99%     22

 100%     22 (longest request)



AWS Tokyo Region Avg. Latency

 87.11111111(ms)

AWS Seoul Region Avg. Latency

 20.22222222(ms)


AWS Seoul Region 의 Latency와 AWS Tokyo Region의 Latency를 비교하니 AWS Seoul Region이 훨씬 빠르다는걸 체감하였습니다.

이후 다운로드 전송량 측정을 해보아도 AWs Seoul Region이 빠르다는 것도 확인하였습니다.


AWS Tokyo Transfer Rate

 9.72 [Kbytes/sec] 

AWS Seoul Transfer Rate

 47.92 [Kbytes/sec]


측정결과 AWS Tokyo와 AWS Seoul간의 엄청난 속도차이를 경험하였고, AWS Tokyo Region의 사용료보다 AWS Seoul Region의 사용료가 조금 더 저렴하다는 걸 보고 깜짝 놀랐습니다.


Tokyo 보다 접근 속도가 빠르면서, Tokyo보다 저렴한 Seoul을 사용해야겠다는 결론을 내렸습니다.


기존에 AWS Tokyo Region에서 생성한 인스턴스(Instance)를 AWS Seoul Region으로 옮기는 작업을 진행하였습니다.


AWS Tokyo Region(도쿄/東京 리젼)의 인스턴스를 AWS Seoul Region(서울 리젼)으로 옮기는 방법

이 방법은 

위의 링크를 참조하였습니다. 위의 링크에 있는대로 따라하니 문제 없이 Tokyo Region의 Instance가 그대로 Seoul Region의 Instance로 옮겨지고, 정상작동함을 확인함.


1. AWS Tokyo Region EC2 Instances 메뉴 

옮길려는 인스턴스의 속성 메뉴에서 Create image(EBS AMI)함.

2. AMIs 메뉴 - 새로 만든 AMI 이미지로 Launch Instance 하고 기존에 생성한 Instance와 같은 사양의 Instance를 만든다.

3. Instances 메뉴 - 새로운 Instance가 Running 되면 Instance의 속성 메뉴에서 Stop 한다.

4. Volumes 메뉴 - Instance에 연결된 볼륨의 속성 메뉴에서 Create Snapshot 한다.

5. Snapshots 메뉴 - 새로 만든 스냅샵의 속성 메뉴에서 Copy Snapshot 한다. 

6. 팝업창에서 Destination region 항목에 Seoul Region을 선택한다.


7. AWS Seoul Region EC2Snapshots 메뉴 - Tokyo Region 에서 복사 된 스냅샷의 속성 메뉴에서 Create Volume from Snapshot 한다.

8. Volumes 메뉴 - 스냅샷으로 만든 볼륨의 Volume ID를 확인 한다.

9. Instances 메뉴 - Tokyo Region Instance 와 같은 사양의 Instance를 Launch Instance로 생성하고 Instance가 Running 되면 속성 메뉴에서 Stop 한다.

10. Volumes 메뉴 - Instance에 연결(sda1)된 볼륨의 속성 메뉴에서 Detach Volume 하고 Instance에서 볼륨을 때어낸다. Tokyo Region의 스냅샷으로 만든 볼륨을 속성 메뉴에서 Attach Volume 한다. 

팝업창에서 Instance 항목에 해당 Instance를 선택하고, Device 항목에  "/dev/sda1"으로 수정한 다음 Yes, Attach 해서 볼륨을 붙인다.

12. Instance 메뉴 - Stop 되어 있는 Instance를 Start 한다. Instance가 Running 되면 접속해서 확인한다.


이제 AWS Seoul Region이 생겼으니 Seoul Region을 애용해야겠습니다 ~_~

Buy me a coffeeBuy me a coffee

이번 SpringOne2GX 2015에 발표된 내용. 기존 Java코드(Legacy code)를 Java8으로 바꾸는 방법


Transforming Code to Java 8

Recorded at SpringOne2GX 2015. 

Speaker: Dr. Venkat Subramaniam 

The new facilities in Java 8 is about the change the way we write code. Our code will become more expressive and concise. But, exactly how?




Buy me a coffeeBuy me a coffee

이제 슬슬 Java8에 대하여 대응을 해야겠음. 그래서 Java8책을 정독하고 문서도 계속 읽어봐야겠음.


Spring Framework도 Java8을 사용할수 있다고 하니 미리미리 대응을 해야 겠음.

Spring Framework on Java 8


Speakers:Juergen Hoeller 

Core Spring Track

Spring has a track record of providing dedicated support for new Java generations in a timely fashion, and now it’s right about time to go Java 8: With Spring Framework 4.0, we're providing in-depth support for all relevant OpenJDK 8 features, including lambda expressions, JSR-310 Date and Time, parameter name discovery, and java.util.concurrent enhancements. This talk will illustrate basic Spring Framework 4.0 concepts, and selected Java 8 features within Spring's programming model, exploring the impact on application architectures.


슬라이드(Slide)



Buy me a coffeeBuy me a coffee


Facebook에서 돌아다니고 있는 2015년도에 정리한 무료로 읽을 수 있는 기술관련 전자책 링크가 화제입니다.




일본어 포스팅을 쭉 보다 보니, 영어로 된 좋은 전자책들이 무료로 풀린걸 대부분 정리한 것 같군요. 

일본어로 된 블로그 포스팅에 올라온 몇몇 전자책 다운로드 링크를 보고 다운로드 받아서 보고 있는데, 상당히 좋은 영어 원서 책들 링크를 잘 정리한 것 같더군요.

2016년도에는 영어 공부 하면서 기술 공부도 틈틈히 할 계획입니다.


추가로, 필요한 영역에 대한 전자책이 부족하다 생각하면 GitHub의 Awesome List 를 참조하면 됩니다. 

Github의 Awesome List는 다양한 분야에 대하여 정리된 자료들의 모음입니다. Github사이트에서 여러 사람들이 작성된 컨텐츠를 모으고 정리한 걸 공개하는게 유행이더군요.

저는 가끔씩 개발하다 막히는 부분이 있으면 GitHub의 Awesome list를 검색해서 개발 관련 정리된 글목록들을 보고 있습니다.

(대부분이 영어 컨텐츠, 한국어로 된 컨텐츠는 xguru님이 정리한 "대학생을 위한 웹 개발 공부용 체크리스트"목록을 참조하면 되지만 컨텐츠가 부족하다고 느낄수 있을 것입니다.)

jnv/lists  - https://github.com/jnv/lists 

The definitive list of lists (of lists) curated on GitHub

아래는 Github에 올라온 Awesome에 대한 정리를 한 목록입니다.

awesome-* - https://github.com/jnv/lists#awesome-

Xguru님께서 정리한 "대학생을 위한 웹 개발 공부용 체크리스트"

https://github.com/xguru/WebDevTutorial 


아래는 제가 예전에 블로그에 정리한 무료 전자책 링크입니다


Buy me a coffeeBuy me a coffee

SpringOne2GX 2015에 발표된 자료입니다.

Modern Java Component Design with Spring Framework 4.2


슬라이드(Slide)



Buy me a coffeeBuy me a coffee

스프링 부트와 로깅(Spring boot and logging) 슬라이드


Buy me a coffeeBuy me a coffee

스프링 시큐리티로 시작하는 웹 어플리케이션 보안  슬라이드

 

Buy me a coffeeBuy me a coffee

+ Recent posts