読者です 読者をやめる 読者になる 読者になる

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>…

TDD ミートアップに参加しました

TDDミートアップ - connpass TDDミートアップ #TDDMeetUp - TogetterまとめTDD 実践してないけど面白そうなので行ってきました! いろんなトピックがあったなかで自分が提案したトピックが取り上げられてよかったです。 ディスカッションした感想というか考…

プラグイン常習者が素の Vim しかない状況になったときに便利だったコマンド

Vim

普段は vimfiler や unite を常用していますが、最近、素の Vim を使う機会が多いです。 とは言っても、Linux サーバ上でテスト用の設定ファイルをちょっと編集したり、コードの確認をしたりといった簡単なものですが。PC にダウンロードしてきて秀丸で編集…

複数 UI のバージョンを管理するベストプラクティスがわからない

SCM

これだ!っていう管理方法を思いつきませんでした。 こうすると良いよ!こうしてるよ!っていうのがあれば是非教えてください。 概要 開発用ツールとして UI 及び使用可能な機能に差を持たせたデスクトップアプリを作っています。 仕様はホワイトボードの落…

複数ファイルを横断的に操作する

Vim

毎度忘れてググってるのでメモ。 やりたいこと 複数ファイルを横断的に操作したい 代表的なのは置換とか vim でも当然できます。 方法 args に対象ファイルを設定する。 :args *.groovy :args **/*.groovy <-サブディレクトリも対象にする argdo でコマンド…

Yokohama.groovy #14 に参加しました

Yokohama.groovy #14 #yokohamagroovy - connpassいつの間にやら 14 回目の Yokohama.groovy に参加してきました。 今回は mattari.grails と合同での開催となりました。ここしばらくいなかった初参加の方もいましたよ! やったこと Griffon で brainfuck イ…

Git 天空闘技場に参加しました

Git天空闘技場 - connpass普段は SVN と Mercurial を使っているのですが、Git 力を上げつつ、違いを知ることで Mercurial の理解も深まればいいと思って参加しました。 感想 オブジェクトの内容を直接確認したり、コマンドを使わずにブランチを作ったり、通…

『JUnit実践入門』写経・実践会 in 横浜 #5 に参加しました

『JUnit実践入門』写経・実践会 in 横浜 #5 - connpass 2013/04/14 『JUnit実践入門』写経・実践会 in 横浜 #5 #junitbook - Togetterまとめタネマキさんへ来るのは 1 ヶ月ぶり、この勉強会には 2 ヶ月ぶりの参加でした。 やったこと "17 章 振舞駆動開発" …

チケットのカスタムフィールドに日付フィールドを追加する

自分用メモ バージョン TracLightning-3.1.3 試したこと 管理コンソール -> チケットシステム -> カスタムフィールドから、下記の設定でカスタムフィールドを追加。 種別 : Text Label : 任意の名前 Format : Plain これで OK と思いきや、これだけだとチケ…

Nagoya.Testing in Tokyo 3 -アジャイルなテストの見積りと計画づくりにスタッフとして参加しました

Nagoya.Testing in Tokyo 3 -アジャイルなテストの見積りと計画づくり- #NagoyaTesting on Zusaar Nagoya.Testing in Tokyo 3 -アジャイルなテストの見積りと計画づくり- #NagoyaTesting - Togetterまとめ前日の Groovy 基礎勉強会に続いて、この日もオラク…

Groovy基礎勉強会に参加しました

Groovy基礎勉強会 - connpass 2013/03/09(#GroovyBase)Groovy基礎勉強会 - Togetterまとめ 感想 基礎大事でしょってことで、初めて基礎勉強会に参加してきました。 結論としては、なるほど、わからん!ってとこですかね。 Java をちゃんとやったことないまま…

ボールカウント(野球)を Groovy で

オフラインリアルタイムどう書く第三回の参考問題 - QiitaYokohama.groovy で、これを解いてみました。 なんか、すげー手続き型っぽくなってしまった。 完成した後、Groovy で解いてた人の洗練されたコード見て、こういうの思い浮かぶようになりたいと思いま…

rlwrap をインストールしたらとても便利だった件

プログラミングの基礎 (Computer Science Library)作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア: 単行本購入: 17人 クリック: 409回この商品を含むブログ (126件) を見る今年の目標の一つである、関数型言語の世界を覗いてみようと…

grep 結果に quickfix からジャンプできない

Vim

職場の Windows マシンで混乱した話。 結論 vim で grep 結果の quickfix から該当箇所にジャンプするには grepprg を "grep -n" とする必要がある。*1 知ってるよって人には、ここから先に新しい発見はないと思います。.vimrc の設定をこうすれば OK。 Wind…

ポーカーの役判定を Groovy で

勉強会 - 第一回 オフラインリアルタイムどう書くの参考問題 - Qiitaこれを Groovy でやってみた。 判定が楽になっていいけど、ストレートやフラッシュがないのはなんでかね?gist https://gist.github.com/4640261 package doukaku import doukaku.Poker im…

Yokohama.groovy #11 に参加しました

Yokohama.groovy #11 #yokohamagroovy - connpass 2013/01/20 Yokohama.groovy #11 #yokohamagroovy - Togetterまとめまいどおなじみタネマキさんで2013年最初の Yokohama.groovy。 今回からハッカソン形式になって各自もくもくがメインでした。 当初は運営…

『JUnit実践入門』写経・実践会 in 横浜 #2 に参加しました

『JUnit実践入門』写経・実践会 in 横浜 #2 - connpass junitbookyokohama / home / wiki / JunitBookInYokohama02-20130112 — Bitbucket 2013/01/12 『JUnit実践入門』写経・実践会 in 横浜 #2 #junitbook - Togetterまとめいつも Yokohama.groovy でお世話…

2013年の目標

あけましておめでとうございます。 今年もよろしくお願いします。1月も2日となってしまいましたが、今年の目標をメモしておきます。 インプット 本を読む まずは積んであるやつから もちろん技術書以外も 勉強会に参加する 参加するものを厳選する 手を動か…

2012年振り返り

大晦日に今年の振り返りをしてみました。 よかった コミュニティに参加するようになった 社外の人にたくさん会って刺激を受けた 運営に主体的に関わるコミュニティもできた ブログを始めた とりあえず継続できてる まだまだ少ないけど反応があるとうれしい …

2012年に読んだ技術書

元ネタ うさみみエンジニアが2012年に買った技術書 - うさぎ組触発されて書いてみます。 読み終わった本なので、今年買った本じゃないのも含んでますし、読みかけの本は除いてます。*1 買った本はもう少しあります。早く読まなきゃ。 こうしてみると新しい本…

Yokohama.groovy #10 に参加しました

Yokohama.groovy #10 - connpass年内最後の Yokohama.groovy でしたが、師走ということもあってか参加者 2 人という寂しい感じ。 もう一人は @grimrose さんでした。ですが、タネマキさんは今回も盛況。最近にぎやかですね。 今回の範囲 プログラミングGROOV…

DevLOVE Conference 2012 に参加しました

DevLOVE Conference 2012 - DevLOVE | Doorkeeper記念すべき 100 回目の DevLove に参加してきました。 こうしたイベントが 100 回も続くってすごいことですよね。残念ながら諸事情により 15 日のみの参加でしたが、とても刺激的な一日でした。勉強会で見た…