さとうようぞうのblog
誠品書店 っていう書店が台北市内にいくつかあるんだけど、その中でも市政府近くの店舗(地図)が大きくて品数も豊富。書籍だけではなく日用雑貨や筆記用具、デジタルガジェットの売り場もあるので、雰囲気としては日本橋の丸善とか代官山TSUTAYAみたいな感じです。

New Arrivals って書いてある所に行くと、日本の漫画がいっぱい。(中文ローカライズされている)

20141114_1.JPG

進撃の巨人の14巻があったんですが、8月に日本で出たのが11月には台湾版が出てるって、翻訳としてはかなり速いんじゃないですかね。
他にも日本のコミックやラノベがたくさん売られてました。

20141114_2.JPG

タイトルのまんま。台湾出張中に現地で使う通信手段として SIM ロックフリーのを購入。確か NTD 18,600 くらいでした。(¥66,000くらい)

XperiaZ3.jpg

こうやって手に持ってみると最初は「デカい!!」と感じるけど、触り始めると1時間程度で慣れてくる。

今は中華電信のプリペイド SIM が刺さってる状態で、 WiFi が使えない所ではただの白い綺麗な文鎮です。国内で DoCoMo 系の安い MVNO なカードを買うかもしれないけど、どうせ来月も台湾に行く予定があるので今は買わない。月額料金払って半月日本に居ないとか馬鹿らしいし。ので、周波数的に大丈夫か?とか聞かれてもよく分かりません。すいません。

秋に出るファブレット端末のスペック比較は Rick さんhine さんがすごく詳細で見やすい一覧表にまとめているから、 Z3 を購入しようかどうか悩んでいる人はリンク先を一読することをオススメします。

DSC01227.jpg

ここ最近、仕事で台湾に行く機会があって、今年度中は頻繁に通うことになりました。
個人の感覚ですが、空港やホテルではほぼ日本語か英語が通じるので、そこはさほど困らないのですが、街中をタクシーで移動する時などに英語が通じず、事前に用意してあった住所が書いてある紙を運転手に見せて行く先を伝える、というのをタクシーに乗る都度毎回やってました。

行く先を書いてある紙を常に持ち歩いていればいいんですが、それはそれで結構面倒です。「ここのお店が美味しいよ」と言って、店の場所を書いて渡してくれる人とかいるんですが、そういう紙を何枚も持ち歩いておかないといけない。じゃ、デジタル化するか、って iPhone のメモとかに住所とか書いておいても、タクシーの運転手さんには老眼の人が多いようで、大きい字で見せて上げた方が良いみたいです。
そんなことを9月に出張した時にやってたら、 iPhone にも Text to speech くらいついてんじゃねーの?とふと思ったのでやってみました。これが、意外と使える!

iPhone には「選択項目の読み上げ」機能が付いているので、それをONにする。視覚障害者向けという位置付けなのか、「アクセシビリティ」の中に設定があるのがちょっとわかりづらいかも。

01_accessibility.png
日本語だと「選択項目の読み上げ」というのがあるので、そこをタップして次へ進む。

02_speak_selection.png

ただのメモであって、誰か特定の個人に向けて「質問するならこうしろ」「こういう質問の仕方をして欲しい」と強制する意図で書いたものではない。

先日こんなことをつぶやいて、

たまたま今日も、

というのを脊椎反射的に RT してしまったので、書いておくのには絶好の機会な気がする。 今年4月からの新社会人で、上司や先輩から ggrks と冷たく言い放たれた経験を持つ若者には、何らかしら役に立つ要素が1つ2つあるかもしれない。

先日書いた Codeeval で Clojure が遅い&メモリを大量に消費する件、 サポート掲示板に記事がありました。

https://getsatisfaction.com/codeeval/topics/clojuretimememorystatsseem_wrong

Official Representative の人が

It's true that Clojure takes too much resources. At least on our environment. We'll be investigating this soon.

と言っているので、そのうち対応されるのではないか、と。
4ヶ月前のものなので、時間かかり過ぎな気がしなくもないですが・・・。

Clojure をもう少し書けるようになりたいな、と思って Ruby で書いていた CodeEval の課題の幾つかを Clojure で書きなおしてみたんだけど、実行速度が Ruby と比較するととても遅い。。。

例えば Open ChallengesLowercase だと、

  • Ruby : 187 ms
  • Clojure : 5052 ms

27倍くらい時間が掛かっているし、メモリ量も

  • Ruby 3.4MB
  • Clojure 58.1MB

と17倍くらいの開きが。。。
別にランキング入りを狙っているわけではないので、アホみたいに高速で動くコードを書きたいというわけではないですが、初学者として「俺の書いているコード、これじゃ全然ダメなんじゃないか?」と、かなり不安に思っています。

スクリーンショットも貼っておきます。

Screen Shot 2013-11-22 at 10.24.44 AM.png

Ruby 版のコードはこんな感じ。

file = open(ARGV[0])
file.each {|line| print line.downcase! }
file.close

Clojure 版はこんな感じ。

(println (.toLowerCase (slurp (first *command-line-args*))))

「CodeEval で実行するの場合、こう書いた方が早いよ!」というのをご存知の方がいらっしゃいましたら、是非教えて下さい。よろしくお願いします。

おいしいClojure入門 (Software Design plus)
ニコラ・モドリック 安部 重成
技術評論社
売り上げランキング: 57,899

プログラミングClojure 第2版
Stuart Halloway and Aaron Bedra
オーム社
売り上げランキング: 134,200

プログラミング言語 Ruby
まつもと ゆきひろ David Flanagan
オライリージャパン
売り上げランキング: 197,492

Rails サーバーを起動しようとすると、こんなエラーが。。

bundle exec rails s
/Users/yz/Documents/work/repo/hoge/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': This installation of RMagick was configured with ImageMagick 6.8.6 but ImageMagick 6.8.7-3 is in use. (RuntimeError) 

原因はおそらく、先日別案件で必要に迫られて sudo port upgrade outdated した際に ImageMagick が更新されてしまったせいでしょう。
前にも同じ現象が起こっていて、その時はググって解決策を探したので、忘れないようにメモ。

さっきのエントリ の続き。

チュートリアルのページにある templates/header.html をプロジェクトの src 以下に配置しました。コミットはこれ

分からなくてハマった(ハマってる)のが

  • templates ディレクトリの作成場所
    • 最初、 src と同じ階層においてしまった
    • src の中に置く、で良いのだろうか
  • チュートリアルでは次にコードが続いているけど、それは src/core.clj に書いていいんだろうか?

lein repl で作成したテンプレートを読み込みしてみると、ここまでは上手く行っているように見える。

enlive-templating ➤ lein repl
nREPL server started on port 49735
REPL-y 0.1.10
Clojure 1.5.1
    Exit: Control+D or (exit) or (quit)
Commands: (user/help)
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
          (user/sourcery function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
Examples from clojuredocs.org: [clojuredocs or cdoc]
          (user/clojuredocs name-here)
          (user/clojuredocs "ns-here" "name-here")
user=> (ns enlive-templating
  #_=>   (:require [net.cgrand.enlive-html :as html]))
nil
enlive-templating=> (use 'clojure.pprint)
nil
enlive-templating=> (pprint (html/html-resource "templates/header.html"))
({:type :dtd, :data ["html" nil nil]}
 {:tag :html,
  :attrs {:lang "ja"},
  :content
  ("\n  "
   {:tag :body,
    :attrs nil,
    :content
    ("\n\t"
     {:tag :header, 
      :attrs nil,   
      :content
      ("\n\t  "
       {:tag :h1, :attrs nil, :content ("Header placeholder")}
       "\n\t  "
       {:tag :ul,   
        :attrs {:id "navigation"},
        :content
        ("\n\t\t"   
         {:tag :li, 
          :attrs nil,
          :content  
          ({:tag :a,
            :attrs {:href "#"},
            :content ("Placeholder for navigation")})}
         "\n\t  ")} 
       "\n\t")}
     "\n  ")}
   "\n\n")})
nil

Github にある clojure-cookbook にあるチュートリアルから着手することにしました。

https://github.com/clojure-cookbook/clojure-cookbook/blob/master/webapps/templating-with-enlive/templating-with-enlive.asciidoc

enlive を :dependencies に追加して lein deps を実行。 lein repl が動くようになった。

enlive-templating ➤ lein deps
Retrieving enlive/enlive/1.1.1/enlive-1.1.1.jar from clojars
enlive-templating ➤ lein repl
Retrieving cheshire/cheshire/4.0.3/cheshire-4.0.3.jar from clojars
Retrieving clojure-complete/clojure-complete/0.2.2/clojure-complete-0.2.2.jar from clojars
Retrieving slingshot/slingshot/0.10.3/slingshot-0.10.3.jar from clojars
Retrieving clj-http-lite/clj-http-lite/0.2.0/clj-http-lite-0.2.0.jar from clojars
Retrieving org/thnetos/cd-client/0.3.6/cd-client-0.3.6.jar from clojars
nREPL server started on port 65351
REPL-y 0.1.10
Clojure 1.5.1
    Exit: Control+D or (exit) or (quit)
Commands: (user/help)
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
          (user/sourcery function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
Examples from clojuredocs.org: [clojuredocs or cdoc]
          (user/clojuredocs name-here)
          (user/clojuredocs "ns-here" "name-here")
user=> exit
Bye for now!

コミットはこれ

Leiningen のインストール

Github の leiningen プロジェクトにある README の通りに作業。~/bin にインストールが推奨っぽいので、それに従う。

bin ➤ vi ./lein
bin ➤ chmod 755 ./lein
bin ➤ ./lein self-install                                                                                              
Manual self-install is deprecated; it will run automatically when necessary.
Downloading Leiningen to /Users/yz/.lein/self-installs/leiningen-2.3.3-standalone.jar now...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13.0M  100 13.0M    0     0   137k      0  0:01:37  0:01:37 --:--:-- 1267k

最近のコメント

アイテム

  • 20141114_3.JPG
  • 20141114_2.JPG
  • 20141114_1.JPG
  • XperiaZ3.jpg
  • 13_add_chinese.png
  • 12_add_new_keyboard.png
  • 15_kanji.png
  • DSC01227.jpg
  • 07_select_speak.png
  • 06_notes.png

月別 アーカイブ

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.04