Just do IT

思うは招く

2019-01-01から1年間の記事一覧

Rubyで見た「||=」の正体

とあるRubyのソースコードを見ていて、「||=」といった謎の演算子が出てきた。 なんだこりゃ?? ||= は通称「nilガード」 調べてみると、どうやら変数を初期化したいときに使われる演算子で、Ruby界隈では「nilガード」と呼ばれているらしい。 たとえば、pr…

Ruby基礎問題100本ノック#10 ファイルの単語数を取得する

お題 以下のファイルの単語数を取得せよ wcコマンドを使い単語数が合っているかチェックすること wcコマンドのカウント方法に合わせる sample.rb sample sample sample sample sample 回答 file = 'sample.rb' file_words = File.read(file).split.size p fi…

Ruby基礎問題100本ノック#9 ファイルの容量(バイト数)を取得する

お題 下記のファイルの容量(バイト数)を求めよ できたらwcコマンドを使い容量が合っているかチェックすること sample.rb sample sample sample sample sample 回答 file = 'sample.rb' p File::Stat.new(file).size => 34 wcコマンドの-cオプションを使い…

Ruby基礎問題100本ノック#8 華氏を摂氏に変換し、1度から100度まで温度を出力

お題 「Ruby基礎問題100本ノック#4 摂氏温度を華氏温度に変換する」とは逆に、華氏を摂氏に変換するメソッドfahr_to_celsを定義せよ 摂氏1度から摂氏100度まで1度きざみに華氏温度との対応を出力すること 回答 def fahr_to_cels(fahr) (fahr - 32) / 1.8 end…

Ruby基礎問題100本ノック#7 Optionparserを使って条件分岐してメソッドを使う

お題 ターミナルから-a,-l,-r,-alrのオプションを引き取り、それぞれのオプションで条件分岐をしてメソッドを設定せよ メソッドはputs '適当な文字列'でOK -alrに関しては-ralや-lraなどのように順番を変えても同じメソッドが動作すること 回答 require 'opt…

Ruby基礎問題100本ノック#6 ファイルの行数を取得する

お題 次のファイルの行数を取得せよ。 test test test test test ファイル名test_file.rb (ファイル場所は実行ファイルと同一ディレクトリにあるものとする) 回答 str = File.read("./test_file.rb") p str.lines.count 説明 ファイルの内容を取得する方法…

Ruby基礎問題100本ノック#5 配列の各数字に対応する文字列をハッシュから取り出す

お題 とある配列の、後ろから1〜3番目の数字それぞれに対応する文字列を、用意されたハッシュから取り出して連結で表示せよ。 例えば、["1", "2", "3", "4", "5", "6"]といった配列があり、次のようなハッシュがあったとする。 hash = { "0" => "---", "1" =…

Ruby基礎問題100本ノック#4 摂氏温度を華氏温度に変換する

お題 摂氏温度を華氏温度に変換するcels_to_fahrメソッドを定義せよ。 回答 華氏と摂氏を変換する公式は次のとおり。 華氏 = 摂氏 × 9 ÷ 5 + 32 つまりこのままコードにすればいいだけ。 def cels_to_fahr(cels) cels * 9 / 5 + 32 end 実行してみると cel…

Ruby基礎問題100本ノック#3 文字列の各文字を数える

前回に引き続き、今度は単語ではなく文字の個数を数えてみる。 Ruby基礎問題100本ノック#2 文字列から単語をカウントしてハッシュで表現する - ゴリラよりオランウータン派 お題:文字列の各文字数を数えてハッシュで表現せよ 問題:文字列no pain no gainの…

Ruby基礎問題100本ノック#2 文字列から単語数をカウントしてハッシュで表現する

お題:文字列に出現する単語数を数えてみよう 問題:文字列no pain no gainに出てくる単語の個数を数えて、ハッシュで表現しよう 問題については以下の記事を参考にした。 qiita.com 回答 string = 'no pain no gain' hash = Hash.new(0) string.split(' ').…

Ruby基礎問題100本ノック#1 特定の文字をカウントする

何をするか 今日から、Rubyの基礎問題を解いていくことにした。 目的:プログラミング脳を鍛えるため 目的はこちら。 プログラミング脳を鍛える 自分でロジックを組む力 詰まったときの思考的な対処法を身につける メンタル的なバランスをとる きっかけは、…

Rubyで配列がブロック引数に渡される場合の便利な書き方

たとえば以下のような2次元配列があり、それぞれの要素を掛け算する場合。 tateyoko = [ [20,40], [50,20], [40,90], ] menseki = [] tateyoko.each do |tateyoko| length = tateyoko[0] width = tateyoko[1] menseki << length * width end p menseki mense…

Rubyでファイルを取得する際の require_relative 使い方

require_relativeでファイルを読み込む場合 自分のファイルが存在するディレクトリがパスの起点になる。 . ├── bar │ └── ruby.rb └── foo └── test.rb ruby.rbからfooにあるtest.rbを取得する場合は require_relative '../foo/test' となる。 つまり、bar/r…

RubyでFizzBuzz問題を解く

プログラミングの初級問題として有名なFizzBuzz問題をRubyで書いてみた。 FizzBuzz問題とは 3で割り切れる数字ならFizz 5で割り切れる数字ならBuzz 3と5で割り切れる数字ならFizzBuzz を表示する問題のこと。 今はさすがに慣れたが、初心者の頃は「ふぁ!?…

Rubocopをインストールして、Rails本家の設定を使う方法

記事の内容 Rubocopとは、Rubyのコードを自動修正してくれるフォーマッター インストール方法 gem install する場合 bundlerでインストールする場合 Rails本家が採用している設定を自分にも設定する 試しに自動修正してもらう 失敗したやり方 問題 原因 解決…

MacOS + VirtualBox + Vagrant + Ubuntuの仮想環境を構築する

やりたいこと 使用するもの 流れ VirtualBoxをダウンロード Vagrantをインストール Ubuntuをインストールする ディレクトリ共有設定 日本語化など その他参考になる記事 やりたいこと Macに仮想環境を作りたい 使用するもの VirtualBox Vagrant これでLinux…

Gistの作り方

Gistを作るにはこちらへアクセス。 gist.github.com GitHubアカウントを持っていれば入れる。 Gistの作り方 Gist description:そのGistについての説明 Filename including extension:ファイル名 を記入し、コードを挿入する。 最後に非公開(secret Gist)…

MacOS に最新版の Ruby を rbenv でインストールする方法

やりたいことは? なぜするのか? 環境 MacOS に最新 の Ruby をインストールする方法 rbenvをインストールする Ruby をインストールする 特定のディレクトリで Ruby のバージョンを変更したい場合 rbenv-communal-gems は使わないほうがいい 参照 やりたい…

nginxのvirtualhostを使って複数ドメインのサイトを作る方法

やりたいこと virtualhostとは? 環境 流れ 1. ドメイン取得 2. ネームサーバーに登録する方法 2-1. お名前ドットコムでネームサーバーの変更の設定 2-2. さくらVPSでネームサーバーの設定 3. Virtualhost 設定 3-2. HTMLを作成する 3-3. 設定ファイルの作成…

MacOSのバージョンをコマンドで確認する方法

やりたいこと MacOSのバージョンをターミナルからさくっと確認したい 方法 次のコマンドをターミナルに打つ。 $ sw_vers 結果 ProductName: Mac OS X ProductVersion: 10.14.6 BuildVersion: 18G87 「画面左上のりんごマーク > このMacについて」からでもバ…

nginxをLinux(Debian)からアンイストールするコマンド

nginxをLinux(Debian)からアンイストールする方法 $ sudo apt-get remove nginx 以上。 再度インストールする場合は以下の記事を参照。 k-koh.hatenablog.com

Nginxで自分のHTMLを表示させる方法:htmlディレクトリはどこにある?

やりたいこと Nginxをインストールしたので、自分で作ったHTMLを表示させてみたいッッ 環境 MacOS Mojave 10.14.6 さくらVPS OS: Linux Debian 10.1 前提 Nginxインストール済み Nginxを起動済み 参考: k-koh.hatenablog.com 流れ まずはLinux(ここではDeb…

Virtualbox + Vagrant + Nginx でのWebブラウザ表示確認方法

記事の対象者 さくらVPSなどのサーバーではなく、VirtualBox + Vagrantの環境にNginxをインストールした人 Webブラウザで表示確認がしたい すること ポートフォワーディングをするために、Vagrantfileを書き換える 前提 Virtualboxをインストールしている Va…

Linux(Debian) に最新版 Nginx をインストールする方法メモ

やりたいこと 環境 Linux(Debian)にNginxをインストールする流れ 失敗したときは Vagrant + Linux で Nginx を設定したい場合 感謝の参照 やりたいこと Linux(Debian)に最新版のNginxをインストールしたい 環境 MacOS Mojave 10.14.6 さくらVPS OS: Linux De…

プログラミング初心者がNodejsを使って簡単なタスク管理アプリを作ってみた

作った背景 当方のバックグラウンドはSEOやメディア運営なのだが、もともとプログラミングに興味があった。そこで、ドワンゴが運営する「N予備校」でプログラミングの勉強を始め、アウトプットのためにウェブアプリケーションを初めて作った。 N予備校:http…

Missing where attribute in the options parameterの解決メモ

背景 練習でSequelizeライブラリを使用して簡単なウェブアプリケーションを作っていた。updateを使用して、データベースをアップデート(書き換え)しようとしたら、次のエラーが出た。 Unhandled rejection AssertionError [ERR_ASSERTION]: Missing where …

VirtualBoxとVagrantを再インストールして仮想環境を作り直すメモ

VirtualBoxのアンイストールで少しつまづいたのでメモ。 背景:「やべぇ、仮想環境がバグった・・・」 なにかをどうかして仮想環境がバグり、vagrant sshをしてもUbuntu-bionicの文字が白色のまま。lsコマンドもできなくなっている・・・。おそらく、パスを…

Node.jsでサーバーを立ててウェブサイトを表示する方法

Node.jsの勉強でちょっとつまづいたのでメモ。 課題:Node.jsでCSS、画像、JSなどが読み込まれない Node.jsでウェブサーバーを立ててウェブサイトを表示したいが、HTMLだけ表示されてCSSや画像ファイルが読み込まれない。 結論 CSSやJS、画像(JPG、SVG、PNG…

【JavaScript】郵便番号から住所検索するWeb APIを使う練習

この記事の対象者 JavaScriptをすこし勉強した初心者 「そろそろ何か実践的な技術を使ってみたいなぁ〜」「Web APIとか使ってみたいのぉ〜」てな人 郵便番号から住所を検索するAPIを使ってみる 郵便番号を入力すると住所が自動的に表示されるアプリケーショ…

【CSS】スマホ表示で画像の縦横比率を保ったままスタイルする方法

スマホ画面で画像をいい感じにサイズ調整する方法のメモ。具体的なシチュエーションとしては、ヘッダーに表示したい背景画像を縦横同じ長さで表示するときなど。 結論 結論からいうと、次のようにスタイルをあててあげればOK .画像セレクタ { width: 100%; h…