タグ

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

  • 型と名前によるGoのコード探索 ― gofind - 詩と創作・思索のひろば

    思いつきでツールを作ってはリスのように忘れ、再発見しては新鮮な気持ちで便利に使う日々です。 一般にプログラミングにおいては、ソースコードを読むことに意外とばかにならない時間を使うもの。特に Go ではデフォルトで標準ライブラリのソースコードが手元にあり、コードを書く際よい教科書になるので、これを読むことも多いはず。 Go は静的に型付けされる言語なのでその点コードは読みやすいけれど、データ構造が不変ではないので、ある構造体のフィールドがどこで書き換わるのかを知るには、処理を追っていくしかない。名前で grep するのもひとつの手ではあるけど、精度はあまり期待できない。 そこで gofind。簡単に言うと、型やパッケージを含めた名前でもって Go のソースコードを検索するツールです。 go get github.com/motemen/gofind/cmd/gofind 使い方は以下の通り。

    型と名前によるGoのコード探索 ― gofind - 詩と創作・思索のひろば
  • 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 に保存する - 詩と創作・思索のひろば
  • Go のシンプルかつ明快な SQL クエリビルダ go-sqlf - 詩と創作・思索のひろば

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

    Go のシンプルかつ明快な SQL クエリビルダ go-sqlf - 詩と創作・思索のひろば
  • 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 というのを書いた - 詩と創作・思索のひろば
  • まだmechanizeで消耗してるの? WebDriverで銀行をスクレイピング(ProtractorとWebdriverIOを例に) - 詩と創作・思索のひろば

    今日はスクレイピングの話をします。 今回のターゲットは三菱東京UFJダイレクト。金融機関もウェブサービスを提供するようになり、金にまつわる情報を電子化しやすくなりましたが、かれらが API を提供しているわけではないので、私たちのほうで取得・加工をしてやる必要があります。今やウェブサイトであれば当然のように JavaScript を使っているわけなので、いわゆる mechanize、つまり HTML の解釈をおこない、リンクのクリックやフォームの送信をシンプルに実装するようなやり方でのスクレイピングはすでに無理筋だといえます。 もちろん今日においてはブラウザオートメーションという方法がすでにありますので、これを利用してやれば、なんの憂いもなく実際に人間が使うようなブラウザをプログラマティックに操作することができます。現在は Selenium WebDriver がデファクトで、これが使用す

    まだmechanizeで消耗してるの? WebDriverで銀行をスクレイピング(ProtractorとWebdriverIOを例に) - 詩と創作・思索のひろば
  • 700を越えるJavaScriptライブラリを自由に試せるページを作った - 詩と創作・思索のひろば

    こちらです ☞ JavaScript Libraries Playground(jQuery 2.1.0 と underscore の例) jQuery や underscore などの JavaScript ライブラリをインタラクティブに試したいとき、最近はブラウザで自分のブログ(ここ)や GitHub など、当該のライブラリがロードされていることを知っているページを開いておもむろに ⎇⌘J(Chrome)! していたのですがこれは直接的ではないなと思ってそれ専用のページを作った次第です。 冒頭の例にもあるように location.search 部に library[@version],… 形式でライブラリを与えてやればページに <script> 要素が追加されて、あとは開発者コンソールなりでお楽しみください、という仕組みになっています。 cdnjs にはかなり多くのライブラリがホスト

    700を越えるJavaScriptライブラリを自由に試せるページを作った - 詩と創作・思索のひろば
    ko-ya-ma
    ko-ya-ma 2014/03/25
    リンク先のURLに欲しいライブラリ名を与えれば自動でロードしてくれる砂場
  • 1