ブログ

読んで思い出す。忘れるために書く

pack コマンドで Docker コンテナを構築する (参考リンク)

詳しくは https://buildpacks.io/ 参照のこと

Docker イメージが降ってきて

ベースイメージにソースコードを取り込み

よしなに選定された環境が構築されて

Java 環境の構築

Java の Web アプリが立ち上がる

Web App の立ち上げ

この間 Dockerfile を編集する作業が登場しない...!!

まるで Heroku の Buildpack みたい!!

Links

Q. Xcode 上で GitHub リポジトリにソースコードを Push したい

A. 予め 設定から GitHub アカウントを追加しておいて、ソースナビゲータからリモートリポジトリを追加 する

f:id:innocent-zero:20191127152628p:plain
ヘルプを参照して GitHub アカウントを追加した様子

Links

「翌営業日 - その1」を解いた (Paiza 練習問題)

回答コードを載せるので、未挑戦の場合は先に 翌営業日 - その1 を参照のこと

前提・概要

前提

レベルアップ問題集にある問題については、ユーザー同士で解答を教え合ったり、コードを公開したり、授業や研修で使用することは何の問題もありません。是非、ご活用ください

https://paiza.jp/works/mondai

概要

  • 営業日は、月曜日〜金曜日
  • 休業日は、土曜日, 日曜日のみ
    • eg. 「なんとかの日」は祝日だけど月曜日なので営業日
  • 2月28日の翌日は、常に3月1日

上のような定義で、与えられた「月, 日, 曜日」をもとに翌営業日を求めるというもの

(カレンダー関係の設問なので、「どの月が 30日/31日終わりか」の暗黙の前提がある)

回答コード, テストコード

コードは Gist 上に保存した

  • 入力受け付けコード
  • 回答コード
  • テストコード

の3つを書いた

gist.github.com

次の一歩?

問題の定義上、曜日が2順することはなさそうなので;

もう少し考えれば「金曜日なら3日後」「土曜日なら2日後」「それ以外は1日進める」といった条件に気付いて、より簡単な定義にできるかもしれない

より簡潔な書き方に挑戦してみて欲しい

Links

HTML Drag & Drop API で要素を直感的に移動する

モクモク会でも同様のコードを書いた

gouf.hatenablog.com

今回はコードの公開が目的

教材の部分と絡んだコードにならないよう、Rails から分離した

See the Pen Drag & Drop API Demo by Gou Furuya (@gouf) on CodePen.

Links

Techpit 教材をつかったモクモク会に参加した (Trello風ToDoタスク管理アプリ)

【Railsアプリ開発講座】Trello風ToDoタスク管理アプリを作成しよう!」に参加した

カリキュラムに沿って完成させて、その次の日に機能追加した話

完成したもの

こういう見た目のアプリになった

Trello 風アプリ

アプリの動作 (リストとカード)

最後までカリキュラムに沿って; リストを増やしてその子としてカードを登録していく機能までは実装した

カードを移動する操作は

  1. カードをクリックして 詳細ページに移動
  2. リストの所属を <select/> で指定して submit

というページ移動式の実装方法だった

この部分で、どんな実装をするのか 勝手に思い込んでいたことがあって、「Drag & Drop でカードをリスト間で移動できる」機能にすると思ってた

完成品の改変

そこで実際に思った通りのものを実装することにした

動作イメージは、つぎの GIF 画像のようになった

Drag & Drop でカードを移動できる

コードの公開について

カリキュラムの内容は有償なのでコードは公開していいのか 判断がつかない... ので、ぜんぶは公開しない

追加で実装した部分はカリキュラムの内容に関わらない公開情報なので調べれば実装できる

Drag & Drop API

今回の追加実装では HTML ドラッグ&ドロップ API を利用した

Drag & Drop API が用意してくれているイベントに合わせて、次の動作を書いた

  • Drag が開始されたらDrop を受けるための要素を表示
  • Drop する場所の上に要素が来たら クラスの付与を切り替えて CSS スタイルの変更
  • Drop された (or キャンセル) ときに Drop を受けるための要素を非表示に切り替え
  • Drag & Drop されたら移動先に要素を append して、移動元の要素は削除する

Drag & Drop の動作を実現するために必要なイベントは意外と多かった

イベント登録処理のコード

<form/> の追加

JS 側の実装に合わせて <form/> も用意して、Rails 側でもカードの移動を適用できるようにした Rails 側でも form を用意する

Drag & Drop のイベントに合わせて、<form/><input/> 要素の値を変更して submit している

Links

Q. インストールしたコマンドが長くて打ちたくない (補完したい)

A. brew search [command name]-completion で補完用定義を探してみる → インストールする

(brew 経由じゃなくても公開されているので 探せば見つかるかもしれない)

補完機能を有効化する

たとえば brew install vagrant から vagrant コマンドを使えるようにしたら保管機能がないか探してみる:

brew search vagrant-completion
# ==> Formulae
# vagrant-completion

有るみたいなのでインストールする:

brew install vagrant-completion

インストール後、ターミナルを再起動させると「vagrant box... なんだっけ?」というときに補完が効いて add, list, outdated など必要なコマンドが指定しやすくなる

Links