atoi, atol, atoll 뭥미?

술 한잔 하고 와서 자기전에 메일을 확인하는데
평소 구독하는 Valgrind-developers 메일링에 그냥 잠들 수 없게 만드는 메일이 도착해 있었다.
뭐.. 그래도 포스팅 내용은 Valgrind 관련 내용은 아니지만,

자..

atoll() is a terrible function -- you can't do any error checking with it.
Some of our option processing code uses it.  This means that eg.
'--log-fd=9xxx' logs to fd 9, and '--log-fd=blahblahblah' logs to 0 (because
atoll() returns 0 if the string doesn't contain a number!)

그러니까 atoll() 은 에러체크가 불가능하니까 몹쓸 함수라는 얘기다.
왜냐면 숫자가 없어도 0 을 리턴해버리는 못된 녀석이니까 말이지..

앞으로 이 녀석들을 쓸때는 신경 좀 쓰자구.

아, 그리고 strtol(), strtoll() 얘네들도 못 믿을 함수이기는 마찬가지니까
신경 좀 쓰자구..

아.. C로 밥 벌어먹고 산지가 10년이 넘었는데 이런것도 몰랐다니
엄청 쪽팔린다 =ㅅ=

꼬리) 테스트는 리눅스에서만..
gcc 4.1.2, glibc-2.6.1, gentoo linux

Posted by 스카리

2009/02/25 01:48 2009/02/25 01:48
Response
No Trackback , No Comment
RSS :
http://scari.net/rss/response/221

대안언어축제 2008. 11/28 ~ 11/30

대안언어축제 2008 공지가 떴다!!
지난달 7일 김창준님의 애자일 블로그에서 준비가 진행중이라는 것을 확인 할 수 있었는데, 오늘 대안언어축제2006 메일링에서 이번 행사 안내 메일을 받았다.

자세한 정보는 여기여기.

이번에는 스폰서 구하기가 힘들었는지 참가비가 이전 행사들에 비해서 조금 쎄다..

이게 다 노가다 대통령 MB때문이라고 강력히 주장하고 싶다. -ㅅ-

Posted by 스카리

2008/09/24 17:29 2008/09/24 17:29
, ,
Response
No Trackback , No Comment
RSS :
http://scari.net/rss/response/211

나도 captcha 달아보자.

어제 새벽 2시경... 잠자리에 들어야 될 시간인데 블로그에 쌓인 스팸 댓글을 보고 경악을 금치 못했다!!

반자동; 으로 다 삭제하다 보니 분을 참지 못하고 특단의 조치를 취해야겠다는 결론을 내리게 되었다.
옛날에는 사용자에게 불편을 주는 captcha 따윈 필요없다고 하던 나였으나....

우선 나는 잘 만들어진 ^___^  태터를 쓰고 있으니 누군가 만들어 둔게 있을거야..
-> 분명히 있을텐데 한방에 안 걸린다. 검색 포기.

그래.. 8년 동안;;; 한번도 안 보긴 했지만 이래뵈도 왕년에는 php 쯤은 떡주무르듯 써본 내가 아닌가.. 직접 만들자.
-> 직접 만들 생각을 하니 시간이 늦어서 소스를 찾아보기로 결심. 그러나 결과가 맘에 들지 않는다.

소스를 좀 보면서 고치다 보니 대충 gd로 폰트 그리는 법도 다 알아버렸고, 결국은 captcha 구현에 대해서 다 이해해버렸다. 근데 문제가.... 한글이 안나온다 ㅠ.ㅠ

당연히 구글링을 해봐서 저 질문에 대한 뻔한 답들도 다 봤고 확인도 다 해봤으나 내게는 적용되지 않는듯하다. 웃긴거는, 혹시나 해서 문자열 인코딩을 바꿔보다가 카타가나가 찍히는 것을 발견! 흠.. 일본어는 찍히는데 말이지..
scari.net 및 sapzilla.org 는 인코딩이 utf8로 대동단결되어 있다. -ㅅ- 대체 뭐가 문제인거냐..

해가 뜰때까지 한글 안나오는거 구글링하고 테스트 하느라고 시간을 다 보내고 잠에 쫓겨서 적당한 선에서 마무리 짓고 나중에 다시 보기로 하고 일단 요정도만 만들어 두었다.

일단 좀 자고... 나머지 만들자. 더 해야되는거 좀 많이 남았는데... -ㅅ-

Posted by 스카리

2008/05/25 09:55 2008/05/25 09:55
, , ,
Response
No Trackback , a comment
RSS :
http://scari.net/rss/response/189

USB 3.0

때가 되었다. USB 3.0 표준이 진행중이다.

기존 2.0대비 10배 향상된 초당 4.8Gbps 의 속도.
하위 호환성 제공.

아직 정식 표준이 발표되지 않았지만, 어쨌든 기술은 또 진보한다.

속도 향상과 하위 호환성이라는 두마리 토끼를 다 잡기 위해서
커넥터의 모습은 기존 4핀을 유지하고 내부에 새로이 5개의 핀을 더 추가했다.
각 한쌍씩 송 수신을 위한 핀이 더 제공된다. 이건 3.0 전용.

고속 환경에서의 EMI 에 대한 문제가 아직 해결되지 않은듯 보이지만,
CPU 의존도가 높은 USB 특성 상, S/W적 측면에서도 부담이 없진 않다.

인텔 측에서는 USB 3.0에 광 전송을 구현하자고 밀고 있다는데, 사람들은 인텔의 의도에 대해서 더 궁금해한다는 얘기가...

아, 이름은 '슈퍼스피드 USB' 가 되겠다. -ㅅ-
그럼 4.0은 울트라스피드?



출처는 니케이일렉트로닉스 한글판 11월호.

Posted by 스카리

2007/11/05 12:59 2007/11/05 12:59
Response
No Trackback , No Comment
RSS :
http://scari.net/rss/response/154

자꾸 야매만 늘면 안되는데....

몇일전 일입니다. 4주 휴가를 갔다 왔더니, 개발중인 제품 (다 끝났다고 알고 휴가를 갔지만, 안 끝났더군요 ;ㅅ;) 에 사용중인 커널이 2.4에서 2.6으로 훌쩍 판갈이가 되는 메이저급 변화가 있었습니다.
칩 벤더에서 상위 버전의 칩을 위한 커널을 다른 팀에 릴리즈 했었는데 거기에 마침 우리팀에서 쓰고 있는 모델에 대한 지원도 있어서 어렵지 않게 판갈이를 했다고 합니다. 쳇, 그러면서 우리가 물어볼때는 해당 칩에 대한 지원은 더이상 없다고 그러더니.... -ㅅ-

어쨌든, 휴가전에는 큰 소리는 못 내고 (안내고?) 그냥 그대로 2.4로 개발하자고 생각했었는데, 반갑게도 2.6 환경에서 덜 피곤해하면서 프로젝트를 마무리 할 수 있겠구나 하고 속으로만 기뻐하고 있었습니다.

그러나..... 해결되지 못한 원초적인 문제가 있었으니... 바로 시리얼 콘솔이 안나온다는 것이었습니다. -ㅅ-

어쨌거나, 복귀하자마자 업부 파악을 끝내고 그날 커밋까지 하는 왕성한 개발력을 발휘하고 있던 저에게-_-v 문제를 해결하라는 지시가 떨어졌습니다. 제가 복귀 전까지 커널작업을 하시던 분도 실력이 출중하신 분이셨는데, 저 역시 아무리 원인을 밝히려 해도 도저히 밝혀지지가 않는겁니다.

어쨌거나 일은 제 손에 떨어졌고, 전에 작업하시던 분은 다른 작업에 투입되서 모양새가 잡무처리반이 된 듯, 기분이 살짝 야리꾸리 해지기도 했는데 그런거 신경쓰지 않기로 다짐했었기 때문에 스트레스 받지 않고 임무에만 집중을 했습니다.

그렇게 온갖 삽질을 하다가, 결국은 밝히기 민망한 방법으로 해결을 했습니다;;; 그러니까 야매로 해결을 해버린거지요. 팀원들은 그게 어떻게 야매냐 문제를 해결한거 아니냐 라고 위로해줬지만, ㅠ.ㅠ 저는 또 야매로 한건 했다는 생각에 왕성했던 개발욕구는 싹 사라지고, K모사 근무시절에 M모사에 놀러갔다가 아는것만 가지고 대충 해결할려고 하고, 절대로 모르는것에 대해서 공부하려고 하지 않는 모모씨에 대한 불만을 토로했던 일이 떠올랐습니다. 그때 M모사의 우현이형은 "여기서 그렇게 일을 처리했으면 비오는날 먼지나도록 맞을텐데...." 라고 했었고, 특그비형은 "먼지나도록 맞고 또 더 맞지..." 라고 했었고, 소장님은 그냥 웃으셨습니다.

나는야 야매쟁이. 싫어라.. ㅠ.ㅠ

Posted by 스카리

2007/04/18 18:44 2007/04/18 18:44
Response
No Trackback , 2 Comments
RSS :
http://scari.net/rss/response/125

개발자적 UI


잘 만들고 못 만들고를 떠나서, 오리지널 wget (CUI버전) 과 극명하게 대비되는, 아주 이질적인 이 첫 느낌....
'개발자를 위한 CUI' 와 '개발자에 의한 GUI' 의 차이라고나 할까요...

#perky 의 jachin님은 '죄악' 이라는 표현을, wooil님은 '사용자에 대한 폭력' 이라고까지.....

오리지널 포스트는 여기에서 보실 수 있습니다. (영문)

Posted by 스카리

2006/12/01 09:30 2006/12/01 09:30
,
Response
No Trackback , 2 Comments
RSS :
http://scari.net/rss/response/82

작년에 이어 올해도 어김없이 대안언어축제를 다녀왔습니다.

작년과 마찬가지로;; 올해도 지각참가를 했는데, 다시는 볼 일이 없을것 같았던 풍경들과 서울(경기?) -> 홍천 가는길은 왠지 모를 향수가 밀려오더군요. -0-

작년에는 토/일 1박2일 행사였음에도 불구하고 회사일때문에!!! 혼자 버스 타고 갔었는데, 올해는 다행스럽게 행사전날 프로젝트 데드라인을 잘 지키는 바람에 제대로 참석할 수 있겠구나 싶더니, 회식에서 심하게 달리는 바람에 오후에 기상, 핸드폰에 찍힌 수많은 부재중 통화에 좌절하며 부랴부랴 달려나갔습니다.

작년과 비교하자면 저는 좀 재미가 없었던 편인데, (늦게 참석해서 행사도 제대로 못 즐긴 주제에.... 작년과 비교해서 그렇다는 것이지, 절대적인 기준으로 보면 늦게 참석을 했어도 재미는 있었습니다) 언어별 세션의 비중이 매우 높아서 늦게 도착한 저는 아무것도 못 들은게 이유가 아닐까 싶네요. 작년에는 늦게 도착했어도 코드레이스라던가 개발자적 유희를 만끽할 수 있는 부대행사들이 있었는데 말이죠... 하지만 마지막날 저녁 엑형의 lua bof는 꽤나 즐거웠습니다. 역시 저는 노가리 체질이랄까, 행사에 늦은 분풀이를 노가리를 까며 풀어댔습니다.

작년의 경험을 약간 과장하여 주변사람들을 좀 꼬셔왔는데, 제일 늦게 등장해서 그 분들께 면목이 없네요.

참가자 수가 대폭 늘어나서 행사진행에 여러 어려움이 많았을테지만, 많은 자봉분들의 노력으로 행사가 별탈없이 진행되어서 참가자로써 매우 고맙게 생각하고 있습니다.

작년과 올해는 지각 참가자로 행사에서 제일 수동적이면서도 제일 쉬운 몫도 제대로 못해냈지만, 다음 행사때에는 확실하게 한 사람 몫을 할 수 있도록 노력해야겠다는 다짐을 해봅니다.

Posted by 스카리

2006/09/04 10:49 2006/09/04 10:49
Response
No Trackback , No Comment
RSS :
http://scari.net/rss/response/45

절호의 찬스

잊은 사람도 많겠지만, 그 전에 알고 있었던 사람이 별로 없겠네요.

스카리는 2년이 좀 넘은 옛날에 거원 (요즘은 사명을 코원, Cowon으로 바꿨지요..) 의 cw300 mp3 player를 구입해서 사용하고 있었습니다. 요즘처럼 usb-storage로 잡히지 않는 물건이라 전용 드라이버를 설치해서 사용해야 했는데, 리눅스 데스크탑 유저인 스카리에게는 여간 귀찮은 일이 아닌지라... (사실 윈도 머신은 널려 있으니까 그다지 귀찮지는 않았지만 괜시리 짜증이 났다고 해두죠. 뭐.. 반항이라거나... -.-) 리눅스 드라이버를 만들기로 작정을 하고 작업을 시작했었습니다.

말도 안되는 삽질로 프로토콜을 리버스해서 파일 리스팅과 그룹정보를 긁어오는데 성공했고, 파일 업로드도 거의 완성단계에 있었으나, 병특 좌절과 회사를 관두는 등의 안 좋은 일이 겹치면서 기억 저 편으로 사라져갔습니다. 그러고보니 그 즈음에 잃어버린것들이 너무 많네요.....

그 때 새로 옮긴 회사에서는 정말 미칠듯한 격무에 다른 것들을 생각할 겨를도 없었던지라 진짜 진짜 새까맣게 잊고 있었는데, 오늘 Lukasz Adamczk 이라는 친구한테서 메일이 왔습니다.

"함께 하지 않겠는가?" 라는 내용이었는데 정말 정말 눈물나게 기뻤습니다. 말로 표현하지 못할 여러가지 감정들이 밀려왔습니다. 잊고 있었던 제 '할 일'을 다시 기억나게 한 것, 동기부여, 오픈소스 커뮤니티의 마력,

바다 건너 저편에 있는 말도 안 통하는 얼굴도 모르는 친구로 부터의 메일 한통.

그 동안 잊고 있었던 잃어버린 것들을 되돌리는데 제 시간을 기여할 생각입니다. 이 건도 그렇지만, 하나 더 있지요. 속죄하는 마음으로, 스스로를 단련시키는 마음으로 꼭 해낼겁니다.

얼마전 KLDP 권순선님과 만난 자리에서도 생각했던 것이지만, 이제 확실히 뭘 어떻게 해야 할지 알았습니다. 잃어버린것 같은 지난 2년여를 다시 되찾아 올겁니다. 못할 건 없지요. 초절정천재소년 스카리니까요. ;)

Posted by 스카리

2006/05/29 06:07 2006/05/29 06:07
Response
No Trackback , No Comment
RSS :
http://scari.net/rss/response/20

저는 이런 직장에서 일합니다.

처음 입사하고 코드를 봤을때의 당혹감.
숱하게 노력을 해봐도 고쳐지지 않는 구멤버의 고집과 이해할 수 없는 코딩세계.
'그래.. 쭉 하던 프로젝트니까 새 프로젝트에서는 확실히 제대로 시작하자..'
하드웨어부터 기존과는 판이하게 다르게 구성하고 시작했는데도, 전혀 고쳐지지 않고 오히려 최악 + 최악 이 되어가고 있습니다.

너의 노력이 부족했느니라.. 라고 말씀하셔도 어쩔 수 없습니다. 여기서 더 노력하는건 제 능력 밖입니다. 1년하고도 반이 지났다고요!! OTL

이런코드가 삽입되어 있었습니다.
735 unsigned char camera_num;
736 unsigned char temp = 0;
737
738 temp = 0x01;
739
740 temp = temp&0x0f;
741
742 if(temp!=0) temp--;
743 else temp = 0x0f;
744
745 temp |= 0x80 ;
746
camera_num = temp ;


이렇게 바꿨습니다.
unsigned char camera_num = 0x80;

띄워쓰기나 들여쓰기 같은걸 나무랄 수준이 아닙니다. 저 코드는 어떤 함수의 몸뚱아리 시작부분에서 바로 긁은 것입니다.

이건 grep 때린거라 컬러링이 안되지만.. 이런 짓도....

_sources/ksr2000app/SMTPServerSetting.cpp:20: system("mkdir /root/smtp");

_sources/SR2App.cpp:1214: system("yes | rm /var/run/ksr.pid");
_sources/SR2App.cpp:1243: system("yes | cp -f /KDB/temp/DATA/ExternalStorages.dat /boot/");
_sources/SR2App.cpp:1244: system("yes | cp -f /KDB/temp/DATA/StorageInfo.dat /boot/");
_sources/SR2App.cpp:1245: system("yes | cp -f /boot/HDD_SERIAL_NEW /boot/HDD_SERIAL_OLD");
_sources/SR2App.cpp:1246: system("yes | cp -f /boot/MACADDR /boot/MACADDR_OLD");
_sources/SR2App.cpp:1247: system("yes | cp -f /boot/MACADDR /KDB/temp/DATA/");

_sources/SR2App.cpp:3419: system("echo /etc/init.d/network start");
_sources/SR2App.cpp:3420: system("/etc/init.d/network start");
_sources/SR2App.cpp:3437: system("echo pa");
_sources/SR2App.cpp:3438: system("pa");
_sources/SR2App.cpp:3440: system("echo adsl &");
_sources/SR2App.cpp:3441: system("adsl &");
_sources/SR2App.cpp:3448: system("echo ifdown eth0");
_sources/SR2App.cpp:3449: system("ifdown eth0");

_sources/ThreadEmailMgr.cpp:160: system("rm -f /KDB/temp/EmailJpeg/*");

ksr_base_bt/_sources/display/SystemManageNetDlg.cpp:328: rtn = system("ping -c 1 -w 3 www.microsoft.com"); // www.microsoft.com

어플리케이션 파트에 똘똘한 신입친구가 격무에 시달리면서도 짬을 내가면서 많이 고쳐놓은건데도 말도 안되게 많이 남아 있습니다. 고칠 시간도 주지도 않고, 아니 고칠 생각이 전혀 없는듯해요...

지금은 보이지 않는데 심지어 이런 코드도 있었죠..

system ("cd ..");

-0-!!!!!

그리고 저런 sense 로 'df'를 system (3) 함수를 호출해서 하드디스크 남은 공간을 체크하는 코드가 있었는데,
그 코드가 1394 장치에 4096 짜리 unsigned char 버퍼를 쓸 때마다 검사하고 있었던 적도 있지요.

백업할 전체 데이터에서 4096b씩 읽어서........
fd에 쓰고 저 지랄 해서 백업 완료까지 퍼센티지를 보여주는!!

write 하는 loop 에다가 그 지랄을 하고 있었죠.
그래놓고 하는 말이 OS팀이 개판이라서 1394 속도가 안나온다나..
1394가 아니라 완전히 플로피 수준이었는데 팔고 있었습니다.....

아.. 심지어 그 루프 바로 바깥에서 백업할 전체 용량 계산이 이미 끝나서 변수에 고스란히 담겨 있는 상황이었습니다.

하긴... 저 같은 하수가 살짝 건드려서 무려 10,000 (일만) 배나 퍼포먼스가 향상된적도 있었는걸요... (먼산)

아무리 노력해도 바꿔지지가 않아요. 정말 이런데 다니기 힘듭니다... ;ㅁ;

꼬리) 쪽팔려서 공개할까 말까 고민하다고 올립니다. 비웃지말아주세요.. (덜덜)

Posted by 스카리

2006/03/15 13:33 2006/03/15 13:33
Response
No Trackback , 11 Comments
RSS :
http://scari.net/rss/response/9