Corredor

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

Gatsby を使って React.js 製ブログを5分で作ってみた

前々から気になっていた React.js 製のサイトを立ち上げるジェネレータ、Gatsby (GatsbyJS) を試してみた。 GatsbyJS 公式サイトの Get Started に沿って試してみる。 # Gatsby CLI をグローバルインストールする $ npm install -g gatsby-cli # 雛形となる …

GitHub のパスワードを変えたので、パスワード入りで git clone していたリポジトリの設定を修正する

ある日 GitHub を開くと、ページヘッダに「テメェのパスワードは HaveIBeenPwned に登録されてるから変えときな」といったメッセージが表示されていた。「HaveIBeenPwned」というのは、どこかから漏洩したメールアドレスやパスワードの情報をデータベース化…

Mac で Dock をキーボードから操作するには

MacOS High Sierra で確認したが、最近の MacOS なら通用するかと。 MacOS の Dock をキーボードから操作するには、Control + F3。コレで Dock にフォーカスできるので、矢印キーか Tab キーで移動し、Return か Space キーで選択できる。 Control + F3 でフ…

SSH 接続のパスワード入力を自動化するシェルスクリプトを作ってコマンド化した

MacOS にて実施。 SSH 接続する際、とある理由で公開鍵認証方式が使えず、sshpass という便利なツールも導入できなかったので、他の方法でパスワード入力を自動化する方法を調べた。 expect・spawn・send コマンドで作れる! 結論からいうと、以下のようなシ…

Linux の OS の種類とバージョンの調べ方

新たな現場に配属し、「検証サーバの Linux は自由にアクセスして使っていいよー」と云われ、ID とパスワード情報だけ聞いたものの、はて、この検証サーバとやらは何の Linux ディストリビューションなんだろう…? という時の調べ方。 /proc/version に書か…

コードの実装行数を測る npm モジュール2つ と Bash コマンド

あるプロジェクト全体での、プログラムの実装行数を調べたくなった。 npm モジュールでは sloc というモジュールと、cloc というモジュールがサクッと集計できた。 参考:sloc - npm 参考:cloc - npm いずれも $ npm i -g sloc cloc とグローバルインストー…

Node.js スクリプトからの HTTP 通信時にプロキシを通すには request が楽チン

社内開発のため、プロキシ制限がある中で Node.js スクリプトを書いていた。Node.js スクリプトから外部サーバに HTTP 通信して GET とかしたいのだが、プロキシの通し方が分からなかった。調べてみても、Node.js サーバを構築した時の設定の話ばかりで、ち…

直前に実行した Bash コマンドの終了コードを見る

Bash で直前に実行したコマンドの終了コードを確認するには、echo $? という構文を使う。 # 正しくファイルが削除できた場合 $ rm test $ echo $? 0 # ファイルが存在せず削除できなかった場合 $ rm test rm: test: No such file or directory $ echo $? 1 …

Jenkins で定期実行!cron の書き方

Jenkins ジョブを定期的に実行するには、ジョブ定義から「定期的に実行」を選び、cron (crontab) の書式で日時を指定してやる。今回はこの cron の書式をおさらいする。 そもそも cron って? cron とは、UNIX 系のコマンドで、任意のコマンドを任意実行する…

npm run とかで使うハイフン2つ「--」の意味

npm-run-scripts を使っていると、npm run something コマンドにオプション引数を渡したくて、$ npm run something -- --include=hoge みたいに書いたりする。 他にも、ハイフンから始まるファイルを指定するときに、$ rm -- -some.txt などと書いたりする。…

MySQL の「Incorrect string value」エラーを直す (サロゲートペアに対応した UTF8MB4 エンコーディングに変更する)

CentOS Linux 上にインストールした MySQL で検証。 MySQL を使っていて、絵文字を含むテキストを INSERT・UPDATE しようとしたら、以下のようなエラーが出た。 Incorrect string value: '\xF0\xA6\x9A\xB0\xE7\x94...' for column 'my_column' at row 1 調…

シェルスクリプトで開発案件ディレクトリの雛形とプレースホルダを作る

以下のサイトで紹介されている、Windows バッチでよくお世話になったスクリプトを Bash で作り直してみた。 language-and-engineering.hatenablog.jp サブルーチンを用いた実装になっているが、やっていることをものすごく単純化すると、 Mkdir 01_概要設計 …

Bash シェルスクリプトを安全に実行するための便利な set コマンド

Jenkins で実行するシェルスクリプトを書いていて、 sh ./script.sh で実行すると実行されるコマンドが Jenkins のコンソールに出力されないから分かりづらいな コーディングミスとかでエラーになった時は中断してほしいな コーディングミスで未定義の変数を…

Jenkins の実行結果を UNSTABLE (不安定) にする Text-Finder Plugin

Jenkins ジョブでシェルスクリプトを実行し、その結果に応じて「成功 (SUCCESS)」「失敗 (FAILURE)」に振り分けようと思ったのだが、「失敗 (FAILURE)」はその中身が分かりにくい。つまり、 実行したシェルスクリプトに構文エラーがあって失敗したのか、 cur…

sed で行追加する i オプション (と、MacOS の BSD sed での注意点)

sed で行を追加する、i というコマンドを使ってみる。 今回はサンプルとして、cat にヒアドキュメント << を使って複数行のテキストを用意する。コレをパイプで sed に渡し、1行目にテキストを追加してみる。 # まずは普通に出力してみる $ cat << EOM > Ori…

sudo 実行時に環境変数を引き継ぎたい

MacOS にて検証。 sudo コマンドを利用すると、環境変数を引き継げず、$HTTP_PROXY とかを当てている時にツラい。 そこで調べてみると、sudo -E というオプションで環境変数が引き継げることが分かった。 $ sudo -E 【コマンド】 コレだけ。知らなかった…! …

Jenkins の実行中のジョブ情報などを JSON 形式で取得する API

Jenkins の各種情報は WebAPI で拾えることを知った。 任意のジョブやビュー、ノードコンピュータのページに遷移し、その URL の末尾に /api を付与すると、参照できる API が確認できる。 例えば、あるジョブから参照できる API を調べるには、以下のように…

Windows 上の Jenkins から curl で TypeTalk API を叩いてメッセージを送信するまでの道のり

Windows 上の Jenkins はとにかく罠が多い…。 Windows 上の Jenkins から「シェルスクリプトの実行」で curl コマンドを実行し、TypeTalk API を叩いて任意のメッセージを投稿してみようと思った。それがかなりつまづいたのでまとめる。 TypeTalk API の叩き…

MacOS の BSD sed は慣れないので Windows GitBash と同じ GNU sed に変える

BSD UNIX 系の MacOS に搭載されている sed と、Linux や Windows GitBash に搭載されている sed は、オプションの働きが異なる部分が多い。コレが厄介で、sed を利用したスクリプトが Mac と Windows とで同じように動作してくれないのだ。 Windows GitBash…

MacOS における Node.js のバージョン管理ツールの比較

MacOS 環境で、複数の Node.js のバージョンを管理するツールを比較してみた。僕は nodebrew をずっと使っているが、今回調べてみたら ndenv も導入が簡単で、依存するモノも少なく、アリかも…?とか思った。 nodebrew GitHub - hokaccha/nodebrew: Node.js …

Cordova iOS アプリで AppGroups を使ってみる:cordova-appgroups-dates

Cordova ベースのアプリで、iOS の AppGroups という機能を使ってみる。 AppGroups とは AppGroups とは、同一の開発者が提供する複数のアプリ間で情報を連携できる機能。利用するには Apple Developer Program への登録が必要となる。Apple ID に登録しただ…

オフライン環境で CentOS 7 の Vagrant Box を追加する

Mac で CentOS を触りたく、Vagrant を使おうと思ったのだが、諸事情によりネットワークが随時使えず、Vagrant Box をネットからダウンロードして使うことができない状況にあった。 # 普段ならコレで良いが、ネットに接続できないのでダメ $ vagrant box add…

MySQL DB を Node.js から操作してみる

MySQL DB を Node.js から操作する、mysql というそのものズバリな npm パッケージがあったので試してみた。ついでに、コレを Promise 化した promise-mysql もご紹介。 GitHub - mysqljs/mysql: A pure node.js JavaScript Client implementing the MySql p…

Java VM 引数 (システムオプション) の設定方法

java コマンドで Java プログラムを起動する時にシステムプロパティ (VM 引数とも) を指定する方法。 以下のように、-D オプションで指定する。 $ java -Dhttp.proxyHost=test.proxy.com -Dhttp.proxyPort=8081 -Dhttp.nonProxyHosts="localhost|*.nonproxy.…

CSS3 の hsl() で色を指定してみる

CSS3 から、カラーコードや rgb() による色指定の他に、hsl() という関数で色指定ができるようになった。コレは「HSL 円柱座標方式」というモノで、Hue (色相)、彩度 (Saturation)、輝度 (Lightness) の3要素から色を指定する方法らしい。色相だけ変えれば、…

MacOS の man を日本語化する

MacOS High Sierra の man コマンドの表示を日本語にしてみた。 ほぼ以下の記事のとおりで出来た。 参考:manコマンドの表示を日本語化した話 # groff (GNU roff) という文書整形を行うコマンドをインストールする $ brew install groff # /usr/local/bin/gr…

エクスプローラのコンテキストメニューを整理できる ShellExView を使ってみた

エクスプローラのコンテキストメニューが長くなってきて、開く度に処理がつっかえるので、なんとかならないか調べた。 レジストリ変更や様々なツールを試してみたが、一番手軽に使えたのは「ShellExView」というフリーソフトだった。今回はコレを紹介する。 …

Markdown の中で Markdown 記法を回避するための数値参照文字

マークダウンでテキストから電子書籍を作ろう作者: 柏原基規発売日: 2015/11/10メディア: Kindle版この商品を含むブログを見る Markdown 記法の説明なんかで、「コードブロックの書き方」をコードブロックで書いたりしたくなることがあるかもしれない。 そん…

Chrome で複数の Twitter アカウントを即座に切り替えられる Twitcher が便利だった

今回は Chrome ブラウザの拡張機能紹介。 Chrome ブラウザ内で、複数の Twitter アカウントを即座に切り替えられる「Twitcher」という拡張機能があったので使ってみた。 インストールは Chrome ウェブストアより。 Twitcher - Twitter Account Switcher - Ch…

Xcode で Swift アプリが突然うまくビルドできなくなったら

Swift で実装した iOS アプリを Xcode で入れ直そうとしたら、急に以下のようなエラーが出るようになった。エラーが出るようになった前後で日をまたいだだけで、コード自体は変更していなかったのに、だ。 dyld: Library not loaded: @rpath/libswiftAVFound…