sifue's blog

プログラマな二児の父の日常

ドリキャプ HDMIキャプチャーカード DC-HA1をWindows10で動かしてNintendo Switchの出力をキャプチャする

ずいぶん昔、6年以上前に買ったドリキャプ HDMIキャプチャーカード DC-HA1をWindows10で動かしてNintendo Switchの出力をキャプチャするためにやったことまとめます。最終的にスクリーンショットの通り、OBS Studioなんかで映像キャプチャデバイスとしてキャ…

競技プログラミングをゆる~くやりはじめた

もともと競技プログラミングや数学があまり得意な方ではなかったなんですが、N高等学校で競技プログラミングを教えるということもあるし、N高生には競技プログラミングがまじで得意な生徒さんやら、アドバイザーのドワンゴ社員もいるのでこれはチャンスと思…

プログラミング初心者のためのワークブック「高校生からはじめる プログラミング」を発売しました

この度、N高等学校/N予備校のプログラミング入門コースで授業した内容の最初の3か月の部分が本になりました! 表紙や中の扉絵がソードアートオンラインなのは、中高生の皆さんにとりあえず興味を持ってもらえるようにそのようになっています。川原礫先生、本…

SIerクエストとSIerクエスト2をiPhone/Androidに移植しました

SIerクエストリリースして1年経つわけなんですが、たまたま開発者登録する機会があったので iPhone版とAndroid版に移植して作ってリリースしました! SIerクエスト iPhone版https://itunes.apple.com/jp/app/sierkuesuto/id1163670015?l=ja&ls=1&mt=8 SIerク…

SIerクエストとSIerクエスト2の攻略方法

SIerクエストとSIerクエスト2 と作者のsifueです。 あまりに難しすぎてクリアできないよ!って話をよくもらうので、ストーリーでネタバレしないように攻略方法を書きました。検索で見つけた方、これを参考にクリアしてください。 SIerクエスト 最初の敵は通…

結婚式の二次会用にビンゴゲームのJavaScriptを書いた

WindowsでもMacでも結婚式の二次会用でビンゴをやるためのフリーソフトで良い物が見つからなかったので、JavaScriptで書いてみました。 サンプルは、こちら。 なおこの度も、MITライセンスで、githubに公開してあります。 sifue/partybingo なお、動作確認は…

React.jsでLoL生放送のリアルタイムランキングを作ってみました

お盆で会社も気分転換に休んでちょっとしたWebサービスを作ってみました。 LoL生放送リアルタイムランキング 世界で一番遊ばれているe-sportsな無料のネトゲ、League Of Legends(LoL)を遊んでいる日本語の生放送だけを抽出して、スコア付けしてランキング化…

JavaFXとRxJavaの勉強のためにSocket通信対応したMac用棒読みちゃんクローンを作ってみた

sifue/bouyomisan · GitHub あけましておめでとうございます。 丁度冬休みということもあって、Mac用の棒読みちゃんクローンを作ってみました。 インストールバイナリもソースコード自体もgithubで配布中。あと、ソースコードはMITライセンスです。 見た目は…

ScalaMatsuri祝いにIRCとSlackの相互リレーをするScala製ツールをMITライセンスで公開しました

今日はScalaMatsuriのー日目、皆様お疲れ様でした。 初めてオダスキー先生を見たり、本当に刺激的な内容が多くてとても勉強になりました。 そんな中自分は、Scalaを書きたい欲求が、ガガガーっと沸き上がってきたので、自分が欲しかったIRCとSlackの相互リレ…

WEB+DB PRESS Vol.82 にオブジェクト指向アプローチによる変更に強いテーブル設計という記事を書かせてもらいました

今回でデータベース実践活用の連載2回目ですが、この度は、オブジェクト指向アプローチによる変更に強いテーブル設計、というタイトルで記事を書かせて頂きました。 写真は先ほど届いた査読誌です。 内容は、テーブル設計をやりはじめたばかりの新人エンジニ…

既存のIRCボットをSlack対応させた時にハマった点

最近Slackが大ブームということもあって、IRCやその他のチャットシステムからSlackに移行している方も多いと思います。そんな中、IRCのgatewayがあるということで、IRCのボット資産をSlackに移行するために自身がハマった点が何点かあったのでまとめておきま…

社内LTでOpen Broadcaster Software(OBS)のプラグインを作ってみたことを発表しました

発表の半分以上がLoLの説明なのは仕様です。どっぷりハマっております。 作成したプラグインのソースコードは sifue/CLRStudy · GitHub です。 こと生放送の配信ツールという意味では、完全にOBSがデファクトスタンダードになりつつあるなぁとおもう今日この…

「データベース実践活用」の連載をはじめました

本日発売のWEB+DB PRESS Vol.81からデータベース実践活用という記事の連載をはじめました。次回と次々回まで自分が担当する予定です。 WEB+DB PRESS Vol.81 作者: 長嶋享,藤吾郎,八木俊広,日高一明,滝口健太郎,田中慎司,泉水翔吾,海野弘成,佐藤太一,吉村総一…

さくらVPSのCentOS6.5を最初からセットアップする時にしたこと

CentOSのバージョンを上げないといけない自体になったので、久しぶりにセットアップ作業。その記録をメモ。 Heartbleed脆弱性のために最新版OpenSSLの確認 # openssl version 全ライブラリのアップデート # yum update SSHのポート変更して再起動 # vi /etc/…

PHP開発においてVimやST2にはできないけれどPHPStromにはできる10のこと

【blog.soichiro.orgの閉鎖にともない転載しました】 今まで散々VimとSublime Text2のエントリーばかり書いていた自分ですが、運良くIntelliJ IDEA UltimateのオープンソースライセンスをJet Brain社から頂いたこともあってPHPStorm (IntelliJのPHPプラグイ…

ScalaとSlickで発言数順位表示と名言記録をするIRCボットを作りました

【blog.soichiro.orgの閉鎖にともない転載しました】 最近IRCボットを書いたりすることが多いのですが、また汎用的なものを一つ書いてみたので公開します。今回は初めてORMとしてSlick、組み込みDBとしてH2を使ってみましたが。Slickは内部処理がわかりにく…

Play2.1でsbtのマルチプロジェクトビルド機能を利用してDDDのレイヤードアーキテクチャを強制する方法

【blog.soichiro.orgの閉鎖にともない転載しました - 2.2でも問題なく動くと思います】 Play2.1でDDDのレイヤードアーキテクチャをプロジェクトに強制して、大規模開発で誰かがうっかりルール違反が起こせないようにする仕組みを紹介します。レイヤードアー…

FF14新生のチャットログを棒読みちゃんで読み上げるツールを作りました

【blog.soichiro.orgの閉鎖にともない転載しました】 プレイ中チャットログを見ずにボス戦をしたり、シャウトの募集待ちを読み上げたり、生放送実況をしながらFF14新生をプレイするために、チャットログを棒読みちゃんに読み上げてもらうツールを作成しまし…

Erlangの開発環境をWindows上のCentOS6.4に整える

仕事ではMacを使っているけれども、プライベートで使うPCは大抵ゲームのためにWindowsPCだったりするので、vagrant上のCentOS6.4開発環境を作るための手順をまとめておく。 VirturalBoxをインストール https://www.virtualbox.org/ vagrantをインストール ht…

Scalaでの切り出したい処理が処理の中間にあるメソッド同士の重複行排除のやり方

最近Scalaを書く人が増えてきたこともあっていろいろ教える機会も増えてきたのですが、その中でよくScala初心者がつまづきやすいポイントである、切り出したい処理が、処理の中間にあるメソッド同士の重複行排除のリファクタリングの例を書こうと思います。 …

Developers Summit 2014 で「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」という内容で発表してきました

あまりにタイトルが長すぎるだろうと各所から突っ込まれ、あまりにも詰め込んだ内容で発表してしまったとちょっと反省しています。 お話としては、現在ニコニコ生放送の内部をPHPからScalaへ書きなおしているよ、というお話でした。 発表内容はこちら。 Deve…

blog.soichiro.orgに移転しました

blog.soichiro.orgに移転しました。

Twitterの検索結果をIRCにnoticeで転送し、閾値を超えるとmessageするボット

Scala2.9→2.10に移行するにあたって、公開することで誰かが使えるかもしれないScalaのツールがあったので、GitHubに公開しました。Twitter APIも1.0の廃止が近いので1.1への対応をしてあります。 https://github.com/sifue/twisearch_ircbot 使う用途は主にI…

Scala2.9から2.10への移行作業の健忘録

ただの作業ログです。 build.sbtのscalaVersionを2.10.0に変更 scalaVersion := "2.10.0" 以上のようにする。 Seq#firstをSeq#headに置換 盲目的に置き換え。 Squerylを2.10対応の最新バージョンに。でもリポジトリのURLがおかしいので直接追加 libraryDepen…

ssh上でマウススクロールも使える大規模PHP開発向けvim+tmux環境の構築

全体で数百万行、1ファイル1万行超のPHPファイルも一秒以内で開き、開発していくことのできる大規模開発向けのvim+tmux環境を紹介しようと思います。この設定この環境で半年ぐらい安定して利用できています。(無論そんな1万行あるファイルや数千行で複雑性循…

エリック・エヴァンスのドメイン駆動設計に沿ってSymfony2でユーザー管理アプリを作ってみた

あけましておめでとうございます。 去年の暮からエリック・エヴァンスのドメイン駆動設計という5200円、500ページもする本を購入して読み始めた自分です。エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)作者: エリ…

恐ろしく高い編集能を持つマルチカーソルエディタとしてのSublimeText2

最近、開発環境の導入コストの低いIDEの導入を広めようと思って、VimからSublimeText2にメインエディタに変更した自分ですが、SublimeText2のすごさはやっぱりマルチカーソルにあるなと思ったのでエントリーを書くことにしました。Sublime Text2 は http://w…

JavaでノンブロッキングIOを使ったネットワークアプリを学ぶのに最適なNetty 3.5系のGetting Startedを日本語訳しました

Nettyと言えばJavaのノンブロッキングIOのAPIであるNIOをラップしたフレームワークとして、TwitterのFinagleなどで分散ネットワークアプリケーションシステムで使わていて高速で実績のあるライブラリとして有名ですが、ノンブロッキングIOでイベント駆動のサ…

ScalaでEclipseデバック可能な実行jarを作るまでの手順 (例:特定のハッシュタグを含むツイートをファイルに保存し続けるアプリ)

最近Scalaでちょっとしたjarアプリを作ることが多いのでその手順をまとめておきます。まだ発展途上とは言え2.0.2になったことでScala IDE for Eclipseも実用に耐えうるところまできているように思います。あとは、リファクタリング機能とクイックフィックス…

イングリッシュ記法(名前に情報を追加する)は、誰もが行うべき重要な変数命名法

リーダブルコードを読み終えました。リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典出版社/メーカー: オライリージャパン発売日: 2012/06/23メディア…

Mac OSXのEclipseにJavaのソース付きのJDKを設定する方法

MacにJDKをインストール新たにインストールしたり、今回みたいにFlashback対策のようなセキュリティアップデートがされた際に、JDKを再インストールするわけですが、いつものソース付きJDKインストール、設定の仕方を忘れるのでまとめました。 1. Macのアッ…

Scala+sbt+EclipseでUTF-8文字とUIを含む実行jarのアプリケーション作成、開発方法

sbt0.11.3以上をお使いの方はこちら 全国のScalaファンのみなさん、こんにちわ! 最近よくScalaをいじっていることもあって、Scalaを使ってUTF-8の文字を表示しつつ、SwingのUIなんかを表示させる実行jarを作ったりすることがあり、いろいろと開発環境の設定…

SSHを介してVimを使う人に感動的なESCキーを押すとESCキーが効きつつIMEがオフになる設定(Google日本語入力とVimの相性は最強!)

Vimをお使いの皆さん、こんにちわ。 Vimを使って日本語のコメントやドキュメントを書かなきゃいけな人をいつも悩ますのが、IMEのモードの問題です。 (IMEオン, IMEオフ) x (挿入モード, コマンドモード, ビジュアルモード) の、この全6パターンを意識しなが…

vimを使う上で欠かせないproject.vimのヘルプの日本語訳(意訳)

最近project.vimを使ってプロジェクトツリーを表示してソースを読む事が多いのですが、実際には、:Project {filename}で起動した後、 \Cで、フォルダ再帰的にプロジェクトファイルを作るウィザートを起動する \Rで、フォルダ再帰的にプロジェクトファイルを…

MacでCUIのさくらのレンタルサーバー上にssh+screen+vimでマウスで編集、慣性スクロール可能な開発環境を作成する方法

最近電気代のことも考えて、CentOS 5.5で立てていた自宅サーバーを、さくらのレンタルサーバー(月々500円のスタンダードプラン FreeBSD 8.1)に移行しました。 その際にやった、sshを介して使うscreenとvim、あとvimプラグイン群による、マウス操作可能な開発…

GitHubが生み出すソーシャルコーディングがOSSの世界を急速に進化させている

ここ2,3年でオープンソースソフトウェア(OSS)の世界は大きく変わってきました。それはGitHubの台頭とソーシャルコーディングの普及によるものが大きいと考えています。 ご存知の通り、ソフトウェアというのは、日々変わる状況、例えば生産性の高い言語の登場…

Scala2.9.1でEclipse3.6.2を使ってMavenビルドする方法

最近Scala勉強中ですが、maven-scala-pluginを使ってScalaのコードをビルドしようとしたところ、Scalaのバージョンが2.8.0だったり、そもそもデフォルトのpom.xmlじゃ動かなかったので、そのために修正した方法を以下にまとめておきました。 (ただ、Scalaの…

HerokuにScalatra(ScalaのSinatraクローン)をデプロイする方法

ついにJava系のPaaSはGAEだけでなくHerokuも使えるようになり随分幅が広がって来ました。 データベースに様々なものが使え、技術的にロックインされないう点でHerokuには大きな魅了があります。というわけで、今回はScala2.9.1を使ってScalatraというRubyのS…

株式会社インクスを退職しました

この3月31日で5年間務めた株式会社インクスを退職することになりました。3月23日が最終出社日で、現在は有給消化中です。 もう既にインクスを離れた方も含めて、いろいろな方にお世話になりました。本当にありがとうございました。 この5年間、倒産などもあ…

MacPortsからHomebrewに完全移行してApache2.2+PHP5.3.10+MySQL5.5を構築

前々からずっと気になっていたHomebrew。 MacPortsからHomebrewへの移行メモ 以上を参考に、MacPortsからMAMP環境をHomebrewに完全移行しました。 Homebrewって何かと調べてみると、その特徴が本家( http://mxcl.github.com/homebrew/ )にまとめられていまし…

MacOSXでのEclipse3.7.2の日本語のJava開発環境の構築

かれこれ大学院時代から2年、社会人で5年、計7年近くEclipseを使ってきているわけですが、4月が近づいて新人向けのエントリーがここ多いので、自分がやってきたMacOSX Lionにおける 日本語のEclipseのJavaの開発環境構築方法を紹介しようと思います。 まずは…

Javaで再現性の低い不具合に出会った時に疑う4つのパターン

1. マルチスレッドによる非同期の可変データへのアクセスを疑う →スレッドIDを確認の後、同期処理を入れて確認 2. SetやMapやorder by句のないSQLで取得したListなどの順序がランダムになるデータを疑う →データを巡回処理している場所で確認 3. 外部ファイ…

CentOS5.5のPHPを5.2系から5.3系にバージョンアップ

これまたphpのバージョンアップのたびに色々と詰まるので覚書です。 ちなみにpen4の32bitマシンという7〜8年前のマシンにインストールしています。 でははじめます。 ◯ phpのアンインストール http://www.linuxquestions.org/questions/linux-software-2/fed…

phpfogでクラウドアプリの作成を試してみる

http://dev.appfog.com/features/article/getting_started_custom_application 基本的には以上のやり方の日本語訳です。 このページにはAppFogというWordPressやSugreCRMやMediaWikiなどできあいをアップロードする方法も書かれているので注意。 ちなみにこ…

MacOSX 10.7.3 LionにPHP開発環境を整える

過去何度ももPHPをインストールしている気がしますがその覚書。 リンク先もできるだけここ2,3年以内のものを選びました。 ◯ Xcodeのインストール(MacPortsをインストールするため) [macosx][xcode]Xcode 4.1 を AppStore からダウンロードしてインストール h…

JavaScriptをやり始めた人が理解したほうが良いJSONパーサのコード

そろそろ4月も近いということもあって、新たにWeb業界やSIer業界に入るぞという方がプログラミングの勉強をし始めているころでしょうか。最近は、エンタープライズでもWebクライアントが主流になりつつあるのでJavaScriptの習得は避けては通れない道だと思い…

ニコニコ生放送の生放送だけを連続視聴するChrome拡張を作りました

今週末になってひどい風邪をまたひいてしまった自分です。 実は先週突如Google Chromeの拡張を作ってみようと思いたち、ニコニコ生放送の生放送を自動的に連続視聴してくれる拡張を作りました。 「ニコニコ生放送ダラ見ちゃん」 https://chrome.google.com/w…

秀丸からVimへ移行中:SQLをJavaの文字リテラルに変換するVimスクリプト

かれこれ高校時代、1999年ぐらいからWindowsでは秀丸を12年近く愛用し、Macでは最初はmi、今はCotEditorを愛用してきた自分ですが、ついに今週テキストエディタをVimに改宗することに決めました。 そんなこんなで、只今、秀丸で作った資産を少しずつVimに移…

アジャイルサムライbot( @agile_s_jp_bot )を作りました

http://twitter.com/#!/agile_s_jp_bot 以上のURLになります。内容としては、かの有名なアジャイルサムライ本の内容をかいつまんで1時間に一度つぶやく仕様です。アジャイルサムライ−達人開発者への道−作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修…

Heroku + Sinatra + OAuth2.0 + Google API Client で Googleアカウントでログイン

前回のTwitterアカウントでログインに引き続き、今回は、Googleのアカウントを使ってGoogleのサービスにログイン済みの場合にはIDとPasswordを入力させることなくログインをさせる、OAuth2.0を使ったGoogleアカウントでログインの実装例の紹介です。 今回も…