어쩌다보니 내가 사랑해마지않는 도구는 UltraEdit나 Eclipse가 아니라 Microsoft Excel이다.


간혹 뭔가 작업하다보면, 화살표키로 셀간 이동을 해야되는데 화면째로 옮겨지는 상태가 된다.



이때 왼쪽 아래를 보면 SCROLL LOCK 이라고 나오는데, 이걸 클릭해서 끈다 해도 풀리지 않는다 !


내 노트북이 HP Folio 1040 G3 인데, 아마 스크롤락 키가 없는 다른 노트북도 비슷하지 않을까 싶다.


내것은 fn + C 누르면 설정되고, 다시 누르면 풀린다.


휴우... 살았다 !

페이스북 생활코딩 그룹에서 발견한 문제.

왠지 재미있어 보여서 (라고 쓰고 어떻게 풀지 감이 안와서 라고 읽...) pycharm을 켰다.


자존심상 일단 다 풀어놓고나서 댓글을 보니 http://seungkwan.tistory.com/m/8 이분은 두 가지 답이 있다고 친절히 써주셨다.


일단 감이 안와서 무식한 방법을 해본다.

1. 순서를 바꾸지 않은 모든 부분집합을 구한다. 모든 원소가 있을수도 없을수도 있으니 부분집합의 수는 2^N개. 구하는건 재귀호출을 쓴다.

def tuple_to_sublist (_tuple):

    result = []

    if _tuple == ():
        result = [()]

    else:
        for _subtuple in tuple_to_sublist(_tuple[1:]):
            result.append(_subtuple)
            result.append((_tuple[0],) + _subtuple)

    return result

2. 각각이 점점 증가하는 순서로 되었는지 확인한다. 비교할 원소의 수는 N x 2^N개.

_maxtuple = ()

for _tuple in _sublist:

    if _tuple != ():

        _before = _tuple[0]-1
        _flag = 1

        for _element in _tuple:
           
if _before >= _element:
                _flag = 0
            else:
                _before = _element

        if _flag == 1 and len(_maxtuple) < len(_tuple):
            _maxtuple = _tuple[:]


자질구레한 검증코드가 마음에 안든다. 반복횟수도 너무 많다. 더 좋은 방법 없을까? 당연히 있겠지...

생각을 바꿔본다. 서브리스트를 만들 때, 맨 앞 것 보다 뒤의 것이 작은 숫자가 있으면 빼버리는걸로 해보자. 그러면

    result.append((_tuple[0],) + _subtuple)

요기를 바꾸면 되는데, 이왕 손대는거 그럴듯하게

     result.append((_tuple[0],) + tuple(filter(lambda x: x > _tuple[0], _subtuple)))

요렇게 바꾸면 된다. 

그러면 순서가 맞는 놈만 나올테니, 나중에도 다 비교하지 말고 가장 긴 놈만 꺼내면 된다.

이놈도 람다로 그럴듯하게 해본다.

    print (max(_sublist, key=lambda l: len(l)))

캬... 파이선 좋다.


완성코드

 def tuple_to_sublist (_tuple):

    result = [()]

    if _tuple != ():
        for _subtuple in tuple_to_sublist(_tuple[1:]):
            result.append(_subtuple)
            result.append(tuple(_tuple[0]) + tuple(filter(lambda x: x > _tuple[0], _sub_tuple)))

    return result

number_tuple = (0, 8, 12, 2, 6, 14, 9, 5, 13, 3, 11, 7, 15)

print (max(tuple_to_sublist(number_tuple), key=lambda l: len(l)))

심플하다! ^^

2018.2.7일자 딜버트

월리 : 시스템의 심각한 버그를 찾았어요. 그거면 우리 제품은 일주일이면 쓰레기가 될거예요.

월리 : 연봉을 대폭 인상해주시면, 부장님이 회사 주식을 다 파실때까지 아무에게도 얘기하지 않을께요.

뾰족머리 부장 : 그...그러지!


< 2주 후 >

뾰족머리 부장 : 버그 얘기가 왜 아직 안나오지?

월리 : 제가 고칠 수 있냐고 물어보셨어야죠?

2018.2.12일자 딜버트

뾰족머리 부장 : 딜버트의 멘탈이 걱정되네. 요새 아이디어가 영 별로야.


애쇽 : 딜버트의 아이디어는 총명한데 부장님이 이해 못하신 것일 수도 있지 않을까요?


뾰족머리 부장 : 음... 애쇽의 멘탈도 걱정되네.

2018.2.5일자 딜버트


딜버트 : 프로젝트 재정이 악화됐어요. 중단해야 합니다.


뾰족머리 부장 : 만일 지금 중단했다간 이미 들어간 1천만달러가 날라간다구.


딜버트 : 만일 나중에 중단하면요?

뾰족머리 부장 : 끝내지 않는게 핵심이지ㅋ

요새는 웹메일이 대세다. 회사에서도 메일클라이언트를 쓰게 안해주고 웹으로만 접속시켜준다. 웹메일이 많은건 어쩌면 이메일 악성코드가 창궐하면서 보안상의 이유로, 혹은 IT의 관리편의성(및 안정성?이라고 해두자..) 때문 아닐까 싶다.

IT회사 다닐때는 잘 몰랐는데, 보통회사의 IT부서를 맡아보니 메일클라이언트 설정잡아주고 오류 고치고 서버 챙기고 인코딩 챙기고 보통 일이 아니다. 게다가 메일클라이언트는 IMAP이나 Exchange같은 연동방식은 외부연결을 위한 포트개방등..이 필요할수 있고 POP방식은 초기에 데이터량을 잔뜩 만들어낸다거나 싱크 잘못해서 메일이 무한복사된다거나 이슈가 많았다.

그래서들 웹메일만 지원하는걸로 죄다 바꿔놓고는, 그룹웨어 요구사항 얘기하라 하면 메일 자동분류를 해달라느니 백업기능을 달라느니 주소록관리를 해달라느니 한다. 그것들 메일클라이언트에서는 태고적부터 지원하던 것들인데. 외국계 회사에서 아웃룩으로 조직도 연동되고 메세징이나 일정관리 되는거 보니까 와 이런게 되는거였구나 싶기도 하고. 여튼 그러다보니 간혹 POP나 IMAP을 허용해주는 곳을 만나면 기쁘기 그지없다. 속도도 빠르고, 입맛에 맞게 바꿔볼 수도 있으니.

요샌 회사에 묶인 몸이다보니(라고 쓰고 나이드니 귀찮아서라고 읽...) 웬만하면 기본프로그램을 쓴다. 윈도우 사용자니까 예전엔 OE(아웃룩익스프레스), 요새는 아웃룩. 아웃룩이 무거워서 싫었는데, 요샌 OE도 Live! Mail 인지 뭔지로 바뀌고 기능이 일반화 되었다. 즉 편해보이고 멋져보이지만 써먹기 불편해졌다..라기보단 다시 공부를 해야한다. 그래서 그냥 Outlook이 좋더라.


OE를 열심히 쓰던 시절, 불편하던게 있었다. PC 밀다보면 자칫 데이터파일이 날아가더라는점. 저장소를 바꾸면 되는데 메일부터 등록하고나면 (POP였으므로) 이놈이 일단 서버에서 메일을 읽어와버리고, 그다음에 다시 옮기려 하면 복잡했다. 메일이 두세개씩으로 늘어나는것도 흔했다. 그래서 윈도우재설치 등을 할 때는 데이터파일 경로를 뒤져서 DBX 파일을 백업해두고, 새로 설치한 다음에 메일 설정을 하고, 폴더를 원래처럼 만든 다음에 OE를 끄고, DBX를 덮어씌우는 방식으로 복구를 시켰다.

몇 년 전에 PC 밀면서 그 기술(?)을 시전(??)했다. 그런데 어라??? 안뜨는 것이다. 계속 잘 되던 방식이었기에 파일째로 덮어씌웠는데, 이전 메일이 나오지 않는 것이다. 당황해서 이리저리 10번은 해본 것 같다. 결국 몇년간 모아둔 중요한 메일들을 포기하고, 작업하던 데이터파일만 남겨놨다. 이후에도 OE든 Live든 아웃룩이든 설치할때마다 불러오기를 해봤으나, 복구되는건 고사하고 불러오는 기능 자체가 없는게 허다했다. 뭐, 내 살같이 소중한 데이터도 떠나간다는걸 받아들이니 오히려 인생이 편해졌다. (라고 생각하게 되었...;;)


최근에 PC가 말썽이라는 핑계로 파일들 열어보다가 백업을 다시 발견했다. 이거 1GB가 넘는데 4년?쯤 묵혀둔 상태다. 언젠간 열어주는 놈이 나타나겠지 해서. 마치 불치병 걸린 재벌이 죽기전에 냉동인간이 되듯이;

DBX to EML 을 구글신께 여쭈었다. 여럿 나타난다. 돌려보니 오오! eml로 추출 된다! pst 형태로 변환도 된다.
...만, 보통 30~60달러씩 한다. 뭐, 그 돈이 아까울쏘냐! 메일이 그게 몇천통인데..

그런데 막상 써보니까, 그놈이 그놈인데 묘하게 전부 되지는 않는다. 데이터파일별로 어떤건 A 파일의 메일 본문이 인코딩 깨져 나오고, 어떤건 B 파일의 발신자수신자가 인코딩 깨져 나오는 식이다. 소프트웨어 2개를 사면 되는데 (아까운 10만원 ㅜㅜ) 무언가 안된다는건 완벽하지 않다는 소리라, 믿고 할수가 있냐말이다..


* 캡쳐 넣어가며 하소연을 하려다가 그냥 두는 것으로... ㅌㅌㅌ


PC에서 금융거래 비스름한 무언가 하려 하면 깔리는게 안랩 세이프 트랜잭션이다.


친절하게도 hosts 파일 변경을 감지해서 알려준다.


hosts 파일 보기 클릭하면 원래 뭐였는데 뭐로 바뀌었다고 알려주고, '예' 하면 원복시켜준다.


'아니오'하면 바뀐걸 유지하고, 다음에는 바뀐걸 원본으로 인지한다


... 고 생각하는데, '아니오' 하면 틈틈이 계속 뜬다.



매번 'hosts 파일 보기' 한 다음에 '아니오' 하다보면, 변경전 파일이 바뀌지 않더라.


귀찮아서 삭제해버리면 잠잠하다가 (없어졌으니 ; )


다음에 재설치되면 그때 또 똑같은 소릴 한다.


최소한 설치될 때의 hosts 파일이 최종본이라고 생각해줘야 하는거 아니냔말이다;



안랩에 전화 걸었더니, 제품코드를 넣으라 한다. 그렇다면 은행에다가 따져야 한단 소리인가?


오늘도 일단 삭제처리 해드린다. 빠득.

+ Recent posts