2014年12月22日月曜日

emacsカンフー #002 24.3の中黒の文字化け対策

emacs 24.3.1にしたら、中黒(・)が表示されなくなってしまった。

検索したら対策が出てきた(検索範囲を「1年以内」にした) — Macで使うEmacsの設定

(set-fontset-font "fontset-default"
                  'japanese-jisx0208
                  '("Hiragino Maru Gothic ProN"))
(set-fontset-font "fontset-default"
                  'katakana-jisx0201
                  '("Hiragino Maru Gothic ProN"))

ありがとうございますm(_ _)m

emacsカンフー #001 ドラッグしたファイル(フォルダ)を新しいウィンドウを開かずに開く

前のバージョンでタイ語がうまく表示されないので、emacsをバージョンアップしたらドラッグしたファイルを別のウィンドを開いて表示するようになってしまった。

新しいウィンドウはいらないので、検索してみたらそのものズバリの回答が(感謝!)— Cocoa Emacsのドラッグアンドドロップでファイルを開く

(setq ns-pop-up-frames nil)

なお上のリンクページには次もいると書いてあるが、私の環境では不要だった。動かない方はお試しあれ。

(define-key global-map [ns-drag-file] 'ns-find-file)

2014年8月23日土曜日

アップルの日本語がおかしい #005 Gmailが使えない

OS X 10.9になったら、「メール」アプリでGmailがうまく使えなくなってしまった。 10.9のアップデートのたびに試してみたけど、ダメ。最近はアップデートがあっても試さなくなってしまった(今、別のマシンで試してみたが、「レインボーカーソル」が15分以上回り続けている)。

ネットを見ると、「私は大丈夫になった」という人が結構いるみたいだけど、私はまだおかしい。 フォルダとかルールとかいろいろ組み合わせているせいなのかなと思う。

これ、「日本語がおかしい」というわけではないけれど、致命的な話なのでここに書く(日本語でメール書くし(冗談))。

私はどうしていたかというと、Pararells Desktopで10.8を動かして、その中のMailで読み書きしていた。10.9使わないわけに行かないもんで。

「読み書きしていた」と過去形で書いたのは、β版が公開されたMailboxというメールアプリに乗り換えられそうな感じなので、期待を込めて。

10.8まで問題なく使えていたGmailがきちんと使えない「メール」をリリースしておいて、正式リリースとは「臍がお茶湧かすぜ」。(と、言葉遣いが荒くなったのは、この件に関しては特に怒り心頭に発するなのだ)。まさか、世界中で私だけが困っているわけじゃないと思うけど。


アップデート 2015年2月4日

10.9でも10.10でもgmailが無事読めるようになりました。助かった。 なお、Mailboxは結局使わなくなりました...

カンフーマック番外編 #004 ゴミ箱をTime Machineのバックアップ対象から外す

ビデオを整理していて何Gバイトもあるようなファイルをいくつかゴミ箱にいれてTime Machineのバックアップを始めたらいつまでたっても終わりません。

どうやらゴミ箱の内容を一所懸命バックアップしているようです。 これはさすがにムダでしょう。

というわけで、[システム環境設定]→[Time Machine]→[オプション]の[バックアップ対象から除外する項目]で[+]ボタンを押して、ゴミ箱(Trash)を指定しようとしましたが、これが表示されていない。[不可視項目を表示]にチェックを入れても表示されません。 ゴミ箱はホームフォルダの下の.Trashというフォルダにありますが、これは表示してくれないのですね。

こういうときは『カンフーマック』の#040や#061などあちこちで紹介されている command+shift+Gを使いましょう。表示されるダイアログに ~/.Trash を入力すると無事ゴミ箱に移動できます(「~」はホームを表します)。ここで[除外]ボタンを押すと[バックアップ対象から除外する項目]のリストに「~/.Trash」が加わります。

今見たら、40.52Gもゴミ箱に入っていました。 こりゃ大変だ。

ゴミ箱以外にも~/Library/Caches(アプリが一時的に情報を記憶するための「キャッシュファイル」の置き場)とか、開発者の方なら~/Library/Developerの下の項目とか検討するとよいかもしれません。

今日の肝

  • ゴミ箱をTime Machineのバックアップ対象から外す手順
    1. [システム環境設定]で[Time Machine]を選択
    2. [オプション]をクリック
    3. [バックアップ対象から除外する項目]で[+]ボタンでダイアログを表示
    4. command+shift+Gを入力して「~/.Trash」を指定して[除外]ボタンを押す

2014年8月9日土曜日

脅威のヤクルト「バズーカ打線」

ソフトバンク打線もすごいけど、今のヤクルトの打線は凄まじい。

私が大好きなヒゲヅラの畠山(野村の言うことなんか聞くな! お前はヒゲヅラが似合う!)が7月29日に戻ってきて主要メンバーが揃ってからは8勝2敗。ここ9試合連続で二桁安打 (ちなみに連続二桁安打の日本記録は15試合。1950年の松竹だそうな。私も生まれていない)。

横浜の「マシンガン打線」がすごかった、というのは今でも時々耳にするけど、今のヤクルトはホームランの数がすごい。どこからでもホームランが飛び出す。

山田、川端、バレンティン、雄平、畠山と1シーズン働いたら30本はうちそうなバッターが続き、おまけに森岡、中村、飯原、武内、ユウイチ、それに相川だって打席にたてば結構ホームランを打つ。

ツバクローが試合前にファンサービス でライトスタンドに向けてTシャツを発射する「バズーカ」にちなんで、「ヤクルト バズーカ打線 」というのはどうだろう。

ヤクルトの打撃コーチは誰?

って思っている人たくさんいるのではないだろうか。

ひとつ思うのだけれど、「宮本の呪縛」があったのかなと。 「右方向に打って走者を進めろ」とか「ゴロを転がせ」とか。

それは非力な人が目指すこと。ほとんどのプロ野球選手は力があって残ってきている訳だから、しっかり振って強く遠くまで打球を飛ばすのが基本なのかな。やっぱり。

武舎広幸のセ・リーグ最終順位予想

1. ヤクルト
2. 横浜
3. 中日
4. 広島
5. 阪神
6. 巨人

はい。今日現在と、まったく逆の順位です。こんなことになったら、「超面白いシーズンだった」と いうことになると思うのだけれど。可能性がなくもないな〜などと思いたくなる最近の状況。

ちなみにパリーグは、やっぱりソフバかな〜。オリックス、がんばって!

2014年8月6日水曜日

宇宙開発は種の保存の欲求

1週間ほど前、宇宙飛行士の若田光一さんがこんなような内容のことをテレビで言っていた――「宇宙開発は種の保存の欲求の発露である」。

な〜るほど。そうか。

遠い昔、アフリカで生まれた人類が今まで生き延びてきた大きな理由のひとつは、常に未知の世界を目指す個体がいたからなのだろう。

ずっと同じところに留まっていたら、自然災害が起きたとき全滅してしまう。 「俺(私)は新しい大地を目指す」という個体があったからこそ、こんなにも繁栄することになったのだろう。

何年後(何億年後?)のことになるのかわからないが、太陽から十分な光が届かなくなってしまったとき、地球外に行ける技術をもっていなければ、それで人類は滅亡することになる可能性が高い。 すでに太陽系外の星に移住していれば滅亡せずにすむかもしれない。

種は保存されるのだ。

宇宙でいろんなこと考えていたんでしょうね、若田さん。

2014年7月29日火曜日

辞書サイトDictJuggler.netの日本語名を「辞遊人」としました

辞書サイトDictJuggler.netの日本語名を「辞遊人」としました。お見知りおきのほど、よろしくお願いいたします。

パソコンでお使いになる翻訳者の方々ばかりでなく、スマフォとかでアクセスされる方も増えてきたようなので、日本語名のほうがよいかと思い、少し前から考えていた名前を「日本名」とすることにいたしました。

物書きは墨絵の世界に生きる

先日、東京12チャンネル(じゃなくて、テレビ東京)の番組を見ていたら、速水御舟という人の絵が紹介されていて、それがとてもきれいでした。青系統の色だけを使って景色を描いていました。

墨絵は墨だけですが、同じように青だけでも描けるのですね。

考えてみれば、翻訳者などの物書きは基本的には白黒の世界に生きているわけです。

それで、日本語名導入のこの機会にサイト全体を「墨絵風」の色使いにしてみました。

色を決めるのって結構悩みますが、素人はまず墨絵の濃淡の表現から始めてみるのもいいかな、なんて思いましたが、いかがでしょう。

か〜な〜り〜、楽しい作業でした(^_^)

広告も白黒にしてみたのだけれど

え〜と、じつは広告も枠やリンクの文字などをグレースケールにしたり、広告の種類を文字の広告だけにして墨絵の世界にマッチするようにしてみたのですが、そしたらクリック率がえらい下がってしまいました。

というわけで、こちらは白黒ではなくカラーになっておりますがご容赦くださいm(_ _)m


後日談

白黒に変えたその日に2通もクレームが来ちゃいました。ひと言で言うと「見にくい!」というご意見でした。 そこで、オプションにして、どちらかも選べるように変えました。ご意見いただいた方、ありがとうございます。

アップルの日本語がおかしい #003 OS XのSafari

10.9からOS XのSafariの表示が醜いことになっている。たとえば私の個人ページのトップをご覧あれ(Safariをお使いでない方も多いでしょうから、画像(↓)も置いておきます)。

"』" の前の巨大な「空き」は何なのだろうか?

これはさすがに悲惨なので、そのうち直してくれるだろうと思ってた。 なおらないので、Appleにレポートもしました。"This is VERY UGLY." と。

でも直してくれない。

PC オンラインの記事(最下段の図8の下)などでも見られ、どうやら括弧とリンクが絡んでいるとおかしくなるらしい。

OS X 10.8まではこんな現象はなかったし、iOSのSafariでもこんなことはない。 やれば簡単にできるでしょう。こんなこと直すのは!

ヤル気がないとしか思えない。


アップデート 2015年8月17日

今日確認したら、OS X 10.10.3 では直ってる(↓)。

こうしてみると、ここに取り上げた問題の半分以上は、その後改善されている。「効果アリ」かもしれないので、見つけたら必ずここに書くことにしよう。


再アップデート 2015年10月6日

と思ったら、再発しています。次の画像の "』"の前の空きは何?

2014年7月28日月曜日

アップルの日本語がおかしい #002 iPhoneのメール

このあいだスマフォ(Android)を使っている友人に「いつもの○○でお昼食べることにしました」とメールをした。

ところが、そのあとすぐにやってきた友人に「メール、読めないよ」と言われてしまったのだ。いつもの場所だったので、そこで会えたのだが、そうでなければややこしいことになったところだった。

ちょっと前に、ガラケーを使っている田舎の義姉にメールをしたら「へんな文字ばかりで全然読めない」と言われてしまった。「そうか、UTF-8のメールは読めないガラケーがあるのか。Appleはサボってるな〜」と思ったので、それ以来ガラケーの人に送るときには、iPhoneの「メール」ではなくGmailアプリを使うようにしている(Googleはこのへんしっかりしている。ウェブ版のGmailなんて、文字化けを直してくれる機能まであるんだから助かる)。

しかし、(たぶん)新品のAndroid携帯に送っても文字化けしてしまうとは。悲惨だ〜。 まさか、iPhone以外では読めなくてもいいと思っているわけ?

2014年7月27日日曜日

アップルの日本語がおかしい #001 「連絡先」

最近のアップルがおかしい。とくに日本語まわりがとくにおかしい。 頭に来たので、↑のようなタイトルのブログをはじめることにした。 少しは直してくれればよし、直してくれなければ、他の選択肢を探すしかあるまい。

第1回は「連絡先」。

OS Xのアイコンはまだいい。だがiPhoneのアイコンはなんだ〜、これは。 私が意見を聞いた人の全員が「超ダサイ」といっていた(といっても二人に聞いただけだけど)。

まあ、百歩譲ってそれは許すとしよう。今回の議題は日本語なのだから。

しかし「連絡先」という名前は、何じゃこれ? 

OS XのSpotlightを使えば、キーボードだけを使ってアプリが簡単に起動できるのだが、私はいつもアプリ名を忘れてしまう。「何だっけな」とわからなくなって、「住所」とか「アドレス」とか入力するのだが、ヒットしなくて、結局マウスをもってDockにあるアイコンをクリックする羽目になる。

英語版は「Contacts」なので、これを直訳したのか? 発想としては、「連絡先管理用アプリ」なわけね。

日本語なら「住所録」とか「アドレス帳」とかでしょう。

しかし、iOSのアプリのアイコンはダサイ。とてもアップルの製品とは思えない。

2014年7月14日月曜日

カンフーマック番外編 #003 兼 iPhoneカンフー #022
マックの「プレビュー」で写真の整理

最近のアップルのアプリケーションとかけて、昔のMicrosoft Wordととく。

その心は —— ウザイ、余計なことをやり過ぎる。

前のほうが使いやすかったソフトが多い

西暦2000年ぐらいのことかな、Wordを時々使うと発狂しそうなほど頭に来た。とにかく余計なことをやり過ぎるのだ。「--」を引くと勝手に長い棒に変えたり、小文字の単語を書くと勝手に先頭を大文字にしちゃったり、箇条書きにするつもりがないのに勝手に箇条書きにしちゃったり。

それに比べてアップルのソフトはシンプルでわかりやすくて使いやすかった。こっちがやりたいとおりに素直に動いてくれた。iMovieやiDVDなんて感動しましたね。マニュアルなんかまったく読まないで姪の結婚式のDVDや同窓会のムービーが簡単にできてしまったもの。

ところが、最近のアップルのソフトはどんどん使えなくなっている。最近のiMovieはどう使えばよいかさっぱり想像がつかないので、昔のバージョンをいまだに使っている(使えるアプリがあるのに、わざわざマニュアル読みません)。iPhotoなんて、余計なファイルをコピーばっかりするから、全然使っていない。デフォルトだとiPhoneやiPadつなぐと勝手にiPhoto起動して写真をコピーしちゃうけど、速攻でこの設定はオフにした。

iCloudができてこの傾向に拍車がかかっている。「iCloudが超便利」などいう記事を見かけるけど、ワタシャほとんど使いません。Pagesとか勝手に同期しないで欲しいわ。iWorksの同期機能も速攻でオフにした(もっともメモ帳や住所録の共有はオンにしてますがね)。

外へ出てiPadでPagesとか使う人、何%いるの? 5%ぐらいじゃないだろうか。どんなに多く見積もっても、3割はいないと思う。

つまりあとの7割の人にとっては、どんどん使いにくい方向に行っているわけですよ。余計な設定が加わって、iCloudで使わないようにするには、わざわざ環境設定でオフにしなければならない。 PagesとかKeynoteとかの書類や写真しか保存できないクラウドって意味あるの? DropboxとかTresoritとかのほうがよっぽど便利だわ。

これが正しい方向でしょうか?

写真の整理にゃ、プレビューが最高

iPhoneで撮った写真だけでなく、他のカメラで撮った写真の整理にも「プレビュー」が使えます。大変便利です。 まずiPhone/iPadの写真を整理するなら、次のようにするのがおすすめ(もちろん、iPhotoが起動してしまったら、[環境設定]で自動的に起動しないよう設定しておきましょう)。

  1. iPhone/iPadをMacにつなぎます。
  2. Macの「アプリケーション」フォルダにある「プレビュー」アプリを開きます。
  3. [ファイル]メニューの下のほうにある[XXX から読み込む](XXXはiPhone/iPadの機種名)を選択します。
  4. まず、表示された写真のうち、明らかに不要な写真を選択して、左下の<削除アイコン>をクリックして消してしまいましょう。単なるピンぼけ写真や、同じようなものが何枚もあるのはここで消すのがおすすめ。
  5. 次に、[すべてを読み込む]をクリックして、フォルダを指定してMacにコピーします。

これでマックにコピーされると同時に、プレビューに写真が読み込まれます。

左側に「サムネール」が表示され、それを選択すると右側に写真が大きく表示されます。回転したり、拡大・縮小したりはメニューを選べば簡単にできます。「やっぱりいらない」と思ったやつはサムネールをクリックしてからcommand+deleteをクリックして消してしまいましょう(マウスの右クリックあるいはcontrol+クリックでも消せます)。

余計なファイルは作らないし、ホンとシンプルで便利。

ちなみにすでにマックに入っている写真なら、プレビューを起動しておいてフォルダごとDockのプレビューのアイコンにドラッグすると、同じようにサムネールを表示してくれます。 今試してみたら、写真がたくさん入っているフォルダがいっぱい入っているフォルダ(フォルダのフォルダ)をドラッグしても大丈夫。全部の写真をサムネールで確認できます。

今日の肝

  • iPhone/iPadや他のデジカメで撮った写真を整理するのにはマックの「プレビュー」を使うのが一番シンプルでいいと思う。

iPhoneカンフーの目次はこちら

カンフーマック番外編の目次はこちら

2014年7月13日日曜日

Onsen Kung Fu #002 Tsukino Shizuka (Matsumoto, Nagano)

  • Rating —— ★★★ (3/5)
  • Fee —— ? (included in Shinshu Monomiyusan Tegata)
  • Open —— 10:30AM - 8:00PM Every day (for Higaeri Onsen)
  • Map and Official Web Page (in Japanese)
  • Drinkable —— no
  • Color —— transparent
  • Smell —— none

It is a tranditionary Ryokan (Japanese-style Hotel). Clean and tidy, and you can enjoy Japanese atmosphere.

I felt nothing special for the water or the Onsen rooms. It is not bad at all, though I found cobweb in the Roten Buro (external bath).

Shinshu Monomiyusan Tegata

I visited this hotel because it is listed in Shinshu Monomiyusan Tegata, which costs only 1300 Yen, and you can experience 12 Onsen places in Shinshu (Nagano Prefecture).

Usually, it costs 500 Yen or so to get into one Higaeri Onsen (no bed, just bathing Onsen place), so if you visit three or four, it pays off. If you visit Shinshu and would like to visit as many Higaeri Onsens as possible, it is a must-buy.

神宮球場の夕日がきれい

ぶ厚い本の翻訳に追われてなかなか行けなかったけど、ようやく神宮球場に行ってきました。 翻訳やプログラミングで疲れた目の視力回復には、外野席に座ってボールを追うのが最高なのです。

ライアン小川投手の右手骨折からの復帰戦です。超満員。小川にがんばって欲しいというヤクルトファンの願いが...。

しかし、大敗。初回は調子よかったと思うんだけれど。プロ野球ニュースの解説によると、「2回以降変化球に頼りすぎた。中村のリードが悪い」とのこと。あたっているかも。

しかし、神宮球場のライトスランドから見る夕日はきれい。神宮球場にナイターに行くなら、ヤクルトファンじゃなくても、ライトスタンドに座ったほうがいいよ。


(クリックで拡大)

2014年6月28日土曜日

iPhoneカンフー #021 ブラウザで一番上に戻る

今日の肝

  • 画面一番上の時刻を(ダブル)タップすると、ブラウザで表示中のページの一番上に簡単に戻れる

iPhoneで結構長いページを表示していて、一番上に戻りたくなるときありますよね。 検索フォームとかが上にあるときとか。

えっちらおっちら上にスクロールするより、時刻の表示されている黒い帯をダブルタップしましょう。

これで簡単に一番上に戻れます。知っていると、とても便利!

ちなみにこのワザはiPadでも使えます。また、ブラウザがChromeの場合はシングルタップで戻りますね。

2014年6月23日月曜日

ビデオ会議アプリappear.inが便利

5月から翻訳講座を始めたのですが、教室にいらっしゃれない方がいるので、なんとか様子を中継して差し上げることはできないかなと思ってアプリを探していました。

そしたらビックリするほど簡単なのが見つかりました。それが appear.inです。

使うにはどうすればいいかというと、ブラウザでhttps://appear.in/xxx と入力するだけ。

xxxは適当な名前で、基本的には他のセッションとぶつかっていなければ大丈夫。中継して欲しい人にappar.in/xxx にアクセスしてもらえば、それで双方向のビデオ会議が開始されます。

翻訳者の方は、必ずしもこの方面に詳しくない人が多いので、「アプリをダウンロードして」「アカウントを取得して」「ログイン名はこれで」とかいう細かい話はできるだけ避けたいわけですが、これなら誰でも使えます。

  • 今のところ、Chrome、Firefox、Operaのみ対応(Windows、Mac、Android)。最近iPhoneアプリもできて、試してみたら2時間つなぎっぱなしでも大丈夫でした。WiFiがなくてもでも大丈夫です(長時間になると帯域制限とかかかっちゃうのかな?)。
  • lockすることで第三者が入ってこられないようにできる
  • 8人まで一度につなげる
  • 今のところまったく無料。メアドの登録も簡単に使う分には必要なし(将来はプロ版とかで儲けるのかな〜)。

誰でも簡単に使えるのがすばらしい! 

Onsen Kung Fu #001 Reisenji Onsen (霊泉寺温泉; Ueda, Nagano)

  • Rating —— ★★★★★ (5/5)
  • Fee —— 200 Yen (Cheep!)
  • Open —— 7:00AM - 9:00PM Every day
  • Map and Official Web Page (in Japanese)
  • Drinkable —— YES (4 persons I asked said "YES", including the receptionist, who is often absent.... And I have had several times and experienced no problem, though I do not find it tasty)
  • Color —— transparent
  • Smell —— none

Be prepared. It is DIRTY. It is not like fancy onsen places everywhere in Japan now.

But it is comfortable, and it seems very good for our health. My wife and son really loves this onsen.

2014年6月15日日曜日

本田、コンディション悪し

ブラジルワールドカップ、日本代表初戦。対コートジボワール戦。1-2で敗戦。

本田も香川もコンディション悪し。長友もイマイチか。決められた2発はいずれも左サイドからフリーでクロスを上げさせていた。誰も相手に行っていないんだもの。それも2分後にまったく同じ失敗をするというのはいただけない。

本田、1点目を決めたのはさすが。勝負強い。

でも、後半はパスミスのオンパレード。ボールを取られて、コートジボワールの攻撃の起点になっていたような気がする。

ザッケローニも不運だなあ。エース二人が、最悪のシーズンを送っちゃったあとだからなあ。それでも二人と心中する道を選んだのね。

内田の詰めがもう一歩速かったら

惜しかったのが前半の内田のシュート。キーパーがはじいたのに詰め切れていなかった。

反応がちょっと遅いんだよね。シュートを打ち終わったら、はじくことを予想して詰めなくちゃダメでしょ。はじいたのを見てから動き出しても遅すぎ!

このビデオ見ても、一瞬、ボーッと見ているよ。すぐ詰めようよ!

思い出すのが、2002年の決勝戦、ブラジル対ドイツ。カーンがはじいたシュートをきちんと詰めて決めたロナウドはやっぱり「一流」。10,000回は「ムダ走り」になっても、10,001回目はムダじゃないかもしれないのだよ。

このビデオでロナウドがひたすら前に詰めているところに注目!

超楽観的なシナリオ

こうなったら、超楽観的なシナリオを描くしかないかな〜。

徐々に調子を上げて、予選リーグを2勝1敗で2位通過。決勝トーナメントで本田も香川も絶好調になって、D組1位のコスタリカを撃破。勝ち進んで、地元ブラジルと大決戦。なんてね。

動きが重かったな〜、最初から。調整の失敗なのか、高温多湿と雨が影響したのか、それとも潜在意識では決勝トーナメントに標準を合わせているのか……。う〜ん。10日後に判明する結果や如何に。

2014年6月12日木曜日

Swiftカンフー #002 標準入力から文字列をもらう

プログラミング言語を覚えるには「実際に役に立つプログラムを作ってみるのが一番」というわけで、翻訳作業で役に立つプログラムを作成してみることにしました。

私が自作するプログラムの多くは「フィルタ」です。ファイル(あるいはキーボード)から文字列を読み込んで、何かを処理して出力する。

標準入力(stdin)から文字列をもらう

フィルタを作るには標準入力からの読み込みができないとなりません。C言語のscanf()とか、C++のcinとかみたいに。

Google大明神にお願いすること数度、何とかできました。出典はstackoverflowです。

// example-01-stdin.swift
import Foundation  // Objective-CのNSFileHandleなどが使えるようになる

func データ読み込み() -> String {
  var 標準入力用ファイルハンドル = NSFileHandle.fileHandleWithStandardInput()
  var 生データ = 標準入力用ファイルハンドル.availableData
  var 文字列データ = NSString(data: 生データ, encoding:NSUTF8StringEncoding)
  return 文字列データ
}

func 何か処理(入力文字列: String) -> String {
  return 入力文字列 + 入力文字列 // 2度繰り返す
}

var 読み込んだ文字列 = データ読み込み()
while 読み込んだ文字列 != "" {
  let 処理後の文字列 = 何か処理(読み込んだ文字列) // ここで処理
  print(処理後の文字列)
  読み込んだ文字列 = データ読み込み()
}

2014年6月11日水曜日

Swiftカンフー #001 関数から複数の値が戻ってきたときの処理

もうじきiOSの本を出版するので、Swiftは避けて通ることができません。

というか、なかなか悪くない言語かなと思っています。

GoogleのDartも悪くないと思ったのですが、やっぱりそう簡単には広まりません。だいいち実行速度が遅すぎるし...。 しかしAppleがiOSやMac用に採用したとなると、強制的に広まることになります。

というわけで、Swiftのお勉強を始めることにしました。

関数は複数の値を返せる

Swiftの関数は複数の値を返せます。たとえば次のように定義します。

func ガソリンスタンドの価格表() ->(灯油: Int, レギュラー: Int, ハイオク: Int) {
  return (114, 152, 168)
}

しかし、日本語が変数名や関数名に使えるというのはメチャわかりやすいですね。ふ〜む。変数とテキストの区別がつかなくなるかと心配していたのですが、それは杞憂のような気もします。もっとも、英語ネイティブな人々はいつもこんな風に書いているわけですからね。かえって、funcとかIntとかreturnとか、キーワードが目立ってわかりやすいかもしれませんね。

複数の値をもらうには?

関数から複数の値が返ってくるのは、はっきり言って便利です。 ポインタとか使わなくていいですし、明確です。 JavaScriptでもオブジェクトを返せば複数の値を簡単に返せますが、私はすぐに気がつかなかったです。それに対して、こう明確になっていると明確。もっともPHPは返せましたよね(色々やっていると混乱する...)。

さて、「返ってきた複数の値をどう処理したらいいんだろう?」と思ったら、タプル(tuple)というのを使えばいいのです。あえて訳せば「n組」「n個の組」とでも言いましょうか。Wikipediaを見ると「組」という訳も使われているみたいですね。

じつは関数定義の次の部分は「タプルを返しますよ」という宣言なのでした。この場合は「三つ組み」を返しますということですね。

 ->(灯油: Int, レギュラー: Int, ハイオク: Int) 

それで、受け取る側は次のようにタプルで受け取ればいい。

func ガソリンスタンドの価格表() ->(灯油: Int, レギュラー: Int, ハイオク: Int) {
  return (114, 152, 168)
}

let (灯油, レギュラー, ハイオク) = ガソリンスタンドの価格表()  ## ★★ここ★★ letは定数の定義

println("本日の価格(税込) -- 灯油:\(灯油)円 レギュラー:\(レギュラー)円  ハイオク:\(ハイオク)円");

実行結果はこちら。

% swift -i example-01-func-multi-value1.swift ## ← -iでファイルを指定できる
本日の価格(税込) -- 灯油:114円 レギュラー:152円  ハイオク:168円

% swift  example-01-func-multi-value1.swift ## ←オプションを指定しないと実行ファイルを作る

% ./example-01-func-multi-value1   ## これで実行できちゃう
本日の価格(税込) -- 灯油:114円 レギュラー:152円  ハイオク:168円
  • let —— 定数の定義
  • println —— 1行出力。「\(<変数>)」で変数の値を入れられる。ライブラリとかインクルードしなくても使える。

なお、タプルをひとつの変数に代入することもできるようです。最後に、全部まとめてソースを書いておきましょう。

/* ファイル名: example-01-func-multi-value1.swfit */

// 関数の定義
func ガソリンスタンドの価格表() ->(灯油: Int, レギュラー: Int, ハイオク: Int) {
  return (114, 152, 168)
}

let (灯油, レギュラー, ハイオク) = ガソリンスタンドの価格表() // タプルで受け取る
println("本日の価格(税込) -- 灯油:\(灯油)円 レギュラー:\(レギュラー)円  ハイオク:\(ハイオク)円");

let 価格表 = ガソリンスタンドの価格表() // こうすることもできる
println("本日の価格(税込) -- 灯油:\(価格表.灯油)円 レギュラー:\(価格表.レギュラー)円  ハイオク:\(価格表.ハイオク)円");

2014年6月3日火曜日

まさか新しいプログラミング言語Swiftが出てくるとは

アップルのWWDCが始まった。まず言っておきますけど、これは世界「開発者」会議であって、アップルの新製品発表会ではありません。 したがって、この会議で新製品が出てこないのは「あたりまえ」なのです。新製品が出てくることがおかしいのです。

しかし、新しいプログラミング言語が出てくるとは思いませんでしたな。 新しい市場を切り開いてくれますなあ。アップルさん。

おかげで新しいネタはできますが、ついていくのは大変です。

開発者も、みんなそんなにswiftに移行はできないのではないでしょうか。

SwiftはSwiftでも、Jonathan Swiftの『ガリバー旅行記』に出てくる巨人のようになってしまいやしないだろうか。

2014年6月2日月曜日

カンフーマック番外編 #002 「連絡先」への住所の入力

今日の肝

  • Macの「連絡先」への住所ペーストは、「以降の住所」の部分にペーストすると楽。
  • Safariからも右クリック(control+クリック)で登録可能
  • [サービス]で[マップを表示]して、「マップ」アプリ上で["連絡先"に追加]も可能

iPhoneカンフーの目次はこちら

iPhoneでもMacでも「連絡先」の住所の入力は面倒です。たとえばお葬式の会場の住所をウェブページで検索して、「連絡先」に住所をコピー・ペーストしようとしても、一度にペーストはできず、「都道府県」「市町村」などの単位に分けて入力しなければなりません。

郵便番号をコピペして、都道府県をコピペして、市の部分をコピペして、残りをコピペして、電話番号をコピペして、やっと終わり。面倒ったらありません。

じつはMacの「連絡先」に新しい住所をペーストするなら簡単な方法があります。「以降の住所」の部分に、郵便番号を含め全部ペーストしてしまえばよいのです。「都道府県」や「郡/市区町村」のところではなく、「国」の前の「以降の住所」のところです。

たとえば、「〒386-1105 長野県上田市吉田33番地6 」を「以降の住所」のところにペーストすると、386-1105、長野県、上田市、吉田33番地6と自動的に分かれて入力されます。楽ちんです。

これを発見したのは数か月前ですが、それ以来いつもこの方法を使っています。

ここで疑問

でも、なぜ同じことを、たとえば郵便番号欄に入力したときにやってくれないのでしょうか? ほぼ同じ処理をすればよいだけだと思うのですが。この処理をやったからといって「副作用」があるとも思えませんし。

せっかくすばらしい「マイクロインタラクション」を思いついたのに、なぜできるだけ広い場面で利用できるようにしないのでしょうか? 一番自然なのは、郵便番号にペーストしたときか、都道府県にペーストしたときにこの処理を行うことだと思うのですけれど。

Appleのプログラマーの気持ちがわからない。あるいは、プログラマーはそうしようと思ったが、マネージャーに拒否されたとか?

Safariから簡単に追加できる!

この記事を書いて横になっていたら、Safariの右クリックで何かできそうな気がしてきたので試してみました。

住所を選択して置いて右クリック(control+クリック)すると、「"386-1105、長野県、上田市、吉田33番地6"を調べる」という項目が出てきます。それを選択すると、小さなウィンドウに地図とともに住所録風のデータの「住所」部分にきちんと住所が記載されて[新規連絡先]というボタンも表示されます。

[新規連絡先]ボタンをクリックして、名称を入力して[作成]をクリックしてみました。何も起こりませんでしたが、「連絡先」アプリをみてみると、新しいエントリが加わっていました。ありゃりゃ、こっちのほうが楽ですね。

ちなみに、右クリックして[サービス]メニューの[マップを表示]を選択して、「マップ」アプリ上で["連絡先"に追加]を選ぶこともできました。こちらのほうがきちんと「連絡先」アプリが起動されるのでわかりやすいですね。この方法なら、Safari以外のアプリからも使えます。

今日の肝

  • Macの「連絡先」への住所ペーストは、「以降の住所」の部分にペーストすると楽。
  • Safariからも右クリック(control+クリック)で登録可能
  • [サービス]で[マップを表示]して、「マップ」アプリ上で["連絡先"に追加]も可能

2014年5月30日金曜日

iPhoneカンフー #020 通知センターの消去

iPhoneカンフーの目次はこちら

#018で「コントロールセンター」の閉じ方について書きましたが、iOS 7.1から「通知センター」も同じ閉じ方ができるようになりましたのでご紹介。

「通知センター」は画面最上部を↓方向にスライドすると表示されます(ロック画面だと上中央に「白い棒」が表示されますが上辺のどこを下にスライドしても大丈夫です)。

iOS 7.1から、下の辺の任意の場所を軽くタップすれば消えてくれるのです。

コントロールセンターとは違って、画面全体を表示しているので、他の領域をタップすることはできませんが、真ん中を狙わなくても大丈夫です。

このワザはiPadでも使えます。

今日の肝

  • 通知を閉じるのに下辺の中央部を上にスライドする必要はない。下辺の任意の部分をタップすればよい。

2014年1月30日木曜日

『ブレス』刊行記念パーティ — 池澤夏樹さんにお目にかかった

現代企画室主催「オーストラリア現代文学傑作選」第2巻 ティム・ウィントン著『ブレス 』刊行記念 オーストラリア文学とワインの会 に行ってきました。昨日のこと。

私の会社(マーリンアームズ株式会社)の取締役 兼 私のカミさん である武舎るみが「オーストラリア現代文学傑作選」の第1巻 『異境』(Remembering Babylon)を翻訳したご縁で、ご招待いただきました。

池澤夏樹さんと研究者のケイト・ダリアン=スミスさんとの対談とパーティ。

対談の最後で、池澤夏樹さんが「『異境』もとてもよい作品だ」とお褒めくださった。 「ミツバチに身体全体を覆われるときの感覚が何とも言えない」という我々と同じ感想を述べてくださったので、二人して大喜びしました。 『異境』の紹介ページでその場面をお読みいただけますのでよろしかったらどうぞ。

そのあとのパーティで御礼を言いがてら少しお話をしたときの、池澤夏樹さんとカミさんのツーショット(池澤さんには写真公開のお許しをいただきました)。

とても気さくで話しやすい方でした。

2014年1月28日火曜日

iPhoneカンフー #019 古くなったiPhoneの活用法

iPhoneカンフーの目次はこちら

iPhoneも発売されてから数年が経過し、機種変更でいらなくなたiPhoneをおもちの方も多いことと思います。古いiPhoneどうしてますか?

オークションとか、中古ショップとかで売っちゃった人が一番多いでしょうか。

我が家では、商売柄、私かカミさんが、毎年毎年買い換えて、必ず最新機種を試せるようにしていました。iPhone 5sと5cは「どっちを買おう」とか言っているうちに月日は流れて、「iPhone 6はどうのこうの」などという噂が流れてくるようになってしまいました。 今となっては、「最新機種が必要な仕事が決まったら買う」ことにしようかと思っています。

古いiPhoneは電話ができないだけで、他の機能は全部使えます(まあ、電話じゃなくなっちゃうので、i"Phone"とは呼べないのかもしれませんが)。

ミュージックプレーヤーにもなるしタイマーにもなる、ラジオにもなるし、メールの読み書きもできる。ウェブページだって全然問題なし。

でも、私がおすすめするのは「専用マシン化」してしまうこと。

朝、私は布団を押し入れに入れますが、その時には初代のiPhoneをスリープから起こし、iPodアプリの画面で再生ボタンを押します(古いから「ミュージック」アプリではありません)。 すると、いつも聴くお気に入りの歌手の音楽が流れ出します。このiPhoneは基本的に、この歌手の音楽再生専用になってます。

トイレには、もう1台古いiPhoneをおいてラジオとして使う。ドアを開けたらスリープから起こして、これまた再生ボタンを押す。長くなったらじっくり聴くし、短時間でもそれなりに楽しめる。

本当のi"Phone"は、いろいろな用途に使うので、何かをしようとするとどうしても切り替えに時間がかかる。だけど、中古のiPhoneがたくさんあれば、ひとつひとつを専用マシンとして使うのもいい。

いつも一緒にいた愛しいiPhoneとお別れせずにずっと使えます。

ちなみに、とくに古いiPhoneは、ホームボタンが壊れないようにAssistive Touchを使うのがおすすめ。

今日の肝

  • お古のiPhoneは目的を絞って活用するのもよし

2014年1月25日土曜日

iPhoneカンフー #018 コントロールセンターの消去

iOS 7になって便利になったものに「コントロールセンター」があります。

画面最下部を↑方向にスライドすると表示されて、懐中電灯や電卓を使ったり、ミュージックをストップしたりできます。

ロック画面でも操作できるので、ますます便利!

なお、ロック画面では使えないようにも設定できます。「設定」アプリで[コントロールセンター]→[ロック画面でのアクセス]でオン・オフを指定します。 ちなみに、ロック画面だと下中央に「白い棒」が表示されますが、この棒に狙いをつけなくても、カメラの周辺でなければ下辺のどこを上にスライドしても大丈夫です。

閉じるとき

さて本題です。コントロールセンターを消すのに、コールセンターの上部中央に表示される下向きの平べったい「V」(ヤマガタ?)を下方向にスライドしてして消していませんか?

実は、上の辺の任意の場所、あるいはそれよりも上、を軽くタップするだけで消えてくれるのです。お試しあれ。

狙いを付けなくても大丈夫なので、楽ちんです。

このワザはiPadでも使えます。iPadだとコントロールセンターは画面下のごく一部にしか表示されないので、タップして消せる領域はすご〜く広くなります。

今日の肝

  • コントロールセンターを閉じるのに上辺の中央部を下にスライドする必要はない。上辺、あるいはそれよりも上の任意の部分をタップすればよい。

iPhoneカンフー #017 スリープからの復帰

iPhoneカンフーの目次はこちら

iPhoneの画面を消して「スリープ」させているとき、復帰させるには右上のボタンか、下中央のホームボタンを押します。すると[スライドでロック解除]と表示されます。

ほとんどの人は、[スライドでロック解除]の上をなぞってロックを解除すると思いますが、じつはこのとき画面のどこを右にスライドしてもロックは解除されます。お試しあれ。

念のためですが、右下のカメラとか、最下部のコントロールセンターや最上部の通知センターのあたりをタップして右にスライドしてもロックは解除されませんので悪しからず。

最近のiPadの場合は、フタをとればスリープ解除されちゃうので、このワザはあまり意味がありませんが、念のため試してみたら、同じように画面のどこを右にスライドしても大丈夫でした。

ちなみに iOS 6以前では、[ロック解除]の上をなぞらないとダメのようです。

狙う必要がないので、iOS 7のほうが楽ですね。

今日の肝

  • スリープ解除のときに右にスライドするのは、画面のどこでも大丈夫(カメラのアイコンなどは除く)

2014年1月15日水曜日

Amazon USで『マッキントッシュ物語』が買える!

拙訳書『マッキントッシュ物語』の原著Insanely GreatをAmazon USで探していたら、『マッキントッシュ物語』がAmazon USでも買えることに気がつきました。誰か買う人いるのでしょうか。

"Tankobon Softcover" と書かれているのがおもしろい。

『マッキントッシュ物語』をAmazon USで見る

2014年1月5日日曜日

iPhoneカンフー #016 Appのバックグラウンド更新をオンにできないとき

iPhoneカンフーの目次はこちら

今日の肝

  • Appのバックグラウンド更新をオンにできないときは、「機能制限」がかかっていないかチェック。

カーナビのアプリとか、ランニングの記録アプリとか、そのアプリが前面にないときや画面がスリープしている時でも、「バックグラウンド」で動作し続けることで機能を果たしてくれるものがあります。

こういったアプリを使う場合は、「設定」アプリで、[一般]→[Appのバックグラウンド更新]で[Appのバックグラウンド更新]をオンにしておく必要があります。同じ画面で、アプリごとにオンにしたりオフにしたりも可能です。

いくつかのウェブサイトなどで、「この機能をオフにすると節電になる」などと書いてあるようですが、基本的にはこの機能はオフにしないほうが役に立つiPhoneとなるでしょう。

機能制限に注意

と、この記事を読んで「どうやっても[Appのバックグラウンド更新]をオンにできない!」とお困りの方、「機能制限」がかかっているとこれをオンにできませんので確認してみてください。

同じく「設定」アプリで、[機能制限]がオンになっていて、その下位項目で[Appのバックグラウンド更新]が[変更を許可しない]の設定になっていると、上に書いた手順ではどうやっても[Appのバックグラウンド更新]をオンにできません。

どうやってもオンにできない人は、次の手順で機能制限を外してください。

  1. 「設定」アプリを起動
  2. [一般]→[機能制限]とタップ(このとき機能制限が[オン]になっているはずです)
  3. パスコードを入力
  4. ズズ〜っとスクロールして、下のほうにある[Appのバックグラウンド更新]→[変更を許可]とタップ (もちろん、この画面で、一番上の [機能制限を解除]をタップして、全部の機能制限を外しても大丈夫)
  5. これで機能制限が解除されたので、[一般]をタップしてひとつ戻って、[Appのバックグラウンド更新]をタップして[Appのバックグラウンド更新]をオンにする

今日の肝

  • Appのバックグラウンド更新をオンにできないときは、「機能制限」がかかっていないかチェック。

2014年1月3日金曜日

iPhoneカンフー #015 Assistive Touchのオン・オフ切り替え

iPhoneカンフーの目次はこちら

今日の肝

  • Assistive Touchのオン・オフ切り替えはホームボタンのトリプルタップが便利

#002で紹介したAssistive Touchをいつも使っているのですが、いつも表示される ○(白丸) を消したくなるときもあります。私の場合、本を訳していて画面キャプチャを撮ろうとするときが一番多いのですが、写真やビデオを撮っていて邪魔になるというときもあるでしょう。

そんなときに便利なのが、ホームボタンのトリプルタップです。あらかじめ設定が必要ですが、ホームボタンのトリプルタップでAssistive Touchのオン・オフを簡単に切り替えられます。もちろん、ホームボタンの代わりに、Assistive Touchを有効にしているときに表示される ○ をトリプルタップしても大丈夫。

まず準備です。

  1. 「設定」アプリを起動して、[一般]→[アクセシビリティ]→[ショートカット]と選択します([ショートカット]は一番下にあります)。
  2. 右側に表示されている[確認]をタップします。
  3. ここで一番下の[AssistiveTouch]にチェックマーク(✓)を入れます。
    これで準備完了。

ホームボタンをトリプルタップすると、[アクセシビリティオプション]の下に[AssistiveTouch]などが表示されるので、これをタップしてオン・オフを簡単に切り替えられます。

ちなみに、[色を反転]とか[ズーム機能]なども同じようにして、ワンタッチで切り替えられます。便利!

今日の肝

  • Assistive Touchのオン・オフ切り替えはホームボタンのトリプルタップが便利。
  • 「設定」アプリで[一般]→[アクセシビリティ]→[ショートカット]で設定しておく。

2014年1月2日木曜日

iPhoneカンフー #014 iOS 7のiPhone内検索

iPhoneカンフーの目次はこちら

今日の肝

  • iOS 7の「iPhone(iPad)内検索」は下方向にフリップ(ホーム画面でなくても大丈夫)

iOS 6まで、ホーム画面にいてホームボタン(最下部にある □ の書いてあるボタン)を押すとiPhone内のデータ(連絡先やらアプリやら)の検索画面になりましたが、iOS 7ではこれができなくなりました。ホーム画面でホームボタンを押しても何も起こりません。ちなみに、ホームボタンを2回連続して押すと実行中のアプリ一覧が表示されて、アプリを切り替えたり終了したりできます。

どうすれば「iPhone内検索」ができるかというと、適当なところタッチして素早く↓方向に指を移動します(「スワイプ」します)。これでめでたく検索画面が表示されます。

  • 最下部のDock(いつも表示されているアイコンやフォルダの領域)は対象外。ここにあるアプリは下方向にフリップされても、単にタップされてもすぐに起動してしまいますし、フォルダは中身が表示されてしまいます。
  • 最上部も対象外。ここを下方向にスワイプすると通知センターが表示されます。
  • ホーム画面(一番左の画面)だけではなく、どの画面に移動していても有効です。
  • アプリのアイコンやアイコンがまとめられている「フォルダ」をタップして下方向に動かしても大丈夫(Dock以外)。
  • 1本指で大丈夫ですが、2本指、4本指でも大丈夫。3本指はダメで、これは恐らく3本指のダブルタップで拡大をするように設定できるためだと予想されます(5本指以上も試してみましたが、ダメみたいですね)。
  • 住所録などを検索するとき、ローマ字や平仮名を入力しても該当するものを探してくれます。たとえば、「麗子」さんを検索するのに、「rei」や「れい」と入力してもよいのです。これは便利!

なお、iPhone内検索を途中で止めるにはには、[キャンセル]をタップするか、1本、2本、4本のいずれかの指で、表示されるキーボードの上部の領域を、上方向にスワイプします。

今日の肝

  • iOS 7の「iPhone(iPad)内検索」は下方向にフリップ(ホーム画面でなくても大丈夫)