- 1. フリーターでも分かる、jQuery基礎
- 2. これから学ぶ言語について
- 3. thorでオプションを定義する6つの方法
- 4. リスト処理関数(cons,car,cdr,atom,list)実装例まとめ
- 5. ヒトゲノムの配列の特定されてないところを見てみたりする夏休みの絵日記的なやつだよ
- 6. rails AWSのデプロイが反映されない場合
- 7. [過去POST]TECH::CAMPのメンターをしていた時の回答メモを一部公開します
- 8. 【ruby】splitメソッドで、文字列から配列にしたい。逆も然り。
- 9. 配列の使い方(個人的な備忘録)
- 10. Aizu Online Judge
- 11. そこらへんにいるフリーターがdevise使ってみた。
- 12. Rubyで高速素因数分解したい (ABC177E)
- 13. Ruby で解く AtCoder ABC177 D UnionFind
- 14. 初投稿
- 15. Ruby問題⑦
- 16. ActiveRecord::NotNullViolation in Deviseエラー
- 17. クラスの情報を継承したクラスの作り方
- 18. twitter-omniauthのgemでつくるTwitterログイン機能のあるあるエラー4選とその対処法
- 19. 【Ruby】Seleniumでスクレイピングするときに起こりがちなあるあるエラー5選とその対処法
- 20. 【Ruby】なぜrequire ‘json’するとto_jsonできるようになるのか
フリーターでも分かる、jQuery基礎
どうもこんにちは、
今日はjQueryについて、
僕が学んだ基礎知識を共有していきたいと思います。
まずはじめに
簡単な公式を知らないと、
始まらないので公式から覚えましょう。
“`
$(’HTML要素’).メソッド(引数);“`
です。
短っ!
と思った方もいると思いますが、
こっから色々と付け足していくのです。
もちろんコレで終わりなわけはありません。
簡単解説
HTML要素
というのは例えば、、
index.html
“`こんにちは
“`
のところで言うh1です
あと、最後の ;(セミコロン) は忘れずにつけましょう。
コレが基本の構文ですね。
ではこの公式を使って、jQueryで何ができるのかを話していきます。
アニメーションを付けられる
はじめ見た時コレはすごいと思いました!
ほんの二行jQueryの記述を加えるだけでこんな変化を生み出せ
これから学ぶ言語について
HTML
・ウェブページを作成するために開発されたマークアップ言語 <プログラミング言語とは違う>
*他のマークアップ言語 SGML XML
・基本的に、「タイトル」「見出し」「段落」などの要素から構造化
・HTMLには「HTML」「XHTML」「HTML5」など、いくつか種類があり、使えるタグに違いがある<身近なHTMLの使用例>
⑴ウェブサイト
⑵電子メール(HTML形式)
⑶スマホアプリCSS
・構造化された文章のデザインを変更する言語=スタイルシート言語
・文字の太さ、色の変更、背景色の変更、余白の調整などを行う
・CSSはHTML<=マーク言語>と組み合わせて使う
・HTMLとCSSで分けることでソースコードを読みやすくする仕組みになっているJava Script
・ヴレンダン=アイク氏によって開発された言語
・ユーザー側のWebブラウザと、Webサイトまたはウェブサービスの相互間のやりとりを、円滑にするためのプログラミング言語
・コンテンツを更新したり、
thorでオプションを定義する6つの方法
Rubyでcliを作るときに定番のgem [thor](https://github.com/erikhuda/thor)ではコマンドのオプション(`–key value` みたいなやつ)を定義するときに`method_option`を利用する.
しかし,いくつかのブログやドキュメント等を参照すると他にもいくつかの方法がある.
この違いがよくわからなかったのでいろいろ確認した.## オプション定義方法を解説する2種類のドキュメント
thorのドキュメントとしては,[GitHub wiki](https://github.com/erikhuda/thor/wiki)と[公式webサイト](http://whatisthor.com/)の2種類存在する.GitHub wikiでは [`method_option` と `method_options` で定義する方法](https://github.com/erikhuda/thor/wiki/Method-Options)が紹介されている.
こちらのwikiには `option` / `options` を用いて定義する方法に
リスト処理関数(cons,car,cdr,atom,list)実装例まとめ
拙作記事『[7行インタプリタ実装まとめ](https://qiita.com/ytaki0801/items/f56bf2c84b522b51b64a)』について,そろそろSchemeとPython以外にも対応しないとなあと思っていろいろ整理した結果,『S式入力の実装部分がほとんどじゃないこれ?』→『あと,リスト処理内容に基準を設けてないと言語ごとに実装方針がバラバラになりそう』となり,とりあえず『`cons` `car` `cdr` `atom` `list`が使える』ようにする記述例を先にまとめていくことにした次第.ターゲット言語上での[純LISP](https://ja.wikipedia.org/wiki/%E7%B4%94LISP)機能実装に近いとでもいいますか.
※Python版については,これを用いたS式入出力記述例も掲載しています(他の言語版も揃ったら別記事に移すかも).
#仕様
* [ドット対(cons cells)](https://ja.wikipedia.org/wiki/Cons_(Lisp))を定義
* アトムは全て文字列,空リストはNULL
* `co
ヒトゲノムの配列の特定されてないところを見てみたりする夏休みの絵日記的なやつだよ
## はじめに
この記事はすごいテキトーな記事なので真に受けるなよろし。
## 目的
ヒトゲノム計画では、人のDNAの配列が全部明らかにされたと言われていますが、実際にはわかっていない部分もかなりあるはずです。
どこの部分がわかっていないのか、グラフを描きます。## ヒトゲノムのfastaのダウンロード
Gencodeからヒトゲノムの配列がダウンロードできます。
https://www.gencodegenes.org/human/ここでは、贅沢にALLをダウンロードします。
“`
wget ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_35/GRCh38.p13.genome.fa.gz
“`解凍してもいいのですが、`zcat` コマンドを使えばある程度見ることができますね。
まずは `head` を表示してみます。
“`sh
zcat GRCh38.p13.genome.fa.gz | head
“`“`
>chr1 1
NNNNNNNNNNNNNNNNNN
rails AWSのデプロイが反映されない場合
## AWS デプロイが反映されない場合に行うこと
環境
rails 5.2.4
unicorn
nginx
capistranoで自動デプロイした場合にすぐにAWSに反映されないことがある方向け## 解決法
デプロイする前にローカルで
cap production unicorn:stop
この後に、
bundle exec cap production deploy
をターミナルでうちましょう。unicornがストップします。自動デプロイでも同じようにunicornはストップ
させているはずですが、すぐに反映されないことも多いです。私の環境ではこれですぐにデプロイが反映されています
[過去POST]TECH::CAMPのメンターをしていた時の回答メモを一部公開します
# 過去POST
過去自分がTECH::CAMPのメンターをしていた時期にメモしていた内容を公開します。
小分けにしようとしましたが小粒なものはまとめておきます。
記憶が曖昧なので間違っている箇所もあるかもしれないです…## Q.ハッシュの中身が取り出せない
movie = {“title” => “ハリーポッター”, “genre” => “ファンタジー”, “year” => “2001年”}
から取りたい文字列を取るコードを書きましょう。
のような問題だったと思います。### 該当コード
“`ruby
def movie_info(movie, data)
puts movie[data]
endmovie = {“title” => “ハリーポッター”, “genre” => “ファンタジー”, “year” => “2001年”}
puts “以下から一つを選んで入力してください。
・title
・genre
・year”info = gets.chomp
movie_info(movie, info)
“`### 解説
【ruby】splitメソッドで、文字列から配列にしたい。逆も然り。
文字列を配列化させて、配列を文字列にして、、、というパターンの時に、どういう書き方が期待する値になってくれるでしょうか。
ということで、ダメなパターンも交えて、整理していきましょう!
#文字列を配列にする
`splitメソッド`を使っていきます。
**split 英訳:分断する**
つまり、まとまりのあるもの(文字列等)を分断させて、要素とさせるメソッドになります。(配列化)
引数は、*切り取る部分の境目を指定するイメージになります*様々なまとまりのパターンから、配列化をしてみました。
させたい配列は、`[“foo”, “bar”, “baz”]`とします。さて、どの書き方が合っているでしょうか。
“`ruby
# 配列化 # 返り値
“foo bar baz”.split [“foo”, “bar”, “baz”] # ○
“foo bar baz”.split(”) [“f”, “o”, “o”, ” “, “b”, “a”, “r”, ” “, “b”, “a”, “z”]
“fo
配列の使い方(個人的な備忘録)
# はじめに
個人的な配列についてのまとめ。## 配列の定義
“`ruby
array = []array1 = [1, 2, 3, 4, 5]
array2 = [“A”, “B”, “C”]
array3 = (1..5).to_a
=> [1, 2, 3, 4, 5]array4 = (“a”..”c”).to_a
=> [a, b, c]
“`## 配列に要素を追加
“`ruby
array = [1, 2, 3]## 先頭に追加
array.unshift(10)
p array
=> [10, 1, 2, 3]## 最後に要素を追加
array << 10 p array => [1, 2, 3, 10]array.push(10)
p array
=> [1, 2, 3, 10]## 指定した位置に要素の追加
array.insert(2, 5)
p array
=> [1, 2, 5, 3]
“`
insertメソッドは指定位置に追加できるため便利。## 配列の要素を削除
“`ruby
array = [1, 2, 3
Aizu Online Judge
この記事は、Aizu Online Judgeに取り組む中で勉強したこと等を忘れないようにするため、備忘録として作成するもの。
#gets(文字列の入力を受け付ける)
“`ruby
name = gets
#Taroと入力し、エンター
#=>”Taro\n”
name = gets.chomp
#Taroと入力し、エンター
#=>”Taro”
number = gets.to_i
#1と入力
#=>1
“`
getsは文字列#join (配列の連結)
配列を連結して1つの`文字列`として返す“`ruby
[1,2,3].join
#”abc”
[1,2,3].join(” “)
#”a b c”
[1,2,3].join(“+”)
#”1+2+3″
“`#繰り返し
##times
“`ruby
1000.times do
puts “Hello World”
end
“`
そこらへんにいるフリーターがdevise使ってみた。
どうも、
未経験からエンジニアを目指しているフリーターです。
今回は初心者でも簡単に、
ゼロからユーザー管理機能を作れることで有名なgem
devise
について、
ところどころ解説をはさみながら、
簡単に紹介させてもらいたいと思います。
まず最初はrailsアプリを作りましょう
“`
rails _6.0.0_ new (ご自身の作りたいアプリ名) -d mysql(最後の-dはオプションなのでいらない人はつけなくて大丈夫です)
“`インストールが終わったら、今作成したフォルダに移りましょう
ターミナルを開き以下のコマンドを実行してください
“`
% cd (ご自身が作成したアプリ名)“`
とりあえずデータを入れるためのデータベースを作ります。
ターミナルを開き以下のコマンドを実行してください
“`
% rails db:create
“`次はdeviceのジェムをGemfileにて追加していきます
“`
gem ‘devise’
“`
Rubyで高速素因数分解したい (ABC177E)
#### 参考
https://atcoder.jp/contests/abc177/editorial/82
(これを読んでからじゃないと記事が意味不明だと思います)### 本題
A以下の数がたくさん与えられて、それらを素因数分解したいとき、
エラトステネスの篩を行って、ついでにふるい落とした数を入れておくと、
素因数分解のときに楽“`ruby
cache = {key(その値) => value(keyをふるい落とした最小の素因数) }
“`みたいなcacheを作ると楽だよという話です。
例) 100を素因数分解する場合
“`ruby
cache[100]
#=> 2 = 2で割れる
cache[100/2]
#=> 2 = 2で割れる
cache[50/2]
#=> 5 = 5で割れる
cache[25/5]
#=> 5 = 5で割れる#∴ 100 は 2で2回、5で2回割れる
“`このcacheを作っておけば、素因数分解をO(logN)でできるねという話です。
今回はこれを用いて素因数分解を高速にできるクラスを作ってみたので、
既存の[In
Ruby で解く AtCoder ABC177 D UnionFind
# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。# 今回のお題
*[AtCoder Beginner Contest D – Friends](https://atcoder.jp/contests/abc177/tasks/abc177_d)*
Difficulty: 676今回のテーマ、UnionFind
典型問題の *[B – Union Find – AtCoder](https://atcoder.jp/contests/atc001/tasks/unionfind_a)* の応用です。
# Ruby
“`ruby.rb
class UnionFind
def initialize(n)
@parents = Array.new(n, -1)
end
def fi
初投稿
どうも :shamrock:
エンジニア就職を目指している20代です
現在はTechCamp82期生として最終課題に取り組んでいます
就職までの学習を記録します
既存の内容も多く投稿することになると思います:airplane:
Ruby問題⑦
最終回です。
#####問題
3つの整数a b cが与えられた場合、bまたはcがaとの差が1で
かつbとcとの数値の差が2以上の場合はTrue。
それ以外はFalse
と出力するメソッドを作りましょう。#####出力例:
close_far(1, 2, 10) → True
close_far(1, 2, 3) → False
close_far(4, 1, 3) → True#####ヒント
返り値を整数に変換する際はabsメソッドを使いましょう。#####abs
対象となる数値に対して「abs」メソッドを実行すると絶対値を取得することができます。すなわち正の数の場合はそのままですが負の数の場合は符号を取って正の数にした数値が取得できます。実際の使い方は次のようになります。
“`ruby
num = 5.abs
#=> 5num = (-5).abs
#=> 5
“`#####模範回答
“`ruby
def close_far(a,b,c)
x = (a-b).abs
y = (a-c).abs
z = (b-c).
ActiveRecord::NotNullViolation in Deviseエラー
【概要】
—————————————-
1.結論2.ActiveRecord::NotNullViolationtとは何か
3.なぜActiveRecord::NotNullViolation in Deviseになるのか
4.どのように解決するか
5.補足
1.結論
—————————————-
db/migrate/””””_devise_create_”””””.rbに
記載してある“t.string password(またはpassword_confirmation)”の記載を削除する!2.ActiveRecord::NotNullViolationtとは何か
—————————————-
![スクリーンショット 2020-08-29 20.47.37.png](https://qiita-image-store
クラスの情報を継承したクラスの作り方
##内容
複数のクラスに同じメソッドを定義したい場合、それぞれのクラス全てにそのメソッドを定義すると、同じ記述を何度も繰り返す事になってしまいます。
(例1)
クラス1 クラス2 クラス3
メソッドA メソッドA メソッドA
メソッドB メソッドC メソッドD
複数のクラスが同じメソッドを持つときにクラスが増えれば増えるほどコード量が多くなり、管理も難しくなります。これを防ぐためにクラスの継承について学んでいきましょう。
##クラスの継承とは
あるクラスに定義されたメソッドを、別の新規クラスで利用できるようにした上でクラスを定義することを継承と言います。クラスの継承には、親クラスと子クラスの関係があります。元となるクラスを親クラス、親クラスのメソッドを引き継ぎ新しく作成するクラスを子クラスと呼びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675525/8c07b3d0-649b-7177-3cbc-cdf6edb74c9a.png)
パトカーやトラックの上
twitter-omniauthのgemでつくるTwitterログイン機能のあるあるエラー4選とその対処法
Ruby On RailsでTwitterログインによるユーザー管理機能を実装するときのあるあるエラー4選とその対処法です。
# メールアドレス認証
ユーザー管理機能のベースにはdeviseのgemを使います。
Twitterログイン機能の作成にはomniauth-twitterのgemを使います。“`ruby:Gemfile
gem ‘devise’
gem ‘omniauth’
gem ‘omniauth-twitter’
“`“`
bundle install
“`参考:
[deviseで新規登録時にメールを送る](https://qiita.com/nekononeko_53/items/0af968c9617e404c45a1)
[RailsにDevise+OmniAuthでユーザ認証を実装する手順](https://qiita.com/zenizh/items/94aec2d94a2b4e9a1d0b)# エラー1: サインアップしようとするとエラーが出る
“`
NameError in Devise::RegistrationsCont
【Ruby】Seleniumでスクレイピングするときに起こりがちなあるあるエラー5選とその対処法
Webスクレイピングに役立つツール「Selenium」を使うときにおこりがちなエラー5選をまとめました。
# はじめに
Seleniumは複雑な操作をするWebスクレイピングするときに役立つgemです。RubyでWebスクレイピングするときに使えるgem
– Nokogiri (基本)
– Mechanize (かんたん)
– Selenium (ブラウザ操作でいろいろできる)NokogiriやMechanizeでは、HTMLタグやCSSを指定してページの内容を取得します。
Seleniumではプログラムでブラウザを開いて擬似的に操作できるので、複雑な処理ができます。– ログインが必要な場合
– JavaScriptでページを描画している場合
– データを入力したい場合など、HTMLタグやCSSセレクタだけでは必要な情報を取得できないときに使用すると便利です。
# Seleniumの使い方
Seleniumの使い方はいろんな方がまとめてくれているのでそちらを見てください。[[Ruby] seleniumでChromeを使っ
【Ruby】なぜrequire ‘json’するとto_jsonできるようになるのか
## TL;DR
– json module読み込み時にC言語の拡張メソッドを呼び出して関数の追加とmodule追加して、組み込みのクラスに後からMixinしているから。
## 疑問
Rubyでjsonに変換する場合`to_json`を使用をする場合が多いと思います。
`Hash`型や`Array`型のオブジェクトから変換する場合は、以下のようなコードを書きますが、`require ‘json’`をしないと`NoMethodError`でエラーが発生します。– `require ‘json’`しない
“`ruby:エラー起こる
irb(main):002:0> some_hash = {a: 1,b: 2}
irb(main):004:0> some_hash.to_json()
Traceback (most recent call last):
5: from /usr/local/opt/ruby/bin/irb:23:in `‘
4: from /usr/local/opt/ruby/bin/irb:23:in `lo