もしじるし

エンジニアとしての学び。人生の気付き。憧れの人へ出会うまでの道のり。

自分自身のセルから数個となり(行,列)のセルを取得する方法。

サクッと結論を

左のセル値を取得する

=OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, -1))

ちょこっと解説

自分自身のセルの取得

=ADDRESS(ROW(),COLUMN()
⇒$C$15

INDIRECTで文字列で指定したセルの参照を返す

=INDIRECT("A1")
⇒A1セルに入力されている値を参照

OFFSETで位置をずらす

=OFFSET(A1,1,1)
⇒A1セルを基準に下(行)に1つ、右(列)に1つずらした値を参照する。

組み合わせる

OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, -1)

考え方としては、

  1. OFFSETでずらしたいから参照するセルを指定したい
  2. 参照するセルは自分自身のセル
  3. ADDRESSだと文字列で返ってきてしまうのでINDIRECTで参照に変換する
  4. ずらしたい数値を指定する。

こんな時に使える

  • 列の追加や削除を行う場合があるとき
  • 関数を使用している状態でフィルターを使用するとき

Udemy 初めてのDjangoを終えて

www.udemy.com

Udemyで以前に購入したDjangoの動画を見終わりました。感想としては、

  • PythonLinuxの知識が多少ないと厳しい
  • AWSのEC2構築講座があるが、基本の基本しか抑えてくれない
  • Railsチュートリアルの方が丁寧である
  • この講座を見終わってからオリジナルアプリを開発しようとすると厳しいところがある
  • 短い為、達成感を比較的簡単に得られる

こんな感じでした。

テンプレートの説明がなかったり、ルーティング周りの説明がすこし弱いかなといった印象を受けました。
動画の長さが5分ほど×66項目なので十分3日で概要をつかむことはできると思います。

定価で購入するのは高く感じますが、セールの間に買っておいて、3連休でチャチャっと学習するのにはもってこいの手軽さです。

フレームワークを使用せずにローカルホストにサーバーを立ち上げる(Ruby使用)

フレームワークに頼らずにWEBサーバーを立ち上げたい

と思ったことがある人いませんか?ちょっとだけ動作確認したいときとか。

では、どうやってサーバを立ち上げればいいのか。
Apacheを使用するとサーバを構築することができるようですが、インストールはしたくない。
railsを使用すればサーバ構築できるけど、rails newするのが面倒。
rails使えばサーバを立ち上げれるのであれば、rubyを使用した方法はないのかな?と思って調べてみたところ、webrickというのを見つけました。

webrickとは?

Rubyに標準添付されているサーバー用のフレームワーク
Rails sするとBooting WEBrickと出てくる。railsもこのフレームワークを使用しているみたい。
※実際にBooting WEBrickのログを取ろうとしたらBooting Pumaって出てきた。

コードを用意する

require 'webrick'

srv = WEBrick::HTTPServer.new({
    DocumentRoot:   '.',
    BindAddress:    'localhost',
    Port:           '3000',
  })
  
  srv.start

起動する

ターミナルから起動

$ ruby webric.rb
[2019-03-02 17:33:05] INFO  WEBrick 1.3.1
[2019-03-02 17:33:05] INFO  ruby 2.1.3 (2014-09-19) [x64-mingw32]
[2019-03-02 17:33:05] INFO  WEBrick::HTTPServer#start: pid=16064 port=3000

ブラウザからlocalhost:3000に接続すると起動しているのが確認できる。

最後に

そもそもローカルにサーバを立ち上げようとしたのは、スマホで自分の作成したサイトを確認しようとしたからだけど、結局PCとスマホが同一ネットワーク上に存在していなかったので確認できなかった。 ただ、いままで何となくrails sでサーバを起動していたけれど、その中身を少しだけ勉強できたので良しとしよう。

Powershellのプロンプト(ディレクトリ名を表示している左端の部分)を変更する

Powershellのプロンプトを変更する

エンジニアでターミナルを使用しない人はいないと思います。Windows10にはコマンドプロンプトのほか、Powershellというターミナルが標準でついています。 開発の際に常に目にするものであり、目にするからこそ少し遊び心が欲しいなと思い調べてみたところ、どうもディレクトリを表示している左端の部分(プロンプト)を変更できるようです。

そこで、さっそく変更してみました。

変更の方法

実行ポリシーを変更する

スクリプトファイルというものを作成してプロンプトを変更するのですが、初期状態だとスクリプトファイルを読み込むことができません。
そのため、先にスクリプトファイルを実行可能なように設定します。

Powershellを管理者権限で開く

Powershellを管理者権限で開いてください。

Set-ExecutionPolicyの実行

Set-ExecutionPolicy RemoteSigned

上記コマンドで実行ポリシーをRemoteSignedに変更します。

f:id:moshi1121:20190203222736p:plain
Yを入力してEnterで進んでください。

実行ポリシーを詳しく知りたい方は以下の記事が参考になります。

www.atmarkit.co.jp

ディレクトリとファイルの作成

C:\Users\ユーザーネーム\Documents\WindowsPowerShellという名称でディレクトリを作成する。
Microsoft.PowerShell_profile.ps1という名称のファイルを作成する。

Microsoft.PowerShell_profile.ps1を編集

私は以下のように編集しています。

function prompt () {
    Write-Host "["(Split-Path (Get-Location) -Leaf)"]" -NoNewLine -ForegroundColor "Green"
    Write-Host "(*'-')>" -NoNewLine -ForegroundColor "Magenta"
    return " "
}
Write-Host "実行ポリシーは" (Get-ExecutionPolicy) "だよ!" -ForegroundColor "Yellow"

コマンドを読み解く

Write-Host

こちらでコンソール上に文字を表示。

Split-Path (パス) -Leaf

パスから特定の要素を抽出する。-Leafは末端の要素。

Get-Location

カレントディレクトリのパスを取得。いわゆるpwd

-NoNewLine

改行しない

-ForegroundColor

文字色の変更

Get-ExecutionPolicy

実行ポリシーの表示。確認できるように記述。

注意点

  • 最後にreturn " "をいれないと標準のプロンプトが入りますので注意が必要です。
  • プロンプトの部分に全角文字を使用するとスペースを使用した際に位置がずれることがあります。

参考

www.atmarkit.co.jp

docs.microsoft.com

Write-HostとWrite-Outputの違い - しばたテックブログ

Youtubeを見ながら作業をする方法

Yotubeを見ながら作業(コーディング)したい!

作業するときYotubeみたいですよね。でも、ディスプレイが1つの場合は画面を2つに分割するなどしないと動画ウィンドウが隠れてしまいます。

f:id:moshi1121:20181215001212p:plain
常にYotubeを見ていたい

どんなウィンドウでも”常に最前面へ表示”があれば便利なのに。。。と思ってググってみたらありました。

www.vector.co.jp

良いところ

Pauseキーで最前面表示できる

最前面表示をする際に私用するキーはPauseキーです。キーボードの右上あたりについているパターンが多いですね。

このキー使ったことある人いないのではないでしょうか。元々はプログラムの中断をする際に使用していたらしいです。 ただ、現代で使う場面は至極わずかで、飾り状態ですね。 そんなPauseキーを有効活用できるのです!

作業効率が上がる

ちょっとした調べものをする際に、ブラウザを開いて⇒コード書いて⇒ブラウザ開いて⇒コード書いて...という作業を繰り返すと思います。 この最前面でポーズを使用すれば常に最前面に表示してくれるので、ブラウザで資料を確認しながら作業することができます。ウィンドウが邪魔になったら最小化を押せば最小化も可能。便利。

f:id:moshi1121:20181215001605p:plain
リファレンス見ながら作業可能

欠点

いちいちソフトを起動しなければいけないところ。

と、いうわけでWindows起動と同時に自動で立ち上がるようにします。

Windowsキー+Rを押してファイル名を指定して実行を立ち上げます。そこにshell:startupを入力してOK f:id:moshi1121:20181215000837p:plain

すると、スタートアップフォルダに移ると思います。こちらにWindows起動時に起動したいソフトを置けばOK。

世の中にはまだまだ便利なソフトがありますね。

WindowsのCドライブが容量不足になったとき、Dドライブにプログラムを移し替える方法

Cドライブは放っておくと容量圧迫する

f:id:moshi1121:20181120224344p:plain

パソコンを使用しているといつの間にかデータ量が膨れ上がり、ストレージの容量が圧迫されます。

私もその一人。写真のとおり256GBのSSDのうち空き容量はわずか25.5GB。

SSDは構造上空き容量が多ければ多いほど速度が速いため、なんとか空き容量を増やしたいです。

移動対象のファイルを選定

今回はSteamのゲームをDドライブの方に移動させることにしました。

移動対象の選定は『DiskInfo』というソフトを使用しました。

forest.watch.impress.co.jp

解析結果がこちらです。

f:id:moshi1121:20181121001834p:plain

f:id:moshi1121:20181121000640p:plain

Steamフォルダ内のデータがなかなかの容量を使っています。

普通にDドライブにコピーしてみた

PUBGをHDDに変更してしまうとマップの読み込みの遅延がひどくなるみたいなので、PUGBの本体と設定ファイルの入っていそうなSteamworks Shared以外のファイルをHDDに移動してみます。

移動先はどこでもいいです。私はDドライブに以前使用していたWindows10がインストールされているため、同じSteamディレクトリに移動しました。

試しに、ATrainPCを起動させてみます。

f:id:moshi1121:20181123220253p:plain

エラーが発生しました。Cドライブにあったファイルを使用してゲームを動かしているのに、Dドライブに移動させてしまったので動かなくなるのは当然です。

シンボリックリンクを作成する

この問題を解決するため、シンボリックリンクを作成します。

シンボリックリンクとは、ショートカットに近いものです。ショートカットとの違いはリンク先には実態が存在していないことです。と言っても初めて扱う方はよくわからないと思うので、実際に作ってみます。

手順1:コマンドプロンプトを起動

windowsキー + Rファイル名を指定して実行を開きます。そちらにcmdと入力して『OK』を押してください。

f:id:moshi1121:20181123221609p:plain

f:id:moshi1121:20181123221922p:plain

上の画面が出ればおkです。

手順2:mklinkコマンドを実行する

シンボリックリンクを作成する為にmklinkコマンドを実行します。

コマンドプロンプトmklink /dと入力。次に”シンボリックリンクを作成するファイルの場所+リンク名”を入力します。リンク名にはもともとのフォルダ名を指定してください。

そして、半角スペースを入力して”移動先のファイル名”を入力します。ファイル名はエクスプローラーのアドレスバーをクリックするとコピーできます。

f:id:moshi1121:20181123223756p:plain

リンク部分を””(ダブルクォーテーション)で括るのを忘れないでください。

最終的な形は以下のようになります。

mklink /d シンボリックリンクを作成するフォルダ名+リンク名 移動先のフォルダ名

f:id:moshi1121:20181123225454p:plain

入力したらEnterを押してください。シンボリックリンクが作成されているはずです。

f:id:moshi1121:20181123225618p:plain

試しにゲームを起動してみます。

f:id:moshi1121:20181123225735p:plain

起動しましたね。成功です!

注意点

注意するほどではないのですが、このシンボリックリンクは外見上ただのフォルダにしか見えません。削除したけれど実態は別にあったとなりかねないので注意です。