並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 31 件 / 31件

新着順 人気順

parseの検索結果1 - 31 件 / 31件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

parseに関するエントリは31件あります。 rubyRuby開発 などが関連タグです。 人気エントリには 『翻訳: Parse, don’t validate (バリデーションせずパースせよ)』などがあります。
  • 翻訳: Parse, don’t validate (バリデーションせずパースせよ)

    これまで、型駆動設計を実践することが何を意味するのか、簡潔でシンプルな説明を見つけるのに苦労してきました。誰かに「どうやってこのアプローチを思いついたのですか?」と尋ねられることが多いのですが、満足のいく答えを出せないことがよくあります。そのアイデアが突然のひらめきで浮かんだわけではなく、正しいアプローチを空から引っ張り出す必要がない、反復的な設計プロセスがあると分かってはいるのですが、そのプロセスを他の人にうまく伝えることができていませんでした。 しかし、およそ1ヶ月前、JSON を静的型付け言語で、そして動的型付け言語にパースしたときに経験した違いについてTwitter上で振り返っていた時、ついに私が探していたものを見つけました。そして、そのスローガンはたった3つの英単語で表せます。 Parse, don’t validate (バリデーションせずパースせよ) 型駆動設計のエッセンス

      翻訳: Parse, don’t validate (バリデーションせずパースせよ)
    • URL.parse を Chromium で Ship するまで | blog.jxck.io

      Intro Chrome 126 で筆者が実装した URL.parse が Ship された。 Chromium にコントリビュートしたことは何回かあったが、単体機能を Ship したのは初めてだった。 invalid URL の処理 new URL() によって、文字列の URL をパースすることができるようになって久しいが、この API は invalid な場合に例外を投げる。 例外処理をするよりも、先に URL としてパース可能かどうかを知るための URL.canParse() が提案され、先に実装が進んだ。 URL.canParse(str) // boolean しかし、これでは二回パースが必要になるため無駄が多い。 if (URL.canParse(str)) { // 1 回目のパース return new URL(str) // 2 回目のパース } そこで、失敗したら

        URL.parse を Chromium で Ship するまで | blog.jxck.io
      • Ruby Parser開発日誌 (6) - parse.yのMaintainabilityの話 - かねこにっき

        前回のあらすじ Ruby Parser開発日誌 (5) - Lrama LALR (1) parser generatorを実装した - かねこにっき Error Recoveryを実装するためにLrama LALR (1) parser generatorを実装しました。 Error Recoveryについては目処がたったので今回はparse.yのMaintainabilityをいかにして改善するか考えたいと思います。 parse.yの難しさ Rubyのparse.yの難しさについては聞く人によって異なる回答が返ってくるところですが、おおよそ以下のようにまとめることができると思います。 ファイルの行数が多い shift/reduce conflictやreduce/reduce conflict時に何が起きているか分かりにくい Bisonが原始的な記法しか提供していないので全ての規則を書

          Ruby Parser開発日誌 (6) - parse.yのMaintainabilityの話 - かねこにっき
        • Ruby Parser開発日誌 (10) - parse.y リファクタリングチャレンジ はじめました - かねこにっき

          前回のあらすじ Ruby Parser開発日誌 (9) - RubyKaigi 2023で発表してきた ~ 世はまさに”大パーサー時代” ~ - かねこにっき RubyKaigiにいってきました。スライドや登壇時の動画は以下のリンクから参照できます。ぜひご覧ください。 rubykaigi.org parse.y リファクタリングチャレンジ "parse.y"を読んでいる時にrb_obj_hideやrb_builtin_class_name、RB_OBJ_WRITTENといった関数やマクロが出てきて驚いたことのある人は少なくないでしょう。RubyのparserではGCやRubyのObjectなどRuby本体の機能が多く使われています。それらはRubyの長い歴史のなかで洗練されてきた機能である一方、一定の御作法に従って使う必要があります。たとえばRB_OBJ_WRITEやRB_OBJ_WRIT

            Ruby Parser開発日誌 (10) - parse.y リファクタリングチャレンジ はじめました - かねこにっき
          • Ruby Parser開発日誌 (24-1) - parse.yが生成するノードを変える ー もしくは大規模なコードの書き換えをどう進めるか - かねこにっき

            不思議なもので、ここ数年は12月になるとCRuby向けに大きめなパッチを書くことが続いています。 今年はparse.yが生成するノードを一気に置き換えるかなという気持ちになり、粛々と作業をしています。 parserの生成するノードを変更するということは、当然そのノードを扱うコンパイラ(ファイルでいうとcompile.c)も書き換える必要があります。 できればparserだけいじって生きていきたいんだけどなと思ったりもしますが、コンパイラはコンパイラでいじってみるといろいろ知らなかったことがあって面白いんですよ。 という話をとあるコミッターにしたところ、「その感動や楽しさ、その時に考えたことをちゃんと記事にして公開しないとダメですよ。パッチが完成してから記事をブラッシュアップして公開しようとか考えていると思うんですが、それだと新鮮さがなくなるのでダメです。その日その日の出来事をちゃんと記事に

              Ruby Parser開発日誌 (24-1) - parse.yが生成するノードを変える ー もしくは大規模なコードの書き換えをどう進めるか - かねこにっき
            • GitHub - Filimoa/open-parse: Improved file parsing for LLM’s

              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 - Filimoa/open-parse: Improved file parsing for LLM’s
              • GitHub - qnighy/bqpb: BigQuery UDF to parse protobuf messages

                CREATE TEMP FUNCTION parseProtobuf(input BYTES, messageType STRING, typedefs JSON) RETURNS JSON DETERMINISTIC LANGUAGE js AS r""" // bqpb v0.1.0 // (c) 2023, Masaki Hara. Licensed under the MIT License. "use strict";function t(t){ const n=(t+"=").indexOf("="),e=new Uint8Array(.75*n|0);for(let r=0;n>r;r++){ const n=t.charCodeAt(r),o=.75*r+.75|0,i=n-(96>n?64>n?48>n?47>n?-19:-16:-4:65:71)<<2+r%4*2 ;e

                  GitHub - qnighy/bqpb: BigQuery UDF to parse protobuf messages
                • Simply Parse in C

                  by Chloe Kudryavtsev People are terrified of parsers and parsing. To the point of using magical libraries with custom syntaxes to learn just to get started. In the hopes of completely shattering this preconception, I will write a parser for the “ini” file format in about 150 lines of pure and readable ISO C99. Furthermore, this parser will be something that's nice to use and has error correcting f

                    Simply Parse in C
                  • Implementing "++" operator, stepping into parse.y

                    RubyKaigi 2023 https://rubykaigi.org/2023/presentations/coe401_.html#may12 shioimm / ruby-plusplus https://github.com/shioimm/ruby-plusplus

                      Implementing "++" operator, stepping into parse.y
                    • Scala 3のmatch typeでcompile timeにString literalをparseして評価する - xuwei-k's blog

                      Scala 3のmatch typeで何かのparserでも書くか?と思ったけど、コンパイル時にリテラルのStringを、型情報というか分解した場合の値情報?を、保ったままの分解が単純には出来そうにはないというか… あるいは一旦CharのHListにしたいんだけど、何か方法あるのかな— Kenji Yoshida (@xuwei_k) February 28, 2021 https://t.co/sNupBRy3rV type Substringが増えてるからいける…?— Kenji Yoshida (@xuwei_k) 2022年2月28日 できました。 parserなどに慣れてないので、とりあえず以下のクソ雑仕様?だけど、tokenにするのとparseとevalをなんとなくちゃんと分けたぞ! みんなScala 3のmatch typeで、任意の言語などのparserや評価機を書こう!!

                        Scala 3のmatch typeでcompile timeにString literalをparseして評価する - xuwei-k's blog
                      • GitHub - formkit/tempo: 📆 Parse, format, manipulate, and internationalize dates and times in JavaScript and TypeScript.

                        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 - formkit/tempo: 📆 Parse, format, manipulate, and internationalize dates and times in JavaScript and TypeScript.
                        • XS::Parse::Infix::FromPerlで勝手にパイプライン演算子を追加する - ぱいぱいにっき

                          この記事はPerl Advent Calendar 202518日目の記事です。 いつの間にか中置演算子を勝手に入れられるようになってたっぽい 一見するとPerlは原始時代から姿を変えていないシーラカンスのような言語だと思われるかもしれませんが、実は最近もいろいろ機能追加が続いています。しかし機能追加は安易にされているのではなく、ちゃんと検討や実験を経て追加されています。 実験ってなんぞやって思うかもしれませんが、実は今のPerlはかなり柔軟にキーワードなどを組み込める仕様になってまして。キーワードを追加するためのモジュールXS::Parse::KeywordのAuthorであるPaul Evansさんいわく Perlの生きのこり - YAPC::Fukuoka 2025 - Speaker Deck とのことなんで、Syntax::Keyword::**のようなモジュールをモリモリ作って

                            XS::Parse::Infix::FromPerlで勝手にパイプライン演算子を追加する - ぱいぱいにっき
                          • Difyユーザー必見!JSON Parseツールで面倒な整形作業から解放 - Generative Agents Tech Blog

                            はじめまして!ジェネラティブエージェンツの清水れみおです! 今流行りのLLMアプリ開発プラットフォーム『Dify』についてユースケースや実装方法をみなさんに提供していきます! 今回はJSON Parse(整形)についてです! ※2024年8月時点の環境です。Dify Ver.0.6.16 Dify で HTTP ブロックをよく使いますよね? API からデータを取得して色々処理したい時に便利なんですが、返ってくる result の整形がちょっと面倒に感じることはありませんか? 特に複雑な JSON データだと、必要な情報を取り出すのにコードを結構書かないといけなかったり…。 そこで今回は、Dify の JSON Parse ツール を使って、JSON データの整形を劇的に楽にする方法をご紹介します! 例えば、画像のように GCP Vision API から返ってきた結果からテキストデータだ

                              Difyユーザー必見!JSON Parseツールで面倒な整形作業から解放 - Generative Agents Tech Blog
                            • Ruby: JSON.parseのあまり知られていない機能(翻訳)|TechRacho by BPS株式会社

                              概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A lesser known capability of Ruby's JSON.parse | Arkency Blog 原文公開日: 2021/10/23 原著者: Szymon Fiedler サイト: arkency 参考: 週刊Railsウォッチ20211110 RubyのJSON.parseが文字列キーのハッシュを返すことにうんざりしたことのある方、シンボルキーのハッシュが欲しい方、本記事は皆さんのためにあります。 こんなときは、Rails開発者ならおそらくご存知のHashのdeep_symbolize_keysメソッドが使えます。特に理想の世界では、データ構造が以下のようなハッシュになっています。 require 'json' json = <<~JSON { foo: { bar: "baz" } } JSON >

                                Ruby: JSON.parseのあまり知られていない機能(翻訳)|TechRacho by BPS株式会社
                              • GitHub - unjs/destr: 🚀 Faster, secure and convenient alternative for JSON.parse for arbitrary inputs

                                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 - unjs/destr: 🚀 Faster, secure and convenient alternative for JSON.parse for arbitrary inputs
                                • GitHub - Filimoa/open-parse: Improved file parsing for LLM’s

                                  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 - Filimoa/open-parse: Improved file parsing for LLM’s
                                  • Moment.jsは非推奨だが安易にdate-fnsに変えるな。date-fnsのisValidではparseを活用せよ

                                    問題点 面倒な日付処理をやってくれるMoment.jsですが、mutable設計が混乱を招くとして、今後は非推奨と発表しています。immutableに変更する作業も実施しないとのこと。 https://momentjs.com/guides/#/lib-concepts/mutability/ The moment object in Moment.js is mutable. This means that operations like add, subtract, or set change the original moment object. var a = moment('2016-01-01'); var b = a.add(1, 'week'); a.format(); "2016-01-08T00:00:00-06:00" // aも変更されてしまう。a.clone().

                                      Moment.jsは非推奨だが安易にdate-fnsに変えるな。date-fnsのisValidではparseを活用せよ
                                    • Unexplored Region - parse.y -

                                      RubyKaigi 2023 LT https://rubykaigi.org/2023/presentations/lt/

                                        Unexplored Region - parse.y -
                                      • 週刊Railsウォッチ: JSON.parseの機能、Opal 1.3、async gem、Linuxコマンドチートシートほか(20211110後編)|TechRacho by BPS株式会社

                                        週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗 Ruby 🔗 RubyのJSON.parseのあまり知られていない機能(Ruby Weeklyより) 元記事: A lesser known capa

                                          週刊Railsウォッチ: JSON.parseの機能、Opal 1.3、async gem、Linuxコマンドチートシートほか(20211110後編)|TechRacho by BPS株式会社
                                        • I made JSON.parse() 2x faster

                                          Part of my job is to make JavaScript things go fast. Speed is a feature, and when working in an interpreted language, squeezing every last bit of performance can be the difference between a great product and unusable garbage. Anyway, how cool would it be to make JavaScript itself go faster? I’m not a C++ programmer, but that didn’t stop me before, so I thought I’d give it a try anyway! The objecti

                                            I made JSON.parse() 2x faster
                                          • JavaScriptでCSVファイルを構文解析(Parse)する方法 - Qiita

                                            はいさい! ちゅらデータ ぬ オースティン やいびーん どー! んな、 がんじゅー やいびーみ? 概要 .csv拡張子のファイルをJavaScriptで解析し、ヘッダーと行を抽出する方法を紹介します。 背景 npmに公開しているCSV構文解析ソフトは他にあります。が、今回は使いません。 なぜこれを使わないか? 筆者は不要であれば、第三者が作ったパッケージを極力組み入れたくないからです。 なぜ第三者パッケージを避けたいか? 複数の理由があります。 セキュリティの脆弱性が懸念される。Leftpad事件のような事件は今後も起きる。 そのパッケージがいつ放棄されるかわからない。放棄された時に、自分の手で維持しなければいけなくなる。 仕事で携わっているプロジェクトの特徴で、第三者パッケージを入れると稟議を通すのに時間がかかり、にりー(だるい) 第三者パッケージの使い方を学ぶより、JavaScript

                                              JavaScriptでCSVファイルを構文解析(Parse)する方法 - Qiita
                                            • GitHub - adithya-s-k/omniparse: Ingest, parse, and optimize any data format ➡️ from documents to multimedia ➡️ for enhanced compatibility with GenAI frameworks

                                              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 - adithya-s-k/omniparse: Ingest, parse, and optimize any data format ➡️ from documents to multimedia ➡️ for enhanced compatibility with GenAI frameworks
                                              • GitHub - dominikg/tsconfck: A utility to find and parse tsconfig files without depending on typescript

                                                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 - dominikg/tsconfck: A utility to find and parse tsconfig files without depending on typescript
                                                • So you want to parse a PDF? - Eliot Jones

                                                  Suppose you have an appetite for tilting at windmills. Let's say you love pain. Well then why not write a PDF parser today? The ideal world: how the specification should work Conceptually parsing a PDF is fairly simple: First, locate the version header comment at the start of the file Next you need to locate the pointer to the cross-reference Then you can find all object offsets Finally you locate

                                                  • [JavaScript]Date.parseの挙動の違いをブラウザ毎に調べてみた - Qiita

                                                    概要 JavaScriptで開発をしている時に、2023年2月31日など暦上存在しない日付に対してDate.parseを実行する機会がありました。そうしたら、MDNの説明と異なる動きが起きたため、Date.parseの挙動はブラウザによって異なることを知りました。そこで今回はブラウザ毎のDate.parseの挙動の違いを調査しました。 結論 ブラウザのJSエンジン毎にDate.parseの挙動が一部異なります。 異なる点として、Chromeは2023年2月31日を2023年3月3日と繰り上げた日付を返却するのに対し、SafariとFirefoxはNaNを返却します。 動作が異なる原因 ブラウザ上でのJavaScriptの挙動はJSエンジンによって決定されます。 ChromeやSafariではそれぞれ違うJSエンジンが使われています。JSエンジンが違えば挙動も違うため、Date.parseの

                                                      [JavaScript]Date.parseの挙動の違いをブラウザ毎に調べてみた - Qiita
                                                    • VBAでparseしたJSONデータの要素を取得する方法

                                                      Web APIを使っていると、リクエストに対するレスポンスデータがJSONデータってことが一般的だ。JSONデータはキーと値のペア、すなわち連想配列になっているわけだが、これをparseすることで、キーを指定すれば値を取り出すことが可能となる。別にparseしなくても欲しい値を取り出することできるが、難儀して自分で取り出す処理を作ることになる。有難いことに、どなたかがparse用のライブラリを作成してGitHubに公開しているので、使わせてもらう。 VBA-JSON(JSONデータparse用ライブラリ)の導入まずはVBAでJSONデータをparseするためのライブラリをGitHubから落とす。以下サイトに移動する。 https://github.com/VBA-tools/VBA-JSON 図1の赤枠の「Code」→「Download ZIP」とクリックする。 ダウンロードされたファイル

                                                        VBAでparseしたJSONデータの要素を取得する方法
                                                      • GitHub - kgiszczak/shale: Shale is a Ruby object mapper and serializer for JSON, YAML, TOML, CSV and XML. It allows you to parse JSON, YAML, TOML, CSV and XML data and convert it into Ruby data structures, as well as serialize data structures into JSON, Y

                                                        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 - kgiszczak/shale: Shale is a Ruby object mapper and serializer for JSON, YAML, TOML, CSV and XML. It allows you to parse JSON, YAML, TOML, CSV and XML data and convert it into Ruby data structures, as well as serialize data structures into JSON, Y
                                                        • Goの日時のParseの分かりづらいところ: タイムゾーン名を含む場合

                                                          本記事の概要 Zennで読むことのできるGoの日時の扱いについては、@hsaki さんの記事が大変分かりやすいですよね。 こちらでも解説されてはいるのですが、混乱しやすいポイントだけに焦点を当てた記事も需要があるかな?と思い、私の頭の整理もかねて記事を書きます。 本記事で着目するのは、「Parseする日時文字列にタイムゾーン名だけ(例:JST)がある時、得られるtime.Time型の時間オフセットはどうなるか?」という点です。同じようにハマったことがある人は多いかな、と思うので、「あーあるある」ぐらいで読んでいただければと思います。 本記事の対象読者 Goの基本的な日時の扱い方は知っている 本記事の結論 タイムゾーン名だけでは時間オフセットは適切に設定されない。実行環境のタイムゾーンへの依存がある。 解決策は環境変数TZの設定かParseInLocationを使うことだが、実行環境に必要な

                                                            Goの日時のParseの分かりづらいところ: タイムゾーン名を含む場合
                                                          • CSVを簡単に扱えるPapa Parse

                                                            小ネタ。 業務で、jsonをCSVにパースしてダウンロードを行う処理が必要になった。(フロントエンドで) 今まで愚直に以下のような構成でコーディングしていた。 jsonをcsv用の文字列に編集(mapとかforEachを使って一個ずつ処理していく) 変換、拡張子、出力ファイル名などのconfigを作っておく BLOBに変換するnew Blob([csv], { type: 'text/csv;charset=utf-8;' }); 隠しaタグを用意してあげてブラウザからダウンロードさせる これを書くと結構なコード量になる。 そんな中会社の同僚にPapa Parseというライブラリを教えてもらった。 これがだいぶ優秀だった。 https://www.papaparse.com/ ドキュメントが詳しいのとDEMOが分かりやすいので、一度目を通せば何ができるかがすぐ分かる。 CSV to JSO

                                                              CSVを簡単に扱えるPapa Parse
                                                            • JSON.parse(JSON.stringify(x))に型をつけよう

                                                              はじめに WebバックエンドとクライアントをともにTypeScriptで書くとします。また、バックエンドではJSON.stringifyで値をシリアライズし、クライアントサイドではJSON.parse相当の処理でレスポンスボディを取得すると仮定しましょう[1]。このとき、JSON.stringifyの挙動がわかれば、実際にクライアントにどのような値が返ってきうるかを型で表現できるはずです。例えば、 となるので、{ a: undefined }の型をJSON.stringifyしてからJSON.parseした値の型は{}とするべきです。 本稿では、JSON.stringifyの仕様に沿ってそのような型を定義する方法について解説していきます。また、その際の制限についても最後に軽く触れます。 背景 本稿の概要を理解をするためには不要ですが、この節ではそれを試みることになった背景についてお話ししま

                                                                JSON.parse(JSON.stringify(x))に型をつけよう
                                                              • The problem with new URL(), and how URL.parse() fixes that | Kilian Valkhof

                                                                As someone building a browser I need to parse a lot of URLs. Partially to validate them, but also to normalize them or get specific parts out of the URL. The URL API in browsers lets you do that, but it’s ergonomics aren’t ideal. The problem with new URL() The “new” in front of new URL() indicates that it’s used as a constructor: calling it creates a new URL instance for you. When you give it a ma

                                                                  The problem with new URL(), and how URL.parse() fixes that | Kilian Valkhof
                                                                1

                                                                新着記事