タグ

ブックマーク / motemen.hatenablog.com (13)

  • テキストを画面に流していくアプリをElectronで作った - 詩と創作・思索のひろば

    この記事は、はてなエンジニア Advent Calendar 2019の12日目の記事です。 任意のテキストを画面に流していきたいことってありませんか? ぼくはあります。定期的にエンジニアみんなの前でスライドを映しつつ話す機会があって、そんなとき Slack で実況的に反応がなされることがあるんだけど、Slack 映しっぱなしにするわけにもいかず、話し終わってあとからコメントに気づく……ってこともまあまあある。そんなとき、画面のスライドに重ねてコメントが流れてくれると自分も聞き手も共有できてうれしい。わけです。 それを達成するための1ステップとして、任意のテキストを画面に次々流してくれるアプリをElectronで作りました。 GitHub - motemen/TextCast じつは過去のこのエントリたちも、「Slack の発言をリアルタイムにデスクトップに流したい」という欲望からうまれた

    テキストを画面に流していくアプリをElectronで作った - 詩と創作・思索のひろば
  • Google App EngineでGoを動かすときに知っておくべきこと(ソースコード・ビルド編) - 詩と創作・思索のひろば

    Google App Engine(GAE)で Go 製のウェブアプリを動かしたかった話。いっぺん動かしてみると GAE/Go はウェブアプリを動かす環境としてはとてもいい。ただ、中途半端な知識だけで始めると開発者としてはつまずくことが多かったので、分かりにくい点をまとめておく。 Google App Engine Go Standard Environment について goapp は $GOPATH 以下もアプリケーションのソースとしてアップロード/コンパイルする goapp はプロジェクトルート以下のソースコードをすべてコンパイルしようとする go-app-builder: Failed parsing input: parser: bad import "syscall" in ... go-app-builder: Failed parsing input: app file x

    Google App EngineでGoを動かすときに知っておくべきこと(ソースコード・ビルド編) - 詩と創作・思索のひろば
  • minimatch(node.js で path match するライブラリ)のチートシートを作った - 詩と創作・思索のひろば

    minimatch っていうのは Grunt や gulp.js その他あちこちで(npm もらしい)使われてるグロブマッチライブラリです。最近よく gulp を使ってるんだけど、毎回 gulp.src() の書き方で迷ってしまう。調べた結果 minimatch に行き当たったんだけど各種 glob 実装のドキュメント読んで把握しろ、という感じでよく分からなかったので早見表を作った次第です。 https://github.com/motemen/minimatch-cheat-sheet 確認用にテストを書いていて、そのテストケースからドキュメントを生成してるので間違いはないはずです。説明が間違ってる、この例も乗せた方が見やすいだろ、とかあればプルリクください。 折角なので日語版を書いておきますね。 基 * はパスセパレータを含まない任意の文字列にマッチ ** はパスセパレータを含む任

    minimatch(node.js で path match するライブラリ)のチートシートを作った - 詩と創作・思索のひろば
  • Go 言語における並行処理の構築部材 - 詩と創作・思索のひろば

    5年前に買った『Java並行処理プログラミング ―その「基盤」と「最新API」を究める―』をようやく読んだ。買った頃には Perl やシンプルな JavaScript ばかり書いていたので並行プログラミングなんてほとんど気にすることがなく、実感がなくて読むのも途中で止まってしまっていたで、家を掃除しているときに見つけたもの。その後も趣味Android アプリを書くなど Java に触れる機会はあったけれど、せいぜいが AsyncTask を使うくらいで、マルチスレッドを強く意識してコードを書くこともなかった。 Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/22メディア: 単行購入: 30人 クリック: 442回

    Go 言語における並行処理の構築部材 - 詩と創作・思索のひろば
  • Slack のログを自動で Google Spreadsheet に保存する - 詩と創作・思索のひろば

    2020-05-12 22:50 追記 2020-05-05 より、Slack のトークンは作れなくなってるので、このエントリの方法ではストレートに実現できなくなっています。トークンの代替方法についてはサポートしかねる(というか知らない)ので、各自がんばりましょう! 2015-11-13 16:40 追記 以下のスクリプトの利用が Slack の TOS に触れるのではないか……という指摘をいただきました。 No Other Storing. You may not copy or store any Data or capture or store any information expressed by the Data (such as hashed or transferred data), except to the extent permitted by this API TO

    Slack のログを自動で Google Spreadsheet に保存する - 詩と創作・思索のひろば
  • git commit --fixup とは何か - 詩と創作・思索のひろば

    git commit --fixup というオプションの存在を最近知って調べた。 ヘルプとリリースノートより "git commit" learned the --fixup and --squash options to help later invocation of interactive rebase. Git v1.7.4 Release Notes --fixup=<commit> Construct a commit message for use with rebase --autosquash. The commit message will be the subject line from the specified commit with a prefix of "fixup! ". See git-rebase(1) for details. 1.7.4 から入って

    git commit --fixup とは何か - 詩と創作・思索のひろば
  • Electron で AdSense のレポートをメニューバーから確認できるアプリを書いた - 詩と創作・思索のひろば

    ぼくはその日を善く生きたかどうかは AdSense の収益で決まると思っているので、以前にも AdSense のレポートを CLI で確認できるツール を書き、この記事にもあるように tmux のステータスバーに収益を表示していつでも確認できるようにカスタマイズしている。これは具合がよくてずっと使っていたのだけど、最近 tmux.conf をいじっていたらだんだん表示領域が手狭に感じられてきて、ターミナルから追い出したくなってしまった。くわえて、人にターミナルを見せると「ほうほう motemen さんの今月の収益は 9 円ですか……」といらぬ情報を人に与えてしまう問題もあり、ここはひとつ最近はやりの Electron を使ってメニューバーに表示してしまおうということしたのだ。 使用イメージはこちら。ここ7日分の収益を、日別に集計してメニューに表示している。アイコンの隣の数字はその合計(数字

    Electron で AdSense のレポートをメニューバーから確認できるアプリを書いた - 詩と創作・思索のひろば
  • Go のシンプルかつ明快な SQL クエリビルダ go-sqlf - 詩と創作・思索のひろば

    Go でリレーショナルデータベースを利用したアプリケーションを書いているとき、動的に SQL を組み立てたい場合には、いくつかの方法が考えられます: クエリビルダを使う。世の中にすでにいろいろ存在します。(そのためのライブラリなので)動的に生成するにはもってこいですが、この場合、それぞれのライブラリに合わせた書き方をしなければならないので読み手にもある程度負荷がある点、また、Go は言語として冗長に書くことをよしとする思想を持っているため、DSL 的な API との相性が悪いという欠点があります(map の組み立てが冗長、条件分岐する式が書けないなど)。また、一般にクエリビルダから生成される SQL がコードから想像しづらくなる問題もあります。 文字列連結や fmt.Sprintf を使う。発行される SQL は比較的分かりやすくなりますが、動的に組み立てると SQL プレースホルダとバイ

    Go のシンプルかつ明快な SQL クエリビルダ go-sqlf - 詩と創作・思索のひろば
  • コマンドラインでカラーコードの計算・操作ができるツール - 詩と創作・思索のひろば

    何かしら画面を作らなければいけないときには色のことを考える必要があって、たとえばこの色を少し暗くした色が欲しい! と思ったときに、素人としては頼れる方法を持っていないのが問題なのです。ウェブサイトであれば Scss なり Less なりの CSS プリプロセッサを使えばそういった要求に応える便利な機能が用意されているのであまり考える必要はないのだけれど、他の場面でも使える汎用的な道具が欲しかった。簡単に言うと darken(red, 10%) とか与えたら #rrggbb みたいな形式で表現してくれるやつです。 そこで書いたのがコレだ: motemen/node-less-calc。 たぶん Functions | Less.js にある関数がすべて使えます……というので分かるとおり、Less の機能にそのまま乗っかっている非常にエコな実装。オマケで色だけでなく大きさの計算もできる。 %

    コマンドラインでカラーコードの計算・操作ができるツール - 詩と創作・思索のひろば
  • go-cli: ドキュメントとともにコマンドラインツールを作る - 詩と創作・思索のひろば

    hub-pr を作るとき、(ghq などで使っていた)codegangsta/cli ではなく新しいライブラリを試してみようと思って mitchellh/cli を使ってみたけど、何かしっくりこないものがあったので、せっかくだし、と自作してみた。今回の要件は以下のとおり。 (go や git のように)サブコマンドがある コマンドラインオプションの解析には標準の flag パッケージをつかう コマンドを追加するのが面倒でない で、go-cli(ドキュメント)。 コマンドの実装 hub-pr のソースコードが一番のサンプルだけど、コマンドは以下のような関数で表現される。 func doCheckout(flags *flag.FlagSet, args []string) error { 各コマンドの実装は初期化された *flag.FlagSet とコマンドの引数(プログラムの第1引数がコマ

    go-cli: ドキュメントとともにコマンドラインツールを作る - 詩と創作・思索のひろば
  • オレ流 Pull Request 作業フロー - 詩と創作・思索のひろば

    チームで作業する同じリポジトリの中で Pull Request を送り合うのではなく、オープンソースプロジェクトに外部から PR がやってくる場合の話です。 最近のフロー 送られてきた PR に対しては、大まかには仕様の話、実装方針の話、具体的な実装の話を詰めながらマージできるように持っていくわけだけれど、それがほとんど満足いく状態になっていてマージしたいと思うタイミングになっても、変数の名前付けだとか、ちょっとした処理の書き方だとかで、相手にお願いするよりは自分で手を加えてからマージした方が手っ取り早いことがある。そういう時は PR 元のブランチを手元にチェックアウトして、そのブランチを自分の変更で進めた上で master にマージするようにすると、push 時に PR も閉じられて便利です。 motemen/lgtm.sh#1 の例。分かりにくいれど、PR にさらに 1 コミット足して

    オレ流 Pull Request 作業フロー - 詩と創作・思索のひろば
  • 秒速でLGTMするコマンド - 詩と創作・思索のひろば

    LGTM するときはよさげなアニメーション GIF を探し出してきて lgtm.herokuapp.com にかけるのがデファクト[要出典]だけどこの「よさげなアニメーション GIF を探し出す」というのがくせ者で、大量のアニメーション GIF をブラウザで開くと CPU パワーを浪費するし選択にかける人的な労力もばかにならない。エコではない。そこで Tumblr のランダムな画像を LGTM 化するコマンドラインツールを書いた。その名も lgtm.sh だ。Tumblr には /random というエンドポイントがあるのでこれを利用して特定の Tumblr ブログ群からランダムに画像 URL を得ている。 ./lgtm.sh -m | pbcopy -m オプションをつけると Markdown フォーマットで出力する。つけない場合は画像 URL のみ。 /random へのアクセスには少

    秒速でLGTMするコマンド - 詩と創作・思索のひろば
  • Go でコードを書く時のかゆいところに手が届く goquickfix というのを書いた - 詩と創作・思索のひろば

    go run や go test でコードを試しながら書きながら……というフェーズでは、以下のような状況によく遭遇することと思います: デバッグプリント用のコードを削除したら、"log" や "fmt" パッケージが不要になって imported and not used: "log" と言われた。まだ使うかもしれないのでいちいち消したくない。 同様に、コードを整理したところ使っていない変数がでてきて i declared and not used と言われた。まだ使うかも(ry 出来上がりのコードの品質を高く保つには便利な機能ですが、試行錯誤をしている段階ではけっこうな障害になります。そこで goquickfix。 go build が通らないコードに goquickfix をかければ、コードを書き換えて go build 可能にしてくれます: goquickfix -w hoge.go

    Go でコードを書く時のかゆいところに手が届く goquickfix というのを書いた - 詩と創作・思索のひろば
  • 1