院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

2018-02-01から1ヶ月間の記事一覧

ダックタイピング

オブジェクト指向設計実践ガイドを読む。 まだこれを読めるレベルまで到達できてないっぽいから読むの終わり。 ただ、ダックタイピングについての例が分かりやすかった。 # はじめの段階 class Trip attr_reader :bicycle, :customers, :vehicle def prepare…

2次元配列とeach

2次元配列とeachについて参考にしたリンク二次元配列は1回のeachで回せる - 【旧】PerlerのRuby日記->はてなブログに移行しました array = [[1,2], [3,4],[5,6]] array.each do |v1, v2| puts v1, v2 end 多次元配列の中身をeach_with_indexで展開する | Rub…

2次元配列をハッシュで整理

2次元配列でデータだけ与えられて、それをわかりやすく整理する方法 class Hoge def initialize(data) @data=[] data.each_with_index do |(v1, v2), i| @data[i] = {first: v1, second: v2} end end def print_data puts @data end end data=[[1,2],[3,4],[…

curlとは

”下位10%だけが解けない問題” を見てcurlってコマンドを知った。 CUI版のブラウザみたいな感じでリクエスト送ったりapiを叩いたりできるらしい。以下の2ページがcurlを全く知らない人でもわかりやすく説明されてた。curlを全く知らない人向けにcurlでLINEに…

統計学を学ぶ

統計学を学びたい マンガでわかる統計学を読んでみる

バブルソート

バブルソートも"後ろから前へ小さいもの"ではなく"前から後ろへ大きいもの"って考えたら ループの終了条件とかがだいぶわかりやすくなる気がする #バブルソート2 def bubble_sort(array) for k in 1...array.length for i in 0...array.length-k if array[i]…

クイックソート

クイックソートって両端から要素を調べて、入れ替えて..を繰り返すと思ってたけど pivotより大きいものと小さいもので分けちゃえばそんなことしなくて済むのか。 それに、こうした方が再帰の考えが使いやすい。 これなら実装できそう。 なっとくアルゴリズム…

なっとくアルゴリズム

なっとくアルゴリズムを読み始める。 pythonで書かれてるけどrubyで実装してみよう。

upto,downtoの代替

Numericクラスにこんなメソッド追加したらどう class Numeric def to(num, &block) if self > num (num..self).reverse_each(&block) else (self..num).each(&block) end end end 5.to(8){|i| puts i} #=> 5,6,7,8 8.to(5){|i| puts i} #=> 8,7,6,5 #ちなみ…

rubyのeachやtimesについて

rubyではループ処理にeach,times,upto,downtoなどがある。 forで書けるのに何故あるかについての考え。これらはforよりも抽象度が低いから直感的に把握しやすくなるのだと思う。 例えば for(i:0〜n) { array[i]の処理 } = array.each for(i:0〜n) { n回繰り…

アルゴリズムをはじめよう実装(ruby)

アルゴリズムをはじめようをrubyで実装 #二分探索 def binary_search(array, serch_num) head = 0 tail = array.length - 1 while head <= tail center = (head+tail) /2 case array[center] <=> serch_num when -1 head = center +1 when 0 return puts "見…

アルゴリズムをはじめよう

"アルゴリズムをはじめよう"を読む アルゴリズムの説明と擬似コードまでは書いてくれてるからこれをrubyで実装してみる

rubyによるデザインパターン

rubyによるデザインパターンをやっと読み終わった個人でプログラミングする上ではデザインパターンが必要になるほど複雑なものは作らないと思うけど 委譲や継承より集約と言った考え方は参考になった。ruby初心者でも読めるってレビューがあったけど ruby自…

vscodeとatomの比較

atomからvscodeに乗り換えて感じたこと。 主にrubyです。メリット ・rubyの補完ができる atomでのruby補完はなぜかあまりにも遅くて使い物にならなかった・色分けが細かい ruby用の拡張でテーマをより細かくシンタックスハイライトしてくれるのがある・実行…

メタプログラミングを読んでいる途中

おもしろく、読みやすいけど難しくなってきた

メタプログラミングrubyを読み始める

メタプログラミングをちゃんと使うのなんて まだまだ先だろと思いながら、ぱらぱら読み始めてみた。文体が読みやすく、rubyについての理解が深まる。 まだ2章の途中だけどベスト・プラクティスよりも読んでて楽しい。

ruby python javascript どれ学ぶ?

よく比較されそうなこれら3つのプログラミング言語について個人的な感想ruby こんな人におすすめ ・仕事以外でwebアプリを作りたい 特徴 ・webアプリを比較的簡単に作れる ・悪い意味で独特な書き方 ・これから廃れる言語python こんな人におすすめ ・日常業…

vscode

vscodeを使ってみる。 とりあえずインストールと設定した。rubyのデバッグができるらしいからやってみる。そんなことより卒論のプレゼン作らないと。

重い物体のほうが速く落ちる?

なんか昔に書いた記事を思い出し整理してみた。問題:同じ大きさの"重い物体"と"軽い物体"を落としたらどっちが速く落ちるか? 解答:重い物体落下中に物体に掛かる力は以下の2つ 下向きの力:物体の質量×重力の加速度 上向きの力:物体の速度×空気抵抗率運…

正規表現を学ぶ

正規表現を学んだ。 意味不明な文字ってイメージがあったが 学んで見ると思ったよりも簡単な気がしてきた。

ベストプラクティス流し読み終了

instance_evalとか参考になるところは多かった。 ただ理解できてないことも多い。まぁ必要になったらまた学ぶでしょう。 そういう使い方があるねってことを概念として把握した。オープンクラスって他人が読んだときわかりにくくないのかな。 (missing_method…

rubyベストプラクティス

rubyベストプラクティスを読んでいる。 ブロックの使い方が実践例を基に書かれていてわかりやすい。