Swift: 正規表現を使って文字列を置き換える

カテゴリー:  Tech  タグ:  programming software swift

SwiftではStringクラス用に正規表現での文字列置換が用意されています。

String.stringByReplacingOccurrencesOfString(target, withString, options, range)を使用します。ここで、optionsにNSStringCompareOptions.RegularExpressionSearchを指定することで正規表現が有効となります。

以下の例は、sourceに入った文字列の前後の空白と削除し文字列の空白を1つにまとめるための処理が書かれています。

var destination : String = source.stringByReplacingOccurrencesOfString("^ +| +$", withString:"", options:NSStringCompareOptions.RegularExpressionSearch, range: nil)

destination = destination.stringByReplacingOccurrencesOfString(" +", withString: " ", options: NSStringCompareOptions.RegularExpressionSearch, range: nil)
println("[\(destination)]")

その他、NSStringCompareOptionsはその他に以下のようなオプションがあります。

NSLiteralSearch(正確な一致) NSCaseInsensitiveSearch(大文字小文字を無視) 面倒になったので詳しくはAPI Documentを

書評:詳解 Swift

カテゴリー:  Entertainment  タグ:  books programming

ちょっと仕事で必要になる以前から、この本を予約していました。折良く仕事でコードを書く必要が出てきた日に発売となり入手できました。

著者の荻原氏は以前もObjective-Cの解説本詳解 Objective-C 2.0 第3版を書いておられ、おそらくObjective-C + Cocoa関連では一番定評のある解説本を書いておられます(第3版が出るまでは入手が困難でオークションでも高値で売り買いされていました)

その著者の解説ですから、大いに期待していました。

この「詳解 Swift」では言語仕様の解説に重きが置かれています。言語の仕様の概要から始め、データ型や演算子、関数、メモリ管理など、基本的なことがきちんとまとめられています。

かつ、オプショナル型やクロージャー、ジェネリクスなど新しい言語としてのSwiftを特徴付ける機能も、その背景と意味、具体的な恩恵がきちんとまとめてあり、理解の助けとなりました。

基本的はObjective-Cの知識は不要ですが、Objective-Cがわかる方はポイントがよくわかるようになっています。

逆にCocoaやUIKitなどの解説はありませんから、これだけ読んでもすぐにMacやiOSアプリのGUIのアプリを作れるようになるわけではありません。しかし、CocoaやUIKit自体が変わったわけではなく、実際にアプリを作ってみるととこれらのフレームワークの部分はObjective-Cの頃を基本変わらないので以前のまま利用することになります。

この本より早く書店に並んだSwiftの解説本もいくつかありましたが、どれもiOSアプリの作り方に終始し言語なんてそっちのけでHow Toの解説が薄くされているものばかりでしたが、言語としてきちんと理解して自分の力にするにはこういう本から入っていくべきだと思います。

赤いコントロールキーは3倍速い!PFUカラーキートップセット

カテゴリー:  Gadget  タグ:  happy hacking keyboard keyboard

年末になると変なものを買ってしまいます。

ついPFU カラーキートップセットを買ってしまいました。

このカラーキートップ、当初は2011年のHappyHacking Keyboardの15周年記念のプレゼントだったはずなんです。限定100名でもらった人は喜んだことでしょう。今じゃ普通にAmazonで売っています。

最初はカッコ悪ぅと思ったんです。でも、でも、なんかつけないといけない気がして。。。。

機能的にはなーんの機能もありません。色変わってもタイプしているときなんて、キーボード見てないですし。若干ESCのキートップが高くなったような気はします。VIM使ってる時は便利かもです。

しかし、これで約2,000円。驚くべき価格です。 いくらHappyHacking Keyboardが高いといっても、プラスチックのチップでしかないキートップと鉄板を折り曲げただけのリムバーで単価500円近い価格はどうかと思います。いっそ、全部のキーを無刻印と普通版を合わせて普通に売ったらどうだ? あ、売ってるのか。

「赤いコントロールキーは3倍速い」と思わないと、自己反省してしまいそうですが、意外にふと見下ろした時にこの2つにキーが目に入るとテンション上がるんですよ、本当に。

2015年からiOSは64bitに本格移行

カテゴリー:  Tech  タグ:  ios software

AppleはApp開発者向けに来年からAppの64bitサポートを必須としてらしい。

Dear Developer, As we announced in October, beginning February 1, 2015 new iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK.

Apple Reminds Developers About February 64-Bit Support Deadline for Newly Submitted iOS Apps - Mac Rumors

現在はuniversal binaryならば32bitでも許されるが、来年からは64bitをサポートする必要がある。確認してみるとiPhone5S以降発表した機種は全てプロセッサーはA7以降のモノで64bitでした。

家族にiPhone5Cを買ったのは、マズかったか。

タイムズ カープラスを使い倒してみた

カテゴリー:  Automotive  タグ:  car sharing

事故って以来車がない生活を2ヶ月ほど続けていますが、さすがに不便なので事故直後にタイムズのカープラスを申し込みました。その使用感をまとめてみました。

使い勝手はどうなの?

カープラスを使用の際には、タイムズのサイトから予約する必要があります。スマホからでも予約でき開いていれば直前でも大丈夫なので、実質思いついた時に借りることができます。自宅近辺にあるタイムズの駐車場には2台カープラス用の車がありますが、借りれないということは2ヶ月間ありませんでした。

借りたら、駐車場まで行ってカードをかざすとドアが開くので、エンジンをかけて出かけるだけです。あとは全く普通の車と変わりません。普段の施錠は普通に車のキーを使います。返却時に再度カードでロックします。

よく利用する駐車場はゲートがあるタイプなので、専用の駐車場カードが車内にありそれでゲートを開けるようになっています。

レンタカーと違って車内の清掃などはユーザーが行うことになっているので、時々ゴミが落ちてたりします。わたしが使う範囲では不快になる程マナーが悪い状況には当たったことはありませんが、客層によっては心配になるかもしれません。

ガソリンがなくなっていれば、専用のカードが備え付けてあるのでそれで給油します。一定量以上給油すると時間のサービスがあるようです。

出先でも一度使いましたが、関東近辺だと数百メートル置きにあったりするので、ある意味タクシーより便利だし、レンターカーとは比べるべくもありません。

価格面では?

わたしはショートしか使ったことがありません。15分206円、つまり1時間当たり812円でこれは会員の月額基本料金からまず差し引かれて、足りなければ支払いが発生します。

ほとんど週末にしか乗らないわたしの場合、土日両方使い一回あたりのお出かけ時間が2時間とすると 812円 x 2時間 x 4週 = 6,496円 です。これはガソリン料も保険料も込みです。しかもショートの場合、2時間で予約しても早く用事が済めば、その分料金は取られません。

車を所有することを改めて考えると、メンテ費用、重量税や自動車税、保険料、ガソリン代、駐車場代と所有には恐ろしく費用かかっていることがわかります。その分、本当に好きな車をいつでも使える自由を手に入れられるわけです。

比較すると、さほど車に興味のない方はこれで十分なんではないでしょうか。

わたし?

わたしは新車購入しますが。

わたしがMT6を使う訳

カテゴリー:  Tech  タグ:  blogging web/tech

勢いに任せてMovableType6(以下、MT6)に移行してしまいました。

久しぶりにMTを使い出してみたら、あまりの情報のなさに驚きました。MT6が発表されたのが2013年7月です。しかも4年ぶりだったはずが、発表も大して話題にならなかったようです。そして、1年半経ってもほとんど情報がありません。

まぁ、世の中こぞって、WordPressなのは知っていましたが、こんなに寂しくなるとはね。

では、なんでそんなMT6にお前は移行するんかいと

一番の答えは、天邪鬼、へそ曲がり、マイナー志向…… と書くと話が終わってしまうので、真面目に考えましょう。

これまでTypePad、Blogger、Posthaven、はてなブログとずっとサービスを利用してきましたが、しみじみ思っているのが2点。

  • 世の中のサービスっていつかなくなるということ
  • 安心を買おうとするとやっぱりお金がかかるということ

メインではありませんが愛用していたPosterousはサービスが消えてしまいました。その後継とも言えるPostHavenも「Posthaven is the safe place for all your posts forever」と謳っていますが成功しているとは言えず不安です。Google Readerだって止めちゃう時代だからBloggerだっていつなくなるとも知れません。はてなだってどうでしょう。日本の無料サービスなんて信用できません。

そして安心を買おうとすると、やっぱりお金が必要です。Bloggerは無料でしたが、その他のサービスは大体月に千円程度の出費となります。それでもなくなるときは無くなるんです。

そうすると、自分でホスティングしておくの一番安心ということです。それに今や経済的でもあります。大体半額の月500円で程度の良いサーバーをレンタルできるようなりましたから。

では、なぜ今や一番メジャーなWorkPressでないんでしょう。

それは天邪鬼だからさ。ってのもありますが、やっぱり静的にコンテンツを生成してくれるMTは安心感があります。たとえ仕組みがなくなっても静的に吐き出されたブログサイトはとりあえず閲覧できるのでそのまま保存し公開できます。これがWPのように動的にコンテンツを生成する仕組みだとサイトの変更などはよいのですが、仕組みが死ねばコンテンツも死んでしまいます。「再構築」万歳!

書評:Movable Type6 本格活用ガイドブック

カテゴリー:  Entertainment  タグ:  blogging books

サイト構築自体はネットでマニュアルや数少ない情報を見ながら完了してしまったのですが、折角なのでちゃんと本でも読もうかと購入してみました。わたしが購入したのでKindle版です。

Chapter01では、Movable Type 6の概要、導入や移転など、実際にMovable Typeを設置するための情報が網羅され、Chapter02ではテンプレートやテンプレートタグなどカスタマイズに必要な情報がまとめれています。

Chapter03では新たに追加されたDataAPIが詳しく解説され、実際の活用事例などが紹介されています。サンプルコードもダウンロードできるいようです。

Chapter04では実践的なサンプルサイトを紹介しながら、どうやってサイトを構築するかが示されています。

MTを導入してみようという方はChapter01/02を読めば必要な作業の概略がつかめると思います。Chapter03からは「ちょっとブログを設置してみよう」って方にはかなり敷居が高そうですね。Movable Type自体が本格的なCMSとして企業での利用も想定されているのでこういった機能が付いたのだと思いますが......

プログラムを書く方であれば、JavaSCriptやPHPからのDATA APIの利用や、iOSなどからの利用法などかなり突っ込んだ内容を詳しく解説してくれているので、なだか面倒くさそうと敬遠していた方にはよいと思います。

Google → さくらレンタルサーバーでのサブドメインの設定

カテゴリー:  Tech  タグ:  blogging web/tech

気まぐれでブログをレンタルサーバーに移しました。折角なので自分の独自ドメインで公開したいのですが、Google Appsを使っているので全体を移行するわけにはいきません。サブドメインだけ移行しました。

さくらインターネットのガイドでは、以下のようにガイドされています。

2014-12-28_15-44-28.pngなんのことやら、さっぱりです。

実際にはGoogleのAdmin Consoleからドメイン設定画面を開いて Zone Fileで以下のように設定します。

やっぱり歪み系はAmplitube3

カテゴリー:  Tech  タグ:  music software

ずっと LINE6のGXに付属してたPod firmを使っていましたが、ふと見たらAmplitubeがセールで安くなっていたので思い切ってAll Bunldeを購入しました。FenderやOrangeのシュミレーターがバンドルされたやつです。

アンプや歪み系はPodもLINE6だけによくできていたのですが、はやりAmplitubeのほうがアナログな感じがします。特にOrangeのアンプはよくできていて、エフェクターなしでも本物かと疑うような音がなります。

iOS版も持っていますが、あちらはiRig経由なのでかなりノイズが入ってしまいましたが、MacではLINE6のGXにギターを繋いで使用しています。ECOモードなんてのがあるので、「重たいのか?」と心配していましたが、3年前のiMacでも問題なしでした。

テキストをUMLに変換するサービス yUML

カテゴリー:  Tech  タグ:  software uml

yUMLなるサイトを見つけました。

テキストで書いたデータをUMLのダイアグラムにしてくれます。

例えば、以下のようにクラス定義を書いておきます。

// BluePageProto Class Diagram
// Please paste to https://yuml.me/diagram/scruffy/class/draw
[Employee|cnum:String]<>->[EmoloyeeList(Array)]
[EmoloyeeList(Array)]<-[BluepageLookuper]
[DepartmentLookuper]->[BluepagesAPILocator]
[Department|dept:String]<-[DepartmentLookuper]
[BluepageLookupCondition]<-[ViewController] [BluepageLookupCondition]<-[BluepageLookuper]
[BluepageLookuper]->[BluepagesAPILocator]
[NotesId|cn;o;ou]<-[BluepageLookuper]
[ViewController]contents<-window[note:AppDelegate]
[DetailViewController]<-segue[note:ViewController]
[DetailViewController]->[BluepageLookuper]
[DetailViewController]->[DepartmentLookuper]
[DetailViewController]->[Employee]
[DetailViewCOntroller]->[Department]
[BluepageLookuper]->[BluepageLookupCondition]

すると、以下のような感じのクラス図にしてくれます。

実際には、このサーバーソフトを売っているようです。個人であれば年間5千円程度ですのでアリかなと思いますが、サーバーに導入する面倒さはなかなか手が出ませんね。

ちょっとUML書きたい程度であればサンプルで十分か。