読者です 読者をやめる 読者になる 読者になる

【メモ】ついつい忘れてしまう gitコマンド

特定のコミットまで戻す コミットの履歴を確認する $ git log #ハッシュ値が出て来る 戻す $ git reset –hard ハッシュ値

linux 容量順ファイルのソート

コマンド du -ma | sort -rn | head -10 du -m | sort -rn | head -100 1.du du ディレクトリ内のファイル容量を表示する -m は単位をmバイトにする -a ファイルも表示する(aはallの略) 2.sort sort 行を並び替える -n 先頭の文字(+.-など)を数字とみなして…

include VS extend [ruby]

include 定義 moduleで定義されたメソッドを追加 rubyは多重継承は出来ないため、includeで必要な機能を追加 通常、moduleはインスタンスメソッドを使用出来ない。 includeしたクラスのスーパークラスとして継承されるため、 moduleに定義されたインスタンス…

python、ruby文字列変数展開、バッククオート

python文字列変数展開、バッククオート pythonを使いはじめてます。 簡単ですが、自分のメモ代わりに最近調べた事 を書いておきます。(対比としてrubyのケースも書いておきます) 文字列の変数展開 # ruby hoge = "hoge" puts "hoge#{hoge}" #hogehoge #pyth…

メタプログラミングRuby第五章 特異メソッド

特異メソッド 特異メソッドとは・・・特定のオブジェクトにメソッドを追加することです。 以下にコード例を示します。 hoge = "hoge" def hoge.upcase? hoge.upcase #HOGE end モンキーバッチと違うことは? モンキーバッチとはクラスにメソッドを追加及び修…

メタプログラミング ruby ローカル変数スコープ

ローカル変数のスコープ切り替え ローカル変数を使う時にいつも気になるのがスコープの存在です。 一旦、スコープの切り替えタイミングは クラス定義 モジュール定義 メソッド定義 の3つです。 上記3つのことを「スコープゲート」と呼びます。 v1 = 1 #→v1…

メタプログラミング 第四章 ブロック

ブロック ブロックは {} もしくは do endキーワードで定義出来ます。 具体例を説明します。 ["1","2","3"].each do |i| puts i end # => ["1", "2", "3"] 文法書でよくある記述ですが、ブロックの前(do endキーワード) の前には 配列オブジェクト そして メ…

メタプログラミングRuby 第三章 method_missing

前回、動的メソッドを説明しました。今回は method_missingをまとめていきます。 mehod_missing メソッド呼び出しの際に見つからなかった際に呼び出されるメソッドです。 以下にコード例を書いておきます。 class TestMethod end obj = TestMethod.new obj.g…

メタプログラミングRuby 第三章メソッド 動的メソッド

動的メソッド 前回は 「動的ディスパッチ」をメインに説明しました。 今回は本丸である動的メソッドの説明を行います。 動的メソッド定義 動的メソッドとは動的にclassとモジュールにメソッドを追加出来ます。 使い方は簡単で「define_method メソッド名」を…

メタプログラミングRuby第三章 動的ディスパッチ

重複したプログラムをなくすには? この際に解決する方法は 動的メソッド と ゴーストメソッド があります。 今回は動的メソッドに絞って説明します。 動的ディスパッチ 動的メソッドの前に、動的ディスパッチを説明します。 動的ディスパッチとはメソッドを…

メタプログラミングRuby第二章(2.2~)

クラスの真相 Classクラスのインスタンスはクラス! クラスのメソッドはClassクラスのインスタンスメソッド Classクラスとは? クラス(ここでいうクラス名は大文字) はClassクラスのインスタンスである。 Stringクラスを例にとると String.class #Class ←Cl…

メタプログラミングRuby二章(2.2途中まで)

第二章(途中まで)書きます。 オープンクラスとは? 既存のクラスを再定義することです。 以下のコードを見て下さい。 これはStringクラスのメソッドを拡張した例です。 class String def dokkiri! return "!" end end p "test".class #String p "test".dokki…

メタプログラミング1章 準備

メタプログラミングRuby第一章 第一章は分量も多くないため、頭の整理のため オブジェクト志向についてまとめておきます。 クラス 教科書通りの説明ですと、クラスとは「設計図」です。 よくある例ですと、たい焼きの型ですね オブジェクト志向は再利用を目…

メタプログラミングRubyを読む

はじめに これからメタプログラミングRubyを読んでわかったことをまとめていきます。 編集方針(随時更新) 基礎的なこともまとめる。 オライリー特有の「わかっているだろ?」的記述を出来る限り自分の 中で噛み砕いて説明

wgetコマンド使い方

wgetとは ウェブページからコンテンツをダウンロードする際に利用します。 よくある利用例としてはウェブサイトのページをダウンロードしたり、 画像を取得したりします。 使用方法 Macから使うにはwgetコマンドをインストールする必要があります。 $ brew i…

サーバーコマンド

サーバー利用 先日、サーバーを利用したので、その際に用いた コマンド及び、(これから使うであろう)コマンドを 備忘録として残しておきます。 Topコマンド Topコマンドを用いると、システム全体の負荷・メモリ稼働状況が 把握出来るようです。 以下にコマン…

新しいファイルを何個も作るには

UNIXコマンドでファイル作成 僕は新しいファイルを作る際、GUIを通じて行っていました。 普段使う際は問題ないのですが、大量のファイルが必要なときは問題になりますね。 例えば1〜99のjsonファイルを作る際にはいちいち、マウスを使って作るのは非効率です…

Curlコマンド

はじめに Curlコマンドを少し勉強しましたのでブログで整理を行っていきます。 HTTPアクセス 本題に入る前にHTTPについて整理を行ったほうが通りが良いので整理してます。 HTTPとはWebサーバーとWebブラウザなどのクライアントがデータを送受信する際のルー…

Sinatraに出会った

初体験 先日Sinatraというフレームワークを触ってみたので頭の整理がてらカキコします。 Sinatraとは Rubyのフレームワークです。フレームワーク ≒ Railsと捉えられやすいですが、 SintraもRuby界では有名なようですね(失礼!) 第一印象 「え、これってフレ…

JSON

先日、JSONを扱う機会がありました。 復習も兼ねて定義及びRubyのコード例を元に頭の整理をしていきます。 JSONとは まず、恒例の「定義通り」の説明をします。 JSONとはJavaScript Object Notationの略です。 テキストベースのデータフォーマットで 多くの…

タイムスタンプとは何か

ある日の研修 タイムスタンプ(正確にはUNIXタイムスタンプ) を使う機会がありました。 これは「1970年1月1日」UTC時点からの経過秒数(整数型) を示すものだそうです。 恥ずかしながら初めて聞く単語だったので、 まとめておきます。 使用方法 以下ではRubyを…

UTF-8とSHIFT-JISの違いとは

はじめに 現在、見習いrubyエンジニアとして働いています。 業務中に詰まったところをアップしていきます! 初日 詰まったところ Shift-JIS形式でのHTMLファイル作成のタスクを 振られて「??」状態でした・・・ HTMLを作成するときにmetaタグに「utf-8」を…