글 목록 보기

Lyn
조회 수 24 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

Lyn
조회 수 37 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. 본인의 수준

  • Python : 대충 그럭저럭 프로젝트 하는 수준 
  • 딥러닝 : 알파고가 뭔지는 아는 수준
  • 텐서플로 : 예제 코드 돌려본 수준
  • 수학 : 공대 1학년 수준의 지식만 있음

2. 썰

  • 딥러닝에 관한 이론과 실제 코드를 간단한 수학과 예제로 쉽게 설명 하고 있음. 내가 다른 머신러닝 관련 책을 보면서 첫페이지에서 부터 멘붕하게만들었던 어려운 수학 공식이 나오지 않는다(기껏해야 편미분 수준). 하나의 문제를 던진 후 해결방식을 제한하는 방식의 구성으로 소설처럼 쭉쭉 읽어 나갈 수 있었다. 고수준의 라이브러리(keras) 를 사용하면서 중간에 tf 만을 사용해 개념설명을 따로 해주는것도 좋았음.
  • 파이썬 관련 내용은 없다. 만약 프로그래머가 아니라 연구를 목적으로 이 책을 볼 경우에는 파이썬 기본 지식은 다른 책에서 배우고 와야 한다. 하지만 그리 어려운 코드가 나오지 않아 일단 무시해도 될듯
  • 지도학습에 대해서만 다룬다. 비지도학습이나 강화학습관련 내용은 없다. 이건 저자가 의대에서 연구중이라 그런듯
  • 이 책을 읽고나면 이정도면 나도 딥러닝 할수 있겠다는 근자감이 생긴다. 입문서로는 최고
  • 코드와 그래프에 색이 입혀져 있어 굉장히 가독성이 좋다. 

 

3. 점수

  • 4.5 / 5.0

4. 한줄평

  • 머신러닝은 천재들이나 하는거라고 생각하고 포기했던 나같은 사람에게 나도한번 해볼까? 라는 생각을 들게 만드는 좋은 책
?

Lyn
조회 수 85 추천 수 0 댓글 0
Atachment
첨부 '1'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1.PNG
 

 

  1.  본인의 수준
  •  Python : 대충 그럭저럭 프로젝트 하는 수준
  •  CUDA : 예전에 한번 프로젝트 진행 해본 수준
  •   Multi Thread / 비동기 : 전문가 수준

2. 썰

  • 일단 번역이 굉장히 어색해서 읽는데 거부감이 듬
  • 책 구성이 이상하다. 이슈를 던진 후 설명도 안하고 다음 예제로 넘어가는 식. 독자가 궁금해 할 만한 내용에 대해 제대로 설명이 안되어있다,  애초에 저자가 자기가 쓰고 있는 내용을 이해는 하고 있나 싶은 수준
  • 책 두께에 비해 너무 많은 내용을 다룬다. 키워드 하나 던지고 예제하나 보여주고 다음내용으로 넘어가는 식. 예제도 도움이 되는 내용이 없다
  • 역자는 학생이고, 저자도 책의 출간 시점을 생각하면 아마도 이 책도 졸업학기 내지는 졸업 직후 씌여진 것 같은데 좀 더 알고서 책을 썼으면 좋았겠다.

3. 점수

  • 1.0 / 5.0

4. 한줄평

  • 프로그래밍에 대해 쌩판 모르는데 키워드만 빨리 캐치하고 싶은 사람이 아니면 시간이 아깝다. 그런데 사실 이정도는 구글 검색만 해도 나온다.

 

 

?

Lyn
조회 수 36 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

요즘 심심해서 가끔 책을 빌려다 읽고 사진을 올렸더니 책이 어떠냐고 물어보시는 분들이 많아 ...

공부할 겸 독후감 겸 서평을 써볼까 합니다.

 

목표 : 100권. 1주일에 1~2권의 템포.

조건 : 출간 3년 이내의 회사 자료실에서 빌릴 수 있는 책

 

시작합니다.

?

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

ubuntu 18.04로 바꾼 이후 첫 인증서 업데이트할 타이밍이 되었는데...

 

$sudo certbot renew

를 실행하면

 

requested nginx plugin does not appear to be installed

와 같은 오류가 뜨면서 진행이 되지 않는다.

 

원인은 첫 설치시 certbot-nginx python 라이브러리가 설치되지 않은것인데. nginx의 conf 를 보면 managed by certbot 처럼 주석을 자동으로 달아놔서  마치 설치가 된 것으로 착각하게 만든다..

 

$pip install certbox-nginx 를 실행하여 라이브러리를 다시 설치하면 정상적으로 진행된다

 

 

?

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

놀것들 저장하는 서버로 전락해버렸네...

 

이걸 어째야하나 ...

?

Lyn
조회 수 230 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

우분투 LTS 버전 나온지 좀 된 김에 서버 옮김..

 

CentOs4 -> Windows 2008 -> -> Windows 2008 R2 -> Windows 2012 R2 -> Ubuntu 16.04 -> Ubuntu 18.04 로의 이전 프로세스를 밟은... 듯?

겸사겸사 인증서도 만료되어있길래 갱신..

 

?

Lyn
조회 수 285 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

닫을까 ...

?

2018.02.07 11:20

Kotlin 공부 후기

Lyn
조회 수 805 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

코틀린 혼자서 사용해 본 지 한달이 좀 넘은거 같아서 일단 느낀점 정리..

 

1. property 는 자바 Bean과 호환성이 있는건 좋다. 문제는 자바에서 만든 property 를 코틀린쪽에서 부를 때인데 setFoo / getFoo 를 호출 하는 것도 가능하고, 대입도 가능하다 보니 혼란이 온다...

 

1-2. 대체 안드로이드 API가 왜 이딴식으로 만들어져 있는지는 모르겠지만 ... set / get 이 아니라 set / is 로 매칭되는 애들이 많은데 이런 경우에는 코틀린에서 property 취급을 해주지 않아서 setFoo 를 호출해야 한다..

 

2. 이유는 모르겠지만 JVM 이 delegate를 지원하지 않고 (자바보다 먼저 나온 언어들도 되는건데 ㅡㅡ;) 인터페이스를 구현해서 넘기는 식으로 구현해 오니 생긴 사이드이펙트인데 자바의 lambda 와 마찬가지로 kotlin의 lambda 도 매소드가 하나인 interface 구현의 syntax suger 라서 여러개의 함수를 가진 인터페이스를 구현해서 넘겨야 하는 라이브러리들을 사용할때 별 도움이 안된다. (Ex : 안드로이드의 ViewPager.OnPageChangeListener 같은거...) 

 

3. Java는 기본이 상속가능 / 오버라이딩 가능인데 코틀린은 반대라서 기존 리플렉션을 이용하는 라이브러리를 사용하려면 기껏 언어의 안정성을 위해 설계한 기본을 무시하고 일일히 다 open 해줘야 한다. 특히 Spring 같은 유명 프레임워크를 사용할때 치명적이다.. (뭐 몽땅 open 해주는 후처리용 도구가 있다고 하는데 난 개인적으로 컴파일 끝난 다음에 바이너리를 수정하는 식의 도구 별로 안좋아한다..)

 

4. Java는 기본이 Nullable 인데 코틀린은 기본이 NotNull이라서 기존 라이브러리를 호출할 때 foo?.boo?.zoo 처럼 ?!의 향연이 되거나 foo!! 와 같은 연산자로 언어가 도배가 되기 시작한다.

 

5. 이름으로 Parameter 호출하는 기능이 Java로 만든 코드에서는 동작하지 않는다. (IntelliJ 에서는 예쁘게 이름 띄워 주는데 내가 쓰는건 안된다 =_=)

 

6. 아직 kapt 가 불안정한듯. clean 하고 나면 잘 되는경우가 많다

 

7. 내가 서버프로그래머라서 그럴지 모르겠는데 NotNull이 막상 써보니 그다지 메리트가 없다. 무의미한 값이 나타나는 것 보다는 차라리 죽어주는게 버그를 빨리 찾아주는 것 같다

 

7-2. NotNull이 코틀린의 스펙일뿐 VM 에서 전혀 지원 하지 않다보니 리플렉션을 통해서 Null을 넣어버리면 NullPointerException 이 뜬다 (심지어 코틀린 입장에선 익셉션 발생 하기 전에 체크도 못한다... 어쩌라고) 문제는 데이터를 다루는 많은 라이브러리들이 그렇게 한다는거다

 

8. 확장 함수는 정말 편하다... Delphi 쓰던 시절부터 C#을 쓰는 지금까지 애용하던 기능. C++에서도 Mixin 같은 기법을 이용해서 많이들 썼었는데..

 

9. TypeSafety는 JVM의 한계 때문인지 별로 나아진게 없다

 

https://realm.io/products/realm-database/ 와 https://realm.io/blog/realm-4-3-0-released-w-first-class-support-for-kotlin/ 

에서 가져온 예제코드를 언어별로 보면

 

C#의 경우 Name 이라는 변수명을 컴파일타임에 체크 할 수 있다.(사실 linq 를 지원해도 되는데 relam 이 안하는거같다... 사실 앱스토어의 제약때문에 linq의 기능중 일부가 먹통이라 일부러 뺐을수도 있지만... iOS 지원할 안할경우엔 편한데)

var dogs = realm.All<Dog>().Where(d => d.Name.Contains("Fido"));

 

자바의 경우는 

RealmResults dogs = realm.where(Dog.class).in("name", new String[] {"Larry","Curly","Moe"}).findAll();

 

코틀린의 경우도 

val dogs = realm.where<Dog>().in("name", arrayOf("Larry", "Curly", "Moe"))

 

처럼 "name" 이라는 변수가 문자열로 넘어가게 되어 오타와 같은 실수에서 자유롭지 못하다

 

10. 자바쪽 라이브러리에서 type을 사용해야 할때 Foo::class.java 처럼 추가적인 키워드를 넘겨줘야 하는건 귀찮다... java라는 이름을 볼 때 마다 커피가 땡긴다.

 

11. var, val 은 편하다. 일단 type 추론을 해줘서 길고 긴 클래스명 안써도 된다는건 기본이고, mutable 과 immutable 을 구별 해 놓은것은 실수를 방지하는데 큰 도움이 된다. 문제는 이것도 Reflection을 사용하는 라이브러리에 변수가 넘어가면 사실상 무의미하다는거다 =_=;

 

결론 : 코틀린 언어 자체는 괜찮다. 난 C#이 최고의 언어라고 생각하고 있는데 만약 JVM 위에서 개발 해야 하는데 java는 병신같아서 못쓰겠다면 scala 보다는 kotlin 이 좀 더 나은선택이라고 생각한다. 일단 제작사가 개발툴회사다보니 지원이 빵빵하고, 안드로이드의 공식 언어이기도 하니 확실하게 써먹을만한 플랫폼도 있다.

 

하지만 현실적으론 안드로이드가 아닌 다른 용도로 쓸 거라면 좀 더 고민을 해야할 것 같다. ORM도 아직 JetBrain 에서 만드는 Exposed 조차 알파버전 수준이고 웹프레임워크인 ktor 역시 마찬가지다. java 와의 차이점 때문에 기존 java 라이브러리나 프레임워크를 쓰려면 불편함이 많은 상태에서(scala 보단 낫지만) kotlin 으로 만들어진 베이스 코드가 없다는건 치명적이다. play framework 라는 걸출한 킬러어플리케이션이 있는 scala와는 차이가 심하다. 물론 모든 코드를 밑바닥부터 직접 다 만들어서 쓸 거라면 아무 상관 없겠다.

 

fin

 
TAG •
?

Lyn
조회 수 520 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Original : https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-selecting-the-jdk-version-the-ide-will-run-under?page=3

 

 

Windows

JDK (JetBrains Runtime) is bundled with all the product installers and it's recommended that you will use the provided JDK version unless there are any specific issues. Since 2017.1 version 64-bit JDK is bundled by default on all the systems (32-bit JDK can be downloaded on Windows by the installer if needed).

JetBrains Runtime (based on OpenJDK) can be also downloaded separately, but you normally don't need to do it. 

<product>.exe uses this JDK search sequence:

  1. IDEA_JDK / PHPSTORM_JDK / WEBIDE_JDK / PYCHARM_JDK / RUBYMINE_JDK / CLION_JDK / DATAGRIP_JDK environment variable (depends on the product, WEBIDE_JDK applies to both WebStorm and PhpStorm before version 2016.1)

  2. idea.config.path\<product>.jdk file
  3. ..\jre directory
  4. system Registry
  5. JDK_HOME environment variable
  6. JAVA_HOME environment variable

<product>64.exe uses this JDK search sequence:

  1. IDEA_JDK_64/ PHPSTORM_JDK_64 / WEBIDE_JDK_64 / PYCHARM_JDK_64 / RUBYMINE_JDK_64 / CLION_JDK_64 / DATAGRIP_JDK_64 environment variable
  2. idea.config.path\<product>64.jdk file
  3. ..\jre64 directory
  4. system Registry
  5. JDK_HOME environment variable
  6. JAVA_HOME environment variable

It’s also possible to start the IDE with <product>.bat file located in the bindirectory, it uses the following JDK search sequence:

  1. IDEA_JDK / PHPSTORM_JDK / WEBIDE_JDK / PYCHARM_JDK / RUBYMINE_JDK / CLION_JDK / DATAGRIP_JDK environment variable (depends on the product)
  2. idea.config.path\<product>64.jdk file
  3. idea.config.path\<product>.jdk file
  4. ..\jre64 directory
  5. ..\jre directory
  6. JDK_HOME environment variable
  7. JAVA_HOME environment variable
Environment variable must point to the JDK installation home directory, for example:
c:\Program Files (x86)\Java\jdk1.8.0_112
  • The actual JDK version used by the IDE can be verified in Help | Aboutdialog (open any project to access the menu).
  • Define IDEA_JDK / PHPSTORM_JDK / WEBIDE_JDK / PYCHARM_JDK / RUBYMINE_JDK/ CLION_JDK / DATAGRIP_JDK variable depending on the product to override the default version from IDE_HOME\jre.
  • Use Rapid Environment Editor to add/edit the variables, it will detect incorrect paths.
?

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14