본문 바로가기

Programming177

Square roots with Newton's method - Coursera ppt 번역 Task 이번 세션에서는 아래의 함수를 정의할 것이다. def sqrt(x: Double): Double = ... Newton's method를 이용하여 연속적인 호출로 값을 추산할 것이다. Method sqrt(x)를 계산하기 위해서는 - 초기 값 y와 함께 시작이 되어야 한다.( 초기 y 값을 1이라고 정의하자.)- y의 평균 값과 x/y 값을 반복적으로 계산함으로써 값의 추정을 향상시킨다. Example: x가 2일때, 추정값 몫 평균1 2/1 = 2 1.5 ( (1 + 2) / 2)1.5 2/1.5 = 1.333 1.4167 ((1.5 + 1.333) / 2)1.4167 2/1.4167 = 1.4118 1.4142 ((1.4167 + 1.4118)/2)1.4142 ... ... Implement.. 2015. 12. 28.
Conditionals and Value Definitions - Coursera 강의 ppt 번역 Conditional Expressions 두 가지의 대안 중 하나를 선택하기 위해서 scala에서는 if-else라는 conditional expression을 사용한다.자바의 if-else와 유사하게 보이지만, statements가 아닌 expression의 용도로 사용한다. statements와 expression의 차이- statements는 컴퓨터에게 어떤 동작이나 지시를 내리기 위한 명령문 형태인 반면에 expression은 어떤 값을 산출해내기 위한 함수나 연산자의 조합을 말한다. statements에서는 side effect가 발생하는 반면 expression은 side effect를 발생시키지 않는다고 한다. 자세히 어떤 차이인지 잘 모르겠다. ex)def abs(x: Int) = if .. 2015. 12. 25.
Evaluation Strategies and Termination - Coursera 강의 ppt 번역 Call-by-name, Call-by-value and termination 지난 시간에 call-by-name과 call-by-value 전략에 대해 간략히 살펴보았다.그런데 만약 종료 조건이 보장이 안된다면 어떻게 할까? 아래의 명제는 반드시 보장이 된다. - 만약 call-by-value가 종료된다면, call-by-name 역시 종료가 된다. Scala's evaluation strategy Scala는 일반적으로 call-by-value를 실행한다.그러나 만약 함수 파라미터의 타입이 =>로 시작한다면 이는 call-by-name을 실행하겠다는 의미가 된다.ex)def constOne(x: Int, y:=> Int) = 1 constOne(1 + 2, loop) Vs constOne(loop, .. 2015. 12. 24.
Elements of Programming - Coursera 강의 ppt 번역 Elements of Programming 대다수의 중요한 programming 언어에서는 아래의 요소들을 제공한다. - 가장 단순한 element를 표현할 수 있는 기본 표현법- 표현을 결합하기 위한 방법들- 추상 표현을 하기 위한 방법들 The Read-Eval-Print Loop Functional programming은 계산기의 사용과 약간 비슷하다. interactive shell(REPL )은 표현을 쓰고 값을 리턴할 수 있게 해준다.Scala REPL은 단순하게 타이핑 함으로써 시작할 수 있다. > scala Expressions 아래 예제는 REPL을 이용하여 interaction하는 단순한 방법이다. scala> 87 + 145232 Functional programming languag.. 2015. 12. 23.
Functional Programming Principles in Scala - Coursera 강의 ppt 번역 Programming Paradigms Paradigm : 과학적으로 paradigm은 구별된 개념 또는 몇몇의 과학적 규율 내에서의 생각의 패턴등을 말한다.주요 programming paradigms은 - imperative programming- functional programming- logic programming 을 들 수가 있으며, 이와는 독립적으로 - object-oriented programming 을 들 수가 있다. Review: Imperative programming - 변수를 수정할 수가 있다.- 값을 대입한다.- if-then-else나 loops, break, continue, return 등과 같은 제어 로직을 사용한다. imperative program의 대표적인 예로 Vo.. 2015. 12. 22.
[Django] Django와 apache 연동하기 [우분투] Django에서 apache 서버를 웹서버로 연동하기 위해서는 mod_wsgi라는 것을 설치해야 한다. wsgi란 Web Server Gateway Interface의 약자로써 웹서버와 웹어플리케이션 간의 인터페이스를 제공해 주는 프레임워크이다.여기서는 apache 서버와 Django 간의 인터페이스를 담당한다.물론 wsgi 설정 없이 Django 자체 웹서버를 이용해도 되긴 하지만, 아무래도 Django 자체 웹서버는 불안한 면이 있기 때문에 apache 서버를 이용해 보기로 한다. 우선 아파치 설치.$> sudo apt-get install apache2 아파치 설치가 완료되었으면 이제 mod-wsgi 설치 (python3 같은 경우에는 libapache2-mod-wsgi-py3를 깔아야 한다고 한다.. 2015. 10. 28.
[Django] DEBUG = False 설정 시 Bad Request 발생 오랜만에 Django 설정을 다시 하게 되었다. Django 설치를 다 하고 settings.py 설정 중, Debug 옵션이 True로 되어 있길래 False로 바꿔주고 Django 실행! 헉... Bad Request 가 발생한다. 이게 무슨 일이지???? 열심히 구글링... 역시 stackoverflow는 날 배신하지 않는다. http://stackoverflow.com/questions/19875789/django-gives-bad-request-400-when-debug-false ALLOWED_HOST 설정을 all로 해주어야 host 접근이 가능하다는 소리이다. 아래와 같이 설정해 주면 더이상 bad request가 발생하지 않는다.ALLOWED_HOSTS = ['*'] '근데 왜 DEBUG.. 2015. 10. 28.
[PHP] It is not safe to rely on the system's timezone settings warning 발생 php에서 date() 함수를 실행 한 후 웹상에서 해당 php를 실행 시켰더니 아파치에서 아래와 같은 warning 메시지가 발생한다. PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning. you most likely misspelled the timezone identifier. We selected 'As.. 2015. 10. 27.
PhantomJS 사용하기 대부분의 웬만한 웹사이트는 Beautiful soup를 사용하여 parsing을 하면 손쉽게 데이터를 가져올 수 있다. 그런데 간혹 웹사이트들 중 Javascript에서 html을 만들어서 실행되는 동적페이지가 있다. 곤란하게도 Beautiful soup에서는 Javascript를 실행해주지 않으며, 그 결과로 parsing도 제대로 동작하지 않느다. 이를 해결하기 위해서는 Javascript가 rendering 된 후에 parsing을 할 수 있는 방법을 찾아야 하며 아래 사이트는 그에 대한 해결 방안을 3가지 방법으로 제시하였다. https://www.quora.com/Can-beautifulsoup-scrape-javascript-rendered-webpages 내가 사용한 방법은 위의 세 가지 중.. 2015. 10. 12.