タグ

2018年12月2日のブックマーク (16件)

  • VimConf 2018 に参加してきた日記 - Qiita

    念願のVimConf 2018に参加してきた、その日記です。 当日のスライドは https://vimconf.wordpress.com/2018/11/25/vimconf-2018/ で公開されています。 後日動画もアップロードされる予定のようです。 会場到着前 イケてるU.S.のエンジニアが使っていたという理由だけでVimを使い始めて早9ヶ月。 そんな様子なのでVimConfのことを知ったのも参加するのも今年が初めてです。 当日は高まるVim熱を抑えながら9時頃には現地に到着。 建物が大きかったので入り口に少し迷いつつ、時間を潰しつつしてたら開場の9時半。 気が付いたら既に長蛇の列ができていました。 Vimmerの朝は早いようです 入り口でTシャツとノベルティを受け取り、前から3列目右端の席にいざ着席! 結果的にこの席に座ってよかったーと思いました。 (右後頭部ですが)Bramさん

    VimConf 2018 に参加してきた日記 - Qiita
    mattn
    mattn 2018/12/02
  • VimをCUIコマンドに組み込む/dotfiles晒し - Qiita

    はじめに こいついつも.vimrc弄ってんなと言われてはや数年、今年も弄ってます。 今回は二立てになっています、ちなみにWindowsでKaoriya版のGVimを使ってますので、ご自身の環境への読み替えをお願いします。 僕は開発中のビルドにQuickRunの他に素のコマンドプロンプトもよく利用しているのですが、といいますかまずはコマンドプロンプトでVimに依存しない開発環境を整えて、それをVimの開発に落とし込むという手順を踏んでいるのですが、そうするとコマンドプロンプトとVimの連携もしたくなってくるかと思いますので、対応できるようにしました。 成果物はこちらです、コマンドプロンプト上で各種言語のLinterやビルドのエラーメッセージにVimerrorformatを適用してフォーマットを統一し、fzf(pecoの親戚みたいなの)でエラー箇所を選択し、GVimで開くためのツールキット

    VimをCUIコマンドに組み込む/dotfiles晒し - Qiita
    mattn
    mattn 2018/12/02
    かっちょいい
  • その昔作った解凍コマンド Kaito と、その実装のご紹介 - Qiita

    この記事は、Go4 Advent Calendar 2018 の2日目です。 昨日は @ichiban@github さんによる圧縮(ファイルを実行ファイルに埋め込む)ネタでしたが、今日は解凍(展開)のネタです。 この場を借りて、以前つくった自作のコマンドラインツール kaito を紹介したいと思います。 Kaito とは kaito は gzip/bzip2/xz 形式の解凍(展開)に対応したコマンドです。実装はもちろんGo言語です。 使い方は簡単 こんなふうに使います: # こんなテキストファイルがあったとして $ echo 'The quick brown fox jumps over the lazy dog.' > fox.txt $ ls fox.txt # gz に圧縮します $ gzip fox.txt $ ls fox.txt.gz # 解凍します $ kaito fox

    その昔作った解凍コマンド Kaito と、その実装のご紹介 - Qiita
    mattn
    mattn 2018/12/02
  • 完璧Vimmerでなくても良いのでVimを使おう - Qiita

    概要 みなさんこんにちは、今回はVimを使ったことのない私が、Vimのエディタを使ってみて、これは全エンジニアが知る必要がある、と感じたことを書きます。今日からでもできる内容なので、休み時間に試したり、大型連休で試すのもよいと思います。 また、私は最終的に完全Vimmerになるのではなく、VSCodeVim拡張を入れることで決着しました。このような道もあると思うので、完全Vimmerにならなくても気軽に始めてみてはいかがでしょうか。 まず、Vimに対してどんなイメージを持っていたか? 私のVimに対するイメージ、というかVimについて知っていたことはせいぜい以下のことでした。 画面が黒い(小並) hjklで上下左右の移動をする モードがいくつかあるので複雑 Insertモードから抜けるときにEscを押す 特に、「hjklで移動するなんて意味不明」「モードが複雑そうでいやだ」「Escキーっ

    完璧Vimmerでなくても良いのでVimを使おう - Qiita
    mattn
    mattn 2018/12/02
  • ディープラーニングを使って自分を模した人工知能を作って会話してみた - Qiita

    ディープラーニングを使って自分を模した人工知能を作り、会話しました。 デモ動画 僕を模した人工知能と会話するデモ動画を作りました! 人工知能に、「あなたは人工知能だ」という事実を伝えてみました。 上(ピンク):僕 下(水色) :僕を模した人工知能 pic.twitter.com/iEWfNDnghR — ヒホ(ヒロシバ) (@hiho_karuta) 2018年12月1日 僕のような言い回しで、僕のような声で、会話してくれます。 仕組みの概要 実現したいものは音声対話です。音声対話の主な要素は 音声認識 会話応答 音声合成 の3つです。今回は、音声認識に既存APIを用い、残り2つは自分のデータを集めてディープラーニングしました。それぞれの概要と、苦労した点を書いていきます。 音声認識 音声をテキストに変換するタスクです。今回はchromeに備わっているWeb Speech APIを用います

    ディープラーニングを使って自分を模した人工知能を作って会話してみた - Qiita
    mattn
    mattn 2018/12/02
  • 引数の型を何でも List にしちゃう奴にそろそろ一言いっておくか - Qiita

    この記事は C# その2 Advent Calendar 2018 の第一日の記事である。 はじめに この記事では、主にエンタープライズアプリケーション(SI、企業向けの業務システムやパッケージ製品)の開発に於いて、新規開発ではなく修正や拡張を行うようなシーンを想定して、無駄な工数をなるべく削減すべく自分なりに考えて実践しているベストプラクティスを書いている。 新規開発の場合でも、将来の拡張や修正が見込まれるはずなので、考慮すべき事は同じだ。 競技プログラミングや、組み込み開発の場合でも基的な考え方は適用可能だが、メモリ効率やパフォーマンスを考慮する必要もあるので、あえて配列を使ったり、逸脱するようなケースもあるだろう。 対象とする読者層は、C#プログラミング歴1年以上、SIer やユーザー企業に所属(もしくは常駐)し、特に複数人チームでの開発に携わる若手プログラマ、初級から中級へのステ

    引数の型を何でも List にしちゃう奴にそろそろ一言いっておくか - Qiita
    mattn
    mattn 2018/12/02
    SIer 関係ない
  • プリンを守る技術 ~その1:LINEへの通知~ - Qiita

    概要: せっかく取っておいたプリンを家族にべられてしまった。そんな経験はありませんか? 私が所属するaNo研は、冷蔵庫のプリン見守りデバイス「プリン・ア・ラート2」を発表しました。 この記事は、「プリン・ア・ラート2」に使われている技術を紹介します。 紹介: 冷蔵庫のプリンを見守る 家族間のちょうどいいセキュリティ プリン・ア・ラート2できました#M5Stack pic.twitter.com/WRlGMMOx7l — aNo研 (@anoken2017) 2018年4月14日 システム構成 プリン・ア・ラート2は、プリンの重さを検知するセンサー、そして、小型のマイコンM5Stackで構成されています。 プリンの検知は、小皿の下の重さセンサーで行われます。プリンが取られると小皿が軽くなり、これをきっかけに、Lineへのアラートを発します。 プリン・ア・ラートでは、Lineへの通知に、「L

    プリンを守る技術 ~その1:LINEへの通知~ - Qiita
    mattn
    mattn 2018/12/02
    プリン大事
  • Mackerel の 新しいカスタムダッシュボードを つかってみた - Qiita

    僭越ながら、Mackerel Advent Calendar 2018 の一日目を務めさせていただきます。 軽めの「やってみた」ネタですしサクッと出してしまいたかったというのもあります。 カスタムダッシュボード とは 2018年11月の後半 にリニューアルされたばかりの機能です。 というか、今までのカスタムダッシュボードは「レガシーカスタムダッシュボード」という名前に変更されていますし、実質新機能ですよね。 詳しくは公式ドキュメントに譲りますが、MackerelのメトリックやグラフやMarkdownをウィジェットとして画面内にかなり自由に配置できるので、いままでのレガシーダッシュボードよりも直感的にダッシュボードを作ることができます。 私は今回こんな感じのダッシュボードを作ってみました。 使ってみてよかった点 数値ウィジェット が特に嬉しい。 「いま」「この数値」という生々しさ。インパクト

    Mackerel の 新しいカスタムダッシュボードを つかってみた - Qiita
    mattn
    mattn 2018/12/02
    知らなかった。
  • 標準パッケージから見るパッケージ構成のパターンの解説 - Qiita

    こんにちは!これはGo3 Advent Calendar 2018、2日目の記事です。 1日目は、higasgtさんのredisを扱うコードをユニットテストするでした。 TL;DR Goのパッケージ構成は、標準パッケージでも複数パターンの構成が存在している 習う際は、いくつかのパッケージ構造を比較してどのように実装するかを決めるのが良い io と database/sql は有名な標準パッケージだがパッケージ構成のアプローチは異なる ioパッケージの構成について ioパッケージは io.Reader io.Writer をはじめとして有名なパッケージです。 Goを触っている人は ioutil.ReadAll() にお世話になった人も多いのではないでしょうか。 io ├── example_test.go ├── io.go ├── io_test.go ├── ioutil │   ├──

    標準パッケージから見るパッケージ構成のパターンの解説 - Qiita
    mattn
    mattn 2018/12/02
  • redisを扱うコードをユニットテストする #golang - Qiita

    はじめに この記事は、Go3 AdventCalendarの1日目の記事です。 RedisやMySQLを扱うような技術的実装については、interfaceで抽象化するといった使用コード側のユニットテストノウハウはよく見られますが、技術的実装自体をテストする方法はノウハウがあまり見られないなと思いますので、今回はそういう場合のテストの方法について紹介できればと思います。 なお、今回紹介するコードは、https://github.com/hgsgtk/go-snippets/pull/16 にて公開しています。 . ├── docker-compose.yml ├── go.mod ├── go.sum ├── main.go ├── persistence │   └── kvs │   ├── client.go │   └── client_test.go └── testhelper

    redisを扱うコードをユニットテストする #golang - Qiita
    mattn
    mattn 2018/12/02
  • 永遠の Vim 初級者の、Vim の使い方 - Qiita

    イントロダクション どうも、毎年ゆるふわな記事を Vim Advent Calendar に投稿させていただいている、永遠の初級者 Vim ユーザーです。 2016 年 : e が押せないのは誰のせい? 2017 年 : こんな私でも Vim が好きと言いたい 今年は、そんなライトな Vim ユーザーは Vim をどうやって使っているか、どんな機能を使っているか(どんな機能を使っていないか)を雑にお伝えしたいと思います。 狙い Vim 入門者の方には Vim 入門として若干お役に立つかもしれませんが、個々の機能を詳しく解説しているわけではないのでそうでもありません。 Vim 上級者の方には、初級者のつまづきポイントがわかって普及や教育の参考になるかもしれません。知らんけど。 よく使うもの 基的なやつ b, c, d, f, g, h, i, j, k, l, n, p, q, r, u,

    永遠の Vim 初級者の、Vim の使い方 - Qiita
    mattn
    mattn 2018/12/02
  • ベイズを全くわからない人がベイジアンフィルタを利用して、投稿データから投稿者を推定してみる - Qiita

    この記事は Go2 AdventCalendar の1日目の記事です。 ガチガチのGoネタは Go AdventCalendar の方が書いてくれると思いますので、 今回は弊社が利用している(作っている?) Unipos というサービスのデータをGoから利用して遊んでみようと思います。 Uniposとはご存知の方もいると思いますが、感謝の言葉とポイントを送り合うサービスで、感謝のコメントが社員から沢山投稿されています。 弊社の場合には比較的長めの投稿も多いため、今回は 投稿した内容(文章)から投稿者をベイズフィルタを利用して当てることができるだろうか?というのを試してみます。 ちなみに、記事の中にはGoのコードは殆ど出てきません・・・ あと、ベイズ方面は全く詳しくありません。調べながら書いてるので内容的にアレな部分は、 なめらかなマサカリ(コメント) でいただけるとありがたいです。 事前準

    ベイズを全くわからない人がベイジアンフィルタを利用して、投稿データから投稿者を推定してみる - Qiita
    mattn
    mattn 2018/12/02
    「家庭は大事にしよう」
  • Jupyter notebookでもVim scriptが書きたい! - noharaのブログ

    この記事は、Vim Advent Calendar 2018 その2 1日目の記事です。 Vim その2 Advent Calendar 2018 - Qiita 皆さん、Jupyter notebookでVim scriptが書きたくなる時があると思います。 Jupyter notebookはKernelと呼ばれるものを差し替えることでPython以外も動作させることができます。 というわけで、Vim script kernel作ってみました。 動作確認はWindows10でのみ行っていますが、ほかのOSでも動くと思います。 完成図 実装 json(connection)ファイル python(kernel)ファイル 2018/01/08追記 まとめ 以下参考にしたもの jupyter kernel作り方 Vim script vimのコマンド 完成図 実装 以下2つのファイルを配置する

    Jupyter notebookでもVim scriptが書きたい! - noharaのブログ
    mattn
    mattn 2018/12/02
  • GitHub - ichiban/assets: Go resource embedding library which doesn't require `go generate` at all

    mattn
    mattn 2018/12/02
    go generate で zip なリソースバンドルを作る仕組み。 #golang
  • Goの実行ファイルにZIPでリソースを埋め込む - Qiita

    はじめに ZIPを用いた実行ファイルへのリソースの埋め込み方法があることを紹介し、実際にGoarchive/zipzip コマンドと cat コマンド(と確認のために unzip コマンド)を用いたリソース埋め込みの例を解説する。 Goのリソース埋め込み Goでアプリケーションを書く際、CSSJavaScript、画像、テンプレートといったリソースは実行ファイルとは別に配置するか実行ファイルの中に埋め込むかしないといけない。リソースの埋め込みにはコードジェネレータを用いる方法とZIPを使う方法がある。 コードジェネレータ リソースの埋め込みでよく紹介されるのはコードジェネレータを用いてリソースをGoのソースコードに変換するという方法で、実際 Awesome Go の Resource Embeddingの項目 にあるのはコードジェネレータを用いてGoのソースコードに変換するアプ

    Goの実行ファイルにZIPでリソースを埋め込む - Qiita
    mattn
    mattn 2018/12/02
    良さそう
  • 実装して理解するスライス #golang - Qiita

    つまり、Goのスライスは次の図のように、配列へのポインタと長さと容量を持った値として表現されています。 runtimeとreflectパッケージでポインタがunsafe.Pointerとuintptrで表現方法は違いますが、どちらもポインタを表す値です。 unsafe.Pointerは任意型のポインタと相互変換可能な型です。一方で、uintptrは整数型でunsafe.Pointerに変換が可能な型です。uintptrは整数型の1つなので、int型などと同様に四則演算が可能です。 次のように、[]int型をreflect.SliceHeader型として解釈してみます。 まず、[]int型の変数であるnsのポインタを取り、unsafe.Pointer型に変換します。 変換した値はptrという変数に入れています。 次に、ptrを*reflect.Slice型にキャストし、そのポインタが指す先の

    実装して理解するスライス #golang - Qiita
    mattn
    mattn 2018/12/02