Uniform Resource Identifierの頭文字をとった略称。統一資源識別子と訳される。 現在RFC 3986によって規定される、コンピュータ上で利用できる資源に与えられた識別子のこと。 URLやURNはURIのサブセットであるが、W3CによればURL、URNとも古典的な概念でありどちらも現在は非公式の概念で、唯一URIのみが公式の概念であるという。
第2部 URI ※筆者が他の章を先に読み進めたい都合上、現時点では簡単なまとめのみとさせていただきます URIのポイント リソースの名前である 寿命が長い ブラウザのアドレス欄に表示する URLとの違い(URIとURLとURN) URLとURNを総称したものが「URI」 URNは次のような表記。リソースに恒久的なIDを振り、それを用いてアクセスする urn:isbn:12345678901234567890 URLを用いる場合、サーバ障害、ドメイン変更などで使用できなくなる可能性がある 最近はURLを永続的に使えるようにすべきという考え方が浸透し、ほとんどURLが使用されている
2022 May 02. 2022 May 01. 端末 android 11 ( APIレベル 30 ) 概要 ContentResolverにてIDを取得し、ContentUris.withAppendedId()でIDからURIを取得する 手順 ContentResolverのqueryのprojectionに"MediaStore.Audio.Media._ID"をセットする query結果集合にて getColumnIndexOrThrow(MediaStore.Audio.Media._ID) でID列を取得する(取得列をidColumnとする) 対象URIに対し、getLong(…
2022 May 02. 2022 May 01. 端末 Android 11 (API レベル 30) * ContentResolverで取得したURIのpathプロパティ(getPath()メソッド)で得られる文字列はファイルシステム上のパスとはまったく異なる * ContentResolverで取得したURIのtoString()メソッドで得れれる文字列もファイルシステム上のパスとはまったく異なる * ファイルシステム上のパスの取得は、ContentResolverで、projectionに"_data"を指定してqueryした結果集合にgetColumnIndexOrThrow("_…
2022 May 08. 2022 Apr. 30. 端末 android 11 ( APIレベル 30 ) 参考 android開発 ContentResolver 音声メディア・動画メディアへのクエリによるメディア情報取得 - rokkonet 概要 ContentResolverのprojectionに"_data"をセットしてメディアファイルをクエリーし、"_data"から取得したディレクトリで取捨選択する。 ("_data"にファイルパスが入っている) 外部ストレージ共有領域内のディレクトリの取得 android開発 deprecatedなメソッドを使わずに外部ストレージ共有領域のパ…
2022 May 01. 2022 Apr. 30. 2022 Apr. 10. 利用android端末のバージョン 11 build.gradle(:app) compileSdk 32 defaultConfig { minSdk 24 targetSdk 32 } 手元のAndroid端末で、Intent.ACTION_OPEN_DOCUMENT_TREEでファイル・ピッカーを開き、選択した外部ストレージ内ディレクトリのURIのAuthorityを調べると、すべて "com.android.externalstorage.documents" となっている。 URI全体は、"conten…
はじめに エキサイト株式会社 21卒 バックエンドエンジニアの山縣です。 UriComponentsのreplaceQueryParam()を使用してクエリパラメータの値を書き換えたときに、書き換える前と書き換えた後とでクエリパラメータの順序が異なってしまい、 単体テストで落ちてしまいました。 本記事では、クエリパラメータの順序が異なるURIを比較する方法について共有します。 概要 クエリパラメータの順序が異なる2つのURIを用意します。 このとき、uri1とuri2を比較するとfalseになります。 URI uri1 = URI.create("https://example.com?pag…
概要 取得した画像のURIをRealmで保存および使用する方法で詰まってしまったので、私が解決した方法について書いていきたいと思います。経緯 取得した画像のURIをRealmデータベースに保存したかったので データを格納するモデルを以下のようにして、Uri型のデータを格納できるかなとやってみたところ ~ open class <モデルのクラス名> : RealmObject() { var <プロパティ名>: Uri? = null } コンパイル時に以下のメッセージが表示されてコンパイルできず…Execution failed for task ':app:kaptDebugKotlin'.…
概要 環境 インストール Web API クライアントライブラリ 呼び出し リソース取得用のモデルクラスを作成 HttpClientの作成 GET要求を送信し、リソースを取得 参考資料 概要 コンソールアプリから「天気予報API」を叩き、東京の天気予報を取得します。 環境 Windows10 .Net6 インストール Web API クライアントライブラリ パッケージマネージャーコンソールで次のコマンドを実行しインストールを行います。 パッケージマネージャーコンソールの呼び出し 呼び出し リソース取得用のモデルクラスを作成 入れ子になっているJSONにも対応できるように、複数のクラスを用います…
DMMビットコイン流出事件とGinco社のセキュリティ問題 オレゴン州立大学オンラインCS学士号取得体験記 ISO-2022-JP文字エンコーディングとXSS脆弱性 TypeScriptとドメイン駆動設計(DDD) 将棋AIの強化学習における教師データ生成手法の革新 AZIKローマ字入力方式の拡張と日本語入力効率化 ChatGPT o1モデルによる歴史上の人物とのロールプレイ マスク氏とラマスワミ氏の外国人労働者ビザ擁護とトランプ支持者の反発 書籍『プログラミング作法』の書評 Mac標準メモアプリの拡張アプリ「ProNotes」紹介 ゆめみのフロントエンドエンジニア採用試験体験記 AWS Io…
TL;DR 京都大阪シーシャ遠征した 割と遠征した 読書した DJイベント始めた 外タレワンマン2現場 台北行った 2024年 重要現場 いや、重要ではない現場なんてものは無いわけだけど。特に重要だと感じた現場です。 UTERO生誕主催ライブ Return To UTERO (3月) UTEROとして活動を始めてから初となる生誕イベント。くゆる, yuzuha, Cwondo, 諭吉佳作/menというセンスの良すぎる布陣の対バン。さすがはりんちゃん。 Return to UTERO pic.twitter.com/t0dPVHmUKR— nao_y (@NaoY_py) March 10, 2…
ついぞ今年はWandelweiserから新作が出なかったけれどanother timbreからは良作が多く、中でもJürg Freyの新作は傑作だった。 期待していたuri gagarnの新作は一般流通しなかったため手にすることができず。こちらは来年に期待。 4月に日本に帰国して、バタバタしながら過ぎていった1年だったので、来年は腰を据えて音楽を楽しもうと思います。 Jürg Frey - Outermost Melodies 今年のanother timbreからのリリースで最も印象的だった作品。パーカッションのための楽曲など新しい側面も見せつつ、これまでに発表してきたようなフルート主体の楽…
エンジンつながりで適当なエンジン画像。初見ではエンジンエックスなんて絶対読めない。wkpdより https://commons.wikimedia.org/wiki/File:Nissan_RB26DETT_Engine_-_Front_Side.jpg ほとんどタイトルオンリー。普通に docker pull nginx でプルしたのはいいが、検索したところ丁度良いdocker-compose.ymlが無かったので自作した。引っかかったところも含めてもメモしておく。 /home/pi以下に/nginxディレクトリを作り、その中でさらにボリュームとしてマウントするconfigディレクトリとht…
以下の続き kamatimaru.hatenablog.com トークンエンドポイント 空のエンドポイントの実装 まずは空のエンドポイントを実装していく。 Viewを定義する。トークンエンドポイントはPOSTのみ。 views.py class TokenView(View): def post(self, request): return JsonResponse({}) urlを追加する。 urls.py urlpatterns = [ # ...省略 path("token/", views.TokenView.as_view(), name="token"), ] 以下のリクエストパラ…
こういう画面 ネットしてるとたまにこういう画面が出てくるじゃない。図書館のホームページで本を探しただけよ私は。ほんで詳細ページからブラウザの「戻る」で遷移するとこれが表示されるのよ。いい具合に処理してくれやって思うんだけどね。 調べたところ、この画面がなければ何が困るかって言うと、ブラウザで戻るとこれこれの検索結果出してくれや情報が欠落している状態だから戻ったときに結果が白紙に戻ってしまうみたいなことがあるらしい。というのも、リクエスト(出してくれや)は基本サーバー側で保持しないと言う性質があるらしい。おそらく保持されて2重になってしまったら困る何かしらがあるんだと思う。 そしたらやはり、特に…
こんにちは、MLBお兄さんこと松村です。 2024年もあと僅かですね。 オフシーズンのニューヨーク・ヤンキースは補強に積極的で、2025年シーズンが既に楽しみになっています。 冬休みの自主学習として AI エージェントについて学ぶために、娘様に使ってもらうアプリを作っていますが、Azure Functions で Semantic Kernel を使用する手順が整理できたのでまとめます。 今回は .NET 9 Isolated の Azure Functions を例とします。 Azure Functions プロジェクトの作成 Visual Studio の場合、Azure の開発のワークロ…
失敗しているGitHub Actionsです。 https://github.com/ledsun/wands/actions/runs/12547524257/job/34985157639#step:4:48 次のようなエラーが起きています。 /opt/hostedtoolcache/Ruby/3.4.1/x64/lib/ruby/3.4.0/uri/generic.rb:601:in 'URI::Generic#check_host': bad component(expected host component): ::1 (URI::InvalidComponentError) fro…
以下の続き kamatimaru.hatenablog.com トークンエンドポイント トークンエンドポイント(=認可コードを受け取ってトークンを発行するエンドポイント)を実装していく。 https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint ディスカバリへの登録 最初にディスカバリにトークンエンドポイントのURLを追加する class DiscoveryView(View): def get(self, request): return JsonResponse( { "authorization_endpoin…
以下の続き kamatimaru.hatenablog.com 同意処理 前回は同意画面の表示までできたので、同意をsubmitした際に認可コードを返す処理を実装していく。 最終的には以下のようなステータス302のリダイレクトレスポンスを返す。 HTTP/1.1 302 Found Location: http://localhost/callback?code=ijklmn&state=abcd LocationのURL: 認可リクエスト時にパラメータで受け取ったredirect_uri code: 次のステップでトークン発行に使うコード(ランダム文字列) state: 認可リクエスト時にパ…
12/29 - 12/30という日程で開催された。BunkyoWesternsで参加して3位。これをもって今年のCTFは終わり。まだAlpacaHack Round 8があるけれども、用事があるのでまたそのうち遊びたい。 裏番組としてこれまた評価の高いhxp 38C3 CTFが開催されており、当然ながら我々にはそんなリソースはないのでこちらのCTFにだけ参加したのだけれども、Friendly Maltese Citizensが両方に出て優勝および準優勝というとんでもないパフォーマンスを見せていた。 [Web, Misc 194] fetch-box (19 solves) [Web, Misc…
概要 カメラ付きのAtomS3(M5Stack AtomS3R-CAM)で、画像を撮影してみます。 Wifi接続でブラウザで取得するやつです。 M5AtomS3R-Camの罠 カメラ初期化前にG18をLOW(ON)にしないと使えないよ! Before initializing the camera, GPIO18 must be set to low to enable power supply. This operation will also turn on the power indicator light. ATOMS3R Camera Kit (8MB PSRAM)共立電子産業株式会…
今日は主に parser や irb の修正がありました。 [e4ec2128ae] Nobuyoshi Nakada 2024-12-28 09:40:37 UTC parser が Ctrl や Meta キーで修飾されたマルチバイト文字を SyntaxError として拒絶するようにしています。 ripper 利用時に tokenize で誤った分割したバイト列を返してしまっていたようです。 [ruby-core:120435] [Bug #20990] [609a555ee0] Stan Lo 2024-12-28 15:55:20 UTC 標準添付ライブラリ irb の組み込みコマン…
以下の続き kamatimaru.hatenablog.com 認可エンドポイント RPのクライアントの作成 client_idの存在チェックをしていないので、RPのクライアントを作成できるようにしていく。 まずはModelを定義する。クライアントは一意なので、nameとclient_idにunique=Trueをつける ※ シークレットは必要になってから追加する models.py from django.db import models class RelyingParty(models.Model): name = models.CharField(max_length=64, uniq…