shioyakitaroのブログ

主にオラクルDBやLinuxについて調べたことを書いてます。

雑記ー時間の使い方

ずいぶん久しぶりに雑記を書く。

ここ一ヶ月程度、時間の使い方について考えさせられるような出来事があった。

何のことはない、ブログのことだ。

以前にも何度かここで共有していたと思うが、技術に関するブログを書いたり、エッセイを書いたりしている。

なぜここでやらないのかと言われれば、自分の家のようなものを持ちたかったからだった。

全部自分の自由自在、そういうものを持ちたかった。今の時代には珍しい所有欲といったところか。

コロナ禍というのもあり、春からはずいぶんと更新頻度が増えた。

中でもここ一ヶ月は、趣味のサッカーについてのブログを書いている。

https://dakensuk.com/2020/07/12/football.html


何が問題かというと、週に1記事を目標に一ヶ月ほど投稿していたが

如何せん時間がかかる。

このテーマではAPIで提供されているサッカーデータから、自分が気になったことを明らかにし

サッカー日本代表がW杯で優勝する一助になれるかもしれないような気付きを得ることを目的としているが

データを漁るのに時間がかかり

データの信憑性を確認するのに時間がかかり

データの見せ方(表、グラフなど)に時間がかかり

それらの調査結果からいえること、考察に時間がかかり

校閲や冒頭のアイキャッチの挿絵を描くのにも時間がかかり

とにかく時間がかかりまくっている。

しんどいかと言われるとそこまでではあるが

なんだか本質的なところ以外にずいぶん時間をとられている気がして少し振り返りたいと思った。それが今回の雑記である。

しんどくないからといって四六時中やっているわけにはいかない。

特に梅雨でなかなか外へ散歩にも出られないのに

たまの晴れ渡った休日を日中ブログの執筆で時間を溶かして

太陽が落ちてからようやく自由時間だと

これは平日の仕事と何も変わらない。

そうかといって休日はブログそっちのけで日中は外へ出て陽の光を浴びて夜にブログをやるというのでは

終わっていない宿題を放っぽり出したまま遊びに出かけるような感じがありどうにもリラックスできない。

そういうわけでなるたけ休日午前中にブログを完成させて午後から外出するのを目標にしたのだが

ここ二週間程度分かったのは、午前中に終わらせようとして時間を設定して始めるものの

結局、途中昼ごはんを挟みつつ夕方までかかることだった。

もっと早く終わらせるにはどうしたら良いのだろうか。

おそらくコツは、なるたけ短時間のうちに調査に必要なデータをcsv形式にして用意することだろう。

調査結果をもとに何が言えるのかを考えることに時間をかけるべきであり

データを用意するところまではなるたけさくっと終えてしまいたい。

また、データの見せ方という意味では可視化ツールの使いこなしも重要になってきそうだ。

pythonなどで予めスクリプトを用意しておいて、簡単に図を作成できる環境にしておけば良い。

今回はgoogleスプレッドシートを使用したが、やはりマウスを用いた操作は骨が折れる。

スクリプトの準備は時間はかかるが、ひとたび作ってしまえば使い回すことができる。

またpythonのデータ分析のスキルも自然と身について一石二鳥な気もする。

まぁ、色々書いてみたものの、最終的には多くの人に読んでもらいたいので

アクセス数やSEO対策もしていかないといけないと思ったりする。

やることは盛り沢山だ。

まとまりがないがまぁ雑記なので許してもらいたい。

ではでは。

gitのあしあと~git blameで行変更情報を確認

今回も備忘録として.gitにはたくさんコマンドがあり,自分はこれまで基本的なコマンドしか使ってこなかった.特にリポジトリ操作ではこれまで以下のコマンドを使ってきた.

  • git branch
  • git checkout
  • git status
  • git diff
  • git add / rm
  • git commit
  • git log
  • git push / pull
  • git clone
  • git restore
  • git remote
  • git config

あまり熱心にgitのコマンドを覚えようとしてこなかったため,ここらで日頃使えそうなコマンドを書き残しておく.

git blame

これは対象のファイルの特定の行がいつ誰によって変更されたのかを確認する時に使えるコマンドである.

たとえばnpmのpackage.jsonでいつパッケージが変更されたのかを見るときなどは

git blame package.json | grep <パッケージ名>

とすれば良い.

おつまみtmux~セッションやウインドウの名前を変更できます

本当に些細なことだが,備忘録として.

tmuxを使い始めて1年程度になる.とても快適でもう手放せない.

そんなtmux,基本的なコマンドでだいぶ満足していたが,
今回,公式?ドキュメントを読んで自分が知らなかったコマンドで良さげなコマンドがあったので記しておく.
公式ドキュメント:1. TMUX commands — TMUX Guide documentation

セッション,ウインドウの名前を変更できる

  • prefix + $ : セッションの名前の変更
  • prefix + , : ウインドウの名前の変更

作業ごとに名前をつけておくと,セッション,ウインドウを探すときに便利.

ウインドウ名の検索

  • prefix + f

上記の名付けとコラボで使える.

また一つtmuxについて詳しくなった.

超小ネタ:VSCodeとターミナルでの挙動の違い〜バックスラッシュが入力できない?!

久しぶりの投稿。

Macを使ってUnityのプログラムをVSCodeを使って書いている際に、バックスラッシュが入力できず、どうしても円マークになる。
ただ、ターミナルだと円マークではなくバックスラッシュが入力できる。
なぜバックスラッシュが入力したかったかというと、デバッグのためのDebug.Log関数の中で文字列を改行したかったため、
\nが必要になったからである。

この現象、VSCodeの設定がおかしいために起きてしまうのかなと思っていたが、実際のところ原因は入力文字であった。

Macの入力文字を見ると

  • Hiragana
  • Romaji <-- コレ
  • Katakana
  • ABC

Romajiが選択されていた。

これをABCに変更したところ、VSCodeでも円マークではなく、バックスラッシュが入力できた。

ターミナルの場合はRomajiでも円マークではなくバックスラッシュが入力されるため原因が判明するのに少し時間がかかった。

本当に些細なことではあるが、大変大切だと思い備忘録として残した。

備忘録〜パソコンに有線キーボードがない場合にBluetoothキーボードを認識させたいとき

久しぶりの投稿。

今回は完全に備忘録として残す。Bluetoothキーボードを認識させる際の方法について。

経緯は以下の通り。

  • MacからデスクトップPCのUbuntuをリモート操作したかったが、接続できない。
  • 過去に設定した気がするが、記憶が定かではない。
  • デスクトップPCには有線のキーボードがなく、代わりにBluetoothのキーボードを持っている。
  • Bluetoothキーボードをペアリングさせたいが、単にBluetoothのUSBドングルを指すだけでは当然ながらBluetoothキーボードが使えない。

というわけで、キーボードをペアリングさせるためにMacからsshでUbuntuにログインし、ペアリングを試みた。

前提

  • MacからUbuntuにsshできること
  • Ubuntuではrootユーザーになれること

手順

MacからデスクトップPCのUbuntuへssh
macPC$ ssh <ユーザー名>@<ホスト名 or IPアドレス>
UbuntuPC$ 

# 念のため、Bluetoothのドングルが認識されていることを確認(今回はUSBドングルなのでlsusbで確認)
UbuntuPC$ lsusb
...
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)  <-- コレ
...
Bluetoothキーボードをペアリングする。これをする際、rootユーザーで実施しないといけないので注意。
# root ユーザーにスイッチ。rootユーザーのパスワードが分かる場合は su - でも良い。
UbuntuPC$ sudo su -

root@UbuntuPC# bluetoothctl
...
[NEW] Device 21:20:01:05:C6:C5 Bluetooth 3.0 Keyboard  <-- コレ
...
Agent registered

# 接続する
[bluetooth]# connect 21:20:01:05:C6:C5
Attempting to connect to 21:20:01:05:C6:C5
[CHG] Device 21:20:01:05:C6:C5 Connected: yes
[CHG] Device 21:20:01:05:C6:C5 Paired: yes
Connection successful

これでBluetoothキーボードが使えるようになる。

最後に:
画面共有の手順は以下を参考にすると良い。
usado.jp

以下をUbuntu側でやるのを忘れずに。

$ gsettings set org.gnome.Vino require-encryption false 

Vimテク:INSERTモードのままカーソルを移動したい時の設定

お久しぶりです。

僕はインフラエンジニアとしてキャリアをスタートしたため、普段もテキストエディタはVimを使用しています。

ここ最近、必要に駆られてプログラミングの勉強をしている時に、それは主にサンプルプログラムの模写だったんですが

INSERTモードのままカーソルを移動したい

という思いが芽生えました。

というのも、たとえばプログラミングの時には、よく関数の構文で、引数を括弧で囲うことがあると思うのですが


この時に、括弧を閉じ忘れないように、括弧を書く時には()を先に入力して、そのあと中身を記述するようにしてました。

ただ、このやり方だと、いちいち括弧がくるたびに、以下の手順を踏まないといけなくなります。

  1. Escしてノーマルモードにする
  2. カーソルが)の上にくるため、続いてiを入力しINSERTモードにする


つまり、括弧を二つ書いた後に、中身を書き始めるために2ステップ必要になります。

この2ステップを何度か繰り返していると、さすがに

INSERTモードのままカーソルを移動させたい

と思い始めました。

たくさんのクラス、メソッド、その度毎に登場する引数、囲う括弧

もう耐えることはできませんでした。

INSERTモードのままカーソルを移動させることができれば2ステップは1ステップに減りますし

たとえ1ステップでも、2ステップからの1ステップは半分だし

塵も積もれば山となるので、ステップを減らしたい、そう思いました。

というわけで調べた結果、以下を設定ファイル(~/.vimrc)に書き込めば良いことが分かりました。

imap <C-p> <Up>
imap <C-n> <Down>
imap <C-b> <Left>
imap <C-f> <Right>

引用元:qiita.com



なお、今回の僕の希望が左右のカーソル移動だったこと、Ctrl+pではデフォルトの入力補完機能を使いたかったことから

僕は上記の下二行のみを記述して使っています。

Vimを使用されている方にはおすすめです。時は金なり。

以上、Vimテクでした。

PDBではデフォルトのDATA_PUMP_DIRは使用できません

オラクルDBのマルチテナント環境ではまったので備忘録として記しておく。

Oracle RAC環境からデータポンプでエクスポートしたデータを、マルチテナント環境のPDBにデータポンプでインポートしようとした際にエラーが発生。

ディレクトリオブジェクトにDATA_PUMP_DIRが存在しているのにも関わらず

そこにダンプファイルを置いて、ディレクトリオブジェクトにDATA_PUMP_DIRを指定してもディレクトリオブジェクト関連のエラーでインポートができない。

ディレクトリオブジェクトへの書き込み、読み込み権限を付与してもエラーは変わらず。

調べたところ、公式ドキュメントを見ると次の一文が

デフォルトのデータ・ポンプ・ディレクトリ・オブジェクトのDATA_PUMP_DIRは、PDBでは使用できません。エクスポートまたはインポートするPDB内に明示的なディレクトリ・オブジェクトを定義する必要があります。

Oracle Data Pumpの概要

にしてもエラー内容が分かりにくい。使えないなら上記のメッセージを表示してほしいものである。