痛いところは煙に巻く

製造業のしがない社内SEが日記代わりにいろいろ書く

Hello,World

Üben Sie es nur recht fleißig, so wird es schon gehen

【誰得】SVNのリポジトリがWindowsファイル共有だけどアプリはLinuxで動かしたい

おはこんばんにちは、ビショップです。

タイトル的に何を言ってるか分からないと思いますし、私も何を言ってるか分からないところがありますが、まず状況から整理します。

  • Subversionでソースを管理している
  • サーバから何から何までWindows環境になっているような環境
  • svnリポジトリがWindowsファイル共有。apacheと連携してたりはしない
  • リポジトリへのアクセスは”file://server/repo”みたいな感じ

地獄のような環境ですね。いや、Windows環境なら単純っちゃ単純な設定なんでしょうか。どうしてこうなっているのか、全然分からないんですが、今回はこの環境を以下のようにしていこうと試行錯誤したまとめです。

  • テストでアプリケーションを稼働させるテスト環境サーバのOSをLinux(RHEL)にする
  • ソースは既存Windowsファイル共有のリポジトリからチェックアウトしたりコミットしたりアップデートしたりできるようにする

誰も得しない記事ですが、張り切ってまとめました。

問題点

SVNのリポジトリがWindowsファイル共有ということで、普通にsvnコマンドでリポジトリへアクセスしようとしてもダメです。なにがしかのエラーになります。

[root@server /]# svn ls svn://serverIP/repo/
svn: E170013: Unable to connect to a repository at URL 'svn://serverIP/repo'
svn: E000111: Can't connect to host 'serverIP': Connection refused

[root@server /]# svn ls file:///serverIP/repo/
svn: E170013: Unable to connect to a repository at URL 'file:///serverIP/repo'
svn: E180001: Unable to open repository 'file:///serverIP/repo'

アクセスできないので論外ですね。

解決方法

分かっていましたが、ファイル共有としてアクセスできなきゃダメなんです。そう、マウントしましょう。
前提として、Subveresion、cifs-utilsは導入済みです。

Windows側の準備

共有フォルダにアクセスできる専用ユーザをローカルに作ります。このユーザをLinuxでのマウント時に指定します。例として、ユーザ名は”svn_user”、パスワードは”svn_pw”とします。

とりあえずマウント用フォルダを作る

[root@server /] mkdir /svn

マウント

[root@server /] mount -t cifs -o user=svn_user,password=svn_pw //serverIP/repo /svn/

SVNで見れるか確認

[root@server /] svn ls file:///svn/repo
test/
test2/

はい勝った。
好きなところでチェックアウトしたり、コミットしたり、アップデートしたりしてください。いや、誰もやらないか…
一応、Linuxでfile://を使う場合、スラッシュは3本(file:///)です。気をつけましょう。

PowerQueryのプライバシーレベルについて完全に理解した

おはこんばんにちは、ビショップです。

最近PowerQuery for Excelってのが社内で話題です。私もなんか使い方を勉強してますけども、今回はその使い方ではなく、おそらく誰しもよく分からずに使ってしまっているであろう、データソースの「プライバシーレベル」について、設定によってどんな動きになるか調査・検証してみました。

プライバシーレベル自体は、データソースごとに設定するもので、そのデータソース自体がどの程度の機密性を持つかを指定するものだという認識で良いと思います。異なる2つのデータソース間で検索条件等をやり取りする場合に、設定したレベルによって、データの取り扱い方が変わります。レベルは3つ設定できますが、Microsoftのヘルプは相変わらずよく分からないので、実際に設定してどういった動きになるか見てみましょう。
設定できるプライバシーレベルは以下の3つです。

  • プライベート
  • 組織
  • パブリック

データの取り扱いとは

ExcelにPowerQueryで、データソースAとデータソースBを設定しているとします。データソースAが例えばマスタで、その情報をキーにデータソースBのデータを抽出するクエリを作成したとします。その場合、データの絞り込みには2つの方法があります。

  1. データソースAのキーをデータソースBに渡して、データソースBで絞り込みを実行した結果をExcelに返す
  2. データソースBの全データをとりあえず持ってきて、Excel上でデータソースAのキーを使ってフィルタをかける

何が問題なのか

1の方法では、データソースBに検索条件付きのSQLを投げます。つまり、SQLのログがDBMS側に残ってしまいます。分かる人なら検索条件、抽出できてしまいますね。それが顧客情報に関するものだったりするとまずいですね。データの保存先によりますが、もしかしたら情報漏洩になったりするかもしれません。
2の方法では、1の方法と違い、ローカルに全データを持ってきてから処理します。重そうですね。でも余計な情報を外に漏らすことはなさそうです。
この制御というかリスク回避をプライバシーレベルの設定でなんとかするということのようです。

実際の動作

データソースAをパラメータとして扱い、データソースBを絞り込んで表示します。この時のデータソースAのプライバシーレベルによる動作の違いです。データソースAを入力パラメータ、データソースBをSQLServer内のトランザクションデータとし、SQLServerの実行SQLがどうなるか検証しました。

f:id:bishop03428:20220112165430p:plain
データソースA:入力パラメータ

パブリック

「パブリック」に設定した入力パラメータは、データソースBに対して発行されるSQLに検索条件が付与されて実行されます。これは相手のプライバシーレベルは関係ありません。上記画像のようなパラメータの入力がされていた場合、SQLServer側で実行されるSQLはこうなります。

SELECT *
FROM table
WHERE customer = 'AAAA'

プライベート

「プライベート」に設定したデータソースは一番機密性の高いデータとして扱われ、他のデータソースに一切データ送信されません。SQL文は一切検索条件が付与されないシンプルなものが発行されます。データソースAをプライベートとした場合、どんな入力をしていたとしてもSQLServer側で実行されるSQLはこうなります。

SELECT *
FROM table

組織

「組織」に設定したデータソースは、検索に行く相手データソースが「組織」だった場合とそれ以外だった場合で動作が変わります。相手も「組織」だった場合は、パブリックと同様の動作になり、このSQLが実行されます。

SELECT *
FROM table
WHERE customer = 'AAAA'

相手がパブリックだったりプライベートだったりした場合は、全件検索するSQLが実行されます。

SELECT *
FROM table

実際どうすべき?

社内データしか扱わない、ということが分かっていれば「組織」でいいですね。でも基本は「プライベート」を案内する方がいいでしょう。ちゃんと理解してくれる人がいればちゃんと教えるんですが、こういうの理解してくれる人ってあんまりいないのが常ですよねぇ。

【神機能】VSCodeからいろんなDBを使う【自己責任】

おはこんばんにちは、ビショップです。

前回、前々回とVisualStudio CodeからMySQLやMS SQLServerに接続していろいろできる拡張機能を紹介してきました。
今回は、1つの拡張機能でMySQLやMS SQLServerに加え、PostgreSQLやMongoDB、さらにはFTP接続までできるというものを紹介します。
なお、日本語情報は少ないので、追加は自己責任でお願いします。GitHubやマケプレを見る限りは、どちゃくそ評価が高く、懸念点はMITライセンスなのでそれこそ自己責任ってことくらいですかね。

今回ご紹介する拡張機能はこちら。
f:id:bishop03428:20211124103422p:plain
全く同じ機能で「MySQL」という名称の拡張機能がありますが、同じ作者さんなので、プロジェクト作り直したんでしょうね。リリース日は「Database Client」の方が新しくなっています。

インストール

拡張機能の検索ボックスから検索してインストールしましょう。インストールすると下画像のようなアイコンがアクティビティバーに表示されます。
f:id:bishop03428:20211124103632p:plain

コネクションの追加

早速DBコネクションを追加してみようと思います。アクティビティバーに表示されたDBアイコンをクリックしてサイドバーを切り替えます。表示された「DATABASE」の横にある「+」マークをクリックしてコネクションの設定画面を開きます。
f:id:bishop03428:20211124104056p:plain
コネクションの設定はコマンドパレットではなく、エディタにGUIの設定画面が出てきます。便利。下の画像はMySQLの設定画面ですね。画面中段にある、「Server Type」のすぐ下がタブになっているので、そちらでDBの種類を切り替えることができます。
f:id:bishop03428:20211124104415p:plain
PostgreSQLや…
f:id:bishop03428:20211124104730p:plain
SQLServerなど、いろいろ選択できます。
f:id:bishop03428:20211124104802p:plain

正しく接続情報を入力して「Connect」ボタンをクリックするとサイドバーにDBの情報が表示されます。DBに合わせたアイコンが表示されるんですね。いい感じ。
f:id:bishop03428:20211124104609p:plain
ちなみに、SSHやFTPコネクションを追加した場合は、NoSQLのサイドバーに表示されます。
f:id:bishop03428:20211124105555p:plain

テーブルの参照

データベース名をクリックするとテーブルやビュー、プロシージャといった階層が展開されます。
f:id:bishop03428:20211124105911p:plain
さらにTableを展開すると、データベース内のテーブル一覧が展開されます。
f:id:bishop03428:20211124105821p:plain
テーブルをクリックすればテーブルの情報を参照できます。この参照画面で大体の設計情報含め十分な情報が確認できます。権限があればこの画面からデータ編集もできてしまうのでその辺は注意しましょう。直感的に操作できるような洗練されたUIになので、特に詳しい説明は省きます。
f:id:bishop03428:20211124110122p:plain

テーブルの設計

サイドバーのテーブルを右クリックして「Design Table」で設計情報を詳しく参照できます。当然変更もできます。
f:id:bishop03428:20211124110631p:plain
設計画面は下画像のような感じですが、使いやすさで言うと、編集には画面右側のOperationというところから編集画面を別に開く必要があるので、毎回は面倒かなって感じです。テーブル作成時にはCreate文でやっちゃうことが多いので、ちょっとした変更の時くらいしか使わないと思いますが…
f:id:bishop03428:20211124110759p:plain
ちなみに変更すると特に断りなく勝手に保存されるのでジャンジャン設計内容が更新されます。
f:id:bishop03428:20211124111257p:plain

クエリの実行

クエリは実行したいデータベース名の右側に出てくる「Open Query」から実行します。
f:id:bishop03428:20211124111521p:plain
エディタにクエリが開くので、SQL文を書いて、「Ctrl+Enter」で実行します。
f:id:bishop03428:20211124111749p:plain
実行結果はウィンドウが分割して表示されます。
f:id:bishop03428:20211124111843p:plain

便利機能

サーバステータス

地味に便利な機能として、サーバ名を右クリックして「Server Status」を選択するとプロセスや設定値などのサーバステータスを見ることができます。
f:id:bishop03428:20211124112357p:plain
processListで現在のプロセスの一覧、MySQLならvariableListで設定値をみることができます。
f:id:bishop03428:20211124112544p:plain

サイドバーでの検索

マケプレの概要でも動画で紹介されていますが、サイドバー上でのフィルタが生きてるので、たくさんテーブルがある場合は便利ですね。

まとめ

VisualStudio Codeの神拡張機能「Database Client」の紹介でした。データのダウンロードやSQLのエクスポート機能もあるので、ほとんどVSCode上で作業が完結できます。他の拡張機能と同様に、権限管理などは当然専用ソフトに軍配が上がりますが、通常の開発時などのデータ参照や設計変更はこの拡張機能で十分ですね。神機能といって良いんじゃないでしょうか。とはいえ、重ねてになりますが、こちら公式ではないので、拡張機能のインストールは自己責任でお願いします。

【神機能その2】VSCodeからSQL Serverを使う

おはこんばんにちは、ビショップです。
前回、Visual Studio Codeの拡張機能でVSCode上でMySQLを触る機能を紹介しました。今回は、Microsoft SQL Serverを管理できる公式の拡張機能を設定していきたいと思います。

前回の記事はこちら
bishop.hatenadiary.com

拡張機能のインストール

まずは拡張機能をインストールしましょう。拡張機能の検索で、「mssql」と入力して出てくる「SQL Server (mssql)」をインストールします。Microsoftが出している公式の拡張機能です。
f:id:bishop03428:20211103100935p:plain

インストールすれば機能は有効になりますが、一応再起動しておきましょう。機能が有効になっていれば、アクティビティバーにアイコンが追加されると思います。なければCtrl+Alt+Dのショートカットキーを押してみましょう。
f:id:bishop03428:20211103101325p:plain

コネクションの追加

さっそくコネクションを追加してみます。初めての場合はサイドバーのCONNECTIONSの下にある「Add Connection」をクリックします。2回目以降は2つ方法があります。

  1. CONNECTIONSの横に「+」マークが出てるのでそれをクリック
  2. コマンドパレットからMS SQLのコマンドを検索してAdd Connection

f:id:bishop03428:20211103101251p:plain

コネクションの追加はコマンドパレット上でやります。まずは接続先のサーバ名です。
f:id:bishop03428:20211103101453p:plain

デフォルトで接続するDB名。未入力でもOK。
f:id:bishop03428:20211103101510p:plain

接続の認証方法。今回はSQLServerに作ってあるユーザでログインを試してみるので、SQL Loginを選択。
f:id:bishop03428:20211103101547p:plain

ユーザ。管理者ならSAとか。
f:id:bishop03428:20211103101603p:plain

パスワード。
f:id:bishop03428:20211103101648p:plain

パスワードを保存するかどうか。
f:id:bishop03428:20211103101725p:plain

プロファイルの名前。
f:id:bishop03428:20211103101747p:plain

コネクションの作成完了!先ほどつけたプロファイル名がコネクションの一覧に表示されていますね。サーバアイコンのインジケータが緑になっていれば接続できています。
f:id:bishop03428:20211103101911p:plain

さすが公式なだけあって、テーブルの一覧もそうですが、セキュリティやサーバオブジェクトまで確認できますね。
f:id:bishop03428:20211103102150p:plain

テーブルを右クリックして「Select Top 1000」を実行してみました。さすが公式。洗練されてる。
f:id:bishop03428:20211103102350p:plain

SQLの実行

SQLの実行は、エディタを右クリックして「Execute Query」で。ショートカットは「Ctrl+Shift+E」です。エディタ右上の緑色の再生ボタンでも実行できます。
f:id:bishop03428:20211105103803p:plain

まとめ

実際に触ってみて、動作も軽快だし、データのチェックや編集とか十分すぎますね。これもうManagement Studio要らないのでは?いや、ちゃんと管理しようと思ったらManagementStudio必要なんですが。普段使いでのレスポンスの良さはこちらの方が良いんじゃないでしょうか。
SQLServerを普段から使っていて、ManagementStudio開くの遅いし、なんかいいツールないかなって人はぜひこの拡張機能試してみてほしいですね。公式っスから。
f:id:bishop03428:20211105104138p:plain

【神機能】VSCodeでMySQLを使う

おはこんばんにちは、ビショップです。

なんでもかんでもVisual Studio Codeで完結したい。
DBにも繋いじゃおうってことでVSCodeでMySQLにつなげる方法を試してみました。

拡張機能のインストール

拡張機能で「MySQL」を検索します。
f:id:bishop03428:20211103084135p:plain

一番上に出てくるこちらをインストールします。
f:id:bishop03428:20211103084238p:plain

こちらの拡張機能は証明書によるSSL通信に対応しています。作者のJun Hanさんは、Githubを見るにMicrosoftの方なんですかね。HTML用の拡張機能のAuto Close Tagとか便利な奴いっぱい作成されてます。ライセンスがちょっと怪しいらしいので、個人利用に留めましょう。Microsoftが公式で出してくれればいいんですけどね。
インストールしたら、再起動した方がいいと思います。私はすぐにコネクションの追加しようとしたらコマンドがないよってエラーになりました。再インストールを何度か繰り返したら無事にインストールできたので、何度か試しましょう。

コネクションの追加

インストールできているとエクスプローラーに「MySQL」が追加されてます。
f:id:bishop03428:20211103084758p:plain

その横の「+」を押してコネクション追加の作業開始です。コマンドパレットで順番に作業します。
f:id:bishop03428:20211103084814p:plain

最初にホスト名かIPアドレスを入力してEnterを押します。名前解決できないサーバはIPアドレスにしましょう。ここで入力した内容がMySQLのエクスプローラにサーバ名として表示されます。名前解決できるようにしておきましょう。
f:id:bishop03428:20211103084831p:plain

次はMySQLに接続するユーザ名です。
f:id:bishop03428:20211103084928p:plain

そのパスワード。
f:id:bishop03428:20211103084943p:plain

接続するポート。デフォルトの3306を初期入力してくれてます。
f:id:bishop03428:20211103084956p:plain

SSL証明書のパス。必要なければ何も入力せずにEnter。
f:id:bishop03428:20211103085012p:plain

出来ましたー。
全部白塗りで申し訳ないですが、エクスプローラに出てきたサーバ名を展開して、スキーマが表示されれば成功です。
f:id:bishop03428:20211103085556p:plain

クエリ発行

テーブルを右クリックして「Select Top 1000」を実行してみます。
f:id:bishop03428:20211103092906p:plain

すると、エディタ画面の方にクエリと結果が表示されます。すばらしい。左右分割では見づらいので上下分割にしてもいいですね。
f:id:bishop03428:20211103093024p:plain

編集したクエリを実行する場合は、エディタ場を右クリックして「Run MySQL Query」を実行します。
f:id:bishop03428:20211103093714p:plain

単純に新しいクエリを作成するときはスキーマ自体を右クリックして、「New Query」をすれば空のクエリエディタが出てきます。
クエリはちゃんとスキーマ情報を持っているようで、FROM句にスキーマ名はなくても問題ありません。
f:id:bishop03428:20211103093330p:plain

CREATEもDROPもできますし、権限による制御もちゃんと適用されてますので、必要十分ですね。AWS RDSとかは環境がないので試してないですが、まぁイケるでしょう。
ちょっとDB見たいなぁって時に別のソフト立ち上げたり、PhpMyAdmin開いたりしなくていいのでマジで神。

10年経ったら小学生も大学卒業するわ

はてなブログ10周年特別お題「10年で変わったこと・変わらなかったこと

おはこんばんにちは、ビショップです。
今日も~、はてなブログ10周年企画に乗っかる~。

10年前、サラリーマンとして働くようになって3年くらい経ったくらいですね。勤めていた会社はそれから合併したりなんなりありましたが、今もお勤めしております。10年前と比べて変わらなかったことって、そんなにないんでしょうねぇ。人間日々成長していますから、逆になんも変わってねぇってやつはやばい。10年前じゃまだガラケー使ってたわ。

仕事に関しては、当然ですけど変化の嵐。なんなら海の外に派遣されたり、別の拠点に転勤したり、戻ってみたり。システムエンジニアとして働いているのはそんなに変わりませんでしたが、自分ができること、やらなければならないことが格段に増えました。技術的な面でも、テクノロジの進化など、ITの世界はめまぐるしい変化があります。それに追従しつつ働くってのはほんとに大変ですね。10年まではあんまり聞かなかったクラウド技術も大分進歩して、古き良き製造業である我が社もオンプレから徐々にクラウドの世界へ足を突っ込みつつあります。昔はデータセンターってだけでテンション上がってたなぁ。若かった。後輩も増えてきて、自分もしっかりクラウドとか新しい技術の勉強をしながら、後進の育成に努める。そんな指導する側の立場にもなってきて、責任は増えるけど給料は増えない、そんな感じ。

プライベートで言えばここ数年で大きな変化がありましたね。結婚して子供が生まれた。そうなると意識の変化はやはりあるもので、「とりあえず今は死ねん」と普段から思うようになります。また、より長い目線で物事を考えるようになりました。独身ってまぁ1~2年見てればいい感じしてた。今は20年くらい先のことは考えておかなきゃいけないと思います。子供が成人するまでですね。ちょっと老後は一旦いいや。まだ働ける年齢だし。今のところ次の変化予定は、家を建てたい。変わらなかったのは毛髪ですかね。まだ生えてます。

10年、長いっスね~。あと何十年も生き抜かなきゃならんのか~。ハゲるわ~。

好きなPCアプリ10選

はてなブログ10周年特別お題「好きな◯◯10選

おはこんばんにちは、ビショップです。
久々の投稿ははてなブログの特別お題「10にまつわる4つのお題」に乗っかりますわ。
仕事だなんだで常日頃からWindowsPCに触れていますが、好きな、というかよく使うアプリってありますよね。その辺紹介していきたいと思います。一応全部無料です。ちなみに、昔からよく紹介されてるアプリばっかりです。

1. Vivaldi

Webブラウザですね。GoogleChromeからは卒業しました。流行りの機能は大体揃ってます。仕事でもプライベートでもVivaldi使ってます。軽いし、おすすめ。
Get Vivaldi Browser

2. Visual Studio Code

もうみんな使ってますよね。万能エディタです。豊富なアドインでカスタマイズしまくって、普通のメモも、プログラミングも、CSVを見る時もこれを使ってます。画像も開けるし、draw.ioでフローチャート書けたり、マジで神。pdfとか見れるとより神になるんだけど。
azure.microsoft.com

3. ClickUp

デスクトップアプリがあるので10選に入れちゃいます。タスク管理ツールですね。前から推してます。神。無料版で十分すぎる機能があります。いろんなタスク管理ツールを渡り歩いてきましたがたぶん最強。日本語版はない。詳しくは過去記事をどうぞ!
bishop.hatenadiary.com

4. Claunch

ランチャーソフトです。昔からありますね。あんまり更新されないんですが、Windows11でも一応動きます。デスクトップクリックでの起動の挙動がちょっとおかしいですけど。基本マウスサークルくるくるで呼び出すのでそこまで気になるほどではない。スタートボタンからいちいちアプリ起動なんてしてらんないっス。

5. FenrirFS

ファイラです。昔からある。とりあえずファイルぶっこんでおけば正解。暇なときに整理します。Sleipnirってまだ更新してたのか…

6. ccchattttter

メカニカルキーボードのチャタリングを抑制してくれる常駐ソフト。古すぎてもはや更新されてませんが、メカニカルキーボードを使ってるなら絶対お世話になりますね。キーボードの分解清掃するかぁ…

7. RLogin

ターミナルソフト。TeraTermから乗り換えてどれくらいになるかなぁ。SSH接続もTelnet接続もこれ。複数タブで接続しておけるし、ウィンドウを分割して並行でコマンド打てたり、お魚を飼えたりします。便利なのかどうか分かりませんけど、ウィンドウを透過できたりします。
kmiya-culti.github.io

8. WinSCP

FTPクライアント。2011年くらいの作者の開発終了宣言を受けて、FFFTPから乗り換えまして。Github上でFFFTPも開発されてるので、そっちでもいいんですけどね。ホームページ制作とかしてる人はFFFTPの方が使いやすいですよね。ぜひ寄付してあげてください。
winscp.net

9. ScreenToGif

画面の録画ソフト。gifアニメーションで保存されます。簡単な動画マニュアル的なイメージで画面操作をgifアニメーション化して会社のイントラサイトにアップしたりしています。リンクは窓の杜さん。
forest.watch.impress.co.jp

10. Clibor

クリップボードの履歴ソフトです。Windows10以降はWindowsキー+Vでクリップボードの履歴が使えますけど、慣れ親しんだCliborちゃんが使いやすいですね。Ctrlキー2度押しとかホットキー設定がシンプルなのもいいですね。
chigusa-web.com


万年筆くれ~~~。
以上、私の好きなPCアプリ10選でした。もうみんな使ってるよねぇ。

スポンサーリンク