Rubyの配列には、ベクトルのように要素同士を足し合わせるようなメソッドが用意されていない。 普通に足し算すると配列の連結になってしまうし…。 格好を気にしなければいくらでもやり方はあるけれど、できるだけいい感じに書きたい! Vectorクラスを使う a1 = [1, 2, 3] a2 = [4, 5, 6] sum = (Vector.elements(a1) + Vector.elements(a2)).to_a
Choose a project RSpec Behaviour Driven Development framework for Ruby 6 imported versions - 25 notes - Browse - Search Ruby on Rails The open source web application framework for the Ruby programming language 27 imported versions - 1313 notes - Browse - Search Ruby A dynamic, open source programming language with a focus on simplicity and productivity 12 imported versions - 370 notes - Browse - S
基本知識 プロセス プログラムの実行単位 固有のメモリ空間を持つ(リソースを共有しない) マルチプロセスの場合、物理/仮想メモリ領域間のアドレス解決のオーバーヘッドが高い。 スレッド プロセスの実行単位 共通のメモリ空間を持つ(リソースを共有する) マルチスレッドの場合、物理/仮想メモリ領域間のアドレス解決は発生しない。 ユーザースレッド ユーザー空間(アプリケーションが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがあっても、1つのスレッドしか実行されない。 OSカーネルを介さないスレッド切り替えのため、スレッド切り替えに伴うオーバーヘッドが少ない。 仮想VM上で実行されるスレッドをグリーンスレッドと呼ぶ。 カーネルスレッド カーネル空間(カーネルが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがある場合、同時に複数(CPUコア数分)のスレッドを実行できる。 OS
Ruby Business Users Conference 2017
open-uriってちゃんと実装しないとなにかと危険な香りがしますな、という話。 Ruby 2.4.0 リファレンスマニュアル module OpenURI 例えば外部のAPIを叩く必要があって として使っていたとする。 フォームから受け取ったパラメータを入れてopen(なんやら)とする場合、そのままなんでもopen()の中に入れるとかなり危険。 例えばこれはフォームに入れたURLにしたがって、そのウェブサイトに行ってなんか取ってくる例。 コードで言うとこんな感じ。 require "open-air" class PagesController < ApplicationController def search @page = open(search_params[:url]) end private def search_params params.permit(:url) end
巷の噂で Ruby の Array#<< が Array#push よりも速いと聞いたので調べてみた。まずはベンチマークを取ってみた。 require 'benchmark' Benchmark.bm 10 do |r| r.report "push" do 8000000.times do; [].push(1); end end r.report "<<" do 8000000.times do; [] <<1; end end end 結果は以下の通り。 user system total real push 1.570000 0.000000 1.570000 ( 1.579687) << 1.280000 0.000000 1.280000 ( 1.288951) 確かに Array#<< の
HeartRails Tech Blog ハートレイルズのエンジニア、デザイナーによるブログです。 ウェブサービス、スマホアプリ、IoT デバイスの開発に関連する技術的な情報を発信していきます。 github/scientist これは何? github が開発し、つい先日 ver1.0 がリリースされた gem です。 本番環境で新しいコードを試すためのツールです。 例えば以下のようなコードがあったとしましょう。 class Repository def pullable_by?(user) self.is_collaborator?(user) end end このコードを以下のようにリファクタリングしたい、とします。 def pullable_by?(user) has_access?(user) end しかし、新しいコードが元のコードと全く同じように動いてくれるかどうか心配。。。
以前からずっと疑問に思っていた事があった。 ruby の後置 if/unless で条件が偽になった場合でも代入構文が実行されるのはどうしてだろう 例えば以下のコードを irb や pry で実行してみて欲しい。 a = 1 if false 続けて a をタイプする。すると nil が表示される。 僕のこれまでの理解だと後置if/unlessは、ステートメントに作用するのでそのステートメント自体が無効になる、つまり代入自体されなかった事になるという理解だった。ruby のパーサのソースコードを見ても後置ifはステートメントに作用している様だった。 | stmt modifier_if expr_value { /*%%%*/ $$ = new_if($3, remove_begin($1), 0); fixpos($$, $3); /*% $$ = dispatch2(if_mod, $
Flexible TTY components let you solve command line problems in the same way Unix philosophy of focused tools does. You can mix and match components as you please. Composable Each component is an independent piece and can be combined in many ways with other libraries outside of tty ecosystem. Reliable All tty components are well tested to work on all major operating systems and terminal emulators,
In math, a unary operation is an operation with a single input. In Ruby, a unary operator is an operator which only takes a single ‘argument’ in the form of a receiver. For example, the – on -5 or ! on !true. In contrast, a binary operator, such as in 2 + 3, deals with two arguments. Here, 2 and 3 (which become one receiver and one argument in a method call to +). Ruby only has a handful of unary
株式会社LITALICOでWebエンジニア(Rails)を担当しています、@YudaiTsukamotoです。 この記事は『LITALICO Advent Calendar 2016』21日目の記事です。 はじめに 業務なり趣味なりでプログラミングを学習していくと、技術書を読む機会が誰しも有るのではないでしょうか? 初心者や、新人プログラマの時は、対象となる無数の技術書の中から自分にとって良い技術書を探す事は中々難しいのかなと思います。 技術書を選定する基準はいくつか有ると思いますが 「他人がオススメしている」 という選定軸はそれなりに有効であるという事を私は初心者から頑張って勉強した過程の中で学びました。 そこでLITALICO Advent Calendar 2016の21日目の本日、 不詳ながら私が新卒1年目の時に読んだ技術書(サイトも含む)の中から21個をピックアップしてみようかと
12月1日より、日本人で唯一のRailsコミッター兼Rubyコミッターの松田明氏が株式会社GA technologiesの技術顧問に就任しました。 就任にあたり当社若手エンジニアとともにインタビューをしたので、その模様をアップします!(もう少し短くまとめたかったのですが、お話が面白かったのでほぼ丸々載せちゃいます) ── ご自身でも不動産投資をやられているとのことですが、不動産テックに対して興味や、当社顧問として取り組みたいことはありますか? やれることは無限にあると思ってまして、この業界ってとにかくシステム化が遅れてますよね。 僕自身、2〜3年前の大江戸Ruby会議04っていうRubyのカンファレンスの講演で自分で家を建てた経験を無理やりRubyのプログラミングの話に結びつけて喋ったことがあって(Hacking Home)、そのころから不動産テックには興味はありました。 そのとき話したの
mixiグループアドベントカレンダー2016 1日目です。 今回は、自分が今まで利用したRubyでの並列処理を書くためのgemとか知見を紹介します。 機運 先日のRubyKaigi 2016で、Ruby3ではGuildという新しい並列処理のモデル*1が、導入されるというセッションがあったり、concurrent-rubyというgemの開発が流行り初めて居たりと、Ruby界隈でも何となく並列処理がブームきているように感じます。 マルチプロセス/スレッド しかしRubyで並列処理するのは言語の仕様としてそれなりに制限があり、他の言語のようにThreadをバンバン立ててマルチコアで計算!爆速化!!みたいなのは難しいです。 というのも、Ruby1.9からネイティブスレッドは導入されたものの多くのC拡張を使ったgemのスレッドセーフ性が問題となるため、GIL(Global interpreter l
A collection of awesome Ruby libraries, tools, frameworks and software
ActiveAdmin - A Ruby on Rails framework for creating elegant backends for website administration. ActiveScaffold - ActiveScaffold provides quick and powerful user interfaces for CRUD (create, read, update, delete) operations for Rails applications. It's excellent for generating admin interfaces, managing Data-Heavy Applications, creating Widgets or for quick prototyping. ActiveScaffold is completl
前回までの続き。なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 - 達人出版会をまだ読んでいる。遅読。 Unixプロセスとリソースの基礎を再確認した - えいのうにっき プロセスとの情報のやりとりについて再確認した - えいのうにっき プロセスの適切な扱い方を再確認した - えいのうにっき 今回は、Unixプロセスとシグナルの基礎について再確認していく。 Unixシグナル・事始め Unixシグナルの「いろは」 シグナルを再定義する シグナルハンドリングの注意点 Unixシグナル・事始め 前回、子プロセスの終了を待ち受けるのに用いた Process.wait は、実行するとそこで自身(親プロセス)の処理を止めて子プロセスの終了を待った。これは ブロッキング呼び出し と呼ばれる。 では「親は親で何か別の仕事をしたいとき」はどうするかというと、これから見ていくシグナルを上手に使うと実
TensorFlow is an extraordinary open source software library for numerical computation using data flow graphs. It was originally developed by researchers and engineers working on the Google Brain Team within Google’s Machine Intelligence research organisation for the purpose of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く