並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 224件

新着順 人気順

document createelement javascriptの検索結果1 - 40 件 / 224件

  • Vite入門 - HTMLからTypeScript・React・Tailwind CSSまで - ICS MEDIA

    Viteヴィート(フランス語で「速い」の意味)はフロントエンドのビルドツールです。 シンプルなウェブページの作成からReactやVue.jsなどのフレームワークを使ったアプリケーションの開発まで、さまざまな環境で利用できる汎用的で強力なツールです。2026年にリリースされたバージョン8では、パフォーマンスや開発体験がさらに向上しています。 ViteはNext.js・Nuxt・Astroのようなフレームワーク(メタフレームワーク)を使わずに静的サイトやReact・Vue.js等のSPAを開発するために使われます。位置付けとしてはwebpackのようなバンドラーと呼ばれるものに近い存在ですが、それだけではありません。 この記事では、Viteを導入して静的ウェブサイトからTypeScript・React・Tailwind CSS等を組み合わせたアプリケーションまで、快適な開発環境を手に入れる方法

      Vite入門 - HTMLからTypeScript・React・Tailwind CSSまで - ICS MEDIA
    • SPA認証トークンはlocalStorageでもCookieでもない、Auth0方式はいいねというお話 - @mizumotokのブログ

      SPA認証トークンをどこに保存するかは論争が絶えません。localStorageやCookieがよく使われますが、Auth0は違う方法を採用しています。この記事では、Auth0のトークン管理の方式を理解でき、トークン管理上のセキュリティへの理解を深めることができます。 SPAの認証トークンをどこに保存するか ブラウザでトークンを保存できる場所 保存場所の比較 メリット・デメリット Auth0のアプローチ トークンはインメモリに保存 OpenID Connect準拠とトークン取得のUI/UXの悪化回避を両立 Auth0のjsライブラリ ログイン アクセストークンの(再)取得 図解 ログイン アクセストークンの(再)取得 自サービス内の認証だけのもっと簡易な構成 ログイン IDトークン取得 まとめ SPAの認証トークンをどこに保存するか React やVueで認証付きSPA(Single Pa

        SPA認証トークンはlocalStorageでもCookieでもない、Auth0方式はいいねというお話 - @mizumotokのブログ
      • Web3開発者をねらったハッキング手口の全て(わたしは全て抜かれました...)

        はじめに 本当に悔しいし許せないし、エンジニアとして不甲斐ないです。2025年2月26日深夜にハッキングにあいました。どのように相手と繋がり、どのような手口でハッカーに資産を抜かれたか、コードベースで全てお伝えします。今後同じ被害に遭う方が少しでも減ることがあればこんな嬉しいことはないです。 コード解説、さらに対策案も書いていきます。もし他に良い対策案などあればコメントでご教示ください。 ハッカーとのやりとりの流れ ハッカーとは Linkedin でブロックチェーンを使ったプロジェクトを手伝ってくれないかという連絡がりそこからやりとりが始まりました。そして移行の大まかな流れは下記のような感じです。 Linkedinでプロジェクトを手伝ってほしいと言う内容でDMがくる Githubリポを見て実装できそうか確認してほしいと言われる 自分のGithubアカウントを共有してプライベートリポジトリに

          Web3開発者をねらったハッキング手口の全て(わたしは全て抜かれました...)
        • 絶対に画像をダウンロード&スクレイピングさせないWebページを本気で作ってみた - blog.potproject.net

          巷で話題になっているこの話題、画像をスクレイピングやダウンロードされたくないということで騒がれています。その話に関しては色々な意見があると思ってますがここでは置いておくとして・・・ 技術的にやるとしたら実際どれくらい対策できるの?ということが気になったので、自分の知識で出来る限り対策したものを作ってみることにしました。 最初に 賢い方はわかると思いますが、タイトルは釣りです。 絶対に画像をダウンロード&スクレイピングさせないページは存在しません。ソフトウェアにおいて絶対と言う言葉はまず存在しないのです。ブラウザで表示している以上、仕組みさえわかれば技術的には可能です。 そのため、 「元画像のダウンロードとスクレイピングを非常に困難にしたWebページを本気で作ってみた」 が実際のタイトルかなとなります。 とはいえ、この仕組みであれば大多数の人は機械的にスクレイピングすることを諦めるレベルの作

            絶対に画像をダウンロード&スクレイピングさせないWebページを本気で作ってみた - blog.potproject.net
          • ソフトウェアアーキテクチャ入門

            はじめに 今回の記事では、ソフトウェアアーキテクチャの入門的な内容を解説する。 対象とする読者 ソフトウェアアーキテクチャを勉強するエンジニア アーキテクチャに関して全くわからない初心者 タイトルで気になったひと ソフトウェアアーキテクチャとは? ソフトウェアのアーキテクチャは、システムの主要なコンポーネント、それらの関係(構造)、およびそれらがどのように相互作用するかを記述する。ソフトウェアのアーキテクチャとデザインには、品質属性、人間のダイナミクス、デザイン、IT環境など、多種多様な寄与要因が含まれる。アーキテクチャは、品質、保守性、パフォーマンス等のような全体的な成功に影響を与える重要な決定を含む。 ソフトウェアアーキテクチャの主な目的は、アプリケーションの構造に影響を与える要件を特定することだ。良好なアーキテクチャは、技術的な解決策を構築する際のビジネスリスクを削減し、ビジネス要件

              ソフトウェアアーキテクチャ入門
            • 【PoC編】XSSへの耐性においてブラウザのメモリ空間方式はLocal Storage方式より安全か? - GMO Flatt Security Blog

              はじめに こんにちは。 セキュリティエンジニアの@okazu-dm です。 この記事は、Auth0のアクセストークンの保存方法について解説した前回の記事の補足となる記事です。前回の記事の要旨をざっくりまとめると以下のようなものでした。 Auth0はデフォルトではアクセストークンをブラウザのメモリ空間上にのみ保存するin-memory方式であり、XSSへの耐性のなさ等の理由でlocalStorageで保存することを推奨していない しかし、XSSでアクセストークンを奪取できるのはin-memory方式でも同じのはず(検証は行いませんでした)。localStorage方式を過度に忌避する必要はないのではないか なお、Flatt Securityの提供するセキュリティ診断はAuth0に限らずFirebase AuthenticationやAmazon CognitoなどのIDaaSのセキュアな利用

                【PoC編】XSSへの耐性においてブラウザのメモリ空間方式はLocal Storage方式より安全か? - GMO Flatt Security Blog
              • CSS Modulesの歴史、現在、これから - Hatena Developer Blog

                マンガメディア開発チームの id:mizdra です。半年ほど前から「フロントエンドエキスパート」という肩書きをもらい、社内でフロントエンドの啓蒙活動をしています。具体的にどんな活動をしているかについては、社内のポッドキャストで少し話しましたので、興味があれば聞いてみてください。 developer.hatenastaff.com 最近、私はReactを採用する社内プロダクトでのCSSの書き方を検討していました。最終的にそのプロダクトでは、CSS Modulesを採用するに至りました。しかしその過程で、CSS Modulesのメンテナンス体制に対して懸念があり、将来的な存続を危ぶむ声が界隈にあることを知りました。 ただし、実際にメンテナンス体制について調べてみたところ、万全ではないものの引き続きメンテナンスがされていて、使用もできることが分かりました。そこで、今回はCSS Modulesに

                  CSS Modulesの歴史、現在、これから - Hatena Developer Blog
                • 図で分かるReact18のしくみ

                  これは何? この記事はReact18がどのように動いているのかをまとめた記事です。なるべくコードの記載はせず、図を使用して読みやすさを重視しています。また、これからReactの内部のコードを読む予定の方のために、各セクションの終わりにアコーディオン形式でGitHubのリンクを貼っています。 ※ この記事はnote株式会社 Advent Calendar 2022 の17日目の記事です。 対象読者 Reactの内部コードを読む気は無いが、裏で何をしているのか把握しておきたい方 これからReactの内部コードを読もうと思っている方 暇な方 Fiberについて まず最初に、Reactのドキュメントを漁っていると度々出現する「Fiber」についてお伝えします。 そもそもFiberとは何か 一部例外はありますが、1個のFiberは1個のコンポーネント(<MyComponent>や<div>など)管理

                    図で分かるReact18のしくみ
                  • CSS-in-JSのパラダイムシフト

                    2023年現在、Reactでは多種多様なスタイリング手法が用意されています。 代表どころで言うとCSS ModulesやTailwind、CSS-in-JSなどが有名です。筆者の個人的な好みでは、これらの選択肢の中でもCSS-in-JSを用いたスタイルが特に好きですが、CSS-in-JSライブラリ群の中にはランタイムでスタイリング処理がなされる為にパフォーマンス上の問題を抱えているとの指摘を受けているものもあり、最近は人気が下火になっているように感じています。 そこで本記事では、CSS-in-JSが生まれた背景から遡り、各ライブラリの内部実装を確認しながらそれぞれのライブラリの仕組み・メリット・問題点を明らかにし、CSS-in-JSのパラダイムシフトを追ってみたいと思います。 CSS-in-JSの登場 CSS-in-JSという言葉が最初に公の場で登場したのは、2014年にFacebookの

                      CSS-in-JSのパラダイムシフト
                    • カルーセルUIを実現するJSライブラリまとめ - 導入手間や機能の比較紹介 - ICS MEDIA

                      いずれもMITライセンスで公開されていますので、個人・商用問わず利用可能です。 Slick.js Slickスリック.jsは簡潔なコードで実装できるのが特徴のモバイルフレンドリーなカルーセルライブラリです。機能は少なめですが、ナビゲーションや表示するスライド数を変更するといった基本的な機能は備わっています。jQueryプラグインのため実装にはjQueryを読み込む必要があります。タッチ・スワイプ操作にも対応しています。ReactやVue向けのモジュール、TypeScriptのサポートは公式で提供されていませんがOSSで存在します。 このJSライブラリの基本的な実装と、アニメーションをフェードに変えた作例を用意しました。 基本の作例 サンプルを別ウインドウで開く コードを確認する <div class="slick carousel"> <div>1</div> <div>2</div> <

                        カルーセルUIを実現するJSライブラリまとめ - 導入手間や機能の比較紹介 - ICS MEDIA
                      • インクリメンタルに新しい技術を取り入れる方法。TypeScriptへの移行を例にしたプロセス

                        📝 require(moduleName) は同期処理なのに対して、import(moduleName)は非同期処理となります。 📝 tsconfig.jsonでesModuleInteropがtrueでないとdeafult importの意味合いは異なります。 この表はCommonJS ModulesとECMAScript Modulesで機能的に1対1で応するという意味ではありませんが、 大まかにはこの対応表にそってECMAScript Modulesの構文へと変換ができます。 エディターを使い手動で変換したり、次のようなツールを使ってある程度機械的な変換も可能です。 cjstoesm commonjs-to-es-module-codemod このモジュールの変換で重要なことは、できるだけCommonJS ModulesとECMAScript Modulesを混ぜないことです。

                          インクリメンタルに新しい技術を取り入れる方法。TypeScriptへの移行を例にしたプロセス
                        • 階層メニューやトーストUIが簡単に作れる新技術! JavaScriptで利用するポップオーバーAPI - ICS MEDIA

                          階層メニューやトーストUIが簡単に作れる新技術! JavaScriptで利用するポップオーバーAPI ポップオーバーとはコンテンツの1番上に重ねて表示するUIで、ユーザーにアクションを促したり、補足の情報などを伝えるために画面に表示します。ポップオーバーAPIのMDNのドキュメントではオーバーレイ、ポップアップ、ポップオーバー、ダイアログなどを総称して「ポップオーバー」と呼んでいます。 ウェブサイトでよく見かけるポップオーバーですが、実装するには意外と調整や考慮の多いUIです。たとえば、画面の1番上に重ねるためにはz-indexで他の要素との重なり順を調整する必要があります。Escキーを押した時や要素外をクリックした時にポップオーバーを閉じるには、JavaScriptで制御を追加します。ポップオーバーが複数あった場合どうでしょう? 1つだけ表示するのか、すべて表示したままにするのか? その

                            階層メニューやトーストUIが簡単に作れる新技術! JavaScriptで利用するポップオーバーAPI - ICS MEDIA
                          • AI エージェントがインタラクティブな UI を返すことを可能にする MCP UI

                            TypeScript SDK を使用して MCP UI を実装する MCP UI では TypeScript と Ruby の SDK が提供されています。ここでは TypeScript SDK を使用します。サーバー向けの SDK とブラウザ向けの SDK がそれぞれ提供されています。 @mcp-ui/server - npm: MCP の Resource を実装するためのヘルパー関数を提供する @mcp-ui/client - npm: インタラクティブな UI コンポーネントを提供する. React コンポーネントと Web コンポーネントの両方が提供される。 まずはサーバー側の実装から始めましょう。MCP サーバーの実装として Cloudflare が提供する agents パッケージを使用します。agents パッケージは Streamable HTTP を使用したリモート M

                              AI エージェントがインタラクティブな UI を返すことを可能にする MCP UI
                            • ただ15行のシェルスクリプトで個人ナレッジマネジメントツールを作った話

                              はじめに 自分が読んだ本や記事などを読む時に書いたノートを体系的に管理したいですよね。 現在優秀なナレッジマネジメントツールはありふれています。企業向けだと Confluence DocBase Qiita Team などがあります。個人向けは Notion HackMD Boost Note のようなシンプルで使いやすいツールがあります。マインドマップツールをさらに含めると数え切れません。 筆者自身はミニマリストです。 コードのようにGithubで自分のノートを管理したい Webからマインドマップ形式になっているノートを確認したい サブスクではなく、無料で使いたい なので、個人ナレッジマネジメントツールを自作したいという発想に至りました。 結果としては下記の15行シェルスクリプト、GitHub ActionsとMarkdownマインドマップ変換ツールmarkmapで作りました。 項目をク

                                ただ15行のシェルスクリプトで個人ナレッジマネジメントツールを作った話
                              • 【脱jQuery】jQuery <=> vanillaJS 書き換え集

                                jQuery <=> JavaScript全書き換え一覧ではありません jQueryで書いていたコードをvanilla(素のJavaScript)に書き換えたいけど書き方がわからなくて調べ方もピンとこない状態の自分がこれを見ることができたらきっと嬉しいと思ったのでここに供養します。 脳の記憶容量が8バイトくらいしかないので今でもシンプルにJavaScriptの書き方をページ内検索して使ったりしています。 /*----------------------------------- セレクター ------------------------------------*/ //html $("html") document.documentElement; //body $("body") document.body; //id $("#hoge"); document.getElementBy

                                  【脱jQuery】jQuery <=> vanillaJS 書き換え集
                                • 【忙しい人のための】Next.js公式チュートリアルを完走してきたので記事1本で振り返る【ギュッと凝縮】 | DevelopersIO

                                  本記事はNext.jsのチュートリアルが大きく変わったためリンク切れを起こしています。 技術メモのため記事としては残しますが、リンク切れにご留意ください。 また機会があれば新チュートリアルで記事を書こうと思いますm(_ _)m こんちには。 データアナリティクス事業本部 インテグレーション部 機械学習チームの中村です。 今回は以下のNext.jsのチュートリアルをほぼ一通り(SEOのところ以外)実施しましたので、ポイントを記事化しました。 https://nextjs.org/learn/foundations/about-nextjs" チュートリアル自体は、以下のような内容が分かるものとなっています。 CRA(create-react-app)のみ使用しているとイメージしづらい、素のHTML + JavaScriptとReactの関係のイメージが分かる Reactがフレームワークではな

                                    【忙しい人のための】Next.js公式チュートリアルを完走してきたので記事1本で振り返る【ギュッと凝縮】 | DevelopersIO
                                  • 無料プロキシツール「mitmproxy」を使ってみよう - セットアップ方法とセキュリティエンジニアおすすめの設定 - GMO Flatt Security Blog

                                    ※本記事は筆者styprが英語で執筆した記事を株式会社Flatt Security社内で日本語に翻訳したものになります。 はじめに こんにちは、Flatt Securityのstypr(@stereotype32)です。今回はセキュリティ診断などで使われるローカルプロキシツールについて紹介します。 ちなみに、開発者の皆さんが脆弱性の検証を行うにはこれらのツールだけでなくセキュリティ知識が必要ですが、そのためにはFlatt Securityが提供する「KENRO」がおすすめです。Web アプリケーションの代表的な脆弱性10個に関して、脆弱なソースコードを修正するなどのハンズオンを通して学ぶことができます。 ぜひバナーより無料・無期限のトライアルをご利用ください。 さて、セキュリティエンジニアの多くは、WebやモバイルアプリケーションのHTTP/HTTPSトラフィックを確認するするためにBur

                                      無料プロキシツール「mitmproxy」を使ってみよう - セットアップ方法とセキュリティエンジニアおすすめの設定 - GMO Flatt Security Blog
                                    • NFT, Web3完全に理解した になるためのチュートリアル|DJ RIO

                                      こんにちは、「なりたい自分で、生きていく」ためのメタバース、 REALITYを運営しているDJ RIOです。 ここ数年、メタバースといえばKawaiiアバターになってキャッキャウフフするものだと信じてたのですが、どうもさいきんメタバースと言うと「NFT」とか「Web3」とか耳慣れない単語が飛び交うようになってきました。 みなさんはこれらを理解していますか? ぼくは何もわかりません>< わからん、、なんも、、、なので今回は、暗号資産・NFT・Web3、その基盤となるブロックチェーンそのものを自分で作ったり独自コインを開発したりすることで、NFTやWeb3を完全に理解してしまおうと思います。 今回やること自分専用のEthererumネットワークを構築し運用する 自分でコインを発行し、送金する 自分専用のNFTを開発・発行する 発行したNFTを表示させてみる これらを実践することで、NFTやWe

                                        NFT, Web3完全に理解した になるためのチュートリアル|DJ RIO
                                      • Next.js アプリケーションの共通コンポーネント開発 - クックパッド開発者ブログ

                                        こんにちは。レシピサービス開発部のkaorun343です。クックパッドではスマートフォン向けページにおける開発者体験向上のために、レシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話にて紹介したとおり、Next.jsとGraphQLを用いたモダンな環境へと移行を進めています。例えばモバイル端末からのアクセスでURLがトップページの / であれば Rails、レシピ詳細ページの /recipe/:id であれば Next.js アプリにルーティングされるようになっています。現在ではレシピ詳細ページだけではなく検索結果ページやつくれぽ詳細ページ、MYフォルダページなどもNext.jsアプリケーションに置き換わっています。今回はその移行により生じた課題と取り組み方、それから併せて実施したモノレポ環境整備について紹介します。 共通コンポーネントの導入背

                                          Next.js アプリケーションの共通コンポーネント開発 - クックパッド開発者ブログ
                                        • 4KBのJavaScriptだけで動く可愛いアクションゲームを作ったのでソースと解説 - Qiita

                                          年イチでちょっとしたブラウザゲームを作ってます(→ 去年)。今年はそこそこ遊べる可愛いアクションゲームを4KB以内で作ってみました。 🎉宣伝させてください! 🐱今年も無事、猫の日ゲームができました!https://t.co/XnDD8AXx4k 今年は可愛さはそのまま、限界までコードを削って4KBにおさめました。PCの方はソース表示して見てみてね pic.twitter.com/j0QqH6iSSn — ゆき (@yuneco) February 20, 2022 作ったもの:ブラウザで動く4KBのゆるかわアクション URL: https://yuneco.github.io/mezashi-4kb/ ソース: https://github.com/yuneco/mezashi-4kb つまりどういう...コト? index.htmlという名前のファイルを作って下のコードをコピペする

                                            4KBのJavaScriptだけで動く可愛いアクションゲームを作ったのでソースと解説 - Qiita
                                          • SCRIPT 要素の変遷から触れる Web の進化 - Repro Tech Blog

                                            はじめに こんにちは。Repro で Booster の開発をしている杉浦と申します。 最近は JavaScript の盛り上がりが凄いですね。今ではブラウザ内にとどまらず、サーバサイドでも活用される様になりました。 これには、言語仕様が整理されたり機能が強化されたり、非常に大きな発展があったという点が大きいです。 実は、言語としての JavaScript だけではなく、最近 HTML との境界インタフェースとしての JavaScript の仕様も最近かなり明確化されてきています。 自分も HTML5 の最初のあたりまでは把握していたのですが、Booster の開発に携わる中で久しぶりに確認したところ、随分と仕様が進化し複雑になっていました。 今回はそんな HTML 規格の変化部分の紹介と、過去からの HTML と JavaScript の流れを振り返る簡単なまとめです。 HTML 仕様と

                                              SCRIPT 要素の変遷から触れる Web の進化 - Repro Tech Blog
                                            • フロントエンドの main() を合成関数として副作用を集約する

                                              これは未実装のアイデアを含む記事です。(後述する lint rule が未実装です) 要は EffectSystem を作ろうとしました。 https://www.eff-lang.org/ void に意味を込めたい こういうフロントエンドのコードについて考えてみましょう。 function mount(): void { const div = document.createElement('div'); div.textContent = "hello"; document.body.append(div); } function print(): void { console.log("hello"); } function maybeError(): void { // 低確率で例外が起こる関数 if (Math.random() > 0.999) { throw new Err

                                                フロントエンドの main() を合成関数として副作用を集約する
                                              • プログラミングの幅を広げよう!一段上のPromise活用テクニック - ICS MEDIA

                                                ES2015で登場したPromiseとES2017で追加されたasync/awaitによってJavaScriptのコーディングスタイルは大きく変わりました。Promiseの基本的な使い方を理解していることは「脱初心者」のひとつの指標にもなっているようで、網羅的で優れた解説も数多く存在します。 では、基本をおさえた後の活用方法はどうでしょうか? 実際のところ実務ではライブラリやフレームワークから返却されたPromiseをそのままawaitするだけ…という使い方がほとんどかもしれません。しかし、これらのライブラリやフレームワークの中で利用されているような高度なPromiseの活用法をマスターすれば、もっと自由なプログラミングができるようになります。 この記事ではPromiseを活用した実践的な例を3つ紹介します。いずれもライブラリやフレームワークに類似の機能を持つものはありますが、仕組みを理解

                                                  プログラミングの幅を広げよう!一段上のPromise活用テクニック - ICS MEDIA
                                                • BigQueryのアンチパターン認識ツールで独自のSQLリンターを開発しました - ZOZO TECH BLOG

                                                  こんにちは、株式会社ZOZOで25卒の内定者アルバイトをしている村井です。この記事では業務で取り組んでいる、BigQueryで使うSQLのリンターの作成方法について紹介します。 目次 目次 課題と解決策 課題 解決策 BigQueryのアンチパターン認識ツール ミニマムな使い方 日本語がSQL内に含まれている際の問題 アンチパターンを定義する リンターとしてBigQueryのアンチパターン認識ツールを使用する際に生じる課題と解決策 構成 APIサーバ化 Chrome拡張 動作例 まとめ 課題と解決策 課題 社内では様々なチームがSQLを書いており、動作はするものの良くない書き方をしている場合があります。そういった構文を検知して、前もって修正する必要があります。 解決策 BigQueryのコンソールで入力されたSQLの不正構文を検知、修正案を提示できるようにしました。 BigQueryのアン

                                                    BigQueryのアンチパターン認識ツールで独自のSQLリンターを開発しました - ZOZO TECH BLOG
                                                  • TypeScript/Rollup/Vercelでサクッとブックマークレットを作ってみよう - Adwaysエンジニアブログ

                                                    こんにちは。エンジニアブログ運営の梅津です。 普段はエージェンシー事業部でリードアプリケーションエンジニアとして働いています。 エンジニアブログ運営としてブログの質を向上させるために、これまでのブログの情報を集めたりもするのですが、これを逐一手作業で行うのは大変です。 ある程度の作業は自動化したい。そういったときはブックマークレットを作ると便利ですよね。 今回はそんなブックマークレットの作り方をまとめてみました。 「ブックマークレット?よく知らないな」「聞いたことあるけど作り方とか気にしたことなかった」という人がいれば是非一緒に試してみてください! 筆者の開発環境やこのブログで利用する主な技術のバージョンは次のとおりです。 macOS Node.js 18.12.1 TypeScript 5.0.4 Rollup 3.23.0 Vercel CLI 29.4.0 ブックマークレットとは T

                                                      TypeScript/Rollup/Vercelでサクッとブックマークレットを作ってみよう - Adwaysエンジニアブログ
                                                    • いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab

                                                      Rubyをはじめとする「動的型付け」のプログラミング言語は、ソースコード中に型に関する記述が陽に出てこないことが特徴で、プログラムの実行前に(静的に)型検査をすることはありません。しかし、このようなプログラミング言語においても、大規模な開発における品質の向上や開発体験の改善、実行の高速化のために、静的な解析を活用しようという試みは多くなされてきました。この記事では、動的型付けの言語のための型検査の歴史を簡単に振り返って、現在私が開発しているRuby向けの型検査器Steepとその基盤となっている型記述言語RBSについて説明し、今後の展望を議論します。 著者:松本宗太郎さん(@soutaro) Rubyコミッター。大学院でRubyプログラムの型検査の研究に取り組み、修了後はスタートアップでWebアプリケーションの開発に従事。2017年から型検査ツールSteepの開発を始め、2019年からはRu

                                                        いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab
                                                      • UTF-8 の BOM について - 将棋プログラミング

                                                        1.はじめに UTF-8 の文字コードのファイルには、BOM (Byte Order Mark) がある場合とない場合がある。 Unicode の規格では、BOM は、推奨されないが、許容されている。 ja.wikipedia.org 今回、必要があり、色々な OS や言語で、UTF-8 の文字コードのファイルを作成した時、BOM が記録されるか、されないか、を調べた。 2.色々な OS や言語での BOM 2.1 Windows 10, Visual Studio, C++, _wfopen (_tfopen) // Visual Studio 2005 以降 保存 FILE *fp = _wfopen(name, _ L"w, ccs=UTF-8"); if (fp == NULL) { // エラー処理 } fwprintf_s(fp, L"ABC漢字123\n"); fclose(

                                                          UTF-8 の BOM について - 将棋プログラミング
                                                        • モバイルアプリ上の WebAssembly 製ライブゲームで発生した例外を捕捉して計測する - Mirrativ Tech Blog

                                                          こんにちは、エンジニアのちぎら(@_naru_jpn)です。ミラティブでは、配信中のゲームに視聴者が介入できるゲームとライブ配信が融合した次世代のゲーム体験を提供しており、この体験を ライブゲーミング と呼んでいます。 ライブゲーミングは、Unity から WebGL 向けにビルドされた WebAssembly 製のゲームを、アプリに配置したウェブブラウザ上で動作させることによって実現しています。*1 今回は UnityでモバイルWebGLゲーム開発を頑張る話 の「メモリリークによって発生するクラッシュ」にも書かれているような、捕捉は難しいがユーザー影響があるような例外の発生を捕捉して、計測をするための仕組み作りについて解説をします。 ライブゲームが動作する仕組み 例外を捕捉することを考える前に、ライブゲームがどのように動作しているのかを知る必要があります。 Unity の WebGL 向

                                                            モバイルアプリ上の WebAssembly 製ライブゲームで発生した例外を捕捉して計測する - Mirrativ Tech Blog
                                                          • Reactを読んでまほうの正体を(少し)理解する

                                                            はじめに Reactパッケージのコードは難しいらしいのですが、React を利用している人なら誰でも中身を読んでみたい!と思いますよね。 日々 React を使ってコードを書いていますが、function 関数でいい感じ HTML っぽい<p>Hello, World</p>コードを書いて、その後にyarn devしてみただけで、画面にHello, Worldが現れてしまう React なのですが、その動きはまるで魔法みたいだなと思っています。 ということで、React パッケージを読むことに挑戦したお話をさせてください。 本記事では以下について書いていきます。 React を読むにあたって取り組んだ流れ 今回の取り組みで学んだ React 内部の仕組みや API などの紹介やその所感 我々が普段 React を触っている時には全く意識しないけれど、よくよく考えたら魔法みたいに不思議なその

                                                              Reactを読んでまほうの正体を(少し)理解する
                                                            • WebAssembly で画像のリサイズ処理をやってみたら JavaScript + Canvas API より遅かった話 - Qiita

                                                              WebAssembly(WASM) は JavaScript より計算処理が速いという話題がしばしば聞かれます。 では、単純な数値計算ではないけれど、JavaScript を利用した通常のフロントエンド開発だと時間がかかる処理を移植するとどうなるのでしょうか1。本記事ではその一例として、巨大画像(4K~)を指定したピクセル数までリサイズする処理を書いてみました。 リポジトリ: https://github.com/yokra9/wasm-image-resizer JavaScript + Canvas API でリサイズしてみる まず、比較のため JavaScript でリサイズ処理を書いておきましょう。とはいえ、TypeScript からコンパイルして生成します。 const url = "./img/sample.jpg"; const resp = await fetch(url)

                                                                WebAssembly で画像のリサイズ処理をやってみたら JavaScript + Canvas API より遅かった話 - Qiita
                                                              • 新しいR1で蒸留されたDeepSeek-R1-0528-Qwen3-8Bを試す

                                                                あ、ユーザーが日本語で挨拶してきた。 なんか良いですねw 生成し直してみても お、朝から日本語で挨拶が来た。ユーザーは多分日本の会社や学校関係かも? という調子なので、フランクな感じな味付けなんですね。 javascriptプログラミング 出力が長いこともあり具体的な内容は省略します。 テトリスを作成するには、以下のステップを考えます。 ゲームボードの作成: 通常は10列×20行ですが、テキストベースで表示するのではなく、HTML/CSSを使ってブロックを配置します。 テトロミノの種類と形状: 7つのテトロミノ(I, J, L, O, S, T, Z)とその回転形を定義します。 ゲームの制御: ユーザーがブロックを操作して落下させ、満タンした行を消去し、新しいブロックが床に当たるまで続ける仕組みです。 スコアリングとゲームオーバーの判定。 thinkタグ内は日本語で生成は14秒ほどと簡潔な

                                                                  新しいR1で蒸留されたDeepSeek-R1-0528-Qwen3-8Bを試す
                                                                • <label>で<button>を囲んでいるときにclickイベントが2回発火する問題の原因と対策

                                                                  皆さんこんにちは。今回は、最近筆者が遭遇した、<label>で<button>を囲んでいるときにclickイベントが2回発火することがある問題について解説します。 さっそくですが、こちらのCodePenをご覧ください。 ここでは、0と書かれたボタンが表示されています。このボタンは1回クリックすると数字が1増えるように実装されています。 しかし、ボタンに表示されている数字をクリックすると、数字が2増えてしまいます。これは、clickイベントが2回発火しているためです。それ以外の部分(ボタンの端や、ラベル)をクリックした場合は数字が1増えます。 実装のHTMLとJavaScriptは以下のとおりです。 <p>数字をクリックするとonClickが2回発火する!!!</p> <div> <label> ラベルのテスト <button type="button"></button> </label>

                                                                    <label>で<button>を囲んでいるときにclickイベントが2回発火する問題の原因と対策
                                                                  • WordPressをMarkdownで執筆、あるいはMarkdown→HTML変換とGitHub Pagesの自動更新 | IIJ Engineers Blog

                                                                    はじめましての方ははじめまして、2020年のアドベントカレンダーをご覧になってくださった方はお久しぶりです、クラウド本部の坂口です。 私は普段、クラウドサービスのフロントエンド開発からOSイメージのメンテナンス、サービスの運用などをメインに行っています。 2020年12月にアドベントカレンダーで投稿した 我らの時代のコンテナデプロイ – Nomad, Consul, Vault はお楽しみいただけたでしょうか。 実はこの記事を執筆する際、様々な趣向を凝らしていました。今回はそれをご紹介いたします。 MarkdownとWordPress エンジニアたるもの文章はMarkdownで書き、Gitでバージョン管理したいですよね。 しかしWordPressでMarkdownを利用するには、WordPress5.0のGutenbergエディタを使うかプラグインを導入する必要があります。 Gutenbe

                                                                      WordPressをMarkdownで執筆、あるいはMarkdown→HTML変換とGitHub Pagesの自動更新 | IIJ Engineers Blog
                                                                    • How modern browsers work

                                                                      Note: For those eager to dive deep into how browsers work, an excellent resource is Browser Engineering by Pavel Panchekha and Chris Harrelson (available at browser.engineering). Please do check it out. This article is an overview of how browsers work. Web developers often treat the browser as a black box that magically transforms HTML, CSS, and JavaScript into interactive web applications. In tru

                                                                        How modern browsers work
                                                                      • 制作事例:Lottieのアニメーションを手描き風に動かしたい!SVGとWebGLを使った2つのアプローチ - ICS MEDIA

                                                                        制作事例:Lottieのアニメーションを手描き風に動かしたい! SVGとWebGLを使った2つのアプローチ ICSでは2022年に株式会社ニコン様の中長期ビジョンを紹介する特設サイト『2030年のありたい姿』の実装を行いました。この記事ではサイトのメインビジュアルとして使用している手描き感のあるアニメーションを実現するために検証・実装したSVGとWebGLの技術ご紹介します。SVGやWebGLを活用したビジュアル表現に興味のあるエンジニアはもちろん、ウェブ技術を使ってどのような表現ができるのか知っておきたいディレクター・デザイナーの方も是非ご覧ください。 ▼ 特設サイト『2030年のありたい姿』 「人と機械の共創」を魅力的なアニメーションで描きたい 『2030年のありたい姿』の重要なキーワードが「人と機械が共創する社会」でした。特設サイトではこのビジョンを広く一般の方向けに伝えるため、株式

                                                                          制作事例:Lottieのアニメーションを手描き風に動かしたい!SVGとWebGLを使った2つのアプローチ - ICS MEDIA
                                                                        • ローカルサーバのセキュリティベストプラクティス

                                                                          🌐 Read this post in English 本番サーバーのセキュリティ対策には、多くの時間と労力が注がれます。しかし、その一方で開発者の手元で動いているローカルサーバーのセキュリティは、見過ごされがちでしょう。実際に、今年の頭に複数のフロントエンド開発ツールの脆弱性を調査・報告・修正しました。この記事ではその経験と調査を元に、具体的な攻撃手法とそれらを防ぐための対策を解説します。脆弱性の調査や対応の流れを知りたい方はぜひ一つ前の記事も読んでみてください。 前提知識 まず、後述する攻撃手法の理解に必要な前提知識を説明します。既に知っているものに関しては、読み飛ばして問題ありません。 URLとその各要素 この記事では、URLの各要素をURL Standardにならい、以下の通りに呼びます。 「スキーム」 プロトコルの名前 new URL(inputUrl).protocol で取

                                                                            ローカルサーバのセキュリティベストプラクティス
                                                                          • Web Design System: Migrating Web Components To React | Mercari Engineering

                                                                            This post is for Day 8 of Mercari Advent Calendar 2022, brought to you by Williams Kwan from Mercari Core team and Faisal Rahman from the Mercari Architect team. Intro Mercari internal design systems power the UI in Mercari web apps. It allows Frontend engineers to implement UI changes quickly by providing UI building blocks. The design system is currently built using Web Components but we are in

                                                                              Web Design System: Migrating Web Components To React | Mercari Engineering
                                                                            • アニメーションの実装が劇的に簡単になるFLIPテクニック - Katashin .info

                                                                              2023年7月10日CSS,JavaScript,アニメーション,デザインパターンアニメーションの実装はややこしいからCSS Transitionでできなければ実装したくない、そう思っていませんか?FLIPというテクニックを使うことで、CSS Transitionだけでは実装できないケースでも簡単にアニメーションを実装することができます。 FLIPとは #FLIP とは First, Last, Invert, Play の頭文字から取られた用語であり、アニメーションをこの4つのステップに分割して行うテクニックです。例えば、以下のようなリストの項目に追加、削除、並べかえができるUIに対して、簡単にアニメーションを付けることができます。 上のデモで追加、削除、並べかえを行った時に、項目の座標移動がアニメーションすることがわかると思います。これは CSS Transition だけでは実装する

                                                                                アニメーションの実装が劇的に簡単になるFLIPテクニック - Katashin .info
                                                                              • 2つのJSONの差分を動的に表示する。シンタックスハイライトもする。powered by shiki

                                                                                2つのJSON文字列の差分をシンタックスハイライト付きで表示したいケースがありました。 Zennでも同じ差分かつシンタックスハイライトができますね。下のようなコードブロックがそうです。 Zennでは行頭に+や-をつけることで差分としてハイライトされるようになっています。 このようなシンタックスハイライトかつ差分ハイライトを、2つのJSON文字列の差分に対して行いたいと思いました。つまり、差分を表示したい箇所に明示的かつ静的にマークしていくのではなく、2つのテキストから動的に差分を計算して差分ハイライトを表示してくれる機能です。 この記事ではその方法を紹介します。 なお、僕がJSONの差分を表示したかったのでJSONで例を出しますが、好きな言語で、なんならプレーンテキストでも応用可能です。好きなだけdiff表示してください。 先出し結論 jsdiffでJSONの差分トークンを取得し、shik

                                                                                  2つのJSONの差分を動的に表示する。シンタックスハイライトもする。powered by shiki
                                                                                • React のカスタムフックの利点をオブジェクト指向の観点で考えてみる

                                                                                  こんにちは。ぶっちーです。 普段は kintone というプロダクトの新機能開発を行っており、最近は、フロントエンドの技術刷新に取り組んでいます。 この技術刷新では、Closure Tools から React への置き換えを行っています。詳しくは、以下の記事をご覧ください。 刷新をする中で、React を書いていくうちに React の設計、特に React Hooks に対する考え方が難しいと感じました。 そこで、React Hooks について学習し、気付いた点があったのでこの記事にまとめます。 命令的 UI と宣言的 UI 技術刷新前の Closure Tools は、class 構文を使用したオブジェクト指向をベースとして、命令的 UI を構築しています。 刷新をする中で、最終的にどのような UI を構築するのかを把握する必要があります。このときに、コードベースから理解をしようと

                                                                                    React のカスタムフックの利点をオブジェクト指向の観点で考えてみる