Corredor

ウェブ、プログラミングの勉強メモ。

Ruby でテキストファイルの読み書き基礎

Ruby でテキストファイルの読み書きをしてみる。 ファイルの読み込み ファイル書き込み ファイルの読み込み ファイルを読み込んで出力するコードはこんな感じ。 #!/usr/bin/ruby # ファイルをオープンして1行ずつ表示しクローズ file = File.open('./text.tx…

Mac でも Windows のタスクバーみたいにカレンダー付き時計を表示する「Day-O 2」

Windows のタスクバーにある時刻をクリックすると、月表示のカレンダーが開く。 一方 MacOS の標準時計にはそのような機能はない。 カレンダーを見るためだけにターミナルを開いて $ cal と打って確認するのも面倒な時がある。 そこで、Windows 同様、クリッ…

開いているページのタイトルと URL をクリップボードにコピーするブックマークレット

Twitter 投稿やメール送信用に、開いているページのタイトルと URL をコピーしたいことがあったので作った。 いきなりだがブックマークレットは以下のとおり。 javascript:((d,e)=>{e=d.createElement('textarea');e.textContent=d.title+' '+d.URL;d.body.a…

Bash で一括リネームするアイデア

Bash でファイルを一括リネームしたく、やり方を調べていた。 今回リネームしたいファイル群は、 01 hoge.png 02 fuga.png 03 foo.png 04 bar.png …と、こんな風に「連番 + テキスト」となっている画像ファイルで、「テキスト」部分を除去して連番のみのファ…

GitHub リポジトリの特定ディレクトリ以下をダウンロードする方法

ある GitHub リポジトリの、src/ ディレクトリ以下のファイルのみダウンロードしたいな、といった時のやり方。 コレは、svn コマンドが提供する、svn export というコマンドを使うと実現できる。 master ブランチからダウンロードする時 例えば、 https://gi…

history コマンドに日時も記録する

以前、ターミナルのプロンプト PS1 に \D{%F %T} という書式を加えて、現在日時を画面上に表示するようにした。コレはターミナルの実行結果をまるごとコピペすれば作業日時付きの証跡になるので有用だと思っている。 しかし、プロンプト込みで記録を取らなか…

zip・unzip コマンドでパスワードを指定する

MacOS で検証。zip・unzip コマンドを使って圧縮する時、解凍用パスワードを設定する方法。 Zip 圧縮時のパスワード指定 $ zip -e -P='【パスワード】' 【Zip ファイル名】.zip 【入れたいファイル指定…】 -e = --encrypt -P = --password -P とだけ書けば、…

Linux サーバに「いつ」「どの SSH 鍵を使って」ログインされたか調べる方法

普段、ある Linux サーバに SSH 鍵を使って接続して作業している サーバで使うユーザは、単一のシステム用ユーザ (仮に devuser) を複数の開発メンバで共用している コレまでの運用からこんな状況なので、$ last -w コマンドで過去に SSH ログインしたユーザ…

iPhone 向けの Photoshop 関連アプリがいくつかあるので整理する

iPhone で撮った画像をブログ向けに編集して、そのままアップロードまで iPhone オンリーで完結したいと思った。 そこで iOS アプリを調べてみると、Adobe から「Photoshop」と名の付くアプリがいくつか出ていた。 どれがどう違うのか全然分からないので、で…

nc と ssh config ファイルを使って多段 SSH 接続する

2019年5月より、毎日更新を止めようと思います。ハッキリとは決めていませんが、2日に1度とか、週1とか、不定期更新とかにしようかと。 お知らせまで。 本題。 本番稼動するサーバは、セキュリティ上の観点から、SSH 接続できる通信元が限られている場合があ…

iPhone からサーバに SSH 接続するには「Termius」アプリが簡単だった

普段 PC から SSH 接続して作業している管理用サーバがある。時々、出先で動作ログを確認したりしたくなるので、iPhone から SSH 接続できたりしないか調べてみた。 iOS 向けの SSH コンソールアプリはいくつかあるのだが、無料で簡単に使えそうなのは「Term…

Xcode でアプリを実機起動しようとするとエラーになる件

2019年3月頃より、Xcode でアプリを実機起動しようとすると、以下のようなエラーが出るようになった。 iPhone has denied the launch request. 他にも signal SIGABRT エラーが出たりとか、なんか不安定で困っている。 調べたら以下の文献がちょうど解決法を…

Kubernetes で Blue Green デプロイをやってみた

最近の仮想技術とクラウドサービスを使うと、アプリケーションのデプロイ作業もより安全に行える。その手法の一つが「ブルー・グリーン・デプロイメント」というモノで、コレを Kubernetes クラスタでやってみた、という話。 Blue Green Deployment とは Kub…

GNU Make 触ってみる

GNU Make、いわゆる make コマンドを叩くアレ。2019年になって初めて使い方を学習してみる。 Make って何 Make の基本ルール makefile を実装してみた 以上 参考文献 Make って何 make は、プログラムのビルド作業を自動化するためのツール。make 自体にビル…

Docker で Alpine Linux と apk (パッケージ管理ツール) を使ってみる

Alpine Linux という、Docker コンテナ向けの超軽量な Linux ディストリビューションを使ってみる。内部的には BusyBox を使って軽量化を実現している模様。 Alpine Linux - Wikipedia Docker を使って、Alpine Linux の最新版のイメージを落としてみる。 $ …

Mac の「ターミナル.app」で使えそうなテキストベースのブラウザアプリを調べてみた

MacOS の「ターミナル.app」で動作する、テキストベースのブラウザアプリを3つほど試してみた。 browsh → 表示がバグってまともに動かず Lynxlet → 文字化けしまくり w3m → ちゃんと動いた browsh → 表示がバグってまともに動かず GitHub - browsh-org/brows…

LINE Messaging API で受信したスタンプを特定するには・スタンプを送信するには

LINE Messaging API を使ったチャットボットで、ユーザから受信したスタンプの内容を特定して、それに応じたスタンプを返信してみたい、と思った。 今回は仕様を調べただけで、その結果が色々残念だったので、スタンプのやり取りは諦めることにした。 ユーザ…

Kubernetes で Pod が再起動しまくった原因は、コンテナのプロセスが終了したから

Kubernetes で動かすコンテナを作ってデプロイしたところ、Docker コンテナとして単体で動かしていた時は上手く動いていたのに、Kubernetes Pod としては正常に起動しない問題に遭遇した。 $ kubectl get pod で Pod のステータスを見ると、CrashLoopBackOff…

SSH 接続した先でもお気に入りのエイリアス設定とかを使いたい!「sshrc」のススメ

SSH

ssh コマンドで SSH 接続した先のサーバで、いつもローカル環境で使っているエイリアスや関数が使いたくなることは多々あるだろう。そんな時、接続先のサーバに毎回 .bashrc を scp でアップロードするのは面倒だし、Dotfiles を GitHub 等からダウンロード…

シンタックスハイライトできる cat コマンド「bat」を入れてみる

cat コマンド的にファイルを出力する際、シンタックスハイライトしてくれる bat というコマンドがあるそうなので使ってみた。MacOS にて検証。 Rust 製なので、以下のようにインストール。 $ cargo install bat もう PATH が通っているので、以下のように使…

アイコンが付く ls コマンド「lsd」を試してみたいので Rust のインストールからやってみる

ls コマンドが高速かつリッチに動作する、lsd というコマンドがあるらしいので、それを使ってみるまでの記録。 参考:Linuxメモ : lsに色、アイコンを付けて表示するRust製のlsdを試してみる - もた日記 lsd コマンドは Rust 製なので、Rust をインストール…

Linux マシンの CPU 情報を調べる方法2つ

Linux マシンの CPU 情報を調べる方法2つ。 /proc/cpuinfo を見る /proc/cpuinfo というファイルに CPU 情報が書かれている。 cat /proc/cpuinfo このファイルを基に grep すれば CPU コア数などが分かる。 # 物理 CPU 数 : 結果から重複を省いて行数をカウ…

Node.js の Cluster モジュールを使って Express サーバを並列化する

Node.js はシングルプロセスで処理するため、マルチコアを活かして並列処理するにはひと手間準備が必要になる。 今回は、Node.js 組み込みの cluster モジュールを使って Express サーバを並列化してみる。 元となる Express サーバ cluster モジュールを組…

Bash プロンプトに日付と時刻を入れる

僕は MacOS 環境でも、GitBash (Git For Windows) 風の Bash プロンプト (PS1) を導入している。 # ~/.bash_profile にて export PS1='\n\[\033[32m\]\u@\h \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ ' 手前のコマンドから1行開け、「ユーザ名@…

いい加減 tar コマンドを覚えるためのまとめ

ファイルのアーカイブ、圧縮、解凍を行える tar コマンド。オプション引数が覚えられずいつも調べてしまうので、いい加減覚える。 ヘルプを見てみる BSD tar GNU tar サンプルコードについて cvf : アーカイブを作成する czvf : gzip で圧縮する cjvf : bzip…

Kubernetes の Pod にファイルを転送する / Pod からファイルをダウンロードする

前回、Docker コンテナとホスト OS 間でファイルをやり取りする docker cp コマンドを紹介した。 今回は、Docker コンテナを Kubernetes クラスタ内で動かしている時に、同様にファイルを送ったり・受け取ったりする方法。 コマンドの構成は docker cp とよ…

起動中の Docker コンテナにファイルを転送する / コンテナからファイルをダウンロードする

ポケットモンスター アップロード / ダウンロード (何) Docker コンテナ起動時に -v オプションを指定すれば、ホスト OS との共有ディレクトリを設定することはできる。 今回はそうではなく、既に起動されている Docker コンテナにホスト OS からファイルを…

パスフレーズ付きの秘密鍵 PEM ファイルからパスフレーズ解除版の秘密鍵ファイルを作る

openssl コマンドはやれることが多くてよく分からなくなるので、逆引きで記事にしていく。 今回は、パスフレーズ付きの秘密鍵ファイルを作ったものの、パスフレーズを入力せずに使いたい場面が出てきた時に、パスフレーズを解除した秘密鍵ファイルを生成させ…

他人の LINE ユーザ情報を curl で取得する

LINE Messaging API を使うと、LINE のユーザ情報が簡単に拾える。自分のユーザ情報が検索に表示されないように設定していても、ユーザ名とプロフィール画像、ステータスメッセージが確認できる。 …とだけ書くとなんだか恐ろしく聞こえるが、ちゃんと条件が…

MacOS のフォントファイル、こんなところにもあった

MacOS Mojave で確認。 MacOS のフォントファイルの在り処を探していた。 主なフォントファイルは、大体以下の3箇所のどこかにある。 /System/Library/Fonts/ システム利用。消すと不具合が出る恐れ /Library/Fonts/ 複数ユーザで共用できるフォント ~/Libra…