Kroutonのブックマーク (112)

  • Rust: nom によるパーサー実装 - MOXBOX #Rust #nom

    概要 nom は Rust で実装された字句解析ライブラリ (Lexer, Lexical Analyzer, Tokenizer) およびパーサコンビネーターです。プログラムのソースコードや DSL (domain specific language) のようなテキストデータの字句解析を実装できるのに加えて、バイナリデータの解析も前提に設計されています (実際、nom の作者は nom を使って GIF 画像ファイルのデコーダーを実装しています)。この記事は nom 5 に基づいてテキストデータを解析するチュートリアルを目的としています。 Table of Contents 概要 パーサーフレームワーク モジュール概要 パターン認識 パーサーの条件分岐や繰り返し 括弧の中の数字を抽出する 手続き型スタイルで解析する delimited: 括弧に囲まれた部分を取得する alt: 対応する括

    Rust: nom によるパーサー実装 - MOXBOX #Rust #nom
    Krouton
    Krouton 2021/03/11
    良さそうなので読んでます
  • golangのバイナリをちょっとまじめに読んでみる - 冬のソフトウェア海岸

    golangのバイナリをちょっとまじめに読んだのでメモ。runtimeのコードと合わせて、バイナリがどういう構造になっているのか正面から読んだ。 環境 $ uname -a Linux ubuntu 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS Release: 14.04 Codename: trusty $ go version go version go1.6.2 linux/amd64 準備 バイナリを生成 "hello, wo

    golangのバイナリをちょっとまじめに読んでみる - 冬のソフトウェア海岸
    Krouton
    Krouton 2021/03/09
  • Caramel: massively scalable, type-safe applications

    caramel is a functional language for building type-safe, scalable, and maintainable applications Install Docs Discord Code

    Caramel: massively scalable, type-safe applications
    Krouton
    Krouton 2021/03/09
  • パーサコンビネータとPEGの違いについて - kmizuの日記

    ちょっとTwitterの某所で議論を見かけたので、この辺の用語についてまとめておきたい気分です。 まず、パーサコンビネータ(Parser Combinator)というのは、パーサをオブジェクトないし関数ととらえて、パーサを組み合わせて複雑なパーザを組み合わせる技法の総称ってのが私の認識です。最もなナイーヴなパーサコンビネータを作ると、自然にPEG的な挙動になりますが、GLL Combinators なんてのもありますし、HaskellのParsecにしても、try使わないとPEG的な動作をするわけではないので、実用的にも理論的(?)にも、パーサコンビネータかPEGかは独立です。 次に、PEGが何かというと、「文法の表記法」と捉えられることが多いものの、これは一面でしかなくて、Parsing Expression Language(PEL)であるような言語のための形式文法と捉える方がシンプル

    パーサコンビネータとPEGの違いについて - kmizuの日記
  • 初心者をググれカスと突き放すのは割と酷なのではないかという話 - koogawa blog

    こんにちは koogawa です。最近は Stack Overflow だけにとどまらず、エンジニア向けQAサイト teratail でも回答しております。teratail はスコアが上がっていくと色んなバッジをゲットできるので気に入っています。 teratail【テラテイル】|思考するエンジニアのためのQAプラットフォーム ところで今日は次の質問に回答しました。 teratail.com これ、めちゃくちゃ良い質問だと思うんです。何より自分がわからないことをちゃんと言語化できている。 すでに回答もいくつか付いていたので内容を見てみると。。 ぐぐる。これに尽きます 普通にググれば見つかるのに 何がわからんの? だいたいこんな感じでした。 うーん、皆さんなかなか手厳しい回答です。。これだと質問者の方も、ここで挫折してしまうのではないでしょうか。 回答してみた というわけで「自分ならどうググる

    初心者をググれカスと突き放すのは割と酷なのではないかという話 - koogawa blog
    Krouton
    Krouton 2021/02/16
  • Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記

    1. はじめに 最近わけあってNodeのセキュリティ調査をしているのですが、今年の5月に開催された North Sec 2018 でセキュリティ研究者の Olivier Arteau 氏による 「Prototype pollution attacks in NodeJS applications」という面白い発表を見つけました。 この発表の論文や発表資料、デモ動画などもgithubで公開されていますし、ちょうどタイミングよくセッション動画も最近公開されました。 github.com Olivier Arteau -- Prototype pollution attacks in NodeJS applications この発表で解説されているのは、悪意のある攻撃者が、JavaScript言語固有のプロトタイプチェーンの挙動を利用して、Webサーバを攻撃する方法です。 発表者は、npmからダ

    Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記
  • ブラウザにおけるメモリリークを解決するために読んでおけると良い資料 - mizdra's blog

    最近趣味仕事の Web アプリケーションでメモリリークに遭遇して、頑張ってメモリリークの原因を突き止めて修正する、ということがあった。その過程でメモリリークについて色々調べて知見が溜まったので、学習資料の紹介という形でアウトプットしてみる *1。 前置き 紹介する記事がかなり偏っていることに注意 冒頭で触れたメモリリークを解決するために読んだ記事をまとめただけなので、内容にそれなりの偏りがある 例えば id:mizdra が遭遇したメモリリークは全てブラウザ上で発生していたものだったので、これから紹介する内容も主にブラウザにおけるメモリリークに焦点を当てたものになる GC がどうメモリをどう解放しているか、何故メモリリークが発生するのかは全てカット 調べれば色々な記事が出てくるので、必要に応じて読んでください 基的な知識を抑える まずメモリリークとメモリ撹拌の違いを学ぼう どちらも同じ

    ブラウザにおけるメモリリークを解決するために読んでおけると良い資料 - mizdra's blog
  • Haskell に IDE はないのか?──独断と偏見による Haskell の IDE 十年史

    答え:Haskell に IDE はずっとある、今ならHLS使え(内容を読む気がないようという人向けの答え) はじめに 2021年2月現在、Haskell の IDE 環境は Haskell Language Server (HLS) の登場により劇的な進化を遂げていますが、日の Haskell コミュニティではその前身の Haskell IDE Engine (HIE) の情報がまだ氾濫しており、十分な周知に至っていない現状があります。 稿では、こうした現状を打破すべく、2021 年 2 月現在の Haskell の IDE 環境を取り巻く現状と、そこに至るまでの歴史を完全に独断と偏見で紹介します。より多くの人に HLS の存在を周知し、皆さんの Haskell Life の一助となれば幸いです。また、HLS の前身である HIE は必ずしも快適に動作するとは言い難かったため、HLS

    Haskell に IDE はないのか?──独断と偏見による Haskell の IDE 十年史
    Krouton
    Krouton 2021/02/08
  • 凛として時雨 Perfake Perfect Tour in KT Zepp Yokohama 感想 - deepblackdeep’s blog

    2021年1月19日、会場がある神奈川県を含めた11都府県で緊急事態宣言の発令中、 2019年12月28日のMUCC Presents『Trigger In The Box』2019.12.28 MUCC Presents『Trigger In The Box』@国立代々木競技場第一体育館 – ROCKの総合情報サイトVif 以来、約13ヶ月振りに凛として時雨の有観客ライブが行われた。 昨年末ビルボードライブ公演を観に行く機会はあったが、コロナ禍になってライブハウスに行くのは初めて。 横浜駅からみなとみらい方面へ歩くと、真新しいビルが並ぶ一角に突如ブルーの柵が現れた。冷たい風が吹き荒れるなかソーシャルディスタンスを促す床の目印を次々と貼りつけるなど設営が進められ、物販ではビニールカーテン越しにフェイスガードマスク手袋を着けたスタッフが和やかに応対していた。 約一年間、ミュージシャンやライブ

    凛として時雨 Perfake Perfect Tour in KT Zepp Yokohama 感想 - deepblackdeep’s blog
    Krouton
    Krouton 2021/01/28
    Sitai miss meやったのめっちゃいいな〜〜〜………
  • 【持ち主の表し方】所有格の'sとofの使い分け【英語習得ブログ】- グローバルスクエア英語教室

    所有を表すのに所有格の’sを使うのか、それともof を使うのか迷うことがありますね。 その判断の一つの基準として無生物の名詞には原則的に所有格'sを使うことができないという決まりがありますが、例外があるため混乱する人も多いように見受けられます。 今回はこの原則と例外をクリアに整理しながら所有の表現を学びます。 無生物の所有表現 無生物には原則ofを使います。 その道の終わり ⭕ the end of the street ❌ the street’s end その試合のビデオ ⭕ the video of the game ❌ the game’s video その家の壁 ⭕ the wall of the house ❌ the house’s wall 無生物の所有表現(例外) 無生物であっても例外的に国、都市、地域などは所有格'sを使うことができます。 日の気候 ⭕ Japan’s

    【持ち主の表し方】所有格の'sとofの使い分け【英語習得ブログ】- グローバルスクエア英語教室
    Krouton
    Krouton 2021/01/16
  • 大人の不満の処理方法 - Konifar's ZATSU

    大人になるにつれて、感情的に不快な気持ちをぶつける人が少なくなる。直接的な音のかわりに、建前が増える。余裕がない人は、それが嫌味や苛立ちといった形で表面に漏れ出てしまったりもする。皆が見えるSNSへのボヤキとかも同じ。正直にいってめんどくさい。何よりも消耗する話だ。 例えば、仕事でなんとなく疎外感を感じてしまったり、方針に納得できなかったりした時、不満はあるけど何も言わないあるいは「まあいいですけど」といった言葉で不満な気持ちだけをそれとなく表明するみたいな。公私関係なくよくある話だと思う。 モヤモヤとした気持ちを消化する方法が見つからない時はとても辛いものだ。大人になると「てめえムカつくんだよ」みたいな感じで適当にふわっと感情をぶつけて消化できないケースが増えるのかもしれない。 自分の感情を理性的かつ正確に言葉で伝えられる能力があればいいというケースもある。自分の気持ちを深堀りして、何

    大人の不満の処理方法 - Konifar's ZATSU
    Krouton
    Krouton 2021/01/07
  • 伝えたいことがあるなら汚い言葉は控えた方がいい - Konifar's WIP

    最近Twitter眺めたりブログ読んだりしていると、 「伝えたいことがある時は汚い言葉は使わない方がいいんじゃないかなぁ」と感じることが多いです。 自分もブログを書くようになったので、自戒を込めて考えをまとめておこうと思います。 汚い言葉のエネルギーすごい 汚い言葉や過激な言葉の与える印象ってすごく強いです。 政治の話題だと特にありがちなんですが、例えば「老害は引退しろ」とか「馬鹿な政治家に任せてられない」とかよく目にするんですけど、すごく目立ちますよね。主張や印象がどうかは置いといて、とりあえず目立つ。 そう考えると、汚い言葉のエネルギーはやはりすごいなぁと思うわけです。 汚い言葉を使うと伝えたいことがブレる エネルギーはすごいんですけど、どうも主張が伝わってこないなぁと感じてしまうことが多いです。主張したいことに意識を向けてみるとそんなに悪いことは言っていないのに、言葉の汚さの方に気が

    伝えたいことがあるなら汚い言葉は控えた方がいい - Konifar's WIP
    Krouton
    Krouton 2021/01/07
  • どうかプログラミングに向いてないと思わないでほしい。そしてプログラミングがキャリア化した功罪の話 - Make組ブログ

    プログラミングに興味がある人たち、どうか「自分はプログラミングに向いてない」と思わないでほしいです。 プログラミングスクール通ってるかどうかとかどうでもよくて、この年末年始にコード全く書いてない人はエンジニア向いてないんじゃないですかね、それぐらい好奇心が必要な職業だとおもうけど— キュン / 今村雅幸 / ZOZO CTO (@kyuns) 2021年1月3日 たしかに「プログラミングスクールに通ってるから」良いスキルがあるわけではないし、スクールよりも好奇心のほうが重要なのは僕も同意です。 というか基的な考え方はたぶんこのツイートをしてる方と、僕は同じだと思います。僕もうっかりこういうことを言うこともあります。 実際、当に大好きで休日もプログラミングしてしまう人のほうが、スキル面で伸びが早いのも当然でしょう。 でも「休日にもプログラミングしてしまう」ほど好奇心を持って好きになるにも

    どうかプログラミングに向いてないと思わないでほしい。そしてプログラミングがキャリア化した功罪の話 - Make組ブログ
    Krouton
    Krouton 2021/01/06
  • 一緒に学ぼう,Rustで作る単相型システム - DrumatoのBlog

    こちらに移行しました. www.drumato.com

    一緒に学ぼう,Rustで作る単相型システム - DrumatoのBlog
  • https://www.youtube.com/watch?v=TZg3TbuyvPY

    Krouton
    Krouton 2020/12/17
    明日これ流し見しようかな
  • Rustのコンパイルエラーを爆発させる技術 - Qiita

    こんにちは。コンパイルが一発で成功しないminaminaoです。 突然ですが、皆さんはコンパイルエラー爆発をご存知でしょうか? コンパイラは、私達プログラマーにコードの間違いを指摘し修正を促してくれる良き相棒です。 しかし、特定の条件下でとんでもなく大量のエラーメッセージを出力することがあります。 そのような、コードをコンパイルしたらエラーがべらぼうに出力されてしまう現象のことを、コンパイルエラー爆発と呼ぶことがあります。 コンパイルエラー爆発の遊び 昔から一部プログラマーの間で、コンパイルエラー爆発を使った遊びが行われてきました。 2014年には、C++のコンパイルエラー爆発コンテスト、なんてのも開かれています。 The Grand C++ Error Explosion Competition 2014 このコンテストは、短いサイズで大量のエラーメッセージを出すソースコードを作ることを

    Rustのコンパイルエラーを爆発させる技術 - Qiita
    Krouton
    Krouton 2020/12/17
    指数コンパイルエラー爆発めっちゃいい
  • ブラウザのしくみ: 最新ウェブブラウザの内部構造 - HTML5 Rocks

    How browsers work Stay organized with collections Save and categorize content based on your preferences. Preface This comprehensive primer on the internal operations of WebKit and Gecko is the result of much research done by Israeli developer Tali Garsiel. Over a few years, she reviewed all the published data about browser internals and spent a lot of time reading web browser source code. She wrot

    ブラウザのしくみ: 最新ウェブブラウザの内部構造 - HTML5 Rocks
  • 2で割ることと3で割ること - Qiita

    この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

    2で割ることと3で割ること - Qiita
    Krouton
    Krouton 2020/12/09
  • 新しいフレームワークを学ぶならTodoMVCではなくRealWorldを参考にしよう - Runner in the High

    よく新しいフレームワークを学ぶにはTodoアプリを作ってみるのがよい、と言われる。実際、Todoアプリを様々なフレームワークで作ってみたサンプルをまとめたサイトもあったりする。 ところが、実際に業務で作るようなアプリケーションはTodoアプリの範疇を超えている。とくにSPAにもなると、画面遷移やWebAPI連携、大規模な状態管理などなどの条件が増えるので、Todoアプリを作っているときには考慮できていなかった大変さが出てくる。 そこで参考になるのが RealWorld example apps と呼ばれるプロジェクト 端的に言うと、TodoMVCの大規模版。 規定のスペックに沿って、様々なウェブフレームワークで作られたアプリケーションのリポジトリがリストアップされている。 スペックについて "Conduit" is a social blogging site (i.e. a Medium

    新しいフレームワークを学ぶならTodoMVCではなくRealWorldを参考にしよう - Runner in the High
    Krouton
    Krouton 2020/11/27
  • アーケードゲームを支えるデバッグ術 - SEGA TECH Blog

    ブログ読者のみなさん、はじめまして。 株式会社セガのベテランプログラマー阿部です。 このエントリーではデバッグ手法のあれこれについての体験談と、デバッグをテーマに一昨年に実施されたプログラマー向け新人研修の概要をお伝えしたいと思います。 EXE ファイルのデバッグ イーサネット絡みのデバッグ 周辺機器絡みのデバッグ デバッグスキルブートキャンプ 黒子に徹する、裏方系エンジニア EXE ファイルのデバッグ 同僚が作った EXE ファイルが手元にあり、あなたはこれを Windows で起動しようとしています。 起動してみたところ何も反応がなく、しかもそれは想定外のことでした。 「何コレ、動かないんだけど」とあなたが同僚に文句を伝えると、同僚はあなたに返します。 「こっちでは動いてるよ」 困りましたね。 あなたの手元には EXE のソースコードも無ければ、Visual Studio もありません

    アーケードゲームを支えるデバッグ術 - SEGA TECH Blog
    Krouton
    Krouton 2020/11/25