옥탑방주인 썸네일형 리스트형 마이크로소프트 준 플레이어 오류와 자동수정하는 방법에 대해 알아보자 마이크로소프트 준 미디어 플레이어(Microsoft Zune media players) 오류와 자동수정하는 방법에 대해 알아보자. 2008년 12월31일에 마이크로소프트 준 미디어 플레이어에서 오류가 발생했다. 그 이유는 아래의 코드에 문제가 있었기 때문이다. void zunebug(int days) { int year = 1980; while (days > 365) { if (days > 366){ days -= 366; year += 1; } else { } } else { eays -= 365; year += 1; } } printf("current year is %d\n", year); } 이 예제의 목적은, negative test case는 무한루프가 발생하는 inputs 366(1980년)과.. 더보기 Android library - Bionic(libc)에 대해 알아보자. 대학원 수업을 수강중에 Android library 파트에 libc에 대해 조사할 기회가 생겼다.libc의 위치는 밑에 그림의 빨간색으로 표시해뒀다. 먼저 안드로이드는 리눅스커널 기반으로 만들어진 운영체제이다. 리눅스에서는 거의 표준으로 사용하는 GNU C Library(glibc)라는것을 사용하지만, 안드로이드에서는 Bionic(libc)라는 라이브러리를 사용한다. 왜 안드로이드에서는 glibc를 사용하지 않고 bionic을 사용할까? 그 이유를 한번 찾아보았고 그것을 바탕으로 3가지 이유로 서술해 보려 한다. 1) 라이선스(License)리눅스에서 사용되는 glibc는 LGPL 라이선스로 배포되고 있다. 여기서 LGPL이란 여기에 서술해놓았다.안드로이드에서 glibc를 사용하지 않는 이유는 LGPL .. 더보기 Lesser General Public License(LGPL) Lesser General Public License(LGPL)에 대해 알아보자. LGPL은 GPL 라이선스보다 조건이 훨씬 완화된 공개 소프트웨어 라이선스이다. GPL과 차이점은 동적(Dynamic) 또는 정적(static) 라이브러리에 LPGL 라이선스가 포함된 코드를 사용하여서 개발해서 판매/배포할 경우에 소스코드를 공개하지 않아도 되고 단순히 LGPL 라이선스가 포함된 코드를 사용하였다고 명시하기만 하면 된다. 하지만 LGPL라이선스가 포함된 코드를 수정하거나 파생된 라이브러리를 개발한 경우에는 전체 소스코드를 공개해야 한다. 더보기 Chapter 2. Expressions, Types, and Values 이 챕터에서는, 스칼라 프로그램의 블록들(expression, types, values)을 기본적으로 빌딩하는것을 알아 볼 것이다. 이러한 개념들을 이해하는것은 어떻게 스칼라 프로그램이 작동하는지에 대한 mental model을 빌드하는데 필수적이다. 2.1. Your First Program 스칼라 콘솔 또는 워크시트(IDE 말하는듯)에서 "Hello world!"를 입력하고 리턴을 누르거나(콘솔에서) 워크시트를 저장해라. 아래에서 이런 비슷한 반응을 볼 수 있다."Hello world!" // res: String = Hello world!이 프로그램에 관해 할 얘기가 많다. 이것은 single expression, particular a literal expression 또는 literal for .. 더보기 Chapter 1. Getting Started 시작하기 앞서, https://underscore.io/training/courses/essential-scala/ 주소에 있는 essential scala 라는 책 내용을 계속해서 업데이트 할 예정입니다. 잘못된 부분은 댓글로 알려주시면 감사하겠습니다. Chapter 1 Getting Started 이 책의 스칼라 코드의 짧은 예제들을 실행해 볼 것이다. 스칼라 실행방법에 2가지의 추천사항이 있다. 스클라 콘솔을 이용하는방법(커맨드 라인을 좋아하는 사람들한테 추천)IDE를 사용해서 스칼라를 사용함.(IDE를 사용하는사람들한테 추천) 1.1 스칼라 콘솔 셋업 http://scala-lang.org 홈페이지에 가면 스칼라 콘솔을 셋업하는법이 나와있다. 스칼라가 인스톨 되었다면, 반응형 콘솔을 실행해서 커맨.. 더보기 Spark 2.2.0 Programming Guide Overview 모든 스파크 어플리케이션은 유저의 main function 실행하는것과 클러스터상에서 다양한 병렬처리를하는 driver program으로 구성되어 있다. Spark에서 제공하는 main abstraction은 resilient distributed dataset(RDD)인데, RDD는 클러스터의 노드에서 파티션된 인자(element)의 콜렉션인데, 이것들은 병렬 처리가 가능하다. RDDs는 Hadoop file system(또는 하둡이 지원하는 다른 파일 시스템)또는 현재 diver program에서 Scala collection 과 함께 생성되고 변형시킨다. 유저들은 메모리에서 RDD가 유지하도록 요청하여, 병렬작업에서 효율적으로 재사용된다. 끝으로 RDDs는 노드에서 실패(node f.. 더보기 스택 오버플로우(stack overflow)와 버퍼 오버플로우(buffer overflow)의 차이점이 뭘까?? Q : What is the difference between a stack overflow and buffer overflow? A :Stack overflow refers specifically to the case when the execution stack grows beyond the memory that is reserved for it. For example, if you call a function which recursively calls itself without termination, you will cause a stack overflow as each function call creates a new stack frame and the stack will eventually con.. 더보기 Abstract Syntax Tree(AST) 추상구문트리란? 우선 컴파일을 한다는 것은 언어간의 의미론적인 매핑(mapping)과정을 뜻합니다.더 직설적으로 말하면 고급언어를 의미의 변화없이 기계어로 매핑하는 과정이죠.그런데 고급언어로 넘어가면서 어셈블리어와 같은 저급언어에는 없는 여러가지 추가개념이들어가게 되었습니다. 어셈블리어에서의 매크로야 그나마 일차원적인 대치 과정이니 상관없지만함수, 객체지향 쪽으로 들어가면 골치가 아파집니다. 언어는 점점 더 풍부한 요소들이 있는데이것을 어떻게 단순히 평면적으로 번역할까요? 게다가 규모도 장난이 아니니 일차원적인자료구조로는 사실상 관리가 불가능합니다. 그럼 어떤 구조로 해야하나? 이런 체계적이고복잡하고 광범위한 자료 덩어리에 가장 잘 써먹을 수 있는 구조가 바로 트리(tree)입니다. 컴파일러는 내부적으로 여러가지 컴포넌.. 더보기 Spark 2.2.0 Quick Start Quick Start 이 튜토리얼은 빠르게 스파크를 사용하는 방법을 제공한다. 먼저 스파크 대화형(interactive) 쉘(파이썬 또는 스칼라로)을 통해 API를 소개하고, 어플리케이션을 어떻게 Java, Scala, Python으로 쓰는지를 보여줄 것이다. 이 가이드를 따라하려면, 먼저 Spark website 에서 스파크가 패키징되어있는것을 다운받아라. 여기서는 HDFS를 사용하지않겠지만, 릴리즈된 하둡 버전을 다운받을 수 있다. Spark 2.0 이전에는 스파크의 메인프로그래밍 인터페이스(main programming interface)가 RDD(Resilient Distributed Dataset)였다. 스파크 2.0 이후에는, RDDs는 강력하게 형상화된 데이터셋으로 변경되었지만, 후드 아래에.. 더보기 매개변수 매개변수 목록 def upper(doubles: Double*): Seq[Double] = ... //여기서 doubles는 매개변수가 Double은 매개변수 목록이다. 매개변수와 매개변수 인자를 구분하는 이유는 향후 암시적 인자 처리 규칙이나 함수의 커링(currying) 등에서 인자와 인자 목록을 구분해야 할 필요가 있기 때문이다. 매개변수화한 타입을 지정할 때 자바에서는 꺽쇠괄호()를 사용하지만 스칼라에서는 각괄호([...])를 사용한다. 더보기 이전 1 ··· 4 5 6 7 8 9 10 ··· 20 다음