概要 筆者は去年(2024年)からNostrリレーを非依存で作れないかと考えていて、少しずつ進めています。 そのメモ書きのようなものです。 この記事は随時更新していきます。 非依存てどういうこと? ここでの「非依存」は、言語標準で提供しているパッケージ以外を使用しないことを意味します。 非依存で開発したら、何が嬉しいかNostrリレーは後述するいくつもの技術要素を組み合わせて出来ています。 自作できたら、それらの要素をNostr用に最適化して高速化したりできます。NostrとはNostrの説明 プロトコル仕様(NIP:Nostr Implementation Possibilities) 有志のNIP日本語翻訳 有志がscrapboxに情報を纏めています 対応が必要なNIP リレーを公開するために最低限対応が必要なのは、NIP-01だけです。 NIP-01: Basic proto

最近はMBSDでWebアプリケーションスキャナの開発をしている寺田です。 Webアプリケーションを開発していると、セキュリティの観点でURLをチェックしなければならないことがしばしばあります。本日の記事では、そのようなURLのチェックを如何に行うか、正規表現を使う場合の注意点や、バイパス方法などについて書きたいと思います。本記事で想定するのは、ブラウザからパラメータとして来るURLをチェックしてリダイレクトやリンクのURL等として使ったり、ブラウザから来たOriginヘッダ等のURLをチェックしてアクセス制御をするケースです。その中でも、以下のようにサブドメイン部分(★の部分)を可変にする状況を主に想定します。 https://★.example.jp/… よく使われてそうなチェック用の正規表現と、そのバイパスは以下のとおりです。 正規表現: ^https://.+\.example\.

第4回 BNF記法入門(1) ─XML関連仕様を読むために─ W3Cの勧告として発表されているXML 1.0の仕様書は、XMLの構文を厳密に定義するためにBNFと呼ばれる記法で記述されている。XML関連の仕様書を読みこなそうとすれば、BNFの理解は不可避だ。今回はそのBNFを解説しよう。 ■話題 BNF記法 ■程度 C (XMLに関するひととおりの知識を持っている人を対象とする) ■目的 基礎的な知識の解説 この連載を初めてお読みになる方は、「XML深層探求について」をご覧ください。
OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。

この記事はWebAssembly Advent Calendar2023 10日目の記事です.2023年はGo1.21でWASI(WebAssembly System Interface)がサポートされるといった大きなリリースがありました.Go1.21のWasmのサポート状況,今後のWasmサポートについてまとめていきたいと思います.Go 1.20以前とWebAssembly 2018年のGo 1.11のリリース[1]以降,GoではWasmがサポートされています. package main import "fmt" func main() { fmt.Println("Hello,WebAssembly!") }

モチベーションWebAssemblyが面白そうだと思いつつ、HelloWorldだと味気ないし、SQLiteを移植した、というようなものだと複雑すぎるということで、少し複雑なGoのプログラムを、ブラウザで動かすように変更してみて、雰囲気を掴みたいと考えました。Goのプログラムを書く 文字でHelloWorldのサンプルは味気ないということで、今回選んだのはGoで画像を生成するプログラムです。 以下の記事のプログラムをほぼそのまま利用しています(以下の記事では日本語を出すための内容が書かれていますが、その部分は今回はスルーします) package main import ( "bytes" "fmt" "image" "image/png" "os" "github.com/golang/freetype/truetype" "golang.org/x/image/font" "gola

【Go言語入門】goroutineとは? 実際に手を動かしながらgoroutineの基礎を理解しよう! はじめまして。2022年4月に中途入社し、現在Analytics Delivery Divisionでバックエンド開発をしているエンジニアのナムです。ARISE analyticsに入社してから開発言語としてGoを使うことになりました。Goの特徴・メリットはいろいろありますが、今回はその中でもgoroutineについて簡単に話したいと思います。goroutineとはgoroutineは「Goでプログラムの同時性を簡単に具現し、既存の単純スレッド基盤に比べて効率的な動作を遂行するために作った作業単位」です。全てのGoプログラムは必ず1個以上のgoroutineを持ち、常にバックグラウンドで動作します。それぞれのgoroutineは独立的に実行されます。goroutineの特徴は非常に

Javaのエンジニアだった私がGo言語を始める上で学んだ開発環境のセットアップ方法についてまとめていきたいと思います。Go言語をインストール後サンプルプロジェクトを作成し、Goのプロブラムの実行/ビルド方法や各種周辺ツールをご紹介していきます。 はじめにJavaのエンジニアだった私がGo言語を始める上で学んだ開発環境のセットアップ方法についてまとめていきたいと思います。Go言語をインストール後サンプルプロジェクトを作成し、Goのプロブラムの実行/ビルド方法や各種周辺ツールをご紹介していきます。 この記事がこれからGo言語で開発を始めたい方のとっかかりになれば幸いです。 ※他言語で開発経験がある方を想定しております。 動作環境 今回使用した動作環境は以下のとおりです。PC :Mac M1(Apple Silicon)チップ OS :macOS Big Sir 11.5.2Go

概要 開発が大規模化・長期化するほど、コードを「読む」コストは増大していきます。そのため「読みやすさ」の向上は、生産性を改善し、プロダクトの成長限界を引き上げる重要な手段と言えるでしょう。本書は、読みやすさの本質を学び、実践するための考え方をマスターできる一冊です。体系的な理解を実現するため、あらゆる角度から、豊富な例を交えて解説しています。表面的なテクニックではなく、いま目の前にあるコードに最適な改良方法を選び取る力が身に付きます。 目次 はじめに 第1章 可読性の高いコードを書くために 1-1 生産性への恩恵 1-1-1 開発の規模と生産性の関係 1-1-2 可読性を高めるための環境と評価体制 1-2 可読性の高いコードを書くための要件 1-2-1 可読性に関連する指標 1-2-2 可読性を高める取り組み方 1-3 代表的なプログラミング原則 1-3-1 ボーイスカウトルール 1-3

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 入門本でGoの世界にGo!(言ってみたかっただけ) 2009年にあのGoogle発、Better Cの立ち位置でマスコットのゴーファー君とともに人気を伸ばしてきたGo言語。 コンテナやマイクロサービス関連、実行速度が求められる場面でもお馴染みになっています。先進的な企業での採用事例も多く、まだ使える人がIT業界全体ではそれほど多くないからか求人でもよく見かけます。なんとなく優秀なエンジニアや先端技術動向に通じたエンジニアが嗜んでいそうなイメージもあります。 最近入門したこともあり、ここでは日本で手に入るGoの書籍についてまとめてみました

はじめに あくまで一個人の意見なので絶対的な解ではないというのと、どっちをデフォルトに選んでも普通にアプリケーション開発してて困ることはほぼほぼないと思うので、そこまで気を揉むことでもない、ということだけ最初に述べておいて意見をしたためます。 TL;DR アプリケーション開発では基本的に type でおk Declaration merging したい時だけ interface ライブラリ開発のような使う側で拡張したい(Declaration merging したい)時は interface とりあえずチームでどっちをデフォルトにするかは統一しといた方が気持ちいい type と interface の違い 機能的にはそんなに大きな違いはなく、個人的に判断に関わるのは次の3つかなと思います。 interface では Declaration merging がされる。type ではされない

こんにちは。yoshiです。 先日(9月1日)にオープンされたTypeScript のプルリクエストがヤバいわよ!という話をします。 ※※※注意ここから※※※ 一応先に言っておきますと、これからする話はまだ PR 段階なのでそのまま取り込まれるかどうか分からないし、どのバージョンでリリースされるかも分かりません。ここで書いていることはリリース時には仕様が変わっている可能性は大いにあり、リリース後に検索等でこの記事にたどり着いた方は、もっと良い解説がどこかにあると思うのでそちらを参照することをおすすめします。 ※※※注意ここまで※※※ 該当の PR はこれです。Template string types andmapped type 'as' clauses by ahejlsberg · Pull Request #40336 ·microsoft/TypeScript この PR

初心者ながら急にTSの型で遊びたくなり,エラトステネスのふるいを使って素数を求めました. リポジトリ:sititou70/ts-prime-number-typeTypeScriptとはTypeScript,あるいはTSとはプログラミング言語の一種であり,JavaScriptと型システムの悪魔合体です.以下のコードを見てください. 下線がついていない部分は通常のJavaScriptであり,下線の部分は 型 を表します.この例ではstring型のname変数に"sititou70"を代入しています. そして今回の記事では,JavaScriptを一切書かず,型システム(下線の部分)だけでプログラミングしよう と思います. 「何言ってんだコイツ」 と感じたあなたは正常です.感じなかったあなたはTSの変態です. TSの型はチューリング完全 もう数億回言われていることですが,TSの型システムは

AccidentallyTuring-Complete ― Andreas Zwinkau本来なら、チューリング完全となるべきではなかったものがある。これは、そのようなうっかりチューリング完全になってしまったものの例である。C++テンプレート 当初はチューリング完全を目指していなかったが、C++テンプレートはチューリング完全になってしまった。その証明は、この論文にある(PDF) x86 MMU x86のpage fault handlingは、単純なマシンの実装に使える。原理としては、page faultが1 wordをスタックに積み、それによりアンダーフローを起こして別のトラップを生成する。この仕組みは、「減算して0以下ならば分岐」処理を実現する。チューリングマシンを実装するには十分である。デモ動画、講演動画 マジック・ザ・ギャザリング マジック・ザ・ギャザリングはカードゲームであ
There are a few trade-offs and key points to keep in mind in this area. Any decision that a user makes which affects the outcome gives that user an unfair advantage. Examples include: Using ablockhash, timestamp, or other miner-defined value. Keep in mind that the miner has a choice of whether to publish ablock or not, so they could conceivably have one chance at the prize perblock they mine. A
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く