れんとう

まいにち なにか ひとつ

乗り換えるならVisual Stdio Code

エディタなに使う?

WindowsOS XLinuxと複数の環境を使う身としては、環境ごとに違うエディタを使うのは、めんどくさい。できれば、統一したいな?と思うわけ。

で、だ。

ならなに使う?

viとかemacsならどの環境でも存在するけどさ、それもちょっとな、と思うわけ。

で、今時なら、AtomかVisual Stdio Codeかなと思うわけ。

 

Atom

Visual Studio Code - Visual Studio

 

悩んだ末、Visual Studio Codeにした。

まだ使い込んでないからわからないけど、さ。

最近のMicosoft製品って好きだしね。

それに、VisualStdioの他のエディタと共通点多いんじゃないかと思ったのでね。

ということで、あちこちの環境にインストールしているのです。

Linuxで使うには?

いろんなインストール方法があるみたいだけど、リポジトリを使って簡単にインストールすることにした。

ちなみに、openSUSEへのインストールはこんな感じ。

$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
$ sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/vscode.repo'
$ sudo zypper refresh
$ sudo zypper install code

インストールが終わったら、コンソールから

code
と入力したら簡単に使える。
 
使ってみるとこんな感じ。
 

f:id:dawon2015:20180112000351j:plain

複数バッファの編集、デバッグコンソールやターミナルが一体化した環境。

うん、昔(ちょっとだけ)使ってたemacsに似てるね。

収斂進化ってこういうことだろうなぁ。

 

おまけ

ちなみに、サンプルプログラムはここから。

f:id:dawon2015:20180112001456j:plain

 

ブックオフで300円で購入。

え?古すぎるって?

いやいや、いいんですよ、これが。

昔の本って、アーキテクチャからちゃんと書かれていて、ほんと勉強になる。

最近の本って、盛り込むことが多いから、基礎のアーキテクチャの部分って省略されちゃうんだよね。

まずは、その、省略されている部分の記憶を呼び戻して、復習するところから始めるぞ!

 

openSUSE Leap42.3の解像度ってどうやって変えるの?

せまい

f:id:dawon2015:20180111005043j:plain

 

VMWareFusionにopenSUSE Leap 42.3を突っ込んでみた。

openSUSEのデフォルトのこの壁紙は、とても素敵だといつも思う。

が、画面がせまい!これ、解像度800x600かな?

で、設定を直そうと思ったんだけど…。

恥ずかしながら、最近のLinuxのXの設定ってよく知らない。

 

結局どこに?

f:id:dawon2015:20180111003448j:plain

 

「アプリケーションメニュー」ー「設定」ー「KDEシステム設定」

を選択。

 

f:id:dawon2015:20180111003510j:plain

 

「ディスプレイとモニタ」を選択。

ここ、画面のした〜の方にあるので、見つけるまでが大変でほげった。

 

f:id:dawon2015:20180111003908j:plain

 

あとは、解像度直すだけ。

 

かっこよくなりたい

Xの設定とかゴリゴリと書けるようならかっこいいのですけどね。

今回はGUIに頼りました。

openSUSEはデスクトップ環境としていろいろ使ってみたいところ。

 

俺の夢!WindowsからUNIXへのシームレスな接続なるか!? 〜WSLのインストール〜

かつて、仕事柄、UNIXを扱う方が多かった。
TeraTermはお友達。SSHになってからはPuTTYに乗り換え。
なので、シームレスにUNIXに接続できる環境をクライアントに作ることになる。
Cygnus(Cygwinになる前)とMIXをWindowsNTに突っ込んで、rxvtからサーバーにつないでX Windows転送をローカルへなんて、あーでもないこーでもないとやっていたのは、もう、ずいぶん昔のことになるな。
VMWarePlayerが実用的になってからは、そこにLinux突っ込んでクライアントにしてたけど、そのため「だけ」にわざわざVMを用意するのもなぁと思ってたんだよね。

もっと、シームレスにUNIXに接続できる環境を!Windowsで!とずっと思っていた。
うん、ついに、真打登場したらしい。

Windows Subsystem for Linux(WSL) 登場

そんな中で登場したのが、Windows Sybsystem for Linux、略してWSL。
前からβ版で提供されていたけれど、「Windows 10 Fall Creators Update」から正式版になった。
Linux互換のカーネルインターフェースの上でLinuxのソフトウェアを動かすという形LのLinux環境で、ストアアプリとして提供される。
この互換カーネルは、Linuxカーネルのコードは含んでいないらしく、あくまでも「互換」。なので、互換カーネルが提供していないサービスコールを呼び出すソフトウェアは動かないらしい。だが、そんな特殊なソフトウェアは、パッと思いつかない。うん、つまり、自分で使う分には十分に実用的だろうな、と思った。

ということで、導入してみることにした。

 

Windows10のアップデートから


WSLを使用するためには、「Windows 10 Fall Creators Update」の適用が必要になるので、WindowsUpdateを忘れずに。

「開発者モード」の設定と「Windowsの機能の有効化または無効化」
あちこちの記事を読むと「Fall Creators Updateの適用後は、開発者モードでなくてもWSLが使える」というようなこと見かけるけど、うちの環境では、開発者モードをオンにしないとインストールできなかった。どっちにせよ、開発者モードで使って問題ないので深く考えずにオンにする←謎理論一歩前のダメ発言。
この章は飛ばし読みして、うまく起動しなかったら、戻ってくるといいと思うよ?

 

まずは、「開発者モード」の設定から。

 

f:id:dawon2015:20180107210954j:plain

「設定」ー「更新とセキュリティ」を選択。

 

f:id:dawon2015:20180107211049j:plain

①最新状態=Fall Creators Upate」であることはチラ見する。
②「開発者向け」をクリック。

 

f:id:dawon2015:20180107211129j:plain

「開発者モード」にチェックがついてなかったら、チェックしよう。

 

f:id:dawon2015:20180107211155j:plain

なんか脅迫されるが、黙って、「はい」。

 

f:id:dawon2015:20180107211221j:plain

有効になると、「開発者モード」にチェックがつく。

 

次は、「Windowsの機能の有効化または無効化」でWSLを有効にする。

 

f:id:dawon2015:20180107211404j:plain

「設定」ー「アプリ」を選択。

 

f:id:dawon2015:20180107211430j:plain

下の方にスクロールしていくと、「関連設定 プログラムと機能」があるので、クリックする。

 

f:id:dawon2015:20180107211502j:plain

Windowsの機能の有効化または無効化」をクリックする。

 

f:id:dawon2015:20180107211521j:plain

Windows Subsystem for Linux」にチェックを入れる。

 

f:id:dawon2015:20180107211554j:plain

これで作業完了!再起動したら、いよいよ、WSLをイストールするよ!

 

アプリストアからダウンロード

 

インストールは、「ストア」からダウンロードするだけ。

 

f:id:dawon2015:20180107211637j:plain

まずは、ストアを起動する。検索ボックスに「Linux」と入力すると、「WindowsLinux を実行する」という文字が見えるね。
そこをダブルクリックしてみる。

 

f:id:dawon2015:20180107211716j:plain

インストールできるディストリビューションが出てくる。
このインストール作業をしたのは、2017.12.09、今確認した(2018.01.07)けど、変わらないね。
UbuntuopenSUSE Leap42、SUSE Linux Enterprise Serverの3つ。
Fedoraは謳い文句に名前はあるものの、リストにはのって来ないね。
今回は、openSUSE Leapを選択してみる。なぜかって?openSUSE LeapはVM切って普段使いしてるから親しみがあるの。RedHat系だから馴染みがあるしね(YaSTとかちょっと特殊ではあるけど)。
ディストリビューションごとのウンチクは、また後ほど。

 

f:id:dawon2015:20180107211810j:plain

「入手」をクリックでインストールは簡単に始まる。
あとは、待つだけ。

待ってる間に、せっかくだから、説明文でも訳してみますかね。

 

f:id:dawon2015:20180107211832j:plain

openSUSEは、安定していて、簡単に使えて、全ての用途に適したLinuxディストリビューションである。

openSUSE 42を起動するには、コマンドラインから"opensuse-42"と入力するか、Windows10のスタートメニューからopenSUSE42のタイルをクリックする。

ユーザーと開発者がデスクトップまたはサーバーで使用すること意図している。それは、ビギナー、経験のあるユーザー、スーパーハカーにとって素晴らしいことだ!一言でまとめると、完璧!だ!最新リリースであるopenSUSE Leap 42.2の特徴は、大量の便利なサーバーアプリケーションとユーザーアプリケーションが改良されて、新しくなったことだ。1,000以上のオープンソースアプリケーションが含まれている。

openSUSEもまた、SUSE Linux Enterprise製品をベースにしている。openSUSE Leap 42.1はSLE(SUSE Linux Enterprise)をベースにしており、Leap 42.2のソースコードの多くは、SLE 12のサービスパック2をベースにしている。NVIDIMM、OmniPATH、OpenVSwitch(Data Plane Development Kit)のような新しいテクノロジーはバックポートされている。XENはもはや専用のカーネルを必要とし、デフォルトカーネルでサポートされている。SLEのコードベースであるため、openSUSE Leap 42.2はパッケージ、メンテナンス、バグフィックスも、openSUSEコミュニティとSUSEのエンジニアが協力している。
leap42シリーズは、42.1のリリースから、少なくとも36ヶ月のメンテナンスとセキュリティアップデートを提供を達成している。

より多くのことを学びたければ

https://www.opensuse.org/

コミュニティのサポートは

https://forums.opensuse.org/forumdisplay.php/667-Get-Technical-Help-Here

ちなみに、和訳の正確度については保証しません!(雰囲気はなんとなく掴めてるはず)

さて、インストールが終わったら起動するよ!

WSLの起動と設定

さてさて。
和訳した通り、コマンドラインかタイルから、WSLは簡単に起動できる。
ので、やってみた。

f:id:dawon2015:20180107212240j:plain

初回起動時には、
①使用するユーザー名とパスワード
②rootのパスワード
の入力が求められる。
それが終われば、あとは、Linuxコマンドプロンプトだ。

ユーザーに関しては、Windowsのユーザーをそのまま使うのでなく、WLSの内部で別管理になるようだ。

ちなみに、サンプル画面では、ユーザー名をnagaにしてパスワードも同じnagaにしたら、「違う文字にしろ!」と怒られてる。

画面が小さいなと思ったら、タイトルバーを右クリックして、プロパティから、フォントサイズやウィンドウサイズを直せるので、適宜設定すると見やすくなるね。

さてなにをしよう

Microsoftの公式サイトをいくつか眺めてみた。

blogs.msdn.microsoft.com

channel9.msdn.com

 

Windowsしか知らない人にUNIXの裾野を広げる」という意図がはっきりみてとれる。
かつて、MicrosoftUNIXを目の敵にしていた時代を思うと、変わったな、と思うね。

さて、インストールしただけじゃなくて、何かしてみたい。
なにをしようかな?

めちゃくちゃUNIXした 〜これから〜

年末年始の過ごし方

年末年始休暇が終わってしまった。

もっとも、明日がんばれば3連休が控えているから…ちょろいぜ!

この年末年始、日頃やりたくてやれなかったことを、思いっきり消化できたので、とても有意義だったと思う。

 

やれたこと

  • OpenBSDを5.4から6.2にアップデート
  • Scientefic Linuxを6.7から7.3にアップデート
  • 放置プレイだったRaspberryPi(初代)を完動させる
  • オレオレリポジトリの更新
  • 各端末の諸設定の更新
  • 小型液晶ディスプレイの試作

やれなかったこと

 

それでもやれたことは多かった。

とても充実してたな。

忘れていたUNIXをかなり思い出した!

明日から、また、頑張るぞ、と。

面舵いっぱい取舵にはい 〜wheelな人々〜

取は酉らしいよ?

船の進行方向を操作するあの回すやつ?

英語ではwheel、日本語では舵輪というそうで、取舵が進行方向に対して左、面舵が進行方向に対して右に回す、とのこと。

語源は、取が酉。

酉の刻、つまり、7時の方向で、左を指すから、「酉舵」が転じて「取舵」に。

ではなぜ、反対語が「申舵」ではないかというと、船の上では風や波の音で聞き取りにくいのと聞き間違いを防ぐために、わざとイントネーションの違う「面舵」にしたのだとか。(以上、wikipediaを参考に書きました。)

取舵 - Wikipedia

TORIKAJI OOIIAAII

OMOKAJI OOOOAAII

SARUKAJI AAUUAAII

う〜ん、実際のところ、聞き間違いにくいのかな?

「舵」である理由は?

UNIX系サーバーにリモートログインするときは、いきなりrootでログインするとかありえない。

まずは、一般ユーザーでログインして、su - するのがお作法と若い頃に習って以来、ずっとそれに従ってきた。疑問?なくはないけど、ね。

あと、「お前は管理者だから、グループはwheelに入れておくね!」と言われた。それもお作法だと思って守っていたし、ずっと、管理する側だから、wheel以外になったことがない。

でもね、うん、ふと思ったんだ。このお正月。

なんで、rootになれるのは、wheelグループのユーザーだけなの?とね。

wheelと聞くたびに、「wheel of fortune」を連想し、パキスタン国境に想いを馳せるのです(わかる人にはわかるネタ)。しかし、UNIXでのwheelは車輪という意味ではなく、舵輪の意味のようですな。

Linuxでの設定

おうちで使ってる、なんでもサーバーの設定を眺めていて気がついたこと。

「あるぇ?おらのアカウント、wheelに入ってないのに、なんでsuでrootになってるの?」

これ、マジでヒヤッとしたから。

お正月休みで入れ替えしたので、ユーザーアカウントも新しく作ったのだが、そのときに、自分のアカウントをwheelに所属させるの忘れたようだ。普段、wheelでないことがない(ややこしい)ので、全くその意識がなかった。

でも、待てよ?

そもそも、wheelじゃないのに、suしてrootになれている時点でおかしくないか?

ということで、久々に色々調べた。

最近のバージョンはPAMも利用してその辺を制御してんのね。

なので、設定を直す。

設定ファイルは2つ。それぞれに、下記の内容を追記する(コメントになってたら外す)。

 

/etc/pam.d/su

→ auth required pam_wheel.so use-uid

 

/etc/login.defs

→SU_WHEEL_ONLY yes

 

さてさて、これで、自分のアカウントで試してみよう。

$ su -

パスワード:

su: 拒否されたパーミッション

おお!うまくいった!

でも、あれ?おら、rootになれないと困る!

ということで、サーバーにコンソールでログインして、コマンドを叩く。

# usermod -G wheel username

これで、wheelに追加されたはずなので、もう一度、su - を試みる。

$ su -

パスワード:

最終ログイン: 2018/01/04 (木) 08:33:47 JST日時 pts/0

最後の失敗ログイン: 2018/01/04 (木) 08:58:22 JST日時 pts/1

よしよし、うまくいった。

しかも、ログイン失敗がちゃんとログに残ってる。

よしよし、これで一安心だ。

で?結局、なんでwheel?

英語で、「Big Wheel」で「経営者」とか「実力者」とか「大物」という意味があるそうで。おそらく、それが「su で root になれるのは、wheelグループだけ」の語源ではないかと言われているようだね(以上、英語版のWikipediaを参考に書きました。)

Wheel (Unix term) - Wikipedia

じゃあ、なんで、wheelが偉い人を指すの?というと、船の舵を取れる人、つまり、船長のことなんだろうなと思う。

そういう意味では、「船頭多くして船山登る」と言いますし、rootになれる人はwheelグループだけに限定しておく必要があるようだね。

(ちゃんと話を落としました)

 

 

あけまして SQLServer

あけましておめでとうございます。

今年も?よろしくお願いいたします。

 

三日坊主で終わるのか?

このブログのタイトルの「れんとう」ですが、「連投」の意味でしてね。

毎日何かやって投稿しよう!と決めて始めたのですが、本業?が忙しくなるとピタリと更新が止まってしまいましたよね。

それは良くない!

と誓う元旦なのでした。

お正月に何してる?

日頃忙しくてできてなかったことをやろうかなとガサゴソしてます。

とりあえず、ScientificLinuxの環境を6.7->7.3には移行したかな?

その記事は、またいずれ。

6系と7系は違うと聞いていたけど、かなりホゲったとだけ。

で、元旦の今日は、「SQL Server 2017」と試したくて、アヒャってます。

まずは削除から!

久々に、うちの、SQL Server環境を見た。

DBは消してもいいようなものしか入ってないので、いいとして。

SQL Server Expressは、なんか複数の環境が入ってるように見える。

最近、触ってないから、もういいや、古いの全部消そう!としたんだが…コンパネからうまく消せそうもない、どうすればいいんだろうか?

こういう時は、あれですね。

O.K. G○○gle! SQL Serverの完全削除方法を教えて!(伏字になってない)

SQL Serverのかっこよい消し方

Microsoftの公式なサイトに、手動完全削除が載ってました。

https://blogs.msdn.microsoft.com/jpsql/2013/05/30/sql-server-4/

よしよし、これで消える!と思ってやったのですけどね。

GUI操作大変だったよ!レジストリいっぱいあるよ!

と、2時間ばかりかかりましたとさ。

SQL Server 2017 Expressのインストールを!

とうことで、綺麗に消えたようなので、2017をインストールしますかね。

ちなみに、公式サイトはこちら。

SQL Server 2017 Express エディション | Microsoft

べ、べつに、Microsoftの回し者じゃないんだからね?

 

SQL Serverに思い入れがあるわけじゃないんですけどね。

手軽に構築できて、かつ、手軽に運用できて、性能もそれなり、という点ではとてもいいと思いますよ?

 

ということで、2017の構築記録は、また別の記事で!

 

あれ?ダウンロードした?いつの間に?〜iOS11のデバイス間アプリ同期〜

戦艦同盟、おもしろいけど疲れるよね?

戦艦同盟のゲームアプリがやっと配信されました!

6Wavesさんのリアルタイムオンライン戦艦バトルゲームですよ!

戦艦同盟【10vs10 リアルタイム艦隊バトル】本格海戦

昨日の仕事帰りに、iPhoneでDLしておいて、今朝は目が覚めてからは、大海原を駆けずり回って主砲をぶっ放しておったのですよ。

で、だ。

このまま一日家にいたら、廃人になるよね?

と、お出かけの準備をするのに、カバンからiPadを出して開いて、ふと気づく。

「あるぇ?iPadになんで戦艦同盟のアイコンあるの?」

そう、iPhoneでDLしたアプリがなぜかiPadにもDLされていたのだ。

iOS11からは同期するようだ

iOS11からは、同一AppleIDでログインしたデバイス間で、iTunes StoreApp Storeで入手したデータを同期して自動ダウンロードする仕組みになっているようだ。

この機能、便利!とも思うが、いらぬアプリを増やす原因にもなりかねない。

また、バージョンアップも同期するようだが、デバイス間の個体差があって動かなかったりしてはたまったものではない。

と、いきなり新機能をdisって申し訳ないが、この機能は切っておくことにする。

無効にする方法は?

無効にしたいデバイスの「設定」から「iTunes StoreApp Store」を選択する。

f:id:dawon2015:20171123231559j:plain

 

ああ、確かに、有効になってる。

f:id:dawon2015:20171123231621j:plain

 

ミュージック、ブックとオーディオブックは自動ダウンロードでいいと思う。同期が取れると便利だ。

なので、Appだけオフにしてみる。

f:id:dawon2015:20171123231746j:plain

これだけ!

で、設定完了!

試してみたよ

iPhone 設定は有効

iPad 設定は無効

で、試してみた。

iPadで、ポケ森をDL開始!

おお!iPhoneにもDL始まった!

iPhoneで、NotEmacsをDL開始!

おお!iPadは反応がない。

ということで、オフにしたいデバイスで機能を無効にしておけばいいことが検証できた!

iOS11には他にも新機能搭載されてるのだろうけど、使いこなせてないなぁ。