한국 업계만 썩은게 아니였어! 기타취미

얼마전에 시끌 했던 기름치 관련된 오늘자 뉴욕 타임즈의 신나는 "하하 세상은 다썩었네요." 기사 입니다.  중요한 부분만 축약하면.


어종 보존 그룹인 오세아나(Oceana)에 따르면 이번 년도 여름 테스트한 81영업소에서 입수한 150 마리에 이르는 어류중 39%가 잘못된 이름으로 팔리고 있으며.

이 테스트된 81개 영업소는 대부분 맨하튼에 위치(...)

특히 흰 참치(White Tuna)라고 팔리는 어류의 94%는 참치가 아닌 설사를 유발할수 있는 독성을 가진 기름치(Escolar)로 밝혀 졌다.


http://www.nytimes.com/2012/12/11/science/earth/tests-call-mislabeled-fish-a-widespread-problem-in-new-york.html

The researchers, from the conservation group Oceana, said that genetic analyses showed that 39 percent of nearly 150 samples of fresh seafood collected from 81 establishments in the city this summer were mislabeled.

Ninety-four percent of fish sold as white tuna was not tuna at all but in many cases a fish known as snake mackerel, or escolar, which contains a toxin that can cause severe diarrhea if more than a few ounces of meat are ingested....




충격과 공포의 94% ㅎㄷㄷ  

브레이킹 배드 오프닝 시뮬레이터(?) 기타취미


본격 화학선생이 마약 거래상 되는 브레이킹 배드라는 미드를 보면 오프닝에서 타이틀이나 스태프들의 이름에서 원소 주기율 약자를 볼드 처리해주는 쌔끈한 효과가 있다.




화학이 중요한 요소로 나오는 미드여서 인상깊으면서도 좋은 오프닝으로 보인다고 생각 하다가.  문득 "이거 만들때 분명 누군가는 어떤 원소 약자를 써야 할지 고민했겠지?"라는 생각이 들었다. 그래서 이름을 받아서 거기서 원소 주기율 약자가 뭐뭐 나 올수 있는지 찾아주는 간단한 파이썬 코드를 연습겸 짜봤다.  시뮬레이터(?)라고 해야하나.  다음이 코드다.

# This program finds the elements abbrevation in your name and return them in a descending order.
# The heavier objects will be listed first since they are rarer, and just looks cooler.
# Created by Fryman
# v 1.0
# 2012/09/02

name = raw_input("Please tell me the name you would like to test:")
elem = ["h",  "he",  "li",  "be",  "b",  "c",  "n",  "o",  "f",  "ne",  "na",  "mg",  "al",  "si",  "p",  "s",  "cl",  "ar",  "k",  "ca",  "sc",  "ti",  "v",  "cr",  "mn",  "fe",  "co",  "ni",  "cu",  "zn",  "ga",  "ge",  "as",  "se",  "br",  "kr",  "rb",  "sr",  "y",  "zr",  "nb",  "mo",  "tc",  "ru",  "rh",  "pd",  "ag",  "cd",  "in",  "sn",  "sb",  "te",  "i",  "xe",  "cs",  "ba",  "la",  "ce",  "pr",  "nd",  "pm",  "sm",  "eu",  "gd",  "tb",  "dy",  "ho",  "er",  "tm",  "yb",  "lu",  "hf",  "ta",  "w",  "re",  "os",  "ir",  "pt",  "au",  "hg",  "tl",  "pb",  "bi",  "po",  "at",  "rn",  "fr",  "ra",  "ac",  "th",  "pa",  "u",  "np",  "pu",  "am",  "cm",  "bk",  "cf",  "es",  "fm",  "md",  "no",  "lr",  "rf",  "db",  "sg",  "bh",  "hs",  "mt",  "ds",  "rg",  "cn",  "uut",  "fl",  "uup",  "lv",  "uus",  "uuo"]
eled = {"h":"Hydrogen" ,  "he":"Helium" ,  "li":"Lithium" ,  "be":"Beryllium" ,  "b":"Boron" ,  "c":"Carbon" ,  "n":"Nitrogen" ,  "o":"Oxygen" ,  "f":"Fluorine" ,  "ne":"Neon" ,  "na":"Sodium" ,  "mg":"Magnesium" ,  "al":"Aluminium" ,  "si":"Silicon" ,  "p":"Phosphorus" ,  "s":"Sulfur (Sulphur)" ,  "cl":"Chlorine" ,  "ar":"Argon" ,  "k":"Potassium (Kalium)" ,  "ca":"Calcium" ,  "sc":"Scandium" ,  "ti":"Titanium" ,  "v":"Vanadium" ,  "cr":"Chromium" ,  "mn":"Manganese" ,  "fe":"Iron" ,  "co":"Cobalt" ,  "ni":"Nickel" ,  "cu":"Copper" ,  "zn":"Zinc" ,  "ga":"Gallium" ,  "ge":"Germanium" ,  "as":"Arsenic" ,  "se":"Selenium" ,  "br":"Bromine" ,  "kr":"Krypton" ,  "rb":"Rubidium" ,  "sr":"Strontium" ,  "y":"Yttrium" ,  "zr":"Zirconium" ,  "nb":"Niobium" ,  "mo":"Molybdenum" ,  "tc":"Technetium" ,  "ru":"Ruthenium" ,  "rh":"Rhodium" ,  "pd":"Palladium" ,  "ag":"Silver" ,  "cd":"Cadmium" ,  "in":"Indium" ,  "sn":"Tin" ,  "sb":"Antimony" ,  "te":"Tellurium" ,  "i":"Iodine" ,  "xe":"Xenon" ,  "cs":"Caesium (Cesium)" ,  "ba":"Barium" ,  "la":"Lanthanum" ,  "ce":"Cerium" ,  "pr":"Praseodymium" ,  "nd":"Neodymium" ,  "pm":"Promethium" ,  "sm":"Samarium" ,  "eu":"Europium" ,  "gd":"Gadolinium" ,  "tb":"Terbium" ,  "dy":"Dysprosium" ,  "ho":"Holmium" ,  "er":"Erbium" ,  "tm":"Thulium" ,  "yb":"Ytterbium" ,  "lu":"Lutetium" ,  "hf":"Hafnium" ,  "ta":"Tantalum" ,  "w":"Tungsten" ,  "re":"Rhenium" ,  "os":"Osmium" ,  "ir":"Iridium" ,  "pt":"Platinum" ,  "au":"Gold" ,  "hg":"Mercury" ,  "tl":"Thallium" ,  "pb":"Lead" ,  "bi":"Bismuth" ,  "po":"Polonium" ,  "at":"Astatine" ,  "rn":"Radon" ,  "fr":"Francium" ,  "ra":"Radium" ,  "ac":"Actinium" ,  "th":"Thorium" ,  "pa":"Protactinium" ,  "u":"Uranium" ,  "np":"Neptunium" ,  "pu":"Plutonium" ,  "am":"Americium" ,  "cm":"Curium" ,  "bk":"Berkelium" ,  "cf":"Californium" ,  "es":"Einsteinium" ,  "fm":"Fermium" ,  "md":"Mendelevium" ,  "no":"Nobelium" ,  "lr":"Lawrencium" ,  "rf":"Rutherfordium" ,  "db":"Dubnium" ,  "sg":"Seaborgium" ,  "bh":"Bohrium" ,  "hs":"Hassium" ,  "mt":"Meitnerium" ,  "ds":"Darmstadtium" ,  "rg":"Roentgenium" ,  "cn":"Copernicium" ,  "uut":"Ununtrium" ,  "fl":"Flerovium" ,  "uup":"Ununpentium" ,  "lv":"Livermorium" ,  "uus":"Ununseptium" ,  "uuo":"Ununoctium"}
result = []
resultp = []
for x in elem:
    if x in name.lower():
        result.append(x)
for x in result:
    resultp.append(x.title() +': '+eled[x])
resultp.reverse()
print resultp


일단 이름을 유저에게서 받으면 그 이름에서 어떤 원소 약자가 나올수 있는지, 무거운 원소부터 보여준다.(무거운 원소가 더 멋지니까!).  예를 들어 Jonathan Seagull이라는 이름에서 나올 원소 약자를 찾는건 다음과 같다.


코드 자체는 간단하다.  일단 필요한 일을 하는 코드로 초보자로서 연습하는 의미가 더 크다고 할수 있겠다.  마음에 안드는 점은 다음과 같다.

1.  대/소문자 구분없이 문자열에서 특정 문자를 찾는 방법이 아리송 하다.  그냥 다 소문자로 바꿔서 찾기를 했는데.  뭔가 더 효율적인 방법이 있을것 같다.  Regular Expression을 써야 하나?

2. 원소 약자(list)랑 원소 풀이름(dictonary)을 다른 변수로 저장 했는데.  그러지 않고 그냥, 하나의 변수(dictonary)만 쓸수도 있을것 같다.  

3. 원소 주기율이 가끔가다가 업데이트(!) 된다.  그러니까 배우고 있는 CSV를 이용해 외부 파일에서 원소 주기율을 불러오는 것도 해보고 싶다.  

이당은 이제 제껍니다. 정치


당 주인 허락없이 저 혼자서 제 당으로 만들어 보겠습니다.

새누리당 이한구 원내대표는 이날 기자와의 통화에서 "검찰 수사 결과가 국민 법 감정에 맞지 않고 의혹 해소에 부족하다"며 "의혹 해소와 진실 규명이 필요하고 이를 위해 특검이나 국정조사 등 무엇이든 하겠다"


그러니까 내 쩌는 복수의 사시미질특검에 열폭하라고 


2012년 야당원내대표의 일은 여당원내대표가 해주고 있습니다.


자폭하고 있는 사람들 좀 자폭하게 냅둬라 정치

~나폴레옹 보나파르트(1805)




진성 종북 NL들이 자폭하고 그동안 안 먹히던 종북논란이 먹히기 시작해서 신난 마음은 이해하는데 너무 자리피고 북치고 장구치다가, 암세포 같은 NL 종북 세력 털어 내고 갈 기회 까지 놓치는건 아닌가 한다.  사람 심리라는게 동네 소문난 망나니 친척이라도 우리 집에서 욕할때는 고개 끄덕이지만, 사이 안좋은 이웃집에서 욕하면 괜히 옹호해야 될것 같은 욕구가 드니까 말이다.  괜히 외부에서 압력 넣다가 국민들과 같은 진보 세력들한테도 버림 받는 NL세력들만 숨통 돌릴 기회 주는 꼴이다. 

거기다 이런 논쟁의 문제는 국회의원이라는 자리가 단순히 이념적인 이야기를 하는 자리가 아니고 국제관계도 고려해서 별 같잖은 외교적 언행을 해야 하는 자리라는 것이다.  본격적으로 남북한이 전쟁에 돌입해서 이미 그런거 신경 안쓰는 상태라면 몰라도, 어정쩡한 휴전 상태라면 상대가 막장인거 알면서도 외교적 미사어구로 괜한 도발은 피하는 것이 현명하다.  상대방이 막장이라고 레벨을 맞춰줄수는 없으니 말이다.

상황이 이런데 무리하게 종북 논쟁을 끌어서 일종의 이념 테스트를 할려고 하니 북한이 이번에는 방북때 한 발언 가지고 새누리당 인사가 종북이라고 하는 개념이 아득해지는 상황도 나왔다.






사실 NL 종북의 문제성은 유시민의 태극기 발언등으로 진보쪽에서도 수면으로 나왔던 일이다.  놔뒀으면 진보계열이 서로를 상처 입히는 논쟁 속에 새누리 쪽에서는 몸을 아끼면서 어부지리를 할수 있었는데 무리해서 판을 넓히다가 적이 스스로를 파괴하는 일에 간섭하는 꼴이 됐다.

새누리당이나 보수 언론에서도 선거부정에서 판을 넓혀서 종북 문제로 접근하는 것에는 신중론을 제기하기도 했다.  종북발언과 행동은 명확히 문제가 있지만 전략적으로 접근을 했어야 하는데 아쉽다.


...
그러나 선거 부정과 달리 이 부분[종북문제]은 아직 분명히 드러난 게 없다. 과거의 행적, 의심만으로 처벌할 수는 없다. ‘정당의 목적이나 활동이 민주적 기본질서에 위배될 때’는 헌법재판소가 해산을 명령할 수 있지만 반민주적 목적을 내세우지도 않았고, 그러한 구체적 활동이 드러난 것도 없다.





어쨋거나 잘 마무리 되서 암같은 진성 NL종북 세력좀 떨어져 나갔으면 좋을련만...


온라인 코딩 연습 싱패스 도전중

재미겸 경험겸 해서 파이썬을 배우고 있는 중인데.  적당히 연습할 곳이 없어서 고민하다가.  싱패스라는 곳을 발견해서 도전하고 있다.  싱가폴 계열의 사이트지만 영어로 되있어서 알아먹기는 쉬운 편이다.




아래와 같은 화면에서 주어진 문제를 해결하는 코드를 써서 제출하면 자동으로 몇개의 가능한 인풋으로 테스트를 해보고 통과/실패를 결정하는 시스템이다.


문제를 풀어나갈수록 점수를 주는데, 재미있는건 국가별 점수 랭킹 도 있다는것.  한국으로 참가하고 싶지만 IP 고정인지 그렇게는 안된다.

문제 난이도가 초심자를 배려해서 크게 높지는 않은데 가끔 서버쪽 문제 때문에 분명히 내쪽에서는 잘만 풀리는게 안풀릴 때도 있다.  하지만 온라인으로 이렇게 제대로 되있고 무료인 사이트도 없어서 재미는 쏠쏠한 편.  현재 점수는 66점오늘도 아마 10문제 정도 풀것 같다.


1 2 3 4 5 6 7 8 9 10 다음