<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>技術 on ビットログ</title><link>https://blog.bitmeister.jp/categories/%E6%8A%80%E8%A1%93/</link><description>Recent content in 技術 on ビットログ</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Mon, 11 May 2026 07:30:10 +0000</lastBuildDate><atom:link href="https://blog.bitmeister.jp/categories/%E6%8A%80%E8%A1%93/feed.xml" rel="self" type="application/rss+xml"/><item><title>System x3100 M5のリチウム電池交換</title><link>https://blog.bitmeister.jp/posts/youtan/5489/</link><pubDate>Mon, 11 May 2026 07:30:10 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5489</guid><description>&lt;p&gt;社内サーバルームにて突如爆音を轟かせたSystem x3100 M5。なにごとかとマシンを確認するとSystemエラーLEDが点灯しているではないか。&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img
src="PXL_20260508_085244776.jpg"
alt=""
loading="lazy"
/&gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Free5GC v3.3.0での複数経路設定</title><link>https://blog.bitmeister.jp/posts/youtan/5482/</link><pubDate>Tue, 28 Apr 2026 08:58:51 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5482</guid><description>Free5GCで上記の構成をsmfcfg.yamlのlinksに記述する場合、通常は以下のように共通入り口にgNB1,gNB2を記述する必要があるかと思います。</description></item><item><title>OSM (Open Source MANO) v16 インストール</title><link>https://blog.bitmeister.jp/posts/kot/5467/</link><pubDate>Tue, 31 Mar 2026 04:28:26 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5467</guid><description>&lt;p&gt;OSM (Open Source MANO)の &lt;a href="https://osm.etsi.org/docs/user-guide/v16/03-installing-osm.html" target="_blank" rel="noreferrer"&gt;公式サイト&lt;/a&gt; では、コマンド&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ wget https://osm-download.etsi.org/ftp/osm-16.0-sixteen/install_osm.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ chmod +x install_osm.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ./install_osm.sh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;を打つだけでインストールできると書いてありますが、インストールスクリプトに書かれているバージョンが古く使用可能でないパッケージ等がある理由で途中で失敗してしまいます。2026年1月にOSM v16のインストールに成功した際の設定について書きます。&lt;/p&gt;
&lt;h2 class="relative group"&gt;環境
&lt;div id="環境" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%92%b0%e5%a2%83" aria-label="アンカー"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;&lt;/th&gt;
&lt;th style="text-align: left"&gt;インストールした環境&lt;/th&gt;
&lt;th style="text-align: left"&gt;OSM公式の推奨環境&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;OS&lt;/td&gt;
&lt;td style="text-align: left"&gt;Ubuntu 22.04 LTS (Jammy Jellyfish)&lt;/td&gt;
&lt;td style="text-align: left"&gt;Ubuntu 22.04 LTS (Jammy Jellyfish)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;RAM&lt;/td&gt;
&lt;td style="text-align: left"&gt;16GB&lt;/td&gt;
&lt;td style="text-align: left"&gt;16GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;CPU数&lt;/td&gt;
&lt;td style="text-align: left"&gt;4&lt;/td&gt;
&lt;td style="text-align: left"&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;ディスク&lt;/td&gt;
&lt;td style="text-align: left"&gt;128GB&lt;/td&gt;
&lt;td style="text-align: left"&gt;80GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;NIC&lt;/td&gt;
&lt;td style="text-align: left"&gt;ネット接続ありx1 ネット接続なしx1&lt;/td&gt;
&lt;td style="text-align: left"&gt;ネット接続ありx1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 class="relative group"&gt;インストール
&lt;div id="インストール" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab" aria-label="アンカー"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;インストールスクリプトを実行する前に設定を書き換えます。&lt;/p&gt;</description></item><item><title>Common Alert Message Format</title><link>https://blog.bitmeister.jp/posts/bit/5395/</link><pubDate>Fri, 28 Jun 2024 02:47:22 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5395</guid><description>きょうは Common Alert Message Format (CAMF) について所感を書きます。準天頂衛星みちびきの災害・危機管理通報サービス(DCR)というのがありまして、その拡張(DCX)のメッセージフォーマットがCAMFです。</description></item><item><title>How to Use Momonga</title><link>https://blog.bitmeister.jp/posts/bit/5342/</link><pubDate>Tue, 07 May 2024 09:02:29 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5342</guid><description>&lt;a href="https://github.com/nbtk/momonga" target="_blank" rel="noreferrer"&gt;Momonga&lt;/a&gt; はBルートサービスを利用してスマートメーターと通信するPythonモジュールです。今日はその使い方を説明します。</description></item><item><title>CPU Isolation</title><link>https://blog.bitmeister.jp/posts/bit/5288/</link><pubDate>Wed, 14 Jun 2023 10:31:22 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5288</guid><description>きょうは Linux カーネルがユーザーランドプロセスにスケジューリングしないCPUを確保しておく方法についてです。これによってコンテナやVMに割り当てるためのCPUが、ホストOSのユーザランドプロセスに使われてしまうことを回避できます。</description></item><item><title>Grandstream HT801 をつかって IPv6 で Asterisk に接続する</title><link>https://blog.bitmeister.jp/posts/bit/5270/</link><pubDate>Thu, 25 May 2023 08:35:35 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5270</guid><description>なぜ IPv6 かというと、RTPのNAT超えを考えなくてよくなるから。</description></item><item><title>RPi4, Ubuntu22.04, GPS, 1PPS, chrony</title><link>https://blog.bitmeister.jp/posts/bit/5238/</link><pubDate>Fri, 07 Apr 2023 07:30:19 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5238</guid><description>環境
u-blox M10S &amp;lt;UART, PPS-GPIO&amp;gt; Raspberry Pi 4B + Ubuntu 22.04 + chrony (NTP)</description></item><item><title>WOL Configuration on Linux</title><link>https://blog.bitmeister.jp/posts/bit/5217/</link><pubDate>Mon, 14 Nov 2022 08:12:13 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5217</guid><description>Wake On LANの設定のメモ。netplanが入っているUbuntu前提だけど、ほかのディストリビューションでも参考になるかもしれない。</description></item><item><title>ZIPコマンドでWordファイルが開けなくなった</title><link>https://blog.bitmeister.jp/posts/bit/5198/</link><pubDate>Tue, 18 Oct 2022 11:51:45 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5198</guid><description>zipコマンドでWordファイルとかExcelファイルとかと、他のいくつかのファイルを圧縮しようと思ったら、なぜかWordファイルがぶっ壊れて開けなくなって変な汗出てるみなさん、ようこそいらっしゃいました。まずは深呼吸して落ち着きましょう。</description></item><item><title>緊急警報放送を復調する</title><link>https://blog.bitmeister.jp/posts/bit/5096/</link><pubDate>Wed, 07 Jul 2021 03:14:10 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5096</guid><description>&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/%E7%B7%8A%E6%80%A5%E8%AD%A6%E5%A0%B1%E6%94%BE%E9%80%81%28EWS%29" target="_blank" rel="noreferrer"&gt;緊急警報放送&lt;/a&gt; は災害時にラジオなどの受信装置を自動起動するための信号です。このブログに辿り着いている時点で、そんなことは知ってるわいって感じですかね。でも一応書いておかないことには記事として成立しないので書きます。&lt;/p&gt;
&lt;p&gt;EWSは災害時にラジオやテレビ放送で聞くことがある、あの不穏なピロピロ音です。全く一般には普及していませんが、あれにはデジタル信号が含まれていて、それを検知すると自動起動する機能があるラジオなどがあります。どうやっているかというと、デジタル信号の0と1をそれぞれ640Hzと1024Hzの音に置き換えて表現します。これを変調といい、とくに0と1のデジタル信号を2つの周波数の変化に置き換える方式をBFSK(Binary Frequency Shift Keying, 二値周波数偏移変調)といいます。この切替を1秒間に64回行うので変調レートは64Bd(ボー)で、1回の変調で1ビットを送りますから転送レートは64bpsです。&lt;/p&gt;
&lt;p&gt;さて、アルゴリズムについてですが、音声周波数の変化をどうやってを0と1に戻すのかというと、たとえば640Hzの波は言い換えれば1/640秒に1周期の波なので、振幅軸上の特定のポイントを通過する時間間隔を測定して1/640秒と一致すれば640Hzの波だと判断できるわけです。ちなみに64Bdなので1変調の1/64秒あたりの640Hzなら10周期、1024Hzなら16周期です(取りこぼしもあるので、何回この周期を検知したら信号とみなすかは調整が必要です)。さいごに640Hzを検出したら0、1024Hzを検出したら1に置き換えればデジタル信号になります。&lt;/p&gt;
&lt;p&gt;ソースはこちら。&lt;/p&gt;
&lt;div class="github-card-wrapper"&gt;
&lt;a id="github-1e8c8cc36390792c07de9c2d23f958a8" target="_blank" href="https://github.com/nbtk/EWSDemodulator" class="cursor-pointer"&gt;
&lt;div
class="w-full md:w-auto p-0 m-0 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl"&gt;&lt;div class="w-full md:w-auto pt-3 p-5"&gt;
&lt;div class="flex items-center"&gt;
&lt;span class="text-2xl text-neutral-800 dark:text-neutral me-2"&gt;
&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"&gt;&lt;path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;div
id="github-1e8c8cc36390792c07de9c2d23f958a8-full_name"
class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"&gt;
nbtk/EWSDemodulator
&lt;/div&gt;
&lt;/div&gt;
&lt;p id="github-1e8c8cc36390792c07de9c2d23f958a8-description" class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral"&gt;
緊急警報放送復調器
&lt;/p&gt;</description></item><item><title>アップストリーム版のMPTCPを試してみた</title><link>https://blog.bitmeister.jp/posts/oh/5040/</link><pubDate>Mon, 08 Feb 2021 08:40:52 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5040</guid><description>&lt;p&gt;従来、LinuxでMPTCPを利用する場合「 &lt;a href="http://multipath-tcp.org/" target="_blank" rel="noreferrer"&gt;Linux Kernel MultiPath TCP project&lt;/a&gt;」が公開しているLinuxカーネルを使う必要がありましたが、アップストリームのLinuxカーネル 5.6以降でMPTCPが利用可能になりました。&lt;/p&gt;
&lt;p&gt;今回は、Ubuntuでアップストリーム版を使った複数サブフローでのMPTCP通信を試してみました。&lt;/p&gt;</description></item><item><title>超高速Tracerouteを実装した</title><link>https://blog.bitmeister.jp/posts/bit/4867/</link><pubDate>Tue, 27 Aug 2019 08:07:42 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4867</guid><description>牧歌的なテンポで結果を表示するTracerouteをのどかに見つめてる時代は今終わった</description></item><item><title>Tracerouteについて知っておくべきこと</title><link>https://blog.bitmeister.jp/posts/bit/4833/</link><pubDate>Mon, 26 Aug 2019 08:33:50 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4833</guid><description>Tracerouteの仕組みについて解説してるページは数あれど、障害箇所特定のノウハウはあまり見かけないので、今回は「Tracerouteは有用だけど、これを知らないと結果が読めないぞ」という話を。</description></item><item><title>Python でシングルトンパターンを実装する</title><link>https://blog.bitmeister.jp/posts/bit/4806/</link><pubDate>Mon, 03 Jun 2019 08:19:19 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4806</guid><description>&lt;p&gt;生成されるクラスインスタンスを常に一つにするシングルトンパターンを Python で実装します。&lt;/p&gt;
&lt;p&gt;Python は Java みたいに &amp;ldquo;private static&amp;rdquo; みたいな修飾ができないし、どこで初期化すればいいのかもちょっと考える必要があります。&lt;/p&gt;</description></item><item><title>Pythonの辞書に dot notation でアクセスする</title><link>https://blog.bitmeister.jp/posts/bit/4658/</link><pubDate>Thu, 29 Nov 2018 07:34:53 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4658</guid><description>Javascript のハッシュマップはドット・ノーテーション ( dot notation )でアイテムにアクセスできますよね。でも Python の辞書ではそれができません。できたら便利だなーと考えていたらひらめいたので、 dict クラスを継承した dict2 クラスを作りました。</description></item><item><title>ns-3を使ったLTE通信のシミュレーション</title><link>https://blog.bitmeister.jp/posts/kaoru/4595/</link><pubDate>Tue, 24 Apr 2018 04:53:02 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4595</guid><description>&lt;a href="https://www.nsnam.org" target="_blank" rel="noreferrer"&gt;ns-3&lt;/a&gt; とはオープンソースの離散事象ネットワークシミュレータです。ns-3を使ってLTE通信のシミュレーションを行っていた時、TCPを使うとスループットが出ない現象がありました。その原因と解決方法について書いていきます。</description></item><item><title>スレッド間でカウンタを共有する（再び）</title><link>https://blog.bitmeister.jp/posts/bit/4561/</link><pubDate>Mon, 09 Apr 2018 12:00:14 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4561</guid><description>これまでも話してきたとおり、スレッド間でオブジェクトを共有することはハイコストなので、可能な限りオブジェクトを共有しない設計にすることが性能においても品質においても重要です。しかし、どうしてもオブジェクトを共有したい場合は、昨今の処理系にはそれを保証する機能が用意されているのでそれを使って安全を担保します。</description></item><item><title>誤った並列化による性能劣化（その２）</title><link>https://blog.bitmeister.jp/posts/bit/4548/</link><pubDate>Thu, 05 Apr 2018 05:16:09 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4548</guid><description>前回の記事に引き続いて、マルチスレッドプログラムの性能についてです。前回は「コンテキストスイッチングや排他制御のオーバヘッドに見合う処理でなければ並列化は逆効果」ということがわかりました。今回はmutexのロック獲得と開放について簡単な実験します。</description></item><item><title>誤った並列化による性能劣化（その１）</title><link>https://blog.bitmeister.jp/posts/bit/4525/</link><pubDate>Wed, 04 Apr 2018 09:33:30 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4525</guid><description>前回の記事で「複数のスレッドが共有する変数をインクリメントするときには排他制御が必要」という話をしました。その結果、正しい値を得ることには成功したものの、性能が著しく落ちるという知見を得ました。今回は性能が出ないマルチスレッドプログラムに対して割り当てるCPU数をあえて制限してみます。</description></item></channel></rss>