タグ

ブックマーク / naruse.hateblo.jp (27)

  • Rubyとnamespaceと拡張ライブラリについて - なるせにっき

    2020年代はモノリスの時代 ここ10年ほど流行っていたマイクロサービスについての理解が深まり、その限界が広く知られるようになってきた。ShopifyのModular Monolithについての記事などは代表例だろう。並行して必要性が叫ばれるようになってきたのがnamespaceだ。RubyKaigi 2023ではshioyamaさんがMultiverse Rubyと題して発表をしていたし、その後tagomorisさんも記事を書いている Rubyでは以前からnamespaceへの議論が行われてはいたのだが、Ruby 2.0の頃の議論では主にMonkey Patchingによる副作用を局所化するためのものだった。当時の議論とはライブラリ読み込みの局所化という課題が挙がっている点が異なっており、それに伴い技術的な困難も異なる。上述の記事でもそれらの多くは整理されているのだが、この記事ではまだ議

    Rubyとnamespaceと拡張ライブラリについて - なるせにっき
  • macOSでの動的ロード問題まとめ - なるせにっき

    主な問題 最近のRuby+Xcodeでは以下の4つの問題があるっぽい dynamic_lookupがXcode 14で警告が出る two-level namespace vs. flat namespace 別の拡張ライブラリのシンボルを参照できない disable-sharedなrubyがfat binaryを読めない dynamic_lookupがXcode 14で警告が出る https://bugs.ruby-lang.org/issues/19005 Xcode 14にて以下の警告が出て、拡張ライブラリのコンパイルに失敗する。 ld: warning: -undefined dynamic_lookup may not work with chained fixups https://openradar.appspot.com/radar?id=5536824084660224 W

    macOSでの動的ロード問題まとめ - なるせにっき
  • 『研鑽Rubyプログラミング』をもらった - なるせにっき

    訳者の角谷さんから『研鑽Rubyプログラミング』をもらったので読みました。 研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ 作者:Jeremy Evans,角谷信太郎ラムダノートAmazon 読んだ第一印象は「Effective Perl 第2版: 上級Perlプログラマへと成長できる120の階段みたい」でした。Effective Perlは往年のPerlの名著で、プログラミングにあたって気になるより速いコードの書き方や、よりよいコードの書き方、なぜそれがよいのかが詰め込まれたで、当時まだプログラミング初心者を脱したばかりのわたしにとって、解説書として、テクニック集として、そして道しるべとして重宝するとともに楽しく繰り返し読んだものです。 『研鑽Rubyプログラミング』の筆者であるJeremyはSequelの作者で、近年はRubyコミッタになって八面六臂の活躍をして

    『研鑽Rubyプログラミング』をもらった - なるせにっき
  • therubyracer considered harmful - なるせにっき

    要約 therubyracerはやめてexecjsからnodeコマンド使え。 解説 Rails 3.1 で Asset Pipeline が導入されて以来、Gemfileにgem 'therubyracer'と書く人も増えたのではないでしょうか。しかし、それがどの程度のリスクを背負っているのか自覚のない人も多いように感じます。 平時はChrome由来のJavaScriptエンジンであるv8を手軽にインストールできてスーパー便利なtherubyracer.gem & libv8.gemですが、その潜在的なリスクには震えるものがあります。最初にこれが世を騒がせたのは3年前のクリスマス前のことだったでしょうか。 v8 この問題の背景には、質的に「v8のビルドは難しい」という点があります。雑にバージョンを選ぶとビルドが通りません。そもそもがChromeのためのものだからなんでしょうか。リリースす

    therubyracer considered harmful - なるせにっき
    lugecy
    lugecy 2021/06/03
  • char8_tによせて - なるせにっき

    C++標準化委員会、ついに文字とは何かを理解する: char8_tという記事が話題だってので、つらつらと書いてみました。 「グリフ」について グリフ(glyph)という言葉の定義をめぐって でも触れられていますが、「グリフ」という言葉が「字体」を指すのか「字形」を指すのかってのは議論がありますね。文字コードの文脈では普通「字形」の意味だとして話を進めることが多いように思います。 CJK統合漢字について Wikipediaの記事にまとまっていますが、実際に推進していたのは中国みたいですね。うまくやればあんまり問題なかったんでしょうが、あんまりうまく行かなかったんですが、それでも国ごとにその国の過去にあった文字コードとの互換性は取れているので、実際の所CJK統合漢字ってあんまり問題にはなってないと思うんですよね。中国フォントと日フォントを切り替えないといけないって問題はありますけど、それ

    char8_tによせて - なるせにっき
  • 観察日記 2018-02-14 - なるせにっき

    配列の全ての要素が等しいか否か mrkn 配列の全ての要素が等しいことはどう確認したら良いんだろう。 `ary.all? {|e| e == ary[0] }` これかな usa ary.uniq.size == 1 mrkn なるほど > uniq usa all?でブロック引数より速そうな予感 いやでもaryがでかくてかつ全然要素が等しくなかったらそうでもないか。 mrkn `ary.all? {|e| e.foo == ary[0].foo }` の場合はどうでしょう。map.uniq.size がいいかな usa all?は全て等しい時に遅いが、序盤で違うとわかったら速い mrkn 確かに > 序盤で違うとわかったら速い usa この辺は予想される集合の傾向で判断するしかないですかねえ。 map.uniq.sizeはmapの結果としての一時配列を作らないようにするには、えーと En

    観察日記 2018-02-14 - なるせにっき
  • はじめての投資 - なるせにっき

    投資とは 最近、「投資を始めようかな」と考える人が増えたように思います。この記事を読んでいるあなたもきっとそうでしょう。 アベノミクス、株高、円安、ビットコイン、転職など理由はさまざまでしょうが、リーマンショックを乗り越えた世界の、日の経済情勢の変化があなたの心にもついに波及したということでしょう。余力のある人にとって、多少のリスクを取って資産を増やそうというのはとてもよい行いです。 そもそも投資とはリソースの最適配分であり、リスクと正面から向き合うことであり、資主義社会における投票権の行使でもあります。これまであなたは資産の全てを日円の現預金で保有していたことでしょう。これがどのような意味を持つ行いだったのか改めて考えてみましょう。 2008年のリーマンショックから2012年のアベノミクス開始までは物価や株価は下がり、円高が進んでいましたから、日円の現預金で資産を持つのは悪くない

    はじめての投資 - なるせにっき
    lugecy
    lugecy 2018/01/04
  • SEGV探偵が往く - なるせにっき

    人は誰しも108つの夢を持つと言いますが、読者の皆さんにも探偵を夢見た人は多いことでしょう。実際問題として探偵業をやろうと思ったら地道な聞き込み&張り込みの日々でしょうし、逆に派手な探偵業は陰謀&殺人で恐ろしい。わたしも自分の命は大事ですからどうするか。そう、探偵ごっこをするわけですね。 というわけでSEGV探偵です。死ぬのはプロセスなので安心。Rubyを使っていればSEGVなんて見慣れたものですが、いざ捜査しようと思うと意外とその辺には転がっていないもの。(むかしはつかみ取り出来るくらいいたそうですよ)とはいえ今でもいわゆる「バグ鉱脈」みたいなものはありまして、その一つが「最新のコンパイラでビルドしてみる」です。 今日はGCCの開発版であるGCC8を試してみましょう。FreeBSDだとsudo pkg install lang/gcc8-develで簡単に入れられるのですが、他の環境だと

    SEGV探偵が往く - なるせにっき
  • なぜマストドンは日本で花開いたのか、あるいはソシャゲが日本で流行るわけ - なるせにっき

    なぜマストドンは日で花開いたのか マストドンが日で流行ったのはなぜかという話題が盛り上がりましたね。わたしは『その理由がロリコンでないのなら、なぜマストドンは日で花開いたのか』が当を得ていると思いました。つまり、海外では「一定人数以上のインスタンスを立てられなかったから」ですね。 しかし、この仮説を支持するとなると新たなる疑問が浮かびます。なぜ日では立てられるのか。賢人ひしめくMIT擁するアメリカでは出来ないことがなぜ日では出来たのかが解決しません。 逆算経営 ところで、「逆算経営」という言葉があります。まず到達すべきゴールを決め、それに必要なものをブレイクダウンしていき、それらを各個撃破していくというものです。これに類する概念は色々なところで語られていますが、その最も重要な点がどこかについてはあまり言及されていない気がします。 改めて考えてみれば当たり前なのですが、重要なのは何

    なぜマストドンは日本で花開いたのか、あるいはソシャゲが日本で流行るわけ - なるせにっき
  • 2017年のruby-mswin事情 - なるせにっき

    おしらせ 以下に最新版があります。 qiita.com 序 WindowsRubyを使うのは難しいようで簡単なようで難しいことです。 ただインストールするだけならばインストーラがあるので簡単です。公式サイトのダウンロードページから探しましょう。 ……ここでいきなり迷うであろうのが、"mswin"と"mingw"という語です。Unix系のOSではABIは通常一環境に一つです。しかし、Windowsではたくさんあります。64bitWindowsでは32bitのバイナリも動かすことが出来るのと、最近までVisual Studioはバージョンアップの度にABIを変更していたため、2017年現在では以下のようなABIが存在します。 i386-mswin32 i386-mswin32_70 i386-mswin32_71 i386-mswin32_80 i386-mswin32_90 i386-m

    2017年のruby-mswin事情 - なるせにっき
  • Go言語感想文 - なるせにっき

    序 最近、敵情視察を兼ねた仕事ととしてGoでアプリケーションを書いていた。このアプリケーションがどんなものかはそのうちid:tagomorisさんがどこかで話すと思うけれど、このコンポーネントがOSS化される予定はいまのところないので、そこで得た知見をここにまとめておくことにする。 GoroutineとChannel さて、GoといえばGoroutineとChannelですね。 Goroutineはようするにスレッドなんですが、文法と実装の支援でより気軽に使えるのが他の言語との違いでしょうか。なので、Goroutineをどれだけほいほい使うべきかというコスト感覚を身につけることがとても大事な気がします。Rubyなどとは気持ちを切り替えていく必要があるでしょう。ぼくはまだ切り替えきれていません。 もう一つがChannelですね。これは端的にはメッセージキューです。 Goは前述の通り同時に動く

    Go言語感想文 - なるせにっき
  • RubyのTypo Checkerについての考察 - なるせにっき

    RubyKaigi 2014の基調講演でまつもとさんが静的型の野望を明かしてから2年半が経った。 その間の進捗は芳しいものとは言えないけれど、それでもまじめな研究として例えば多相型、推論、Ruby が行われている。普通の人は私のこの記事を読むよりもこちらを読んだ方がよいと思う。 じゃあなぜこの記事を書いたかというと、それでも一部の人には得るところがあると思っているからである。この記事の読者の中にはRubyKaigi 2014中に書かれたakrさんの日記で「非常に簡単化した静的解析」の話を読んだ人もいるのではないかと思う。この話をそのまま発展させた場合にどういう迷路に迷い込むのかという点についていくつかの知見を得たものの、これまでそれを書いていなかったのでちゃんと書くことにしたのだ。 さて、nurse/static-check.rbである。 これは大きく分けて3つの部分からなっている。定義さ

    RubyのTypo Checkerについての考察 - なるせにっき
  • macOS上のAPFSはUnicode Normalizationを行うのか? - なるせにっき

    iOS 10.3がリリースされましたが、APFSへの移行が含まれていて話題です。特に文字コード界隈ではHFS+で搭載されていた暗黙のUnicode Normalizationがなくなっている点が指摘されています1。 ではmacOSではどうなのでしょうか。SierraならばすでにAPFSを扱うことが出来るので試してみましょう。 % hdiutil create -fs APFS -size 1GB foo.sparseimage WARNING: You are using a pre-release version of the Apple File System called APFS which is meant for evaluation and development purposes only. Files stored on this volume may not be ac

    macOS上のAPFSはUnicode Normalizationを行うのか? - なるせにっき
    lugecy
    lugecy 2017/03/30
  • そして最近の分岐予測について2 - なるせにっき

    先日の日記で最近のIntel CPUでは間接分岐の分岐予測がほとんどミスしなくなっているという話を紹介しましたが、Branch Prediction and the Performance of Interpreters - Don't Trust Folkloreという論文にまさに同じことが書かれているのを見つけました。ていうか、この論文わたし見た形跡がある……。 去年にこの論文を見かけたときは「Direct threaded codeとかオワコン」って話までしか見てなかったんですが、今改めて見ると分岐予測が世代ごとに進化していてすごいって話に加えて、ITTAGEという分岐予測手法を使うと同じくらい当たるって書いてありますね。 ITTAGEはTAGE (TAgged GEometric length predictor)の間接分岐版で、TAGEは原論文がA case for (parti

    そして最近の分岐予測について2 - なるせにっき
  • ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき

    ムーアの法則の終わり、そして最近の分岐予測について 序 僕らx86の大地の上に生きるものは、この10年Intelが告げるTick-Tockの鐘の音にあわせてムーアの法則の恩恵を享受してきた。*1 *2 しかし、Kaby Lakeの14nmプロセス採用つまり、2年おきのプロセスルール刷新を諦めたことを持って、ムーアの法則は終焉を迎えたとされる。が、この認識は当に正しいのだろうか。 ムーアの1965年の論文では、後のムーアの法則を”The complexity for minimum component costs has increased at a rate of roughly a factor of two per year"と表現している。人々はこの”complexity"は単位面積あたりのトランジスタ数のことだとこの50年間理解してきた。もっと言えばこの10年はプロセス・ルールの

    ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
  • 観察日記 2011-02-28 - なるせにっき

    usa の非実在プレゼン「トーストをおいしくべる方法」 トーストをおいしくべる方法 とかいうので申し込もうかと思ったんだけど、 「最後のRubyKaigi」なのでやめたのであった。 最後じゃなかったら申し込まないが、最後なので俺じゃないほうがいいな、と。 念のために言うと、「トースト」は日常の暗喩。 なるほろ じゃあRubyKaigiというハレの場とケであるトーストをなんかうまいこと 寿司でもステーキでもメロンでもなく、毎朝トーストをべるようにRubyと自然に付き合うには、そしてせっかくだからそれをおいしく頂くには とかいうアブストラクトになるんだろうな。 w 最後の一葉 あのrubyがsegvしたらわたしのいのちも そういう付き合い方はするな、とw RubyKaigiがなくなっても日常生活は続く(キリッ とかいう感じの発表になるんだろうな。 まあ、脳内シミュレーションはできたから発

    観察日記 2011-02-28 - なるせにっき
  • 観察日記 2011-02-17 - なるせにっき

    ポインタとは何か ポインタって難しいものなの? なんかこう特別扱いがよくない気がする。 参照をなんか汚く実装したものという理解であった ごく平凡なメモリアクセス。 バイト列としての "メモリ" をイメージできない人間が多いのでしょう 他のイメージ方法が思いつきません>< 私も 他のイメージ方法が思いつきません>< 「メモリ」より先に、「変数」に対して「箱」を結び付ける解説を読んでしまうと、困難になるんじゃないだろうかと今では想像している メモリアクセスはアドレス指定で行う。生意気な言語だとアドレスにあだ名を付けられる。さらに生意気な言語だとあだ名だけ付ければ勝手にアドレスを割り振ってくれる。 とりあえずこんな感じ。 僕、BASIC -> Z80 -> Forth -> C という流れだけど、きっと Z80 のおかげでポインタが難しくなかったんだろうなぁ 俺はHSP (中途半端)→PHP (

    観察日記 2011-02-17 - なるせにっき
  • 観察日記 2010-09-10 - なるせにっき

    こみったって コミッタってどこまでの知識要求されるんですか... コミッタに要求される知識は まあ守備範囲によるんじゃね。 bigdecimal のメンテナが wsdl に超詳しくて数学まったくダメだったら嫌ですよね SOAP4RのメンテナなのにWSDLなにそれとか言ったらもっと嫌だ selectの引数なんか覚えてらんねーけど、それをどうにかして調べて使うという、そういう能力 で、「えーrubyのそんなメソッドも知らないのー」とか言われるような人でもコミッタになってもぜんぜん問題ないが、 当然それが問題ないだけの別ジャンルでの特化した能力が必要だろうね。 俺も普段はTarjanの今日連結成分アルゴリズム書けないが、だからといってtsort.rbはメンテしませんとかは言えないので なんていえばいいのかなこういうの スポーツで言えば基礎体力みたいな まあ、レポジトリに入ってるものについては広く

    観察日記 2010-09-10 - なるせにっき
  • Cookie 今昔物語 - はてなるせだいあり

    概要 Cookie の不幸な歴史と現状、そして将来についてまとめた。 仕様はどこにあるか Web 上の様々な規格は、誰かが定め、それに皆が合わせるという形で動いている。しかし、Cookie の仕様は誰が決め、どこで規定されているか知っている人は、意外と少ないのではないかと思う。W3C や IETF だと思っている人が多いのではなかろうか。 正解を言ってしまうと、定めたのは 1994 年、Netscape Communications 社であり、文書は http://wp.netscape.com/newsref/std/cookie_spec.html で公開されていた。アクセスしてみればわかる通り、このページはもう存在しないし、Netscape 社自体が AOL に買収されており、今は Mozilla になったというか、消えてなくなっていることを知っている人は多いだろう。当時の文書は例に

    Cookie 今昔物語 - はてなるせだいあり
  • 観察日記 2010-07-01 - なるせにっき

    Enumerate の発音 http://pc12.2ch.net/test/read.cgi/tech/1274121477/228 「Enumerableってなんて発音してる?」 えなめらぶる いにゃめらぶる いにゃむれーたー http://dictionary.goo.ne.jp/leaf/ej3/28327/m0u/ {util_mput} enumerateの意味 - 英和辞書 - goo辞書 http://tinyurl.com/3an7joe にゅ〜 いにゅむれぃと にゅか いにゅーまれぃと まか 発音記号、二つ書いてあるけど 違いがないように見えるのは俺だけ? おれもおれも 謎ですね プログレッシブのバグだな。 当は inu:- (uにアクセント) と書きたかったのだと思われる。新グローバルを見る限りでは。 なるほろ いぬーまれぃと はアリ、と。 というわけで「みんな適当

    観察日記 2010-07-01 - なるせにっき