タグ

ブックマーク / qiita.com (883)

  • Python コンパイラを作ろう : コンパイラ基礎講座第一回 (理論編 1) - Qiita

    まえがき この記事は投稿者(NokonoKotlin)の個人サイトの記事から Qiita 用に移植 & 加筆したものです。 (この文言は記事が剽窃でないことを周知するためのものであり、個人サイトの宣伝ではないことをあらかじめご了承ください。) はじめに みなさんはスマブラの勉強をしてゲーム制作の勉強ができると思いますか? プログラミング学習といえば文法やライブラリの学習を想像されるかもしれません。これはその通りなのですが、プログラミングをさらに理解するためには、プログラムが動く裏側で何が起こっているのかを知る必要があります。 インタープリタとコンパイラ みなさん Python はよくご存知のことだと思いますが、今一度 Python が何かを考えてみませんか。ご存知の通り、Python はプログラミング言語であり、インタープリタを介して Python 文を機械語に変換してプログラムを実行しま

    Python コンパイラを作ろう : コンパイラ基礎講座第一回 (理論編 1) - Qiita
  • 「住所は英数字もすべて全角で入力してください」はなぜそうなったのか - Qiita

    Webサービスのフォームに住所を入力するとき、丁目や番地などを入れる欄について、数字やハイフンを全角で書かなければいけない「全角縛り」をやっているフォームをよく見ます。半角文字を入力してしまってエラーになったり、咄嗟に変換方法を思い出せなかったり、全角と半角の見分けが付きづらかったり、「全角縛り」であることが明示されていなかったり、「ハイフン」としてどの文字を使うべきかわからなかったり……と、陶しさを感じることが多くあります。 「住所は全角のみ」(数字やハイフンも絶対に半角を受け付けない)という仕様がどういう経緯で生まれて、どう広まっていったのかが気になってる。いま存在しているのは過去の仕様や慣習の踏襲として理解できても、そもそもなぜそれらが生まれたのかが理解できない。 https://t.co/ZLz0Pw9GOK — ymrl (@ymrl) July 29, 2024 これについて

    「住所は英数字もすべて全角で入力してください」はなぜそうなったのか - Qiita
    xef
    xef 2024/08/04
  • コードで蘇る「千と千尋の神隠し」:プログラミングによる名前の浮かび上がり演出 - Qiita

    何を作ったのか お見せしたほうが早いかと。 デモページ (マウスもしくはApple Pencilといったスタイラスペンで各マスに文字を書き、右上の赤いボタンを押す) (2024年8月4日更新) より文字をふわふわさせるように、メッシュを細かくしました。 もしかしたら重いかも・・・・ 改良デモページ 結構すごくないですか? こんな感じで、映画「千と千尋の神隠し」の千尋が湯婆婆に名前を捉えるシーンを再現してみました。作ってみて、なかなかおもしろかったので記事にしてみました。 どうやって作っているか これがどのように作られているか、簡単に解説します。 技術構成 アプリは以下のライブラリを使用しています。 Next.js ・・・Webアプリのフレームワークです tailwindcss ・・・Webアプリのcssライブラリです Three.js ・・・3d描画ライブラリです。 react thre

    コードで蘇る「千と千尋の神隠し」:プログラミングによる名前の浮かび上がり演出 - Qiita
  • 世界1位取った後3年間オセロAIを作り続けたらナニモワカラナクなってチョットダケデキルようになった話 - Qiita

    2021年、ふとしたきっかけでオセロAIを作り始め、オセロAIコンテストに作ったAIを提出し、なんやかんやあって半年かけてそのコンテストで世界1位になりました。 それで満足…?と思いきや、全然満足せず、コンテスト関係なしにオセロAIを作って早3年。この記事ではオセロAIが色々なところに私を連れて行ってくれた話と、オセロAIが深いという話をします。 この記事は2年ほど前に書いていっぱい読んでいただけた以下の記事「カンゼンニリカイシタ話」の続編、みたいな立ち位置です。単体で読んでも、以下の記事と合わせて読んでも楽しめます。 世界1位からさらに高みを目指す 私が参加したオセロAIのコンテスト(CodinGame Othello)は、コンテストという特性上、かなり厳しい制約が設けられていました。例えば着手する時間です。これは1手あたり0.15秒以下でないといけません。また、コード長にも制限があり

    世界1位取った後3年間オセロAIを作り続けたらナニモワカラナクなってチョットダケデキルようになった話 - Qiita
  • IPA試験問題不備(令和6年春期ネットワークスペシャリスト午後2) - Qiita

    続いて、上記説明文を受けての設問内容です。 設問5 [S/MIMEの調査と実施策] について答えよ (1) 表4中の下線⑨の電子署名データの作成方法を,25字以内で答えよ。 (2) 表4中の下線⑩のハッシュ値 aを取り出す方法を,20次以内で答えよ。 (3) 表4中の下線⑪について,どのような状態になれば改ざんされていないと判断できるかを,25字以内で答えよ。 不備の内容 S/MIMEについての基礎 ここで、不備の説明に移る前に、S/MIMEに関する基事項について触れておきます。 S/MIMEは公開鍵暗号(守秘/署名/鍵共有)を用いてメールの暗号化や署名を行う技術およびその規格です。 最新はRFC8551のv4(2019年)ですが、アプリの対応状況は不明なところがあるので、一つ前のRFC5751のv3.2(2010年)を参照した方が無難かも知れません。 そして、S/MIMEで使用するデー

    IPA試験問題不備(令和6年春期ネットワークスペシャリスト午後2) - Qiita
    xef
    xef 2024/06/25
  • 祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita

    FreeBSD では 2024-05-31 に 200112 から 200809 への変更がようやく行われました(一度間違えて 200808 と書いてしまっていますが)。 https://cgit.freebsd.org/src/commit/?id=2e30926a68 https://cgit.freebsd.org/src/commit/?id=6e0278408e macOS は FreeBSD のユーザーランドのコマンドを使用しているため、そのせいで 200112 のままだった可能性も考えられますが、シェルやカーネルは FreeBSD のものではないため、FreeBSD が変更になったからと言って macOS が更新されるとは限らないでしょう。Solaris 10 と 11 ではディレクトリごとに準拠バージョンが異なるバイナリが配置されており以下のようになります。Solaris

    祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita
  • TypeScriptを導入する意味と限界、型レベルプログラミングの紹介 - Qiita

    はじめに JavaScript/TypeScript初学者を抜けたあたりの方に向けてTypeScriptの利点や限界、型レベルプログラミングについて紹介します。 TypeScriptJavaScriptをラップしたライブラリであり、静的な型情報をつけることができます。また、それらの型情報をもとに型を推論し、型違反な代入やプロパティへのアクセスなどをプログラム実行 以前 に検知することができるようになっています。 例えば、動的型付けの言語であるJavaScriptでは、以下の関数のa,bには数値だけでなく、文字列を渡すことができます。数値同士を渡せば加算してくれますし、文字列同士を渡せば文字列連結をしてくれます。 「数値計算用の関数なのに、文字列連結に利用できてしまう」という緩さを開発時にはなるべく排除しようというのがTypeScriptを導入する意義です。 以下、TypeScriptの基

    TypeScriptを導入する意味と限界、型レベルプログラミングの紹介 - Qiita
  • サイバーセキュリティ情報インプット集 第1.0版 - Qiita

    定期的に更新・追加していきます。 セキュリティガイドライン、フレームワーク集 サイバーセキュリティガイドラインやフレームワーク等を参照することは、自組織でのセキュリティステータスを把握し、実際にセキュリティ施策を打つうえで非常に重要となります。 ただ、これらの文書の要件を満たすような施策を実施するためには、 1. 自組織が適用(組織・技術的に対策)したい各種ガイドラインやフレームワーク等を選定する 2. これら文書における抽象的な要件を具体的な要件へ落とし込む 3. 具体的な要件を満たすために最適なセキュリティ策を実施する のような流れを踏む必要があります。 2、3についてはセキュリティ策や技術動向に精通したセキュリティ専門家による対応が求められますが、1については自組織が目指す目的に依存するため専門家の手を借りずともある程度は対応することができます。 また、業界や技術等の軸で存在感のある

    サイバーセキュリティ情報インプット集 第1.0版 - Qiita
    xef
    xef 2024/05/20
  • 入力欄のプレースホルダーって結局どうなの - Qiita

    入力欄のプレースホルダーの話をします。プレースホルダーというのは、フォームの入力欄で、ユーザーが入力するまでの間に表示されているテキストのことです。 書籍「Webアプリケーションアクセシビリティ1」では、「3.1 ラベルと説明」のところで、紙版にして約1.5ページの分量を割いて、フォーム入力欄のプレースホルダー(<input> 要素や<textarea> 要素の <placeholder> 属性)の問題点を指摘しています。 こので指摘されているプレースホルダーの問題点は以下の3つです。 プレースホルダーの色が薄く視認しづらい プレースホルダーとフォームコントロールの値との区別がつかない フォームコントロールに値を入力したときにプレースホルダーの値が見えなくなってしまう Webアプリケーションアクセシビリティ さらに、Nielsen Norman Groupによる「Placeholders

    入力欄のプレースホルダーって結局どうなの - Qiita
  • LaTeX と Python で作る 1 ポイントたりとも表示崩れしない最強の帳票印刷ソリューション - Qiita

    元ネタ 元ネタはこちらです(以下「FigmaPHP」で略します)。 読んでなるほどと思いました。このように、誰かが苦労したおかげで後続が楽になるので感謝です。何が問題点として生じるのか、どんな解決方法が考えられるのか、が予め判明しているだけでもだいぶ楽になります。 反面、$\LaTeX$ の方が実装は簡易ではないかと思ったので、それを実践してみました。 条件と問題点 FigmaPHP の 44 ページに以下のような条件があります 改めて、満たしたい条件 ミリ単位で細かく帳票をデザインしたい。 帳票デザインの保守性を維持するためにはビジュアルデザイン必須 印刷時に見た目が一切崩れない さらに、次のような障害を次々とクリアしていってます。 文字参照の問題 枠からのはみ出しの問題 右寄せの問題 自動折り返しの問題 連票の問題(簡易な解説のみ) これらを $\LaTeX$ と Pyth

    LaTeX と Python で作る 1 ポイントたりとも表示崩れしない最強の帳票印刷ソリューション - Qiita
  • GIS に欠かせない Shapefile を深堀ってみる - Qiita

    1. はじめに 地理情報システム (GIS) で、使用するデータとして「Shapefile 形式」でデータ提供されていることがあります。この記事では、この Shapefile が、どのような構造となっているのかについて、説明していきます。 1.1. トポロジ構造とは Shapefile について説明していく前に、まずは GIS データ等でよく利用される「トポロジ構造」について説明しておこうと思います。 例えば、トポロジ構造を持つファイルとして、次のようなものがあります。 .gdb: ESRIのファイルジオデータベースは、トポロジを含む複雑な空間データを格納することができます。 .topojson: トポロジを保存するための拡張 GeoJSON 形式で、隣接する地物間の境界を共有することでファイルサイズを削減します。 .gml: 地理マークアップ言語 (Geography Markup La

    GIS に欠かせない Shapefile を深堀ってみる - Qiita
    xef
    xef 2024/04/21
  • Rust と OS の知識 0 からはじめるRustで始める自作組込みOS入門 - 前半(スケジューラの実装まで) - Qiita

    きっかけ・読んでいく うさねこらーじの Discord サーバーで、いろいろな先輩たちに技術のことを教えてもらっています。 https://discord.gg/RMq7e5qbQj このなかで、著者の garasubo さんにサポートしてもらいながら以下のの内容を実装しているのですが、 Rust の知識も OS の知識もない私にとっては内容がかなり高度なので、補助のためにこのブログを作成しています。 Rustで始める自作組込みOS入門 https://amzn.asia/d/ebuOUM1 ぜひこのを読みながらこのブログを参照していただけると嬉しいです。 第 2 章 ベアメタルで Hello World 単語のかみくだいた説明 ベアメタルプログラミング OSのない環境で実行するためのプログラムを書くことです。この環境下では CPU ごとに決まった動作(たとえば、決まったアドレスにあ

    Rust と OS の知識 0 からはじめるRustで始める自作組込みOS入門 - 前半(スケジューラの実装まで) - Qiita
  • パソコン暖房の性能を実験で測定する! - Qiita

    最近寒いですね。そんなときはパソコンこと「計算もできる暖房」をつけましょう。ポチッ!温風が出てきますね。あったまる~! ところで、実際のところパソコンってどれくらい暖房としての能力があるんでしょうか…?調べてみましょう。 ↑これはCPUのCore i9-13900Kです。今日は暖房として働いてもらいます。 実験装置を作る 暖房能力を調べるために、パソコンによって何かの温度が上昇する様子を測定したいので、熱量計を使います。普通、熱量計は発泡スチロールで水を覆って断熱しつつ水の温度を計測するようなものですが、パソコンを水没させるわけにはいきません。 今回は大きな箱の中でパソコンを動かし、空気を温めることにしました。でもそんな都合の良い箱なんてない……(?) おや、ここに逸般の誤家庭には大量に在庫があることでおなじみの(?)MDF板があります。 養生テープで適当に貼り付けて箱にしました(ロボット

    パソコン暖房の性能を実験で測定する! - Qiita
    xef
    xef 2024/02/10
  • レイテンシ(遅延)とスループット(帯域幅)と帯域幅遅延積 - Qiita

    マルチクラウド展開にまつわる既成概念を覆すより データ転送では、特に長距離の場合にレイテンシ(遅延)が問題になることがありますが、現在はすべてのクラウド・プロバイダーがそれぞれの物理インフラストラクチャを互いの近くに配置(専門用語では「コロケーション」)しているため、これはさほど問題となりません。この近接性(場合によっては同一コロケーション施設内の別の部屋)は、クラウド間のレイテンシがミリ秒単位であることを意味します。それに加え、クラウド・データセンター・リージョンは世界中で増加しており、クラウド・リージョン間の距離は縮まっています。 という事で、レイテンシ(遅延)について、まとめてみてみます。 ■ Agenda レイテンシ(遅延)とスループット(帯域幅) レイテンシと TCP の動作 帯域幅遅延積(Bandwidth-Delay Product) TCP Window Size の調整と

    レイテンシ(遅延)とスループット(帯域幅)と帯域幅遅延積 - Qiita
    xef
    xef 2024/02/06
  • Z80+C言語で16ビット機級の本格的なゲームが創れるゲーム機(VGS-Zero)を作ってみた - Qiita

    はじめに 2024年1月1日に VGS-Zero (Video Game System - Zero) という RaspberryPi Zero 2W のベアメタル環境で動作するオリジナルのゲーム機エミュレータと SDK を公開しました。 VGS-Zero は、RaspberryPi Zero 2W をテレビに HDMI ケーブルで接続し、USB ゲームパッドで遊ぶタイプ(据え置き型)の新しいゲーム機です。 無料でゲームを開発&販売ができる SDK も公開していて、開発したゲームを完全ロイヤリティフリーで自由に販売して頂くことができます。 なお、OS は Linux ではなく独自カーネルです。 特徴 VGS-Zero の特徴について、カーネル視点とゲーム機視点の両面から解説します。 独自カーネルの特徴 ラズパイ全般(※Picoを除く)は Linux で動かすのが一般的ですが、VGS-Zer

    Z80+C言語で16ビット機級の本格的なゲームが創れるゲーム機(VGS-Zero)を作ってみた - Qiita
  • DB初心者が自作DBMS始めてみた - Qiita

    この記事は DeNA 24 新卒 Advent Calendar 2023 の 23 日目の記事です。 TL;DR DBMSの基的な仕組みを知るのに有益だったリソース CMUのDBMS講義 先人の素晴らしい自作DBMSの解説記事&ソースコードリーディング 小さな小さな自作DBMSの設計と実装 最小限SELECTやINSERTなど基的なSQLが動く この記事のゴール データベースの内部構成を超ざっくり理解するために有用なリソースを知り、そして(全開発者のロマンである)自作 DBMS に一歩踏み出すきっかけになればうれしいです。 モチベーション 自分は普段業務でアプリケーションのような割と高レイヤーな開発がメインなこともあって、ミドルウェアやOS、ネットワークと言った低めのレイヤーに憧れを持っており、この気持ちをまずは自作DBMSをやってみることによって解放してあげようと思ったことがきっか

    DB初心者が自作DBMS始めてみた - Qiita
    xef
    xef 2023/12/24
  • WebAssembly の過去・現在・未来 - Qiita

    はじめに WebAssembly (略して Wasm) では WASI や WIT、 Component Model など様々な仕様があります。 それぞれが登場した背景、モチベーションなどを理解することでなんとなく概要を掴んでいくことができるのではないかと考えたため、過去・現在・未来と時間軸で整理してみました。 まず Wasm とその特徴に関して簡単に紹介した後、Wasm の過去として生まれた背景やモチベーションを紹介します。 そして現在の Wasm がなぜ注目を集めているのか、そして現在策定中の仕様と目指している未来について紹介します。 WebAssembly とはなにか WebAssembly はスタックベースの仮想マシン用バイナリ命令フォーマットの仕様です。Wasm と略されます。 Wasm ファイル(Wasm モジュール)は一般に .wasm という拡張子で表されるバイナリファイル

    WebAssembly の過去・現在・未来 - Qiita
  • C++ コンパイル時パスワード認証 〜コードを不正コンパイルから守ろう!〜 - Qiita

    ラクラムシ「今回は C++ に関する内容ですね!」 謎の女性「どういった内容ですか?」 ラクラムシ「 C++ でコンパイル時にパスワードを要求する方法について説明していきます!」 謎の女性「よろしくお願いします!」 この記事では、C++ でコンパイル時にパスワードを要求する方法について説明します( UNIX 系の環境に限ります)。 コンパイル時パスワード認証 みなさんは、プログラミングをするときにソースコードを公開していますか? ソースコードを公開することで、ほかの人にバグを指摘してもらったり、新機能を提案してもらったりすることができます。 ソースコードを共有できるサイトはいろいろありますが、代表的なものに GitHub があります。 GitHub は無料で利用できるので、ソースコードを共有してみたいという人は使ってみましょう! しかし、「コードを見られるのはいいけど、勝手にコンパイルされ

    C++ コンパイル時パスワード認証 〜コードを不正コンパイルから守ろう!〜 - Qiita
    xef
    xef 2023/12/20
  • TrivyのWebAssembly拡張機能、Modulesがすごい - Qiita

    はじめに この記事は、Go 言語 Advent Calendar 2023 シリーズ2の16日目の記事です。 こんにちは。reo です。 今年も気づけばアドベントカレンダーの時期ですね。 社のカレンダーにも参加したので、こちらも宣伝させていただきます。 今回はTrivyのWebAssembly拡張について紹介させていただきます。 前提 以下は詳しく触れません。 WebAssembly の概要 WebAssemblyランタイム(wazero)について Trivyの全体像について 掲載内容は私自身の見解であり、必ずしも所属する企業や組織の立場、戦略、意見を代表するものではありません。1 Trivy とは 公式の README にもあるとおり、コンテナイメージからファイルシステム、Gitリポジトリ、KubernetesAWSなど幅広いターゲットに対して、既知の脆弱性(CVE)や機密情報、IaC

    TrivyのWebAssembly拡張機能、Modulesがすごい - Qiita
  • 認証と署名の整理をしましょう(またかよ) - Qiita

    はじめに 去年の「Digital Identity技術勉強会 #iddanceAdvent Calendar 2022」でも「認証と署名は何が違う? ~マイナンバーカードを例に~」として認証と署名の話をしました。実は今年も必要に迫られて認証と署名の整理をしてきてある程度まとまったかな…と言うことで今年も再び書かせてください!また署名業界では新たに電子シール(eシールとも呼ばれる非自然人/組織の電子証明書によるデジタル署名)の検討が進んでいます。なので署名も電子署名と電子シールに分けて整理をしてみます。年末の忙しい時期ですが楽しんでご笑読ください。認証と署名の整理についてはこれで最後にしたい…なぁw デジタルアイデンティティ さてまず認証と署名を比較するとはどういうことかを整理しましょう。認証…と言うよりも技術全体を示すのであれば最近はデジタルアイデンティティ(Digital Identit

    認証と署名の整理をしましょう(またかよ) - Qiita
    xef
    xef 2023/12/10