タグ

ProgrammingとRubyに関するtaka-junのブックマーク (25)

  • RubyにHaskellよりも強力なパターンマッチを実装した - Qiita

    require 'egison' include Egison match_all(object) do with(pattern) do ... end end match(object) do with(pattern) do ... end with(pattern) do ... end ... end パターンマッチに成功すると、withに渡されたブロックが実行され、その結果が返されます。 このライブラリのパターンマッチでは、パターンマッチの結果が複数あるということがあります。 match_all構文はそのすべてのパターンマッチの結果それぞれについてwithに渡されたブロックを実行し、すべての結果をまとめた配列を返します。 match_all構文は1つのwith節を取ります。 一方、matchは複数のwith節を取ります。 先頭のwith節のパターンから順番にパターンマッチに成功

    RubyにHaskellよりも強力なパターンマッチを実装した - Qiita
  • 1人でよいコードを書く - 鳩舎

    1人でよいコードを書くのは、3人でよいコードを書くことの3倍難しい。悪いコードを書くときに説得する人間が 1/3 でよいので、つまり自分に向かって『まぁいいじゃん今回は』と言えば事が済む。続けているといつの間にか引き返せないところまできていて、適当に書いた個人プロジェクトは設計的破綻を起こし、コーディング規約もなにもあったもんじゃないという破滅が待っている。 ということで、1人でよいコードを書くために。今回は Rails プロダクトを1人で書くとして。 rubocop コーディング規約と、あまりに長すぎるメソッドやあまりに長いクラス定義などを見つけてくれる。全てに従うと厳しすぎて死ぬので、適宜各チェッカを無効にするのがよい。 僕はこんな感じの設定で使っている。 AllCops: Includes: - Rakefile - Gemfile - config.ru Excludes: - b

    1人でよいコードを書く - 鳩舎
  • Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ

    今まで何度もスクレイピングとかクローリングをしてきたので、マエショリストの端くれとしてコツを公開すべきかなあ、と思い、公開します。 今日の題材は、CNET Newsです。私はウェブ文書にタグ付けをするという研究をしているのですが、そのための教師データとしてクローリングをします。 photo by Sean MacEntee 要件定義 CNET Newsから全ニュースを保存し、その文をデータベースに保存します。これは、次のようなフローに書き下すことができます。 全URLを取得し、データベースに保存 データベースにある全URLをダウンロードする 保存した全ページを解析して、文をデータベースに保存する という流れです。これらは独立していますから、それぞれどの言語で解析しても構いません。しかし後述しますが、「あとから追いやすくする」「適材適所」といったあたりを気をつけて、言語選択をするべきだと

    Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ
  • Ruby geocoderがすごい - もぎゃろぐ

    住所を緯度経度に直したり、緯度経度から住所を求めたりする操作をgeocodingと言って、Google Maps APIを使うとまあたいていのことはできる。 ロケタッチAPIとか、Yahoo!ジオコーダAPIという手もある。 それはともかく、そのへんをパチパチ叩くコードを書いていて、「こんなのもうとっくに誰かが書いてんじゃないかなー」と思ってぐぐってみたらなんかすごいのが出てきた。 Ruby Geocoder 住所と緯度経度の相互変換はもちろん、距離や範囲の扱い、Google以外のAPIへの対応、キャッシュ処理など、「実装しようかなー。でもめんどくさいよね」とか思って先送りしていたような機能がほとんど全部実装されている。 住所の取得 require 'geocoder' # 日語ロケールに設定 Geocoder.configure( :language => :ja, :units =>

  • Rails

    簡単な注文システムを想定してセッションを進めます。 以下を実行して、アプリの開発に必要となるファイルを生成します。 (rails -h と実行すると、利用可能な rails サブコマンドとサブコマンドの説明が表示されます) rails new chumon 必要なファイルが chumon ディレクトリの中に生成されます。 以降は chumon ディレクトリの中で作業を行います。 cd chumon 以下は Rails3.2 で最初にやらなければならないお決まりの設定です。 Gemfile を編集します。 gem 'therubyracer', :platform => :ruby Gemfile を編集した後は必ず bundle install コマンドを実行します。 bundle install Rails アプリのディレクトリ構造です。 . # |-- Gemfile # アプリで利用

  • これからRubyを始める人たちへ

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

  • おまいらもMacRubyでMacアプリ作ろう - すがブロ

    このエントリはRuby AdventCalender 2011の企画です Ruby Advent Calendar の25日目の記事です。24日目は@kwappaさんのHappy Xmas, Rubyists! | Kwappa研究開発室でした。 ちなみに、12/25と言うと、バカボンのパパや銭形のとっつぁんの誕生日として知られていますね*1。 26日はid:tackunさんのSinatraを使って、RESTFulなWeb-APIを作ってみたい - tackun noteです。 補足 2012/05/30 追記 MacRubyの情報は目次 - MacRuby DoJo (道場)に詳しく載っています。また、MacRubyとXCodeのバージョンによってはうまくプロジェクトが作成できない場合もありますが、そこについてもきちんとケアされていますので、MacRuby の環境を構築しよう - Mac

    おまいらもMacRubyでMacアプリ作ろう - すがブロ
  • そろそろしっかりvimを使う。vimでRubyのコーディングをするために - 南極の図書館

    Rubyのコーディングに向いているIDEは何があるのだろうか。 JavaならばEclipseがデファクトスタンダードになっているし、言語によってはVisualStudioが向いているものもある。 RubyだとNetBeansかAptanaを勧められることが多かったのだが、使ってみると私にはどうもしっくり来なかった。 最終的にvimが一番良いという結論になり、最近は専らvimで書いている。 コーディングをするにあたり、まずは「補完機能」があり「リファレンスにすぐ飛べる」のであれば最低限の機能は満たしていると考える。 今回は、vimでそれを実現するプラグイン、neocomplcacheとvim-refの導入方法を書いていく。 なお、プラグイン自体はRubyに特化したものではなく、他の言語でも使うことができる。 エントリは下記2エントリの続きになるので「その3」にあたる。 そろそろしっかりvi

    そろそろしっかりvimを使う。vimでRubyのコーディングをするために - 南極の図書館
  • brainf*ckでジョジョ言語 - 旧toyoshiの日記

    CSNagoya3周年記念の発表で使ったネタ言語。 ジョジョ言語 バージョン3です。 タイトルでピンと来なかった人はwikipediaのbrainfuckの項目などをご覧下さい。 賢い人がバージョン6を作って素数をカウントするなどしてくれたらいいと思います。 特徴 バトル風言語 バージョン3 ジョジョ言語の構文 オラ … 現在のポインタの値を1増やす 無駄 …現在のポインタの値を1減らす スターフィンガー!、やれやれだぜ…ポインタを1つ右に動かす ロードローラーだ!、貧弱ゥ…ポインタを1つ左に動かす ハーミットパープル…現在のポインタの値をアスキーコードとして出力する 新手のスタンド使いか!…標準入力から1文字読み込み、現在のポインタに書き込む あ…ありのまま 今 起こった事を話すぜ!…ポインタの値が0なら、対応するザ・ワールド!までジャンプ ザ・ワールド!…ポインタの値が0以外なら、対応

    brainf*ckでジョジョ言語 - 旧toyoshiの日記
  • Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介

    Perl基礎文法最速マスターをだいたいそのまま、Rubyに置き換えてみました。 他の言語をある程度知っている人はこれを読めばRubyの基礎をマスターしてRubyを書くことができるようになる…かも知れません。無保証です。 参考: オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.9.2) オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.8.7) ■ 1. 基礎 インタラクティブRuby (irb) irbを使うと、Rubyのプログラムを簡単に練習することができます。 /Users/yhara $ irb irb(main):001:0> puts "hello" hello => nil irb(main):002:0> 1 + 1 => 2 以下の説明は、irbを起動して、自分で試しながら読むと習得が早いと思います。 表示 (print,

    Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介
  • 無料かつ(おそらく)最速であなたのWebアプリケーションを世界に公開する方法 - 愛と勇気と缶ビール

    無料なのは間違いないが、(おそらく)最速にしてあるところがミソ。 魔法使いに必要なもの 基的なRubyの知識 基的なhttp, htmlに関する知識 Googleアカウント 魔法使いに必要でないもの 自宅サーバ レンタルサーバ MVCとかDBとかの知識 前提 アプリケーションはGoogle App Engine(Java)の上で動かす JRuby+Sinatraで構成。JRubyはJava仮想マシン上のRuby実行環境のことで、SinatraはRubyの超お手軽・軽量Webフレームワーク。 そんじゃあ始めます。俺の環境がLinuxなので、WinやMacを使ってる方は適宜読み替えてね。 1、まずGoogle App Engineのアカウントを取得する。アプリケーションを適当に登録する。 Googleのアカウントがない人はまずそこから。既に持ってる人はGoogle App Engineに登

    無料かつ(おそらく)最速であなたのWebアプリケーションを世界に公開する方法 - 愛と勇気と缶ビール
  • The Ruby Toolbox - Know your options!

    Find actively maintained & popular open source software libraries for the Ruby programming languageThe Ruby Toolbox is a catalog of all Rubygems that keeps track of popularity and health metrics to help you choose a reliable library CategoriesTo give you an overview of what open source libraries are available for a given task we group projects for common problems into categories. The catalog itsel

    The Ruby Toolbox - Know your options!
  • Emacs で C とか Perl とか Ruby のデバッグをすると気持ちいい | フッ君の日常

    全国のprintデバッグ愛好家の皆様、こんにちは。VSとかEclipseとかのIDE以外でデバッガを使ったことのない僕がやってきましたよ。 最近、C言語でヒーコラ言ってる真っ最中な訳ですが、C言語だとprintデバッグがやりにくい訳で、デバッガ様の力を借りてみたくなった訳です。という訳で、巷で有名な gdb をちょっと試してみました。 基的な使い方は、以下を参考にしてます。gdb を用いたデバッグ方法GDBウノウラボ Unoh Labs: gdbの使い方 で、なんだか Emacsからも使えるみたいなんで、試してみたんですが、これが使いやすくてびっくり。"M-x gdb" で起動すると、Emacs のソース上に、現在の行が黒三角で、ブレークポイントが赤丸で表示されます。後は、コマンドラインでの操作と同じように、s とか n でステップ実行できます。 あー、もしかして、Perl とか Rub

    Emacs で C とか Perl とか Ruby のデバッグをすると気持ちいい | フッ君の日常
  • Rubyソースコード完全解説 / 青木峰郎

    $Id: index.html,v 1.6 2004/07/20 23:08:12 aamine Exp $ この文書は書籍『Rubyソースコード完全解説』のHTML版です。 ただし初校段階の原稿をベースにしているため、 書籍では修正されている間違いが残っている場合があります。 予め御了承ください。 2004-02-16 に全章を公開しました。 目次 まえがき 序章 第 1 部「オブジェクト」 第 1 章「Ruby言語ミニマム」 第 2 章「オブジェクト」 第 3 章「名前と名前表」 第 4 章「クラス」 第 5 章「ガーベージコレクション」 第 6 章「変数と定数」 第 7 章「セキュリティ」 第 2 部「構文解析」 第 8 章「Ruby言語の詳細」 第 9 章「速習yacc」 第 10 章「パーサ」 第 11 章「状態付きスキャナ」 第 12 章「構文木の構築」 第 3 部「評価」 第

  • 各種チートシートまとめ - goinger的日記

    なんとなく便利そうなのを探してまとめてみた。 リンク切れおそろしい プログラミング関連 C, CPP, C# Cheat Sheets C, CPP, C#のチートシートがたくさんある 249 Prototype Dissected prototype.js チートシート 347 Haskell Cheatsheet Haskell 130 command line ruby cheat sheet ruby commandline チートシート 680 ruby-on-rails-cheat-sheet/ Railsのチートシート 701 google関連 google guide 検索オプションの説明とか 1358 Google Guide Quick Reference Google検索ガイド 9657 google help: cheat sheet google家から提供 40

    各種チートシートまとめ - goinger的日記
  • まつもと直伝 プログラミングのオキテ 第16回 ネットワーク・プログラミング(ソケット編):ITpro

    LinuxのようなUNIX系OSでは,ファイルに対する操作と同様にネットワーク通信を行うために,「ソケット」と呼ばれる仕組みを使います。今回はソケットについて学びましょう。 コンピュータは「電子計算機」という和名が示す通り,来は高速に計算するための機械でした。しかし,現在のコンピュータは,Webブラウジングや電子メールのやり取りなどに使われることが多く,ネットワークと切り離すことができません。最近は「コンピュータを使う」ことと「ネットワークを使うこと」がかなり同義になっているのではないでしょうか。 今回は,ネットワークを介した通信の基礎になっている「ソケット」という概念を紹介します。 ディスクリプタでアクセスが単純に ソケットはネットワーク通信に用いるファイル・ディスクリプタ(file descriptor)です。そこで,ソケットの説明に入る前に,より一般的なファイル・ディスクリプタにつ

    まつもと直伝 プログラミングのオキテ 第16回 ネットワーク・プログラミング(ソケット編):ITpro
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 逆引きRuby - 逆引きRuby

    逆引きRubyRubyを使ってやりたい事から、その方法を調べられる逆引きのリファレンスです。 逆引きRubyはもともとWikiで運用していました。このため、サイトのコンテンツは私以外の多くの方によって作成・編集されたものです。 2017年に静的HTML(jekyll)の管理へ移行しましたが、2018年10月からScrapboxへ移行しました。どなたでも編集いただけますので、ご協力いただける方はよろしくお願いします。 逆引きRuby (https://scrapbox.io/rubytips/逆引きRuby)

  • Twitter4R - Open Source Ruby Project for Twitter REST API [Rubyforge]

    Twitter4Rv0.3.0 The Ultimate Open Source Ruby Library for the Twitter REST API

  • Ruby on Rails チュートリアル集 | Diaspar Journal

    東証プライム上場の唯一のオンライン英会話 初心者向けに日人講師のレッスンも提供 5,000を超える豊富な教材 採用率1%の選りすぐられた講師陣 科学的根拠によるレッスンメソッド レッスンの5分前予約ができる 朝6時から深夜1時まで受講できる レアジョブ英会話は、TESOLという英語ネイティブでない方に英語を教えるための資格に基づいた研修を受けた6,000名のプロの講師が担当します。 初級者から上級者まで安心して英語学習に取組むことができます。 英会話力の向上に必要なレベルや、目的にあった教材が選べます。第二言語理論やCEFR(セファール)に基づいたオリジナル教材がそろっています。 CEFR(セファール)とは、外国語の習熟度や運用能力を測る国際的な指標のことです。大学入試認定の英語検定試験のスコア比較にも利用されています。 レアジョブ英会話は、英語学習に挫折しそうなときは日人カウンセラー

    Ruby on Rails チュートリアル集 | Diaspar Journal