All posts by V

rm -rf /

재밌는 트윗을 봤다.

ㅎ… 호옹이?

글타래 중간에 링크된 systemd github 이슈에서는 써야하기 때문에 쓰기 권한으로 마운트해야 하는 것이 맞다고 되어있다. 그러니 어지간해서는 앞으로 바뀔 가능성은 없다. 인텔 시큐리티의 PDF 문서도 링크해주는데 44페이지를 보라고 한다. 좋은 벽돌이다.

Fork Bomb

:(){:|: &};:

Q : 쉘에서 다음 명령을 수행하면 어떻게 되는가?

A : 제한 사항이 없는 경우라면 쉘을 쓸 수 없게 된다.

설명

리눅스 사용자라면, ;가 명령을 분리하기 위해 넣은 것임을 알 수 있다. 즉 위 스크립트는 함수 :를 실행한다.

:;이전에서 정의하고 있다. 브래킷 안의 정의된 내용은

  1. : 자기 자신을 실행시켜서
  2. 파이프라인을 통해 :에 전달하고
  3. &로 백그라운드에서 실행

되도록 한다.

백그라운드 실행 제한이나 포크 리밋 등이 시스템에 존재해 자동으로 킬이 된다면 멈추지만 그런 안전장치가 없다면 시스템은 사용 불가 상태가 된다. 메모리가 모자라면 스왑돌리고 하면서 점점 느려져간다. 생각을 멈추기 전에 재부팅시켜주자.

더 읽기

위키백과 항목 Fork Bomb에서 이 경우, 다른 언어로 쓰인 경우와 해제 방법 그리고 방지 방법에 대해 나와있다.

감상

ulimit은 역시 필수.

Fork bomb은 공격 방법으로 따지면 DoS 중에서도 세련되지 못한 편이다. 예전 html제한이 없던 브라우저 채팅 시절에 무한 팝업창을 띄우던 아이들과 다를바가 없다. 만약 엘레강스함이 있다면 이를 어떻게 실행하도록 만드느냐에 있을 것이다.

CP 2015-12-31

코드 프로젝트 12월 31일 기사 모음

업계

브라우저로 쓰는 오픈소스 OS OS.js

나온지는 꽤 된건데, 지금와서 보니 원드라이브가 패망한 지금 구글 언리미티드와 엮어서 잘 쓰면 삼삼할 듯 싶다. GTK 서포트만 잘 되면 다시 보게 될 것 같다.

iOS 9업그레이드로 기기가 고자가 되었다고 소송을 걸다

사과 기기는 다른 사람들한테 괜찮냐고 물어보고 나서야 업그레이드를 하게 된다. 예전 기기가 느릿느릿해져서 쓰기 힘들게 되는 일이 종종 있다. 그런데 애플은 공식적으로 다운 그레이드를 지원하지도 않는다. 그런 측면에서 봤을 때 너 고소 당한건 재밌다. 어떻게 잘 되서 기기를 초기화하는 조건으로 예전 OS로 다운그레이드가 자유롭게 되면 좋겠지만 그럴 일은 없을 것 같다. 사과는 그런 회사가 아니다. 돈을 주면 줬지.

개발

개발자를 고용하는 최고의 방법

이 글은 좀 좋아서 살짝 요약을 해 봤다.

요약

글쓴이의 인터뷰 경험

전화 면점 – 프로그래밍 문제 해결 – 직접 면접의 단계로 되어있는데, 문제 해결에 나온 것이 얼마 전에 읽었던 white paper가 가장 elegant한 답이었다. 이렇게 된 경우라면 실제 실력보다는 그 사람의 운에 따라 당락이 결정되는 것이나 마찬가지라는 이야기다. 훌륭한 이야기. 어디서 들은 적이 있는 것 같은 이야기다. 여기에서 이야기를 이끌어 나간다.

뭘 아는지는 중요하지 않다

우리 기억력은 한계가 있고, 설사 똑같이 기억이 나지 않는 상태라 해도  나중에 능력이 같다고 볼 수도 없다. 게다가 우리가 마주하는 일반적인 환경 역시 너무나도 검색이 용이한 환경이다. 그런데 뭐가 뭔지 설명해보세요 같은 질문으로 하나 혹은 몇을 물어본다고 무슨 소용이 있다는 걸까. 몰라도 별 의미가 없고 알아도 별 소용이 없을 수 있다. 물어보기는 쉽지만 쓸모는 없다. 여기에 대한 interviewee의 대책은 암기 뿐이니 대처는 쉽다. 글쓴이 처럼 럭키쿠키한 사람이 있다면 바로 치여서 쓰러지겠지만. 뭘 했는가 하는 것은 면접관이 적절하게 물어보는 경우에 한해 더 유용한 정보일 수 있다. 무엇인지 어떻게 해야하는지 알아도 그것을 할 수 있으리라 보기는 힘들지만, 전에 이미 한 것이 있다면 분명 재현할 수 있다.

정말로 알고 싶은 것이 무엇인지 생각해야 한다

글쓴이가 말한대로, 뭘 알고 뭘 했는지가 중요한 것이 아니라 이 사람이 일하게 되면 어떤 문제에 직면했을때 적절한 연구나 학습을 통해 최선의 해결책을 찾아낼 것인가를 알기 위한 물음들이다. 그러니 면접관은 무엇을 할 수 있을지 그 가능성에 집중해야 한다.

내 생각

정말, 저런 면접 시험을 본다면 양쪽 다 찝찔해야 한다. 면접 질문들로 보통 물어보는 질문들이나, 보통 시키는 간단한 구현 같은 것은 불행히도 면접자가 외워서 온다. 사전 정보가 없다면 당황하는 것이고 아니면 하지 않는 것이다. 그리고 그 이외의 정보적 가치는 없다. 물론 그 대답과 구현에 자기 개성이나 창의성이 살아있다면 점수를 따겠지만 이건 운의 요소가 크다. 면접을 길게 보는 것 외에는 무슨 방법이 있을 지 잘 모르겠다.

앱개발의 언데드들 : 절뚝거리는 다섯 기술들

Famo.usp1, io.js2, JavaFX3, Objective C4, Spring.Net5이 망한 기술이 된 점에 대해 생각해보는 글이다. 어떤 나무 게임 처럼 와 하고 박수를 받고 왔다가 꾸직하고 죽는 경우는 기술도 예외가 아니다. 이 다섯가지는 모두 다른 이유로 긍정적인 결과를 (아니면 우리가 기대했던) 이끌어내지 못했다.

기대를 하지 않으면 마음이 편해집니다. 마음을 비우고 무無가 되야 합니다.

프로젝트 소통 경고문

요약

여러 사람이서 프로젝트를 수행하다 보면 문제점이 생긴다.

피해야 할 것들

예스맨

생각없이 나오는 ‘네’는 수렁으로 빠뜨리는 답변일 수 있다. 주저없이 문제점에 대해 긍정적인 답이 나온다면 숨겨진 비용을 제대로 생각하고 있는지 확인하도록 한다.

어떨 때는 물음에 질문으로 답해야 한다

기능에 대한 이야기가 오가는데 아무도 물어보는 사람이 없다면 확실히 동의하고 있는지 확인할 필요가 있다. (경우에 따라서, 클라이언트도 포함해서)

뻔한 것도 챙겨야 한다

너무나 당연하다고 생각해서 개발측에서 고려하지 않은 사항이 클라이언트로 넘어가서 문제를 일으키거나 CS의 부담으로 이어질 수 있다. 자주 들어봤던 이야기.

회의를 하자

여럿이서 하는 작업은 서로의 진척상황이나 변경상황을 주시하는 것이 중요하다. 만약 회의가 예정에 없다면 하도록 누군가는 이끌어야 한다.

과학과 기술

기술때문에 우리의 주의력이 금붕어 보다 떨어지게 되는 걸까요?

다들 주의력이 떨어진다고 하는데, 게임이 주의력 향상에 도움이 된다는 페이퍼를 링크하며 그렇지 않을 수 있다는 것을 보여준다. 그보다 우리가 산만해지는 것은 광고 기술등의, 의도적으로 주의를 흩뜨려뜨리려는 방법도 기술의 진보와 함께 크게 발달했기 때문이라 한다.

적절한 기술과 게임은 정신적인 치유 효과와 훈련에6 도움이 되리라 믿는 대부분의 게임 업계 사람들 (… 아마도?) 처럼 나 역시 게임이 과제와 보상을 통해 행동의 교정과 발달에 도움을 주리라 여기고 있다. 읽어보니 기분은 좋다. 과연 광고에 휘둘리지 않는 법을 게임으로 학습시킨다면 어떻게 될 것인가? 일단 간단한 심리 조종에 대한 것은 훈련이 되는 듯 한데.

코드 프로젝트 토론

일 끝나고 같이 식사하실래요?

싱가포르 난양대학교의 나딘이라는 안드로이드에 대한 토론. 요즘은 사람들이 여자 친구를 사귀는게 아니라 생기느니 만드느니 하는데, 정말로 생기거나 만들 수 있는 길에 한걸음 기술은 또 진보했습니다.

과학? 상술? 진짜?

가정의 전기 회선에 있는 잡음을 줄여주어 고지서의 전기료를 낮춰준다는 이야기에 대한 토론. 당연히 뻥이죠.

CP 2015-12-30

코드 프로젝트 12월 30일 기사 모음

업계

어도브가 플래시 취약점을 패치하다

우분투에서는 별 일 없어서 잘 모르겠지만 취약점을 통해 랜섬웨어를 설치하는 피해사례가 있었던 걸 생각하면 플래시가 또! 해낸 건. 이와 연관해서 생각할 점은 플래시로 런처를 만들어서1 패치 때문에 실행이 안 되었다는 슬픈 나무 게임이 있겠다. 여러분 플래시는 해롭습니다. 정말로 해롭습니다.

2015년이 끝나가는 시점에 윈도 10의 설치가 2억을 넘어서다

설치 횟수는 2억이 되었으나.. 이것이 호평이나 선전이라고 생각하긴 뭐하다. 무료로 업그레이드 할 수 있게 해주고 성가시게 업그레이드 하세요! 라고 졸라댔다. 물론 이 과정에 작살난 앱도 몇몇 있었다. 원 드라이브는 8.1만 못하고, 그나마 무제한 용량도 깨갱 했었지. 윈도에서는 원 드라이브가 핵심 기능으로 자리잡고 있으나.. 그러니 우리는 윈도를 적당히 쓰고 우분투로 갈아타야 합니다.

공용 결제 프로토콜에 보안 취약점이 가득하다

Chaos Computing Club(CCC)에서 공격 시연을 해 ZVT프로토콜과 Poseidon프로토콜의 취약점을 보였다. 고드 프로젝트 이메일에서는 물물교환(barter)로 돌아갈래! 라고 애교를 부렸다. 다행히도 대체할 프로토콜은 존재하며 공격 사례는 아직까지 없는 것으로 보인다. 정말 재미있는 것은 예전에는 이런 프로토콜이 충분히 보안이 잘 되어있다고 생각했다는 점.

AVG의 크롬 보안 애드온이 보안 구멍을 만들다

보안 애드온 자체가 내게는 이해하기 어려운 개념이다. 멀쩡한 브라우저에 어떻게 그런 일이 가능한지 생각해보면, 브라우저 자체를 만든 사람들2보다 취약점을 더 개선할 수 있다는 말은 아닐 것이다. 더 보안 강도가 높은 방법으로 웹 접속을 한답시고 큰 보안 구멍을 만들 수도 있다. 당연히 내부 코드를 전부 공개하는 것도 아니니 최종 사용자가 이를 확인하기는 어렵다.

마이크로소프트 원드라이브 사가 : 우리는 무제한 용량을 제공해선 안됬어요

무제한 용량을 제공하는 업체 중 멀쩡한 경우는 매우 드물다. 내 기준으로 믿을 수 있는 건 구글 언리미티드, 망하지 않으리라 보는건 아마존3 정도이다. Bitcasa 역시 대차게 말아먹었고, 흥해보지도 않고 말아먹은 경우는 수도 없다. 게다가 더러운 Geek들은 무제한 용량이 제공된다고 하면 액세스 가능한 모든 경로의 데일리 백업을 할 수도 있는 존재인데 여기에 제한을 걸지 않았어.. 원드라이브는 너무 쓰기 편했다고! 밸런스를 위해 너프합니다! 마이크로소프트는 역시 마우스의 명가입니다. 그래도 실수를 인정하는 건 좋다. 기분은 좋지 않지만.

개발

코딩 스타일이 컴파일 후에도 살아남을때 : 실행 바이너리에서 프로그래머를 구별해내기

장문의 글을 썼을 때 그 중 연속 3단어의 몇 쌍을 고르면 저자를 특정할 수 있을까? 정답은 1~2쌍이다. 우리는 모르는 사이에 글 사이에 우리의 흔적을 남기고, 배경으로 삼을 데이터가 충분하다면 지문이나 다름없다. 코드의 경우에도 누구에게서 배웠는지, 어떤 회사에서 짜는지, 어떤 성격의 사람인지에 따라 개성이 드러난다. 그러니까, 베끼지 말라구요.

그러니 이 기사의 첫 문단에 나온 충분히 큰 사전 데이터가 있다면 누가 쓴 코드인지 알 수 있다는 페이퍼는 그리 놀라운 이야기가 아니다. 그런데 코드를 컴파일 해도 충분한 적중률을 보인다는 건 상당히 흥미롭다.4 그러니까, 누가 쓴 건지 드러내기 싫으면 표준 코딩 스타일로만 써야 합니다…  요즘은 github에 자기 코드를 공개 하는게 어느 정도 대세를 이루는 것 같고 배경 데이터는 충분합니다.

MIT와 어도브가 소프트웨어의 자동 최적화를 통해 코드 부패를 막으려고 한다

음식도 시간이 지나면 상하고, 기계도 마찬가지다. 소프트웨어도 내버려두면 서서히 상한다. 그러니 up&running 코드는 끊임 없이 유지 보수를 해 주어야 하고, 이것으로 평생 먹고 살고 싶다면 명서인 유지보수하기 어렵게 코딩하는 방법5 읽어보길 권한다. 조금 무서운 축에 드는 것이 php인데, 미묘하게 다르면서 같은 일을 하는 함수가 4~5개씩 된다. 정말 무서운 축에 드는 것은.. 대세 언어에는 끼지 않으니 조금 안심.

이에 MIT가 주축이 되어6 자동 최적화가 가능한 Helium Project를 시작했다. 진행되는 언어는 포토샵 필터지만 시간이 지나면 다른 언어에도 적용이 가능하게 되리라 예상된다. 가슴 두근 포인트 5점! 여기에 좋은 어휘인 schadenfreude7도 배울 수 있는 좋은 기사였다.

마이크로소프트의 슬라이더 디자인 특허

엑셀 등에서 볼 수 있는 확대-축소 배율을 보여주는 슬라이더의 디자인 특허에 관한 이야기. 각 버튼과 슬라이더를 움직여서 무슨 기능을 하는지 나와있지도 않다는 점이 개그 포인트. 확실히 이 달의 멍청한 특허로 뽑혀도 할 말이 없어 보인다.

구글이 다음 버전 안드로이드에서는 Java API를 OpenJDK로 사용한다

안드로이드는 무료 OS지만 완전히 무료는 아니었다. 현자님께서 분노하셨거든요. 기존 Java API를 사용하지 않는다는 것은 기정 사실이었으나 다시 한번 확인해주는 기사.

Springer에서 무료로 기술/연구 서적 수천권을 다운 받으세요

트위터에서도 봤었는데, 오래된 서적들을 무료로 푼다는 이야기. 그래도 워낙에 자료가 방대하기에 쓸만한 것들이 많다. 특히 언젠가 링크가 이상하게 얽혀서 옛-날 리퍼런스를 읽지 못했던 일을 생각하면 고마운 일이다.

프로그래밍 직군의 잠재적 침체

원격으로 서포트가 가능해지면서 미국 국내의 프로그래머의 입지가 좁아질 것이라는 글이다. 우리 나라는 해당이 되기 힘들다. 기술 수준에 비해 굉장히 박하게 주는 편이다. 물론 디자인과 기획만 하고 중국/인도에 외주를 주는 스타트업을 보곤 하는데 장기적으로는 외주로 해결 못한다. 아, 디자인까지 외주를 하기도 한다. 기획만 하고.. 단가는 확실히 내려간다. 물론 질도.

토론

카스퍼스키 왜 이러죠?

카스퍼스키에 문제가 있다는 것이 아니라, 아마존에서 사는 것이 공식 홈페이지 보다 싸다는 것에 왜 이런지 토론이 벌어졌다. 답은 간단한 거고 구글 드라이브를 카스퍼스키가 막는 것에 대한 해법 링크과 사실은 바이러스가 아니라 윈도10 업데이트가 벌인 일이어서 다행인 이야기.

생성한 sudoer가 root 암호를 물어본다

원문 링크

(Bug) Create droplet with SSH then disable SSH for root

내용

Q

인증서로 로그인하도록 되어있는 root유저로 sudoer를 생성했는데, 생성한 유저로 sudo를 하니 루트 암호를 물어본다. 그러나 cert로 로그인 하기에 그런건 없다! 이거 버그네요!

A

A1 : 정상적으로 sudoer에 등록되었다면 루트 암호를 물어볼리 없다. 정말로 등록 했니?

Q :네 했어요!

A2 : 사용자 그룹이 적용되려면 로그아웃 후 재 로그인 해야 됬는데 그걸 안 한 것 같다.

(응답 없음)

결론

Cert로 드롭릿을 생성했기에 암호를 물어보면 안된다는 점만 생각하고 자신이 제대로 했는지를 확인 안한 경우.

02 : 변화가 없다

177일차의 불만은 변화하는 요소가 없다는 점이다.  마비노기 듀얼에도 레벨이 존재하고, 경험치가 존재한다. 그리고 카드 배틀을 하는데 있어서 많이 사용해 레벨이 높아진다거나 할 이유는 없다. 그러니 이 정도가 딱 적당할 – 리가 없다.

이 놈의 카드 게임은 아무리 해도 바뀌는게 없다. 아레나를 열심히 하면 카드팩과 다이아를 주지만 똑같은 카드가 수십개나 있다면 보상이 되지 못한다. 가끔 희귀한 카드가 나오면 기분이 좋지만 그건 그때 뿐이다. 그 카드를 실사한다고 해도, 얼마 지나지 않아 상황은 똑같아 진다.

퍼즐앤드래곤의 몬스터를 보자. 스태미너 상한이 업그레이드 되고 이것이 전투/본게임에는 영향을 주지 않는 점은 동일하다. 하지만 몬스터를 어느 정도 성장시키지 않으면 약해서 써먹질 못한다. 유저는 먹을 걸 잡아다 바치고 스킬도 레벨을 올려주고 간간히 나오는 플러스 알도 모으는 등 공을 들인다. 이렇게 완전체를 만들고 나면 애정이 생겨서 팔거나 다른 몬스터에게 먹이로 주거나 하는건 힘들다. 카드가 성장해서 점점 강해진다는 것은 말도 안되고 이를 바라지도 않는다. 그러나 어제 쓴 바와 같이 이펙트가 추가 된다던가, 이미지를 부분적으로 바꿀 수 있다던가하는 건 밸런스에 영향을 주지 않는다.

PVP 게임을 계속 하면 에서 으로 바뀌고 승단전을 하게 되어있다. 티어에 맞는 플레이어와 조우하는 건 좋은데 그걸 빼면 정말 글자가 바뀐 것 뿐이다. 하기야 게임 내의 요소가 워낙에 적으니 다른 보상을 줄 수도 없다. 분명 모든 게임이 통계가 집계되지만 이번 아레나 / 이 주/ 이 달의 인기 카드나 플레이 형식은 알려주지 않는다. 왕중왕전등을 실시할 때 팝업이 떴지만 그런 그들만의 리그가 아니라 통상 게임에서의 상황을 알려주며 게임이 변화하고 있다는 것을 보여주는게 더 중요하지 않나 싶다.

01 : 왜 카드에 생명력을 부여하지 않는가

176일차의 불만은 카드가 죽어있다는 점이다.

당연히 HP가 0으로 소환된다는 이야기는 아니며, 안 쓰이는 카드가 생긴다는 것도 아니다.

마비노기 듀얼은 다른 돼냥이 스튜디오의 작품과 마찬가지로 끔찍한 절약 정신이 잘 깃들어 있다. 모든 것을 재활용하는데.. 일러스트에 들어간 캐릭터를 충분히 활용하지 못하고 있다. 캐릭터에게 생명을 부여하는 가장 큰 요소는 스토리이지만 현 시스템에서는 이를 어떻게 부여할 방법조차 없다.

고딕은 마법소녀의 친밀도 최대레벨 달성시 미니 스토리 개방 시스템은 카드마다 짧은 스토리를 넣고 조건을 만족하면 해금하도록 되어있다. 이는 같은 캐릭터를 여러종의 사역마로 재활용하고 있음에도 한 캐릭터의 부분으로서도 충분한 소장 가치를 갖도록 한다. 마비노기 듀얼의 카드는 그보다 우월한 일러스트를 자랑함에도 불구하고, 어떠한 배경도 없고 능동적으로 보이는 부분은 – 카드 효과를 제외하면 – 오직 피니시 대사 뿐이다. 가이드 형식으로 제공되는 스토리에는 당연히 카드 캐릭터의 무엇도 표현되지 않는다.

카드에 대해 어떤 스토리가 있을까 플레이어들이 생각해본다는 것을 알고있기에, 이미 카드에 대한 단편 이야기를 작성하는 이벤트도 개최한 바가 있다. 그러나 게임에는 도입할 생각이 없으며 카드 정보에 대한 페이지에 리그 오브 레전드의 Lore와 같은 배경 스토리를 삽입할 의지가 없는 것으로 보아 업데이트 가망은 매우 낮아 보인다.

자신이 소지한 카드가 살아있다고 생각하는 것 만큼 애정을 갖기 좋은 요소도 없다. 카드를 치장해서 개인화하는 것까지는 바라지 않지만 플레이버 텍스트에도 전승도 배경도 뭣도 없이 이건 xx한 카드야라고만 써있는 건 정말 감성이 부족하다.

마비노기 듀얼 접속 175일차

Screenshot_2015-12-01-19-37-28

뭐어.. 연속 접속 25주를 채웠으니 마비노기 듀얼을 어느 정도는 했다고 생각한다. 오픈일하고 몇일 차이는 나지만.

그러니 내일 부터는 하루하루 마비노기 듀얼에 대한 불만을 포스팅하기로 한다. 왠지 모르게, 포스팅 거리가 다 떨어지기 전에 서비스가 종료될 것 같다.1  그래도 접속 200일차 까지만 하자. 불만만 많은 사람이 되긴 싫다. 불만도 할 수록 늘더라.