タグ

ブックマーク / mattn.kaoriya.net (202)

  • Big Sky :: 画像に再生マークつけるだけのコマンド作った。

    tyru
    tyru 2020/06/19
  • Big Sky :: clangd を使う時に便利なコマンド compiledb


    Go Advent Calendar  Language Server  Big Sky :: gocode ( Language Server )   gocode  Go 10 Go gocode... https://mattn.kaoriya.net/software/lang/go/20181217000056.htm  Vim 使 vim-lsp  C/C++  vim-lsp  vim-clang 使C/C++  clangd  Language Server 使
    Big Sky :: clangd を使う時に便利なコマンド compiledb
    tyru
    tyru 2020/03/25
  • Big Sky :: Go 言語で変数のシャドウイングを避けたいなら shadow を使おう。

    var hoge *Hoge if condition != nil { hoge, err := https://t.co/3dOQ15DCmc(ctx, hoge_key) if err != nil { return nil, err } fmt.Printf("%v", *hoge) } else { hoge = nil } こんな感じのコードで死んでたんですが、うっかりhogeがnil担っちゃうの防ぐにはどうしたら・・・(文字数 — chidakiyo (@chidakiyo) February 26, 2020 こういった場合に便利なのがオフィシャルが提供している解析コマンド shadow です。(相変わらずググらび...) インストールは以下を実行します。 $ go get golang.org/x/tools/go/analysis/passes/shadow/cmd/s

    Big Sky :: Go 言語で変数のシャドウイングを避けたいなら shadow を使おう。
    tyru
    tyru 2020/02/28
  • Big Sky :: 書評: Visual Studio Code 実践ガイド


     Twitter  Visual Studio Code  2019  Stackoverflow Survey 調  Vim 使Emacs 使Visual Studio Code 使 Search results - mattn | Visual Studio Code , Visual Studio Marketplace ...
    Big Sky :: 書評: Visual Studio Code 実践ガイド
    tyru
    tyru 2020/02/25
  • Big Sky :: Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック

    Go 言語は struct のレシーバがポインタの場合は実体であってもポインタの場合であっても呼び出せるので、もし struct が参照カウントに従い動作する様な場合は実体でコピーされてしまっては困る場合があります。例えば以下の様なインタフェースを考えます。 package main import ( "fmt" "sync/atomic" "time" ) type foo struct { n int64 q chan struct{} } func (f *foo) Add() { if atomic.AddInt64(&f.n, 1) == 1 { f.q = make(chan struct{}) } } func (f *foo) Done() { if atomic.AddInt64(&f.n, -1) == 0 { f.q <- struct{}{} } } func (f

    Big Sky :: Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック
    tyru
    tyru 2020/02/21
  • Big Sky :: Vim で Go 言語を書くために行った引越し作業 2020年度版


      Vim 使 Go vim-go  Go  misc/vim  Vim  Go syntax  Google  GitHub - google/vim-ft-go A rudimentary Gofiletype plugin. Provides syntax files and basic settings for gofiles. This is a f... https://github.com/google/vim-ft-go  Fatih A
    Big Sky :: Vim で Go 言語を書くために行った引越し作業 2020年度版
    tyru
    tyru 2020/01/06
  • Big Sky :: ぼくがかんがえたさいきょうの Vim のこうせい 2019年 年末版


      Vim  vim-lsp  Go Windows  Linux 使使 Vim8使 Vim 使neovim 使使  Vim  Vim  vimrcvimrc
    Big Sky :: ぼくがかんがえたさいきょうの Vim のこうせい 2019年 年末版
    tyru
    tyru 2020/01/02
    気付くの完全に遅れた… Volt を使うとプラグインごとの設定ファイル (plugconf) が用意されて、この記事でやってるように自動的に有効/無効にしてくれます。自分でこういう仕組みを整えるのが面倒な方はどうぞ。
  • Big Sky :: Vim をモダンな IDE に変える LSP の設定


    Go  IDE Java  IDE HTML  IDE npm 使LaTeX  IDE  vim-lsp-settings   vim-lsp  Language Server  if executable('gopls') au User lsp_setup call lsp#register_server({ \ 'name': 'gopls', \ 'cmd': {server_info->['gopls']}, \ 'whitelist': ['go'], \ }) au
    Big Sky :: Vim をモダンな IDE に変える LSP の設定
    tyru
    tyru 2020/01/01
  • Big Sky :: sudo の特権昇格バグはなぜ起こったのか


    « Microsoft Word  Markdown docx2md | Main | VimConf 2019  » Linux  sudo  root  LinuxsudorootID - Engadget  sudoID-142949672950()0()rootIDroot https://japanese.engadget.com/2019/10/14/linux-sudo-root-id/ Ubuntu
    Big Sky :: sudo の特権昇格バグはなぜ起こったのか
    tyru
    tyru 2019/10/16
  • Big Sky :: Google Developers Expert (Go) になりました。


    Google Google Developers Expert (Go)   Go Go200910Go 使  GoC  Windows 
    Big Sky :: Google Developers Expert (Go) になりました。
    tyru
    tyru 2019/08/07
    すごい
  • Big Sky :: flatten() に再帰は必要ない

    先日、mopp さんが Vim に flatten() を追加するプルリクエストを追加してくれたのだけど、その時の記憶を整理する為に書く自分の為の記事。 add flatten() to flatten list by mopp - Pull Request #3676 - vim/vim - GitHub I'm a bit confused by the maxdepth argument. I would expect it to specify the maximum depth of the r... https://github.com/vim/vim/pull/3676 Vim script のリストは以下の様に、異なる型が混在できる。Ruby や他のスクリプト言語でも一般的。そしてスクリプト言語には一般的にリストを平坦化する為の flatten という関数ないしはメソッドが

    Big Sky :: flatten() に再帰は必要ない
    tyru
    tyru 2019/02/19
    2ヵ月以上ずっとタブに残ってて今更見たのでコメントした
  • Big Sky :: Lint ツールを Language Server に対応させるコマンド efm-langserver 作った。


     README.md  Language Server 便 Language Server   Lint   Language Server    Vim script Language Server  Language Server  Diagnostic   Lint  grep 
    Big Sky :: Lint ツールを Language Server に対応させるコマンド efm-langserver 作った。
    tyru
    tyru 2019/02/06
  • Big Sky :: VimConf 2018 に行ってきた。


    2 Vim  VimConf  ujihisa kaoriya   VimConf   Vim  Bram Moolenaar  VimConf 2018   VimConf Bram Moolenaar 
    Big Sky :: VimConf 2018 に行ってきた。
    tyru
    tyru 2018/11/27
  • Big Sky :: 書評「Go言語による並行処理」


    O'Reilly Japan, Inc.   ymotongpoo   Go Go  GoOSGo 
    Big Sky :: 書評「Go言語による並行処理」
    tyru
    tyru 2018/10/22
  • Big Sky :: Windows 10 に AF_UNIX が来たので試してみた。

    AF_UNIX comes to WindowsWindows Command Line Tools For Developers Introduction:   Beginning in Insider Build 17063 , you’ll be able to use the unix socket ( AF_UNIX )... https://blogs.msdn.microsoft.com/commandline/2017/12/19/af_unix-comes-to-windows/ 昨日、Windows 10 April 2018 Update が来た。WSL (Windows Subsystem for Linux) の常駐もちゃんと動く様になってた。仕組みはどうやら WSL 上のプロセスが一つでも生きていればバックグラウンドで Ubuntu.exe が生き続けてく

    Big Sky :: Windows 10 に AF_UNIX が来たので試してみた。
    tyru
    tyru 2018/05/13
  • Big Sky :: golang の html/template でレイアウトを扱う方法

    golanghtml/template について書かれたブログ等を色々見ていると、みんなレイアウトとコンテンツの分離に苦労している感があったのでどうやるか書いておきます。 t.ExecuteTemplate(w, "content", data) Gohtml/template はテンプレートの名称を指定して ExecuteTemplate を実行します。しかし html/template には、その content を囲う layout テンプレートを指定する方法がありません。特に以下の様に ParseGlob を使った場合、各 html で同じ content という名前で define する事は出来ません。 template.ParseGlob("public/views/*.html") やりたいのは layout というテンプレートの中から content という名称

    Big Sky :: golang の html/template でレイアウトを扱う方法
    tyru
    tyru 2018/04/18
    AddParseTree()
  • Big Sky :: goroutine でドハマリした。


     gotest  GitHub - rakyll/gotest: gotest with colors https://github.com/rakyll/gotest gotest  gotest  PASS FAIL func main() { setPalette() enableOnCI() gotest(os.Args[1:]) } func gotest(args []string) { r, w := io.Pipe() defer w.Close() args = append([]string{"test"}, args...) cmd := exec.Command("go"
    Big Sky :: goroutine でドハマリした。
    tyru
    tyru 2018/01/24
  • Big Sky :: 簡単に goroutine の実行個数を制限する方法


    Go 使 Go - GolangRdyJp Go  Go2017 320 使... http://golang.rdy.jp/2017/12/20/go-fact/  Big Sky :: golang  channel 使 golang  channel  C
    Big Sky :: 簡単に goroutine の実行個数を制限する方法
  • Big Sky :: Golang の archive/zip でタイムゾーンの問題とファイルの名問題が解決した。

    これまでの Goarchive/zip には問題があり、zip ファイルに格納されるファイルのタイムゾーンが UTC になっていた為、日であれば9時間ずれてしまうという問題があった。 これは zip の NTFS/UNIX/ExtendedTS extra fields を扱っていなかったのが問題。以前一度僕のパッチがマージされたが問題がありリバートされてしまっていた。 archive/zip: add FileHeader.Modified field - golang/go@6e8894d - GitHub The ModifiedTime and ModifiedDate fields are not expressive enough for many of the time extensions t... https://github.com/golang/go/comm

    Big Sky :: Golang の archive/zip でタイムゾーンの問題とファイルの名問題が解決した。
    tyru
    tyru 2017/11/11
  • Big Sky :: Golang で優先度を変えてプロセスを起動する。

    追記 CreationFlags に直接指定出来ますね... package main import ( "log" "os/exec" "syscall" ) const ( _IDLE_PRIORITY_CLASS = 0x40 ) func main() { cmd := exec.Command("notepad") cmd.SysProcAttr = &syscall.SysProcAttr{ CreationFlags: syscall.CREATE_UNICODE_ENVIRONMENT | _IDLE_PRIORITY_CLASS, } err := cmd.Start() if err != nil { log.Fatal(err) } cmd.Wait() } 追記ここまで 先日 GoCon に参加した際、牛乳を吹いてるアイコンの人に「Golang で優先度を変えてプロ

    Big Sky :: Golang で優先度を変えてプロセスを起動する。
    tyru
    tyru 2017/11/09