블로그 이미지
kalstein

여러가지 프로그래밍 관련이나...신변잡기적인 글들을 남기는 블로그입니다. 지식은 나누는만큼 강력해집니다 ^^

Rss feed Tistory
잡동사니 2015. 2. 10. 09:06

파일 라인수 카운트하기

find랑 wc랑 엮어서 쓰는법.


find . -type f \( -name '*.c' -or -name '*.h' -or -name '*.cpp' \) -exec wc -l '{}' \; > file_lines


,
Programming 2014. 6. 3. 13:25

WWDC 에서 새로운 언어를 발표하다니...

object C 를 그동안 열씨미 해오신 개발자분들은 '아 또 뭐 새로해야되나'

하는 심정일지도. ^^;;


애플의 취지는 이렇지않을까 싶다.


현재 iOS랑 MacOS는 바이너리 호환이 되지않는다.

당연히 한쪽은 x86이고 한쪽은 ARM 이니까.

이걸 깨고 싶은것 같다...


스크립트 언어인 이상, 플랫폼이 지원만 하면 얼마든지 돌아간다.

소스가 공개되는 문제점은 뭐 애플이 알아서 해결할꺼고.

(1차 컴파일된 내용으로 패키징을 한다거나 뭐 그런식.

python도 돌려보면 스크립트를 1차 컴파일한 pyc 파일이 돌아간다)


맥북에어의 신형에 ARM을 올려보는 시험을 하니마니 라는 루머가 돌았었는데

아무리 ARM이 발전했다고 해도 하스웰의 위엄에 따르지는 못하나보다 ㅋㅋㅋ

성능이 안나오는게 앞으로도 ARM이 x86의 성능을 따라가기란 쉽지않다는걸

느꼈을테지. 

,
잡동사니 2011. 9. 1. 10:42

Windows 7 CPU load 100% 문제 해결!!

최근들어 자꾸...CPU load가 25%를 올라가고 팬은 미친듯이 돌고... 하는 현상이 지속됐다.
작업관리자 보면 taskhost.exe 가 문제. 일일히 알아보기 귀찮아서 강제 종료 시켰었는데
더이상은 근본적인 대처없이 못지나가겠다고 판단. 좀 살펴보기로 했다!!

1. taskhost.exe가 뭐임? 먹는건가?
알아보니 등록된 dll들 쭉 살려서 뭔가 작업해주는녀석.
근데 dll 중 하나가 맛이 가면 사용자가 보이는건 taskhost.exe만 맛이간것처럼 보이는것. -_-
리소스 모니터로 봐도... 어떤 dll이 문제인지는 알수없다;;;

2. 구글신께 문의!
결과... http://answers.microsoft.com/en-us/windows/forum/windows_7-performance/the-taskhostexe-application-consumes-50-60-of-the/0882ab46-43ee-4d90-8404-6802f8f4f2cf
Process Explorer라는걸로 어떤 dll이 문제인지 알수있다고 한다. 실행!!

3. Process Exploerer 결과 (관리자 권한으로 실행)
taskhost.exe에 연결된 dll들이 죽 나열되고 어떤 dll이 cpu를 잡수고계신지까지 나온다 +_+
살펴보니 RacEngn.dll 라는녀석이 다먹고있음... 또 검색!

4. 구글신께 문의! 2
http://www.bitcrazed.com/post/2011/02/02/Windows%E2%80%99-%28RACENGN%29-Reliability-Analysis-Calculation-Engine-eating-my-laptop!.aspx
오호...해결책은 RAC이라는 녀석이 만드는 DB가 있는데 거기 데이터가 맛이가면 그렇다고하네...
삭제해서 initial 하면 된다는듯.

5. 최종!!
taskhost.exe를 강제종료후, %programdata%\Microsoft\RAC\StateData\ 에 있는것 삭제.
아주 잘된다 ㅎㅎㅎㅎㅎ CPU로드도 문제없고!! 해결완료!!



요약 : 잘모르겠으면 구글님께 문의해보세요 -_-; 네이버는 안갈켜줍니다 ㅋㅋ 


추가 : 다시 똑같아졌다 ㄷㄷㄷ
그래서... "작업 스케쥴러" 에서 RAC를 꺼버렸다 -_-;;;
,
잡동사니 2011. 8. 3. 20:26

창조, 혁신, 임직원의 편의성. 따위 알게뭐냐 -_-;

회사에서 메일 클라이언트로 Thunderbird를 사용중이다.

신입 입사후 가장 먼저 사용했던것은, 회사홈피에서 activeX로 제공되는 "개인용 메일저장함"기능.
네 그렇습니다. 이틀써보고 쓰레기인걸 파악하고 버렸습니다 -_-;;;;
그담이 Outlook express. 뭐 기본제공되는만큼... 그냥저냥 쓸만하다.
조금 기능상의 제약이라던가 UI의 편의성이라던가... 에 따라 Outlook으로 갈아탔다가...

아놔 ㅡ.ㅡ;; Outlook은 너무너무 느리다.
길게는 6개월정도는 메일을 저장해둬야하는데, 저장되는게 text만이 아니다.
각종 바이너리 파일들도 같이 저장해야되는데...
파일사이즈가 커지면 커질수록 검색은 느려져간다 -_-;;;;;;

그래서 찾은게 썬더버드.
좋다... 매우 깔끔하고, 검색빠르고, 간결하다.
군더더기가 없다.
마치 구글 홈페이지같은 느낌이랄까.
수개월동안 쌓아놓은 내용도 검색하는데 크게 부담이 없다.
(물론 본문내용으로 검색하면...ㅎㄷㄷ하지만)

그런데 오늘.
출근 후 컴퓨터를 켰더니 회사 보안 프로그램이 썬더버드를 강제종료 시켜버린다.
응!? -_-;;;; 보안상의 문제란다;;;;
왠 보안??

참고로, 사내에서 메일을 보내려면, 인트라 홈페이지에서만 가능하다.
메일 클라이언트는 단순히 받기전용이다.
이것도 "보안"이라는 미명하에 임직원이 못쓰게 만들어놨다.
수동적으로 "받기"만 지원되는데 무슨 보안이 문제인가?

대략 들어보니... 사내에서는 Fasoo 라는 보안 이라고 쓰고 쓰레기라고 읽는다. 프로그램을 꽤나 애용하는데,
그녀석이 오피스쪽만 사용가능한 모양이다. (뭐 DRM과 연동이 어쩌구저쩌구하는듯)
사내에서 Fasoo의 악명은...음.
"nProtect 의 대항마" 로 불리우고 있다;;;

보안 관련 부서에서는 해결책을...
"메일 클라이언트는 Outlook으로 대동단결!! 딴거는 못씀!"
부왘ㅋㅋㅋㅋㅋ
멋지지않나.

창조와 혁신. SW의 중요성. 등을 외치며
임직원들에게는 하나하나 모든것을 제약거는 상황.
정말 정말 찾다 찾다 어쩔수없는 상황이라서 하는거라면 뭐 받아들일수 있다.
소통이 괜히 소통이겠는가. 상황설명과 함께 이해를 구하고 그걸 받아들이는게 소통아닌가.
그러나, 소통따위 쥐나 줘버리고 언급없이 프로그램 차단이라니 ㅋㅋㅋㅋ

수많은 임직원들의 불평이 있었나보다.
오후에는 풀어줬다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
근데 뭔가 제약을 걸어놔서... 프로그램이 구동은 되는데;; 새메일 읽으려고 클릭하면 10초이상 걸린다;;

에효... 게시판에 말들 많긴한데...
지금까지 보면 보안부서 맘대로 행해버리는 경우가 워낙 많아서...어찌될런지.



ps : 게시판 댓글들도 꽤나 가관. "메일 그거 뭐 얼마나 검색이 빨라진다고 그래요? 회사서 쓰라는거 쓰세요" 이따위... ㅋㅋㅋㅋ 그 댓글의 댓글은 "님이 개발 한번 해보시죠. 그쪽부서는 메일같은거 대충보니까 그런가보군요" ㅋㅋㅋㅋㅋㅋ
,
잡동사니 2011. 6. 26. 19:49

HDTV 다음팟플레이어로 시청하기

Fusion HDTV 7 cool 모델 사용중인데, 전용 SW는 좀 엉망이다.
차라리 다음팟플레이어로 보는게 훨씬 나음.

세팅법:
안테나로 세팅.
"Microsoft 기본 튜닝사용" 체크.
채널검색 후 사용.
,
카테고리 없음 2011. 6. 13. 16:55

python 배포이미지 만들기.

setup.py 좀 만들어주고...
디렉토리에 맞게 파일들 다 넣었으면.

setup.py bdist_wininst

이거 하나면 오케바뤼 (windows환경에서만)
setup하는 exe파일을 만들어준다!! +_+
,
Programming/Python 2011. 6. 1. 10:28

Python 느님의 위엄. callback 함수 작성이 너무도 쉽다!

C/C++에서는 callback 함수 한번 작성하려면 상당히도 귀찮다.
대표적인 callback 함수 쓰는게 sort() 라고 볼수있다. (STL에서는 for_each도 있고)
(callback 함수라기보다는 임시함수라고 하자. 그게 더 맞는 표현이니...ㅋ)

간단히 표현하자면, 함수호출시 인자값으로 함수포인터를 넘겨주는건데...
이게 좀 code reading 상 불편한 점이 있다. 왜냐고?

func_A (int i)
{ .... }
func_B(callback_func func)
{
    func(10);
}
main_func()
{
    func_B(func_A);
}

보통 이런 구조가 되는거다.
그러면, main_func을 읽고있다가 func_B 를 호출하는걸 알았다.
근데 func_A는 또 뭐야? 뭘 어떻게 비교하는거지?

이런 불편함때문에 boost lambda라는것도 있다.
저런 함수들은 보통 사이즈가 작고 구문도 간단한 경우가 많다.
그래서 람다 함수로 작성하면 func_A 같은걸 따로 작성하지않을 수 있고
코드 리딩도 쉬워진다.

반면, 복잡한 함수라면? 조금 까다로워진다.
어려운 람다함수를 쓰느니 그냥 func_A를 쓰는게 더 나을수있다는것.
자 그러면 python에서는 어떨까. nested function 선언이 가능하다!

>>> def outer():
       x
= 1
       
def inner():
           
nonlocal x
           x
= 2
           
print("inner:", x)
       inner
()
       
print("outer:", x)


>>> outer()
inner
: 2
outer
: 2

특히나, "nonlocal" 키워드를 통해서, 일반 function과의 변수를 공유할수도 있다.
(공유하기 싫으면 "nonlocal x" 만 지워버리면 된다. 그럴경우 outer의 x와 inner의 x는 전혀 별개의 변수)
정말 python은...쓸수록 귀요미인듯 =_=;;;
,
Programming 2011. 6. 1. 10:12

클로져(closure)란게 뭐지?

난 C/C++ 를 더 오랫동안 잘 써왔다.
최근들어서 그래도 이리저리 뒤적거리는게 python.
C/C++에 비해 유지보수의 장점도 있고, 기본제공되는 라이브러리도 다양하고, 여튼 상당히 괜찮은 느낌이라서 사용중인데... closure라는게 있길래 좀 살펴봤다.

알아보니..음 뭐랄까. C++의 binding과 비슷했다. (boost 의 bind)
a,b를 인자로 가지는 func(a,b)이 있다손 치면, b라는 녀석을 고정시키고 func(a)를 만들어낸달까.

뭐 사실... 그닥 실용적인 예제는 모르겠다. -_-;;;;
굳이 꼽자면 Command 패턴에 사용하기 좋다는것. (bind를 활용해서도 잘 쓰니까...)
그정도...? 그래도 이런게 언어적으로 지원되는거랑 안되는거랑은 많이 차이난다.
쓸려고하는데 지원이 안되면 꼼수로 뱅뱅 돌아가야되거든...ㅎ

,
잡동사니 2011. 5. 4. 08:50

KT가 와이파이 핸드오버를 한다??

http://news.nate.com/view/20110503n12574

이런 기사가 있어서...좀 이상한것 같아서 한마디 써본다.
이게 말이되나 모르겠다.

현재 WiFI라고 불리우는것은 Wireless Physical Network 규격중 하나인 802.11 a/b/g/n 을 칭한다.
그런데...802.11 규격이라는것이, 고정점 무선네트웍을 지향하는 규격인지라, Handover에 대한 스펙이 없는것으로 알고있고, 있다고 해도... 지원이 어렵다. (사실 스펙을 넣을 필요도 없다. 아래에 설명을 보시라...)

WCDMA 망에서의 H/O는 다음과 같이 시행된다.
1. 단말기가 WCDMA 기지국 신호를 (pilot 채널이라는게 있다) searching 하고있다.
2. 그리고 기지국 측에서 Neighbor cell 이라고 근처에 인접한 cell의 정보를 단말기에 이미 알려준상태.
3. 단말기가 현재 cell의 반경에서 좀 벗어난 느낌이 들면, 즉 neighbor cell의 신호가 훨씬 좋다고 생각되면
   H/O 요청을 기지국에 한다.
4. 기지국에서 H/O 과정을 시행한다.

WiFi에서 안되는 이유...를 알 수 있을것이다.
일단 wifi는 전국망 뭐 이런식의 네트웍이 아니기때문에, neighbor cell 을 등록하거나 그런 과정이 없고,
단말기가 wifi 신호가 떨어진다고 해서 따로 H/O 요청하는 과정이 없다.
걍 끊어져버린다 =_=;;;;; 혹은 이미 알던 다른 Wifi AP 가 있으면 거기로 붙긴한다.

추가로 KT가 여러개의 특허를 냈다고 하는데, 그건 걍 특허고... 802.11에 들어가는 표준스펙을 KT가 추가할순 없다. 갖가지 표준회의가 열리며 거기서 H/O 관련된 표준규격을 제시하고, 회의통과가 되어야되는건데 그런내용은 전혀 없고 특허만 갖고있다고 한다... 이건뭐지 대체 =_=;;;

뭔가 개발은 했을테니... 좀 더 알아볼 필요는 있을꺼같다;;;;
,
잡동사니 2011. 4. 30. 12:05

iPhone 3Gs GPS 문제발생...

배터리가 요새 좀 수명이 다된거 같아서...집에서 DIY 했다...
근데 ㅡ,.ㅡ;; GPS가 안잡히는 문제가 발생 ㅠㅠㅠㅠ
다시 분해조립 해봤지만...여전히 안잡힘...

이게 완전히 안잡히는건 아니고, 대충 3G 기지국 GPS 정보까지는 받아오는데,
정확한 실제 위치가 안잡혔다.
(아이폰 기본 맵어플에서는 위치 정확히 잡은 후에 깜박거린다.
그 전까지는 그냥 고정 원 모양만 나오고 원 크기도 제법 크다.)

그래서 1차로 SW reset.
http://forums.macrumors.com/showthread.php?t=517227
일단 이거보고 따라해봄...
안해봤던 탈옥까지 해서 다 따라해봤으나... 결국 실패.

결국은 내가 조립을 잘못했다는 결과에 이르렀다.
범위를 좁혀보자...라고 생각하고 대체 뭐가 어떤 부품인지 살펴봤다.

http://www.ifixit.com 를 살펴보니... 각 번호별로 어떤것을 담당하는지 알수있었다.

이 사진은 iPhone 3G 모델인거 같은데, 7번이 빠져있다. 3Gs에서 7번은 왼쪽 하단의 노란색 부분에 있다.
각 부분 설명을하자면...

1,2 -> 오른쪽 하단에 보이는 3개의 단자중 끼우는 방식인데 상판패널과 연결되어있다. LCD및 터치와 연관된다.
3 -> 1,2번 사이에 있는 녀석인데, 조도,근접 센서와 연관된다.
4 -> 아이폰 하단의 스피커,마이크 부분과 연관된다.
5 -> WiFi & GPS 안테나
6 -> WiFi & GPS & 이어폰 단자의 각종 센서 및 정보 관련 (일듯으로 추정됨)
7 -> 3G 안테나

WiFi & GPS 의 안테나는 USIM 뒤쪽에, 3G 안테나는 정확히는 모르겠으나, 3Gs의 외부에 나와있는 은테...가 그 역할을 하고있는게 아닌가로 추정되었다.
일단 나의 경우는 GPS가 제대로 동작하지않으니 ,5,6번이 문제라고 볼수있다.

세밀히 살펴보니 5번이 정확하게 들어가지않은것을 확인할 수 있었다. OTL
어설프게 끼워져있었던것. 어설프게 끼워져있어도, GPS를 제외하고는 정상동작하였으니 쩝;;;
여튼 안테나 주변의 먼지도 제거해주고, 깔끔히 재조립 후 테스트해보니...

굿!! 아주 잘된다!! ㅎㅎㅎ



결론 : DIY할땐 조립 잘하자 =_=;;


ps : 전화하는데 이상하게 암것도 안들려서 보니까... 근접센서 제대로 연결안됐나보다...ㅠㅠ 얼굴로 화면이 터치가 되어서 '소리끔'이 켜졌다 -.-;; 집에가서 3번 다시 연결해봐야할듯하다.

ps2 : 3번 재연결 후 근접센서 잘 동작함... 휴. 핀셋으로 잡아서 확실히 넣어주니 잘 동작한다. 다행!! 이제 전화도 아무 문제없이 사용!!

ps3 : 조도 센서는...고장났나? 제대로 동작안하는거 같은데 -.-;; 뭐 근데 사실 잘 안쓰니까 상관없긴함.
,
TOTAL TODAY