webエンジニアの日常

RubyやPython, JSなど、IT関連の記事を書いています

名前の森で定数を見つける物語

Effective Ruby勉強メモです。 Rubyで大きなアプリケーションなどを作る場合には、どうしても既存クラスと同じ名前のクラスを定義したいときがあります。 以下のように書くとクラスを新しく定義しているかのように見えますが、実際には既存のArrayクラスを再…

豚の角煮を作るときの下処理に効果があるか実験してみた

今回は珍しく料理ネタを書きたいと思います。 最近圧力鍋を購入してから、結構な頻度で豚の角煮を作っています。 いろんなレシピを見ながら味付けを変えたりしているのですが、意外と書かれていないのが、肉の下処理です。 主に臭みを取るのに酒や塩をかけた…

即席クラス。構造化データの表現にはStructを使おう

配列ではなく、キーと値のペアで構成されているデータを扱うには、普通ハッシュを使うかと思います。 それ自体は間違いではありませんが、ハッシュにしてしまうとゲッターメソッドが使えず、オブジェクトかハッシュかを意識しながら扱わなくてはいけません。…

買ってよかったAmazonKindle本を紹介します

最近またkindleで本を読み始めました。 欲しい本をkindleで探して、買って、読む。 買うまでのハードルが低すぎてついつい買っちゃうんですよね。 もちろん、買って後悔した本もありますが、今日は買ってよかった本をランキング風に紹介したいと思います。 …

SCSSの文法で最も基本的であると思われるものをまとめてみました

Progateで勉強したSCSSの文法のまとめです。 「なんかcssをちょっと便利にしたもの」程度の理解しかなかったので、progateで勉強し、文法をまとめてみました。 入れ子構造 通常のcssであれば .header { width: 100%; } .header ul{ padding: 10px; } と書い…

Rubyをもう一歩進んで勉強する9章(セッターメソッドについて)

Rubyではメソッド名の末尾に"!"や"?", "="のような非英数字文字を使うことができます。 "!"はメソッドの使用者に注意を促すとき、"?"はメソッドが真偽値を返すのを明示的に表したいときに使ったりします。 たまに、"!"を付けると破壊的メソッドになるとか、…

Rubyをもう一歩進んで勉強する8章(initializeメソッドについて)

伝統的かどうかわからないが、RubyはJavaなどにあるようなコンストラクタを持っておらず、代わりにnewメソッドから呼ばれるinitializeという特別なメソッドを定義することによりオブジェクトを初期化することができます。 特に定義しなければ、BasicObjectク…

Rubyをもう一歩進んで勉強する7章(superの挙動)

親クラスの同名メソッドを呼ぶsuperについてです。 例えば以下のような場合 class User def login(acount, password) ~ログイン処理~ end end class AdminUser < User def login(password) ~ログイン処理~ ~固有の処理~ end end AdminUserクラスではロ…

Rubyをもう一歩進んで勉強する6章(メソッド探索と特異クラス)

Rubyでは、継承しているクラスを上へ上へと昇りながらメソッド探索を行います。 一つ上のクラスはsuperclassメソッドで知ることができますが、モジュールをインクルードしたときはsuperclassで検出できず、しかしいつの間にかモジュールのメソッドが使えるよ…

Rubyをもう一歩進んで勉強する5章(Rubyが出す警告について)

Rubyはコンパイルすることなく、即座に実行できる言語ですが、実際は構文解析などコンパイラ的な処理を行ってから実行されます。 コンパイラフェーズで出される警告は特に重要で、その大多数が曖昧な書き方ゆえ、さまざまな解釈の中から一つを選択したときに…

Rubyをもう一歩進んで勉強する4章(Rubyの定数について)

Rubyでは定数を先頭を大文字の変数として定義することができますが、ミュータブル(変更不可)ではありません。 システム全体で定数は変更されないことが期待されますが、イミュータブル(変更可能)となっているので、予期せぬ不具合や見つけにくいバグが生…

Rubyをもう一歩進んで勉強する3章(Perl風機能の排除)

第3章はRubyに残っているPerl風機能を排除(できるだけ使わないようにしよう)です。 Rubyは様々な言語から影響を受けながら作られた言語です。 影響を受けた言語の一つとしてPerlがあります。 僕はPerlを触ったことがなく、初めてRubyを触ったのも2系にな…

陣痛から出産までの全記録~次男誕生~

次男が誕生してから、一瞬で1か月が過ぎました。 子供と過ごしていると一日があっという間に終わってしまいますね。 まだ覚えているうちに、陣痛が始まってから産まれるまでに起こったことを時系列で記録しておきたいと思います。 2018/5/13(出産前日) 15:0…

Rubyをもう一歩進んで勉強する2章(nilかもしれない運転)

Effective Ruby勉強メモ第2回目です Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る

Rubyをもう一歩進んで勉強する1章(何を真と考えるか)

Rubyにもう少し深く触れるべく、Effective Rubyを少しずつ読んでいこうと思います。 この記事は勉強した際のメモ・感想・まとめです Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5…

第二子妊娠から出産までの全記録

ご無沙汰してました。 おかげさまで、無事次男君が産まれました! 妊娠したときからちょくちょくと妻の様子をメモしておいたので、妊娠に気づいたときから生まれる直前の様子まで公開してみたいと思います。 2017/09/13(妊娠2か月ごろ) いつもカレンダーの…

渋谷から銀座まで歩いたら、東京にも綺麗なところあるんだって知った

先日、会社主催のイベント「メイプルバー」に参加してきました。 peatix.com 帰り、いつもなら電車でかえってるんですけど、今回は社長が歩くっていうから、僕も歩いて帰りました。社長と帰る場所一緒なんですが、別ルートです笑 地図を見て、最短距離だと大…

1ヶ月のダイエット成果

こんにちは、さもです。1ヶ月半ほどブログ放置してました。 久しぶりに書きます。実はここ1ヶ月ほどダイエットしてましたので、方法と成果を書きたいと思います。 以前記事に書いたように、銀座のオフィスに住み着いています。 www.uosansatox.biz 妻とは一…

ヘルパーが太ってきたらデコレータでダイエット

画面へ表示するためだけのメソッドは、モデルには書かずに、ヘルパーに書く。というのはみなさんご存知のはずです。 ただ、そうすると今度はヘルパーが太ってくる。 最初はそこまで多くならないだろうと、一つのファイルに集めていたヘルパーメソッドたちが…

3月から銀座にある本社に住み始めました

こんにちは、さもです。 2月末から4月末までの約2ヶ月間ですが、銀座にある今勤めている会社の本社に住み始めました。 これを人に話すと「???」ってなるのですが、本社はマンションの1室で、下の絵みたいな感じになっています。 半分ぐらいのところか…

inverse_ofってどういうときに使うの?

Rails Guide の説明では 「inverse_ofオプションを提供していて、これを使うと双方向の関連付けを明示的に宣言することができます。」 とありますが、正直言ってることがよく分からんという方、そして自分へのメモです。 例えば、次のようなモデルのとき (…

最大値よりちょっと大きくてキリの良い数値を出力せよ

ここに、ユーザー登録数の推移が配列であります。[12,45,112,345,343,340] これをグラフに表示する際に、配列の最大値より少し大きくてキリの良い数を出力したい。 そんな要望があったときの実装例です。 def user_count_upper_bound(array = [0]) upper_lim…

React Nativeアプリをビルドする手順(Android)

はまるところが多かったのでメモです。 Expo(CRNA)で作ったことを想定しています。 まずは、 create-react-native-app UpTest cd UpTest で適当に作ります。ただし、名前「UpTest」はのちのちパッケージ名になるので、複雑な名前にしておかないと、リリース…

'react-native' は、内部コマンドまたは外部コマンド・・・のエラー対処

npm i react-native-cli とすると、 'react-native' は、内部コマンドまたは外部コマンド・・・ というエラーが出ることがあります。 そんなときは、 npm i -g react-native-cli で解決します!

Reactが理解できない人のための、Reactチュートリアル①

こんにちは、さもです。 Reactが流行りだしてからしばらく経ちますが、フロントエンド、WEBサーバーサイドエンジニアの方々はもうReactを触ってみましたか? Reactは一回理解できると、とても楽しく、(Reactに限らず仮想DOMは)強力に感じるのですが、初め…

十数年ぶりに公立高校入試の英語を解いみて思ったこと

こんにちは、さもです。 最近ちょくちょく英語を勉強しようと、ラダーシリーズを読み始めています。 www.uosansatox.biz Level1の美女と野獣とアインシュタインストーリーを読んで、今はLevel2の星の王子様を呼んでいます。 だんだんと読めるようになった…

RailsでCSVインポート機能を実装する

こんにちは、さもです。 CSVをアップロードしてデータの一括投入機能はよくあると思いますが、最も基本的な実装をメモしておきます。 イメージはこんな感じです。 インポートにはactiverecord-importを使ってバルクインサートしています。

React+Railsで簡単なCRUDを作ってみました

こんにちは、さもです。 先日ついにReactに入門してみました。 www.uosansatox.biz もともとこの記事はRailsにReactを導入する前にReactのチュートリアルで基礎を覚えようと言うものでした。 めでたく基礎をクリアしたので、いよいよRailsへ導入して、簡単な…

SyntaxError: unknown: Adjacent JSX elements must be wrapped in an enclosing tag

こんにちは、さもです。 Reactで以下のエラー SyntaxError: unknown: Adjacent JSX elements must be wrapped in an enclosing tag の対処法メモです。 エラーメッセージにも書いてありますが、Reactのreturnは1つのタグしか返せないので、例えば、 class U…

ラダーシリーズ(Lv.1)美女と野獣のあらすじと感想

英語の勉強のため、ラダーシリーズの本を読みました。今回は美女と野獣です。