タグ

2020年12月6日のブックマーク (16件)

  • なぜ、AppleのM1チップはそんなに速いのか?

    Medium(Debugger)より。 新しいM1 Macの実際の体験が動き始めました。速いです。当に速い。しかし、なぜ? 魔法は何ですか? エリック・エンハイム Youtubeで、昨年iMacを購入したMacユーザーを見ました。それは40GBのRAMを搭載、約4000ドルの費用がかかて最大になりました。その時には、超高価なiMacが、わずか700ドルを支払った新しいM1 Mac Miniによって破壊されていく様子を信じられないような気持ちで見ていました。 実際のテストでは、M1 MacはIntel Macの最上位を超えて追い越しているだけでなく、それらを破壊しているのです。信じられない人たちは、一体どうやってこんなことが可能なのかと尋ね始めました。 あなたがその人たちの一人なら、あなたはうってつけの場所に来ました。ここでは、AppleがM1で行ったことを正確に消化可能な部分に分解する予

    なぜ、AppleのM1チップはそんなに速いのか?
    emonkak
    emonkak 2020/12/06
  • LLVM の Kaleidoscope を育てながら作る - Qiita

    この記事は言語実装 Advent Calendar 2020 3日目の記事です。前回は sisshiki1969 さんの「ruruby: RustでつくっているRuby」、次回は yharaさんの「Shiika進捗」です。 趣旨 LLVM を使って小さな言語を実装してみます。 方針としては、最小限の機能の言語から出発して動くものを少しづつ大きくしていきます。ゴールは LLVM 公式のチュートリアルである Kaleidoscope の序盤相当の部分で、次のプログラムが動くことを目標とします。 def fib(n) if n < 3 then 1 else fib(n-1) + fib(n-2); fib(10) #=> 55 想定する読者 LLVM や LLVM IR がどういうものか何となく知っている Haskell がなんとなく分かる ただしコードにはコメントを入れて、LLVM IR や

    LLVM の Kaleidoscope を育てながら作る - Qiita
  • SMLでバッククォート記法を実現する | κeenのHappy Hacκing Blog

  • Rustの環境構築(Emacs) | κeenのHappy Hacκing Blog

    たまに得体の知れないコマンドシェルスクリプトを直接 sh に流すのを嫌う人がいますが、 そもそも得体のしれないバイナリ(rustコンパイラ)をインストールしようとしてるので気にしすぎでしょう。 さて、上記コマンドを実行すると以下のようにインストールが走ります。 info: downloading installer Welcome to Rust! This will download and install the official compiler for the Rust programming language, and its package manager, Cargo. Rustup metadata and toolchains will be installed into the Rustup home directory, located at: /home/shun/

    Rustの環境構築(Emacs) | κeenのHappy Hacκing Blog
  • 自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog

    このエントリは言語実装 Advent Calendar 2020の1日目の記事です。 次はsisshiki1969さんで「RustでつくるRuby、その後の進捗」です。 κeenです。 昔からちまちま作ってるSML処理系をブラウザ上で動かすことができたのでその進捗報告です。 ちまちま作ってるSML処理系とはこれのことです。 KeenS/webml: A Standard ML Compiler for the Web 今回実装したオンラインコンパイラは以下で試すことができます: WebML Online Compiler まあ、ブラウザで動くのでここに貼ることもできるんですけどね。 こういうのどうやって作ったの?っていうのを話していけたらなと思います。 設計 そもそもの話、WebMLはブラウザで動かすために設計、実装されています。 スタートから違うじゃんと思うかもしれませんが、スタートから

    自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
  • 貧者の Algebraic Data Types と(浅い)網羅性判定

    こんにちは、びしょ~じょです。 これは TypeScript アドベントカレンダー 2020 の3日目の記事です。 ちなみに12月3日は冴草きいちゃんの誕生日です。大変めでたいですね。 1. はじめに 関数型プログラミングといえばなんですか? はい円楽さん早かった! はいはい、 パターンマッチング、いいですね。 パターンマッチングといえばプリミティブな数値や文字列のリテラルのみならず、ユーザが定義した型もその構造によってマッチできます。回りくどい言い方をしましたが代数的データ型(Algebraic Data Types, ADTs)です。 listing 1.1. 例えば OCamltype 'a option = | None | Some of 'a let to_default default o = match o with | None -> default | Some v -

    貧者の Algebraic Data Types と(浅い)網羅性判定
  • 端末上の Vim 向けにテキストベースのスクロールバーを作った話

    こんにちは、obcat です🐱 タイトルの通り、端末上の Vim 向けにテキストベースのスクロールバーを表示するプラグインを作りました。この記事では、このプラグインの機能やしくみをご紹介したいと思います。 👾 vim-sclow vim-sclow は、ウィンドウの右端にスクロールバーを表示するプラグインです。スクロールバーはポップアップウィンドウを使って作りました。 GUIVim にはデフォルトの機能としてスクロールバーが搭載されていますが、端末上の Vim にはありません。「端末上の Vim 向け」と謳っているのはこのためで、vim-sclow は GUIVim でも動きます。 今のところ、スクロールバーはカレントウィンドウにしか表示されません。また、描画に関する深刻な問題を抱えています。詳しくは最後のセクションでご説明しますが、なぜかこの問題はウィンドウが二つ以上ある

    端末上の Vim 向けにテキストベースのスクロールバーを作った話
    emonkak
    emonkak 2020/12/06
  • メモリを節約しつつ動的計画法の経路を復元する - www.kotha.netの裏

    背景 動的計画法を実行する際、計算した部分問題の解をテーブルに書き込んでいくわけだが、問題によっては、テーブルの全体を最後まで持っておく必要がないこともある。 例として、2つの文字列のレーベンシュタイン距離を求める問題を考える。二つの文字列の先頭それぞれi文字とj文字を取ったもののレーベンシュタイン距離をdp[i][j]とすると、dp[i][j]の計算にはdp[i-1][j]、dp[i-1][j-1]、dp[i][j-1]の値があれば十分なので、iが小さい方から計算していくなら、dp[i][j]を計算する時点でdp[i-2][*]やdp[i-3][*]などは忘れてしまっていても良い。コードは例えば以下のようになる。 use std::cmp; use std::iter::Iterator; use std::mem; // 二つの配列のレーベンシュタイン距離を求める fn levensh

    メモリを節約しつつ動的計画法の経路を復元する - www.kotha.netの裏
  • assert.CallTracker と must-call - from scratch

    この記事はリクルートエンジニアアドベントカレンダーの2日目の記事です。過ぎてるかもしれませんが、メンバーから脅迫されて書いてます。 assert.CallTracker Node.js で experimental な API として assert.CallTracker がv14 で追加されました。 この機能は呼び出された回数を検証するという機能を持った新しい assert 関数です。 コールバック関数をテストする際に使える便利関数です。機能としては地味ですが、使いこなせると便利なので紹介します。 const assert = require('assert'); const tracker = new assert.CallTracker(); function func() {} // 一度だけ呼ばれることを期待 const callsfunc = tracker.calls(fun

    assert.CallTracker と must-call - from scratch
  • CSS Layout API で Masonry Layout | blog.jxck.io

    Intro Pinterest でおなじみの Masonry Layout を CSS の標準にする作業と実装が進んでいる。 Masonry Layout 以下のように画像を敷き詰めるタイルレイアウトのことを Masonry (石工やレンガ造りの意味らしい) Layout という。 上の例の場合は、 Height が不揃いの画像を並べる上で、左から敷き詰め、折り返したら既にある画像の高さに合わせて二列目が始まるというロジックになる。 これを実現するには、割と複雑な CSS を書く必要があり、様々なサイトで CSS ライブラリや、 Grid などを用いて再現する方法が紹介されている。 これをそのまま CSS の標準にする作業が Layout API の文脈で行われており、既に一部が(主に Firefox で)実装されている。 grid: masonry; 仕様は以下だ。 CSS Grid L

    CSS Layout API で Masonry Layout | blog.jxck.io
    emonkak
    emonkak 2020/12/06
  • Semgrepを使った構文木ベースの検索と置換でコードのリファクタリングをする

    Semgrepはr2cという会社/サービスが開発しているツールです。 Semgrepの特徴としてTree-sitterでコードをパースしたConcrete Syntax Tree(CST)の構文木をベースにして検索や置換ができます。 コードをCSTにパースした構文木に対して検索/置換することで、ただの文字列検索/置換に比べてミスマッチしない検索/置換ができます。 例えば、次のa.js、b.js、c.jsはそれぞれevalを使っていますが、スタイルは違いますが意味はほとんど同じです。 // a.js eval("const a = 1, b = 2; eval(a + b);"); // b.js eval('const a = 1, b = 2;\ eval(a + b);'); // c.js eval(`const a = 1, b = 2; eval(a + b);`); $ sem

    Semgrepを使った構文木ベースの検索と置換でコードのリファクタリングをする
  • GitHub - mezzio/mezzio: PSR-15 Middleware Microframework

  • 日本語フリーフォント | マメロン Hi Regular | もじワク研究

    この書体は主にデジタルデバイスで使用することを意識し制作しました。WEBフォントや論文・レポートなどで、実験的に使用していただけると幸いです。 日語の基語彙は日常的な会話や論文や小説に自由に使われる「日常語」と、公式の場面や文章に用いられる「文章語」と、くだけた文体の「俗語」があります。 参照・引用元:言語学大辞典セレクション日語列島の言語/亀井孝・河野六郎・千野栄一[編著]より マメロン Hi Regularは、デジタル時代の日常語と俗語の文章表現の視覚化と共有を目的とした書体です。令和2年の昨今、スマホやタブレット端末、PC環境では明朝体やゴシック体を用いることがもっぱら。そこに「丸形書体」という選択肢を導入することで、これまでアナログとデジタルの間で抜け落ちてしまっていた感情表現や、漢字が多いだけで苦痛と感じる状況に何かしらの変化が生まれることを期待しています。 引用元:言語学

    日本語フリーフォント | マメロン Hi Regular | もじワク研究
    emonkak
    emonkak 2020/12/06
  • GitHub - edent/SuperTinyIcons: Under 1KB each! Super Tiny Icons are miniscule SVG versions of your favourite website and app logos

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - edent/SuperTinyIcons: Under 1KB each! Super Tiny Icons are miniscule SVG versions of your favourite website and app logos
  • How To Make An Area Chart With CSS | CSS-Tricks

    DigitalOcean provides cloud products for every stage of your journey. Get started with $200 in free credit! You might know a few ways to create charts with pure CSS. Some of them are covered here on CSS-Tricks, and many others can be found on CodePen, but I haven’t seen many examples of “area charts” (imagine a line chart with the bottom area filled in), particularly any in HTML and CSS alone. In

    How To Make An Area Chart With CSS | CSS-Tricks
    emonkak
    emonkak 2020/12/06
  • 日本株市場、じつは「高配当株」を買ってはいけない…? その意外すぎる「真実」(大川 智宏) @moneygendai

    「バブル化」する株式市場 株式市場は、新型コロナウイルス(以下、コロナ)による感染拡大をまったく意に介さずに急騰を続けている。 景気の低迷が背景にある中で理論的な根拠を持たない高騰ということで、ほぼ間違いなくバブルといって相違ないと思われるが、バブルはいつ崩壊するかは誰にも分からず、また崩壊しないバブルもないことから、いつか発生するその惨事に備えておく必要はあろう。 そんな状況もあってか(無関係かもしれないが)、周囲から「高配当利回りの株を買うのはどうか」といった声が聞かれ、高配当株への興味は個人投資家を中心として依然根強いようだ。たしかに、配当利回りは定期利回り目的の投資家層の需給による底堅さが期待でき、何よりも配当そのものの下方硬直性(不景気でも下がりにくい性質)を持つため、長期投資や堅実なリターンを期待するならば手堅い一手のように思われる。 しかし、結論を言えば、高配当利回り株への投

    日本株市場、じつは「高配当株」を買ってはいけない…? その意外すぎる「真実」(大川 智宏) @moneygendai