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'.…
昨夜 C# 向けの新しい拡張ライブラリとして Microsoft Extensions.AI のプレビューが公開されました。突然出てきた感が凄いですが、個人的には Microsoft.Extensions 名前空間に用意されたライブラリは有用なものが多いので気に入っています。今回は AI 向けなのでどのレベルをサポートしているのか気になる部分ですが、各種 AI サービスの SDK と Semantic Kernel のようなフレームワークの間を埋めるような抽象化されたライブラリでした。サンプルでも書かれているように開発中は Ollama を使うけども、本番では Azure AI Inferen…
Internetから自宅アクセス用のリバースプロキシを構築したのですがInternetに晒しているので攻撃が怖いところです。 自分以外にもアクセスする人いるのかなと思ってアクセスログ見たらやっぱり来てますね。 masashi@debian-s-1vcpu-512mb-10gb-sgp1-01:~$ sudo grep -P ' \d{3} ' /var/log/haproxy-traffic.log \ | awk 'split($4, IP, ":") {print IP[1]" "$9" "$16" "$17}' \ | sort | uniq -c | grep -v guacamole…
先日、イタリア北部フリウリ州のCansiglio という場所に行ってまいりまして、ここでの戦時中の悲しい歴史の一部分をご紹介しました。 今回は、ここに移り住んだCimbri(チンブリ)と呼ばれる民族をご紹介します。 そもそもCimbriとは紀元前2世紀の終わりに、北欧から侵略してきたゲルマン系もしくはケルト系の民族一部だったと言われています。 彼らは現在の北イタリア、アルプス地方に住み始め、このCansiglioに暮らしていたCimbriはもともとヴェネト州ビチェンツァから移り住んだことがわかっているのだそうです。 i cimbri del Cansiglio provengono tutt…
お知らせ 概要 動作環境 ダウンロード インストール アンインストール 設定 棒読みちゃんの設定 JaneStyleの設定 更新履歴 お知らせ プラグインの配布を終了しました。(2024年10月11日) 概要 棒読みちゃんのプラグインです。 JaneStyle (5chブラウザ) の新着レスを読み上げます。 "あぼーん"されたレスを読み上げないように設定できます。 NGName・NGID・NGWordに対応しています。 NGExに対応しています。(外部板URI・NGBEは非対応) 動作環境 Windows 7/8/10 Microsoft .NET Framework 3.5 棒読みちゃん V…
Terraformでサーバレスを作る クラウドの自動化などでTerraformを使うときはVPC、EC2を構築することが多くサーバレスの部分に触れる機会が少なかったので、 Terraformを使ってAWS上にEC2の仮想マシンを使用しないサーバレスの形のアプリケーション作成に挑戦してみようと思います。 公式にチュートリアルがあったのでそれをTerraformで作る形に書き直してみます。 docs.aws.amazon.com 構成 インフラ チュートリアルの構成だと architecture-beta service lambda(logos:aws-s3) S3でHTMLファイルを静的ホステ…
背景 CloudFrontで公開してるコンテンツですが、パブリックではなく、別にホストしてるログインが必要なWebサイトのコンテンツあるいはURLを知ってるユーザーからのみアクセスできるようにするための方法です。 そんな時に使えるのがCloudFrontの署名付きURLや署名付きCookieです。 ログインが必要なサイト ―(署名付きURL)→ CloudFront ----- S3 署名付きURLの仕組みは署名付き URL を使用する - Amazon CloudFrontで説明されています。 署名付きURLには既定ポリシーとカスタムポリシーがあります。違いは上記AWSドキュメントサイトで解…
こんにちは、皆さん!システムエンジニアとして日々技術を追求している方々に向けて、今日はRubyとKotlinの連携についてお話しします。Rubyはシンプルで読みやすいコードが特徴的な言語で、主にWeb開発で使用される一方、Kotlinはモダンで強力な機能を持ち、Androidアプリやサーバーサイド開発で活躍しています。両者の連携は、既存のRubyシステムに新たな機能をKotlinで追加したいときに非常に有効です。 今回は、具体的なコード例を交えながら、どのようにしてRubyとKotlinを連携させるのかを解説します。この記事では、APIベースの連携を中心に、簡単な例を使って初心者でもわかりやす…
今日は macOS 15.0 での環境の不具合に対応する修正や -> による lambda 記法の SyntaxError の修正などがありました。 [3aa044f10c] Nobuyoshi Nakada 2024-10-09 11:45:18 UTC RbConfig::CONFIG の "LIBRUBY_RELATIVE" キーが mswin 環境でセットされていなかった不具合を修正しています。 [ruby-core:119491] [Bug #20791] [d10e09b7e3] David Rodríguez 2024-10-09 10:28:57 UTC rubygems の …
Chart.jsをサーバー側で動かして画像化する必要がありました。 調べた感じライブラリでちゃんと動きそうなものがなかったので、自前で動かした内容を記載しておこうと思います。 環境 "dependencies": { "@napi-rs/canvas": "^0.1.56", "chart.js": "^4.4.4", "hono": "^4.6.2" }, "devDependencies" { "@type/bun": "latest" } Bunを利用する 最初はNode.jsで動かしてましたが、ESMとCommonJSのアレがめんどくさくなってBunに乗り換えました。 結果めちゃ良かっ…
RubyとScalaは、それぞれ異なる特徴を持つプログラミング言語ですが、プロジェクトによってはこの2つの言語を連携させて使用するケースがあります。Rubyは簡潔で柔軟なスクリプト言語として広く使われていますが、Scalaは関数型とオブジェクト指向の両方の特徴を備えた強力な言語です。Rubyの柔軟性とScalaのスケーラビリティを活かし、これらを連携させることで、より強力なアプリケーション開発が可能になります。 この記事では、RubyとScalaを連携させて実用的なコードを作成する方法を紹介します。まずは基本的なコンセプトを理解した後、具体的な例で両者を組み合わせたアプリケーションを作っていき…
はじめに iOS をはじめとする Apple プラットフォームでは Universal Links が利用できます。この機能を使用することで、ウェブサイトとアプリを自然に連携させることができます。 しかしながら、この機能には今回紹介するような注意点があります。 それは、アプリが開いたりブラウザが開いたりすることです。今回はその紹介と暫定対応策を書くだけでどうっていうことはありません。 今となってはもう Universal Links の実装がわからない人なんていないかと思います。 Apple からも Universal Links のデバッグについての説明などが出ているので紹介不要と思うので説…
はじめに ソーシャル経済メディア「NewsPicks」SREチーム・新卒エンジニアの樋渡です。今回は、AWSサービスである「Lambda」「CloudFront」「S3」を用いて、弊社で使用している社内向けシステムの基盤を再構築し、開発者体験の向上やセキュリティ対策を行なったお話です。 お話の内容 弊社で使用している社内向けシステムの一つに「Watson」というシステムがあります。「Watson」とは簡単にいうと「NewsPicks」のユーザーIDをもとにユーザーごとの情報を検索・閲覧できるシステムで、お客様からの問い合わせ対応等に活用される重要なシステムです。「Watson」は構築されたのが…
はじめに こんにちは!トモニテにて開発を行っている吉田です。 今回は API を本番のデータにつなぎながら確認できるようステージング環境を作成したのでそのことについて書いていきます! 目的 本番環境へのリリース前には、さまざまなケースを考慮したテストを行うことが不可欠です。しかし、開発環境で考えられる限りのケースを網羅しても、どうしても考慮漏れが発生することがあります。このようなリスクを軽減するために本番環境を利用したステージング環境を構築しました。 これにより、実際のデータを使用しながら運用時を想定したテストを行うことが可能になりリリース前に潜在的な問題を早期に発見し、サービスの品質を向上が…
よく使うステータスコードの役割と、Railsのアクションでステータスコードを指定する基本の書き方について整理しました。 200 OK リクエストが成功したとき 特にGETリクエストでページやデータを返す場合 設定不要(デフォルトで返る) 201 Created 新しいリソースが作成された場合(例:ユーザー登録や新規記事作成など) [例] def create @article = Article.new(article_params) if @article.save redirect_to @article, notice: '記事が作成されました。', status: :created .…
What is a Content Security Policy (CSP)? 記事は上記記事を意訳したものです。 ※当ブログでの翻訳記事は元サイト様に許可を得て掲載しています。 ウェブサイトはクラウドサービスプロバイダーで設定する必要がありますが、もう一つのCSP、つまりコンテンツセキュリティポリシー(Content Security Policy)についてはどうでしょうか? コンテンツセキュリティポリシー(CSP)は、HTTPレスポンスヘッダーで提供される標準であり、クロスサイトスクリプティング(XSS)攻撃、クリックジャッキング、パケットスニッフィング、およびウェブページのクライアント…