タグ

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

  • 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 の実体を引数で(なるべく)渡せない様にするテクニック
    castaneai
    castaneai 2020/02/21
    “使い手側に「ポインタで使って欲しい」と示す事ができないと、いくらでもバグが発生してしまいます。そこで使うテクニックが noCopy です。”
  • Big Sky :: 開発速度を加速するツール、goemon を書いた。

    SPA (Single Page Application) を書いていると、いちいちブラウザをリロードするのが面倒で、かつ js を minify してページをリロードするといった面倒な手間を出来れば何も設定せずにやりたい(もしくは微量な設定だけでやりたい)、という思いから goemon というツールを書きました。 mattn/goemon - GitHub https://github.com/mattn/goemon goemon は、コマンドラインツールとして使います。まず $ goemon -g > goemon.yml で goemon.yml を生成します。個人的にカスタマイズしたい人は生成されたファイルを変更して使って下さい。 # Generated by goemon -g livereload: :35730 tasks: - match: './assets/*.js'

    Big Sky :: 開発速度を加速するツール、goemon を書いた。
    castaneai
    castaneai 2015/02/24
  • Big Sky :: python 補完のVimプラグイン「jedi-vim」がスゲー

    pythonの補完は、vimが標準で配布している物で事足りるかなーとか思ってたけど浅墓すぎた。 今日見つけた jedi-vim は良い。 davidhalter/jedi-vim - GitHub Using the jedi autocompletion library for VIM. https://github.com/davidhalter/jedi-vim 何が良いって精度が良い。そして標準配布の pythoncomplete がモジュールとそのモジュール内関数しか補完出来ないのに比べ、jedi は評価値を補完出来る。 そしてスゴイのが構文を仮実行しているのではなく、パースしている点。jedi というモジュールを使って、構文解析している。 davidhalter/jedi - GitHub Awesome autocompletion library for python. I

    Big Sky :: python 補完のVimプラグイン「jedi-vim」がスゲー
  • Big Sky :: zen-codingの殆どの機能をzencoding.vimに取り込んだ。

    全国1億8千万人のzen-codingファンの皆様、如何お過ごしでしょうか。 先日の記事でzen-codingをpure vimscriptに移植した「zencoding.vim」をご紹介させて頂きました。 あの時は略語の展開(Expand Abbreviation)しか機能がなく物足りなかったかもしれません。まぁ殆どの移植品はExpand Abbreviationしか無いのですが。 zen-codingには他どんな機能があるかというと、実はまだ便利な機能があったりします。 オフィシャルのサイトによると Expand Abbreviation Wrap with Abbreviation Balance Tag Inward/Outward Go to Next/Previous Edit Point Update Image Size Merge Lines Remove Tag Spl

    Big Sky :: zen-codingの殆どの機能をzencoding.vimに取り込んだ。
  • Big Sky :: さよならIE6たん

    君と会わなくなって随分と年月が過ぎたね。 最近になって僕は何度か君の事を思い出してる。 君と初めて会った時、僕はまだNetscape Communicatorっていう恋人と付き合ってたんだよね。 彼女はブラウザとしてだけじゃなくって、メーラなんかもこなせる、ちょっとポッチャリした娘だったんだよ。 まぁ僕の友達から言わせると「ポッチャリどころじゃねぇだろ」って言ってたけどね。 でも君と出会って僕の人生は大きく変わった。 君はとてもお茶目で、よく僕に「不正な処理を行いました」なんて可愛いメッセージを見せてくれたよね。 今でも鮮明に覚えてるよ。 何かあるとすぐクラッシュしたよね。CSSで「:first-letter」とか指定すると、簡単に落ちちゃったよね。 一緒に青い画面、よく見に行ったっけ。 互換性の無い独特な仕様も、君らしくて愛くるしいとも思えた。 buttonタグのvalue属性の値とか、

    Big Sky :: さよならIE6たん
  • 1