![Crystal言語がどのようにして動作するのか調べてみた(前編) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/736a3fb40fc07ac6fba00448bc1d4ea2eadf720d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9Q3J5c3RhbCVFOCVBOCU4MCVFOCVBQSU5RSVFMyU4MSU4QyVFMyU4MSVBOSVFMyU4MSVBRSVFMyU4MiU4OCVFMyU4MSU4NiVFMyU4MSVBQiVFMyU4MSU5NyVFMyU4MSVBNiVFNSU4QiU5NSVFNCVCRCU5QyVFMyU4MSU5OSVFMyU4MiU4QiVFMyU4MSVBRSVFMyU4MSU4QiVFOCVBQSVCRiVFMyU4MSVCOSVFMyU4MSVBNiVFMyU4MSVCRiVFMyU4MSU5RiVFRiVCQyU4OCVFNSU4OSU4RCVFNyVCNyVBOCVFRiVCQyU4OSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZWNlZGQxMDE2M2ExN2IyYTQxMDRhMmY4ZjBmY2Y1Njc%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa29qaXgyJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0yYjc2MDE0NTNkNTdkNjUwY2QyODc4MzNjNTJkMzU2Zg%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd68dec710de6e5b4795b6215a4a1925e)
実際、コード量に比例して遅くなります。 これは tokenize のステップがなく、すべての構文ルールが正規表現を個別に実行するのが遅い理由でした。またそのせいで空白制御のために構文定義が冗長になっていました。 そのため、事前に tokenize ステップを用意し、pargen を事前に分割された token 列を受け取るパーサコンビネータとして再実装しました。(元の pargen はあれはあれで使いやすいので別実装になってます) mints v0.1 の ベンチマーク 試した環境は MacBookPro M1 Max 64GB です。 --------- 2416chars [tsc] 58ms [esbuild] 14ms [mints] 6ms [mints_para] 12ms --------- e2981chars [tsc] 14ms [esbuild] 1ms [mints
「奥野さんと社員のリファクタリング部屋」は、リファクタリングに励むトレタの社員と技術顧問の奥野さん ( @okunokentaro ) の間で実際に行われた会話を切り取った開発現場実録コンテンツです。 技術顧問: 奥野さん 三度の飯よりリファクタリングが好き。 今回の質問者: 武市さん トレタ在籍2年。沖縄在住のフロントエンジニア 今回の質問 今回は初期リリースを終えたWebアプリケーション(Next.js)のプロダクトを担当している武市さんから、複数人で開発を進めてきて統率が取れなくなったディレクトリ構造のリファクタリングについての質問です。 APIで外部とやり取りしている部分をリファクタリングして、クリーンアーキテクチャに沿ってリポジトリを作ろうと考えています。 その中で、GraphQL APIレスポンスの結果を変換するアダプター関数(adaptGetIServiceItemsAggr
RDS(MySQL) から BigQuery へ1日1回データを同期して、データ分析やレポート系の処理で利用することになりました。 構成 以下の構成でデータを同期することにしました。 要件1: データの断面は合わせたい 元々はEmblukを使って直接同期しようと考えていたが、Embulkだとテーブル毎にデータを同期することになり、テーブルによってデータの断面が微妙にずれるため断念 CSV 形式でダンプして、Embulk で同期することもできそうだが、元々自動でスナップショットが取られているのでそれを利用することにした => スナップショットを parquet 形式で S3 にエクスポートすれば、BigQuery Data Transfer Service を使って BigQuery に取り込むことができるので、採用 要件2: コストを抑えたい 定額利用料がかかるサービスは使うことはできない
はじめに 分散システムやってるとどこからでも安全に採番できる強い衝突耐性をもったuuid的なほげほげidがほしくなります。 世にほげほげidはたくさんありますが、適当にREADMEとかよんでもみんな「これイケてるで!」「uuidとかより文字数すくないで!」「sortableでうれしいで!」とかそういうことばっかいっててどの程度衝突耐性があるのかよくわからん問題があります 今回はほげほげidの構成要素の調査と衝突耐性をざっとまとめて比較しようと思います。 比較する項目 ざっくり random bit数 衝突耐性 ソートできるか その他メモ みたいな感じで整理して比較していきます。 衝突耐性は 衝突確率P=0.5のときの必要な試行回数 乱数以外の識別要素 の2つで評価します。たとえばtimestampとか入れてるやつは暗号学的な安全性には寄与しないけど実用上はある精度の時刻で識別できて衝突耐性
以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ
(Video and code at https://fsharpforfunandprofit.com/pipeline/) Passing data through a pipeline of transformations is an alternative approach to classic OOP. The LINQ methods in .NET are designed around this, but the pipeline approach can be used for so much more than manipulating collections. In this talk, I'll look at pipeline-oriented programming and how it relates to functional programming, th
2022年10月1日に開催された #postdev での発表です
In April this year, we released WebStorm 2024.1, our first major update for 2024. Thank you to everyone who is already using it and providing us with feedback. With April now behind us, we’d like to announce what we’ve got planned for the next release of WebStorm, which is scheduled for the end of July, with our usual disclaimer that these plans are subject to change. Also, as usual, we’ll be rele
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く