ゆふいん源流太鼓見てきました
何気に濃い1日になりました
今日は生憎の雨でしたが、私が楽しみにしていたイベントが2つあって、それらを堪能することが出来て何気に濃い楽しい1日でした。
大友宗麟鉄砲隊
竹町で昼から開催されていた豊後FUNAI芸術祭のステージイベントに、大友宗麟鉄砲隊が出演するというので見に行きました。
sorin-hinawa.lolipop.jp大友宗麟鉄砲隊は、去年のきつきお城祭りの際に演武?の披露があって、それで「面白いな〜」と思って印象に残っていたのですが、この度、すぐそこでまた舞台をするというので見に行ったのです。
何をするのかと言うと、名前の通り、鉄砲(火縄銃?)を撃つのです。
もちろん弾は入っておらず空砲なのですが、それ自体が興味深いのも去ることながら、甲冑を着込んだおじさま方が、古い感じの喋り方を混ぜながら口上を述べたり、号令を掛けたり、観衆を巻き込んでエイエイオーの勝どき(なのかな…?)を上げたりするのが楽しかったのです。
去年のお城まつりではいろんな銃の紹介とか、たくさんの銃の一斉射撃?もあったんですが、今日は10分足らずの短い時間でしたので、それぞれの武将の紹介(武将になりきったおじさま方の名乗り上げ?)と、号砲の2つでした。
最初の号砲の際、音がまあすごいので会場に居た人たちはそれはもう驚いてすごいザワザワしてましたね。
屋根もあって半屋内だからなぁ。素晴らしく響いてましたし。
鉄砲隊の次の舞台が幼稚園児の遊戯か何かだったようで、舞台袖に居た園児達が大きな音に驚いて泣き出したりして。
それまで「大友宗麟公に命ぜられ、遥々400年の時を経て、我ら鉄砲隊が馳せ参じ候」(こんな感じだったような……)みたいな古めかしい言葉でしゃべってたおじさまが、舞台袖で泣いてる子達を見つけて「驚いたかなぁ、ごめんね?」って急に好々爺然とした喋り方になって、会場が爆笑の渦になったり。
「では次なる号令は、〜〜殿にお任せ致す」「承知仕った!」みたいなやりとりした後にマイク持った武将の方が、「みなさん、こんにちは。盛り上がってますか〜!?」って急に現代風に喋り出してめっちゃ笑ったり。
いや、今回も楽しませてもらいました。
好きだなぁ、なんかいいよなぁ、こういうの。
舞台やトークが単純に楽しいのもそうなんですが、地域の幅広い年齢層の人たちが、長いスパンで歴史を研究して語り継いだり、土着の文化を守る取り組みをしたり、町おこしみたいなことやってたり、そういうのを垣間見ることが出来て、なんか好きです。
余談ですが、この後に仮装行列が予定されていて、レイヤーの皆さんがわんさか揃っていて一部ちょっと異様な雰囲気でした。レイヤーさんてそんな間近で見たことなかったので結構びっくり。眼福眼福、いいもの見させてもらった。
駐車場から歩いて会場に向かってる時に一番最初に見つけたのが鶴丸で地味にテンション上がった\(^o^)/ でもやっぱりFGOが多かった気がします。
ゆふいん源流太鼓!
夕方からは第25回の大野町どんど焼を見に行ってきました。
どんど焼のお祭りですが、私の目的はゆふいん源流太鼓です。いえ、もちろんどんど焼もちゃんと見て来ましたけども!
昼間はしっかりと雨が降っていたものですから、昼前に一回実行委員会さんに電話で問い合わせると、「どんど焼自体はしますが、イベントステージはその時の天候によって決まるので、なんとも言えない」という回答でした。雨だったらイベントステージは中止になるそうで。
(これも余談ですが、実行委員さんは忙しくて電話にすら出られないのではとか思っていたら、電話にもちゃんど出てくれて、「天候次第でなんとも言えないので…すみません」ととても申し訳無さそうにおっしゃってくださって、対応も丁寧ですごい好感が持てました)
雨雲予報見るとなんとか行けるんじゃない…?と思ったので、とりあえず行ってみようということにしてました。
イベント自体は16時半から始まっているのですが、私が会場についたのは18時ちょっと過ぎ。会場に着いた頃には雨も何とか上がってたのでホントに良かったです。
会場は土のグランドだったみたいですごいぬかるんでましたが…。
会場に着いてまずは腹ごしらえということで、カレーを買ってもそもそ食べてました。焼き鳥とかうどんとかカレーとか肉まんとか、色々ありました。あとで司会の方がうどんがおいしい椎茸が大きくてうどんがうどんが、って言ってたのでうどん食べればよかったなと少し後悔。
そういえば世のカレーは普通辛いんだという事をカレーを食べながら思い出しました(辛いの大の苦手なのです……)。余計にうどんにしとけばよかった。
飲み物がコーンスープとコーヒーと甘酒しか無くて、何か持ってくれば良かったと後悔。コーヒーは飲めないし甘酒は好きじゃない(そもそも車だ)し、カレーにコーンスープ…?だしで、ちょっと失敗でした。
そんなこんなで、19時少し過ぎからは、いよいよ、ゆふいん源流太鼓です!
舞台が始まる前からわくわくしながら席に陣取って、準備の様子から眺めてました。わくわく。
源流太鼓の舞台は、笛の音から始まり、大きな太鼓や小さな太鼓とか、肩に掛けて両方の面を叩いて音を出したり、「そんなに叩いてて握力なくなって太鼓バチがすっぽ抜けたりしないのかな」って思うくらい叩いていたり、多彩な技術が盛り込まれていて飽きることがありません。
しかも完成度がとにかく高い。レベル高杉(誤字)……。
これ、こんな片田舎のお祭りに出るような人たちじゃないような(祭りに失礼)。
拍手したいのにする暇もないくらい、代わる代わる色んな演目があって、本っっ当にあっと言う間の40分でした。
もうね、心臓が震えた(物理)。
太鼓に横笛?も入ってきて、途中は二人で吹いたりして。とても綺麗な音色だし、絶妙なハーモニーで、なんて言うんですか、もう……たまらん(*´ω`*)
おじさまやお兄さん方の迫力ある太鼓の演奏と、そしてやっぱりあの掛け声!
あれ好き過ぎる……あの「いよっ!」ってやつ……かっこ良すぎません?
大音量で聞いて、間近で惜しみなく余すことなく観ることが出来て、控え目に言って最高でした……本当にありがとうございました。
ゆふいん源流太鼓の皆さんは、なんていうか、舞台ももちろん凄いんですけど、準備や片付け、その後の主催者の方と挨拶してるシーンなどを見ても、とても礼儀正しく、隙がない。無駄もない。
いや、マジなんなのこの人達……凄すぎくないですか……見習わねば………。
でもそう言えば、大分駅前でやってたプレイベントの時はご年配のお父さんがいたと思ったんですが、今日は欠席されてたそうで。残念……この方の掛け声がまた渋くて好きだったんですけど。
次回はどこでするのかな……見に行きたい……。
どんど焼
で、このお祭りのメインは本当はこっちです。
↓の写真は火を付ける前のどんど。天辺には、白飛びしてますが「家内安全」とか「五穀豊穣」とか書かれてて、お守りとかと一緒に焚き上げることで今年一年の家内安全などを願うということのようです。
源流太鼓の後に5分程打ち上げ花火があって、その後、火男と呼ばれる役の方が松明の火を持って、それを役員さんとかに分けて、複数人の持った松明からどんどに火が入りました。
↓右側のふんどしの方が火男さん。独身独身って司会の方に連呼されてた(笑
どんどは細い竹が束ねられてるみたいで、火が付くとパチパチと凄い音がしてました。
途中で束ねていた紐が燃えて、束ねられていた竹が花みたいにパッと開いて綺麗でした。司会の方も「今年は特に素晴らしいですね!」とか何度も言っていたので、いつもはこんなに綺麗には行かないんでしょうか。
それにしても、そこそこ離れてても、結構熱が伝わってくる(・・;)
いや、結構大きな火でしたね。こんなに大きな火は滅多に見ることが無いってくらいには。途中でじりじりと後退しながら見てました。
ぼんやり火を眺めて、火が小さくなった後は竹に吊るした餅を焼いて食べるまでが、一連の流れのようです。
あー面白かった。いい1日になりました。
rubyを入れ直したら変なエラーが出て怒られました
rubyを入れ直しました
以前、rbenv を /usr/local の下に入れたんですが、権限でたまにコケることがあったので、 /home/vagrant/.rbenv てな感じで入れ直しました。
ついでに、前回の記事で書いた通り
gem をプロジェクトの下の vendor に入れるようにしました。
いざアプリを立ち上げようとすると、なんとまあ見慣れないエラーが登場。passenger のエラー?ようです。
Error: Web application could not be started
と書いてある。
うーむ……なぜかな。Details には「時間内にスタート出来なかった」と書かれてある。ううん……?ruby の場所入れ替えたから怒ってんのかな。
と思ったんですけど、ただ単に本当にタイムアウト時間設定内にスタート出来なかっただけっぽい。
Apache の設定ファイル(私は conf.d/passenger.conf を作ってその中に)
PassengerStartTimeout 120
を追記して Apache 再起動。
そしたら、無事にアプリが起動して、画面に表示出来ました。
それにしたってなんでこんなに起動に時間かかるんですかね。
参考
bundle installでプロジェクトのvendor以下にgemを入れる
やっぱvendor下に入れたいなぁ
以前記事で、 http://binthec.hatenablog.com/entry/2018/01/27/230500binthec.hatenablog.com
spina というgemになってる?CMSを入れたのですが、vendor 下にあると思ったら無くて、色々探してみたらどうやら rbenv 配下に入っているらしくて。
/user/local/rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems
なんでそんな所に……?と思ってTwitterでぼやいていたら、親切な方がプロジェクトの vendor 下に入れる方法があるんだよーと教えてくれたので、そっちの方法で入れてみることにしました。
ついでに、rbenv は /user/local の下にあったんですが、結局ホームディレクトリの /home/vagrant 以下に入れ直しました。
vendor 下に入れてみる
--path vendor/bundle を指定し、railsアプリケーション用のディレクトリ配下のvendor/bundleディレクトリにgemをインストール
これにより、gemをrailsプロジェクト毎に管理できる!!
--jobs=4 を指定するとbundle installを並列処理で実行できる
参考 rails newの先輩オススメ手順 - まえとうしろ
とのことなので、
$ bundle install --path vendor/bundle --jobs=4
を Gemfile がある所で叩いてみます。
$ pwd /home/vagrant/common/hoge_project/vendor $ ls -la 合計 0 ... -rw-r--r--. 1 vagrant vagrant 0 1月 6 21:34 2018 .keep
空っぽだった中身が……
$ ls -al 合計 0 ... -rw-r--r--. 1 vagrant vagrant 0 1月 6 21:34 2018 .keep drwxr-xr-x. 1 vagrant vagrant 96 2月 7 22:07 2018 bundle
あ、なんか出来てる。
もりもり下の方まで下っていくと……
$ pwd /home/vagrant/common/introduction/vendor/bundle/ruby/2.4.0/gems $ ls -la 合計 0 drwxr-xr-x. 1 vagrant vagrant 2432 2月 7 22:13 2018 . drwxr-xr-x. 1 vagrant vagrant 288 2月 7 22:13 2018 .. drwxr-xr-x. 1 vagrant vagrant 192 2月 7 22:12 2018 actioncable-5.1.4 drwxr-xr-x. 1 vagrant vagrant 192 2月 7 22:12 2018 actionmailer-5.1.4 drwxr-xr-x. 1 vagrant vagrant 192 2月 7 22:12 2018 actionpack-5.1.4 drwxr-xr-x. 1 vagrant vagrant 192 2月 7 22:12 2018 actionview-5.1.4 . .
おーめっちゃ増えた。階層はやっぱ深いけど、でもプロジェクト内にある方がなんか馴染みがある。それに合理的だと思う。
この辺はもう、Rails やってる人達にしてみたら「何を当たり前の事を今更…」レベルなんだろうな……先は長い。
余談
gem というのが composer のようなものと思っていたら、どうやら若干ハズレていて、bundler というのが互換性などを見ながら gem を管理してくれているものみたい。
bundler本体以外のgemは基本的にbundler経由でインストールを行うのがおすすめです
とのこと。
ふーん、なるほど。了解です。
ゆふいん源流太鼓を勝手に応援
太鼓って、なんか好きです
今年大分県である国民文化祭のプレイベントというのが、昨年末に大分駅前でやってまして。
第33回国民文化祭・おおいた2018 第18回全国障害者芸術・文化祭おおいた大会
お神楽とか太鼓とか来ると聞いていたので、ちょっと見てみようかと思って大分駅に寄りました。
最初は DRUM TAO て見たことないし、見よっかな、くらいだったのです。風もあって結構寒かったのですけど、ガスヒーターの横に陣取ってのんびり舞台を見ていました。
DRUM TAO は、世界で活躍しているというし、ネームバリューもあってやっぱり凄かったですね。迫力もあったし、ファンも来てたのか黄色い声援も上がってて「おお……(゚∀゚)」って感じでした。
TAOは文化芸能というより、エンターテイメントという感じでしたね。こういう魅せ方もあるんだなぁ、と。
けど、何ていうんですかね、ああいう……ビジュアル系……?になるんですかね。きらきらしい感じの……。
私はむしろプログラム中盤あたりでやっていた「ゆふいん源流太鼓」の方に心惹かれました(とか言ったらTAOのファンのお姉さま方にボコられそう……)。いえ、DRUM TAO も凄かったですよ。ホントに!でも、単に好みの問題ですかね。
ゆふいん源流太鼓は、はっぴにハチマキの、大立ち回りがあるわけでもない典型的といえる太鼓グループ(と言っても、専門家でもなんでもないので典型的が何たるやを知っているわけではありませんが)で、華やかさこそないかもしれませんが、しかしむしろその朴訥な感じがなんとも言えず、良い……!
↑イベントで演奏されるゆふいん源流太鼓の皆様
大太鼓?を叩いてるおじさまが「よっ!」とか掛け声かけたりするのがね、またたまらなく渋くて「かっこえええぇぇぇ………(*´ω`*)」ってなるわけなんです……!!
太鼓の種類とか笛の種類とか曲目とか、全然知らない素人なんですけども、なぜか「また観たいなぁ」と公演を観ながら胸がじわじわ熱くなりました。
それで、ゆふいん源流太鼓さんの次の公演とか近くであったら観に行きたい……とネットで探してみても、まあこれが情報が全然出てこなくて(泣)
検索してる漢字が間違ってる?とか思って色々試してみても、なかなか公演の情報に行き着かない。何でですかね?探し方が悪いんですかね?とTwitterで嘆いていたら、親切な方が情報を教えてくれました。
第25回大野町どんど焼き
今週の土曜日2月10日です!(近い…
大野町の冬の風物詩。3,000本の竹を組み上げた17mを超える「どんど」と一緒に、願い札や古い御札が焚き上げられ、一年間の無病息災、商売繁盛、家内安全、学業成就を祈願します。竹のはじける音と、白煙を上げながら一気に燃え上がる、炎の迫力は圧巻です。「どんど」の前には、庄内子供神楽やゆふいん源流太鼓、打上花火などのイベントも行われます。
とのこと!
私は生まれも育ちも大分ですが、両親が大分の人間ではないし、地元の行事とか本当に疎いんですよね……きっと色んな行事があるんだろうなぁ。色々行ってみたい。
今週10日は予報では大寒波は和らいだ後くらいですが、雨の予報になってます……。小雨決行となってますが、流石に土砂降りじゃやらないのかな。一度も行ったことが無いどころか行事の名前すら聞いたことがなかったお祭り?行事?なので全然詳しくありませんが。
とにかく、豊後大野は結構近いし行ってみたいと思います。
そして勝手に応援します。
ゆふいん源流太鼓の皆様、がんばってください!公演日も寒そうですが、どうぞ体調など崩されませんように……!
Python を勉強してみる(導入だけ)
そう言えば
明日にはまた Progate で課金が発生するので、一旦退会したいんですけど、その前にPython の勉強をしとこう、ということで。
Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
今回もこちらでお勉強。
行ける所まで行こうかなーということで。
Python のレッスン1
▼Python について
▼文字出力
# コメントはシャープ記号 print('Hello World')
▼変数
- 変数名はスネークケースで書く
user_name = 'にんじゃわんこ' print(user_name)
▼文字連結
my_name = 'にんじゃわんこ' print('私は' + my_name + 'です')
▼型変換
- str():文字列へ変換
- int():数値へ変換
age = 24 print('私は' + str(age) + '歳です') count = '5' print(int(count) + 1)
▼if文
- 処理がif文の中にあるかどうかはインデントによって判別される
if x == 70: print('xは70です') if y != 40: print('yは40ではありません') if money >= apple_price: print('りんごを買うことができます') elif money == apple_price: print('りんごを買うことができますが所持金が0になります') else: print('お金が足りません') if x >= 10 and x <= 30: print('xは10以上30以下です') if y < 10 or y > 30: print('yは10未満または30より大きいです') if not z == 77: print('zは77ではありません')
▼標準入力を受け取る
- input():標準入力した値が返る
input_count = input('購入するりんごの個数を入力してください:')
やっぱり
行ける所まで行こうかな、と思いましたけれども。
うーん、Pythonを使ってすぐに何かを作るというわけではないので、結局身につかないよな……という気もして来ました。今は rails やってるので Python も一緒にやれるほど器用な脳ミソじゃないし……。
ということで、とりあえず今日は導入のみにしました。ここまで1時間弱。
言語が違うというのは結局の所、書き方(=手段)が違うだけで、目的は一緒なんだよなぁ、と。
手段を多く持つのはそれだけ利用出来るシーンが増えて、良いことだとは思いますが。その言語によって得意不得意があるので、使い分けが出来るようにもなるし。
だけど、考えてみればそんなに一度に色々やったって、脳ミソが付いていかない&身につかないんじゃ意味ないな、とやりながら考え出してしまい……。焦らない、焦らない。
ログインは自作しない
gem の devise を使ってみる
rails 触るのまだおっかなびっくりですが、フロントのレイアウトが出来たので、とりあえず管理画面側のログインを作っていきます。
Progate ではログイン機構を手作りしましたが、今回はログイン回りで検索してよく見かける gem の devise というのを使ってみます。
いえ、もちろん自作してもいいんです。いいんですけど、それ全部自作してたらそもそも何でフレームワーク使ってる?ってなりません?(言い訳
どなたかが作ったパッケージを使う方が安心出来るぽんこつですみません。
そういえば devise って普通最後 c だと思うんですけど、なんで devise って s なんですかね?誰か教えて。
人様にお教え出来る内容でもないので、私はこんな手順でやりました、こんなエラーでこんな対処しました、という履歴のようなメモです。
手順
1.devise をインストール
Gemfileに追記
gem 'devise'
インストール
$ bundle install
出来た。
$ bundle info devise
* devise (4.4.0) Summary: Flexible authentication solution for Rails with Warden Homepage: https://github.com/plataformatec/devise Path: /usr/local/rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems/devise-4.4.0
2.rails へインストールするコマンドだろうか?を叩くと、
$ rails g devise:install
べろっと何か出て来るので、言われてる通りに設定していく。
2.1 メーラーのルートの設定?
Some setup you must do manually if you haven't yet:
1. Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
In production, :host should be set to the actual host of your application.
ふむふむ。
in config/environments/development.rb:
ファイルに以下を追加しろと書いてある。vagrantだとどうするんだろうな…?
とりあえず何も追記しないでおいた。
2.2 次はルートを設定。
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: "home#index"
ルートははもう設定してるので飛ばす。
2.3 フラッシュメッセージの設定
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
これも後でいいや。
2.4 次はコマンド叩いてビューを作る(作ってもらう)
4. You can copy Devise views (for customization) to your app by running:
rails g devise:views
とあるので、これを叩く。
$ rails g devise:views
なんか超いっぱい出来た。
$ rails g devise:views
/usr/local/rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems/railties-5.1.4/lib/rails/app_loader.rb:40: warning: Insecure world writable dir /usr/local/rbenv/versions/2.4.3/bin in PATH, mode 040777
Running via Spring preloader in process 14703
invoke Devise::Generators::SharedViewsGenerator
create app/views/devise/shared
create app/views/devise/shared/_links.html.erb
invoke form_for
create app/views/devise/confirmations
create app/views/devise/confirmations/new.html.erb
create app/views/devise/passwords
create app/views/devise/passwords/edit.html.erb
create app/views/devise/passwords/new.html.erb
create app/views/devise/registrations
create app/views/devise/registrations/edit.html.erb
create app/views/devise/registrations/new.html.erb
create app/views/devise/sessions
create app/views/devise/sessions/new.html.erb
create app/views/devise/unlocks
create app/views/devise/unlocks/new.html.erb
invoke erb
create app/views/devise/mailer
create app/views/devise/mailer/confirmation_instructions.html.erb
create app/views/devise/mailer/email_changed.html.erb
create app/views/devise/mailer/password_change.html.erb
create app/views/devise/mailer/reset_password_instructions.html.erb
create app/views/devise/mailer/unlock_instructions.html.erb
あれ、4つある内の結局1つしか実行してないな?
3.ログイン用ユーザのモデルやらマイグレーションやら作成(してもらう)
$ rails g devise User
/usr/local/rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems/railties-5.1.4/lib/rails/app_loader.rb:40: warning: Insecure world writable dir /usr/local/rbenv/versions/2.4.3/bin in PATH, mode 040777
Running via Spring preloader in process 15128
invoke active_record
create db/migrate/20180113152748_devise_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
insert app/models/user.rb
route devise_for :users
おー。勝手にusersテーブル用のmigrationファイルを作ってくれた。
とりあえずデフォルトのまま migration ファイルを走らせてみる。
$ rails db:migrate
usersテーブルが出来ました。
Viewも作ってくれたっぽい。CSSも何もないから超左に寄ってる。あとはこれを適当に編集していく感じかな。
ためしに Sign up からユーザ登録したら、簡単にユーザ登録出来て、ログイン処理までしてくれてたようだ。
なんだー rails にもコマンド一つで色々やってくれる親切なのあるじゃないですかー。
途中でちょっと怒られたよー
いざログイン画面表示させようとした際に怒られたのが、これ。
undefined method `devise_for' for #<ActionDispatch::Routing::Mapper:0x00007f93d1ad79d0>
んんん…?勝手に route.erb に追加されてたルーティングのメソッドが怒られてる。
これはそもそもインストールした devise が認識されてない?
と思ったら案の定そうだったっぽい。
routing - undefined method `devise_for' in rails action controller - Stack Overflow
apache 再起動で治った。えええーー……そんなに頻繁にwebサーバの再起動が必要なの……dumpautoload 的なものはないの……。
参考URL
GitHub落ちてた
GitHubが落ちてました
いえ、ホントそれだけなんですけど。初めて見たので、なんとなく。
以前、GitLabが落ちた時に障害復旧の様子をライブストリーミングしてて「面白れー」と思って見てたことがありましたけど、GitHubもそういうのしないかな。
macOS High Sierra で 外付けハードディスクをフォーマットする
デフォルトだとちょっと躓くHDDフォーマットの仕方
年内にしようと思っていて結局今頃になって外付けHDDをフォーマットしていたら、なんかよく分からない所で躓いたので、外付けHDDのフォーマットの手順をメモメモ。
そんな大した設定がいるわけではありませんが、知らないとコケるなんとも物悲しいやつです。
ディスクユーティリティを使った「消去」
macOS High Sierra (10.13.2) で外部HDDを初期化するのに、以下の手順で行いました。
- Launchpad から「その他」→「ディスクユーティリティ」
別にディスクユーティリティを選択出来ればどこから行ってもいんですが、私の場合はこれが一番早かったので…。
-
左上の「表示」メニューから「全てのデバイスを表示」を選択。これ大事!
これを選択することで、サイドバーのディスクの表示が変わります。この表示でないと、なぜか正常にフォーマット出来ないという落とし穴が…。 - ディスクを選択
ディスクは、HDD名でなくて、その一つ上のおおもとを選択してください。
- 「消去」
- 名前や設定を選択→「消去」
名前やフォーマットは自分の環境に合わせてください。
フォーマットも色々ありますので、用途に合わせて選択してください。私は Windows と Mac 両方で HDD を使える必要がありましたので、exFat にしました。
セキュリティオプションはお好みでいいと思います。
私は別に復元出来てもいい(フォーマットした後も自分で使いますし、HDD 廃棄するときは物理破壊する)ので、「最も速い」を選択しました。
この設定だと一瞬でフォーマットが終わります。 -
完了
この画面まで行けば完了です。
フォーマットしてる間に風呂でも入ってこようかなとか思ってたら一瞬で終わったのでΣ(゚Д゚)ってなりました。フォーマットってそんなに速く出来るんだ……。
注意点
手順の 2.で、「全てのデバイスを表示」を選択せずに、表示されたデバイスを選択しただけで「消去」を行うと、以下のエラーが出てフォーマットにコケます。
消去プロセスを完了できませんでした。
Unmounting diskMediaKit reports not enough space on device for requested operation.
操作が失敗しました...
なんとも理不尽な。
初期状態のデバイスを選択しただけだと、消去中にディスクがアンマウントされるっぽくて、それでエラーになってるのか…?
それなら最初っから全てのデバイス表示してくれていればいいものを……と文句を行った所で始まらないので、粛々と表示を確かめましょう。
これでHDDのフォーマットは終わりです!
あとはバックアップの設定だなぁ。
なんか Time Machine がめちゃ重たいという記事も見かけたので、もうフリーのシンプルなバックアップソフトにでもしようかな…。
Ruby on Rails5 のローカル環境出来た!
ローカル環境
Progate で Ruby on Rails5 のレッスンを終えたので、今度はローカルで環境作りました。
最終的に出来た環境はこんな感じ。
環境
- Vagrant
- CentOS6.9
- MySQL5.5
- Apache2.2
- Ruby2.4.3
- Ruby on Rails 5.1.4
Apacheのモジュールは passenger なるツールを使って準備しました。いまいち passenger が何者か分かってませんが、コマンド叩いてあとは指示通りにすれば Apache で ruby 使うためのモジュールが使えるようになっているという優れもの。
いいツールが揃ってますねー。
余談ですけど、CentOS7 は主要なコマンドすら変わってたりして色々と地味に時間を取られるので、もうローカルの標準は CentOS6.9 でいいんじゃないかなーと思ったりして。。。
Ruby on Rails5 のプロジェクト作るまでの手順
叩いたコマンド全て載せようかと思いましたが、色々足りないものがあったりディレクトリの権限が足りなくて寄り道したりして、あんまりスマートでない感じだったので、大雑把な手順だけメモ代わりに載せることにします。
今回は、Apache2.2 で ruby2.4.3 を使う方法です。あと、gem 使って rails 入れて、プロジェクトの新規作成する所まで行きました。
- rbenv を clone してくる
- rbenv コマンドが使えるように、パスを通す
- rbenv のプラグイン rbenv-build を clone してくる
- インストール出来る ruby のバージョン確認したら、ruby をインストールして、使うバージョンを指定
- 最新の 2.5.0 入れようとしたらエラー。どうやら ruby のバグっぽい? - 必要なパッケージ(bundlerとか)を入れる
- passenger を入れる
- passenger を使って Apache のモジュールを準備
- ここで足りないパッケージがあるよーってインストールのコマンド付きで警告が出たので、一旦コンソールに戻って寄り道 - Apache の設定ファイルに準備したモジュールを使うように設定追加して、バーチャルホストを追加して、Apache再起動
- gem 使って rails を入れる
- mysql の関連パッケージ?も gem で入れようと思ったら mysql-devel が足りなくてまた寄り道 - nodejs が無いと ruby は動かないらしいので、これも入れる
- rails プロジェクト新規作成
あとは hosts に書いて、アクセス。
出来たーーー!!
紆余曲折しなくても環境作れるようになったら、その内コマンドとか詳しい解説とか入れながらまた記事書きたいです。
気になった所
- rbenv を入れるのに、今回は /user/local の下に入れたんですけど、なんかディレクトリの権限が足りなくてコケる事があったんですよね。~/.rbenv に入れるとするサイトがあったりして、そっちでも良かったのかな?と思ったり。Apache はどっちにしても vagrant ユーザで起動してるから、~/.rbenv の方が権限の問題がなくてよかったんじゃないかなーと思ったり。次はそれで試してみよう。
- CentOS6.9 で rbenv-build を使って ruby2.5.0 をビルドしようとしたら、変なエラーが出てちょっと詰まった。調べて見たら、Ruby のサイトにチケット立ってた。
Bug #14234: Failed to build on CentOS 6.9 - Ruby trunk - Ruby Issue Tracking System
もしかして ruby のバグとかそういうやつだったのかな……。結局バージョンを ruby 2.4.3 に落としたらうまくいきました。
参考にしたサイト
http://kimagureneet.hatenablog.com/entry/2016/08/31/180636
さーてもりもり
アプリ作るぞー。今回はイベントとかの告知サイト?のCMSっぽいものを作ってみようかと。
しかし、.ignore に入れるべきものを最初から入れといて欲しいもんだ。。。そのためのGit 管理するべき .sample ファイルとか最初から作っておいてほしいもんだ。。。とか言ったらいけないんですよね、すみません。
アプリは GitHub にリポジトリ作ってバージョン管理する予定。
うちの会社では書かないテストを、今回は勉強しながら書くのだ……自動テストとか出来るようにするのだ……!
Ruby on Rails5 のレッスンに突入 その3(完)
Ruby on Rails5
さて、昨日はRuby on Rails5 レッスンでのログイン回りや認可を実装しました。
使う学習サイトは同じく Progate です。今日で Ruby on Rails5 のレッスンを終わらせる予定です。
- Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
- 途中から有料です。月額980円(税込)
履修してるレッスン
- Ruby on Rails5
- 目標:TweetApp(TwiiterみたいなSNS)を作ること
昨日は「Ruby on Rails5」のレッスン8と道場3まで進みました。
今日はレッスン9から最後まで進めていきます。DBのリレーションなどをやるようですね。
リレーション…?(1対多)
- リレーションをするのかと思いきや、やっぱりこっちも自作。あるぇ…?ORMがもしかして、ない…?流石にそれはないか?まだやらないだけ、かな……?
- Post モデルの中で投稿ユーザの情報を返すインスタンスメソッドを定義する
class Post < ApplicationRecord
...
def user
return User.find_by(id: self.user_id)
end
end - 呼び出し側は、post から user を呼び出せる
def show
@post = Post.find_by(id: params[:id])
@user = @post.user
end - 逆に、user に紐づく posts を引く時には Userモデルに posts メソッドを定義する
class User < ApplicationRecord
...
def posts
return Post.where(user_id: self.id)
end
end - 使う時は@user に対して posts メソッドを呼び出す
<% @user.posts.each do |post| %>
- flash[:notice] に〜を代入してください、の時に"" ダブルクオートが付いてたり付いてなかったりするのは、これは注意力を付けるためにわざとやってるんだろうか…。
リレーション…?(多対多)
- 中間テーブルに該当の値があるかどうか見る
<% if Like.find_by(user_id: @current_user.id, post_id: @post.id) %>
…そんまんまですね。(そしてまたここで {method: "post"} になってる)
いいね!済み
<% else %>
<%= link_to("いいね!", "/likes/#{@post.id}/create", {method: "post"}) %>
<% end %>
find_by は何もない場合の戻り値が nil なので判定に使える、ということらしい。 - ajaxを使うのかと思ったらそんな事はなかった。流石にないか。
モデル
- destroy メソッド。以前も出てきたけど復習も兼ねて。
@like.destroy
ソフトデリートってあるのかなぁ。 - where メソッドとcount メソッド
@likes_count = Like.where(post_id: params[:id]).count
Font Awesome と link_to
- link_toメソッドをHTMLに対して使う場合には少し異なった書き方をする
- 文字列に対して
<%= link_to("リンクテキスト", "/posts/index") %>
- HTMLに対して
<%= link_to("/likes/#{@post.id}/create", {method: "post"}) do %>
<span class="fa fa-heart like-btn"></span>
<% end %>
gem(ジェム)
- gemとは
RubyやRailsでプログラミングをする際に「よく使う機能」をパッケージ化したものです。Railsにインストールすることで使用することができます。
- ほおほお。Composerのようなものか。CentOS上でコマンドを見たことだけはある。
- Gemfile :インストールしたいgemを記述するファイル
へえー。composer.json みたいなものか。gem 'rails', '5.0.3'
バージョン名を省略すると、最新版をインストールする
gem 'bcrypt' - Gemfile.lock :自動生成されるファイル。composer.lock みたいなもんですね、きっと。
- gem インストール実行
$ bundle install
bcrypt パッケージ
- has_sercure_password メソッドというメソッドが使えるので、モデルに設定する。use も何もいらないらしい。また、has_secure_password は presence (存在するかどうか)のバリデーションも一緒に行う。
class User < ApplicationRecord
has_sercure_password
... - 項目名が password の中身を、save 時にbcrypt を通して「password_digest」カラムに入れてくれるので、項目名は password のままでよい
- ログインさせるには、そのメールアドレスを持つユーザが存在し、かつ、bcrypt の authenticate メソッドを使ってパスワードが一致するかを確認して、通す
@user = User.find_by(email: params[:email])
if @user && @user.authenticate(params[:password])
session[:user_id] = @user.id
....
else
....
end
余談:気がついた事
CakePHPとRuby on Railsでは、バリデーションはモデルに記述し、モデルのsaveメソッドが走る時に行われる。
Laravel では、バリデーションは基本自分で設定するのでモデルに書いてもコントローラに書いても良くて、いつのタイミングでも掛けられる。私は大体、フォームからデータが渡ってきたタイミングでバリデーション掛けていたので、今回ちょっと違和感があって気が付きました。
どっちがいいんでしょうね。
私はLaravelでも良くモデルにバリデーションを配列で返すメソッド作ってたので、結局やってることは変わらない気がしますけども。save メソッドで呼び出された際にバリデーション通すか、その前に通すかの違いですかね。
でもCakePHPでは特定の項目だけ特定の場合にバリデーション掛けたくないシチュエーションがあった時に、ちょっと別オプション指定してあげたりが面倒だったので、Laravel の方が自分でタイミングと項目を設定出来る分、融通が効くと言えなくもないけど、結局全部手動だからなぁ。
一長一短ですかね。
Ruby on Rails5 のレッスンを修了!
レッスン6〜8と、道場3の合わせて4つを修了し、Ruby on Rails5 のレッスン全てが終わりました。ここまで3時間強でした。
さすがにパスワードの暗号化は出てきましたね。
DBのリレーションを張るのかと思いきや、ORMでなく手動だったのは少し驚きました。レッスンに入り切らなかったんですかね。どっちにしてもORMはいずれ格闘しなきゃいけないと思いますので、概念だけおさらいするという意味でいい復習になりました。
デバッグの仕方くらい教えてくれたら嬉しかったなーと思いましたが、別にそんくらい調べればすぐ分かることなので、あとは自分でなんとかしましょうってことですね。
次はローカル環境作って、公式ドキュメント見ながらORMとかソフトデリートとか探しつつ色々試してみようかと思います。とりあえず Multiauth やらねば。
正月休み中しっかり勉強したし、明日は1日遊んで、明後日からまた仕事ですね。正月明け早々に出張です……。
兎にも角にも、Ruby on Rails5 のレッスンは無事修了〜。
Progate さんありがとうございました。
折角だからjQueryとPythonもやるだけやってみようかな。