- 2024 1
- 2023 3
- 2022 4
- 2021 13
- 2020 2
- 2019 6
- 2018 4
- 2017 6
- 2016 2
- 2015 7
- 2014 13
- 2013 7
- 2012 31
- 2011 6
- 2010 1
- 2009 3
- 2008 2
2024
tablesaw, jep : java 에서 pandas를 사용하기
java에서 python 코드를 사용하려면 jep 을 이용해서 기존코드 (파이선모듈의 C 종속성 상관없이)를 그대로 활용할수 있다. 또한 python 에서 java 코드를 사용하는것도 가능하다
2023
vscode, jupyterlab 에서 vim 사용시 esc keymap 문제 해결
‘esc’를 눌러 insert mode 종료 시 현재 cell 밖으로 나가버리는 문제를 해결하기 위한 깨알 tip.
airflow ExternalTaskSensor 사용 시 고려해야 할것들
지금 하고 있는 프로젝트에서 airflow
ExternalTaskSensor
를 사용해서 다른 dag 에서 호출한것을 감지하는 부분이 있다.
이것을 사용할 때 몇가지 고려할 사항이 있었는데 한번 정리해 본다.
byte_rb : rust 에서 구현된 ring buffer
rust 에서 고정길이 메모리 할당 후 memcpy 로 구현한 ring buffer
2022
(python) docker container 에서 scipy, numpy 사용 시 thread 과다 생성 문제 (incorrect cpu count)
개발 중인 python 프로젝트에서 scipy 패키지 interpolate 를 사용하는 코드가 있는데, docker 기반 클라우드 환경에서 실행하니 먹통이 되고 멈추는 현상이 발생 했다. 하지만, 이 코드를 내 랩탑 에서 돌려보면, 정상 동작한다.
(python) pandas 처리 속도 개선에 대하여
지금 하고 있는 프로젝트에서 python pandas 와 numpy를 사용해서 데이터를 처리하는 부분이 있다. 그런데 기존에 있던 처리 속도가 느려서 이 부분을 검토하면서, 처리 속도를 높이기 위해 이것 저것 수정해서 테스트 하다 보니 알게 된 것들이 있어서 정리해 본다.
golang 1.18의 workspace mode 알아보기
이번에 1.18 버전이 나오면서 크게 변경된 것 (generic, fuzzing, 성능 향상, workspace 모드) 중에서 나에겐 workspace 의 유용함이 가장 먼저 다가왔다.
실제 프로젝트에서 golang 으로 개발하는 경우에 아주 유용한 기능이라고 생각된다.
GOSOF : A simple yet quite practical socket framework made with golang.
2021
mariadb maxscale 사용 시 주의점 (readwritesplit)
이번에 프로젝트를 하면서 겪었던 상황을 정리해본다.
golang : interface 로 전달받은 pointer 가 가르키는 type 을 찾기
reflect.Indirect 를 활용하면, interface 로 전달된 인자가 pointer인 경우, 그 pointer가 가르키는 실제 type 에 대한 정보를 알수 있다. 여러 type을 전달받는 공통 함수 등을 작성할때 유용한 tip
macbook pro 2012 mid LCD replacement (맥북 액정 교체기)
지금 사용중인 맥북 프로가 몇달전에 갑자기 화면에 세로줄들이 발생했다. 외부 디스플레이는 문제 없는 상태라서 로직 보드 문제는 아닌거 같다. 새로 살 필요까지는 없는거 같아서 맥북 수명 연장에 좀 투자 하기로 했다.
맥북 배터리 스로틀링
macbook pro 2012 mid 의 배터리를 교체하기 위해 제거하고, 지금 전원 어댑터만 연결해서 사용을 해보니 심각한 속도 저하가 발생하고 있다.
Go 1.16 에서 $GOPATH/src 에서 코드 작성하고 사용하기
Go 1.16 버전 부터는 기본적으로 module 을 사용하게 변경 되었다. 덕분에 GOPATH
와 상관없이 아무 위치에서든 자신의 소스파일을 작성하면 된다. 그리고 모듈을 사용하기 위한 go.mod
파일이 반드시 필요하게 되었다. 하지만 1.16 버전에서도 선택적으로 module 사용을 할지 말지 여부를 결정 할 수 있다. 예를 들어 기존 프로젝트 구조가 GOPATH
내 src 를 사용하는 경우등이 해당될수 있다.
go module과 package 관계, 그리고 module path 개념 정리
go 에서 gRPC-Gateway 사용하기
이번에는 go 에서 gRPC-Gateway 를 사용하는 방법에 대해 알아보려 한다.
go 에서 proto buffer 사용하기
proto buffer 를 정의 -> go 로 변환하여 모듈을 만들고 -> 이 모듈을 로컬에서 호출해서 사용 하는 간단한 예제를 정리해 본다 (go 1.16 버전을 기준)
flutter : push-up mania
flutter 를 사용한 모바일 크로스 플랫폼 앱 개발 예제.
flutter : using mixed null safety for legacy packages
null safety 가 없는 기존 package 들을 최신 flutter, dart 개발 환경에서 사용하기.
flutter : package plugin (using swift and kotlin) proximity_sensor
golang module 작성, 타 모듈에서 로컬 테스트 및 배포 개념 정리
golang 모듈을 만들고 타 모듈에서 사용하는 것을 한번 정리해보았다.
(windows 10) IntelliJ IDEA + IdeaVim 사용시 벨 소리 제거
IdeaVim 으로 편집기를 사용하는 경우 땡땡 벨소리 안나게 하는 팁
2020
WSL 1, 2 has no numa support
wsl 와 linux 는 완전히 동일 한건 아니다
redis-benchmark 에서의 RPS(requests per second) 의미
redis-benchmark 를 수행했을때 출력되는 requests per second(RPS) 의미를 client 개수와 연관해보면 다음과 같다.
2019
ASockLib windows 를 지원
c++ 코드에서 언더스코어 (‘_’) 사용시 주의
오늘 유튜브에서 흥미로운 주제에 대한 짧은 동영상을 봤는데,
c++에서 underscore (‘_’) 가 포함된 identifier 사용시 유의할 점에 대한 내용이었다.
컴파일러가 파싱할때 적용되는 내용이므로, 그 대상은 모든 변수, 클래스명, 함수명 등등 다 해당되는 내용이다.
template method pattern 에 CRTP 사용하기 (c++)
그동안 개발하면서 template method pattern을 즐겨 사용하고 있는데,
virtual 함수를 이용하여 구현했었다.
그런데 CRTP 를 이용해도 비슷한(동일한건 아님) 처리가 가능하다.
맥미니 2009 late ubuntu , nvidia 9400M driver 설치하기
2021 update : NVIDIA 드라이버 제 성능이 안나와서 그냥 구석에 쳐박혀서 사용 안함. 결국 정말 쓸데가 없는 물건임.
(TIP) ssh 비밀번호 없이 로그인이 안되는 경우
ssh 접속시 비밀번호를 안물어보게 하기 위해 authorized_keys
에 공개키를 추가하는 작업을 수행했는데 계속 비밀번호를 물어보는경우 다음을 확인해본다.
libcurl + ssh 비번없이 사용하는 경우 (curl + ssh no password)
참고 :이 글은 curl 버전 7.30 기준으로 작성 되었음. 그 이후 버전에는 해당 없을 수 있음.
2018
linux python No such file or directory 발생 시
python 스크립트를 다음처럼 shebang
을 가진 것으로 작성하고
nerdtree euc-kr 환경에서 사용하기
nerdtree euc-kr 환경에서 utf8 환경인 것처럼 사용하기 위한 꼼수
vim + 정규식을 이용한 smi 파일 일괄 수정
주말이라서 영화를 받았는데,smi 파일은 있는데 자막이 안나온다. 좋아하는 영환데… smi 파일을 열어보니, 뭔가 알수 없는 규칙으로 작성되있다.
libcurl POST 한글 encoding
curl 프로그램을 사용하여 POST 전송 시, 한글 데이터를 endcoding 해서 전송하는 방법은 다음과 같다.
2017
oracle PCC-S-02322, found undefined identifier 에러 발생의 어이없는 이유
지금 하고있는 프로젝트에서 오라클을 사용하는 부분이 있어서, 그 옛날의 proc 를 사용해서 개발하는 부분이 있는데, 이런 오류가 발생했다.
localtime_r 은 thread safe 하지 않다? deadlock발생 경우.
며칠 전 개발하면서 겪었던 상황인데, fork 된 child process에서는 localtime_r 과 같은 시간 관련 함수를 사용할때 유의해야 한다.
ubuntu server virtualbox remote ssh root login 설정
ubuntu 서버 virtualbox 원격 ssh 로그인 설정
c++ thread pool
close(0) 로 인한 stdin close : getline, getchars 동작 이상
왜 getline() 함수가 즉시 리턴되는가? 에 대한 삽질의 기억…
Cumbuffer 를 이용한 예제 : ASockLib
2016
CumBuffer : accumulating byte buffer for c++
네트워크 TCP 프로그램인 경우에 임의 길이의 작은 데이터 조각을 수신해서 누적(버퍼링)시키다가 일정 길이가 수신되면 완전한 하나의 packet으로 보고 해당 데이터를 처리하는 경우가 꼭 필요하다.
scott meyer c++ 은퇴
2015
boost c++ library static link 컴파일 방법
막상 필요해서 찾다보니 잘 정리가 안되있어서 나름 정리해본다. boost 라이브러리를 이용해서 작성된 프로그램을 boost 가 설치 안된 환경에서 사용해야 하는 경우, static link 로 컴파일 해서 사용할수 있다.
NBSPSC_Queue
배열을 이용한 Queue
DisruptorCpp-IPC 가변길이 데이터 처리
앞서 Disruptor동작원리를 이용해서 IPC 로 동작하는 소스를 구현해봤는데 한가지 단점은 고정된 길이의 데이터를 미리 할당해서 링버퍼에 넣어두고 사용하는 방식이라는 점이었다. 만약 저장되는 데이터 길이가 가변적인 경우엔 이용할수 없는 단점을 보완해서 약간 수정된 버전으로 작성을 해보았다.
Disruptor 분석 및 c++ 로 구현해보기
java 하면 일단 좀느리다는 고정관념을 깰 만큼 고성능을 내세우는 Disruptor라는 존재에 개인적으로 관심이 생겨서 잠깐 내부를 살펴보게 되었다.
UltraEdit 한글 버튼 메뉴 수정
업무용으로 주로 사용하는 UltraEdit 에서 프로젝트 메뉴의 파일설정, 한글 메뉴버튼 번역 잘못됐다고 알려줬더니 이번 22.10.0.12 업데이트에서 수정이 됬다. 볼때마다 불만이었는데 이젠 편안하게 메뉴를 볼수 있겠군.
nodejs 호스팅 비추천
c모 사의 node.js 호스팅 절약형 을 신청해서 사용하려 했는데, 결국 내린 결론은 도저히 사용할만한 서비스가 아니란 거다. heroku에서 아무 문제 없이 돌아가던것 간단한 app도 여기서는 안된다. 일단 package.json에 기입한 모듈들이 제대로 설치되는건지 그 로그조차 확인 할수 없다.
AngularJS 게시판 accordion 스타일
2014
AngularJS : Seoul Dust Dashboard
AngularJS : Best practice, ‘dot rule’
AngularJS 에서 model을 UI 에 바인딩 시키는 경우, 이른바 ‘dot rule’ 이라고 하는 idiom 이 있다.
AngularJS : Controller들간 데이터 공유, $broadcast , $on or service?
AngularJS sharing data between controllers : $broadcast/$on or service
AngularJS : Binding Primitive, Reference Type
AngularJS의 2 way-data binding 사용에 시행착오를 겪은 부분이 있어서 글로 남겨본다.
AngularJS 게시판
AngularJS(1.3.6)+ Express + mongojs 이용한 간단한 게시판
Effective Object-C 2.0
며칠전 강컴으로 구입한 책이다. 책을 사서 처음 부터 읽지 않고 관심있는 부분부터 보는 습관인데, 지금까지 2개의 아이템만을 읽었을 뿐인데 번역의 질이 실망스럽다. 처음부터 완전 엉망은 아니지만, 100% 번역을 믿고 읽을 수준은 아니라서, 이런책이 원서보다 더 읽기 힘든책이다. 그리고 단지 2개의 아이템을 읽었을 뿐인데 편집상의 심각한 오류도 보인다. 도저히 무슨 내용인지 몰라 고민하다가 인터넷으로 원서내용을 볼수 있는 사이트를 알게돼서 직접 비교해보았다.
_UIViewServiceInterfaceErrorDomain Code=3
Xcode 6.0.1 IOS8 simulator 에서 MFMailComposeViewController 클래스를 이용한 메일 전송시 다음과 같은 에러 발생됨.
ios8 업데이트
어제 애플이 ios8 업데이트를 배포했다고 바로 이런 메일이 도착.
내가 본 거지같은 소스들 - sizeof 와 구조체 패딩
지금까지 일한곳들에 존재하는, 거지 같은 소스들을 유지, 보수하면서 느낀점들을 정리한다.
g++ std::thread -pthread option?
std::thread 를 이용한 프로그램을 리눅스 환경에서 g++ 을 이용, 컴파일 하는경우 -pthread 옵션이 필요하다. 다음과 같은 샘플 프로그램이 있다고 해보자.
node.js 이용한 서울시 미세먼지정보 가져오기
c++ expression tree
export_to_sqlite3 : simple command line based utility for exporting oracle or mysql to sqlite3
oracle, mysql 을 sqlite3로 export 하기
2013
radius packet 생성 프로그램
string.h 없이 strtok 사용시 SIGSEGV 발생하는 경우
다음 코드는 컴파일도 잘되는듯 하고, 간단해서 문제 없이 실행될것 처럼 보인다.
맥에서 telnet으로 linux 접속후 vi 한글 입력
mac iterm2 에서 linux 로 telnet을 이용한 접근 시 , 한글 입력이 안되는 경우, 먼저 터미널 encoding 을 Korean 으로 설정하고, telnet명령 수행 시 -8 option을 주니 해결되었다.
oracle ACL
oracle stored procedure 등에서 외부 ip address접근 시도시 ACL오류 발생 하는 경우 다음을 확인해본다. sysdba 권한이 필요하다.
UITextField becomeFirstResponder 가 NO를 리턴하는 경우
예전에 개발해 놓고 거의 방치하다시피 한 FeelingNote를 ios6 대응 업그레이드 하려고 보니, 한가지 이상한 점 을 발견했다.
xslt 초간단 정리
아래 사이트 내용을 간단하게 정리한것임. http://infohost.nmt.edu/tcc/help/pubs/xslt/index.html
NERDTree 4.2.0 디렉토리가 안열리는 경우
NERDTree 실행후 디렉토리 명 앞에 이상한 문자가 붙어서, 정상적으로 파일을 열수 없는 경우
2012
JavaScript Allongé eBook 구입
얼마 전 Hacker News 에 소개된 전자책인데 leanpub을 통해 구입해서 읽고 있다 . PDF혹은 아이패드나 아이폰에서도 볼수 있는 eBook 형식으로 제공된다. JavaScript Allongé 는 기본 문법을 알고 있는 독자를 대상으로, 각 장마다 자바 스크립트의 함수를 사용하는 새로운 관점들을 소개하고 있다. 그리고 각 장이 끝날 때마다 recipes 항목을 통해서, 앞서 배웠던 항목을 기본으로, 실용적인 활용 법을 소개해주고 있다. 개인적으로 추천할만한 내용이라고 생각한다. 한번 방문해보시길… (Allongé 는 에스프레소와 아메리카노의 중간 정도 되는 커피라고 한다~커피관련 지식은 덤^^)
node.js chat server with QT client
node.js tcp chatting server with QT client
node.js 의 thread pool(libuv) 부분
node.js 에서의 입출력 동작은 멀티쓰레드(thread pool)로 구현된다. 소스 코드에서 이 부분을 정리해본다.
node.js : threads-a-gogo compile error
node.js를 위한 thread, threads_a_gogo 컴파일시 오류 해결 방법
node.js single thread / multi thread ?
node.js 는 단일 쓰레드 환경이다.
꿀벌이 사라진 이후
꿀벌을 보고 공상하다. 아니 망상일까?
node.js 에서 module.export, export차이는?
사용자의 스크립트에서 사용되는 전역객체, module의 속성 exports 와 그냥 exports의 사용시 의 차이점을 알아본다.
node.js 분석
Node.js source code analysis (How node executes user code ?)
Linux Asynchronous I/O 예제
지금 프로젝트에서 작성한 프로그램의 개선점을 찾다보니, 비동기 작업 처리를 위해 aio를 이용하면 좋을듯 하다.
ios6 개발: Autorotation, viewDidUnload
FeelingNote app에 ios6을 적용하다가 알게 된것을 간단히 정리.
forever loop 를 활용한 error handling
함수내 에러처리에 대한 방법은 여러가지가 있겠으나, 최근 흥미로운 글 하나를 읽었다.
regex basic
regex basic
python decorator
```python #!/usr/bin/env python
-- encoding:utf-8--
import time
Python Flask 설치 (windows)
당연히 python은 먼저 설치되어 있어야 함.
Ruby on Rails 간단 게시판 다시 만들어보기
Ruby on Rails 간단 게시판
요즘 취미로 Ruby on Rails 에 대해 공부하고 있는데, 간단한 게시판 예제를 작성 해보자.
Windows 에서 Ruby on Rails (RoR) 3.2.8 + Oracle XE 11g
RoR 은 기본적으로 Sqlite 를 Database로 제공해주고 있다. 나는 Oracle XE를 개발용으로 사용중이라서, 여기에 맞춰서 설정을 해보기로 했다. 개발 환경은 다음과 같다.
Lvalue 와 Rvalue 정리
c++11 의 기능중에 Rvalue references 을 보다 보니, Lvalue 와 Rvalue 의 판단 기준을 다시 한번 정리해야 할것 같다.
C++11(C++0x) 과 CodeBlock , mingw32-gcc
C++11 (C++0x) 기능을 CodeBlock, mingw32-gcc 를 이용해서 Windows에서 시험해 보자.
Django 게시판 만들기 4 - 검색 기능 구현
이제 검색 기능만 구현하면 이 간단 게시판은 완성이다.
Django 게시판 만들기 3 - 글 조회 및 수정, 삭제 기능 구현
목록에서 글 보기를 위한 url은 /viewWork
로 설정했고, GET방식으로 글 조회를 위한 정보를 전달하게 되어 있었다.
Django 게시판 만들기 2 - 글쓰기 기능 구현
글쓰기 기능 구현
Django 게시판 만들기 1 - 설치 및 설정
Python 을 이용한 웹 개발 프레임워크인 django를 이용해서, 간단한 게시판을 만들어 보자. 앞서 스프링을 이용해서 작성된 게시판 과 동일한 기능을 수행하는 간단한 게시판이다.
Spring Remote (RMI) 예제
오늘 살펴볼 스프링 Remote 중에서 RMI 지원은 단순한 POJO 작성만으로도 RMI 서비스를 간편하게 발행할 수 있게 해준다.
MyBatis-Spring : mapper interface 와 annotation을 활용한 게시판 예제
MyBatis-Spring : mapper interface 와 annotation을 활용한 게시판 예제
Git 활용 (기본적인 사용법)
설정
MyBatis-Spring
tomcat maven plugin : 이클립스-maven 플러그인을 이용해서 생성된 웹프로젝트를 Tomcat7.x 에 자동 deploy후 실행시키기
간만에 자바 공부 좀 하려니 역시.. 아주 오래전 느꼈던 감정을 다시 느끼게 된다.
spring3 + Hibernate4 예제
hibernate4 예제
proactor design pattern (번역)
google data api에 복합문서 업로드하기, 다시 시작..- - ;
복합문서라는건 이미지와 텍스트가 함께있는 문서란 의미로 내가 그냥 갖다 붙인 이름이다.
2011
리눅스 어셈블리 분석 기초
어셈블리 초보자의 입장에서 간단한 c소스를 역어셈블하고 각각의 의미를 알아본다.
const 사용
헷갈리는 const사용시, 전통적인 const의 사용법과는 좀 틀리지만 알아보기 쉬운 스타일을 소개한 내용이다.
protothread
protothred 는 주로 쓰레드 사용의 장점이 필요하지만, 기존 쓰레드 생성시의 부하, 즉 쓰레드별 스택 생성됨으로 인해 메모리 사용양이 문제가 되는 임베디드 시스템등에서 사용할 목적으로 작성되었다.
protothread : Duff’s device
protothread 란 것을 보던중에 아래와 같은 소스를 발견.
Feeling Note App 출시
취미삼아 간단한 노트앱을 만들어보자며 손댄지 아주 오랬만에 오늘 앱스토어에 등록됨.
sizeWithFont오류
UITextView 기존내용을 사용자가 터치한 경우, 편집상태로 만들면서 커서를 보이면서 화면을 보이게끔 스크롤이 필요하다.
2010
UIImagePicker Memory Warnning viewDidUnload
UIImagePicker 를 이용해서 사진을 찍어서 일기장 어플에 삽입시키는 로직을 구현중에 골치아픈(그리고 구글에서도 해답을 속시원하게 찾을수없는) 현상을 겪게 되었다.
2009
Member Function Pointers 활용
어떤 변수의 값에 따라서 클래스 멤버함수를 각각 호출해야하는 상황이라면, 아마 다음처럼 코딩을 하게 될것이다.
Expression template
Expression template 은 과학, 수치 계산용 프로그램 같은, 고도의 성능이 중요시되는 코드를 작성하기 위한 방법으로 C++의 템플릿 을 활용한 것이다.
RtlpNotOwnerCriticalSection
Exception code: C0000264 {응용 프로그램 오류} 응용 프로그램이 소유하고 있지 않은 리소스를 해제하려고 했습니다. 응용 프로그램을 마치려면 [확인]을 클릭하십시오.
2008
D 언어 overview
Onions in the Varnish
이 뜻의 유래는 , 이탈리아계 유대인 작가·화학자였으며, 나치의 유태인 대학살에 대한 회고록으로 널리 알려진 Primo Levi 가 varnish (니스)를 생산하는 화학 공장에서 일할 무렵으로 거슬러 올라간다.