display:noneとvisibility:hiddenの違い
display:noneは要素を削除する。
visibility:hiddenは要素を非表示にする。
例(display: none)
適用前
適用後
例(visibility: hidden)
適用前
適用後
Markdown記法
見出し
# 見出し1 ## 見出し2 ### 見出し3 #### 見出し4 ##### 見出し5 ###### 見出し6
見出し1
見出し2
見出し3
見出し4
見出し5
見出し6
段落
段落1 (空行) 段落2
段落1
段落2
改行
aaa bbb(半角スペース2つ) ccc
aaa
bbb
ccc
コード
``` print "hoge" ```
print "hoge"
テキスト装飾
これは*イタリック*です これは**ボールド**です これは***イタリック&ボールド***です これは~~打消し線~~です これは<sup>上付き</sup>です これは<sub>下付き</sub>です
これはイタリックです
これはボールドです
これはイタリック&ボールドです
これは打消し線です
これは上付きです
これは下付きです
リスト(箇条書き)
- リスト1 - リスト2 - リスト3 - リスト4
- リスト1
- リスト2
- リスト3
- リスト4
- リスト3
リスト(番号付き)
1. 番号付きリスト1 1. 番号付きリスト2 1. 番号付きリスト3
- 番号付きリスト1
- 番号付きリスト2
- 番号付きリスト3
引用
>引用
引用
水平線
--- aaa - - - - - - - - bbb _ _ _ _ _ _ _ _ ccc
aaa
bbb
ccc
リンク
[google](http://www.google.co.jp/)
画像
画像のみの場合 ![alt属性](画像ファイルパス) 外部参照する場合 ![alt属性][参照名] の後に、 [参照名]:画像ファイルパス リンク付き画像 [![alt属性](画像ファイルパス)](URL) 外部リンク付き画像 [![alt属性](画像ファイルパス)][参照名] の後に、 [参照名]:URL
![Image from Gyazo](https://i.gyazo.com/5596608a499b3366a05bc3c7a8f69c66.png)](https://gyazo.com/5596608a499b3366a05bc3c7a8f69c66)
ターミナル入門
ターミナルとは、コマンド(プログラム)と呼ばれる命令文を用いてMacの操作や設定をおこなうためのツール。
Windowsにおけるコマンドプロンプトと呼ばれているものとほぼ同じもの。
こちらの記事を参考に色々なコマンドを実行してみた。
追記
「command」+「shift』+「4」キーを押してから「スペース」キーを押すと、カーソルがある部分のウィンドウだけをキャプチャーして保存することができるの知らなかった😭。
$/bin/ls
lsはLiStの略でファイルやディレクトリの一覧を表示するプログラム。
$/bin/pwd
pwdはPrint Working Directoryの略で現在いるディレクトリのパスを表示する。
$ /bin/echo hello
引数として与えた文字をそのまま画面に表示するプログラム。
$ echo $PATH
PATHはターミナルに設定されている項目の一つで、ここにディレクトリ名を設定しておくと、そこの中にあるプログラムはディレクトリ名を省略してファイル名だけで実行できるようになる。
/binというディレクトリはPATHに設定されているため、/bin/lsではなく、lsだけでも実行できる。
$ cd /bin
cdはChange Directoryの略で引数に与えたディレクトリに現在のワーキングディレクトリを変更するコマンド。つまりディレクトリを移動するコマンド。
$ ls -a
引数の中で-(ハイフン)から始まっているものはオプションといい、コマンドにデフォルトとはちょっと違う動作をして欲しい時に渡す。
lsの-aは.(ドット)から始まる名前のファイルやディレクトリを表示するオプション。
$ ls -a /bin
-aとパスの両方を渡すこともできる。
$ curl http://fjord.jp/articles/617.html
curlは”Client for URLs”の略で、ネットからファイルをダウンロードできるコマンド。
$ saykana
SayKana – Mac用音声合成プログラム をインストールすると、/usr/local/bin/saykanaというコマンドがインストールされる。
$ brew install tree
brew install ソフト名でダウンロード・インストールが完了する。
$ tree
ディレクトリ配下のファイル構造をツリー上に表示する
コマンド。
9/10〜9/23 メモ
9/10
ドットインストールRails
#5まで
DBへの保存
1.saveを使う
2.createを使う
9/11
コントローラー作成
↓
routesにresources: コントローラー名
↓
rails routesのコマンドで確認
9/16
ドットインストール
create table users (
id integer primary key,
name text,
age integer,
created_at,
updated_at
);
①②③④⑤はすべて同じ処理
①
user = User.new
user.name = "tanaka"
user.age = 23
user.save
②
user = User.new(:name => "hayashi", :age => 25)
user.save
③
user = User.new(name: "hayashi", age: 25)
user.save
④
User.create(name: "hoshi", age: 22)
⑤
user = User.new do |u|
u.name = "mochizuki"
u.age = 18
end
user.save
すべて同じ処理
User.select("id, name, age").find_by(name: "tanaka")
User.select("id, name, age").find_by name: "tanaka"
User.select("id, name, age").find_by_name "tanaka"
User.select("id, name, age").find_by_name("tanaka")
User.select("id, name, age").find_by_name!("kiriya")
!マークをつけるとうまくいかなかったら時にエラーを出してくれる
# delete: 単機能だけど高速
# - delete
# - delete_all
# destroy: 高機能だけど低速
# - destroy
# - destroy_all
#例
User.delete(1) #id=1が削除される
User.where("age >= 25").delete_all
ファイルを選択
git add
選択したファイルを記録する
git commit -m "メッセージ"
リモートにファイルをアップロードしたり、リモートからファイルをダウンロードすることで、開発者同士がファイルを共有することができる
#ユーザーは複数のコメントを持つ
#コメントは1つのユーザーを持つ
class User < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user
end
9/18
delete
ActiveRecordオブジェクトを介さずに削除する。(直接SQLを発行するイメージ)
destroy
ActiveRecordオブジェクトを介して削除する。
これは依存関係も一緒に削除したい場合に利用するといい。
destroy_allを呼ぶと結構時間かかる。
9/20
routes
①と②同じ
①get 'boards' => 'boards#index'
② get “boards”, to: “boards#index”
9/23
文字列の HTMLタグ PHPタグ を削除する
strip_tags()
http://the33.php.xdomain.jp/recommend/k.php/
再送防止
header('Location:rickbox.php.xdomain.jp/k.php/');
入力履歴表示なし
autocomplete="off"
Rails strftime
https://techracho.bpsinc.jp/hachi8833/2016_10_06/25960
日本時間にする
config.time_zone = 'Tokyo'
config.active_record.default_timezone = :local
Cloud9のタイムゾーンを変更
https://dot-blog.jp/news/cloud9-linux-changing-timezone/
データ並べ替え
8/14〜9/10 メモ
8/14
Node.js 基本
http://www.pxt.jp/ja/diary/article/266/
Firebase ブログ
https://recreal.jp/firebase_javascript-to-chatapp/
https://www.slideshare.net/tsimo/javascriptfirebase-59251680
・ダブルクォーテーション ・・・ 文字列中の変数を変数値に置換する
・シングルクォーテーション ・・・ 文字列中の変数を変数値に置換しない
8/15
https://code.i-harness.com/ja/q/d245b2
8/18
Append
https://qiita.com/kouh/items/dfc14d25ccb4e50afe89
railsでDM
https://qiita.com/nojinoji/items/2b3f8309a31cc6d88d03
8/19
Gitについて
https://qiita.com/gold-kou/items/7f6a3b46e2781b0dd4a0
シングルクォーテーションとダブルクォーテーションのちがい
https://qiita.com/YusukeHigaki/items/c93f824f897aa630002f
“”は変数を変数値に変換する
‘’は変換しない
chome favicon
https://www.japan-secure.com/entry/what-to-do-if-favicon-is-not-displayed-in-google-chrome.html
Shifを押しながら更新で直るかも
デバッグについて
https://qiita.com/snoguchi/items/8f6bb62a3166eca23ac3
ステップオーバー
関数呼び出しがあった場合でも、関数へ処理遷移しないで次の行に進みます。
ステップイン
関数呼び出しがあった場合、その関数へ処理遷移をして、関数内の処理に進みます。
ステップアウト
関数が終了するまで実行し関数を抜けます。
JS
「idはページ内に一回しか使えない」が「classはページ中に何回でも登場出来る」
<DIV>はブロック要素であり、<SPAN>はインライン要素です。
condition ? expr1 : expr2
condition が true の場合、演算子は expr1 の値を返します。そうでない場合は expr2の値を返します。
8/22
https://a3rt.recruit-tech.co.jp/product/talkAPI/
https://qiita.com/nekoneko-wanwan/items/227ccad5f8cc449e91e9
https://qiita.com/hitonari45/items/74e625c1feee9a43279e
Chat CSS
http://vdeep.net/css-chat-design
8/24
独自ドメイン+Firebase
https://qiita.com/kei0425/items/a7da8d263e8833f7e837
https://blog.webarata3.link/firebase-mumu
8/26
Ruby on Rails ドットインストール
ユーザーがURLにアクセス ⇒ ルーティングが仕分け ⇒ コントローラーが値を入れる ⇒ ビューがコントローラーから渡された値を表示
ABCチャット修正
書き込みを降順に
https://firebase.google.com/docs/firestore/query-data/order-limit-data?hl=ja
全件読み込みが原因で使用料MAXへ
8/28
netlify
npm install netlify-cli -g
cd my-site-folder
netlify deploy
8/30
httpsにするために
1章
Git
デプロイまでの流れ
2章
scaffold
9/1
3章
Gemとは
Ruby用のライブラリを使う時に必要となるソフトウェア
Bundler
Railsアプリケーションに必要となるGemパッケージの種類やバージョンを管理し、複数のPCで必要なGemパッケージをインストールする仕組みを提供してくれます。
migrate
SQLを書くことなくRubyでデータベース内にテーブルを作成することができる機能
Railsコマンドが使えない場合
$ spring stop
RESTとは
Webアプリケーション構造のパターン
9/2
3章
レイアウトを使う際に、/static_pages/homeにアクセスするとhome.html.erbの内容がHTMLに変換され、<%= yield %>の位置に挿入される
4章
新しく作ったメソッドはカスタムヘルパー と呼ばれます。
ハッシュは配列とほぼ同じ
インデックスとして整数値以外のものも使える点が配列と異なります
{ :name => "Michael Hartl" }
と
{ name: "Michael Hartl" }
は同じ意味
メソッド呼び出しの丸カッコは省略可能。
5章
app/assets/stylesheets/
Asset Pipeline の一部であり、このディレクトリに置かれたスタイルシートはapplication.cssの一部としてWebサイトのレイアウトに読み込まれます。
9/4
<%= render 'layouts/shim' %>
は
app/views/layouts/_shim.html.erbというファイルを探して評価して挿入する
静的ファイル (アセット)
アセットパイプラインとは、JavaScriptやCSSのアセットを最小化 (minify: スペースや改行を詰めるなど) または圧縮して連結するためのフレームワークです。
Asset Pipelineを使うと、この「開発効率と読み込み時間のどちらを重視するか」という問題について悩む必要がなくなります
Asset Pipelineがすべてのスタイルシートを1つのCSSファイル (application.css) にまとめ、すべてのJavaScriptファイルを1つのJSファイル (javascripts.js) にまとめてくれます。さらに、それらのファイルすべてに対して 不要な空白やインデントを取り除く処理を行い、ファイルサイズを最小化してくれます。結果として、開発環境と本番環境という、2つの異なった状況に対してそれぞれ最高の環境を提供してくれます。
root_pathは ~/
about_pathは ~/about
help_pathは ~/help
を表す
helper(ヘルパー)はその名前の通り、ある動作を処理する場合にメソッド化して扱えるようにRailsにあらかじめ組み込まれた機能です。
9/6
画像のサイズ変更
MiniMagick
RMagick
9/9
Rails 画像アップロード
https://numb86-tech.hatenablog.com/entry/2018/08/18/114948
http://watarisein.hatenablog.com/entry/2015/10/16/011240
https://note.mu/hajime38/n/ne2650fdf4559
Bootstrap
https://qiita.com/tqkqt0/items/d9a3f3416c242ba48ba0
コメントアウトしているinclude CarrierWave::MiniMagickをアンコメント
process :resize_to_fit => [200, 200]を同じファイルに書く
Sqlite3が最初からgemに含まれているのでproduction以外に入れ直し、
productionにはpostgresqlを入れ、
Bundle install実行する。
Heroku db 削除
https://qiita.com/Esfahan/items/75ade0233fe02ab04381
有力
https://qiita.com/kakiuchis/items/5597354b1901c1371c9e
<head>に
<%= favicon_link_tag('favicon.ico') %>
を追加、
App/asset/imageにfavicon.icoを追加する。
7/26〜8/13 メモ
7/26
ユーザーがURLにアクセス ⇒ ルーティングが仕分け ⇒ コントローラーが値を入れる ⇒ ビューがコントローラーから渡された値を表示
7/29
Controller 作成
・コントローラー名は複数形
例
rails g controller users index show
rails generate controller コントローラー名(users) アクション名(index) アクション名(show) アクション名・・・
自動生成される
app/controllers/users_controller.rb
app/views/users/index.html.erb
app/views/users/show.html.erb
7/29
Link to
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Help", help_path %></li>
root_path -> '/'
root_url -> 'http://www.example.com/'
help_path -> '/help'
help_url -> 'http://www.example.com/help'
7/31
リアルタイム log
heroku logs --tail
heroku logs -t
rails console routes
7/31
controller & model削除
rails destroy controller コントローラー名
例
rails destroy controller users index show
rails destroy model モデル名
例
rails destroy model task name:string description:text due_date:date done:bookean
8/1
heroku(ヘロク)とは、PaaS(Platform as a Service)と呼ばれるサービスで、アプリケーションを実行するためのプラットフォームです。
もう少しわかりやすく説明すると、サーバやOS、データベースなどの「プラットフォーム」と呼ばれる部分を、インターネット越しに使えるようにしてくれるサービスの一つです。
レンタルサーバーと似ていると思うかもしれませんが、レンタルサーバーとPaaSは「環境を貸してくれる」という意味では一緒なので、ほぼ同じと考えても問題はありません。
レンタルサーバサービスの進化版(プラットフォームレンタルサービス)のようなものと捉えるとひとまずはわかりやすいかもしれません。
8/1
データベースを作るコマンド
rake db:create
→作成される db/development.sqlite3
モデル作成 例
rails g model user name:string username:string location:string about:text
→app/models/user.rb
→db/migrate/20130630062417_create_users.rb
モデルはusersではなく、userという単数形
コントローラー名は複数形
データベースに反映
rake db:migrate
seedというのは種
rake db:seed
<%………%>
このイコールのないものは、「HTMLとして表示する必要のないもの」
rake db:reset
- 全てのテーブルを drop
- "db/schema.rb" を元にテーブルを再作成
テーブル定義を変更した上で全てのレコードを空にしたいような場合
rake db:migrate:reset
- 全てのテーブルを drop
- "db/migrate/" 以下の全ての migration を実行してテーブルを再作成
heroku run rails db:migrate
8/1
Errno::ENOENTの対処
Spring kill 行う
ターミナル再起動
8/1 PostgreSQL関連
https://teratail.com/questions/47630
http://myutaro.blogspot.com/2017/03/cloud9-herokupostgresql.html
https://rails-study.net/cloud9-postgresql/
https://qiita.com/wb773/items/248e6e083b2fe12e820a
https://t4traw.github.io/2018030809-23.html
https://teratail.com/questions/121880
https://qiita.com/taKassi/items/8e43171aeda300b67213
https://qiita.com/NaokiIshimura/items/550ca82e8e57aaea5582
http://niki12260714.hatenablog.com/entry/2018/05/17/105557
時間をJSTに
https://qiita.com/sutoh/items/b7d23990abb9c5083daa
8/2
アセットパイプライン 方法2つ
https://qiita.com/hogehoge1234/items/9a94ebc93c5f937502cd
サーバの選び方
https://qiita.com/you8/items/670bfa6573cec2494c96
8/3
https://qiita.com/sunaga70/items/1f0add0dbcd0564cafee
8/7
https://us-east-2.console.aws.amazon.com/cloud9/ide/0b7020c9bb7d4628a00e75f35dacc8fa
bundle install --without production
8/8 firebase
https://app.codegrid.net/entry/2017-firebase-basic-1
http://tekumemo.blog.jp/archives/5891928.html
https://arrown-blog.com/firebase-javascript-hosting/
デプロイしても反映されないのキャッシュの削除で解決
https://arrown-blog.com/firebase-javascript-hosting/#Firebase_CLIWeb
https://html5experts.jp/technohippy/18040/
CSSが反映されなかった原因
アセットパイプライン
https://qiita.com/hogehoge1234/items/9a94ebc93c5f937502cd
git commit -amではなく
git add -Aでやる
rake assets:precompile RAILS_ENV=production
8/9 プロジェクトごとのホスティングの方法
Firebase
Firebase.jsonをフォルダごとで分ける
Titleの左のアイコン設定 favicon
https://qiita.com/ntkgcj/items/6643a07a43a36029dc9b
8/10
チャットサイトですよ。サンプル
https://codelabs.developers.google.com/codelabs/firebase-web/index.html#1
現在の閲覧者の表示
https://www.webtoolnavi.com/real-time-user/
Mac ショートカットキー
ウィンドウしまう
command+M
ウィンドウ閉じる
command+W
SS
Shift+command+3or4
8/13
https://qiita.com/n0bisuke/items/d3cb6bd7a763d6cf69dd
POSTとGET
GETはURLに付加してリクエストします ブックマークできる
- GET: /foo/bar?p=........&u=.........
POSTはBodyに含めてリクエストします。ブックマークできない
- POST: /foo/bar
- param:p:...........,u.........
GETはURLに直接付加するので目でパラメータを見ることができます。
POSTはBodyに含めるので目で見ることはできません。
※GETは目に見えるけど、POSTは見えないから安全と言う人がたまにいますが、これは間違いです。目に見えてないだけです。通信を盗聴されればどちらにも差はありません。
Node.js = サーバサイドJavaScript
https://eng-entrance.com/what-is-nodejs
「クライアントもサーバサイドも同じ言語で書けたら楽じゃない?」
fatal: remote origin already exists.の対処
http://pyoonn.hatenablog.com/entry/2014/10/29/191744
git remote rm origin
Firebase コマンド
firebase serve
firebase deploy