タグ

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

  • Rustの `Arc` を読む(1): Arc/Rcの基本 - Qiita

    概要: Rustの Arc 型の実装は宝の宝庫です。そこで、これを隅から隅まで解説してみます。 第1回「Arc/Rcの基」では、実際に Arc のソースを読む前に Arc/Rc の使い方を解説します。 第1回 Arc/Rcの基 第2回 Rcを読む基編 第3回 Rcを読む発展編 第4回 アトミック変数とメモリ順序 第5回 Arcを読む はじめに Arc<T> はRustの基的な型のひとつですが、 Box<T> のようにコンパイラに特別扱いされているわけでもなく、実装も比較的コンパクトです(コメントやテスト、安定性に関する指示などを除いて500LOC程度) その一方で Arc は並行性制御や Deref, ドロップチェッカー, Unpin, Layoutの扱いなどRustをよりよく理解するための題材を多く含んでいます。そこで記事では Arc<T> の実装を読んでいきます。 とはいえ、

    Rustの `Arc` を読む(1): Arc/Rcの基本 - Qiita
  • webpack のコード分割の初歩 - 30歳からのプログラミング

    JavaScriptTypeScript を使ってウェブアプリを提供する場合、開発時はimportやexportなどの ES Modules を使い、公開時はファイルをバンドルして公開することが多い。 以下の記事に書いたように、現在の主要なブラウザは ES Modules に対応してものの、バンドルせずに公開してしまうとパフォーマンスに悪影響を与える可能性がある。 numb86-tech.hatenablog.com ファイル数が増えれば増えるほど影響は深刻になるため、依存関係が深いライブラリを使っている場合などは、レイテンシが飛躍的に増加してしまう。 そのため、バンドルせずに公開するのは現実的ではない。 バンドルしてひとつのファイルにまとめてしまえば、JavaScript のダウンロードは一度で済む。 しかしそうすると今度は、バンドルファイルの肥大化という問題が発生する。 巨大なフ

    webpack のコード分割の初歩 - 30歳からのプログラミング
    mizdra
    mizdra 2020/12/06
    webpack のコード分割についていて色々説明されてて良い
  • 密閉型イヤホン以外でWeb会議アドベントカレンダー:ambie - さんぶら

    タグを始めた方とは全く知り合いではないのですが、「誰でも良いから」という言葉を真に受けて投稿してみようと思います。 私がずっと使っている密閉型イヤホン以外のイヤホンは「ambie」です。 www.amazon.co.jp メーカー公式サイトはこちら ambie.co.jp 私もカナル型やインナーイヤー型のイヤホンをずっとしていると耳垂れがひどく、「なんかいいものはないか…」と思って、ある日どこかの記事で紹介されていたのが「ambie」でした。 その当時は有線しかなかったのですが、今ではBluetoothタイプも発売されて取り回しがよくなっています。 当初は私も骨伝導で探していたのですが、骨伝導イヤホンは使用したことがなく、どのように音が聞こえるのかわからないという点が不安でした。 その点ambieは、「従来型のイヤホンが形を変えただけ」と安心できたため、購入した次第です。(骨伝導が嫌という

    密閉型イヤホン以外でWeb会議アドベントカレンダー:ambie - さんぶら
  • iTerm2の機能を使いこなして日頃の作業の効率をあげたい2020 - stefafafan の fa は3つです

    この記事ははてなエンジニア Advent Calendar 2020の6日目の記事です。 qiita.com 5日目は id:mizdra さんによるpolyfill を深堀りするでした。フロントエンド周りは弱い自分としてもこの記事を読むだけでpolyfillの概要から今後どうすると良いかなど知れてとてもありがたい記事でした。 www.mizdra.net さて今日は視点変えてツールの話を書きます。毎日使っているツールこそ、提供されている便利な機能を把握しておきたい。Macで使ってるターミナルアプリ「iTerm2」について書きます。 iterm2.com まずはみんながひょっとしたら知らない基操作についていくつか紹介し、後半はTriggersという機能の使い方をいくつか紹介します。 (記事執筆時点ではver.3.4を使っています) tl;dr 公式ドキュメントにいろいろ書いてあるので読み

    iTerm2の機能を使いこなして日頃の作業の効率をあげたい2020 - stefafafan の fa は3つです
    mizdra
    mizdra 2020/12/06
    知らない機能沢山あって良い / これに微妙に関連する話題だと、Tip of the Dayという毎日1つずつ便利機能を教えてくれる機能があって、それもオススメです
  • 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を使った構文木ベースの検索と置換でコードのリファクタリングをする
    mizdra
    mizdra 2020/12/06
    おー便利そう。CST知らなかった。色々解説されていて面白い。
  • Deno の組み込みリンター "deno_lint" の紹介 〜 ESLintの代替としても

    この記事は Deno Advent Calendar 2020 6日目の記事です。 5日目は -> Deno Standard Library Working Group について 7日目は -> (あとで埋める) Deno とは こんにちは、@magurotuna です。 このアドベントカレンダーをご覧の方であれば、新進気鋭の JavaScript / TypeScript ランタイムである Deno のことはある程度ご存知の方も多いと思います。 しかし、あえて超ざっくりと説明すると、Node.js (以下 Node と書きます)を作った Ryan Dahl が、Node の反省点をいかして新しく作り直したものです。 "10 Things I Regret About Node.js" (Node.jsについての10の反省点)というタイトルでRyan自身が JSConf EU 2018

    Deno の組み込みリンター "deno_lint" の紹介 〜 ESLintの代替としても