雑記

ログインシェルで遊ぶ

  • POSTS
FTPの設定をしたときに、 /usr/sbin/nologinについて調べたら色々面白かったので簡単に実験してみた。 /usr/sbin/nologinは/etc/nologin.txtを読み込む らしい。読み込んで表示した後はexitされる。 しかし/etc/nologin.txtなどというファイルは存在しなかった。 なので試しに、自分でファイルを作成してみた。 そしてログインしてみる。 期待した通りのことができた。 これでサーバに不正にログインしようとした人を「ドキッ!」とさせることができる。 ログインシェルを別のコマンドに変える ログインシェルは/etc/passwdに書かれたものが実行される特性を利用して、 別のコマンドを起動してみた。 ログインシェルを /usr/bin/wに変更(ログインユーザをみるコマンド)。 /usr/bin/wが実行され、ログインユーザが表示された。 ログインシェルを空白にする 本来は記載されているログインシェルを空白にしてみた。 するとshが起動した。これは意外。 なのでログインシェルを起動させたくない場合は、/usr/sbin/nologinか/usr/bin/falseをちゃんと明記した方が良いということがわかった。 感想 ログインシェル面白い。 自分でコンパイルした実行ファイルなどを指定したらもっと面白いことができそう。

改行コードのまとめと覚え方

  • POSTS
改行コードややこしくね? Windowsでコード書いて、Linuxサーバで実行して、家ではMacを使って…などをしていると改行コードが「あぁ!」っと定期的になる。 とくに¥r¥n?¥n¥r?どっちだっけ?や、Linuxが¥nでMacが¥rだよな??CRが¥n?なんだっけ?^Mってなんだよといった感じで混乱する。 良い覚え方はないものかと経緯を調べたらすんなり覚えれたので今更ながらメモ。 改行コードまとめ OS 表記 改行コード 向き Linux、MacOS(X以降) LF ¥n ↓ MacOS(9以前) CR ¥r ← Windows CR+LF ¥r¥n ↵=←+↓ 上記表の向きに注目してもらいたい。 WindowsのCR+LFは←+↓なことが分かる。 覚え方 基本は(古いMacを使っていない限り) ¥n(↓)と¥r¥n(↵)だけ覚えておけばよさそう。 ¥r¥nの順番は「↵」を思い出して↵=←+↓(見ためが)なので↓は¥nだから最後にきて…と覚えた。 ※MacではショートカットキーでCtrl+nが↓キーの意味なので、n = ↓ は私にとって覚えやすかった ^Mはなんぞ WindowsのファイルをLinuxで開くと、^Mとなることがある。 これはWindowsの改行コードがCR+LF(¥r¥n)なのでLinuxで開くとLF部分(¥n)だけ認識されてCR(¥r)が残るのが原因のようだが、なぜ¥rと表示されないのか調べた。 たとえばWindowsで aaa bbb という文字列があったとする。 改行コードを表記すると以下のようになる。 aaa¥r¥nbbb さらにWindows内部ではASCII文字コード(16進数表記)で61 61 61 0d 0a 62 62 62として扱われている。 ここで61と62はそれぞれa,bであり、0d,0aが¥r,¥nに該当する。 このファイルをLinuxで開くと、 Windowsと同じように61はaで62はbと改行コードのところで0dは^M(文字として表示)で0aが改行処理される。 長々と書いたが、 ¥rはエスケープシーケンスとしての表記であり、実際は0dであり文字としては^Mなんだと思う。間違っていたら指摘してください。 ASCII文字コード参考

エンジニアらしく親孝行をしたい

  • POSTS
きっかけ 先週最後の親孝行と思い一週間実家に帰ったが、いまいち何もできなかった。 改善できる問題は日が経つごとに見つけることができたが、帰省中に解決することができず結局タイムオーバーで帰宅した。 デバイスの導入 帰宅後このままでは何もできないので、まずは遠方からでも実家の小さな問題が解決できるような環境構築を行うことにした。 今の時代スマートフォンがあれば全く困らないようなことでも、親世代はスマホを持っていないため、とても面倒なことを行なっている。 電車のダイアを調べるため紙の時刻表を見たり、地図をコンビニでコピーしたり、紙のタウンページでタクシーを調べていた。 本人もスマホに変えたいとは思うが、いまいち使い切れるか自信が無いようだった。 親は携帯をほとんど使わないので、今現在は月々2000円を切る値段で利用している。 スマートフォンにすると毎月7000円ほどに値段が上がってしまうし、 電話やメールはまだ微妙に使ったりしているので格安SIMにMVNOするのも抵抗がある。 要はちょっと使いたいけど乗り換えのコストを考えるといまいちなのだ。 そこでまずはエントリー機種として以前購入した Kindle Fire HD8を渡し、 Kindleを外出中でも使いたいとなったらスマホを買おうということにした。 これなら8000円の本体価格のみのでスモールスタートができる。 [asin:B01J94TYJK:detail] Kindle Fireについて KindleはFire OSであり、全体的にアプリのクセがすごい。 既存のアプリが使い慣れないのと、有名どころのアプリが標準ではほぼ使えないのが痛い。 だが以下のサイトを参考にすることで自己責任でAndroidアプリを入れることができる。 root化が不要なのが素晴らしい。 http://omolite.webcrow.jp/fire/google_play/私は親向けに以下のセットアップをした。 セットアップ アカウント関連 Gmailアカウントを作成 Skypeアカウントを作成 Amazonアカウントを作成 ※ただしクレジットカードや住所の登録はしていないので購入できない。既存のアプリ利用のためだけに作成 アプリ関連 Skype とりあえずテレビ電話をするために入れた。あった方が何かと便利だし、孫の顔も見せれる Chrome 既存のSilkブラウザが使いにくいのでChromeに変更。これは好み。 Teamviewer これを使えば操作中のKindleの画面を遠隔で見れるので、何かあった時に対処できる GoogleMap 地図を使ってみたいと言っていたので入れた GooglePhoto 孫の写真を良い感じに管理できるように入れた 全部初期設定は終わらせて、アプリをタップしたらそのまま使えるようにした。 その他 あまりアプリを入れすぎるとわかりづらくなるので、一画面に収まる数にした。 あと老眼らしいので、文字も最大に設定しておいた。 それとここが結構大事だと思うのだが、Kindleは初期設定のままだとロック画面に広告が表示される。 私が初めてKindleを購入してロック画面を見たとき、以下のような画面が表示されていた。 写真はイメージだが、このアニメ広告が勝手にロック画面になっていた ※過去の検索履歴とは関係なく一定期間ランダムに表示される [http://cdn-ak.f.st-hatena.com/images/fotolife/s/subcul-oniisan/20151224/20151224184940.jpg:image=http://cdn-ak.f.st-hatena.com/images/fotolife/s/subcul-oniisan/20151224/20151224184940.jpg] 親との間に無駄な誤解を生まぬよう以下の方法でKindleのロック画面を変更しておくのが無難であろう。 おわりに 全然ITエンジニアのスキルを活かさない内容になってしまったが、 今週末上記の設定をしたKindleを実家に送って反応を見てみることにする。

戦略的にMacbookを購入する

  • POSTS
はじめに 中古だがMacbook Proを7万円程安い価格(新品相場比較)で買えた。 戦略を練ったことで安く購入できたと思う。 この記事は次回PCを買い換えるときに見返す用のメモ。 購入額とスペック 14万円弱で購入。 新品相場は21万ほど。 購入PC詳細 Macbook Pro Late2016 Touch Barあり メモリ16GB SSD 256GB 中古だがキズや使用感は一切無し。 購入戦略 自分の許容範囲を決める 誰しもが最高スペックにカスタマイズされたPCを自分の望む値段で買いたいと思うが、現実は難しい。 譲れない最低限の条件をまず定義する 項目 上限限度額 状態 インチ メモリ SSD タッチバーのありなし 商品を見ていると「あれもいい、これもいい」と思ってしまうので、 条件を定義することで軸がぶれないようにする。 私の場合 上限限度額:14万円 状態:美品。キズありは買わない インチ:13 色:できればスペースグレイ メモ:8〜16GB。 SSD:256GB以上 タッチバーのありなし:できればあり。※ありの方はUSBポートが4つになり、GPUのスペックも上がる。直接確かめたい意味も込めて。 私の求めるスペックを新品で購入した場合、税込24万ほどする。 予算より10万ほどオーバー。[asin:B01N3ODS7I:detail] どのルートで手に入れるか 購入口 apple 公式サイト 価格コム Amazon 楽天 店頭 オークションサイト 普通に新品購入では絶対に予算内に収まらないので、今回はオークションサイトでの戦略を練った。 オークション系サイトの比較 ヤフオク メルカリ ラクマ ジモティ 上記の中で一番出品数が多く、売買価格の相場を比較した結果、ヤフオクが良かった。 出品数が多いと価格競争が発生し、相場が安くなる。 売る場合は注意 逆にもしもPCを売るのであればヤフオクはおすすめしない。

VirtualBoxとHyper-V(Docker for Windows)は共存できない?

  • POSTS
以下記事は2017年に記載したものであり、 2018年12月にリリースされたVirtualbox6.0からHyper-Vとの共存ができる模様。 参考: https://forest.watch.impress.co.jp/docs/news/1159338.html以下は、アーカイブになります。 はじめに きっかけは以下過去記事。 VirtualBoxとHyper-V(Docker for Windows)の共存ができない? Docker for Windowsを使うためにはHyper-Vを有効化しないといけない。 Hyper-Vが有効だとVirtualboxが使えない。 DockerとVirtualboxを使うたびにHyper-VのOn/Off&PCの再起動は面倒なので そもそもなんでムリなのか・どうするのが一番良さそうなのか調べてみた。 そもそもなぜ共存がムリなのか DockerとVirtualBoxの共存がムリというか、Hyper-VとVirtualBoxの共存がムリみたい。 Docker for Windows(Hyper-V)について Docker for WindowsはHyper-V(Microsoft提供の仮想化システム)の上で動く。 Hyper-VはCPUの機能であるIntel-VT機能(もしくはAMD-V)が必須。 Hyper-V自体はハイパーバイザ型仮想。 同じタイプの仲間にはESXiなどがある。 クライアントOSではWindows8以降に搭載されるようになった。 VirtualBoxについて VirtualBox自体はホストOS型仮想。 仮想化支援機能を有効化するときにIntel-VT機能を使うらしい。 これにより64bitOSに対応したり、効率的な処理(通常VirtualBoxがソフトウェアで処理している資源要求などの割り込みをハードウェアで処理)できるらしい。 Intel-VT(VT-x)とは インテルの仮想化支援技術。 x64世代のcpuからサポートされている。 通常は BIOS に入って「Virtualization Technology」などと記述されたメニューから、有効・無効の設定をする。 ほとんどのPCはデフォルト無効なので初めてVirtualBoxに64bitOSをインストールしようとしたときはBIOSから設定を有効にする。 上記をまとめると Intel-VT機能がDockerとVirtualBoxで共存できないのが原因っぽい。 VirtualBoxはIntel-VTがあった方がパフォーマンスが良いが、なくても動かせる →つまりVirtualboxの仮想化支援機能をOFFにすれば共存できる? 検証:Hyper-VとVirtualBoxの共存をためす 検証環境 ホストOS:Windows10 Pro Hyper-V:有効 VirtualBox:5.1.22 (仮想化支援機能OFF) ゲストOS:CentOS7(32bit)・・・仮想化支援機能がOFF前提のため32bitのみ動く 検証内容 Hyper-Vが有効な状態で、VirtualBoxにCentOS7をインストール 結果 失敗(ホストPCダウン)。 本来であればVirtualboxの設定からアクセラレーションを選択することで仮想化支援機能をOFFにできるが、 Hyper-Vが有効になっているためかアクセラレーションのタブを選択することができなかった。 この状態でVirtualBoxのCentOSを起動するとホスト側のPCにエラーが発生し、ブルーバック→再起動になった。 ※3回程試したがすべて再起動 Hyper-Vの設定を無効化したときは問題なくCentOSをVirtualBoxで起動できたので、Hyper-V周りが影響してうまく行かなかったと思われる。 結局どうすればよいのか VirtualBoxにこだわりがない人は、素直にVirtualBox→Hyper-Vに引っ越ししたほうが良さそう。 そうすることでDocker for Windowsと仮想マシンを同時に使用できる & 仮想環境としてもHyper-Vの方がオーバヘッドが少なく高速で処理ができる。 またOracleのVirtualBoxよりMicrosoftのHyper-Vの方が高信頼らしい(使い勝手は別として)。

データベーススペシャリストを2週間で合格できませんでした

  • POSTS
はじめに データベーススペシャリストはIPAの試験でありは高度試験レベル4に分類され、 合格率は17%前後の試験です。 H29,4/17に受験しましたが、 手応え的に不合格です(午後IIの試験中1時間ぐらいは瞑想していました)。 「人生でDBとか触ったことないし、業務でも使わないし、子供生まれたばかりで全然勉強できなかった」 と自分の中で言い訳して「しょうがない」で片付けてしまっては成長できないので 今回の失敗を自分用のメモとして振り返ります。 データベースと私 そもそもですがデータベースに興味があるかと聞かれるとゼロです。 上に書いた通り業務でも使いませんし、人生で触ったこともありません。 ただ、自分がやりたいことを実現するために必要な要素の一つだったので勉強&受験してみました。 振り返り 大きく4つの観点から振り返ります。 ①うまくいった視点レベルでの改善 ②うまくいった行動レベルでの改善 ③失敗した視点レベルでの改善 ④失敗した行動レベルでの改善 上記の振り返り方法は 梅原大吾著書の「1日ひとつだけ、強くなる」の内容を参考にしてみました。 この本は世界1位を何回も取り続けている人はどのような考え方で行動しているのか気になって読みました。 [asin:4046006412:detail] ①うまくいった視点レベルでの改善 ここでは考え方として良かった部分と改善を考える。 通勤時間の4時間/日は午前Ⅱ対策にする →あまり座れず乗り換えもあるので、簡単にできる午前Ⅱの勉強に充てる →午前Ⅱは2週間で過去問9割ほど正解できるレベルになった。 →平日は仕事と育児で午前対策しかできなかった。 →午後問を朝一問やるなどの対策が必要だった。 午後問の勉強範囲を限定する →選択問題で「概念データベース」を中心に勉強する。 →物理設計はやらないことで、午後Ⅰ・Ⅱの勉強範囲を一緒にする。 勉強の順番を午前Ⅱ→午後Ⅰ・Ⅱ→午前Ⅱにする →初めに午前Ⅱを行うことでDBSの単語を覚えて学習スピードを上げる。 最後までやる →試験4日前時点で「間に合わない100%不合格だろう」と感じていたが試験直前まで勉強した。 →試験直前まで勉強していると勉強時間以外に自分に足りなかった要素が課題となって見えてきた。 →自分の現状の実力を把握できた。頑張れば本当はできるという甘い考えは排除できた。 →脳に負荷をかけることで勉強中別のアイデアがたくさん出てくることに気づいた。いつもと違うことをやっている方が違うアイデアが出てくる。 ②うまくいった行動レベルでの改善 ここでは考え方は正しいし、実際考えどおりにできたことをさらに改善する。 勉強のための徹夜は絶対にしない。(これは大学生のときに何度も検証して失敗してきた) →徹夜しなくてはいけないような勉強スケジュールに問題があった 午後Ⅱを最後まで受ける →わからないなりになんとか解答欄を埋めて最後まで粘ってみた。 →自分の限界と問題との距離感を感じた。 ③失敗した視点レベルでの改善 ここでは考え方がそもそも間違っていたことの改善 情報処理安全確保支援士(セキュリティスペシャリスト)と同じ勉強法でいけると思っていた。 →セスペの午後Ⅱは午後Ⅰの問題の延長なので、午後Ⅰをしっかりと勉強していれば午後Ⅱの対策は不要だった。 →DBSは午後ⅠとⅡで求められているものが変わり、午後Ⅱの対策(トップダウンアプローチの解法など)をしっかりとしないといけなかった。 ④失敗した行動レベルでの改善 ここでは間違えた行動を振り返る 参考書を間違える →試験の対策で参考書選びは非常に大事である。これについては以下過去記事にも記載した。 →セスペのときに購入した参考書が非常に良かったので、DBSについても同じ出版社の参考書を買ったがこれが大きな間違いだった。 →4000円弱かけて買った参考書は初学者には非常に難しく全然読めなかった。 →このままではまずいと別途参考書を購入したが、すでに試験6日前だったので学習が間に合わなかった。 参考書へのペン入れ →最終的に売ることを考えて問題などに対してペン入れしていなかった。 →このため問題を印刷したり頭の中で考えたりノートに写したりと無駄が多かった。 →残り3日前に諦めてペン入れをした。来年も使えるようにFrixionで書き込んだ。書き込んだ文字は本ごと温めれば消せるはず。 会社の昼休みに勉強する

コマンドプロンプトでシェルを使う

  • POSTS
どうなるのか Windowsに標準で入っていながら、パワー不足によりあまり人気のないコマンドプロンプト。 産みの親のMSにも、これからはPowershellに力を入れていくからと言われてかわいそうな状態。 そのコマンドプロンプトをちょっとだけカッコよくしてみる。 これが こんな感じになったり、 こんな感じにできる。 ##メリット コマンドプロンプト打ちながら「シェル使いたいな」と思ったときにささっと切り替えれる。 コマンドプロンプトからvimやsshもできる。 コマンドプロンプトの画面だったのに急にシェルになるのが「なんとなくかっこいい」かもしれない。 手順 シェルのインストール シェルとなるMSYS2をインストール(Cygwinでも可)します。 インストール方法は他の方が書いてくれているのでそちらを参考。 PATHを通す(ユーザ環境変数を追加する) コマンドプロンプトからシェルのコマンドを使えるようにします。 以下コマンドでユーザの環境変数にmsysへのPATHを追加します。 SETX PATH "%PATH%;C:\msys64\usr\bin" 成功: 指定した値は保存されました。 確認 これで基本的なシェルのコマンドが使えるようになった。 コマンドプロンプトを起動して、 lsやvim、bashを打つと実行される。 ちなみに zshはこんな感じ。 応用 powershellでもそのまま使えるよ PATHが通っているのでPowershellでも同じように使える。 powershell版のSSHモジュールとかインストールしなくても使える。 Visual Studio Codeのターミナルでも使えるよ もともとはこれがしたくてやりました。

iphoneのスピーカーが壊れたけど、3時間後には修理完了した話

  • POSTS
そして3日ほど前から完全に音が出なくなった。 外にいる時は困らないけど、家にいるとき音楽を聴いたり動画見るときに音が出なくて不便になってきた。 修理の手段や値段がわからない iPhoneを3GS時代から機種変更を繰り返して使ってきたが、 それまで一度も壊れたことがなかったので、 Apple careやキャリアのサポートには入っていなかった。 ネットで調べると非公認業者のスピーカー修理は5,000〜10,000円が相場らしい。 正直5000円あったらRaspberryPi Zero Wを5個買いたい。そっちにお金を使いたい。 壊れたiphoneをソフトバンクの窓口に行っても、混んでそうだしサポート入っていないから有償になりそう。 かといってAppleサポートに電話しても繋がるまでに1時間ぐらいかかるしどうしようと考えていたら、 Appleのサポートを電話ではなくチャットする方法があった。 Appleサポートとチャットする 待ち時間ゼロでWEB画面上でチャットが始まった。※iphoneからでもOK 事情を説明してどうすれば良いか尋ねたら、 私の場合はハードウェアの故障の可能性が高く、落下による破損や水没がなければタダで修理できると教えてくれた。 そして家の近くのapple修理代理店と予約空き情報を調べてくれて、そのまま予約してくれた。 チャット自体は10分ぐらいで終わり、 予約した時間に代理店に行くと、非常に混んでいたがすでに話が通っているのでスムーズにやり取りが進む。 そして代理店に行ってから1時間後にはスピーカーのパーツを交換して無事修理が完了した。 修理について調べてから3時間後にはiphoneが直ったのは嬉しい。 まとめ Appleに用があるときは電話じゃなくてチャットが良いよ。

新生児の泣いている原因と見極めかた

  • POSTS
子供が生まれました 初めての娘が生まれて1ヶ月が経ちました。 初めは5時間泣きっぱなしだったり大変でしたが、注意深く観察していくうちに 泣いているのにはちゃんと理由があることに気づきました。 いま子供(新生児)が泣いて困っている人がいたら参考になるかなと、気づいたことを書いていきたいと思います。 ※私の1ヶ月の経験と助産師さんのアドバイスが混ざっているので信じすぎず参考程度に見てください 赤ちゃんが泣いている原因 腹減った 夜泣きが最初の3週間酷かったですが、ほとんどの原因がこれでした。 我が家の場合ミルクで育てていたので3時間ごとでないと飲ませられなかったのですが、 与える量が少ないと3時間よりも早く起きて泣き始めます。 「ミルクまであと1.5時間ある。どうしよう・・・」 となってあやしてみるものの、お腹がすいているので泣き続けます。 しょうがないから30mlだけ与えてもこれは意味がありません。 最初のミルクから1.5時間経ってお腹が空いて泣いているので、 30mlだけ飲んでも足りないので泣き続けます。 母乳とミルクの両方でやっている人は、産婦人科から「ミルクは○mlまで!」と言われる場合があります。 母乳を途中でやめた場合はミルクを適切な量にする必要があります。 見極めかた 泣いている時に口や舌がペロペロ動く。 口に指を近づけた時の食いつきがいつもよりもすごい。 体重が数日増えていない。 うんちが24時間以上出ていない。 対応方法 ミルク缶に書いてある適切な量を確認する。 決められた量を飲ませて2時間で起きてしまうようであれば、少し多めに作って赤ちゃんがどこまで飲むか見てみる。 個体差はあるので飲む子は飲む。 多めに飲ませて長く寝てくれるようであれば、ミルクの量や質を確認してみる。 また深夜のミルクは昼間よりミルクの量を欲しがる傾向があるので少し多めにしてみる。 かゆい 生後1週間がたったころ、赤ちゃんからチーズの臭いがしてきました。 こんなものなのかなと思っていたら、実は吐いたミルクが首のシワに溜まって発酵していました。 首元の皮膚も赤くただれていました。 赤ちゃんの首は奥深くまでシワがあるので沐浴のときによーーーく確認して丁寧に綺麗にしてあげましょう。 見極め方 チーズくさい 首の奥の皮膚がただれている 対応方法 丁寧に優しく洗ってあげる。 酷いようであればちゃんと先生に相談。 オムツが気持ち悪い これが原因が泣くことはあまりなかったです。 泣くよりはグズグズ言うことが多いです。 お腹が気持ち悪い 飲んですぐに横にすると気持ち悪くて泣き出します。 見極め方 ミルク後に泣いた場合、縦にすると大人しくなる。 対応方法 げっぷをさせる。 10分ほど縦に抱っこしたあとに、横にする。 眠い 上記の何かしらの原因で不満があり、寝たいに寝れなくて怒って泣きます。 だっこして・かまって だっこすると一時的に泣き止むので、頑張ってあやしたりしますが、 すぐ泣き出す場合は、別の原因の可能性が高いです。 あまり「だっこしてーーーーー!!!!」とはならない。 寒い・暑い 相当ひどくなければあまり泣くことはないですが、 我が家の場合は暑くてぐったりしていました。 こまめに様子を見てあげましょう。