분류 전체보기
-
Kotlin by keyword를 이용해 상속대신 Delegation을 해보자프로그래밍/Kotlin 2019. 9. 3. 14:02
이 문서는 아래 문서인 [Kotlin “By” Class Delegation: Favor Composition Over Inheritance] 을 번역, 보강한 문서이다. https://medium.com/rocket-fuel/kotlin-by-class-delegation-favor-composition-over-inheritance-a1b97fecd839 Kotlin “By” Class Delegation: Favor Composition Over Inheritance When people ask me why I choose Kotlin over Java, I often say, “Because Kotlin is a better Java.” You get more than half of Effecti..
-
OpenGL 끄적임 - FrameBufferGraphics/OpenGL ES 2.0 2019. 7. 7. 19:20
Graphics Fundamantals Modeling → Rendering Modeling What to Draw modeling is the process of developing a mathematical representation an inanimate or living object. ex) where is the position of the triangle. Rendering How to Draw rendering is about taking the actual box and displaying it realistically or placing it into a realistic setting. ex) where is the light, where is the position of the cam..
-
OpenGL 끄적임 - Image CropGraphics/OpenGL ES 2.0 2019. 5. 17. 18:19
Requirement crop the texture into the rect. How to change the texture vertices. change the projection matrix. change the glsl. Texture vertices It is quick and the easy way. Load Texture -> Mapping Texture. Load Texture -> Mapping Texture with stretched vertecies. Issues But when add the other textures, also change those vertices. The direction of the texture coordinate is different to what I th..
-
Kotlin Coroutine Basic프로그래밍/Kotlin 2018. 11. 4. 18:28
이러한 극단적인 콜백지옥 코드를 fun requestTokenAsync(db:(Token) -> Unit) {} fun createPostAsync(token:Token, item:Item, cb:(Post)->Unit) {} fun processpost(post:Post) {} fun postItem(item:Item) { requestTokenAsync { token -> createPostAsync(token, item) { post -> processPost(post) } } } 코루틴을 사용하면 아래와 같이 바꿀 수 있다. (참조 : https://www.youtube.com/watch?v=_hfBv0a09Jc) suspend fun requestToken(): Token{} suspend fu..
-
[Tensorflow설치] Python version 문제 (Mac)프로그래밍/Machine Learning 2018. 9. 16. 13:54
텐서플로 설치할 때, 파이썬 버전이 안맞아서 제대로 동작하지 않는 문제가 있다.현재로서는(20180916) 파이썬 3.4.0이 제일 잘 설치되고 동작한다. 맥에서 파이썬 버전을 번경하려면 재설치보다는 pyenv의 사용을 권장한다.pyenv는 기존의 파이썬 버전에 영향을 주지 않고 같은 맥 환경에서 여러 버전의 파이썬을 사용할 수 있도록 도와준다. (가상환경 같은 것이다) 아래 명령어로 텐서플로 설치 완료! 동작 완료! $brew update$brew install pyenv$echo 'eval "$(pyenv init -)"' >> ~/.bash_profile$source ~/.bash_profile $mkdir virtual_env$cd virtual_env/$pyenv install 3.4.0$pye..
-
OpenGL 끄적임 - 4. Adding color and ShaderGraphics/OpenGL ES 2.0 2018. 6. 17. 20:04
챕터4. 색상과 명암 추가 실제 생활에서 물체는 다양한 색상과 명암을 가지고 있다. 집에서 벽만 보더라도 햇빛이 어디를 비추냐에따라 명암이 달라진다. 우리의 두뇌는 이 명암과 색상 차이를 우리가 뭘 보고 있는지 이해하는데 이용한다. 이는 예술가들이 이용했던 기법이다. 우리는 이전 챕터에서 hockey table를 그리는데 점, 선 만 이용을 했는데 색과 명암도 스크린에 칠해보자. 이는 다른 예제에도 재활용할 수 있는 아주 쉬운 프레임워크이다. 물체에 단일컬러를 설정하기 보다는 여러가지 색상을 조합하는 법도 알아본다. 그라데이션 넣기 (smooth shading) 삼각형에 그라데이션을 넣으려면 어떻게 그려야할까? 하나의 삼각형 안에 수 백만개 삼각형으로 색을 표현한다고 한다면 오버헤드가 심할 것이다. 이 ..
-
GLSL - Attribute, UniformGraphics/GLSL 2018. 6. 17. 19:32
Qualifier - attributeattribute는 vertex shader에서 OpenGL에 전달되는 변수이다. 이 용도의 변수를 attribute가 아닌 타입으로 지정하면 에러가 발생한다. vertex shader가 연결되어있는 동안에는 read-only이다. 항상 function body 윗 부분에 선언한다. Qualifier - uniform read-only global 변수타입이다. https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.10.pdf
-
Google i/o 2018 - ExoPlayer 2.8프로그래밍/Android 2018. 6. 6. 20:20
MediaPlayer for Android and across all different devicesAPI Level >= 16Open source in GithubUsed in 200,000 appsadvanced functionalitycaching and offline to their application ExoPlayer's extension modules with Google API (MediaSession, Cast, Interactive Media Ads)2.8.0https://github.com/google/ExoPlayer/releases Exo-Player-Core, Exo-Player-Ui extension-Ima Audio Player with Notification extensio..