サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
tech.buty4649.net
NGINXを使って運用しているWebサーバで、設定を変更したあとに動作検証として curl --resolve example.com:80:127.0.0.1 http://example.com みたいにlocalhostへのリクエストを行ったら、意図しない挙動をしてハマったのでメモ。 タイトル通りなのだけど、 listen localhost:80 なserver定義があってそちらにルーティングされていたために意図しない挙動になっていた。 具体的には以下のような設定をしていた(説明に必要な部分のみ抽出している)。 server { listen localhost:80; server_name localhost; location / { return 200 "localhost"; } } server { listen 80 default_server; server_n
Ubuntu 24.04 LTSリリースめでたい 🎉 discourse.ubuntu.com gihyo.jp 早速Ubuntu 22.04からdo-release-upgradeして24.04にしようとしたら新しいLTSバージョンはないと表示される… $ do-release-upgrade Checking for a new Ubuntu release There is no development version of an LTS available. To upgrade to the latest non-LTS development release set Prompt=normal in /etc/update-manager/release-upgrades. mantic(23.10)とjammy(22.04 LTS)からのアップグレードは現時点ではアンロック
GitHubに追加された警告記法が便利だったので実装してみた。 ↓こんな感じ > [!NOTE] > Highlights information that users should take into account, even when skimming. --- > [!TIP] > Optional information to help a user be more successful. --- > [!IMPORTANT] > Crucial information necessary for users to succeed. --- > [!WARNING] > Critical content demanding immediate user attention due to potential risks. ---- > [!CAUTION] > Negative p
自宅サーバを運用していると突発的なリブートや設定ミスによるアクセス不能などなどが起こり、そのたびにリモートKVMが欲しくなる…。 しかし、リモートKVMは主にエンタープライズ向けで対応した筐体や装置が高額でなかなか手が出づらい…。 そこでどこのご家庭にもある余ったラズパイとPiKVMを使って安価にリモートKVMを作ろうというのがこの記事の趣旨。 PiKVMとは PiKVMは、Raspberry Pi(ラズパイ)を用いて遠隔地から物理的なコンピュータにキーボード、ビデオ、マウス(KVM)スイッチとしてアクセス可能にするオープンソースプロジェクトである。 この記事を書いている現在(2024/03/24)では、DIY PiKVM V1~v4の4つのバージョンがある。 V3とV4はラズパイ内蔵の完成品になっていて、これらのバージョンを自作することはできない?ので今回の選択肢からは外す。 V1とV2
私は普段VSCodeを使っていて、拡張機能としてvscode-nvimを使っていて、そしてこの拡張の設定でnvimはWSL上で実行するようにしている。 この設定にしてほとんど困ることはないのだが、唯一困るのがクリップボードが使えないことである。 理由は簡単でnvimがWSL上で実行されるために、クリップボード操作をしてもWindowsへ反映されないからである。 この問題をGoogle検索するとpowershell.exeを使ってクリップボードをコピーする方法が見つかる。 見つかった方法で解決はするのだが、WSLからexeを実行する関係でものすごく遅い。 これは厳しい…っとなってたが解決する方法を見つけたので備忘として残しておく。 解決策: WSLgを使う 解決方法は至ってシンプルでWSLgを使うことである。 どういうことかというのを簡単に説明すると、WSLgはWaylandというプロトコル
この記事はRuby Advent Calendar 2023の21日目の記事です。 Rubyでワンライナーでテキストの処理をしたいと思ったことはありませんか?ありますよね! そういったときに便利に使えるCLIツールのrfを作ったので紹介します。 モチベーション 具体例 インストール方法 rfの仕様 フィルタ レコードとフィールド コマンドと評価結果 特殊変数 定義済みメソッド match / match? メソッド at_exitメソッド 言語拡張 StringとInteger/Floatを直接計算、比較できる Hashのキーをメソッド名として扱える 未定義の変数にInteger/Float/String、Arrayへの要素追加ができる おわりに モチベーション 普段のオペレーションの中で、ファイルの特定の文字列を含む行を出力するにはgrepを使うと思います。 grepより複雑なことをやら
Rubyのコードでplain text/JSON/YAMLを整形できるrfコマンドを作っている。 このrfコマンドのv1.0.0をリリースした。 といいつつも、前回のv0.2.0から大きく機能を増やしたということはなく、バグの除去やテスト環境の構築のみになっている。 だが、v0.3.0、v0.4.0…っとバージョンを上げていっても延々と正式バージョンにならない感じがありモチベーションが上がらないのと、v1.0.0以上になっていないと開発版のような感じがして利用者が増えなそうなのでv1.0.0にした。 機能不足だが、これから頑張って増やしいこう 💪 以下変更点などを記載。 READMEを書いた 前回のブログで書いたような内容を基にREADMEを作成した。 github.com なお日本語で書いた後に、ChatGPT/BingAIをつかって英訳した。便利~ github.com インストール
github.com 2023/05/15追記: リポジトリのリンクを追加(thx: id:k1low !!) モチベーション 私はcliでテキストを編集するときはawk/sedを使い、JSONはjq、YAMLはyqを使っている。 それぞれ単純な処理ならあまり苦労せず使えるのだが、複雑な処理をしたい場合スクリプトを組んだりしないといけない。 そういったときにRubyでガっと書いてしまいたいのだけど、ruby -ane '〜' だとそれはそれで書くコードが長くなってめんどくさい。 そこで、コードゴルフしやすいようなメソッドなどを追加してコードが長くなるのを防ぎつつ、Rubyのコードでフィルタ処理をかけるようなcliツールがあると便利そう!というのがモチベーション。 また、mrubyで何かしらのcliツールを作りたいというのもモチベーションの1つ。 インストール方法 今回作成したrfはzigを
WSLになってからssh-agentのパスフレーズ入力をどうするか悩んでいた。 毎回パスフレーズを入力するのはめんどくさいし、ssh-agentはプロセスを再起動すると再度パスフレーズの入力を求められる。 今までだましだまし使っていたが、最近WSL上でGNOME Keyring動くことに気がついたのでこれにパスフレーズを記憶させることでこの問題を解決した。 環境 Windows11 WSLバージョン 1.0.3.0 WSLの詳細 > wsl --version WSL バージョン: 1.0.3.0 カーネル バージョン: 5.15.79.1 WSLg バージョン: 1.0.47 MSRDC バージョン: 1.2.3575 Direct3D バージョン: 1.606.4 DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hy
この記事はMackerel Advent Calendar 2022の12/21の記事です。 昨日はid:stefafafanさんのMackerelのサービスメトリックを簡単に投稿するためのGitHub Actionsを作ったでした。 GitHub Actionsを使ってMackerelにサービスメトリックを投稿するという内容でした。 実際のユースケースやGitHub Actionsでテクニックが紹介されいてとても参考になる記事でした! 明日はid:genkiroidさんです! 業務においてサーバインベントリを収集する必要性が出てきた。 サーバインベントリを収集する方法はいくつか考えられるが、今回はちょうどよく対象のサーバ群にMackerelがインストールされていたので、Mackerelを使ってインベントリを収集しようということになった。 mkr_inventory.rb gist.git
普段使うターミナルはAlacrittyを使っていた。 速度や機能など特に不満はなかったが、面白そうなのでkittyに移行している。 sw.kovidgoyal.net kittyとは Alacrittyと同じGPUベースのターミナルで、独自の機能としてターミナルプロトコルの拡張がされていたり、kittenと呼ばれるPythonスクリプトにより機能が拡張できることが挙げられる。 具体的な例として、ターミナルの中で画像が表示できたりする。 画像を表示するためにターミナルに制御文字を送るためのコマンド、↑の例でいうところの kitty +kitten icat がkittenである。 そして、このkittenから送られる制御文字を解釈できるのがターミナルプロトコルの拡張である。 これらがめちゃくちゃ便利かどうかは使用者によるとおもうが、私は面白い!っと思ったのでkittyを使い始めたのであった。
この記事はRust Advent Calender 2021の8日目の記事です。 空白だったので遡って穴埋めしています。 このブログでも何度か話題にしているが、私はreddish-shellという自作シェルをOSSで開発している。 コマンドを実行するだけなら簡単ではあるものの、日常で使える程度にしっかりしたシェルを作ろうとしたら様々なノウハウが必要になる。 そう言ったノウハウはシステムプログラミングとして本やネット上に存在するが、シェルを作ることを目的として紹介されていないので体系的に学びづらいと感じる。というか大変だった…。 私の持つ知識をダンプし、シェルの作り方としてまとめることで、今後シェルを作ろうと思う人の役に立てればと思う*1。 なお、私はシェル作成について独学であるため、間違った内容も書いているかもしれない。 その時は優しくTwitterやコメントで教えていただけると助かります
この記事はGMOペパボエンジニア Advent Calendar 2021の5日目とLinux Advent Calendar 2021の10日目*1の記事です。 昨日ははらちゃんのブログをもっといい感じにするでした。 差分転送することでアップロードを高速化するのは目から鱗でしたね。 データのアップロードが遅いと更新のモチベーションが下がってしまうことがあるので、ブログを長く続けるためにも高速化は重要ですね! 2018年のアドカレで業務で使っているPCをLinuxデスクトップにしてから半年が経ったという記事を書いたのですが、それから3年経って今はどうなったかという記事を書いていきたいと思います*2。 現状はどうなのか? 相変わらずUbuntuデスクトップをインストールして開発環境として利用している。 前回の記事では、Ubuntu18.04であったが順当にバージョンアップを繰り返し今はUbu
2023/02/05追記:rtxを使ってstarship+asdfのプロンプトの表示が遅くなる問題を解決する タイトルの通り。 promptのカスタマイズにはstarshipを使っていて*1、バージョン管理にはasdfを使うようにここ最近変更した。 それぞれ特に不満なく使っていたのだが、あるときからリポジトリ内でのプロンプトの表示が遅いというのに気がついてしまった。 starshipがWARNINGを吐いていたこともあり、被疑はstarshipにあるとわかっていた。 ↓WARNING例 [WARN] - (starship::utils): Executing command "ruby" timed out. [WARN] - (starship::utils): You can set command_timeout in your config to a higher value t
最近、唐突にRustに入門したくなりWebの記事やチュートリアルをあさり始めた。 いくつかサンプルなどを試したけどいまいちしっくり来なかったので、体系的に学ぶ必要があるなっと思い実践Rust入門を読んだ。 gihyo.jp 実践とついてあるだけあって、実際にどのようにコーディングするか、どういったライブラリをするかというのがわかってよかった。 特に、第3章のクイックツアーを読みながら手元で写経していたのだが、第3章を読み終える頃には「Rust完全に理解した」という気持ちになれるくらい*1エッセンシャルが詰まっていた。 第7章の所有権システムの話は、「なるほど理解した」という感じでなんとなくわかったけど他人に説明できるほどちゃんと理解した感じではなかったので、また実際にコードを書きながら理解していこうと思う。 第12章でFFIの解説があったのは助かった。 Rustを使って作ろうとしているのが
仰々しいタイトルだけど、reddish-shellのパーサー部分のメモ。 いまは覚えているけど、数カ月後の自分が覚えている自信がないのでメモっておこうと思った次第…。 ここで解説する内容は、現状の実装に即したもので数カ月後には変わっているかもしれない。 また、私の勉強不足で間違っている/最適ではない部分があるかもしれないのでご容赦。。 この記事では、mrubyやGNU bisonについての詳しい説明はしないので私の過去記事を読むかググってください。 純粋パーサー(再入可能パーサー/リエントラントパーサー) bisonの定義部に %define api.pure (古いbisonでは %pure-parser ) を定義すると純粋パーサーとして定義できる。 これを定義するとパーサーとのやり取りをするyylval変数がグローバル変数から、局所変数になる。 mrubyから呼び出す関係で、グローバ
シェルスクリプトじゃなくてシェル。 前回の記事でGNU bison/flexのことを書いたのはこれの副産物だったのであった。 なぜ作っているかというと面白そうだからという理由以外ないのだけど、きっかけはxonshというPython-powerdなシェルがあることを知って「PythonがあるならRubyもほしい」と思ったのであった。 reddish-shell シェルの名前は reddish-shell としている。 reddishは赤みを帯びたという意味らしく、Rubyも赤っぽいし、shで終わっているし*1でこれにした。 もしかしたら、そのうち変えるかもしれないし変えないかもしれない。 コンセプト ただ普通にシェルを実装しても面白くないし実用性もないので、ある程度コンセプトを考えている。 まず、大前提として前述したとおりRuby-powerdにしたい。 Rubyの構文が使えるようにしたいと
この記事はM5Stack Advent Calendar 2018の20日目の記事です。 先日SabaBoxというM5Stack + MicroPythonを使ったプロダクトを作ったことを紹介しました。 今日は、SabaBox作成時に気がついたことなどを書いていきたいと思います。 ファームウェア M5StackでMicroPythonを使うには専用のファームウェアを書き込む必要があります。 MicroPythonファームウェアは以下のリポジトリに存在します。 github.com MicroPythonファームウェアにはオンライン版とオフライン版があります。 オンライン版は、M5CloudというM5Stack社が運営するクラウドIDEを使ってM5Stackを開発することができるバージョンです。 オフライン版は、USBを接続してシリアル通信で開発するバージョンです。 オンライン版のファームウ
Linuxデスクトップを使い始めたのは前回書いたとおり。 macOSのときはAlfredを酷使していて、これがないと生産性がガタ落ちであった。 そこで、Linuxデスクトップでも同じ感じのランチャーを探すことにした。 linux alfred alternative とかで検索するとまずはじめにMutateが目に止まるのだけど、3年前くらいから開発が止まっているようなのでやめた。 次にAlbertを使い始めた。しかし、日本語周りの扱いが怪しかったり、ほしいプラグインがなかったりしてこれも使うのをやめてしまった。 そして最終的に行き着いたのがUlauncherだった。 このランチャーにもほしいExtensionがなかったのだけど、Pythonで自作できるようなので自作してしまった。 Github/Github Enterprise リポジトリ検索 github.com 仕事柄Githubとい
最近、会社用のPCをLinuxデスクトップに変えた。なんで変えたのかとかは別の機会でブログを書く…っと思う。 で、職業柄ターミナルアプリを酷使するので自分の手にあったものを使いたい。 今までMacを使っていたときはiTerm2を使っていた。 LinuxにはもちろんiTerm2はないので代わりのアプリを探さないといけない。 当初は、GNOME Terminalを使っていたのだがなんと OSC52が使えない のであった*1。 tmuxのクリップボード機能でOSC52を多様している*2私にとってこれは死活問題…。 仕方ないのでOSC52が使えるターミナルを探した。 そこで、xtermを使い始めた。 OSC52だけではなくSixelにも対応している! HiDPIな環境で色々設定は大変だったが、なんとか実用できるようにはなった。 …が、描画が致命的に遅いことがわかった。 tail -fやrsync
この記事はGMOペパボ Advent Calendar 2018の19日目の記事です。 会社PCをLinuxデスクトップにしてから半年が経ったので感想とかTipsとか書きます。 なぜLinuxデスクトップにしたのか? 以前はMacBookProを使ってました。たしか、2015年後期モデル。 半年前にそのMacBookProのレンタル期限が切れたので、新しいMacBookProに更新するかどうか悩んだ。 でも、キーボードはペチペチだし、ESCキーもないし、Appleにロックインされるのが嫌だったのでLinuxにすることにした。 Windows Subsystem for Linuxも考えたけど、ネイティブでLinux使いたかったのでWindowsは選択しなかった。 実際どうなのか? 普通に使える。けど、会社の環境のおかげかも知れない。 ペパボでは、G suiteを使っているのでブラウザがあれ
この記事はMackerel Advent Calendar 2018の13日目の記事です。 みなさん、IoTしてますか! 今年のMackerel Advent Calendarのテーマは IoTとMackerel ということで[要出典]、私も作ってみました! それがこのSabaBoxです! 拡大したところ Mackerelのロゴをドット打ちしたのがこだわりポイントです!*1 M5Stackとは この真ん中にあるTFTディスプレイがついた箱がM5Stackです。 ESP32というWiFiとBluetoothを持ったマイコンを搭載した便利な開発ボードです。 機能を拡張する基板をスタックしていくので、この名前がついているようです。 開発はArduino互換なので、慣れていればすぐにプロダクト開発ができるのがよいですね! そして、なんとこのM5StackではMicroPythonが動くファームウェ
この記事は自作キーボード #2 Advent Calendar 2018の7日目の記事です。 昨日は@ffilccooさんのキーボードカスタムについてでした。 市販のキーボードのカスタムについて書かれていて、ENDGAMEキーボードは時間と共に変化する!! これは本当にそのとおりだと思います。 昨日の記事以外にも素晴らしい記事を書かれているのですが、残念ながらジオシティーズ終了とともにサイトが消滅してしまうようです。。 消滅の前に他のサイトにお引越しされることを願っております。 こんにちは、トラックポイントオタクです! でも、今日はミニトラックボールの話をしたいと思います(ぇ トラックポイントの悩み 私はトラックポイントがとても好きなので、すべての自作キーボードにつけたいとおもっています。 しかし、トラックポイントを自作キーボードに取り付けるには様々な課題があります。 トラックポイントモジ
デスクトップLinuxとして使っているUbuntu18.04で、ドメインごとに問い合わせるDNSサーバを変更したい場面が出てきた。 具体的には、VPNを接続してその接続先のドメインだけはDNSサーバを変更したいみたいな。 Ubuntu18.04ではDNSリゾルバとして、systemd-resolvedを使っている。 こいつでは、やりたいことは出来ないようなのでdnsmasqに変更することにした。 なぜdnsmasqなのか? すでにインストールされていて*1、そしてNetworkManagerが対応している。 Ubuntu18.04ではネットワーク関連の設定をNetworkManagerが管理しているので、とても都合がよい。 そんなこんなでdnsmasqを使うことにした。 systemd-resolvedを止める 止める手順としてはまず、/etc/systemd/resolved.conf
speakerdeck.com 遅くなりましたが、6/23に行われたはてな・ペパボ技術大会 #4 〜DevOps〜 @京都でプライベートクラウドではじめるDevOpsというタイトルで発表してきました。 本当は発表後すぐにアップロードしたかったのだけど、Macの電源を忘れていったり*1、HDMIが移らないとか色々あり家に着くまで何もできない状態になっていた。。 発表した内容について。 Effective DevOpsに出てくる4本柱として「コラボレーション」「アフィニティ」「ツール」「スケーリング」があげられている。 プライベートクラウドは、この4つの中では「ツール」に分類されると思う。 ツールを使うことでDevOpsを加速させた面もあると思うが、そもそもツールが共通化なり整備なりされていないと始まらない。 ツールが潤滑油として回り始めればコラボレーションやアフィニティも自然と発生していくよ
前回の記事では、トラックポイント基板の準備まで書いた。 今回は、Helix/QMKにトラックポイントを接続するところまでを書く。 PS/2の接続モード トラックポイント基板から出るPS/2信号をQMKが取り込む方法として、ドキュメントには以下の3つのパターンが示されている。 このうちの1つを使って、トラックポイント基板と接続する必要がある。 Busywaitモード Interruptモード USARTモード 1のBusywaitモードについては、ドキュメントにnot recommendedと書いてあるので、この方法はよっぽどのことが無い限り使わない方が良い*1。 ベストな方法として書かれているのは、3のUSARTモードである。 この方法を使いたいのだが、クロック用としてD5ピンをデータ用としてD2ピンを使用する必要がある。 ProMicroではD5ピンをオンボードのLEDとして使っているた
諸君、私はトラックポイントが好きだ!!!! 初めてThinkpadを使ってからトラックポイントにはまり、今の会社に入ってからトラックポイントキーボードを2枚買い、そして自宅にもサーバ管理用に1枚ある! で、先日作成したHelixに付けたくなりできたのが↑の写真であるw Helixにわざわざトラックポイントを付けようという人はいないだろうけど、Twitterでそこそこ反響があったのでブログにまとめておこうと思う。 なお、長くなったので何回かに分けて書く予定。 はじめに 実は、当初はトラックポイントを付けるつもりはなかった。 しかし、HHKBにトラックポイントを追加している先人がいることを知り、トラックポイントを後付けできることを知ったのだった。 この記事がなかったら、トラックポイントを付けようと思わなかったので感謝しかない 🙇♂️ itjo.jp トラックポイントが後付けできることを知っ
早速やらかしました。Pro Microが文鎮化しました! ことの発端は、QMKのMouse Keysページを見ていて、便利そうじゃんっと思っておもむろに有効化したことだった…。 ファームウェアのサイズが大きくなりすぎて、ブートローダ領域をぶっ壊しうんともすんとも言わなくなったのであった。 途方に暮れていたら、以下の記事を見つけた。 幸いHelixは2つのPro Microを使うのと、片側はまだ正常であったために、試してみることにした。 qiita.com AVR ISPとは まずなんでこんなことしないといけないかということから調べた。 Helix(QMK)のファームウェアは、直接これがブートされるわけではなくて、Arduinoのブートローダが前段にいる。 電源が入るとこのブートローダが呼び出されて、Helix(QMK)のファームウェアが起動される。 リセットを押すと、LEDが点滅してファー
最近電子工作を始めて、いろいろ記事を書いてきたが、次は自作キーボードだねみたいな謎の圧を感じながらも興味は持っていた。 そんな中、同僚がHelixのGroupBuyに申し込んでいるのを知ったので、私もそれに乗っかってみた! HelixはLet's split(レツプリ)ベースのカスタムキーボードで、ロープロファイルのキーも選択できるのがウリです。また、開発者の方が日本人であるため、私みたいな自作キーボード初心者には安心して購入できるのも大きかったです! GBは12月に行われ、実際に部品が来たのは2月頭くらいでした。そこから、組み立てて完成したのが冒頭の写真です。 完成後は、今まで使っていたトラックポイントキーボードを封印して使い始めています。 キー配列やレイヤーの概念になれず、PC初心者のような入力速度になっていますがw Helixの組み立てやファームウェアについては、日本語ドキュメントが
次のページ
このページを最初にブックマークしてみませんか?
『tech.buty4649.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く