1년전 처음 접한 이후로 너무 많이 깠지만 아직도 1년은 더 깔 수 있을 것 같은 파이썬.


파이썬의 최대의 단점 중 하나는 Python 3과 2, 두 가지 버전이 존재하며, 이 둘이 서로 호환이 안된다는 것이다.


가장 대표적인 차이점으로 왜인지 모르게 print 함수의 사용 방식을 이야기 하던데 두 언어가 콘솔이 "Python_Sucks"라는 문구를 표시하게 하는 방식은 아래와 같다.


<Python 2.X>

print Python_Sucks

<Python 3.X>

print("Python_Sucks")


간혹 파이썬을 사용하는 프로그램을 돌리다보면 print 문이 들어가있는 구문에서 오류가 발생했다는 메시지를 볼 수 있는데 99%의 확률로 해당 프로그램이 잘못된(제작자가 원치 않았던) 버전의 파이썬으로 프로그램을 돌리고 있는 것이다.


글지기는 fMRI 분석 프로그램을 돌리다가 해당 문제를 경험했는데 default python을 바꾸어줘도 해결이 안되고 프로그램 내부에 어떤 Python을 쓰라고 명령을 할 수 있는 부분도 없고 해서 엄청 빡쳤다.당혹스러웠다. 


잘 아시는 분은 이미 아시겠지만... 


아나콘다를 설치한 유저라면 간단히 문제를 해결 할 수 있다. 


자세한 내용은 아래 사이트를 참고하고, 필요한 부분만 보려면 아래 글지기가 요약해둔 부분을 보면 된다.


https://conda.io/docs/user-guide/tasks/manage-environments.html#creating-an-environment-with-commands




0. 선행조건 : 아나콘다가 깔려있어야 한다.


1. 먼저 콘솔을 실행한다. 우분투에서는 터미널을...


2. 아래의 커멘드를 사용해서 가상 파이썬 환경을 만든다.


>>conda create -n 환경의_이름_(잘외워두자) python=파이썬 버전

예) conda create -n pytEnv27 python=2.7

=> pytEnv27 이라는 이름으로 파이썬 2.7 환경을 만든다.


만드려는 가상환경에 해당하는 파이썬 버전이 없으면 자기가 알아서 깔아준다. (좀 걸리니 커피한잔 마시고 오자.)


3. 해당 환경을 활성화 시켜준다.


<Window>

>>activate 환경의_이름


<Linux>

>>source activate 환경의_이름


환경의 이름을 매번 까먹는 글지기를 포함하는 안타까운 프렌즈라면 아래의 커멘드만 기억하면 된다.


conda info --envs


이것도 기억을 못하는 안타까운 글지기는 아래의 방법을 쓴다.


<Linux>

>>source activate asdfojaeoifjoewjaofi

궁시렁궁시렁

 conda info --envs 를 쓰면 니가 만든 환경을 볼 수 있다는 설명

궁시렁궁시렁


그렇게 하면, 우분투의 경우 터미널 앞에 해당 환경의 이름이 붙어서 나온다!


이 상태에서 프로그램을 실행하면 해당 파이썬 환경에서 프로그램을 돌려볼 수 있다.


부디 이 글이 파이썬 버전에 분노하며 밤 잠을 설치고 있는 불쌍한 대학(원)생을 구원할 수 있기를....

Posted by Knowblesse

이번분기는 스마트폰 시장에서 삼성, LG, Apple의 대 격전이 예상된다.


핸드폰 구매에 앞서, 배터리 문제에 대해서 생각해보자.




1. 핸드폰 내부 공간은 유한하다.



디스플레이와 터치 스크린식 입출력 장치를 사용하는 이상, 더이상 핸드폰의 경량화는 사실 무의미하다.


그리고 이러한 " 더 얇게", "더 가볍게" 경쟁 때문에 점점 핸드폰의 두께가 감소하는 추세인데 


아무리 기술력을 집약해봤자 작은 핸드폰 공간안에 배터리용 공간을 확보하는데 한계가 있다.


이러한 유한한 공간은 결국 작은 배터리 용량과 발열이라는 문제는 낳는다.


어마무시한 사이즈를 차지하는 아이패드 내부의 배터리(우측중앙)




2. 배터리는 소모품이다. 



배터리는 소모품이다. 


그렇기 때문에 배터리 팩에 한해서는 대부분의 핸드폰 제조사가 긴 무상 AS 기간을 두지 않는다. 


특히 배터리는 핸드폰 내부 부품 중 수명이 가장 짧다. 


처음에는 물론 4000mAh라는 큰 용량으로 시작했을지 몰라도 점차 충전용량과 효율이 감소할 것이다.


그리고 노후한 배터리는 폭발의 위험성이 적지 않다. 





3. 탈착식 배터리가 더 안전하다.



리튬폴리머/리튬이온 배터리는 특히 충전중에 폭발의 가능성이 높다. 


탈착형 배터리는 크레들을 사용해서 충전하는 옵션이 존재한다.


그렇기 때문에 적어도 배터리 사고로 핸드폰이 아작나진 않는다.


논란이 된 삼성 갤럭시 노트 7의 폭발 관련 이미지
출처 :  www.digitalhome.ca



4. 침수시 핸드폰을 살릴 수 있다.



방수기능이 없는 핸드폰이 침수가 되었을 때 내부에 전류가 흐르고 있으면 매우 높은 확률로 고장난다.


침수 경험이 있는 사람이면 바로 배터리를 분리하고 완전 건조시켜야 한다는 말을 들어보았을 것이다.


내부에 전도성 액체가 있으면 합선으로 메인보드가 노릇노릇하게 구워지기 때문이다. 


침수가 되어도 황급히 배터리를 빼내면 핸드폰을 살릴 가능성이 훨씬 높아진다.


적어도 데이터는 건질 수 있을지도.


전원이 켜진채로 침수가 되면 그때부터 카운트 다운이 시작된다. 

핸드폰의 생명의 카운트 다운...

출처 : tech.thaivisa.com




5. 배터리 일체형 핸드폰은 모세의 기적을 볼 수 있다.



수명이 다해가는 리튬폴리머/리튬이온 배터리는 부풀어 오를 가능성이 있다. 


잘못된 충전방법으로 인한 과충전이나 열 등으로 인해서 리튬폴리머 배터리 내부에는 가스가 점점 차오른다.


정상적인 배터리라도 이러한 현상이 일어나는데 단지 그 속도가 늦을 뿐이다.


배터리 분리형은 오랜 사용후 폐기하면 그만이지만,


내장 배터리 제품은 핸드폰이 서서히 두 동강이 나는걸 볼 수 있을 것이다. 


방수방진은 당연히 안녕~


처음에는 작은 틈으로 시작했다가 점차 점차 벌어지기 시작한다.

출처 : 링크 




6. 외장배터리팩이 필요없다.



추가로 배터리를 하나 더 구입해 들고다니면 외장배터리팩이 필요없다. 


또한 외장배터리팩이란 놈은 매우 에너지 비효율적인데, 


에너지 변환단계가 많을수록 효율이 떨어진다는 사실을 생각하면 이해하기 쉽다.


사용할 핸드폰 배터리를 바로 충전하는 것은 한단계만 거치지만


외장 배터리팩의 경우 전원 -> 외장 배터리팩 -> 핸드폰 의 두 단게를 거치기에 에너지 효율이 낮다. 


그리고 솔직히 말해보자 내장형 배터리 핸드폰을 쓰는 당신, 


아무리 가볍고 얇게 나온 핸드폰이라도 묵직한 외장배터리팩을 들고 다니면 도로묵이잖아!


묵직한 배터리팩.

그리고 제발 샤오미 배터리팩이 최고라는 생각은 말자 

하.. 이것도 한 한시간은 이야기 할 수 있는데...

(물론 고기 먹고싶으면 무조건 무한리필집으로 달려가는 마인드를 가지고 계시면 적극 추천한다)

출처 : 샤오미




7. 실질적인 Wireless 충전이 가능하다. 



무슨 말인가 하면 내장형 배터리 폰의 입장에서는 배터리의 절반을 무선충전시키며 돌아다닌다는 소리다.


대부분 탈착형 배터리 방식의 핸드폰은 배터리 팩을 두개를 준다. 


이런 상황을 생각해 볼까.


늦은 밤 집에 돌아온 당신은 핸드폰의 배터리가 바닥이 났다. 


내장형 배터리의 핸드폰 사용자라면 콘센트 노예 당첨.


무선이든 유선이든 어쨌든 핸드폰의 위치를 특정한 곳에 고정시켜야 한다. 


탈착형 배터리 핸드폰 사용자를 봐볼까.


1%남은 배터리를 크레들에 물려두고 완충되어 있는 배터리를 바로 끼면 끝.


돌아다니는 그 시점에 이미 핸드폰 배터리(의 일부)는 충전중인 샘. 


뭔 말장난인가 싶겠지만 배터리가 크리티컬하게 작용하는 해외여행에서 갔을때 매우 유용하다.


출처 : www.bhphotovideo.com




지금껏 아이팟터치(도 스마트폰이라 할 수 있을까) -> 삼성 갤럭시S -> 삼성 갤럭시 탭 -> 삼성 갤럭시 S 3 -> 삼성 갤럭시 노트 1 -> 삼성 갤럭시 노트 3 테크를 타왔고 누가봐도 삼성 빠다. 


그동안 LG가 만든 스마트폰들은 스펙이 부진했다. 


삼성이 쨔잔! 하고 기술력을 보여줄때 


LG에서는 핸드폰 뒤에 버튼 달아두고 "우리 소중한건 뒤에 숨기잖아~"라는 소리를 해대고 있었다.

(물론 광고는 좋았다. 광고'만' 좋았다)

(광고 꼭 보시길... 버튼 하나를 이렇게 멋지게 의미를 부여하다니)


출처 : LG G2 광고


애플은 하나하나의 완성도는 높았으나 


그 오만한 소프트웨어, itunes 연동에 신물이 났고 납득이 안가는 AS 정책은 애플과 이별하게 했다.


그렇기에 삼성을 택했지만 내장 배터리 방침을 택한 이상 삼성 스마트폰 제품을 살 일은 없을 것 같다.


V20을 한번 시도해 보련다.

'취미 > Technology' 카테고리의 다른 글

리튬계 베터리와 5V  (0) 2020.10.12
HC-08 블루투스 모듈 아두이노 연결  (1) 2018.09.09
Mendeley와 Cloud 같이 쓰기  (0) 2018.08.24
로지텍 헤드셋 G633 리뷰 및 수리기  (17) 2018.08.05
크레마 카르타  (1) 2018.06.03
Posted by Knowblesse

MIT 대학의 Center for Neural Circuit Genetics at the Picower Institute for Learning and Memory에 소속되어 있는 두 명의 신경과학자 Steve Ramirez와 Xu Liu의 TED 강의다.

Optogenetics를 사용해서 쥐의 기억을 조작하는 내용을 담은 Talk 이다.

Neuron이 firing 할때 translate 되는 gene(아마 c-Fos로 추정)이 있는데 이를 이용해서 특정 상황을 제시하고 그 상황에서 활발하게 활동하는 neuron들만 specific하게 labeling을 할 수 있다.

또한 이 gene의 activity-dependent한 translation의 성질을 이용해서 특정 단백질을 같이 발현시키는 것이 가능하다.

이 gene 뒤에 labeling용 eGFP(enhanced Green Fluorescent Protein), 그리고 optogenetic 용 유전자를 붙여두면 앞의 activity-dependent gene이 전사될 때 뒤의 두 단백질도 같이 전사가 되도록 할 수 있다.

이를 통해서 Labeling과 Control을 같이 할 수 있게 된다.

참고로 optogenetic용 유전자는 Channel rhodopsin으로 Light sensitive하게 활성화 되는 light-gated ion channel이다. 특정 파장의 Blue light를 비춰주면 ion channel이 열리고 세포 외부에 있는 양이온들만 선택적으로 통과시켜서 depolarization을 시켜 뉴런을 강제로 활성화 시킨다.

이렇게 특정 상황에서 활성화 되는 ( = 아마 그 특정 상황에 대한 기억을 담고 있는) 뉴런에 표지와 스위치를 붙여놓음으로서 언제든 실험자는 특정 상황에 대한 기억을 인출 시킬 수 있다.

또한 이러한 원리를 응용하여서 강제로 기억을 인출시키는 동안 다른 기억을 주입하여 이전에 형성되었던 기억을 조작할 수 있다.

이터널 선샤인이나 인셉션과 같은 미래가 오는 것일까.

두 과학자는 마지막 끝을 이렇게 맻는다. 

"우리는 이제 진실로 엄청 흥미로운 순간에 살고 있습니다. 과학의 발전 속도에 더이상 제한이 없고 단지 우리의 상상력에 제한을 받는 시대가 온것이죠."

 Indeed, we are living in a very exciting moment where science doesn't have any arbitrary speed limits but is only bound by our own imagination.

발표를 들으면서 몇가지 기술의 한계점들을 생각해 보았다.

* 한계점

안타깝게도 이미 형성된 기억은 조작을 할 수 없다.
- 특정한 기억이 형성되는 시점에 재조합된 DNA를 injection 해야하는 것인데 이런 한계점이라면 PTSD나 우울증 같은 치료에는 사용할 수가 없게 된다.
-> 그러나 회상만으로도 충분히 가능하지 않을까? 최면상태나 발작, 혹은 비슷한 상황을 연출해서 해당 기억을 최대한 꺼내낸뒤에 labeling을 한다면...?

"그 상황에서 활발하게 활동하는 neuron"은 전부 해당 순간의 기억에 관여하는 뉴런이 아니다.
- Default Network 라고 아무것도 안하는 유휴상태에서도 활발히 활동하는 뉴런들이 있고 모든 뉴런들은 정지해있다가 활성화되면 firing을 하는 digital 적인 신호를 보내지 않는다. 실제로 뉴런간 연결에 큰 영향을 미치는 것은 firing 여부가 아니라 firing rate이다. 즉, 모든 뉴런들은 조금씩은 활동을 하고 있다고 설명을 할 수 있다. 그렇다면 단순히 "그 상황에서 활발하게 활동하는 neuron"은 실제로 기억을 encoding하는 뉴런보다 더 많은 뉴런을 포함하고 있을 가능성이 있다. 
-> Blocking이 필요하다. 특정상황 바로 이전까지 활동했던 뉴런들의 firing rate을 잡고 특정상황에서만 활동이 활발하게 증가한 neuron들만 targeting하는 기술이 필요하다. EEG에서 noise를 제거하듯이.

영구적인 기억 조작이 일어나지 않는다.
- 사용된 기술은 optogenetics 이다. TED 강의에서도 강조했듯이 이는 빛보다 빠른 temporal resolution을 자랑하지만 빛의 특성상 영구적으로 존재하기 힘들다. PTSD 환자의 안좋은 기억을 제거하기 위해서 이용된다면 계속 뇌속에 불을 켜놓고 살아야할 것이다!
-> 영구적인 조작을 하기 바로 이전단계로는 사용할 수 있을 것이다. 미리 channel rhodopsin을 달아두고 레이져를 쏘여 기억이 제대로 조작되었는지를 확인하고 약물처리...



Posted by Knowblesse