タグ

ProgrammingとRubyに関するGlnのブックマーク (55)

  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

    はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
  • Python のリスト内包表記 - Ruby や Haskell の書き方と比べながら

    0. Python の気になる機能  Python チュートリアル の目次をざっと眺め、目にとまったのは次の二つの機能。 5.1.4 リストの内包表記 9.9 ジェネレータ (generator) 両方とも耳馴れない言葉。 (@_@) まずは、リストの内包表記から調べることに。 1. リスト内包表記の基 a. リストの各要素に関数を適用する 最初は、リスト内包表記の使い方を確認する。例として、「数値のリストの各要素を 2 倍する」 print [x*2 for x in [1,2,3,4,5]] 初めて見たとき、どこから読めばいいのか検討がつかなかった。 読む順番は、 for によって、各要素を取り出し、 各々に対して、操作を加える。 というように、後ろから前へと読み進める。 b. リストの各要素から、条件にあったものを抽出する 次に、同じく数値のリストから、特定の条件に合う要素を抽出す

    Python のリスト内包表記 - Ruby や Haskell の書き方と比べながら
  • Rubyで簡単に全文検索エンジンが作れるGrnMiniを作った - ブログのおんがえし

    続きを書きました。 RubyでただのArrayだと思って・・の続きです。正月中に整備してgem化しました。 GrnMini ongaeshi/grn_mini Groonga(Rroonga)を簡単に使えるようにラップしたものです。 カラム指定不要でデータを追加することが出来ます。 永続化、高度な検索クエリ、ソート、グループ化(ドリルダウン)、スニペット、ページネーションなどを簡単に使うことが出来ます。 検索エンジンがすぐに作れます。 インストール $ gem install grn_mini 基的な使い方 実体はRroongaの薄いラッパーですが難しいことを考えずに使えるよう工夫しています。 require 'grn_mini' array = GrnMini::Array.new("test.db") 初めてデータを追加する時にカラム種類を類推して作成します。追加するデータが文字列の

    Rubyで簡単に全文検索エンジンが作れるGrnMiniを作った - ブログのおんがえし
  • FINDJOB!終了のお知らせ | FINDJOB!

    FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ

    FINDJOB!終了のお知らせ | FINDJOB!
  • パーフェクトRubyという書籍を執筆したら31歳になりました - ryopeko の何か

    もう先月のことですが、この度パーフェクトRubyという書籍を執筆し発売されました。 おかげさまで売れ行きも好調でエゴサーチ調べそれなりに良い評判をいただいておりますので、まだお持ちでない方は手にとっていただけると嬉しいです(パーフェクトな人は除く)。 パーフェクトRuby (PERFECT SERIES 6) 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一 出版社/メーカー: 技術評論社 発売日: 2013/08/10 メディア: 大型 この商品を含むブログ (7件) を見る 執筆に関するためになる話や内容については @sugamasao や素敵な読者の皆様のエントリーが存在しているのでそちらを御覧ください。 パーフェクトRubyというを(共著で)書きました 『パーフェクトRuby』の感想 今回執筆するにあたっては @sugamas

    パーフェクトRubyという書籍を執筆したら31歳になりました - ryopeko の何か
  • ついに顕在化しはじめたArrayリスク : 404 Blog Not Found

    2013年03月11日18:15 カテゴリTipsLightweight Languages ついに顕在化しはじめたArrayリスク JavaScript: The Definitive Guide (Kindle ed.) David Flanagan [邦訳:JavaScript 第6版] 以下のようにした理由は、実はJavaScriptのArrayが配列ではないことに起因します。 404 Blog Not Found:Algorithm - Ruby 2.0 や Haskell の遅延リストを JavaScript で これに対して、List.Lazyではmapやfilterを関数合成で実現しています。JavaScriptのArrayが、(整数個のデータ構造が順序よくならんだ古典的な意味での)配列でないことは、以下のように確認できます。 JavaScript var ary = ne

    ついに顕在化しはじめたArrayリスク : 404 Blog Not Found
  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

  • 「なんでRubyなんか作った!? 迷惑だ!」に対するMatzの答え:Rails Hub情報局:エンジニアライフ

    2012年9月に行われた札幌Ruby会議2012の基調講演の1つで、Rubyの生みの親のまつもとゆきひろさんが、最近あった面白いエピソードを混じえて“イノベーション”の質について語っていました(44分の動画)。ポイントとなる部分をまとめてみました。まつもとさんの話はもちろん、統計的裏付けだとか学問的裏付けがある議論というものではありませんし、ご人も楽しそうに話し、聴衆も楽しんでトークを聞くというゆるい感じのものでした。ただ、「イノベーションの質は捉えがたい」というメッセージや、「だからあれこれ考えずにコードを書こう、われわれはコードを書くことにアイデンティティを感じているのだから、それこそがハッピーになる道だ」というメッセージは、参加していたRubyistたちの胸に響くものがあったのではないかと思います。 以下、口語文体のまま、ポイントとなる前半のトークをまとめてみました。トーク後半

    「なんでRubyなんか作った!? 迷惑だ!」に対するMatzの答え:Rails Hub情報局:エンジニアライフ
  • Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)

    2. 宣伝: 翻訳買ってください 抽象によるソフトウェア設計(Daniel Jackson 著) – 中島震 監訳 ・ 今井健男・酒井政裕・遠藤侑介・片岡欣夫 共訳 (オーム社) – 会場で買えます! Types and Programming Languages (通称 TAPL) – Benjamin C. Pierce 著 – 絶賛翻訳中! 2 3. 目次 • 背景: 近年のプログラミングの問題 • 提案: 超絶技巧プログラミング • 実践 テーマ1: self-descriptive な Ruby プログラム テーマ2: 文字を制限された Ruby プログラム • まとめ 3 4. 近年のプログラミングの問題 • 俗世の欲にまみれすぎ – 例: プログラミング言語 Ruby の宣伝文句 生産性が10倍! 10分でblogが 作れる! プログラミングが 楽しくなる! 実用性なんか無

    Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
  • サンプルコードによるRuby入門

    配列の宣言 array = [1,2,3,4,5] 配列の要素の参照 配列の要素を参照するには、以下のようにします 配列[添字] 先頭の要素と2番目の要素を出力するサンプルです puts array[0]; puts array[1]; 配列の要素の代入 配列[添字] = 値 とします 先頭の要素に20を代入するサンプルです。 array[0] = 20 配列の要素の個数 次のようにします array.size 配列の要素を順番に処理する eachというのを使います。 配列.each do |配列の要素| # ここに配列の要素に対する処理を書きます end たとえば配列の要素すべての値を表示する例です array.each do |element| puts element end 重複を取り除く uniqというのを使います 配列.uniq たとえば[1,1,2,3]という配列に.uniq

    サンプルコードによるRuby入門
  • これからRubyを始める人たちへ

    (追記:2012-12-03) 記事を電子書籍化しました。「Gumroad」を通して100円にて販売しています。詳細は文末に追記しましたので、購入ご検討のほどよろしくお願いしますm(__)m 電子書籍「これからRubyを始める人たちへ」EPUB版 Rubyの特徴 Rubyは、まつもとゆきひろ氏(通称Matz)により設計されたオブジェクト指向プログラミング言語です。Rubyの特徴を一言で言うならば、それは「間口が広くて奥が深い言語」ということになります。 「間口が広い」というのは、インタフェースがシンプルで誰でもが簡単に使い始められることを意味します。「奥が深い」というのは、プロフェッショナルによる長期使用に耐えうる物の言語であるということを意味します。「間口が広い」ということと「奥が深い」ということは来競合する概念ではありませんが、その両方をバランスよく組み合わせるには、対象に対する

  • Amazon.co.jp: 初めてのRuby: Yugui: 本

    Amazon.co.jp: 初めてのRuby: Yugui: 本
  • Ruby + Mecab で日本語テキストから頻出キーワードを抽出する

    こんにちは。Sleipnir Mobile for Android 開発担当の西田です。 最近 Android アプリで、日語テキストから頻出キーワードを抽出したいなあ等といったことを考えており、ちょっと調べてみました。 まずは 日語の形態素解析ライブラリの Mecab を使おうと思いつくわけですが、これをアプリに組み込むにはちょっと辞書のサイズが大きすぎる感じです。(50MB 以上!)なのでどっかのサーバーで API を用意してやるのが良さげな感じです。 Mecab には各種スクリプト言語のバインディングが用意されているので、今回は Ruby でやることにしました。 まずは Mecab + Ruby バインディング + 辞書をインストールします。Ubuntu 10.04 だと以下のようなコマンドでインストールできます: sudo aptitude install ruby1.9.1

    Ruby + Mecab で日本語テキストから頻出キーワードを抽出する
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 「人間様が気分よくプログラミングするための言語」Rubyは何を目指すのか - GIGAZINE

    「気分やノリがソフトウェア開発には重要だ」と断言し、そこに注目して自らRubyを開発してきたまつもとゆきひろ氏は、どのようにしてプログラマに育ち、Rubyを生み出し、そして開発を続けてきたのでしょうか? 今や日初のオープンソースソフトウェアとして100万人規模のユーザを持つRuby。数々の賞を受け、なおも変化と成長を見据えるまつもと氏が日最大のゲーム開発者向けカンファレンス「CEDEC2011」にて、自らの若かりし日々から長いRubyの開発の歴史とそこで培われたコンセプト、そして未来への展望までを余すところなく披露してくれました。「Ruby開発が教えてくれたこと」と題されたこの講演の全内容は以下から。 まつもと: はじめまして、まつもとゆきひろです。 最近はRubyを開発した人ということで有名になりましたが、Ruby自体ゲームのソフトウェアというより、それを動かすサーバとして使用して頂

    「人間様が気分よくプログラミングするための言語」Rubyは何を目指すのか - GIGAZINE
  • なぜRubyをPythonよりもPHPよりも高速化できたか - 方向

    最も有名なベンチマークサイト "The Computer Language Benchmarks Game" における最新のランキングRuby 1.9 は Python3, PHP, JRuby を追い抜きスクリプト言語としてトップクラスの値を叩き出しました。 5/4の時点では最下位に近かったので大きく前進しています。 1つのパッチで520%の高速化を達成 この高速化は私がfastaというベンチマークのプログラムを改善したことにより実現しました。 少し前Rubyのベンチマークを書くことにハマっていました。 他の人のプログラムや統計を眺めていたとき、fastaに関してPythonが異常に速いことに気づきました。 他のスクリプト言語のおよそ50倍速く、アルゴリズムが改良されていました。 fasta #6 fasta #7 この2つのコードを比較するとわかるのですが、処理が重複している箇所に

    なぜRubyをPythonよりもPHPよりも高速化できたか - 方向
  • perl - for(each)やwhileの変数スコープ : 404 Blog Not Found

    2011年06月09日20:00 カテゴリLightweight Languages perl - for(each)やwhileの変数スコープ 404 Blog Not Found:perl - 勝手に添削 - each vs. spliceへの追記ですまそうと思ったけど、大事なことなのでentryを改めて。 はてなブックマーク - Yuichirouの投げやりクリッピング keys => sub { my $value; foreach my $key ( keys %hash ) { $value = $hash{$key}; } } # こうじゃないかな? 何度でも違うって、そう言い返せます。 while(my $var){ #… }やforeach my $var () { #… }の$varのスコープはどちらになるでしょう?はい、lleval君! use strict; use

    perl - for(each)やwhileの変数スコープ : 404 Blog Not Found
  • 第3回 流暢なインターフェース | gihyo.jp

    最終回となる今回は、文章を書くようにプログラムを記述する流暢なインターフェースについて解説します。 レビュー:内部DSLと外部DSL 内部DSLを採用したDSLは、とても親しみやすいと言えます。なぜなら、ホスト言語のパワーと今まで使っていたツールをそのまま使うことができるということと、内部DSLは、文章のように書かれていることが多いので、処理の結果を容易に想像することができるからです。しかし良いことばかりではなく、良く設計されていない内部DSLは、処理の結果を想像することが難しくなる、という問題点もあります。 外部DSLは、その構文やルールを新たに学ばなければなりません。そして、決して読みやすいとは言えません。Eclipseプラグインのようなツールを提供しなければならなくケースが非常に多くあります。しかしその反面、外部DSLの開発者が自由にDSLのフォーマットを決めることができます。 内部

    第3回 流暢なインターフェース | gihyo.jp
  • 第2回 内部DSLへの道 | gihyo.jp

    今回は内部DSLの詳細、またその実践としてRubyを例にした実装について解説します。 内部DSLに適した言語 - Ruby 2005年12月にRuby on Railsの正式版のリリース以降、そのフレームワークのみならず、プログラミング言語Rubyを支持、採用するプログラマーが増えてきました。 そのことを端的に表しているのが、達人クラスのプログラマー、そしてアーキテクトの存在です。一人は『達人プログラマー[1]⁠』⁠『⁠プログラミングRuby[2]⁠』などの著書で知られているDave Thomas氏です。もう一人は『エンタープライズ アプリケーションアーキテクチャパターン[3]⁠』などで著名なアーキテクト Martin Fowler氏です。Fowler氏が属している会社 - ThoughtWorks社[4]の多くのプロジェクトは、Rubyで開発していると聞いてます。 なぜ、彼等は、Ruby

    第2回 内部DSLへの道 | gihyo.jp
  • 第1回 DSLとは? | gihyo.jp

    第1回目は、DSLの基的な概念について説明します。 DSL概要 DSL(Domain Specific Language)は、ドメイン固有言語と訳されてます。DSLは、Java、C#などの汎用言語とは違い、ある特定の種類の問題に特化したコンピュータ言語です。 今回の連載では、DSLの世界を解き明かします。そして、実際にDSLをつくることで、よりDSLの理解を深め、「⁠用法・用量を守って使える」ようになるのが、今回のゴールです。 DSLの必要性 なぜ、DSLを学ぶ必要があるのでしょうか。 Ruby on Railsの登場以降、メタプログラミングという言葉を良く聞くようになりました。メタプログラミングというと、マクロ、コードの自動生成、テンプレートを上げることができます。 DSLは、メタプログラミングで使われます。メタプログラミングは、一般的なプログラムとはまったく違った方法をとっているので

    第1回 DSLとは? | gihyo.jp