タグ

ブックマーク / shyouhei.tumblr.com (26)

  • 俺の .screenrc が火を吹くぜ

    たまにはこういう生産性のない話題もいいよね! さて、まあおまえらも GNU Screen くらいは使ってるとおもうわけだが。こいつがまたひどいバッドノウハウでさあ。ほとんどの人が他人の .screenrc をコピペしてきて済ませちゃうんだよね。俺くらいカスタマイズして使ってるやつとか見かけないわけよ。当に。CodeRepos 見ても俺に比肩する規模の .screenrc 書いてる奴はいないもん。で、たまーにプロジェクタに表示して見せたりすると「それどうなってるんですか」とか。まあ一般人のおまえらは info なんか読まないよね。そうだよね。 でも今日は気が向いたから line-by-line で何が起こってるか解説しちゃうよ。 .screenrc の前にスクリーンショットの解説をちょっとだけ これが普段俺が使ってるノート PC の画面である。これで全画面。OS は普通の Ubuntu で

    俺の .screenrc が火を吹くぜ
    mitukiii
    mitukiii 2021/03/19
  • バックアップ考

    というわけでPCを買ってバックアップをセットアップしたので考えてみるわけだけども、やはりバックアップはどちらかというとバックアップのしやすさよりもリストアのしやすさが重要と思うわけだ。ZFS send/recvだとかiSCSIでネットワーク越しにLVM論理ボリュームを構築してミラーさせたりとか、原理的には可能かもしれないが、リストアの面倒臭さの面でぜんぜんダメと言わざるを得ない。ZFSはそれはそれでよいものだが、だからといってそれだけではバックアップとして成立しない。RAIDがバックアップではないのと同程度には、ZFSもバックアップではないのだ。バックアップは基的に、奇をてらわないコンサバティブな技術が要求されている分野。すなわち、 バックアップ先メディアは大容量低速回転HDDのRAID1クラスタを使うということ(次点テープ)。容量と入手性の観点からHDD以外のバックアップメディアの選択

    バックアップ考
    mitukiii
    mitukiii 2017/02/15
  • 検索と挿入がともにO(1)であるようなHashを作るにはコツがいる

    このところ立て続けに表記の事実を理解していない俺実装のHash(しかもCで!)を見かけたので、おそらく知られていないんだと思う。以降、同じ轍を踏む人が少なくなればと思い、啓蒙のために公開しておく。 先に言っておくがおまえらはHashを再発明するんじゃねよボケが。おとなしくありもののライブラリ使えよ。つうかHashのある言語使えよ。Cとかマゾかよ。 言葉と前提とりあえずHashが何であるかとか、どういう作りになっているかとか、そういうことは既知とする。リストの配列ってことね。←これで何言ってるか分からないおまえらにはこの文章はちょっとはやい。先にデータ構造の教科書を読むことをおすすめ。以下ではHashに登録されるキーとデータのペアのことをentryと呼び、リストの配列と言ったときのリストのほうをbin、配列のほうをbucketと呼ぶ。つまり、 class Hash { typedef lis

    検索と挿入がともにO(1)であるようなHashを作るにはコツがいる
    mitukiii
    mitukiii 2016/03/02
  • Rubyパッチ袋

    Rubyパッチ袋 まあ、おまえらもmatz基調講演を聞いて「意外にも思いつきではなくちゃんとパッチが管理されている」ことに衝撃を受けたことだろう(実は前から日記とかで言及されてはいたが)。あれを見てそろそろgit使い始めようかとか思いだしたかもしれない。しかし、じゃあといってRubyのレポジトリをgit svn cloneしようとすると果てしなく時間がかかる(ネットワーク状況などにもよるが30時間くらい?一日以上なのは確実)ので、多くの人はここでめげてしまう。 ところが案外知られていないけどgit-svn(1)は実はよくできていて、git svn cloneってのは毎回みんながやる必要はなくて、当はだれかがどこかで一回やればいいのである。他の人はそいつをgit cloneすればいいの。その誰かさんのgitレポジトリってのはみんなが見れるところにないといけないわけだが、そこはもちろんgit

    Rubyパッチ袋
    mitukiii
    mitukiii 2015/07/13
  • んで、結局JS Girlsってキラキラしたいだけなの?

    俺はLindaたちがなにをあそこまで思いつめてRailsGirlsを始めたか完璧には理解していない(し、そもそも「完璧な理解」って存在するのか?)が、ひとつ理解しているのは、RailsGirlsはべつにRailsやりたい女子じゃないという点だ。Railsはたまたまそのへんに転がってたからチョイスしただけ。当のゴールは女性へのツールとコミュニティの提供を通じて、在野の女性のアイディアを実現する事にある。不勉強で日の事情はよく知らんけど、家はそういうことになってる。だから当にRailsGrilsのRailsってのはウィキリークスのWikiくらいどーでもいいんですよ。今後たとえばRailsいけてなくねってことになったらRails捨ててexpress.jsなりに移っても、RailsGirlsのミッションはいささかも揺るがない。 RailsGirlsってのはアファーマティブアクションですよ。

    んで、結局JS Girlsってキラキラしたいだけなの?
    mitukiii
    mitukiii 2014/04/08
  • テストのめどい話

    最初にめどい言い訳をせねばならぬ俺は江島氏ともきょん氏とも面識はないですが、お二人ともが俺のことを知ってることを俺も知ってる程度には狭い業界であり。どちらかに肩入れしたいわけではないです。喧嘩したいわけでもないです。普段あまりここでは言及しないですが俺は今の仕事としてはテストを書いたりテストを実施したりする係をしてノリクチをしのいでおり、いわばテストは業ですので、テストに言及することは今現在の同僚に対して意図しない受け取られ方をする可能性があるので困るので、それもあって普段はここではあまりテストの話はしないわけだが、だからと言って沈黙を破ってテストの話をするのが同僚に対して含みがあるというわけでもないです。とはいえ俺は大学等で真面目にソフトウエア工学の講義を受講したことがなく、経験と勘と昔取った杵柄だけでってるので、そういう意味では若干の後ろめたい気持ちもある。で、テストって何なん俺が

    テストのめどい話
    mitukiii
    mitukiii 2014/01/14
  • ruby/ruby#495日本語解題

    三行で卜部って口だけ野郎でどうせたいしたもん書けないんでしょ? [1] [2]→ 見せてやんよゴラァ→ ごらんの有様教訓: 陰口は人に聞こえない所で。さすがに名指しはまずい。 どういうパッチかRubyのオブジェクトサイズを変更(大きく)する。そのことにより第一義的にはCPUキャッシュミスヒットが削減される。副次的作用として大きくなった余剰の領域にデータを詰め込めるので中間構造体を減らしてメモリアロケーションが最適化される。それらの総合的な結果として全体に高速化する。 前史とはいえこのアイディア、べつに最近涌いて出たものでもない。というか、俺がまだ大学院でNetBurstと戯れてたころの発想だから、かれこれ7~8年物だな。しかもこの間べつに秘密にしてたわけでもなくて、Rubyのオブジェクトって素数幅でいくなくね?ってのは、わりと口頭では折に触れて言ってたので、聞いたことがある人もいるはずか

    ruby/ruby#495日本語解題
    mitukiii
    mitukiii 2014/01/10
  • 卜部昌平のあまりreblogしないtumblr

    んで、結局JS Girlsってキラキラしたいだけなの? 俺はLindaたちがなにをあそこまで思いつめてRailsGirlsを始めたか完璧には理解していない(し、そもそも「完璧な理解」って存在するのか?)が、ひとつ理解しているのは、RailsGirlsはべつにRailsやりたい女子じゃないという点だ。Railsはたまたまそのへんに転がってたからチョイスしただけ。当のゴールは女性へのツールとコミュニティの提供を通じて、在野の女性のアイディアを実現する事にある。不勉強で日の事情はよく知らんけど、家はそういうことになってる。だから当にRailsGrilsのRailsってのはウィキリークスのWikiくらいどーでもいいんですよ。今後たとえばRailsいけてなくねってことになったらRails捨ててexpress.jsなりに移っても、RailsGirlsのミッションはいささかも揺るがない。 Rai

    卜部昌平のあまりreblogしないtumblr
    mitukiii
    mitukiii 2014/01/10
  • '10年代のRubyコア用語集

    IRC (あいあーるしー) 「教養チャンネル」とも「衒学チャンネル」とも呼ばれる。ほとんどのタイミングで日史か中欧史か仏教史か英語史の話をしている。たまにRubyの話題になると逆に違和感が… ISeq (あいせく) RubyVM::InstructionSequence のこと。長いので誰も正式名称で呼ぼうとしない。 rubyスクリプトのいくつかある表現型の中でもっとも低レベルな表現。現在、rubyスクリプトからISeqを生成する機能は公開されているが、そのようにして生成したISeqを実行する機能はセキュリティ上の懸念から(作られてはいるが)封印されている。→ AST ID (あいでぃー) 型。rubyレベルでいうSymbolにほぼ相当するもの(ちょっとだけ違う)。objcプログラマーはこれを見てVALUEと混乱しないように。 assn (あさしん) IRCで彼らがアサシンと呼んでいるも

    '10年代のRubyコア用語集
    mitukiii
    mitukiii 2013/10/20
  • Visualizing git blame

    Git には git blame というコマンドがあり(他のツールでも同様の機能は提供されている)、これを使うことでソースコードのどこを書いたのが誰か、という情報がline-by-lineで取得できる。この情報は行単位なので一次元の情報だけれど、適切な空間充填曲線に乗せることで二次元にマッピングできて、それに適当に作者ごとに色をつけるということをやってみると色々楽しい。そのスクリプトはひじょうにstraight-forwardな記述だとこういった感じになる。上の絵はruby 1.8.7に対する実行結果で、ChangeLogとかのあきらかに面白くないファイルは除外してあるからまあ、そのままの結果ではないけれど、これを見ると色々な思いが去来する。 Ruby 1.8.7 は多数の開発者が手を入れており、少数の支配的な貢献者といったような存在をみいだすことができないしかしながら、全体がのっぺりと灰

    Visualizing git blame
  • #rubykaigi バイヤーズガイド '13

    #rubykaigi バイヤーズガイド ‘13 あえてアマゾンのリンクは貼らないので会場で会おう たのしいRuby 第四版これを買うべき人: 全員ひとこと: ついにRuby 2.0の時代が格的に始まったことを宣言する決定打的一冊であり、必携。今後「情報がないから2.0は不安」などとうそぶくことはこれで不可能になった。テストから見えてくるグーグルのソフトウエア開発これを買うべき人: テストを日常的に書いている人と、テストを書く習慣がない人ひとこと: これはずばり俺が読みたいので買います。こちらからは以上です。白と黒のとびらこれを買うべき人: 「記号と再帰」がおもしろかった人ひとこと: まあなんていうんですかね、形式言語とか好きな人って結局そっちに道を踏み外しちゃうきっかけってテングワールだったりするわけじゃないですか。だからこういうふうに攻めてくるのって変化球のようでいて実はど真ん中だと思

    #rubykaigi バイヤーズガイド '13
    mitukiii
    mitukiii 2013/05/30
  • #naruhounix について

    どうなんですかねえ。まあぶっちゃけ、このにツッコミを入れることが容易な種族はいる。たとえば「プロセスがfork(2)するときにPOSIX semaphoreをsem_wait(3)してたらそのセマフォはどうなってまうの?」とかそういうの(実際書いてない)ね。けど、それって、そういうの目ざとく気がついてしまう人、はっきりいって対象読者じゃないというべきだろうなあ。LinuxとBSDのカーネルコミッターの皆さん、セプキャン講師陣の皆さん、未踏スーパークリエーターの皆さん、お疲れさまです。おまえらはお呼びじゃない。 でね。俺もどっちかというとお呼びでない側っぽいので、色々考えた。昔はCで書くしかなかったサンプルコードがRubyで書いてあるというのはよいですね。なにがよいかってCほど煩瑣じゃないから、質的な記述(だけとは言わないまでも)の割合が大きくて、いわゆる密度が高い気がする。なのでページ

    #naruhounix について
    mitukiii
    mitukiii 2013/05/07
  • OSの標準インストールでPerl入ってるからPerl最強とか言ってるそこのおまえら、10年古い。

    Heroku使いなさいよ。 10年前、たしかに、自宅サーバでApacheでCGIでPerlっていう時代がありました。でもさすがに今それはないわ。10年前それやってたサイトのほとんどが結局メンテナンスコスト払えなくて鬼籍に名を刻んだ。あるものはクラックされ、あるものは更新が止まった。そういう歴史の流れですので。今更OS標準だから偉いとか偉くないとかさすがに。ありえんです。 ああ、おまえらがプロのシステム管理者なら(つまりサービス提供側なら)ちょっと話は違う。システム管理者のくせに贔屓の言語とか持っちゃいかん。当に。どんなシステムでも同様に管理できないようではプロ失格。Perlが来たらPerlRubyが来たらRubyを鼻歌歌いながら管理できないようでは、半人前です。猛省すべき。 まあいずれにせよ、今更OS標準だから強いとか強くないとか、ないわ。

    OSの標準インストールでPerl入ってるからPerl最強とか言ってるそこのおまえら、10年古い。
    mitukiii
    mitukiii 2013/03/21
  • 卜部昌平のあまりreblogしないtumblr

    どうも。グリーのアカウントは持ってる1けどモバゲーのアカウントは持ってない卜部です。 ところでPerlリスクですか。まあ、あるんじゃないですか。ぶっちゃけ。でもさあ、さすがにPerlしか書けない人たちは転職先の選択肢のなさくらい自覚してると思う。なのでPerlがどうとかいう話はしないです。各自でどうぞ。 でね、ポイントはそこじゃないだろうと思うわけですよ。どんな選択をしても同様のリスクはあるんですよ。たとえばMacromedia ShockwaveでLingoで作ってたソフトとかさあ。今ではだれもメンテできないでしょう? だから今隆盛をきわめてる技術で作ったものが、何年か後にリスクになるってのは、それはそういうものなんですよ。べつにPerlに限らん。Perlはたまたま今そういうフェーズってだけで、明日は我が身ですよ。hamlとかsassとか。 だからまあ、こう言ってしまうと身も蓋もないかも

    卜部昌平のあまりreblogしないtumblr
    mitukiii
    mitukiii 2013/03/04
  • Rubyがそろそろ一回終わってみるべき10の理由

    いや、Rubyを取り巻く皆さんの生活まで終われとは言ってないですからね。終わってみるべきなのはRubyのコア部分の開発。 1) 百年の大計の欠如 https://twitter.com/yukihiro_matz/status/25168548474 によると、100年や200年続けるべきなんだそうだ。ふーん。100年って言ってみたいだけちゃうんか。200年後といえば人はおろかまつもとゆきひろと面識のある人間すら死に絶えている時期なんだけどな。そこまで続けたきゃどうするればいいか真面目に考えたことあんのかね。日国ですらこの120年で2回も憲法変わってんだぞ。惰性で200年もつわけがないだろ。 2) まつもとゆきひろがスケールしない 御存知の通りまつもとゆきひろのRuby開発に対するコミットペース(ここでいうコミットってのはソースコードをチェックインすることだけではなくて広く「関与」の意

    Rubyがそろそろ一回終わってみるべき10の理由
    mitukiii
    mitukiii 2013/03/01
  • DeNAに転職します

    宮川達彦さんがCOOKPADでRuby書いてるなら俺がDeNAでPerl書くのもまあありなんじゃないかと思ったので。 よくある質問とその答えQ. 一時金もらえるんでしょ? 200万? やったー! ごちそうさまです A. ねーよ。おまえはいつの話をしてるんだ。そのキャンペーンはずいぶん前に終わりました。 Q. ベイスターズファンだったの? A. 好きでも嫌いでもねーよ。野球の趣味を理由に転職するの必ずしもダメとは申しませんが、俺はそういう類の輩ではございません。 Q. モゲマス作るの? A. 作らねーよ。Mobageだからといって全部のゲームをDeNAが作っているわけでは、実はないのです。モゲマスは違います。 Q. Rubyやめちゃうの? A. やめねーよ。コミュニティ活動に関しましては、むしろ推奨されていると聞き及んでおります。あと当然、素性を隠しておりませんので、俺が何者かは分かった上で

    DeNAに転職します
    mitukiii
    mitukiii 2012/10/02
  • Re: Tempfile被害者の会

    http://r7kamura.hatenablog.com/entry/2012/09/05/194630 しょうがないなー。gem作ってあげたからこれでも使いな。 https://github.com/shyouhei/open-temporary使い方Gemfileに gem "open-temporary" と書く。 一時ファイルを使うところに require 'open-temporaruy' と書く。 open-uriと同様にopenが拡張されており、無引数のopen、つまり File.open # => 一時ファイル とすることで一時ファイルを作成可能。 このファイルは物のFileなのでdupしても平気。なぜこれがRuby体に入らないのか?移植性がないからだよ。 この実装でなぜOKかというとOSが頑張ってディスクリプタやファイル領域をリークしないように回収してくれるからに

    Re: Tempfile被害者の会
    mitukiii
    mitukiii 2012/09/10
  • .travis.ymlめぐり

    Travis CI というGithubと連動してGithubにコミットすると勝手にテストが走ってテスト結果を通知してくれる、ようするにJenkins as a Serviceみたいなやつがあって、とても便利なので知らなかった人はこの際使いましょう。 そんでTravisの設定ファイルが.travis.ymlで、プロジェクトのディレクトリに置いておくだけでいいんだけど、ごく最近rubyの.travis.ymlを書き直したので、そのときに調べたものを開陳しておこうというエントリ。 https://github.com/ruby/ruby/blob/trunk/.travis.yml これが最終的に今のRubyの.travis.ymlで、俺の趣味によるやりすぎ気味のコメントと、language: cの例としてはもっとも網羅的な(つまり微に入り際に穿った)記述が特徴。Cのプロジェクトはまずこれをコピ

    .travis.ymlめぐり
  • RubyKaigi来て英語勉強しなきゃと思ったでしょ? まさか思わなかったの?

    副題: RubyKaigiのビデオを翻訳しましょう副題: 日語話者のおまえらにもよくわかるファンサブ(ハードサブ)の作り方(オプション)Windowsを窓から投げ捨ててGentooをインストールしますemerge aegisubemerge avidemux(オプション)aegisubでぐぐってaegisubについて学びます(オプション)avidemuxでぐぐってavidemuxについて学びますVimeoのアカウントをとってVimeoからkaigiのビデオを落としてきます aegisubでVimeoから落としてきたビデオを開きます しばらくかかる(マシンパワーによる)メニューの「音声」 -> 「映像ファイルから音声を読み込む」波形が表示されると思うので再生ボタンと選択範囲等を弄りつつ、訳したい音の部分を探します。とりあえず映像の方は無視してOK 最初これが面倒に思うが慣れると結構連続して

    RubyKaigi来て英語勉強しなきゃと思ったでしょ? まさか思わなかったの?
    mitukiii
    mitukiii 2011/07/22
    「(オプション)Windowsを窓から投げ捨ててGentooをインストールします」
  • 卜部昌平のあまりreblogしないtumblr

    エゴサーチで見かけた反応とそれの感想など 速さのためにはCでないと この誤解は典型的ですねえ。今、申し訳ないんだけど、普通に書いたCのコードと普通に書いたJavaのコード走らせると、普通に書いたJavaのコードの方が速くなるケース、全部とは言わんが案外と多いですよ。なんでかというと、Javaは普通に書いたらJVMが人類の持てるテクノロジの限りを尽くして勝手に高速化してくれる1が、Cはあなたの能力以上に速くはならない。Cは速いJavaは遅いってのは10年くらい前には正しかったんでしょうけどねえ。 なお自分でベンチマークしてる暇なんかないよ!という人はshootout.alioth.debian.orgぐらいは読んでもいいんじゃないですかね。たとえばJavaとCの比較で見れば全体的にいって同じくらいのスピード、いくつかの項目でJavaのほうが速いのが分かる。 組み込み屋はCでなければ何を使うか

    卜部昌平のあまりreblogしないtumblr
    mitukiii
    mitukiii 2011/05/20
    「普通に書いたCのコードと普通に書いたJavaのコード走らせると、普通に書いたJavaのコードの方が速くなるケース、全部とは言わんが案外と多いですよ。」