「Ruby のヒアドキュメントすごい」の感想
目次
はじめに
ぼんやりと、「複数行を出力する命令ってないんかなあ」と思っていたところ、ありました!
参考にした記事
感想:すごい
この前だしたミニアプリの記事
1行ごとにputsで出力していました。
位置が揃うので、これはこれで使い所がありそうです。
ヒアドキュメント活用例
puts <<EOS
から
EOS
の間にある行をインデントもそのまま出力します!
色付けが追いついていませんが、putsを連発する書き方と同じ動作になりました! すごい!
ActiveHashのハッシュを楽して書きたい!
目次
はじめに
アクティブハッシュのモデルを書くときに「選択肢が多くてコードを書くのが大変!」と感じた事はありませんか?
そんなあなたのために選択肢の配列を入力するとアクティブハッシュのモデルを生成してくれるミニアプリをお届けします!
入力と出力の例
入力例
出力例
コード
使い方
詳しくはこちら
終わりに
何度も似たような作業をするなら、サクッとアプリケーションを作ったほうが結果的に楽ができます。
生産性研究会の先生がおっしゃっていた言葉がこちら
「積み重ねになる仕事をしなさい」
「学習に役立つ!」MacのTips8選(初心者向け)
はじめに
これまでMacに触ったことがなかったけど、テックキャンプをきっかけに初めてMacに触ったという方も多いのではないでしょうか?
今日はそんな方のためにテックキャンプで学習するときに必ず役立つ8つのお役立ち情報を紹介します!
テックキャンプが始まって1ヶ月以上たちました。
これまで練ってきたネタをついに大公開!
Tips
1.右クリックから検索
コピー、新しいタブ、貼り付け、Enterキーしてませんか?
どのアプリケーションでも文字を選択して2本指でクリック(右クリック)すると検索することができます
ちなみにコンテキストメニュー(右クリックのメニュー)の一番上は小窓で検索です。
バンドルアプリケーションの「辞書」が働いています。
Wikipediaや辞書、英和辞典などからヒットします。
2.英数キー2回で変換
英語を打とうとしてひらがなになった時、消してませんか?
3.⌘+↓でファイルを開く
FinderやVSCodeのファイルブラウザなどで、ファイルを選択してcommandキーと↓キーを同時に押すとファイルを開くことができます!
4.カラムビュー
リストビューで消耗していませんか?
Finderでcommandと数字の3を同時に押すとカラムビューになります。
左右の矢印でフォルダを上の階層に移動したりできるのでとても便利です。
ファイルの移動もドラッグ&ドロップで直感的にできます!
5.Enterキーでリネーム
ちょっと待ってクリックしなおしてませんか?
右クリックからリネームしていませんか?
FinderやVSCodeのファイルブラウザなどで、ファイルを選択してEnterキーを押すとリネームできる状態になります。
6.⌘ + option + V で、切り取って貼り付け
Finderでは切り取って貼り付けができないとあきらめていませんか?
⌘ + C からの、⌘ + option + V
7.2本指ダブルタップ
ピンチインで頑張って調整していませんか?
- 「システム環境設定」というアプリケーション
- 「トラックパッド」をクリックしてトラックパッドの設定画面を開く
- スクロールとズームのタブを開く(ここからGIFアニメの画面)
- スマートズームにチェックを入れる
- カリキュラムの本文の上で2本指ダブルタップをする
8.Terminalの文字を拡大する
ターミナルの文字は小さいものだと諦めていませんか?
⌘ + shift + ;(つまり⌘ + +)で文字とウィンドウが大きくなります。
おわりに
「この小技は中級編にぜひ入れてほしい!」
というネタ提供お待ちしております。
あるいは中級編のアンサーブログ、こっちが本当の初級編だという記事なども、お待ちしております。
「くやしい!」AtCoder Beginner Contest 174
はじめに
腱鞘炎の予防のため、文章を(ほぼ)打たずに記事を作ります。
ABC174に参加してきました!
解答速報はこちらを参考にさせていただきました!
以下、答案です。
※不正解は不正解のままです
問題A(100点)
入力が30以上かを出力
特になし
問題B(200点)
ACもらえました。
ただ、小数で判定はよろしくないです。
問題C(0点)
AC : TLE : WA =16 : 10 : 1
理解できるけど通せないの、くやしい。
問題D(0点)
さっぱり
問題E(0点)
触る時間の余裕はあったが、存在を忘れていた。
問題F(0点)
「え、これだめ?」
感想
とんでもなく簡単なA問題でした。
それでも2年ぶりに1発ACが取れたときは「ほっ」としました。
「くやしい!」のは、解けそうで通らないことです。
本番に出ると集中して学習がすすみます。
開催ありがとうございました!
解説放送、何時に終わるんですか…… おやすみなさい。
「そのRubyプログラム、アプリケーションにしませんか?」
はじめに
今週、雑にタイピングをしたせいで、手が死にそうです。
生活が少々乱れてゴールデンタイムに寝ていなかったため、成長ホルモンなどの分泌が不十分かもしれません。
そのせいで炎症の回復力が弱いのも大きな要因ですきっと。
しばらくタイピングは自粛モード、といいつつブログを投稿します。
先日、文字列を整形してくれるコマンドラインアプリケーションを公開しました。
(そんなに大した処理はしていない)
その後、Finderからダブルクリックでプログラムを実行できるように細工をしました。
という近況報告です。
手順
こちらの知恵袋を参考にしました
- Terminalで"chmod +x ~/projects/twitter_q_a/process.rb"を実行することで、このプログラムに実行権限を与える。
- "run_process.sh"というファイルを作成する。
"run_process.sh"の内容
おわりに
上記の方法では、プログラムとは別に、
"run_process.sh"というシェルスクリプトのファイルを作りました。
一方で、プログラムの1行目に
#!/usr/bin/env ruby
を記述してから、実行権限を与える方法もあるようです(こちら)
このリンク先の方法で、プログラム自体をFinderでダブルクリックして実行できるようにしたほうが便利な場合がほとんどですね。
現状、デスクトップにある"run_process.sh"をダブルクリックするだけでTerminalが立ち上がりプログラムが実行されます。
とくに不満はありません。
しかし、
#!/usr/bin/env ruby
を記述する方法のほうがよく目にするので、来週試してみます。
そのときGitHubも更新します。
「ACもらえた。運がよかった!」ABC049C
目次
問題
erase、eraserとDaydreamのつながりがわかりません。
ググってもこれくらいしかヒットしません。
多分eraserとdreamerがちょっと似ていて、都合がいいからでしょうか。
回答
学んだ処理
条件演算子(三項演算子):boorean演算の結果による出力を簡潔に書けるんですね。
↓この書き方しかわかりませんでした
お手本の別解
mayu_mic様の回答がコード長、処理時間、共に最短でした。
puts gets.chomp.match(/^*2*$/) ? 'YES' : 'NO'
gsubを使う人が多い中、matchと条件式の組み合わせで簡潔に処理しています。
処理は
「行頭^から行末$までの間、
((eraserを0個か1個?)(dreamを0個か1個?)(dreamerを0個か1個?)
の繰り返し*
と一致するか」判定しています。
eraseは入れなくても運よくACもらえるみたいです。
感想
このようにdreamer, dream, eraser, eraseの順にとりのぞくとWAでハマりました。
(eraser, erase, dreamer, dreamの順にとりのぞいてACもらえたのは、運が良かったとしか。
ジャッジの入力に"deraseream"が入っていたら
NOを出力すべきところをYESと出力してWAです。)
〜「虫食い問題と答え」作成ツール〜 ver0.0 (完全に自分用)
目次
はじめに
Twitterで毎日のように一問一答形式で作った問題を投稿しています。
テックキャンプで「~JavaScriptによるセキュリティ攻撃を学ぼう~」の学習を修了しました!
— Hiroki Yanase @駆け出しエンジニアに問題を出すよ (@YanaseHiroki) 2020年7月29日
Q.
「HTML生成時の処理に脆弱性があるサイトにスクリプトを埋め込む攻撃手法」を【 】という。
A.
— Hiroki Yanase @駆け出しエンジニアに問題を出すよ (@YanaseHiroki) 2020年7月29日
「HTML生成時の処理に脆弱性があるサイトにスクリプトを埋め込む攻撃手法」をXSS(クロスサイトスクリプティング)という。
これを投稿するとき、それっぽい問題文を考えて、虫食いにして、答えをリプライにつけて、という作業をしていました。
このプログラムを組むまでは。
動作の様子
何をやっているのか?
- Terminalに"ruby "と入力
- "process.rb"というファイルをTerminalにドラッグ&ドロップ
- Enterキー
- 用意した文章を貼りつけ
- Enterキー
どこが便利なのか?
- 学習中にTwitterを開かないでいい(超大事)
- テキストファイルに用意した素材から投稿文を整形してくれる(ちょい大事)
- Q.とかA.とかを投稿に必ずつけてくれる(ほぼ自己満足)
ソースコード
いつか投稿画面にコピペしなくても自動で準備させたい、など。
夢はあるが時間がたりない。
今後、追加する機能
- 素材をTerminalにコピペする代わりに、プログラムで外部ファイルを参照する
- 投稿画面にコピペしなくても自動で準備する
- そのほか、いただいたコメントに応じて柔軟に......