iOSDC Japan 2017に行ってきました

子どもができてからというもの、なかなか勉強会やイベントに参加できなくなっていましたが、久々に参加してきました。 iosdc.jp かなり悩みつつセッションの選択をしたなかで、特に印象に残ったものをあげます。 両OSやるマンという選択 speakerdeck.com 実…

Swiftはプロパティもオーバーライドできる

バージョン Swift 3.0.2 Xcode 8.2.1 クラスのプロパティ 知らなかっただけなのですが、Swiftはプロパティもオーバーライドできます。 使い方次第で便利に使えそう。 サンプルコード プロパティのオーバーライドとプロパティ監視を組み合わせて、ボタンが無…

UIViewからUITableViewのカスタムセルを作るとボタンタップイベントが取れない

現象 UITableVIewのカスタムセルにボタンを置いて、タップ用の処理を書いたがタップイベントを検知できない。 原因 ボタンの上のレイヤーに、UITableViewCellContentView というビューが描画されており、このビューに邪魔されてタップイベントが検知できてい…

2016年の振り返り

今年もあんまりブログ書けなかったけど、振り返りはしておく。 お仕事全般 こまごまPHPもやったけど、ほぼSwiftでiOSアプリ開発ばっかりだった。 チームでのアプリ開発を経験できたり、RxSwift触ってみたり楽しかった。 プチSCMBCとかを開催して、ちょっとず…

配列の要素をオプショナルバインディング

はじめに コードレビューで、ちょっと不思議なコードがあったのでメモ。 結論 配列の添字アクセスをオプショナルバインディングしてもビルドエラーにならないけど、わかりにくいのでやめたほうがいい。 コード var hoge:[Int] = [] // hogeを更新する処理な…

PHPで画像やcssの404エラーでセッション切れになる現象

PHP

はじめに FuelPHPを使っていて、セッションが切れることがあり調査していました。 ググるとドキュメントルートにファビコンが存在していないと発生するなどの記事がヒットするのですが、ファビコンだけでなく読み込んでいる画像やcssがなくても同じ事象が発…

Sketchで透過オブジェクトを含むグループごとスライスする

はじめに 最近、PhotoShopの代わりにSketchを使うことも増えてきました。 SketchはMake Exportableで@2xや@3xもまとめて簡単に切り出せていいなーとか思ってたら、よくあるアイコンの下に固定サイズの透過オブジェクトがあるパターンで、グループごと切り出…

iOSで表示要素を動的に消して親ビューの高さを変える

はじめに ログイン前後で表示要素の数を動的にし、ビューの高さを変えるという仕様があり、実現方法を調べました。 意外とめんどくさかった。もっと効率の良いやり方もありそうです。 バージョン XCode Version 7.3.1 (7D1014) サンプル ラベル2つとボタン1…

PHPのDateTimeクラスを使って日時の差分を取る時に注意すること

php

はじめに とても今さら感のあるネタですが自分用にメモ。 プログラムで日付や時間を比較して何かを処理したい場合は多いはず。 PHPだとDateTimeクラスというのがあって、比較演算子==や>や<などが使えます。 大小比較だけでなく、日時としての差分を取るため…

FuelPHPでデフォルトのタイムゾーンと異なるタイムゾーンの日付を取得したい

はじめに 通常、FuelPHPにおけるタイムゾーンは`fuel/app/config/config.php`の`default_timezone`で設定します。でも、ある日付を別のタイムゾーン、例えばUTC(協定世界時)に変換したい時ってありますよね。WebAPIの日付指定がUTC限定だったり。そんな時…

Vagrantのベースボックス更新をするスクリプト

はじめに 最近、仕事でVagrantを使って仮想環境を構築して使うことが多いです。 たいていの場合、最初にここからベースボックスを取得して、パッチ更新、各種ミドルウェアのインストールなどをしてメンバーに配布します。 開発を進める中で、ボックスの内容…

PHPのsimplexml_load_file()でXMLを扱うときに注意すること

PHP

はじめに XMLは、JSONと違って同じ名前の要素を複数持つことができるのですが、PHPのsimplexml_load_file関数で扱うときにちょっとめんどくさかったのでメモ。 もっといい解決策があるかもしれません。 実験 入力XML list1.xml <data> <book> <title>Swiftではじめる iPhoneア</title></book></data>…

ランダムにタスクを割り当ててSlackに通知するbotを作った

はじめに 先日公開された下記のスライドを社内に紹介したところ、とあるディレクターさんからランダムにタスクを割り当てるbotについて聞かれたので適当につくってみました。 あなたのチームの「いい人」は機能していますか? from Minoru Yokomichi www.sli…

2015年の振り返り

雑に2015年の振り返りした。 ここ数年、1年過ぎるのが加速度的に早くなっている気がする。 お仕事全般 去年よりは、コード書く仕事が多かった。 主にFuelPHPと戯れてた。 Qiita:Team 7月くらいからQiita:Teamが導入されたので、積極的に投稿してる。 社内と…

FuelPHPで別フィールドを参照するバリデーションルール

はじめに このエントリーは、FuelPHP Advent Calendar 2015の11日目です。 FuelPHPのValidationクラスは、用意されたバリデーションルール以外にも独自のルールを簡単に追加することができます。 今までいくつも作ったことがありますが、今回ちょっとだけハ…

我が家の読み聞かせ

はじめに このエントリーは、お子さん、どんな本読んでる? Advent Calendar 2015 - Adventarの8日目です。 昨日の記事は、id:ohesotori さんの 復刊ドットコムと、赤羽末吉の「おへそがえるごん」 #adventcalender2015 - ここはちょっと見せられない でした…

PDOでMySQLに接続するとエラー発生

環境 PHP 5.5 MySQL 5.0 事象 コード 事象を再現させるための実験コード。 といっても、普通にPDO接続するだけ。 PDO::ERRMODE_EXCEPTION)); } catch (PDOException…

FuelPHPのUploadクラスを使用するときに注意すること

FuelPHPでファイルアップローダーを作ってた時にちょっとはまったこと。 バージョン FuelPHP 1.7.2 現象 `upload_max_filesize`、`post_max_size`などを、1GBの設定にしても、400MBのファイルでエラーになる。 原因 FuelPHPのUploadクラスには個別の設定があ…

2014年振り返り

あっという間に終わった感があるけど、2014年の振り返りを。 今年はほとんどブログ書かなかったなー。 お仕事 1月から新しい職場で働き始めて、Webプログラマ見習いとしてPHP、JavaScriptでお仕事してました。コード書く仕事は半分くらいで、残りはプロジェ…

特定のファイルがないディレクトリを抽出する

仕事でサーバ設定いじってて、ちょっと悩んだのでメモっておく。 とりあえず目的は達したけど、もっと簡単にできる方法があれば、ぜひ教えてください。 やりたいこと 同じ構成のディレクトリ群の中から、置き忘れる、消されるなどして必要なファイルが存在し…

JavaScript と CSS の minify

久々G*関連ネタ。tree-tips: Gradleでjavascriptをminifyする! | Gradle tree-tips: Gradleでcssをminifyする! | Gradle上記サイトのビルドスクリプトを参考に、カレントディレクトリ以下の JavaScript と CSS を再帰的に minify するようにした。ただ、使…

XMLHttpRequest でのリダイレクト処理

XMLHttpRequest でリダイレクトがうまく処理できなくて困ったので調べてみた。 結論 サーバのレスポンスがリダイレクト (30X) の場合、XMLHttpRequest が勝手にリダイレクトしてくれてリダイレクト先のレスポンスが返ってくる。 つまり、転送先が正しければ …

64bit 版 KaoriyaVim で突然の死

あるあるかもしれないけど、64bit 版 KaoriyaVim では、python の dll がロードできないと突然死にます。*1 なお、32bit 版だとエラーメッセージは出るけど落ちません。ということで、64bit 版の python をインストールしましょう。http://www.python.jp/dow…

Windows8 環境設定メモ

Windows8をセットアップした時のメモ。 Microsoft アカウント Windows8 ではアカウントを Microsoft アカウントにできるのだけど、Microsoft アカウントの名前が日本語で登録してあるとホームディレクトリが ”C:\Users\太郎" みたいなことになってしまう。 …

2013年振り返り

年末なので今年の振り返りです。 今年は個人的に大きな出来事があった年でした。 子供が生まれた 夏に子供が生まれて生活が一変しました。何をするにも子供が最優先、自分の時間を作るのが一苦労です。 平日は妻一人に任せきりなので休日くらいは父親業しな…

公開鍵暗号による暗号化 PDF の仕様ではまった

PDF

PDF 生成プログラムで公開鍵暗号暗号化したPDFが Acrobat で開くとデジタルID がありませんというメッセージが出て開けないという状態でしばらくはまってました。 とりあえず解決したっぽいのだけど、なんだか腑に落ちないところがあるのでメモ。原因は PDF …

Acrobat の暗号化 PDF 生成機能についての疑問

PDF

仕事で PDF の仕様を調べていて感じた疑問。 結論は無いですし、勘違いしてるかもしれません。 暗号化 PDF PDF にはセキュリティ機能として、パスワードによる暗号化と公開鍵による暗号化の二種類の暗号化機能があります。 Acrobat 内の表記だとパスワードに…

組込み OS 自作しました

ちょっと前になりますが、『12ステップで作る組込みOS自作入門』という本を見ながら、低機能な OS を作ってみました。12ステップで作る組込みOS自作入門作者: 坂井弘亮出版社/メーカー: カットシステム発売日: 2010/05メディア: 単行本購入: 24人 クリック: …

TDDeXchange in Tokyo に参加しました

TDDeXchange in Tokyo - connpass TDDeXchange in Tokyo #TDDeX - Togetterまとめ書くのが少し遅くなってしまいました。 TDDBC には参加できなかったのですが、翌日のこれに参加してきました。 「TDD の自殺」 by @kyon_mm さん TDDの自殺 #TDDeX from Kyon …

Vim で Esc を置き換えたキーマッピングと本来の Esc の挙動が違うことがある?

Vim

まだ根本解決できてないけどメモ。 現象 こんな設定をしてみたのだけど、 をしてもハイライトが消えない。 "ノーマルモード時 <Esc> を <C-j> にマッピング nnoremap <C-j> <Esc> "Escの2回押しでハイライト消去 nnoremap <Esc><Esc> :<C-u>nohlsearch<CR><Esc> 試したこと 何人かの方から noremap だから</esc></cr></c-u></esc></esc></esc></c-j></c-j></esc>…