D 언어에서 lib호출해서 쓰기

오늘 아침에 GeoIP라는 라이브러를 이용해서 도메인에 대한 IP 지역정보를 뽑아볼 일이 있었다. 이거  Python 바인딩이 있고, 그냥 C로 만들면 바로 구동해 볼 수 있었는데 걍 D로 바인딩 하는 작업을 해서 해봤다.  사실 D로 해보고자 했던 가장 중요한 이유는 GeoIP.h파일이 너무 간단하게 되어 있어서 이걸 D헤더(?)로 변환하는 작업이 거의 필요 없었기 때문이다. 사실 이 작업만 하면 […]

계속 읽기

D vs Ruby

블로그 스피어에서 어떤분이 D와 Ruby에 대한 비교글을 써놓았다. 이런 비교가 가능하다니 이 블로그 주인 참 재미있는 사람인거 같다. 내가 그 분의 글에 대해 약간의 견해를 비추기 위해 글을 써본다. 알다시피 D와 Ruby는 태생 목적 자체가 다른 언어이다. D는 생산적인 시스템 프로그래밍을 위해서 나온 언어이고, Ruby는 프로그래머에게 재미를 주는 프로그래밍을 위해 나온 언어이다. 그래서 D에서는 기존에 […]

계속 읽기

endian 변환 모듈

주말에 서버를 개발하다가 아래와 같은 메서드가 없어서 고민을 하다가 만들어 버렸다. uint32_t htonl(uint32_t hostlong); uint32_t ntohl(uint32_t netlong); D language에서는 위와 같은 메서드를 찾아볼수 없고, 유저 게시판에서도 못찾아서 만들어 버렸는데, 꽤 쓸만하다. 네트워크상에서는 Big-endian을 쓰니 LittleEndian에서만 문제가 생기더라. 그래서 아래와 같은 모듈로 두 메서드를 대체해 버렸다. [CODE c]import std.system; uint htonl(uint hostlong){    ubyte[4] retbyte;    […]

계속 읽기

D 2.0이 나왔나?

D language 2.0에 대한 소식이 들려오기 시작한다. 1.0 정식 버전이 올해 출범하고 얼마전에 1.015 버전에 대한 발표를 했는데 1.016버전에 대한 발표를 하면서 2.0버전에 대한 이야기를 하고 있다. (2.0에 대한 링크가 있었구나.) char[]의 alias로 string형을 지원한다는 이야기를 하고 있고, 여러 wide char를 지원하는 string 형을 또한 제공하고 있다. 현재로서는 단순한 alias 그 이상도 그 이하도 아닌거 […]

계속 읽기

D Language.

요즘 D Language에 빠져 있다. 엇그제 새벽에 처음 접하고 어제 오늘 퇴근후에 Language Spec을 열심히 보구, 코딩 몇줄 해보고 하면서 뭔가 임펙트를 받고 있다. 코드 자체가 C, C++언어와 유사하고, 어찌보면 Java와도 유사하게 보이기도 한다.(자바가 C, C++과 유사하긴 하지만)  무엇보다 가장 좋은건, 내가 좋아하는 C 스타일의 코딩이 가능하고, 게다가  C에서 불편하게만 생각했던 부분에 대한 개선이 많이 […]

계속 읽기