10월, 2012의 게시물 표시

Jumping Frogs 퍼즐

요즘 scala 언어를 배우고 있는 중입니다. Functional language가 어떤건지 관심이 있던 중 기회가 닿아 배우게 되었는데 상당히 재미있습니다. Scala는 JVM상에서 돌아가는 언어라서 java의 여러 라이브러리를 사용할 수 있는 장점이 있는데 scala에서 JavaFX를 사용하기 위한 ScalaFx의 예제로 Jumping Frogs 퍼즐이 있습니다. 소스는 여기 에서 살펴볼 수 있고 퍼즐은 여기 에서 풀어볼 수 있습니다. 며칠 전 풀어보다 잘 안풀려서 scala에서 한번 풀어보자고 프로그램을 짜기 시작했는데 아직 초보라 그런지 며칠간 고민하다 겨우 작성할 수 있었답니다. 잘 작성한 소스는 아니지만 Functional Language와 Scala의 느낌이 어느 정도 살아있는것 같아 올려놓았습니다 . 결과를 보고 한번 풀어보니 이렇게 간단한걸 왜 못 풀었나 싶더군요. object frogs { type State = List[Int] type Sets = List[State] type History = List[State] val setSize = 7 //> setSize : Int = 7 def frogs(n:Int, code:Int) = ((0 until n) map (_ => code)).toList //> frogs: (n: Int, code: Int)List[Int] val leftFrogs = frogs(setSize/2, 1) //> leftFrogs : List[Int] = List(1, 1, 1) val rightFrogs = frogs(setSize/2, 2) //> rightFrogs : List[Int] = List(2, 2, 2) val set = leftFrogs ++ List(0) ++ r...

애플... 어쩔겨?

아직 키노트를 보지는 않았습니다만 애플에서 2012년 가을 맞이 신제품들을 한꺼번에 내놓았습니다. 얼마전 iPhone과 iPod 신제품을 내놓았았고 이번에 iPad, iPad mini, Mac mini, iMac, MacBook Pro 13 retina 까지... 이번 가을에 하드웨어쪽의 거의 완전한 갱신이 이루어졌다고 할 수 있겠습니다. 다른 것들은 업그레이드라고 할 수 있고 iPad mini와 MacBook Pro retina는 새로운 제품군이네요. 예전 잡스가 애플로 다시 돌아와서 처음 한 일이 여러가지 제품군들을 하나로 줄이고 혁신을 준비한 것이었는데 구글과 다른 하드웨어 업체들의 공세에 애플의 마음이 흔들리는 것일까요? 올봄 발표한 new iPad에 빅엿을 먹이면서 다른 iPad를 발매했습니다. 아마 조만간 iPad mini도 곧 retina 버전이 발표될 것이고 개발자들은 또 다른 해상도를 준비해야 할지도 모릅니다.  잡스가 있었더라도 계속해서 혁신적인 제품들을 발매할 수는 없고 아마 비슷한 한계를 맞이했을거라는 생각이 들다가도 물량 공세에 대해 물량 공세로 맞서지는 않았을까라는 생각을 하게 되는군요. iMac은 CD/DVD가 빠지면서 굉장히 얇아졌는데 아직까지 CD를 구입해서 iTunes로 뜨는 일인으로서 따로 superdrive를 구입해야 하니 돈도 돈이지만 시대의 흐름에 뒤쳐지는것 같아 슬프기도 합니다. 맥북프로는 조만간 레티나 버전이 일반 버전을 대치하게 될것 같고 맥북에어도 레티나를 채용하겠지요. 개인적으로 가장 괜찮다고 생각되는것은 맥 미니. 나머지는 그냥 그래요...