In computer science, weak typing (a.k.a. loose typing) is a property attributed to the type systems of some programming languages. It is the opposite of strong typing, and consequently the term weak typing has as many different meanings as strong typing does.
동적 형 변환(dynamic typing)
A programming language is said to be dynamically typed when the majority
of its type checking is performed at run-time as opposed to at
compile-time. In dynamic typing, values have types but variables do not;
that is, a variable can refer to a value of any type. Dynamically typed
languages include Erlang, Groovy, JavaScript, Lisp, Lua, Objective-C, Perl (with respect to user-defined types but not built-in types), PHP, Prolog, Python, Ruby, Smalltalk and Tcl.
정적 형 변환(static typing)
A programming language is said to use static typing whentype checking
is performed during compile-time as opposed to run-time. Statically
typed languages include Ada, AS3, C, C++, C#, Eiffel, F#, Go, JADE, Java, Fortran, Haskell, ML, Objective-C, Pascal, Perl (with respect to distinguishing scalars, arrays, hashes and subroutines) and Scala. Static typing is a limited form of program verification (see type safety): accordingly, it allows many type errors to be caught early in the development cycle.
The usual way is &v[0]. (&*v.begin() would probably work too, but I seem to recall there's some fluffy wording in the standard that makes this not 100% reliable)
Developers는 말 그대로 어플리케이션 개발자를 위한 SDK를 제공하고
Partners는 안드로이드 플랫폼을 개발하기 위한 안드로이드 플랫폼을 제공한다.
# Required Packages:
* Git, JDK, flex, and the other packages as listed above in the i386 instructions:
* JDK 5.0, update 12 or higher.Java 6 is not supported, because of incompatibilities with @Override.
* Pieces from the 32-bit cross-building environment
* X11 development
아무튼, 이녀석을 위해서는 Git 가 필요하고, 오만가지 것들이 필요한데
MacOSX 와 Linux는 지원하지만 Windows는 지원하지 않는다.
게다가, git for windows는 cygwin 으로 작동해서 엄청난 속도를 자랑한 악몽이 있기에... OTL
생각보다 repo sync에서 시간이 엄청나게 오래 걸린다. 전체용량이 대략 2기가 정도를 받는데
git 임에도 불구하고 이렇게 오래 걸리다니..(대략 6시간 넘게 걸린듯..)
안드로이드 플랫폼(?)은 git를 깜산 python 스크립트로 작동되는 repo 라는 녀석으로 받아온다.
그리고 home 디렉토리의 ~/bin 에 repo를 설치한다.
개인적으로는 상대경로를 입력해서 repo를 실행했으나
repo 를 초기화 하면 .repo 라는 디렉토리가 생성되므로 /bin 에 넣는것 추천할만한 방법은 아니나
개인 계정에 설치하고 심볼릭 링크로 걸어도 상관은 없을듯 하다.
$ cd ~
$ mkdir bin
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo
안드로이드를 다운받기 위해서는 폴더를 하나 지정하고,
그 안에서 repo init 명령을 통해 초기화를 하고
repo sync 명령을 통해 다운로드 받는다.(6시간 정도 걸렸는데 네트워크 상황에 따라 달라질수 있음)
Your Name [XXXXXXXX]: YYYYYYYY
Your Email [username@devlinux.(none)]: username@gmail.com
Your identity is: YYYYYYYY<username@gmail.com>
is this correct [y/n]? y
Testing colorized output (for 'repo diff', 'repo status'):
black red green yellow blue magenta cyan white
bold dim ul reverse
Enable color display in this user account (y/n)? y
1. make 중에 멈추는 경우가 있는데, g++-4.3 패키지를 추가로 설치해준다.
(아마 gcc는 이미 깔려있었을테니, g++ 라이브러리 문제라고 생각이 된다. 설치시 심볼릭 링크도 변경된다)
frameworks/base/tools/aidl/AST.cpp:10: error: 'fprintf' was not declared in this scope
라는 에러로 시작해서 fprintf() 에러를 뿜어내면서 중단될때는 두개의 패키지를 설치해준다.
$ sudo apt-get install gcc-4.3g++-4.3
gperf는 performace 관련이 아니라.. hash function generator 라고 한다.
흐음.. 그 해쉬가 그 해쉬가 아닌가 -_-? 맹글링과 연관이 있어 보이기도 하고..
GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash function and hash table, in form of C or C++ code,
for looking up a value depending on the input string. The hash function
is perfect, which means that the hash table has no collisions, and the
hash table lookup needs a single string comparison only.
GNU gperf is highly customizable. There are options for generating C or C++ code, for emitting switch statements or nested ifs instead of a hash table, and for tuning the algorithm employed by gperf.
음.. 예전에 어떤 분의 블로그에서 스마트 포인터 란것을 들었지만
어떤건지 알지 못했는데 C++/STL 공부하면서 문득 떠올라 검색을 하니 아래와 같이 상큼하게 정의가 내려져있다.
C++은 자바와 같은 가비지 컬렉션(GC) 기능이 없어서,
new로 동적 할당한 객체를 매번 delete를 써서 수동으로 삭제해야 하는 건 아실 겁니다.
조심하지 않으면 엄청난 메모리 누수(leak)가 나버리는 버그가 발생할 가능성이 있죠.
(이런 버그를 잡기위해서 바운즈 체커나 코드 가드와 같은 프로그램이 나온거죠.)