投稿

airbnbを使ってみた

イメージ
今さらながらairbnbってどんなもんだろうという疑問を解消 すべくクリスマスシーズンに京都に泊まって使ってみました。 この時期ホテルは高いな〜と思っていたのですが、 今回はアパートの1部屋貸切で借りてみたところ、 ホテルに泊まるよりも安く、 ビジネスホテルよりも部屋数があって広く、 キッチン使って簡単な料理もできたので大満足でした。 普通の部屋に住むようなもんなのでゴミ捨てはありますが、 ホテルとの違いはそれぐらいかと思います。 予約、 クレカで支払いをするとオーナーと簡単なメッセージのやり取りを して、チェックインの方法などを教えてもらえました。 当初思ってたようなコミュニケーションの難しさもなく、 簡単だったのでまた機会があれば宿泊予約の候補に入れようと思い ます。 あと、 Airbnbに会員登録していない方はこちらから登録すると、 お得なクーポンが付いてくるようです。 https://abnb.me/e/K8JwiBWxVS たしか2000円弱もらえるので確実にゲットしてください。 ちなみに僕はその存在を知らずに登録してしまって何もなしで損し た気分でした(笑)

シグマはどう実装するか

気付いたもののメモです。 数学のシグマについてですが、どうやって実装するのが良いのかという話です。 私は安易に飛びついてforで回してしまったのですが、 mapで各要素を計算したコレクションを作ってsumするのが短く書けていて賢く思えました。 短く書くのはクセづけたいけどどこかで使うことあるかなぁ。。

rubyにはIPアドレスのライブラリがあった

使わないと気付かんなぁ。。 require 'ipaddr' 32桁のunsigned intを変換するのに使える。 使う時出てくるんだろうか。。 IPAddr.new(int32, Socket::AF_INET).to_s とすると、 unsinged intから"*.*.*.*"になる。 元々は知らなくてこう書いてた。 int32 == 0 ? "0.0.0.0" : int32.to_s(2).scan(/.{1,8}/).map{|v| v.to_i(2)}.join(".") 勉強になりました。

mapはすごいなと感じた備忘録

最近rubyを触っていなかったので、時間があくとそういえばこんなメソッドあったなと気付くことが多いです。 今日はmapでした。 https://ref.xaio.jp/ruby/classes/array/map array .map {| item | block } 配列内の要素を1つずつ取ってblockで処理して配列に戻すというものなのですが、 eachでループ回してやるのと同じで、むしろ短く書けますね。 得られた配列に対してそのまま繋げて書くこともできるので array.map {|item| block }.joinとすればすぐに文字列にすることもできたりして便利。 さらにメソッド内では&:blockみたいな書き方もできてさらに短くできる。。 array.map(&:capitalize).joinみたいな。 使えるように癖づけていかねば。

ブログの存在を思い出した

このブログの存在を思い出したので久々に。 ごちゃごちゃしてたのでテンプレートも一掃しました。 最近はというと事業考えるかKotlin触るかYoutuberの動画を見てます。 * ほぼ当たらないけど事業考えて作っているのは楽しい。 センスないというのも重々承知しているものの、 地方でプロダクトアウトで始めるのがダメなのかと感じることもある。(あかんやないか) リスキーなので最近は初めから大きいものは作ってないけど、 謎解き好きならこれを使うと良いというサイトを作ったりしました。 何卒使ってみていただけるとありがたく。。 謎解きの海 * Kotlinは基本的にJavaでやってた既存Android-PJの書き直しが多い。 非常に短く書けて良いなと思ったり、 そもそも書き方わからなくてググったりという作業の連続。 真面目に学ばないといけない感じもする。 あれやったりこれやったりというのを繰り返すとプロダクトの品質下げて良くないね。。 * Youtuberの動画は面白いのかもしれない 結構長い間受け付けなかったけど、 たぶんコンテンツとして洗練されてきているのを見ているんだろうと思う。 個人的に一般人がやる検証系の動画は面白く感じる。 無限にコンテンツが増殖されるプラットフォームは強い。。

CakePHP1.3系で開発していたものをCakePHP2.x系にアップグレードするときにハマった話。

何にハマったのかというと、ログイン関連とメール送信関連とテスト関連です。 ハマるまでは簡単で、まずは公式サイトのマニュアルを見てください。 するとあぁ、upgrade-shellってやつで何かうまくやってくれるんだなという雰囲気があるのでその通りに実行していきます。 upgrade-shellを実行した後は、「あれ、エラーがいっぱい出てる」という気分でした。 エラーの内容をメモするのを忘れましたが、CakePHP2.x系になってから新たに追加されていた設定がupgrade-shellだけでは対応されていなかったことが問題でした。 確か /index.php /app/webroot/index.php /app/webroot/test.php /app/Config/database.php /app/Config/bootstrap.php /app/Config/core.php を書き換えました。 これでほぼ表示はされていたと思います。 そこで、テストを走らせようとhttp://localhost/appname/test.phpにアクセスしてみると、CakePHP2.xからはSimpleTestではなく、PHPUnitに変わっていたことを思い出しました。 このあたりはQiitaでうまくインストールされていた方の記事を拝見して参考にさせていただきました。 http://qiita.com/ikuwow/items/b53cdaeb0132211ec272 テストを実行するとあーダメだとまた気づきます。 upgrade-shellでは/app/Test/*/〜.phpのファイル名がキャメル記法になっていませんでした。 そしてログイン関連とメール送信関連が動いていないことに気づきました。 まずログインですが、CakePHP2.4以降はログイン処理の書き方が変わっていました。 ハッシュも自動的にはされなくなっていて、最初は少し驚きました。 この辺りは公式のマニュアルのログイン処理の部分をご覧ください。 メールについては、もともとQdmail+QdsmtpのComponentを使っていたもので、 Componentのファイル群をCakePHP2.x用に修正しました。 ここも人柱がおられたの

AndroidのMaster-Detailテンプレートでハマった話。

開発環境:EclipseでADTプラグインを入れた環境です。 発生したのは、エミュレータAndroid3.2(API 13) WXGAでした。 AndroidのActivityを新規作成していくと、 Master-Detailのテンプレートが選べます。 Android 3.0以降からフラグメントを利用することで、 タブレットでは1画面2ペインでリストと詳細内容を表示、 スマホでは1画面にリストを表示し、 そのアイテムをタップすると詳細ページに遷移して表示 できるようになるといったものです。 また、Androidのサポートライブラリappcompat_v7は、 Android3.0以前でもActionBar等が使えるようになったりします。 今回ハマったのはこれらの併用です。 なぜかサポートライブラリを利用した状況で、 テンプレートで作ったリストを表示しようとすると、 getActionBar().setDisplayHomeAsUpEnabled(true); でNPE(Null Pointer Exception)が発生しました。 たぶん何かの手順が前後したりしてこうなったのかなと思いますが、 サポートライブラリを利用すると、スタイルは強制的にサポートライブラリのテーマになります。 でも、実際のプログラムの方はサポートライブラリ対応版になっていなかったわけです。 結構調べて、結局、下記が解決策でした。 FragmentActivityをActionBarActivityに変更。 getActionBar() を getSupportActionBar()に変更。 同じように困っている方がいれば。 参考: http://fragmentswithationbar.blogspot.jp/2014/04/fragments-with-action-bar-and-support.html