タグ

Rubyに関するaz1zaのブックマーク (31)

  • バブルソートよりも非効率なソートアルゴリズムを探して ―― ストゥージソートとスローソート - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 恐らく、プログラマの中で配列内の要素を整列させたりするソートにお世話にならなかった人、というのは余り考えられないのではないでしょうか。しかし、とはいえ、大抵はソートを自前で実装せず、組み込み関数であったり、あるいは何らかのライブラリで済ませることが殆どだと思う。 車輪の再発明というよりも、バグとか、自分が考慮していなかった挙動などを避けるために、自前でソートを組むことは余りないのですが、とはいえ、自分なりにソートを実装して見ると、それがどういう特徴を持ったソートであるか、というのがわかりますし、また、ソートというのはいったいどういう操作で実現されるのかという洞察が深まってくるなあ、という実感があったりする。 なので、今回はあるソート二つについての話を書くのが趣旨です。 最高のアルゴリズムはある、だが最悪のアルゴリズムは何か 一口にソートといったところで、ソート自体にも銀の弾丸があ

    バブルソートよりも非効率なソートアルゴリズムを探して ―― ストゥージソートとスローソート - Line 1: Error: Invalid Blog('by Esehara' )
  • 『Rubyによるクローラー開発技法』を書きました - プログラマでありたい

    勉強会やスライドで紹介していましたが、Ruby×クローラーという題材で、『Rubyによるクローラー開発技法』というを書かせて頂きました。RubyEmacsの鬼であるるびきちさんとの共著です。 Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例 作者: るびきち,佐々木拓郎出版社/メーカー: SBクリエイティブ発売日: 2014/08/25メディア: 大型この商品を含むブログ (1件) を見る このを書いた理由 そもそものキッカケは、るびきちさんのエントリーにある通り、SBクリエイティブの編集者さんが、クローラーの作成経験のある人を探していて、私の書いた「オープンソースのRubyのWebクローラー"Anemone"を使ってみる」を読んで打診してくださったというのが始まりです。 私自身も、Webからデータを収集して分析するということは、趣味として長年やってきました。一

    『Rubyによるクローラー開発技法』を書きました - プログラマでありたい
  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

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

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
    az1za
    az1za 2014/05/28
  • 簡単!MacOSXやLinuxにChef,Knife,Berkshelfを一発でインストールしてくれるChefDKの紹介 · DQNEO日記

    Home Subscribe 最近 ChefDKという全部入りパッケージがリリースされたので、これで一発です。 http://www.getchef.com/downloads/chef-dk/ CentOS6だとこんな感じで一発です。 sudo rpm -ivh https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chefdk-0.3.0-1.x86_64.rpm rubyとかrbenvとかgemとかの環境について頭を悩ませる必要がないのでとても楽です。 ちなみにChefDKを使わずに自力でこれらをインストールしようとするとどうなるかというと、すごい時間がかかります。 とくにBerkshelfが依存しているライブラリで"dep-selector-libgecode" というのがものすごい怪物のようなしろもので、コンパ

    簡単!MacOSXやLinuxにChef,Knife,Berkshelfを一発でインストールしてくれるChefDKの紹介 · DQNEO日記
  • 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 #この記事について この記事は、新人向けの研修内容を再編集してお送りします。 この記事の

    新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 - Qiita
    az1za
    az1za 2014/05/10
  • 開発用プロキシ、「CocProxy」が便利 - プログラマでありたい

    CocProxyというツールがあります。名前の通りプロキシサーバーなのですが、用途が開発用です。置換プロキシと言うらしいですが、これがとっても便利です。例えば、クローラーの開発や、HTML,CSS,JavaScriptの修正をする際に、このCocProxyを利用するとダウンロード待ちのイライラが解消され、効率アップ間違いなしです。ローカルのみで完結するのと、Webへのアクセスが必要とするのでは、スピードが数十〜数百倍違います。一回だけでみたら、数百ミリSecの差ですが累積で考えると大きいですよ。 CocProxyとは? Ruby製のProxyServerです。かつ標準ライブラリで動くことを目標としているので、Rubyの環境があれば、ダウンロードして直ぐに使えます。また基的には1ファイルで完結するので、導入も簡単です。Ruby1.9をベースにしていますが、Ruby 2.0でも特に問題なく動

    開発用プロキシ、「CocProxy」が便利 - プログラマでありたい
  • Capistrano3のデプロイフレームワークの使い方 - Qiita

    # Capistranoの設定を読み込む。おまじない require 'capistrano/setup' # デプロイフレームワークを読み込み require 'capistrano/deploy' # `lib/capistrano/tasks' に定義されたタスクを読み込む Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r } このcapistrano/deployが内部でcapistrano/frameworkを読み込みます。つまり、Capistrano3のデプロイ機能には2つのレベルが存在しています。 capistrano/framework もっとも汎用的なデプロイフレームワーク。デプロイの開始、コードのアップデート、システムの公開、デプロイの完了、という流れを定義しているだけで具体的な処理は一切含まない。フッ

    Capistrano3のデプロイフレームワークの使い方 - Qiita
  • 最強の情報収集術!初心者向けRuby+NokogiriでWebスクレイピング徹底解説 - サラリーマン休日副業で月10万円以上目指すページ

    はじめに 情報氾濫の時代、インターネット上には数えきれないほどの情報で溢れています。効率よく情報収集を行うことができたら・・・そんなあなたにオススメしたいのはWebスクレイピング。 プログラミングを使って自動でWeb情報をクローリングし、加工した上で必要な情報を効率よく収集します。 プログラミングと聞いて顔が曇った方も多いかも知れませんが、現在はプログラミングの敷居もかなり下がっています。 Rubyは日語製のスクリプト言語。和製ゆえにドキュメントも豊富です。今回はWindowsな方向けにRubyの導入から実際にサンプルプログラムを動かしてみる所まで詳説したいと思います。 Rubyのインストール Ruby InstallerのHPから「Ruby 2.0.0-p***」をダウンロードします。 RubyInstaller - Homepage インストーラーを実行してください。 日語を選択。

    最強の情報収集術!初心者向けRuby+NokogiriでWebスクレイピング徹底解説 - サラリーマン休日副業で月10万円以上目指すページ
  • Capistrano3で快適デプロイ生活!! - Less is Best

    Capistrano3で快適なデプロイ生活を目指しています。Railsで定数設定ファイルをgitから外して管理する方法。と組あわせれば、最高なデプロイ生活が待っていること間違い無しです。 が、Capistrano3のまとまった情報があまり手に入らず(Capistrano2とどっちかよくわからんし)、導入の際にかなり苦労したので、インストールから設定までをさらしておきます。 環境: Ruby 2.0.0-p247 Rails 4.0.0 Apache Passenger Server:CentOS6.4 公開鍵認証設定済み Capistranoとは Rubyでできたソフトウェアデプロイメントツールです。 Capistranoは分散環境へのウェブアプリケーションのソフトウェアデプロイメントを簡素化および自動化するために設計されています。 アプリのデプロイの際に生じるいろいろな作業をコマンドで自

    Capistrano3で快適デプロイ生活!! - Less is Best
  • 入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい | GREE Engineering

    はじめに この記事はGREE Advent Calendar 2013年の21日目です。お楽しみください! こんにちは、アゴひげがダンディーだと評判の九岡です。GREEでは、JavaScalaを布教するための土台を固めるため、デプロイや監視の仕組みづくりなどを横断的にやっています。今回はその過程で得られた知識を「Capistrano 3の入門記事」という形で共有させていただきます。 この記事ではCapistrano 3の基礎をご紹介します。Capistrano 3はRubyをベースにしたサーバ操作およびデプロイの自動化ツールです。Capistrano 3を利用することで、デプロイなどの複雑なサーバ操作を自動化することができます。ここの記事では、特にデプロイに焦点をあてながら、Capistranoでサーバ操作を自動化する考え方と実現方法をご説明していきます。 Capistrano 3の習得

    入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい | GREE Engineering
  • 入門Chef Solo:15-任意のシェルスクリプトを実行したい - Execute, Script - humangas's blog

    入門Chef Solo - Infrastructure as Code 作者: 伊藤直也出版社/メーカー: 伊藤直也発売日: 2013/03/11メディア: Kindle版購入: 16人 クリック: 1,027回この商品を含むブログ (17件) を見る やりたいことがほかのResourceを使ってもなかなか実現できない場合にExecuteやScriptリソースを使う。 ExecuteやScriptは任意のコマンドやスクリプトを実行できる ほとんど抽象化されておらず、冪等性も自分で担保する Execute, Scriptともに任意のコマンドを実行するResource bash, perl, rubyなど指定したインタプリタを使う場合はScriptを使う Script(bash) 実行ユーザー デフォルトではrootユーザー(正確にはchef soloを実行したユーザー)の権限で動く。 cw

    入門Chef Solo:15-任意のシェルスクリプトを実行したい - Execute, Script - humangas's blog
  • デプロイツール比較 CapistranoとFabric

    by @dekokun on 2013/05/21 23:46 Tagged as: Capistrano, Fabric. 最近、Fabric, Capistranoと立て続けに2種類のデプロイツールを使ってデプロイ環境を構築する機会がありましたので、その際に感じた両者の利点を書いてみたいと思います。 両者の簡単な解説 そもそもCapistrano, Fabricについて、「片方は知っているけど片方は知らないよ」という人がいるかと思いますので、簡単な説明をします。 両方とも何かを知らない人は…「自動デプロイ」とかそのあたりで検索してみるといいんじゃないですかね。 Capistranoとは Ruby製のFabricみたいなものです Fabricとは Python製のCapistranoみたいなものです Fabricは私の中ではデプロイツールという認識なのですが、最近Chefと比較されること

    デプロイツール比較 CapistranoとFabric
  • Webサービスを作りたい人が、素早くプログラミング言語を学べる15サイト - paiza times

    Photo by Daniel Cukier コーディング転職サイトpaizaを運営している関係上、「Webサービスを作りたいけど、プログラミング言語をどこから学んだらよいか?」という質問をよく受けることがあります。今回はプログラマ視点でプログラミングを学ぶときにつまずやすいポイントと、プログラミング言語の基礎を簡単に楽しく学べるサイトをまとめてみました。 最近はオンラインでプログラミングを勉強できるWebサービスが多数登場してきているので、以前よりプログラムを学ぶコストはぐっと下がっています!! 目次 ・プログラミング言語を学ぶときに躓くポイント ・学ぶ言語を選ぶのに役立つサイト ・すぐ書きはじめられるプログラミング学習サイト ・講義型のプログラミング学習サイト ・少しコードに慣れてきてからお勧めのサイト ・さらにスキルアップするのに最適なサイト ・基礎文法をマスターしたいなら(おまけ)

    Webサービスを作りたい人が、素早くプログラミング言語を学べる15サイト - paiza times
    az1za
    az1za 2014/04/25
  • Ruby初心者のCapistranoデプロイ入門 | 開発メモるアル

    Capistranoを使って、Ruby初心者でもRuby以外のソースコードをデプロイできるようになるまでの流れです。 Rubyもよくわからないし、デプロイツールもろくに使ったことないけど、 Capistranoを使ってコードをデプロイしたい。という人に特に向けた記事です。 私自身そういう人でした。 私の理解不足の部分が多々ありますが、とにかくCapistranoを使ってデプロイができることを目的とします。私は今回の方法で、PHPのコードをデプロイしています。 「もう手動デプロイは嫌だ」「デプロイツール使いたい」「なんかデプロイツール使わないとヤバそう」と思っている方々にとってちょうどいい記事になればいいなと。 Capistranoデプロイができるまで(目次) Capistranoってどういうもの デプロイの流れの概要 デプロイ先サーバーとの接続条件 RubyRubyGemsのインストール

    Ruby初心者のCapistranoデプロイ入門 | 開発メモるアル
  • Capistrano(カピストラーノ)でPHPプロジェクトをデプロイ - yamada6789の日記

    Capistrano(カピストラーノ)は複数のリモートサーバにSSH接続して一括操作できる便利なツールです。 色々な用途に使えますが、今回はCapistranoでPHPプロジェクトをデプロイしてみました。 概要図 Capistranoをインストールするサーバは一台だけです。 デプロイ先のアプリケーションサーバではログイン用アカウント(要sudo権限)を事前に作成しておきます。 インストール上の図ではCapistranoをソースコード管理サーバにインストールしています。 Capistranoを動かすにはRubyが必要になりますので、まずはRubyをインストールします。 (Rubyのインストール方法は省略します。) 次に、以下のコマンドでCapistranoをインストール。 $ sudo gem install capistrano 使用方法基的にcapfileに一連の操作を記述し、あとはコ

    Capistrano(カピストラーノ)でPHPプロジェクトをデプロイ - yamada6789の日記
  • ScaleOut | Supership

    2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。件に関する詳細は、プレスリリースをご確認ください。 2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。 件に関する詳細は、プレスリリースをご確認ください。

    ScaleOut | Supership
  • 俺がGitHubでスターを付けたリポジトリ一覧 - Qiita

    GitHubを彷徨っていてよくあるのが、ググったりRuby Toolboxとかで見つけて「これイイじゃんよ!」と思ったら既にスター済み、という奴。 一回、自分がどんなリポジトリにスター付けたのか整理しつつ、更新止まってたり古くなったやつを削除していこうと思う。 それぞれの説明は超適当。基的にいつか使おう的な感じでスターを付けているので、あんまり使ったことあるのが無い。 そもそも良く使うものにはスター付けてないこと多いし…。 大体rubygemsで一部JSのライブラリ、少しvimScalaって感じ。 思い返したようにスター付けてたので、時期がバラバラだけど、基的に下に行く程付けた時期が新しい。 リポジトリ 説明

    俺がGitHubでスターを付けたリポジトリ一覧 - Qiita
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • Rails4.0でangularjsを使ってRESTfulなajaxを実装する - is Neet

    長文注意。 angularjsについて今更ながらに触り始めて色々と感動したので纏めておく。 angularjsがどういったフレームワークかは公式のチュートリアルを眺めてたらぼんやりと把握できると思うので今回その辺の話はあまり触れない。 http://angularjs.org/ angularjsのAPIについては公式のドキュメント含めて様々なメディアやブログに取り上げられているが、導入から体系的に語られてるものはあまり無い印象だったので、僕のブログでは導入から具体的な目的に沿った実装方法を紹介していこうと思う。 ちなみに自分のangularjsへの理解も触り始めて一週間程度なのでだいぶ甘い。 angularjsを一週間やってみた感想 最初の2日くらいがだいぶつらい。 飲み込みが早い人ならすぐに使いこなすのかもしれないが、angularjsはdirective, controller, f

    Rails4.0でangularjsを使ってRESTfulなajaxを実装する - is Neet
  • Railsエンジニア(仮)にジョブチェンジしました - (define -ayalog '())

    2014-02-24 Railsエンジニア(仮)にジョブチェンジしました 日記 開発 Java Rails 2/17から新しい環境で働き始めて*1なんとか1周間乗り切りましたってことで近況報告的な。過去4年間システム開発に携わってきて、それまでJava*2一辺倒だった僕がRailsエンジニア(仮)*3になったお話です。ちなみにJavaは言語でRailsはフレームワークだ!っていうツッコミを貰う前に書いておくと、やっぱりRailsってRubyというよりはRailsって感じなので、この辺はRailsを書いている人なら分かってもらえるかなーと。 Railsエンジニア(仮)にジョブチェンジするためにやったこと まず、大事なことがふたつありました。 上司の理解を得ることが出来てサポートしてもらえること やりたい仕事をするための知識/スキルを持っていること 1については元々僕が転職するときに既に社長に

    Railsエンジニア(仮)にジョブチェンジしました - (define -ayalog '())