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

White Box技術部

WEB開発のあれこれ(と何か)

「テストを書く文化がないからテストがないんです」

それは怠慢だろうが!いい加減にしろ!! じゃあテストコードはこのプロジェクトなくていいのか?と問えば、ある方がいいと思うと答えてくるが、 じゃあなぜ書かないのかと問えば、文化が・・・と答えてくる。 中には、画面で実際にオペレーションをしてテス…

Circle Checker作りで学んだこと(GroovyとかSpockでのモックの書き方とか)

技術的なこと 前回はCircle Checkerの紹介だったので、今回は作って学んだことを書こうと思います。 ※Circle Checkerの紹介記事はこちらです。 技術的なこと 実装の話 リモートのGitリポジトリとローカルをマージ 便利なDTOの定義方法 Twitter APIのカーソリ…

【自作ツール紹介】 Twitterのユーザ名からイベント参加情報を抽出するツール「Circle Checker」

なぜ余裕を持って行わないのか・・・ 原稿に追われていようといまいと、不精な性格が災いして、 イベント直前にならないとサークルチェックをしない私のような人に「余裕を持って行え」とか言っても無駄なので、 プログラマらしくプログラムで解決を図ってみ…

GradleプロジェクトのSpockのテストをCircleCIで実行してJaCoCoでカバレッジを取りつつCoverallsで表示する

ちょっと思い立ってJavaでコードを書いていて、 さらに思い立ってカバレッジのバッジをREADMEに付けようとしたら、 思いの外ハマったので「GradleプロジェクトのSpockのテストをCircleCIで実行してJaCoCoでカバレッジを取りつつCoverallsで表示する」ための…

新年の挨拶と、reviewetのバージョンアップ連絡

新年あけましておめでとうございます 2日に、幼少の頃以来の初詣に行ってきました。 それもずっと行きたかった神田明神へ参拝することができたので、今年は幸先がいい感じがします。 IT情報安全祈願のお守りも購入できたので、後は頑張ってシステム作りに励…

Twitter画像取得ツール「reins」の0.3版をリリースしました

seri.hatenablog.com 前回の紹介からほぼ2年ぶりですが、Twitterからいい感じに画像を取得するツールのreinsの最新版をリリースしました! reins 0.3 今回、以下の機能追加・バグ修正を行っています。 リツイートの取得に関する動作変更の選択機能の追加 rei…

【Shansible】VagrantとAnsibleでのShangriLa開発環境構築

Shansible Shansibleは、秋葉原IT戦略研究所のProject ShangriLaでAnime APIが動作するサーバ群を構築するためのプロジェクトです。 Shansibleを利用することにより、VagrantとAnsibleを使って簡単にローカルでAnime APIの動作を確認する環境を作ることがで…

【Reviewet】アプリレビュー通知ツールのその後

Reviewet 以前も紹介したアプリレビュー通知ツールのReviewetですが、その後も少しずつ変更を加え、 一部の挙動や起動方法も変わりましたので、今日はその紹介です。 変更内容 ざっくり書くと変更点は以下になります。 メールの件名に、どちらのOSのレビュー…

【Ansible Meetup】うちのチームの話をしてきました:共通言語「Ansible」

Ansible Meetup in Tokyo 2016.06で発表者枠が頂けたので、自チームでのAnsible運用の様子を発表してきました。 共通言語「Ansible」 Ansibleは仕組みがシンプルなので、コード全体が正確にはわからなくても、なんとなく動作を推測できる構成管理ツールだと…

【自作ツール紹介】iOS/AndroidアプリのレビューをSlack/Email通知するNode.jsアプリ「reviewet」

追記(2016/05/29):メール通知機能、実装しました タイトルの通りですが、Node.js上で動作するiOSとAndroidのストアレビューをSlackに通知しつつメール通知もできるプログラムを書きました。 作った理由 iOSとAndroidアプリレビューをSlack通知してくれる…

第3回 ShangriLa MeetUpの振り返り

ShangriLa MeetUp 第3回目となる、ShangriLaのMeetUpを先日の4/9(土)に秋葉原で実施しました。 (ShangriLaは、OSSコミュニティの秋葉原IT戦略研究所が作成している、アニメ情報のIT化プロジェクトになります。) 3回目ですが、コミュニティのメンバー以外…

【logrotate】CentOSでログローテする

ログローテはたまにやろうとすると、あれどうだっけ?となるので logrotateを使ったログのローテーション方法をまとめました。 前提 環境(OS):CentOS 6.6 利用機能:logrotate、cron 今回は、ローテーションしたいログ、例えばアプリケーションログを /va…

php-fpmはgraceful restartしません(回避策あり)

php-fpmはgraceful restart. そう思っていた頃が私にもありました 以下の公式ドキュメントに「緩やかな (graceful) 停止/起動 機能を含む高度なプロセス管理」と記載があるので、 何の疑いもなくservice php-fpm reloadを叩いたらプロセスが落ちました。。 P…

【duolingo】最近の英語学習方法

duolingoを使って英語の勉強をしています。 www.duolingo.com どういうものか? ざっくり言うと、文法、用途でジャンル分けされた内容の小テストをひたすら消化していくものになります。 出題される問題は、英文を音読するだけのもあれば、翻訳(日英、英日…

【Linux】メモリがカツカツなサーバのメモリを復活させる

メモリ枯渇の背景 仕事で、PHPのPhalcon FWで作ったAPIアプリケーションが乗ったphp-fpmサーバを運用しているのですが、 こやつで大量のリクエストをさばけるよう、負荷試験を行ってチューニングした結果、 現在php-fpmプロセスは、staticでリクエストを待つ…

MacPortsでMySQL5.7をインストールする

homebrewが猛威を振っていますが、MacPortsおじさんの私は元気です。 MySQL 5.7をインストールする 仮想環境にはMySQL 5.7を入れたりしていましたが、そういえばMacには入れてなかったのでインストール作業をしてみました。 環境情報 OS X Yosemite (10.10.5…

Phoenix Framework Documentの翻訳:Overview

www.phoenixframework.org 概要 Phoenixは、サーバサイドMVCパターンを実装するためにElixirで書かれたWebフレームワークです。 その構成要素と概念の多くは、Ruby on RailsやPythonのDjangoのような、他のWebフレームワークの経験を持つ私たちに馴染みのあ…

勉強会おじさんになって思うこと

チーム内交流のために勉強会を開催していたら、なんか勉強会おじさんっぽくなってしまったので 今後の実施方法も考えて、少し現状を振り返ってみました。 なぜ勉強会を始めたのか? そもそも勉強会を始めるきっかけだったのは、もちろん単純にやりたかっただ…

【Groovy/ShangriLa】JsonSlurperとHTTPBuilderの使い方サンプル

引き続きShangriLaを例にしていますが、今度はGroovyでGETリクエストの実行と返却されたJSON文字列を処理してみました。 おや、Gradleサイトの様子が・・・! README書くためにGradleのサイトに行ったところ、サイトがリニューアルしていました。 Gradle l M…

2015年の振り返り

2015年を振り返って 去年に引き続き、今年も本年を振り返ります。 ブログ関連 まずはブログ関連の話から。 ブログへのアクセス数 今月のアクセス数が今のところ12,003で、現在のトータルアクセス数が123,140です。 去年の同月時点では、月が5,432、トータル…

【Scala/ShangriLa】秋アニメ情報のJSONをGETリクエストで取得する

秋アニメは何観てますか? こんなグラフを見たことある方はいないでしょうか? 実はこれ、友達が作成して公開しているものだったようです(知ったときは驚きました)。 グラフ作成のためのデータを取得するAPIも公開していて、これが今scalaベースで動いてい…

【au & DMM】携帯料金9100円から2350円への道

買い換えないと損(?) iPhone 6sが発売されましたね。販売状況を見てみましたが、都内だと新色以外なら待ちなく買えるようでした。 今回はどこもこんな感じなんでしょうか。 さて、5sを使っている自分は、来月で使用期間が2年になり、キャリアに依存した買…

2つのHHKB

会社で使っていたキーボードを持ち帰ってきたので、家のキーボードと並べてみました。 上が家の(Type-S)で、下が会社の(無印)です。会社のはだいぶ黄ばんでしまっていますね。 買ったタイミングとしては家の方のがちょうど1年くらい遅いので、無印が5年…

テストでハマるInvocationTargetExceptionとIE80リケーブルの話

privateメソッドの例外発生テスト メソッド単位にテストを書いていると、privateメソッド単体の試験をしたくなるときがありますが、 リフレクションを使ってテストした場合は、例外の扱いに気をつける必要があります。 というのも、リフレクション中に例外が…

【Java 8】突然のfor文禁止に泣かないためのlambda練習(文字列長の比較)

for文禁止かlambda禁止か Java 8を利用することになると、恐らくこの話が出てくるのではないかと思います。 というのもfor文で書くコードは、基本lambdaでも書けるわけで、 そうなるとコーディング規約としてはどちらかに寄せないといけない、みたいなところ…

Kickstarterの楽しみ方

最近、Kickstarterの動画を観るのにハマっています。 www.kickstarter.com Kickstarterは、クラウドファンディングの場を提供しているWebサイトで、 ユーザはプロジェクトの出資を求める側と、出資する側、どちらにもなることが可能です。 出資を求める側は…

(改訂)ちょっとカウントしたい文字数を変更したいときのHTML

覚えていらっしゃいますか? 以下のブログの記事に私が書いた1文を。 ちょっと文字数をカウントしたいときのHTML - White Box技術部seri.hatenablog.com JavaScriptの方がメインなので、そちらの解説をした方が良い気がしますが、それほど難しいことでもない…

JUnitとMockito+PowerMockでテストケースを書いてみよう

最近テストばっかり書いていたので、 いい機会ですし、学んだり、考えたりしたことを、 私がテストを書くときに気にしていることと合わせて、まとめてみます。 あと、今回初めてMockitoとPowerMockを使ったので、 テストはそれらを使う場合にフォーカスして…

SoapUIを使った通信処理のテスト(送信先サーバをモックする)

通信処理のテストをテストケースで! SOAPのサーバ/クライアントとして動作するSoapUIというツールがあるのですが、これをJUnitのテストケースから使って、SOAPサーバをモックしたテストを書くことができます。 SoapUI - Browse Files at SourceForge.net S…

テストパターン(Factoryのモック)

MockitoとPowerMockで、返却値がabstractクラスのFactoryメソッドをモックする感じのコード。 @RunWith(PowerMockRunner.class) @PrepareForTest({SomeFactory.class}) public class SomeTestClass_SomeMethodTest { @Test public void 作成したインスタンス…

DroidKaigiとか今月買った本とか

DroidKaigiに行ってきました 先週末、運良く当選したのでAndroidの勉強会のDroidKaigiに行ってきました。 DroidKaigi | 2015/04/25droidkaigi.github.io Android SDKは2.2位のときにいじって、あまりにも開発環境周りが残念で、開発意欲が湧かず、OSに直でプ…

ちょっと文字数をカウントしたいときのHTML

文字数をカウントしたかったのですが、手元のエディタでうまいことカウントできなかったので、 昔書いたJavaScriptで文字数をカウントするコードを引っ張り出してきてみました。 Twitterが流行りはじめた頃でした。懐かしい。 以下はそのJavaScriptの利用例…

WebSphere Application Server 8をCentOS 6.6にインストールするまで

すんなりいかなかったので備忘録のようなものを。 以下の記事で書いた手順は省略します。 WebSphere Application ServerとSpringで開発をする - White Box技術部 WebSphere Application ServerとSpringで開発をする - White Box技術部 インストール環境とWAS…

【Eclipse】StepCounterに選択範囲のカウント機能を追加した話

「ちょっと聞きたいんだけど」 「この機能何ステップくらい?」 とか、 「今日何ステップくらいコード書いたの?」 とか、仕事でコードを書いていると、上長にコードのステップ数を問われることが多々あります。 個人的には、実コードを見ない人がステップ数…

Swift学習の話 〜WEB+DB PRESSを片手に〜

相変わらず統一性がないですが、今回はSwiftに関してです。 WEB+DB PRESSでのSwift特集 年末のドタバタで読んでいなかった、vol.84のWEB+DB PRESSにSwift特集が載っていたので、一通りやってみました。 WEB+DB PRESS Vol.84 WEB+DB PRESS Vol.84|技術評論社…

最近の学び

手軽なネタがないので、今月学んだことなんかを。 サーバ関係 RedmineとSubversion Redmine上で参照しているSubversionのリポジトリ表示がリビジョン300近くになってから、ものすごく遅くなった。(Redmine以外からのアクセスも遅くなった) どうも根本原因…

Twitter2015年問題@2014年

※エラー原因が誤読出来る感じだったので本文直しました。ご指摘ありがとうございます。 新年あけましておめでとうございます。 お休みって素晴らしいですね。今年も頑張っていきましょう。 新年Rebuild まさか元旦からRebuildが聞けるとは思ってもいなかった…

2014年の振り返り

2014年を振り返って 2014年も残すところ後3日になりました。 まだ3日もあるよ!やったー!とか思った私は少数派だと思いますが、 2014年自体はいつものように"あっという間"だった気がします。 というのも何をやっていたのかあまり思い出せな・・・ウッ、仕事…

WebSphere Application ServerとSpringで開発をする

What is ワズ? WebSphere Application Serverを略してWAS、ワズとかワスとか言いますね。単にWebSphereと言う人もいますが私はワズ派です。 でも知らない人に「ワズ」と言うと、何のことかイメージし辛いと思うので、初めて話す人には正式名称で話すか資料を…

はてなブログ中のリンクの表示をblank(別ウインドウ表示)にする

はてなブログの不満 今でこそ便利に利用させて貰っていますが、ずっとはてなのサイトは苦手でした。 苦手意識の源泉は、10年以上前のサイト表示のストレスなので、今ではなんともないのですが、 過去のストレスを思い出してしまう動作は残っているので、「あ…

【Swift】変数の後ろの!と?の挙動

休みだ、わっしょい 通勤中や昼休みに、ちまちまThe Swift Programming Languageを読んでいたのですが、 ちょっとThe Basicsを読んでたときに、 Optionals(変数の後ろに?をつけて、値が入ってるかもを表す)と Implicitly Unwrapped Optionals(変数の後ろ…

【自作ツール紹介】Twitterのリスト内ツイート画像取得ツール「reins」

久しぶりにブログを書いてみて reinsの紹介をしてなかったことを思い出したので、時間が経ってしまいましたが、ここで紹介します。 手綱を握れ! 前からTwitterで流れてくる気に入ったイラストはちょくちょく保存していたのですが、1)いつからか保存の頻度が…

OS Xアプリ開発のチュートリアルをやってみた

Mac

OS X事始め ちょっとOS XのTwitterクライアントを作りたくなったので、開発チュートリアルをやってました。 Your First Mac App: About Creating Your First Mac App ただちょっとこのページ問題があって、左に表示されているナビゲーターからリンクを押下す…

【Groovy/Gradle/Twitter4j】Twitterのリスト内ツイート画像取得ツール「reins」 0.1版リリース

リリースしました! seriwb/reins · GitHub まだ機能不十分版ですが、Twitterの登録リスト内のツイートに流れてきた画像をダウンロードしてユーザー別に保存しておくツールができたので、GitHubにリリースしました。 使い方などはGitHubのREADME.mdを参照し…

【解決済み】【Scala】WindowsでGit Bash利用時のsbt文字化け問題とその対策

先日、sbtの文字化け対策に関する記事を書きましたが、実はこれだけだとまだ肝心のプログラムの出力で文字化けします。 【Scala/Java】sbtの文字化け問題(sbt.batに惑わされた話) - White Box技術部 これはプログラム上で使われている文字コードがUTF-8な…

【Scala/Java】sbtの文字化け問題(sbt.batに惑わされた話)

※新しい対策記事を上げました(2014/07/20) -【解決済み】【Scala】WindowsでGit Bash利用時のsbt文字化け問題とその対策 - White Box技術部 もーーーーーーーーーーーーーーーーーーーーーーーー!! ・・・おはようございます。 書きたいプログラムがあって…

ScalaとCourseraと英語の話

色々あってScalaをまた始めることにしました。 色々の部分は大したことではないので、末尾に書くとして、Scalaです。 Scala コップ本が出たあたりに少し勉強はしたのですが、当時はバージョン2.7で今は2.11ですか・・・時の流れは早いですね。 HPもだいぶオ…

GitHub Kaigiからの~Grails 2.3系にまつわるSpockやJUnitの話

※コメントを受けてSpock周りの話を修正しました(2014/06/23) GitHub Kaigi 先週GitHub Kaigiに行ってきました。 去年のLLまつり以来の勉強会ちっくなイベント参加だったのでかなり期待していましたし、 実際期待以上に面白かったです。 Rebuildの公開録音…

【解決済み】MacのGGTS(Grails)がJava8入れたらエラー吐くようになった問題

Groovy:Repetitive method name/signature for method 'java.lang.Object withFormat(groovy.lang.Closure)' in class 'grails.plugin.databasemigration.DbdocController'. 「あれ?なんか変なエラー出てる・・・」 ある日MacでGGTSを使おうとしたら上記の…

【Grails/Groovy】プルダウン作成にまつわるあれこれ

Grailsでのプルダウンの作り方をあれこれ悩んだので、今日はその話を。 ※Grailsのバージョンは2.3.7です。 やりたいこと マスタ値からプルダウンに使う値を取得して、アプリケーションスコープに格納し、それを使ってプルダウンを作成したい。 プレースフォ…