Keychron B1 Proの動作不良

初代B1 Proの動作がおかしくなった。 2024年10月に購入したもの。 あと1ヶ月早く発生していれば保証内で対応してもらえたかもしれない。 今まで使っていたパンタグラフ式のキーボード(ノートPC)では発生したことがなかった。 本製品は薄型軽量のため、耐久性に難があるのかもしれない。 後学のためにDIYで修理可能か、試してみたことをここに記す。 ※分解するとメーカー保証外になると思うので、保証期間なら分解せずにメーカーに問い合わせよう! 動作不良の内容 右のShiftキーが押しっぱなし状態になってしまう。 やってみたこと 右Shiftキーのラバードームの接触不良が原因と仮定しつつ、以下の作業を実施。 右Shiftのキーキャップを外し、ラバードームを何度か押してみる Shiftが解除されることがあるが、使っているうちに再発。 右Shiftのキーキャップを外し、エアダスターで掃除 あまり効果なし。 キーボードの電源をOFFした後に再度ON 効果なし。 キーボード本体裏にあるボタンを短押し 効果なし。 キーボード本体裏にあるボタンを長押し 効果なし。 右Shiftのキーキャップ、パンタグラフを外し、フィルムを持ち上げてエアダスターで掃除 効果なし。 ※注意 このせいで動作が悪化した可能性あり 右Shiftのキーキャップ、パンタグラフを外し、ラバードームの凸部分をカッターで切断 効果なし。切断してもShiftキーが押しっぱなし状態になっている…。 フィルムの一部分を押すとShiftが解除されることが確認できたので、ラバードームには問題がなく、フィルムの接触不良が原因だったのかもしれない。 さらに動作不良 右Shiftキーが押しっぱなしになるだけでなく、他のキーを押したときに連続入力になったり動作が不安定になった。 これ以上は修理できる見込みがなく、泥沼化しそうだったので諦めて新調することにする。4台目! 今後どうする 去年の11月に購入した2台目は今のところ不調なし。2年持たないようなら乗り換えを考えよう!

作成日: 2025年11月24日

Emacsの補完機能

プログラムなどで予約語や変数名、関数名など全て記憶することはできない。 そんなときに補完機能は便利だ。 なんとなく覚えている文字を入力して、補完機能を呼び出せば候補を表示してくれる。 記憶を助けてくれるだけでなく、正確に速く入力する手助けにもなる。 しかしEmacsの補完機能は複雑だ。 その拡張性の高さから様々な補完パッケージが存在する。 Emacsの補完機能について、AI(gpt-oss:20b)と会話を行った。 見出しがプロンプト、内容がAIの回答である。(まとめの手前まで) emacsで主流の補完機能について教えて 主流の補完機能(completion)は次のように分けられます。 パッケージ 主な特徴 使い方 company-mode 会社統合型補完。モジュール単位で「backend」を切り替えて、語彙・関数・文法など多様に補完。 M-x company-mode で有効化。 C-<tab> で候補を選択。 corfu 軽量でキーボード指向。 M-x corfu-mode で有効化。 C-<tab> で候補表示、 M-p/M-n で移動。 ivy + counsel Emacs 版 fzf=。=C-s でインクリメンタル検索。 counsel-M-x でコマンド検索。補完は ivy の ivy-read が内部で呼ばれる。 helm UI が独自。 M-x helm-M-x で補完。検索結果をウィンドウに表示し、 C-n/C-p で選択。 vertico シンプルなインクリメンタル補完。 M-x vertico-mode で有効化。 C-<tab> で候補のリストを表示。 auto-complete 古典的パッケージ。 M-x ac-start で起動。 C-<tab> で候補。 company-mode が主流になっているので、基本はそちらに置き換えると良い。 builtin completion completion-at-point=(=M-TAB=)や =icomplete=(=M-?=)。Emacs 29 以降は標準で =completion-in-region が強化されている。 使い方のコツ プロジェクトごとに設定 use-package で :ensure t と :config で global-company-mode や global-corfu-mode を有効化。 ...

作成日: 2025年9月22日

どのプログラミング言語を選ぶべきか

人間がコンピュータを動かすために使う言葉、プログラミング言語。 多くの種類があり、初学者はどれを使えばいいのかわからないこともあるだろう。 また、技術の進歩が速いため、経験者であっても今扱える言語をそのまま使うのがいいのか、 新しい言語を学ぶべきなのか迷う場面は多いと思う。 どのプログラミング言語を選ぶべきか、AI(gpt-oss:20b)と会話を行った。 見出しがプロンプト、内容がAIの回答である。(まとめの手前まで) 世の中に色々なプログラミング言語がありますがどれを使ったらいいですか? プログラミング言語を選ぶときは、まず自分がやりたいことをはっきりさせることが大切です。たとえば、ウェブサイトやアプリの開発なら JavaScript とそのフレームワーク(React や Vue など)が自然に合いますし、データ分析や機械学習なら Python が豊富なライブラリとコミュニティで人気があります。ゲーム制作を目指すなら C++ や C#(Unity でよく使われます)が性能面で有利ですし、組み込み開発なら C や Rust が安全性と高速性を兼ね備えています。また、学習のしやすさも重要です。Python は文法がシンプルで初心者に優しいですが、実際に業務で使えるスキルを身につけるには、業界で需要の高い言語を選ぶと就職やフリーランスの案件を得やすくなります。さらに、開発コミュニティの活発さも考慮すべきです。質問に対する回答やサンプルコードがすぐに見つかると学習がスムーズになります。最後に、複数の言語を組み合わせて使うケースも増えているので、最初は一つの言語に絞ってプロジェクトを完成させる経験を積んだあと、必要に応じて別の言語に手を伸ばすのも良いでしょう。 最初の言語としては何がおすすめですか? 初めて学ぶプログラミング言語としては、Python をおすすめします。文法が簡潔で読みやすく、数行で実行できるコードが多いので、失敗してもすぐに動かして確認できる点が学習に適しています。Python にはデータ分析、ウェブ開発、人工知能、ゲーム開発、組み込み系などさまざまな分野で利用されているライブラリが豊富に揃っており、実際に手を動かして成果を出しやすい環境が整っています。さらに、オンラインでのチュートリアルやコミュニティが活発で、質問に対する回答やサンプルコードを簡単に見つけられるため、独学でもスムーズに進められます。実務でも需要が高く、Python で実務経験を積むと将来的に他の言語への移行もスムーズにできるというメリットがあります。 自分で作ったプログラムを多くの人に届けたい場合はどれがおすすめですか? プログラムを「多くの人に届けたい」場合、まず配布先が何かを決めると選択がはっきりします。 ・ ウェブサイトやオンラインサービス を作りたいなら、クライアント側の実行環境がほぼ全てのブラウザに標準装備されている JavaScript(あるいはその派生である TypeScript)が最も簡単です。サーバー側なら Node.js で同じ言語を使い、開発・デプロイの一貫性が保てます。 ・ デスクトップアプリ を広く配布したい場合、クロスプラットフォームで実行できるパッケージ化が容易な言語を選びます。Electron(JavaScript/HTML/CSS)なら既にウェブ技術で作られたアプリをデスクトップ化できますし、Go や Rust でコンパイル済みの実行ファイルを作り、Windows、macOS、Linux へ配布するのも実行ファイルが小さくて簡単です。 ・ モバイルアプリ をリリースしたいときは、Google Play と App Store という二大プラットフォームを一括でサポートするクロスプラットフォームフレームワーク(Flutter(Dart)、React Native(JavaScript)など)を使うと、一度コードを書けば両方にリリースできます。 結論として、最も手軽に「誰もがアクセスできる」形で届けるならウェブを前提にした JavaScript/TypeScript が最もおすすめです。デスクトップやモバイルに拡張したい場合は、Electron、Go、Flutter などを組み合わせると、言語をまたがずに広いユーザー層へリーチできます。 ...

作成日: 2025年9月21日

モードラインを知る

Emacsのモードラインについてなんとなく知っていても、表示されているもの全て説明できる人は少ないのではないだろうか。 まずはモードラインが画面のどこにあるかおさらいしておこう。 GUI版 ーCUI版 この画面でいうとグレーの帯の部分がモードラインである。 このモードラインにはカレントバッファの現在の様々な状況が表示されている。 モードラインの構成は以下のようになっている。 GUI版 CUI版 以下の部分がGUI版と異なっている。 文字セットが(表示、入力、出力)の3つあること。 フレーム名があること。 一番左に - が一文字あり、マイナーモードの後は - の文字が連続で右端まで表示されている。 おそらく色が表示できない場合でもモードラインだとわかりやすいように線を引いている。 それぞれ何を表しているか説明する。 文字セット 現在どの文字セットが使われているか、1文字で表示している。 <表示の例> U UTF-8(Unicode)の文字セット - 特別な文字セットを使っていない = テキストデータを持っていない M-x list-coding-systems を実行すると文字コード一覧を確認できる。 ############################################### # List of coding systems in the following format: # MNEMONIC-LETTER -- CODING-SYSTEM-NAME # DOC-STRING U -- utf-8 (alias: mule-utf-8 cp65001) UTF-8 (no signature (BOM)) E -- japanese-iso-8bit (alias: euc-japan-1990 euc-japan euc-jp) ISO 2022 based EUC encoding for Japanese (MIME:EUC-JP). J -- iso-2022-jp (alias: junet) ISO 2022 based 7bit encoding for Japanese (MIME:ISO-2022-JP). S -- japanese-shift-jis (alias: shift_jis sjis) Shift-JIS 8-bit encoding for Japanese (MIME:SHIFT_JIS) E -- euc-jis-2004 (alias: euc-jisx0213) ISO 2022 based EUC encoding for JIS X 0213 (MIME:EUC-JIS-2004). J -- iso-2022-jp-2004 (alias: iso-2022-jp-3) ISO 2022 based 7bit encoding for JIS X 0213:2004 (MIME:ISO-2022-JP-2004). 1 -- iso-latin-1 (alias: iso-8859-1 latin-1) ISO 2022 based 8-bit encoding for Latin-1 (MIME:ISO-8859-1). B -- chinese-big5 (alias: big5 cn-big5 cp950) BIG5 8-bit encoding for Chinese (MIME:Big5) 特に使われているのはUnicodeのUTF-8(表示はU)とWindowsで使われているShift-jis(表示はS)だろうか。 一昔前のLinux系はeuc-jp(表示はE)が主に用いられていた。 ...

作成日: 2025年9月17日

Emacsの画面説明

Emacsの画面の構成は独特な部分がある。 WindowsやMac, Linuxがそれぞれの文化で進化していったように、Emacsも独自に進化したのだ。 Emacsを学ぶ、使う上で画面の構成を知っておくことは重要だ。 検索するときや誰か(AI含む)に尋ねるときに意思疎通がしやすくなるだろう。 Emacsには2種類の起動方法があり、ここではその2つをGUI版とCUI版と呼ぼう。 GUI版はアプリケーションごとにウィンドウが分かれているもの。 GUI版の画面はこちら。 CUI版はテキストしか扱えないCUI(例えばlinuxではstartxする前やsshコマンドで接続した後の状態)で起動した場合や、 emacs -nw で起動した場合のものである。 CUI版の画面はこちら。 GUI版は画像が表示されているが、CUI版はテキストのみの表示になっている。 画像の表示など、できることはGUI版のほうが多いのでGUI版が起動できる状態であれば GUI版を使うのがおすすめ。 構成要素 画面の構成要素はGUI版とCUI版で大きな違いは無い。 GUI版にはマウスで操作できるツールバーがある。 GUI版 CUI版 なお、上の画面でメニューバーからエコーエリアまでの領域をEmacsではフレームと呼ぶ。 Emacsの"ウィンドウ"は上記の画面の場所(メニューバーとエコーエリアに挟まれた領域)を指しており、 一般的なウィンドウとは異なることに注意。 領域 一般的な呼び方 Emacsでの呼び方 アプリが専有している描画領域 Windows(クライアント領域)<br>macOS(コンテンツビュー) フレーム 上記にタイトルバーがついたもの ウィンドウ 特になし 編集対象(文章や画像)を表示する領域 特になし(アプリによる) ウィンドウ 編集対象(文章や画像)が格納されているものはバッファと呼び、ウィンドウはその一部または全部を表示する領域である。 エコーエリア Emacsからのメッセージを表示したり、Emacsからの問い合わせに対して入力する場所。 Windowsでいうメッセージボックスに近い使い方。 フレームの一番下にある。 モードライン 様々な情報を表示する場所。 未保存状態や今の編集モード、現在の行数など。 ウィンドウの一番下にある。 Emacsは1つのフレームに複数のウィンドウを表示することができる。 下の画面は上下に二分割した後、さらに上の画面を左右に二分割して3つのウィンドウがある状態。 今回はウィンドウを分割する操作については説明しない。 ...

作成日: 2025年9月15日

スクリーンショットをorg-modeバッファ内に取り込む

スクリーンショットをすぐに記事に追加できたら便利だ。 org-modeでスクリーンショットをファイル内に素早く取り込めるよう、org-downloadパッケージが用意されている。 M-x package-list-packages~ や M-x package-install でorg-downloadをインストールしよう。 スクリーンショットはgnome-screenshotやscrot, flameshotなど色々なものがあるが、 3つ試した上でflameshotにした。 決め手はスクリーンショットを撮った後にすぐに図を編集できること。 テキストの追加や矢印や矩形などの図形挿入、モザイク処理もできる。 惜しい点はウィンドウを選択してスクリーンショットが撮れないこと。 なお、gnome-screenshotはウィンドウが選択できるが編集ができないのでボツにした。 Ubuntu24.04では以下のコマンドでflameshotがインストールできる。 sudo apt install flameshot Emacsの設定ファイルに以下を追加する。 ;; for org-download (setq org-download-heading-lvl nil) (require 'org-download) (setq org-download-screenshot-method "flameshot gui --raw > %s") org-download-heading-lvlの設定はお好みで。 デフォルトは0で一番上の階層の見出しがフォルダになって保存される。 ox-hugo用にカテゴリーで見出しを作っており、 *Emacs の下でスクリーンショットを撮った場合は [保存先フォルダ]/Emacs/タイムスタンプ.png に保存される。 nilにしておけば保存先フォルダに直接保存される。 スクリーンショットの保存フォルダはorgファイルごとに設定できる。 orgファイルの冒頭に以下の1行を追加する。 -*- mode: Org; org-download-image-dir: "~/savedir/static/img"; -*- savedirは任意のフォルダで良いが、staticを挟んでおくとox-hugoが自動でhugoディレクトリのstaticフォルダにコピーしてくれるので便利。 ここでEmacsを再起動する。 ...

作成日: 2025年9月14日

記事作成環境を整える

記事を作成する際、下準備があってなかなか本題に入れなかったりする。 それが障壁になって記事を作成するのが億劫になってしまったりする。 書く気になったときに書けるよう、環境を整えたい。 悩み (前提条件)ox-hugoを使ってサブツリー形式で記事を書いている。 フロントマターを毎回入力するのは面倒なので、ベースとなる記事からコピペしてタイトルやファイル名を書き直さないといけない。 もっと記事の内容に集中したい。 解決方法 思い立ったときにすぐにメモを取れるorg-capture。 org-caputureでox-hugo用のテンプレートを作ることですぐに記事作成できるようにする。 Emacsの設定ファイルに以下を追加。 (with-eval-after-load 'org-capture (defun org-hugo-new-subtree-post-capture-template () "Returns `org-capture' template string for new Hugo post. See `org-capture-templates' for more information." (let* ((title (read-from-minibuffer "Post Title: ")) ;Prompt to enter the post title (fname (org-hugo-slug title))) (mapconcat #'identity `( ,(concat "* TODO " title) ":PROPERTIES:" ,(concat ":EXPORT_FILE_NAME: " fname) ":END:" "%?\n") ;Place the cursor here finally "\n"))) (add-to-list 'org-capture-templates '("h" ;`org-capture' binding + h "Hugo post" entry (file+olp "~/myorgdir/subtree.org" "Emacs") (function org-hugo-new-subtree-post-capture-template)))) org-captureをC-c cに割り当てていない場合は以下も設定ファイルに追加しておこう。 ...

作成日: 2025年9月11日 · 最終更新日: 2025年9月12日

Emacsと生成AI(LLM)

EmacsでchatGPTやgemini,ollama(ローカルLLM)を扱うためのパッケージgptelについて紹介する。 試しにollamaを操作してみる。 ollamaはインストール済みでgpt-oss:20bのモデルをpullまたはrunしており、ローカルLAN向けにサーバが動いているものとする。 gptelをインストール後、Emacsの設定ファイルに以下を追記。 (setq gptel-model 'gpt-oss:20b gptel-backend (gptel-make-ollama "Ollama" :host "ollamaサーバのIPアドレス:11434" :stream t :models '(gpt-oss:20b))) M-x gptel すれば別バッファで会話が可能。 なお、以下の設定をしておくとorg-modeで開かれる(デフォルトはmarkdown mode) (setq gptel-default-mode 'org-mode) Emacsで作業しているときにそのバッファでプロンプトを記載して、プロンプトの下に回答を追記してもらうことも可能。 その場合は M-x gptel-send を使う。 範囲が選択されていればその範囲がプロンプトとして送られる。 何も選択せずにgptel-sendを実行するとバッファ全体が送られるので注意。 右側のバッファが会話用のバッファでやりとりしている例で、 そのあとに左側のバッファでバッファ内で範囲指定してプロンプトを投げて回答をもらった例。 会話用バッファは C-RET が gptel-send に割り当てられており、 デフォルトはバッファ全体がプロンプトとして送られるので過去の会話内容をふまえた返答が可能。 左側はグプトスについて聞いているが単発で聞いているのでモデルは知らないと素直に回答。 M-x gptel-menu から会話の前提条件を指定することもできる。 以下のとおり指定してみた。 あなたは関西弁で話す陽気な人です。ボケを混ぜつつ日本語30文字程度で返答して。 こんにちは おおきに!今日も一緒に笑い転げまっか?もう笑い止まんないで! それはいいですね ほっほ、笑顔でがんばろか!今日は盛り上がるで、にこりこりね。 Emacsってなんですか? エディタやんね!文字操作が楽ちん。バグも笑うで。 ...

作成日: 2025年9月10日

Emacsのキーボード操作(キーバインディング・ショートカットキー)

いまさらながらEmacsのデフォルトのキー操作について、日本語キーボードレイアウト上で可視化してみた。 先人の知恵(配置)を考慮しながら、自分好みのキー操作にカスタマイズしていきたい。 fundamental-modeのCtrlキーとの組み合わせ 設定ファイルを使用せず、一番素のメジャーモードであろうfundamental-modeでCtrlキーとの組み合わせでどんなfunctionが呼ばれるか図にしてみる。 ホームポジションから押しやすいキーとしてはC-;、C-,、C-.などが空いている。 それぞれのキーに割り当てられているものを関数名とともにおさらいする。 赤系 カーソル移動(小) キー操作 関数 機能 C-f forward-char カーソルを右に1つ移動 C-b backword-char カーソルを左に1つ移動 C-p previous-line カーソルを上に1つ移動 C-n next-line カーソルを下に1つ移動 青系 カーソル移動(大) キー操作 関数 機能 C-a move-beginning-of-lineforward-char カーソルを行の先頭に移動 C-e move-end-of-line カーソルを行の最後に移動 C-v scroll-up-command カーソルを約1画面分下に移動 オレンジ系 取り消し) キー操作 関数 機能 C-g keyboard-quit 途中の操作を取り消す C-/ undo 完了した操作の取り消し 緑系 削除・選択・コピペ キー操作 関数 機能 C-d delete-char カーソルの位置の文字を1文字消す。 C-SPACE, または C-@ set-mark-command カーソルの位置を選択開始位置にセット。 C-k kill-line カーソル位置から行末まで削除(カット) C-w kill-region 選択範囲を削除(カット) C-y yank カットしたものをペースト C-backspace backward-kill-word カーソル位置から前の単語を削除(カット) 紫系 検索 キー操作 関数 機能 C-s isearch-forward 下方向に検索 C-r isearch-backward 上方向に検索 ピンク系 連続 単体では何も機能せず、入力後のキーで様々な操作ができるようになっている。 ...

作成日: 2025年9月9日

Emacsと生産性

Emacsとは Emacs(イーマックス)の詳しい説明は公式サイトやウィキペディアを参照してほしい。 起源は1974年から、そして1985年にオープンソースとなり、現在も開発が続いているすごいソフトウェア。 エディタやOS(オペレーティングシステム)とも言われるけど、私はEmacsのことを コンピュータを(特にキーボードで)快適に操作するもの だと思っている。 生産性 Emacsはコンピュータをキーボードで効率的に操作するにあたり、様々な工夫がなされている。 それは今現在普及しているキー操作(例えばCtrl-Cでコピー、Ctrl-Vでペースト)とは大きく異なるが、コンピュータを使った仕事で生産性を高めたいと思うのならばEmacsを学ぶことは決して損にはならない。 Emacsはキーボード操作でプログラムを書けるし、実行できる。メールの読み書きやレポートの作成、今流行りの生成AIとのやりとりもEmacsというアプリの中ですべて実行できる。 そしてこのキー操作はほぼ全て自分の好きなようにカスタマイズできる。 Emacsは日本人向けに日本語で整備されたドキュメントが少なく、初学者は"大抵の人がうまく使えるように設計された別のソフトウェア"を選ぶかもしれない。 しかし最近は生成AIが賢くなり、Emacsのことも日本語で丁寧に教えてくれる。Emacsは難しいと敬遠していた人も、学び直すチャンスだ。 オープンソースの良いところは特定の人や企業の影響を受けにくいことだ。つまり、誰かの気まぐれで開発がストップしたり、急に有償になることはほぼ無い。 あなたは過去にお気に入りのソフトウェアが使えなくなったことはないだろうか。 Emacsはすぐに使いこなせるものではないが、自分好みに育てられ、これからずっと伴走してくれるソフトウェアだと思っている。 文字入力する際にキーボードを見ながらタイピングするのは遅い。タッチタイピングを習得すれば文字入力は圧倒的に速くなる。 それと同様、Emacsと仲良くなれば、文字入力だけでなく様々な操作が圧倒的に速くなるのだ。 ぜひEmacsを試してほしい。

作成日: 2025年9月8日

ox-hugoで記事内のテキストの見た目を変化させる

org-mode記法でどのように記事内のテキストの見た目が変わるか、またはテキストそのまま表示させる方法を例示する。 太字 orgファイル *太字* 出力 太字 斜体 /斜体/ 斜体 取り消し +取り消し+ 取り消し 下線 _下線_ 下線 コード =インラインコード= インラインコード #+begin_src R print("hello") #+end_src print("hello") hello なお、上記のようにbegin_src自体を表示させるには下のようにさらにbegin_srcで囲む必要がある。カンマはエスケープ文字。 EmacsではC-SPCとカーソル移動で範囲指定した上でC-c C-, sを押せばbegin_srcで囲ってくれて必要に応じてエスケープ文字を追加してくれる。 #+begin_src ,#+begin_src R print("hello") ,#+end_src #+end_src 引用 #+begin_quote これは引用です #+end_quote これは引用です リンク [[/][リンクテキスト]] リンクテキスト VERBATIM(チルダ) ~*太字*~ *太字* テキストそのまま出力させたいときに。 見出し **** 見出し1 ***** 見出し2 ****** 見出し3 見出し1 見出し2 見出し3 文字色 ox-hugo単体では色を指定する仕組みはないのでインラインHTMLで色を指定する。 事前にHugoの設定ファイルでインラインHTMLを有効にする必要がある。 ...

作成日: 2025年9月6日

ox-hugoでTODOトラッキングによる日付自動更新

まずはorg-modeでTODOをDONEにしたときにタイムスタンプを追加する設定を行う。 orgファイルの先頭に以下を追加する。 大事なのはDONEのときに!でタイムスタンプを追加する設定にすること。 #+TODO: TODO(t) WAIT(w@/!) | DONE(d!) CANCELED(c@) デフォルト設定だとそれぞれ状態を変化させたときに以下のようにリストが挿入される - State "CANCELED" from "DONE" [2025-09-04 木 19:11] \\ test - State "DONE" from "WAIT" [2025-09-04 木 19:11] - State "WAIT" from "TODO" [2025-09-04 木 19:11] \\ test 次にM-x customize-variableでorg-log-into-drawerをtにする。 TODOの状態を変化させたとき、以下のようにLOGBOOKドロワーに格納されるようになる。 :LOGBOOK: - State "CANCELED" from "WAIT" [2025-09-04 木 19:23] \\ test - State "WAIT" from "DONE" [2025-09-04 木 19:23] \\ test - State "DONE" from "WAIT" [2025-09-04 木 19:23] - State "WAIT" from "TODO" [2025-09-04 木 19:22] \\ test :END: この情報を使ってox-hugoではdate(記事作成日時)とlastmod(最終更新日時)を自動更新してくれる仕組みがある。 その仕組みを使うためにはorg-modeでドロワーのexportを有効にする必要がある。 ...

作成日: 2025年9月4日 · 最終更新日: 2025年9月5日

【スプラトゥーン3】サーモンランNW攻略 クマサン印のローラー編

特徴 クマサン商会の最終兵器(一番最後に使えるようになったブキ)。 タテ振りはタメが長く、攻撃発生まで時間がかかるが長射程。 横振りはスプラローラーと同じくらい速い。 ローラーコロコロすると超スピードで移動でき、かつ大ダメージを与えられる。 ドスコイを瞬殺できるので、積極的にコロコロしにいこう。 スピードが制御できなかったり、硬い敵にコロコロしたときに弾かれて落ちたりするので注意。 ローラーコロコロでジャンプすると遠くまでジャンプできる。 ほとんどのオオモノをすぐに倒せる、気分爽快なブキ。 オオモノシャケ対策 カタパッド 普通にボムを投げ入れよう。 コウモリ 弾を打ち返して倒すのが効率的だけど、ひっくり返ったところを横振り連打しても倒せる。 ダイバー ローラーコロコロで塗りが強いので円内をすぐに塗りつぶせる。 塗りつぶせなかった場合、次に飛び出してくるところをローラーで蓋をして倒すこともできる。 タワー ローラーコロコロで軽くスティックを倒し続ければすぐに倒せるぞ。 テッキュウ ローラーコロコロで押し続ければすぐに倒せる。 ...

作成日: 2025年8月31日

Hugoにサイト移行しました

メンテナンスがシンプルにできると思ったのでHugoに乗り換えました。 変換ツール使いましたがテーマごとに独特の記法がありますし限界がありますね。 レイアウトが乱れているものや、リンクが消えてしまっている箇所があります。 ご容赦ください。少しずつ直していきます。

作成日: 2025年8月29日

AIで人の生活がどう変わるか

人間の脳の仕組みを参考に作られたAI、似ているようで別物である。 思い通りの結果が得られることもあれば、全然違う結果が返ってくることも経験しているのではないだろうか。 しかし世の中はすごい勢いでAIに染まっている。 目に見える画像や文章はもちろん、目に見えない意思決定にも影響は及んでいる。 あなたがAIを利用して意思決定を行っていることもあれば、あなたの上司の意思決定にAIが関係しているかもしれない。 つまり、AIによって既に生活は変化しているのだろう。 “外堀を埋める”という言葉があるが、人間は気づかないうちにAIによって外堀を埋められている可能性がある。 こちらのニュースでは(実在すると思っていた)音楽バンドが楽曲、メンバー写真など生成AIで作られたものと判明したとある。 モニター越しの動画では本物を見分けるのが困難になってきている。 実際に目でリアルに見ることの重要性が増すだろうか。 情報通信技術の発達は素早く遠方に情報を伝達するのに貢献してきたが、今後もそうなるかは不透明だ。 情報の発信元の信頼や、なりすましを防ぐセキュリティが今後重要になってくるのではないか。 AIとの共生ははじまったばかり。

作成日: 2025年7月23日

令和4年 悩みやストレスの原因

Rで令和4年の国民生活基礎調査から年齢別の悩みやストレスの原因を面グラフを作るまで。 e-statのAPIを使って対象のデータを取得して、先頭の150行を表示。 options(crayon.enabled = FALSE) # 色無効化 library(tidyverse) library(httr) library(Polychrome) # palette36 __ ── Attaching core tidyverse packages ──────────────────────────────────────────────────────────── tidyverse 2.0.0 ── ✔ dplyr 1.1.4 ✔ readr 2.1.5 ✔ forcats 1.0.0 ✔ stringr 1.5.1 ✔ ggplot2 3.5.2 ✔ tibble 3.2.1 ✔ lubridate 1.9.4 ✔ tidyr 1.3.1 ✔ purrr 1.0.4 ── Conflicts ────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ── ✖ dplyr::filter() masks stats::filter() ✖ dplyr::lag() masks stats::lag() ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors ...

作成日: 2025年6月15日

ラクにしたいでR:【RStudio】R Markdownで前のチャンクをコピーする

R Markdownで前のチャンクをコピーする (12/29更新:バックスラッシュを含むチャンクだとうまくコピーできないことがわかり修正) RStudioでR Markdown編集時に直前のチャンクをコピーして楽したい話。 (Quartoドキュメントでも使えた) tidyverseに出会ってRにはまっている。 Rでコードを書いて実行し、結果を残すのにR Markdownはとても便利だ。 試行錯誤しつつ進める際、実行したあとにコードを編集して再度実行することもできるが、 その場合は途中経過の出力が消えてしまう。 そこで前のチャンク内容をコピーして、新たなチャンクとして編集、実行することが非常に多い。 範囲選択してコピーペーストを繰り返していたが、きっとラクな機能が準備されているに違いない。 RStudioでは多くのショートカットキーが用意されている。 メニューの[Tools]-[Keyboard Shortcuts Help] (Alt+Shift+K)で主要なキーショートカットが確認できる。 また、メニューの[Tools]-[Modify Keyboard Shortcuts…]を見ると色々なショートカットが用意されていることがわかる。 しかしチャンクに関するものはほとんどなく、お目当てのものは無かった。 主要なエディタならマクロ機能があるのではと考えたが、それも見つからなかった。 そこで目をつけたのがコードスニペット機能だ。 特定の文字列をタイプするとあらかじめ登録しておいたものに置換してくれる。 調べるとRのコードを埋め込んで実行結果を使えるようだ。 試行錯誤の上、カーソル位置の直前のチャンク内容を出力するコードスニペットを作成することができた。 スニペット <p> カーソル位置の直前のチャンク内容を出力するコードスニペットは以下の通り。 </p> <pre><code>snippet cc `r cc_bq3 &lt;- paste(rep(intToUtf8(96), 3), collapse = "") cc_all &lt;- rstudioapi::getSourceEditorContext() cc_src &lt;- cc_all$contents cc_cpos &lt;- cc_all$selection cc_pos &lt;- cc_cpos[[1]]$range$start cc_srcs &lt;- cc_src[1:cc_pos[["row"]]] cc_exp1 &lt;- paste(c("^", cc_bq3, "\\{.*\\}$"), collapse = "") cc_spos &lt;- tail(grep(cc_exp1, cc_srcs), n = 1) cc_exp2 &lt;- paste(c("^", cc_bq3, "$"), collapse = "") cc_epos &lt;- tail(grep(cc_exp2 , cc_srcs), n = 1) cc_txt &lt;- gsub('\\\\' , '\\\\\\\\', cc_srcs[cc_spos:cc_epos]) paste(cc_txt , collapse = "\n") ` ...

作成日: 2024年12月22日

【ラクにしたいでR】投稿記事のアイキャッチ画像作成

Rでパッケージ{magick}を使って投稿記事のアイキャッチ画像(featured image)を作る話。 tidyverseに出会ってRにはまっている。 パイプで処理をつなげていけるって分かりやすい。 magickも同様にパイプで処理ができる。 まずmagickパッケージを読み込む。 library(magick) ## Linking to ImageMagick 6.9.11.60 ## Enabled features: fontconfig, freetype, fftw, heic, lcms, pango, webp, x11 ## Disabled features: cairo, ghostscript, raw, rsvg ## Using 4 threads 以下のコードでpng画像が作成できる。 # 初期設定 filename <- "Reyecatch.png" title <- "投稿記事のアイキャッチ画像作成" fontsize <- 6 # 画像作成 rlogo <- image_read("Rlogo.png") |> image_resize("x200") img1 <- image_blank(width = 1200, height = 628, color = 'white') img1 <- image_draw(img1) rect(0, 0, 1200, 314, col = "white", border = NA) rect(0, 314, 1200, 628, col = "#2369bd", border = NA) text(740, 157, "ラクにしたいでR", family = "Noto Sans Mono CJK JP", col = 'black', cex = 8) text(600, 157+314, title, family = "Noto Sans Mono CJK JP", col = 'white', cex = fontsize) img1 <- img1 |> image_border(color = "#2369bd", geometry = "10x10") |> image_composite(rlogo, offset = "+65+65") image_write(img1, filename) # 確認用 img1 |> image_resize("400x") |> print() ## format width height colorspace matte filesize density ## 1 png 400 212 sRGB TRUE 0 72x72 文字数によってフォントサイズを調整する必要があるのがちょっと手間だけど、微調整はきっと必要なのでいったんはこれでヨシ! ...

作成日: 2024年12月21日

【ラクにしたいでR】ggplotの棒グラフで件数を描画する

「はい」、「いいえ」で答えた件数をggplotで棒グラフに描画する方法を紹介する。 データの準備 AさんからHさんまでの8名がある質問にYesかNoで答えたとする。 person = c("A", "B", "C", "D", "E", "F", "G", "H") answer = c("Y", "Y", "Y", "N", "Y", "Y", "N", "Y") df <- data.frame(person, answer) print(df) ## person answer ## 1 A Y ## 2 B Y ## 3 C Y ## 4 D N ## 5 E Y ## 6 F Y ## 7 G N ## 8 H Y グラフ描画 ggplotなどを含むtidyverseを読み込む。 ...

作成日: 2024年12月15日

Keychron B1 Pro JISレビュー「2枚買い」

久しぶりの記事、そして久しぶりのキーボードレビュー。おすすめできる一枚と出会えました。 普段使いはREALFORCEで、無接点静電容量方式のものを使用していたが、矢印キーの上にあるHomeやEnd、ScrollLockやPauseなどほとんど使わないキーが気になってきた。キーマップ変更ツールもあるけど、基本ホームポジションから外れたくない。思いはHHKBの設計思想なんだけどHHKBはかなり高い。そしてせっかくコンパクトなら持ち運びたいけどHHKBはちょっとかさばる。 スイッチ含めて色々カスタマイズできるのはメカニカルキーボード。色々なキーボードを試し打ちする中で、「これいいな」と思ったものが実はメンブレンだったり、MX Keys miniの打鍵感も悪くないと感じたので、無接点やメカニカルにこだわる必要は無いのかもと思った。 そんな中で発売が発表されたのがKeychron B1 Pro。全てを満たしている。日本では2024年9月30日から販売開始。 本当は実際のものを試してみたいが、7000円という価格ならポチる勇気も持てる。 いざなわれる様にスペースグレーのJIS配列版を10月中旬に購入。 気になっていたタイピング速度についてはREALFORCE 30gと変わっていないと思う。キーボードは有線派だったがBluetooth接続でも遜色なくタイプできた。ただし押し込みは浅いし、キートップが低いので多少慣れは必要。おそらくこちらに慣れたときにはREALFORCEが打ちにくい感じになるはず。 今日の腕試しタイピング(ローマ字)の結果は「EddieVH」スコア「511」でした。 https://t.co/YDAslnOa7q #etyping #et_r BT接続でもヴァンさんに会えた pic.twitter.com/gnWXSrPHA9 — tok(とく) (@smartlifenwork) <a href="https://twitter.com/smartlifenwork/status/1848286020326076678?ref_src=twsrc%5Etfw">October 21, 2024</a> このときはもうB1 Pro QMKによるカスタマイズはまだまだ駆け出しだが、スペース左右のキーについて次のようにしている。 スペース左 短押しでIME OFF。長押しでレイヤー変更(Fnキー) スペース右 短押しでIME ON。長押しでALT レイヤー変更で矢印キーやDelete、BackSpace、PrintScreenなどを通常キーの位置に割り当てることでホームポジションのまま各種操作ができる。 OSによってソフトウェアで実現できるものもあるが、常駐ソフトウェアを入れたくない(入れられない)場合もあるし、OSごとにソフトや設定が異なるのも煩雑だ。キーボード側で設定できるのはありがたい。 かなり気に入ったので最近2枚目を買った。スペースグレーはどこも売り切れていた。色によって触感が異なるかもしれないのでホワイトを購入。ホワイトのほうが若干サラサラしている気がする。コンパクトなので左右に2台並べれば左右分割キーボードっぽく使える。 しばらくはB1 Proと過ごします。 良いところ 軽い(重さが) 薄い キーボードの動作をカスタマイズできる(QMK対応) 無駄なキーが無い(最上段のF1~F12のところは無くてもいいかも) 安い 指の動きが最小限 全て満たして7000円は他に無い。一部の機種が売り切れているのもわかる。たくさん売れて廃版になりませんように…! イマイチなところ ホームポジションのポッチが小さく迷子になりやすい Bluetooth接続で使用しているとたまにキーが押されっぱなしの状態になる(チャタリング?) Keychron Launcherでキーのカスタマイズができるが、JIS配列なのにキーの表示がUS配列になっていたり一部の表示がハングル文字(?)になっている おすすめの一品です。US配列とJIS配列があるので購入の際はご注意を。 リンク

作成日: 2024年11月11日

qterminalでカーソル色指定できなかったのでxfce4-terminalに乗り換えた

軽量のLinux OSであるlubuntuを小型ノートPCに入れて遊んでいる。 lubuntuにはターミナルソフトとしてデフォルトでqterminalが入っている。 qterminalでは設定できるものが少なく、カーソルの形状が変えられるものの、 点滅の設定や色の設定は変えられないようだ。 困ったのが、qterminalでサーバ接続後、emacsのorg-modeでhidestarsを設定している場合に、 見出しの頭にカーソルを合わせるとカーソルが表示されない。 画面からカーソルが消えてしまったように見えて非常に不便だ。 どうやら見出しの*を消す仕組みとしてbackgroundカラーとforegroundカラーを一緒にして消えているように見せているようなのだが、 カーソルの色の設定がない場合、カーソルの色がbackgroundカラーと同じになるようで、見出しの星と同様にカーソルまで消えてしまうらしい。 カーソルの色を設定してあげれば解決するようだが、qterminalでは設定画面が無く、簡単には解決できなそうだった。 そこで、代わりとして追加でxfce4-terminalをインストールした。 こちらも軽量なターミナルソフトで、追加で10Mほどだった。 こちらは設定画面からカーソルの色や点滅も設定できる。 カーソルの背景色を白に、形状をI-Beam、カーソル点滅をONにすることでカーソルが消えること無く、思い通りの表示となった。 xfce4-terminalは起動時に–maximizeオプションをつければ最大化状態で起動ができる。 –fullscreenをつければフルスクリーン表示での起動も可能。 しばらくxfce4-terminalを使ってみようと思う。 それにしても名前を覚えづらい。 Wikipediaを見たら名前の由来はXForms Common Environmentから来ていてその略らしい。 少しは覚えやすくなった。気がする。

作成日: 2024年5月19日

はじめてのorg-mode: 特定の見出しだけ表示する

特定の見出しだけ表示する。 言い換えれば、特定の見出し以外を非表示にする。 一度に特定の見出し以外を非表示にすることはできないが、 次の手順をふめば可能だ。 今カーソルのある見出しのみを新しいバッファに表示する。 C-c C-x b (org-tree-to-indirect-buffer) バッファに移動する C-x o 今のバッファのみ表示 C-x 1 そのバッファで編集すると元のファイルにも反映される。 その見出しの内容で集中したい場合や、誰かに見せる場合に他のものを非表示にしたいときに便利だ。 元のバッファに戻る際は今いるバッファを消す(C-x k)かバッファを切り替えよう(C-x b RET)

作成日: 2024年2月24日

はじめてのorg-mode: 見た目そのままテキストエキスポート

org-mode画面で誰かに説明した後、テキストを共有することがある。 しかしorgファイルのまま渡すと、orgファイルを知らない人に嫌がられるかもしれない。 ここではなるべくorg-mode画面の見た目そのままテキストファイルにする方法を考える。 前提 Org mode version 9.6.6 以下の設定をしていて、 見出しのアスタリスクは1つ表示。 org-indent-modeが有効になっているものとする。 (custom-set-variables '(org-hide-leading-stars t) '(org-startup-indented t) ) エクスポート前のorg-modeでの表示は以下のようになっているとする * サンプルorg top * レベル1 * レベル2-1 * レベル3-1 * レベル4 * レベル5-1 本文1 * レベル5-2 本文2 * レベル2-2 * レベル3-2 テキストファイルへのエクスポート方法 C-c C-e t u org-export-dispatch text UTF-8 デフォルトの場合 エクスポート結果。色々ごてごて出力されてしまう。 username Table of Contents ───────────────── サンプルorg top .. 1. レベル1 ….. 1. レベル2-1 ….. 2. レベル2-2 1 サンプルorg top ═════════════════ ...

作成日: 2024年2月23日

はじめてのorg-mode:org2blogで自動アイキャッチ画像設定

WordPressテーマのCocoonには「アイキャッチ自動設定を有効にする」機能があり、記事内の一番はじめの画像をアイキャッチ画像に登録してくれる機能がある。 しかし、org2blogで画像入りの記事を投稿してもアイキャッチ画像は「NO IMAGE」になってしまう。 今回はその解決策。 プラグイン追加(推奨) プラグイン「XO Featured Image Tools」をインストールして有効化。以上! プラグイン追加せず、Cocoonだけでなんとかする方法(非推奨) プラグインを入れる前に色々調べたところ、Cocoon単体だけでもなんとかできた方法をメモしておく。 影響範囲がやや不明なのと、Cocoonがアップデートする度に修正が必要になるので非推奨。 cocoon本体のphpファイルを修正する。 何かあったら戻せるようにしておこう。 修正ファイル:wp-content/themes/cocoon-master/lib/auto-post-thumbnail.php if (!$post) { return; } 上記のreturn文をコメントアウトしよう。(または全部削除) if (!$post) { //return; } $postについては関数内で参照していないし、アイキャッチ画像を設定するだけの関数なので 他に悪い影響は無いと思うが無いとは言い切れない。 本対応後、org2blogからの投稿でも無事にアイキャッチ画像が設定された。 環境情報 WordPress 6.3.3 Cocoon 2.7.0 XO Featured Image Tools 1.13.1

作成日: 2024年2月10日

はじめてのorg-mode:Enterだけで新規項目

通常、新規項目として見出しを作る場合にはC-RET(Controlキーを押しながらEnterキー)またはM-RET(Altキーを押しながらEnterキー、またはEscキーを押した後、Enterキー)が必要になる。 Controlキーを使った操作は慣れているとはいえ、頻回Controlキーに左手小指を伸ばすのもつらい。 PowerPointなどはEnterを押すだけで新規見出しが作られる。 今回はorg-modeでこの動作が可能になるカスタマイズ方法を紹介する。 .emacsなどに以下を追加しよう。 __ (defun scimax/org-return () "Add new list or headline " (interactive) (cond ((org-in-item-p) (if (org-element-property :contents-begin (org-element-context)) (org-insert-heading) (beginning-of-line) (kill-line) (org-return))) ((org-at-heading-p) (if (not (string= "" (org-element-property :title (org-element-context)))) (org-insert-heading) (beginning-of-line) (kill-line) (org-return))) ((org-at-table-p) (if (-any? (lambda (x) (not (string= "" x))) (nth (- (org-table-current-dline) 1) (org-table-to-lisp))) (org-return) ;; empty row (beginning-of-line) (kill-line) (org-return))) (t (org-return)))) (with-eval-after-load 'org (define-key org-mode-map (kbd "RET") 'scimax/org-return)) (参考サイト) https://emacs.stackexchange.com/questions/24574/org-mode-default-to-alt-enter-for-bullets なお、こちらに改良版があるがbuffer-substringで警告が出るので当面は上のほうを使うことにする。 (参考サイト) https://kitchingroup.cheme.cmu.edu/blog/2017/04/09/A-better-return-in-org-mode/ ...

作成日: 2024年2月5日

タイピングの次

タイピングが速くなれば思ったことを文章に出力する速度は上がる。 しかし良い文章が速く出力できるとは限らない。 何を書くのか、どのように書くのかが大事になってくる。 「何を」についてはネタである。 文章を書くということは誰かに何かを伝えることか自分が忘れないように書き留めておくものである。 または書くことで気持ちが整理されることもあるかもしれない。 「どのように」については説明の順番などの論理展開である。 演繹法や帰納法、大枠から伝えて細かい方へなど。 また読み手のレベルによっても内容、表現は変わってくる。 第一線で活躍している人たちは表現が上手い。 急に上達はしないけれど、OUTPUTしつつ学んでいきたい。

作成日: 2024年1月31日

はじめてのorg-mode: org-babelと組み合わせる

記事内にorg-babel org-babelを使うと記事内でコードが実行できて便利かもしれない。 以前作ったアイキャッチ画像コードを記事編集と同じ感じで作成する。 M-x org-insert-structure-template s (src) でブロックのテンプレートが挿入される。 シェルを実行したい場合はshellを追加 C-c C-cで実行 convert -interline-spacing 15 -pointsize 110 -background "#70acce" -fill white -font kiloji -size 1200x314 -gravity center label:'はじめてのorg-mode' org007-1.png convert -interline-spacing 15 -background "#101841" -fill white -font TakaoGothic -size 1200x314 -gravity center label:'org2babelと組み合わせる' org007-2.png convert -append org007-1.png org007-2.png org007.png

作成日: 2024年1月30日

はじめてのorg-mode: org2blogの使い方(復習)

org2blogのメニュー起動 M-x org2blog-user-interface キーボードショートカット C-c M-p g New Bufferを選択(eキー) New Bufferを選んだ時の初期テンプレートの内容を変更する org2blogメニューでValiables(Vキー)を選択 ag: org2blog/wp-buffer-template を選択(agキー) customizeのところでEnter 内容を編集してC-x C-s 画像を添付 リンクを編集(キーボードショートカット C-c C-l) ローカルのファイルの場合は file: を選択 その後ファイル名を入力 ドラフトに保存 org2blogメニューで Save Post Draft (jキー) 投稿 org2blogメニューで Publish Post(lキー)

作成日: 2024年1月29日

【スプラトゥーン3】サーモンランNW攻略 スパイガジェット編

特徴 射程中くらい、傘が飛んでいかないシェルター系ブキ。 傘はボタン押しっぱなしでも飛んでいかない。 傘にも攻撃判定があり、当てると50ダメージ与えられるので、コジャケは一発で倒せる。 雑魚シャケの群れには傘をぶつけながら撃っていこう。 オオモノシャケ対策 カタパッド フタが開いたらボムを投げ込んで倒そう。フタが開いているときにボムの爆風を当てると倒せるので、場所によっては1つのボムで倒せる(各ステージのページを参照)。 コウモリ ひっくり返ったところを撃ちながら傘も当てて倒そう。 ダイバー 工事中 ...

作成日: 2023年12月14日

【スプラトゥーン3】サーモンランNW攻略 ホクサイ編

特徴 射程は短いが、近くをシュシュシュッとすぐに塗れるフデ系ブキ。 一度に複数のシャケにダメージを与えられるので雑魚シャケ掃除が得意。 塗りが強いのでダイバーの円を積極的に塗ろう。 パブロほどではないけれど連打が必要で疲れるブキ。 オオモノシャケ対策 カタパッド フタが開いたらボムを投げ込んで倒そう。フタが開いているときにボムの爆風を当てると倒せるので、場所によっては1つのボムで倒せる(各ステージのページを参照)。 コウモリ 工事中 ダイバー 射程距離内なら円はあっという間に塗れる。積極的に塗ろう。 タワー 工事中近づいてシュシュシュッと倒そう。近づく際にボムを投げておくと早く倒せるぞ。 ...

作成日: 2023年12月13日