
起動済みプロセス(例:デーモンプロセス)の標準出力を確認する方法
前書き:ログを残さないデーモンと出会った DBにアクセスするデーモンプロセスが、稀にSegmentation Faultでお亡くなりになる現象に遭遇しました。 このデーモンプロセスは、C言語で書かれており、デバッグ情報をログファイルに殆ど出力していませんでした。多くの情報は標準出力に出力されていたため、デバッグするにはデーモンプロセスの標準出力を確認する必要がありました(もしくは、GDBを使う)。 ...

前書き:ログを残さないデーモンと出会った DBにアクセスするデーモンプロセスが、稀にSegmentation Faultでお亡くなりになる現象に遭遇しました。 このデーモンプロセスは、C言語で書かれており、デバッグ情報をログファイルに殆ど出力していませんでした。多くの情報は標準出力に出力されていたため、デバッグするにはデーモンプロセスの標準出力を確認する必要がありました(もしくは、GDBを使う)。 ...

前書き:記事100本書けば1万PV/月?違うよ Debimate(本サイト)は、2020年4月に記事総数が100本に達しました。 本記事では、ブロガーがよく行う収益報告と振り返りを行います。 本記事で紹介する内容 ...

前書き:C言語のstatic関数は単体テストできます C言語で単体テストを作成する際に、**「どうやってstatic関数をテストコードから呼び出せばいいのか?」**と迷った事はありませんか?例えば、以下のコードのprivate_func()を他のCソースファイル(例:テストコード)から呼び出せるでしょうか。 ...

前書き:Singletonパターンは奥が深い Singletonパターンは、GoF(Gang of Four)デザインパターンの一つであり、あるクラスのインスタンスが一つしかない状態を保証する方法です。「インスタンスが一つしか無い」という前提を生み出す事で、複数のインスタンスを用いる事によるバグの発生リスクを無くせます(正しく実装できていれば)。 ...

前書き:Builderパターンとは Builderパターンは、GoF(Gang of Four)デザインパターンの一つであり、複雑な構造を持つインスタンス生成を容易にするための手法です。 ...

前書き 先日、Rubyのコーディング練習がてらに、ユーザ情報を出力するコマンドの仕様をボンヤリと考えていました。 Rubyの練習用に「neofetchがシステムの情報出すなら、自分はユーザ情報を表示するコマンド作るか」と思ったが、既に類似仕様のfingerコマンド(https://t.co/epoOGD4zlC)があった。 そりゃ、あるよね。 — Nao (@ARC_AED) April 16, 2020 出力すべきユーザ情報には「ユーザが使用しているログインシェル」を含めようと考え、「/etc/passwd」を確認したら、ログインシェルを記載するセクションに予想外の記述がありました。その記述とは、「/usr/sbin/nologin」および「/bin/false」です。明らかに、シェルではありません。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き 自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。 ...

前書き:自動化にBashを使うと後々辛い 本記事では、自動化で用いる言語をBash(Shell Script)からRubyやPython3に変更する方法を紹介します。Bash / Ruby / Python3のそれぞれで、ファイル操作やディレクトリ操作などをどのように書くか、コード例と実行例を示しながら紹介します(正確には、別記事で実装例を説明します)。 ...

前書き PostgreSQLは、オープンソースのオブジェクト関係リレーショナルデータベース関係システム(ORDBMS)です。2020年時点のシェアランキングは、4位です。やや人気のないDBと言えるでしょう。 シェア1位のOracle DatabaseおよびMicrosoft SQL Serverは、有償です(Microsoft SQL Severは無償版も存在)。そのため、PostgreSQLは同じくオープンソースであるMySQL(シェア2位)と比較される機会が多いです。PostgreSQLは高機能・堅牢な設計、MySQLは速度に重きを置いた設計であり、用途に応じて使い分けられるようです。 ...

SEOの名著と呼ばれる"沈黙のWebライティング" SEOの書籍を読んだことがなければ、Web版で本書の中身をチラ見してみよう! Search Engine Optimization(Web検索最適化)。 ブロガーやアフィリエイターであれば、SEO(Googleの検索エンジン)と戦い、自分のWebサイトを検索上位に押し上げるために(そして日銭を稼ぐために)、日々工夫を凝らしていると思います。 ...

収録曲 収録曲 Hit the Lights The Four Horsemen Motorbreath Jump in the Fire (Anesthesia)Pulling Teeth Whiplash Phantom Lord No Remorse Seek & Destroy Metal Militia Kill’Em AllはThrash Metalの原点 Kill’em AllはMetallicaの1st Albumであり、1983年〜1990年に一大ムーブメントとなったThrash Metal(音楽ジャンル)の方向性を示しました。圧倒的なスピード感で、湿り気や泥臭さを排除した無機質なリフを弾き倒すスタイルは、過去のバンドに見られないものでした(同時期にThrash Metalバンドは複数いましたが、作品のリリースが早かったのはMetallica)。 ...

ASCII<->N進数への変換は、Terminalで確認可能 ASCIIコードは、10進数(8進数、16進数)から英数字・記号に変換するための文字コードです。正確には、文字コードとは以下の定義のように、2進数との変換を指します。 ...

Rubyで初めてのオブジェクト指向なら本書! あなたのメイン言語がRubyで、オブジェクト指向を学んだ事がないなら、本書はオススメです。 本書は、「簡潔で見通しが良く、変更が容易な設計」と「アンチパターンと呼ばれる設計」との違いを教えてくれます。やや回りくどい文章で翻訳されていますが(恐らく原文も回りくどい)、本書の価値を落とすレベルではありません。 ...

Qiitaに投稿するメリット:企業からのスカウト 皆さんは、Qiitaが好きですか? Qiitaには、12月のアドベントカレンダーを筆頭に、マニアックな情報から技術者ポエムなど幅広い情報が掲載されています。人によっては「低品質な記事が検索上位に上がってくる!」と感じ、Qiitaを嫌っている方がいらっしゃるかも知れません。しかし、自分で記事を書く分には、Markdownベースかつ編集プレビューが即座に表示されるので使いやすいWebサービスだと思います。 ...

Ruby入門なら本書! 2020年時点で、Ruby入門書の決定版は、本書でしょう。本書は、説明が丁寧に記載されており、内容の分かりづらさがありません。読者が躓きそうなポイントを先読みしたかのようなコメントも随所に見られます。Rubyの基本的な文法を説明した後、各章末でサンプルコードを示す形式のため、写経が好きな方は気にいると思われます。 ...

リファクタは日常的に実施すべきと教えてくれる名著 本書で登場する表現である**「コードの不吉な臭い」**。 不吉な臭いとは比喩表現であり、リファクタリングが必要そうなコード(悪い設計)から感じられる雰囲気を意味します。複雑度が高く、モジュールごとの役割が不明確で、暫定対応が恒久対応となってしまったコード。そんなコードを読んだ時の感覚が、コードから不吉な臭いがするとみなせます。 ...

IoTと縁がなかった開発者向けの網羅的な一冊 本書は、技術評論社の養成読本シリーズの一つであり、IoT(Internet of Things)システム構成を網羅的に説明しています。本書の構成は、IoTの全レイヤー(下記の引用参照)における代表的なハードや技術について広く述べた後に、Raspberry Pi/Slack/3G接続用モジュールを用いた小規模なシステム(トイレ個室の空き情報を通知するシステム)のハンズオンを紹介する流れとなっています。養成読本の中で最も読了感が良く、初心者から中級者のステップアップに役立ちそうと感じられました。 ...

後進国から脱せられるかはトップ次第? 本書は、バブル景気後の日本が貧しくなった原因を説明した後、日本が再び豊かになる方法論(著者:加谷珪一氏の考え)を示しています。私のようなソフトエンジニアで、経済に興味がない人が読むのに、ちょうどよい分量(219ページ)かつ内容でした。日本の駄目な例として、印鑑問題、電話オジサン、ご挨拶テロ、働かないオジサンなどを知らない人は、是非本書を一読していただきたいです。 本書のタイトルは、実に刺激的。もう日本は遅れている国だと認めなさい、と諭されているようです。平成生まれの社会人にとって見れば、日本が上り調子の時代を知らない訳ですから、日本の未来が暗いのは周知の事実です。その認識でいてもなお、本書のタイトルには興味を惹かれました。 ...

他言語経験者もしくはJava経験者向けの入門書 本書は、古いJavaのスタイルとモダンスタイルを比較しながら、クラス、型、コレクション、ラムダ、Stream API、例外、文字列操作、ファイル操作、日付操作のコーディング方法を説明しています。より実践よりの知識として、オブジェクト指向、デザインパターン、ビルド、各種テスト方法、静的解析、便利なライブラリについても記載されています。分かりやすい説明で、網羅的な情報が取り扱われているため、他言語経験者(開発経験者)であればスッと読み込めると思われます。訳書ではないため、文章がおかしい部分もありません。 ...

Ugearsとは Ugearsは、機械装置にインスパイアを受けたオブジェを木材で組み立てられるように設計されたメカニカルキットです。組み立てに使うのは、木材、ゴム、ロウ(ロウソク)、紙やすりだけであり、接着剤を使用しません。多種多様なキットが用意されており、それらの全てが精巧に駆動します。 製品のラインナップは、鉄道や車、TRPG用のキットなど、男性が好みそうなオブジェが多いです。女性向けの製品が無い訳ではなく、下図の蝶やアンティークボックスなど、見た目が美しい製品も多数存在します。金額は製品サイズと精巧さによって異なり、おおむね約5000円程度という感覚です。 ...

シンプルなストーリーで描かれた純愛作品 本作のストーリーは、本筋がシンプルであり、話の流れが掴みやすいです。麻薬取締局(警官)に家族(正確には弟)を殺されたマチルダが、隣の部屋に住んでいた殺し屋のレオンに復讐を依頼し、最後に警官とレオン・マチルダが銃撃戦を繰り広げます。警官側にサイコパスなスタンスフォールドがいるせいで、序盤の展開で混乱するかもしれませんが、それ以外は概ね期待を裏切らないストーリー展開です。 ...

前書き ロシア人女性は、男性から立てて貰う事を好みます。この一般論は、義父(ロシア人)が義母(ロシア人)のために飲み物を作る場面や、ロシア旅行中に男性が女性に花束を渡す場面を見て、概ね正しいと感じています。しかし、身近な人からの善意を嬉しく感じるのは、ロシア人に限った話ではないと思います。国籍や性別に関係なく、「人は他人から褒められれば(優しくされれば)嬉しい」ものです。 ...

前書き 本記事では、autofsを用いて、HDD/SSD/USBメモリ(SATA接続 or M.2接続 or USB接続)を自動的にマウントする方法を紹介します。 ...

前書き:何故HDDを2TBまでしか認識しないか 本記事では、gdisk/mkfsコマンドを用いて2TB超のHDDをフォーマットする方法を紹介します。 前提知識ですが、HDDは2TBの壁が存在します。HDDは、MBR(Master Boot Record)形式を用いて、パーティション(領域)をセクター単位で管理しています。通常のHDDは、セクターサイズが512Byteであり、パーティション内のセクター開始位置とセクター数の管理には4Byte(32bit)を使用します。この制約によって、「最大2TB(アクセスできるセクター数×セクターサイズ = 2の32乗×512)」までしか管理できません。 ...

前書き 増税前(2019年9月)に、自作PCパーツをドサッと買いました。 https://twitter.com/ARC_AED/status/1177817660777582592 構成は、下表の通りです。評判の良い第三世代Ryzen CPUを中心に据えつつ、メモリ量を現状の32GBから64GBに増やし、ストレージも複数OSをインストール可能な環境を目指しました。 ...

任天堂 元社長である岩田 聡氏のインタビュー集 本書は、任天堂の元社長である岩田 聡氏のインタビュー記事をまとめたものです。岩田聡氏は、外部会社であるHAL研究所のプログラマー(後に社長)でありながら、100年ほど同族経営を続けていた任天堂の外様社長に抜擢された異色の経歴を持つ人物です。 ...

前書き 前回、キーボードのみで操作を完結させる手段として、keynavを紹介しました。 マウスポインタをキーボードで操作するkeynav 同じように、キーボードで操作が完結できるw3mを本記事で紹介します。w3m(WWW-wo-Miru)は、日本人が作成したテキストベースWebブラウザです。端末上でWeb検索作業できますが、使いづらい部分があったため、それらを補うスクリプトも本記事に記載します。 検証環境 _,met$$$$$gg. nao@debian ,g$$$$$$$$$$$$$$$P. ---------- ,g$$P" """Y$$.". OS: Debian GNU/Linux 10 (buster) x86_64 ,$$P' `$$$. Kernel: 4.19.0-6-amd64 ',$$P ,ggs. `$$b: Uptime: 46 minutes `d$$' ,$P"' . $$$ Packages: 2476 (dpkg) $$P d$' , $$P Shell: fish 3.0.2 $$: $$. - ,d$$' Resolution: 2560x1080 $$; Y$b._ _,d$P' DE: Cinnamon 3.8.8 Y$$. `.`"Y$$$$P"' WM: Mutter (Muffin) `$$b "-.__ WM Theme: cinnamon (Albatross) `Y$$ Theme: BlackMATE [GTK2/3] `Y$$. Icons: gnome [GTK2/3] `$$b. Terminal: gnome-terminal `Y$$b. CPU: Intel i3-6100U (4) @ 2.300GHz `"Y$b._ GPU: Intel HD Graphics 520 `""" Memory: 2974MiB / 32060MiB w3mのインストール方法 $ sudo apt update $ sudo apt install w3m $ sudo apt install w3m-img (注釈)端末上で画像を表示したい場合はインストール w3mの起動方法 [起動書式] ...

前書き Linuxエンジニアの中には、マウスを嫌う人が居ます。なるべくキーボードで操作を完結させる事を美徳と考える人(変人)です。しかし、マウスを完全に排除したくても、マウス(マウスポインタ)で無ければ操作できないタイミングがあります。 ...

前書き 私は、組み込みエンジニアとして中小企業で3年程度働いた後、大企業(大手メーカ)で2年間仕事する機会を得ました。この記事を執筆段階では、1年半しか大企業での働き方を経験していませんが、大企業のメリット・デメリットが徐々に見えてきました。 ...

前書き GDBをリッチなText User interface環境で実行するツールは、以前から複数ありました。例えば、 CGDB:ViライクなキーバインドのGDBフロントエンド GDB TUI mode:EmacsライクなキーバインドのGDB標準のTUI環境(オプションtui) NeoDebug:Vim用GDBフロントエンドプラグイン。Vim標準(Termdebug)より高機能 などがあります。 ...

前書き 私は、2019年にロシア出身の女性と国際結婚しました。私の経歴は、新潟の高校・大学を卒業し、そのまま地元のIT企業に就職するというありふれたものです。英語力はTOEIC700点台で簡単な英語を読めるが話せず、ロシア語はСПАСИБО(スパシーバ、ありがとう)ぐらいしか分からないレベルです。 ...

前書き C言語は歴史の長い言語のため、非推奨関数があります。例えば、strcpy()は文字列をコピーする際にサイズチェックをしないため、バッファオーバーフローを引き起こす可能性があります。そのため、一般的には、strcpy()の代替関数としてstrcpy_s()を使用する事が推奨されています。 ...

Винни-Пух(ヴィーニ・プーフ)とは この世には3種類のプーが存在します。 ディズニー版 くまのプーさん(原作はA.A.ミルンの小説) ロシア版 くまのプーさん"Винни-Пух(ヴィーニ・プーフ)"(原作はA.A.ミルンの小説) 児童小説版 クマのプーさん(A.A.ミルン) くまのプーと聞けば、大抵の日本人はディズニーによるアニメを思い浮かべるかもしれません。はちみつが異常に好きで、おバカな発言をするぬいぐるみ。それがディズニー版のプーさんであり、ミッキーよりも公式グッズ売上がある程、人気があります。熊なのに黄色くカスタマイズされた見た目から分かる通り、言動や性格、振る舞いも大げさにデフォルメされている印象があります(以下、ディズニー公式動画) ...

前書き 過去の記事(環境構築: Linux Kernelモジュールの作成準備)では、 Linux Kernelソースコード 自作Kernelモジュール を分離して管理していました。ディレクトリ構成は、以下のような状態です。 ...

前書き:mutexとは Linux Kernelに限らず、様々なプログラミング言語やライブラリはロック機構を提供しています。ロック機構は、複数のプロセスが同時に共有データを書き換え、意図しないデータ状態となる事を防ぎます。代表的なロック機構には、 ...

前書き:3000PV/月、収益800円/月 サイト開設6ヶ月目で、3000PV/月(PV=Page View、アクセス数)、収益800円/月を達成しました(実際はもう少し多い)。ブログ界隈では、3000PV/月を超えると脱ビギナーと見なせるそうです。記事数は、本記事で54本となりました。 ...

前書き 本記事では、Linux KernelにおけるCharacter Device向けのDevice Driverを作成する方法を示します。専用のHardware(例:シリアルデバイスのUARTなど)を用いず、メモリ上のデータ読み書きのみを行います。そのため、擬似デバイス(/dev/nullや/dev/zeroなど)を操作するDriverと同等です。 ...

収録曲 収録曲 [DISK1] 1. Over The Rainbow/Kill The King 2. Medly: Man On The Silver Mountain/Blues/Starstruck 3. Catch The Rainbow 4. Mistreated 5. 16th Century Greensleeves 6. Still I’m Sad [DISK2] 1. Over The Rainbow/Kill The King 2. Mistreated 3. 16th Century Greensleeves 4. Catch The Rainbow 5. Medly: Man On The Silver Mountain/Blues/Starstruck 6. Do you close your eyes 本作発表前にリリース済みAlbumのReview Review: Ritchie Blackmore’s Rainbow–銀嶺の覇者–(Rainbow) Review: RISING–虹を翔る覇者–(Rainbow) Rainbow初のLive作品(曲目および演奏はツギハギ) 本作はOriginal版(DISK1のみ)が1977年にリリースされ、Deluxe版(DISK1/DISK2の両方)は2012年にリリースされました。当初は初来日公演である大阪公演(1996年12月5日、8日、9日のいずれか)を用いて、“Chase the Rainbow: Live in Japan"と銘打つ予定だったそうです。70年代は、日本でLiveした事を前面に出した作品が多かったため、このタイトルは自然に思われます。 ...

前書き 本記事では、CLI(Terminal)で用いるinteractive shellを**fish(friendly interactive shell)に移行する方法を記載します。fishは、Debian環境のdefault shellであるdash(POSIX互換のash拡張)やlogin shellであるbash**よりも優れた点が多いです。 ...

収録曲 収録曲 Long Live Rock ’n’ Roll Lady of the Lake L.A. Connection Gates of Babylon Kill the King The Shed(Subtle) Sensitive to Light Rainbow Eyes 前作のReview Review: On Stage Deluxe Edition (Rainbow) Review: RISING–虹を翔る覇者–(Rainbow) アメリカ市場を意識した結果、大作志向の終焉 本作は、Ritchie Blackmoreがアメリカ市場を意識した結果、過去の二作(銀嶺の覇者、虹を翔ける覇者)より楽曲がコンパクトになっています。ただし、リリース時点(1977年)におけるコンパクトさであり、2019年の視点(約40年越しの視点)で聴けば、前作と大差がない重厚さです。 ...

前書き 少し古い雑誌ですが、CQ出版社のInterface誌(2016年10月号)に「レベルアップ! オリジナル・コマンドを作る」という記事がありました。しかし、この雑誌に書かれている内容は、bashに偏っており、情報が不足していると(当時)感じました。 ...

前書き 過去の記事で、debソースパッケージの取得方法を示しました。 Linuxコマンドのソースコードを取得する方法(Debian環境):オリジナルコマンド作成前の勉強向け ソースコードを取得したら、自身で改変し、ビルドも試したくなる筈です。そのため、本記事では、debソースパッケージをビルドする方法を示します。debソースパッケージの取得に関する設定は、上記の過去記事を参照して下さい。 ...

前書き Neomuttは、Command Line Interface(CLI)で使用するメールクライアントです。mutt(1995年に登場したメーラー)をforkしたプロジェクトであり、その上位互換となっています。CLI環境でメールを読む理由は、動作が快適な事や省メモリである事が挙げられます。 ...

収録曲 収録曲 Tarot Woman Run with the Wolf Starstruck Do You Close Your Eyes Stargazer A Light in the Black 前作のReview Review: Ritchie Blackmore’s Rainbow–銀嶺の覇者–(Rainbow) Rainbowの全アルバム中、最も重いサウンド 本作は、前作の“Ritchie Blackmore’s Rainbow(銀嶺の覇者)”と比較して、メンバーチェンジで獲得したCozy Powell(Dr.)のシンプルで力強いドラミングによって、Hard Rock然としたサウンドへと急激に様変わりしています。 ...