Runner in the High

技術のことをかくこころみ

SAMパターンの大雑把な理解

SAMパターンというのを勉強している。 www.infoq.com この記事は少しだけはてブでバズったが、実際コレを読んだだけでは例えば実際に実装に落としたときにどういうデータ・フローになるのか、というところまでは若干理解しづらい。この記事の作者のDubrayはs…

Yeomanに代わるNode.jsのスキャフォルディングツール4選

ハッカソンや個人開発でよく使う自分でこしらえたアプリケーションのスケルトン・コードをGithubに置いて、それを気軽にスキャフォルディングしたい。こんな欲求はだれしもあると思う。スキャフォルディング・ツールの王道といえばYeomanだが、ちょっとYeoma…

Reactの優位性は関数っぽいアプローチができるところなのではないかと思う

何が言いたいのかというと、Vue.js, React, Angularなどここ最近のフロントエンド界隈を賑わせているフレームワークはたくさんあるけれども、その中でビューレイヤという責務に対して最も薄いアプローチをしているのがReactで、もっとも関数らしい副作用のな…

Unihertz Jelly Pro が届いた

IndieGoGoでBackしていたJelly Proというめちゃくちゃ小さいスマホがとうとう届いた。 つい最近GPD Pocketが届いたばかりな気がするのに、また性懲りもなくこういうガジェットを買ってしまったわけだけれど、これもまたほんとに買って正解なシロモノだった。…

入門ROM-rb: イントロダクション

RubyといえばRails、RailsといえばActiveRecordというくらいに、事実上ActiveRecordはRuby界隈におけるORマッパのデファクトスタンダードだ。しかしながら、Piotr Solnicaというソフトウェア・エンジニアは、ActiveRecordパターンが常にスケーラブルなアプリ…

OneTapBUYというのをやっている

つい最近OneTapBUYのCMをテレビで観たので、ふと思い出したので書く。 つい最近のホーム画面 今年(2017年)の5月くらいから始めて、ここまででだいたい10万くらい投資にまわした。画像の投資元本がぴったり10万じゃないのは、OneTapBUYの中に「利益分だけ売…

validatable-recordについて

www.npmjs.com validatable-recordというモジュールをすこし前に作った。Twitterでは軽く流したが、実際にはこれを作ろうと思ったモチベーションが少なからずあったので、自分自身の学びやのちのちの振り返りのためにも、そのモチベーションについてここに書…

GPD Pocket Ubuntu版が届いた

IndieGoGoでUbuntu版をbackしていたのがとうとう届いた。Windows版は「もう届いた」「小さくて最高」みたいなツイートやブログエントリーがネット上でちらほらと散見されたのにもかかわらず、Ubuntu版は随分時間がかかっているんだなと思い若干本当に届くの…

フレームワーク・ライブラリを選ぶということ

「とりあえず、ググったら大抵解決しそうなんでReduxを使おうと思います」 2016年の夏、僕はあるフリマアプリで有名なECスタートアップでインターン生として、商品を販売するユーザー向けのアプリケーションのプロトタイピングをしていた。ほとんどすべての…

モデルの中でセッションを使う

ときたまセッションに関連するロジックをモデルの中に作りたいときがある。ところが、原則的にRailsではセッションをモデルの中で操作することができない。 この問題を解決する最も簡単な方法は、モデルに生やしたメソッドへセッションのインスタンスを渡す…

コントローラを名前空間で分離して責務の分割をする

Deviseなどを使って、ひとつ以上のスコープを持つアプリケーションを開発している際に、RESTfulなコントローラとビューが1対1対応をしていると、コントローラがどうしても複数のスコープが絡みついた見通しの悪いコードになりがちである。 たとえば、ECカー…

【Quora】あなたが職場でやった悪いことを教えてください。

Read Josh Nymon's answer to What is the most immoral thing you have done in the workplace? on Quora Josh Nymon 上司の机の上でセックスをしたことがある。当時僕はとある家族経営の店で働いていて、そこでは土曜日にひとりで商品を客に発送しないとい…

Chrome Extensionのbackground pageでconstを使うのに気をつけよ

Chrome Extensionではbackgroundを使っている方々各位にお伝えしたいのがなんといつのまにやらconstで定義した変数がextension.getBackgroundPageメソッドから取れなくなっているということ background.js ...const NOTIFY_ID = "default";const ITEMS_ID = …

いま大学生がSpeeeのbizTechインターンに参加すべき5つの理由

どうもみなさん、2015年夏のBizTechインターンに参加しました@IzumiSyです。現在は別の企業にてインターンをしているのですが、あまりにSpeeeのインターンが素晴らしすぎたのでアドベントカレンダーの一日を拝借して記事を書かせてもらいました。僕自身、趣…

開発マシンとしてのChromebook

Feedforceさんとiidさんの2社でインターンに参加してました。 iidさんのほうでは座学でリーンスタートアップを学んだのちに共感マップやリーンキャンバスを使って2週間のうちに企画→開発という業務の流れを体験し、Feedforceさんではアジャイル開発を用いな…

loadstop イベントより細かい request.onCompleted を使う

Chrome API の WebView にはページのロードが終了した時に発生する loadstop というイベントが存在する。これを用いたサンプルが公式のドキュメントにあるのだが、ここにひとつ注意したい点がある。 onload = function() { var webview = document.getElemen…

Webview 内のデータを取得するメモ

webview を用いて表示させたページのソースやらなにやらのようなデータを取得する手段がドキュメントのどこにも書かれていないので困ったが、いろいろ調べたら見つかった。 var view = document.getElementById("web-view-test");view.executeScript({ code:…

Chrome Dev EditorではGitで512kb以上のコミットをプッシュできない

Error whilst pushing changes #3456 - Chrome Dev EditorGit push fails for huge changes. #2553 - Chrome Dev Editor詳しくは上の2つのチケットを参照のこと。Chrome Dev Editor(CDE)ではjs-gitというGitをJavaScriptで実装したものを利用してコミット…

Acer C720のこと

最近ちょっとあってAcerのChromebook C720を手に入れたのでこれについて軽く記事を書こうかなと思った今日このごろ マシンの写真とかはそこらへんにごろごろしてるのでこんなもんで。【スペック】CPU: Intel(R) Celeron(R) 2955U @ 1.40Ghz 2coreMemory: 4GS…

chrome.browsingDataの呼び出し回数制限

どうやらchrome.browsingDataには規定時間内の呼び出し回数制限があるらしい。確かにコンマ何秒位の差で何度も呼び出されちゃオーバーヘッドも大きそうだしね。みたところ、1秒未満の間に何度も呼びだそうとすると、エラーになるらしい。もしかすると他にも…

EclipseでAndroidエミュレータ上のSQLiteのデータを見る

EclipseでAndroidエミュレータ上のSQLiteのデータを見るためのプラグインにはいろいろあるかとは思いますが、今回は最もシンプルで使いやすそうなQuestoid SQLite Browserとやらを使ってみます。 導入 ここからQuestoid SQLite BrowserをEclipseにインストー…

LINEで「正常に処理できませんでした」が出る

LINEストアにだれかが2回ほどログインしようとしたので、パスワードとメールアドレスの変更を試みるも、「An error has occured. Please try again later.」というダイアログが出て先に進めない。※ちなみに日本語版だと「正常に処理できませんでした」とい…

Chrome.storage.syncを使ってみる

Chrome.storageを使うと、異なるマシン上のChromeブラウザ間で同じ拡張機能が保存しているstorageを同期してくれる。このサンプルの機能は、テキストボックスに入力された文字列をChrome.storage.sync.setでストア。起動時にChrome.storage.sync.getで読み込…

iRiver B100 のレビュー

かなり前にiRiverのB100を買った。いちおう生産は終了したけれど、レビューだけ記事にしておく。【所感】 うしろの部分が若干熱くなる(動画を連続して見ているときなど) トップメニューの反応は若干遅い Ogg Vorbisのファイルにおけるジャケットの読み込み…

履歴への記録を防ぐChrome拡張機能「History Blocker」を作った

History Blocker 気づいたらエロサイトを見始めてた、という状況になってからシークレットウィンドウに切り替えてももう遅い。履歴にはばっちり残っちゃってる。こんなトラブルを防いでくれるのが History Blocker(IzumiSy/HistoryBlocker)拡張機能をONにし…

VLCのコントロールをサウンド設定のメニューに表示する[Xubuntu][DBus]

つまるところこんな感じで、サウンド設定からVLCを操作できるようにする。【手順】1. メニューの「表示」から設定ウィンドウへ2. 設定の表示を左下のラジオボタンから「全て」にする3. リストビューから「インターフェース」を選択4. 「D-Busコントロールイ…

太陽系リフレイン(KEYTALK)のタブ譜を作りました

いろんな弾いてみた動画を参考にして、兼ねてからの夢だった太陽系リフレインのタブ譜を作りました。一応ソロの部分もそれっぽくコピーしましたが、ライヴとか見る限り全部アドリブっぽいのであんまりコピーするもんじゃなさそうですね~ここが違う!とか、…

CUIでWeblioを使う

LTN with VX Connect LifetouchNOTE用の手頃な日英辞書がなくて困っていたので作った。HTML::TreeBuilderでweblioの単語検索結果ページをスクレイピングしているだけ。単語の大まかな意味だけでもわかれば充分なので、割りといいハックだと思う。 #!/usr/bin…

QtMultimediaを使ってメディアファイルに埋め込まれたアルバムアートを取得

coverImage = player->metaData(QMediaMetaData::ThumbnailImage).value(); こうすると、変数player(QMediaPlayer型)にセットされているメディアファイルの埋め込みサムネイルがQImage型で変数coverImageに代入される。QMediaMetaData Namespace のページを…

タブをストックするchrome拡張機能「TabStocker」を作った

TabStocker タブをストックする拡張機能TabStocker(IzumiSy/TabStocker)を作りました。【使い方】・ Add で開いてるタブを保存・項目を削除するときは Remove をトグルして削除モードにしながらクリック・ショートカットキーでも保存できます・ドラッグ&ド…