「blob」を含む日記 RSS

はてなキーワード: blobとは

2025-06-27

anond:20250627100609 AIの使い方

ChatGPTその物が正確な知識を持ってる訳ではないので、インターネット上に公開されてる情報をChatGPTに集めさせて要約させるのがコツ。

ChatGPTだと"o3"とかがそういう作業を得意としている。

「o3-pro + DeepResearch」だとか「Gemini 2.5 pro + DeepResearch」だとか"DeepResearch"の名前を冠した機能を使えばもうちょっと詳しい情報が出てくる。

質問の例

MP5の射程距離について信頼できるソース情報を集めて教えて。

9mmパラベラム弾の弾頭特性や、カタログスペック上の射程距離運用上の実用性の違いなどを踏まえて

回答

---

***▶︎ メーカーが公称する「スペック上の射程」**

** MP5 は 9 mm×19 パラベラム弾を使用し、銃身長は約 225 mm、初速はおおむね 400 m/s。H\&K 公式サイトではこの条件で弾頭エネルギーを約 650 J とし、*effective firing range*(最大有効射程)を **200 m** と示しています。([en.wikipedia.org][1], [heckler-koch.com][2])

---

***▶︎ “射程”という言葉の食い違い**

1. **最大射程**:弾が空気中に留まり得る限界距離安全係数なし)。
2. **最大有効射程**:設計上「命中率と停止力をまだ期待できる」ぎりぎりの距離メーカー軍規格が定義。
3. **実用射程(運用上のレンジ)**:訓練・装備・任務環境を前提に、部隊日常的に想定する距離。

公称 200 m は②の概念であり、③とはしばしば乖離します。

---

***▶︎ 9 mm パラ弾の弾道と威力変化(例:Federal American Eagle 115 gr FMJ)**

** **初速・初期エネルギー**:1180 ft/s ≒ 360 m/s、356 ft-lb ≒ 480 J。
** **100 yd(約 91 m)時点**:速度 ≈ 960 ft/s、236 ft-lb ≒ 320 J。弾道は照準ラインから **-8.7 inch(-22 cm)** 下に落下(25 ydゼロ)。([federalpremium.com][3])
** 200 m 付近になると落下量はおおむね 70 cm 以上、エネルギーも 300 J 前後まで低下し拳銃弾相当となります計算値)。
** 同じ 9 mm 弾でも弾頭重量・薬量で 50 J 以上変動するため、ここでは「典型的練習弾」の例を採用。
** なお、工場マニュアルは「25 m でも発射体は 1 マイル(1.6 km)以上飛び得る」と警告しています。([cdn.preterhuman.net][4])

---

***▶︎ ゼロインと実戦での射撃距離**

** H\&K は出荷時に **25 m** でゼロイン(8 g NATO 弾、6 時照準)を調整。([en.wikipedia.org][1])
** LAPD SWATMP5 資格コースは最長 **50 yd(≈ 46 m)**。講習・CQB ドリルも 0-50 m に集中しています。([lapdonlinestrgeacc.blob.core.usgovcloudapi.net][5])
** 米海軍 SEAL/各国警察特殊部隊マニュアルでも「点的射撃はおおむね 100 m 以内」を推奨とされる例が多数(公開講習資料・訓練要領より)。

---

***▶︎ カタログ 200 m と CQB 50 m が離れる理由**

** **弾道補正**:200 m では 70 cm 以上の落下を想定して狙点を大きく上に取る必要がある。ダイオプター照準と短いサイト半径では現実的に困難。
** **停止力の低下**:100 m で既にエネルギー約 320 J、200 m では拳銃以下。防弾ベスト(IIIA 相当)への貫通は運任せになる。
** **任務特性**:MP5 の主要ユーザ法執行機関対テロ部隊であり、建物内や車両制圧など **0-50 m** が大半。
** **装備の世代交代**:100 m 超を担う火器PDWMP7 等)や 5.56 mm ショートカービンに置き換えが進み、MP5 は「最も扱いやすい短距離火器」として残った。

---

***▶︎ 結論(要点整理)**

** **公称有効射程 200 m** は“当てられる上限”を示す設計値。
** **実用射程**は多くの現場で **0-50 m**、遠くても **~100 m** が実情。
** 9 mm 弾は **100 m を超えると弾道落下と威力低下が急激**。
** MP5 の真価は「低反動・高精度・操作性」による CQB 性能であり、**200 m で戦うサブマシンガン**というイメージスペックシート上の理論値に近い。

これらを踏まえると、MP5運用する際の最適距離は「**至近〜中距離(おおむね 50 m 以内)**」と考えるのが現場常識と言えます。

[1]: https://en.wikipedia.org/wiki/Heckler_%26_Koch_MP5 "Heckler & Koch MP5 - Wikipedia"
[2]: https://www.heckler-koch.com/en/Products/Military%20and%20Law%20Enforcement/Submachine%20guns/MP5?utm_source=chatgpt.com "MP5 - Heckler & Koch"
[3]: https://www.federalpremium.com/handgun/american-eagle/american-eagle-handgun/11-AE9DP.html "Buy American Eagle Handgun 9mm Luger Ammo | 115 Grain, 1180 FPS | Federal"
[4]: https://cdn.preterhuman.net/texts/wars_and_weapons/guns/Heckler%20%26%20Koch%20MP5%20Submachine%20Gun%20Operator%27s%20Manual.pdf?utm_source=chatgpt.com "[PDF] Heckler & Koch MP5 Submachine Gun Operator's Manual"
[5]: https://lapdonlinestrgeacc.blob.core.usgovcloudapi.net/lapdonlinemedia/2022/07/Special_Weapons_and_Tactics_23000.pdf?utm_source=chatgpt.com "[PDF] LOS ANGELES POLICE DEPARTMENT Special Weapons and ..."

2021-03-20

anond:20210320174526

7と8。

技術的なところが気になる人はこれだけ読んでくれたらいい

7. アプリケーションコード自体はRocketChatのものとほぼ同じ

最後技術的な観点からエアレペルソナが純国産ではないということを指摘する。

結論から先に述べると、このアプリは純国産ではない。

RocketChatという海外で開発されたOSSチャットアプリフォーク、改変したもののよう。

ttps://github.com/RocketChat/Rocket.Chat.ReactNative

ttps://rocket.chat

フォーク元はバリバリ多国籍外資である。(RocketChat自体問題のないアプリであり、このエアレペルソナとはフォーク関係を超える関係はないと思われる)

冒頭のこの部分に関してである

ttps://play.google.com/store/apps/details?id=chat.airlex.reactnative

Google Playで公開されているエアレペルソナAndroidアプリリバースエンジニアリングして調べてみた。

ちなみに、エアレペルソナには利用規約のようなものは見当たらず、リバースエンジニアリング禁止条項も無いようだった。

ttps://apps.evozi.com/apk-downloader/

ttps://github.com/pxb1988/dex2jar

この辺を使ってapkダウンロードし、apk解凍し、chat.airlex.reactnative/classes.dexjar fileに変換した。

classes.dexから変換されたjarファイルを展開するとchat/airlex/reactnativeというフォルダパッケージが見つかる。

このパッケージ内のファイル(.classクラス)がエアレペルソナの処理を行うもののようである

特徴的なクラスにEjsonという名前のものがある。

このクラスJadを使い、デコンパイルしてみた。その結果が以下である

ttp://www.javadecompilers.com

ちなみにここからapkアップロードするとdex2jarをしなくてもJavaソースコードにまでデコンパイルしてくれた。便利。

package chat.airlex.reactnative;

import android.content.Context;
import com.ammarahmed.mmkv.SecureKeystore;
import com.facebook.react.bridge.ReactApplicationContext;
import com.tencent.mmkv.MMKV;

public class Ejson {
    private String TOKEN_KEY = "reactnativemeteor_usertoken-";
    String cardId;
    String host;
    String messageId;
    String messageType;
    /* access modifiers changed from: private */
    public MMKV mmkv;
    String msg;
    String notificationType;
    String rid;
    Sender sender;
    String senderName;
    String type;

    public Ejson() {
        ReactApplicationContext reactApplicationContext = CustomPushNotification.reactApplicationContext;
        if (reactApplicationContext != null) {
            MMKV.initialize((Context) reactApplicationContext);
            new SecureKeystore(reactApplicationContext).getSecureKey(C0617Utils.toHex("com.MMKV.default"), new RNCallback() {
                public void invoke(Object... objArr) {
                    if (objArr[0] == null) {
                        MMKV unused = Ejson.this.mmkv = MMKV.mmkvWithID("default", 1, objArr[1]);
                    }
                }
            });
        }
    }

    public String getAvatarUri() {
        if (this.type == null) {
            return null;
        }
        return serverURL() + "/avatar/" + this.sender._id + "?rc_token=" + token() + "&rc_uid=" + userId();
    }

    public String token() {
        String userId = userId();
        MMKV mmkv2 = this.mmkv;
        return (mmkv2 == null || userId == null) ? "" : mmkv2.decodeString(this.TOKEN_KEY.concat(userId));
    }

    public String userId() {
        String serverURL = serverURL();
        MMKV mmkv2 = this.mmkv;
        return (mmkv2 == null || serverURL == null) ? "" : mmkv2.decodeString(this.TOKEN_KEY.concat(serverURL));
    }

    public String privateKey() {
        String serverURL = serverURL();
        MMKV mmkv2 = this.mmkv;
        if (mmkv2 == null || serverURL == null) {
            return null;
        }
        return mmkv2.decodeString(serverURL.concat("-RC_E2E_PRIVATE_KEY"));
    }

    public String serverURL() {
        String str = this.host;
        return (str == null || !str.endsWith("/")) ? str : str.substring(0, str.length() - 1);
    }

    public class Sender {
        String _id;
        String username;

        public Sender() {
        }
    }
}

フィールド名を見てみると、cardId, host, messageId, messageType, mmkv, msg, notificationType, rid, sender, senderName, typeが存在する。

メソッドには、getAvaterUri、token、userId、privateKey、severURLが存在する。

ところで、RocketChatというOSSチャットアプリ存在する。

ttps://rocket.chat

そのRoketChatのAndroid実装の中に同名のEjsonというクラス存在する。

ttps://github.com/RocketChat/Rocket.Chat.ReactNative

ttps://github.com/RocketChat/Rocket.Chat.ReactNative/blob/develop/android/app/src/play/java/chat/rocket/reactnative/Ejson.java

見比べてみると、フィールドにcardIdが追加されている以外はフィールドメソッド名、そしてその処理の内容まで一致している。

他にもReplyBroadcastなど、同様のクラスがエアレペルソナに見つかる。

以上のことからエアレペルソナはRocketChatをフォークして、パッケージ名を変えて作られたチャットアプリであり、開発の大部分はRocketChat社の努力と多数のOSSコントリビュータによってなされたものであると思われる。

これを純国産日本製と呼ぶには大分無理がある気がする。

そもそもこのOSS時代に純だの何だの言っている時点で怪しい。

8. OSSライセンスに関して

さて、エアレペルソナがRocketChatをフォークして作られたものであるとすると、気になるのはライセンスである

RocketChatのOSSライセンスMITライセンスである

ttps://github.com/RocketChat/Rocket.Chat.ReactNative/blob/develop/LICENSE

MITライセンスは非常に緩いライセンスであるため、エアレペルソナの様にフォークして別のアプリケーションとして公開することにはおそらく問題がないということは強調しておく。

現状エアレペルソナログインできておらず(2要素認証コード送信されないといった問題が起きている模様)、使用している各OSSライセンス表示が適切に行われているかまでは調べられていない。

2020-04-08

anond:20200404200748

結局見つからない。

弾いちゃお検索というのがあったので利用してみたのだけれど

キーが違うのかダメだった。

blob:http://gakusyu.jp/03042add-da52-49c6-bad3-555eb746ae08

こんな感じ。

gdgdだけどwebキーボードで弾いてみた。

2019-08-17

anond:20190817191914

そういや、SQLアンチパターンBLOBにつっこむのを薦めてたな。

管理情報だけSQLに載せてファイルを別途保存するのはアンチパターンなんだって

anond:20190817190833

マイクロサービス時代RDBMSBLOBぶちこむ話がいまだによくあるのか…!

S3やらAzure BlobなりのStorageサービスは使わんのかな

anond:20190817190644

MYSQLBLOBフルHDPNGしまいたいんだけど拡張してとかは?(よくある)

2012-02-20

http://anond.hatelabo.jp/20120220174134

あぁ、この話は 巨大なテーブル(カラムが多いとか、大きなデータが入ってるとか)を検索するよりも、小さなテーブルでサブクエリしたほうが速いこともあるって話で会ってBLOBの是非の話ではなかったり。

一番わかり易いのが巨大なBLOBだっただけ。

http://anond.hatelabo.jp/20120220172339

BLOBはできるだけ使わない方が良いと思うぞ?

Webベースの開発だと、キャッシュコントロールとかアクセス解析のためにもそういったのは外部に置いた方が幸せだと思うが。

http://anond.hatelabo.jp/20120220170227

BLOBかな?って書いてたら修正入ってたw

確かに、バイナリデータとして画像かいれたりするけど、それが何の対象になってるかで、大分話が違うような。

http://anond.hatelabo.jp/20120220170043

MySQLなら重いBLOGがあるテーブルならサブクエリの方が速い場合がないか?ケースバイケースだけど。 BLOB・・・orz

 
ログイン ユーザー登録
ようこそ ゲスト さん