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

歩いたら休め

If the implementation is easy to explain, it may be a good idea.

Ruby

【Python】辞書のキーにデフォルト値をセットする

最近Pythonで自然言語処理をしていて、複数のライブラリを利用していると、どうしてもリストや辞書のややこしい変換が増えてきます。 categories = ['サーバル', 'かばん', 'サーバル'] lines = [ ['ここ', 'は', 'さばんな', 'ちほー'], ['食べ', 'ない', '…

【Python】Rubyの配列やハッシュのメソッドをPythonで再現する

友だちが「Rubyはいろいろなメソッドがあって柔軟だから、 そっちに慣れちゃうとPython書くときちょっと困るんだよね」と言っていました。 たしかに、Rubyは「配列やハッシュに対してこんな機能があればいいな」と感じたとき、 そのデータ型のリファレンスを…

【Ruby】open-uriでhttp=>httpsのリダイレクトを行う

Rubyでスクレイピングしていたところ、PCサイトからスマホサイトにリダイレクトするところで次のようなエラーが出てしまいました。 どうやらRubyのopen-uriではhttpからhttpsへのリダイレクトが禁止されているようです。 kiito.hatenablog.com open-uri.rb:2…

【Ruby】HTMLをYAMLに変換して他サイトの改修をチェックする (ver2)

「スクレイピングで他サイトの改修をチェックして自社サイトの参考にしよう」という上司の無茶振り要望に応えてあげようキャンペーン第二弾です。 kiito.hatenablog.com 前回のコードを回して、一応改修箇所は検知できていたようですが、正直全然使い物にな…

【Ruby】PythonプログラマーがRubyを触って感じたこと

Pythonプログラマーというか、元々Python(ときどきR、C言語)で数値シミュレーションをしていた学生が、就職してRubyでWeb開発を行うにあたって勉強したことを書き連ねていくだけの記事です。 もし自分と同じような立場の人(これから後輩としてもどんどん…

【Ruby】injectでリストに値を加えていくコードで、代わりにEnumerator::Lazyを使ってPythonのジェネレーター風の遅延評価を行う

会社のRubyistが「一つの言語を極めておくと、他の言語もゴリゴリ書けるようになるって最近Go言語書いてるPerl Mongerのオッサンが言ってた」って言ってました。 私も、Pythonをある程度書けるようになってたおかげで、RubyやR言語でも迷わずにプログラミン…

【Ruby】DBからの戻り値をdplyr風に操作するleft_outer_join関数を定義したら便利だった

最近、BigQueryに解析・レポート用にデータの紐付け&クレンジングしたテーブルを入れるプログラムを実装しています。 例えば、ある学園の生徒名簿のテーブルを考えると、こんな感じになるはずです。 生徒id 名前 年齢 1 hoshimiya 17 2 ozora 13 3 kiriya 1…

【Ruby】RubyでRのdplyrっぽいメソッドチェーン

今日は、RubyでDBの戻り値を集計する部分を触っていました。 DBからの戻り値は例えばこんな感じです。ここから、各アイドルグループ(soleil, luminas)ごとに平均年齢を出したいとします。 # スターライト学園のアイドルの名簿 name_list = [ {'name' => 'ich…

【Ruby】Effective Rubyの項目19 『ruduceを使ってコレクションを畳み込む方法を身に付けよう』のメモ

普段はPythonユーザーなのですが、仕事ではRubyを扱う機会が増えてきました。 Perlから受け継いだTMTOWTDIの思想とか、書いてて勉強になり、楽しい言語です。 関数の定義に必ずしも()が必要なく、関数が変数と同じように扱えるところとか、 「ここインスタン…

【Ruby on Rails】チュートリアル始めました

何かWebアプリ作りたいと思っていたのですが、就職説明会で「まずはRailsをやってみれば?」と言われたので勉強を始めました。(全く就活と関係ない話だったのにありがとうございました!) フレームワークを使うとデータベースとか細かな設定が勉強できない…