タグ

inureoのブックマーク (1,502)

  • Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho by BPS株式会社

    要約 メモリ断片化は測定や診断が困難ですが、驚くほど簡単に修正できることもあります。マルチスレッドのCRubyプログラム(mallocのスレッド単位メモリアリーナ)におけるメモリ断片化の原因を追ってみましょう。記事のボリュームは3343語、20分程度です。 単純な設定変更だけで問題を完全に解決できることはめったにありません。 私の顧客のSidekiqプロセスが大量のメモリを消費していたことがありました(1プロセスあたり1 GB程度)。開始当初の各プロセスは300MB程度でしたが、時間の経過とともにじわじわと肥大化してほぼギガバイトレベルにまで達したところで落ち着き始めました。 私は顧客にMALLOC_ARENA_MAXというたった1つの環境変数の変更を依頼しました。「2に設定してください」と。 プロセス再起動後、「じわじわ肥大化」現象はピタリと止みました。プロセスのメモリ使用量は以前の半

    Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho by BPS株式会社
  • なぜrubyは他の言語と比べて遅いのでしょうか?

    回答 (3件中の1件目) Rubyの実行速度に興味があって、15年くらいMRIの開発をしています。興味があるので長い記事になっちゃったことをお詫びします。 遅いと言ったとき、多分「実行速度」の話をしているんだと思いますが、それ以外にも結構いろんな「はやさ」があります。思いつくところで少しご紹介します。 (1) プログラムを作るはやさ Ruby は生産性が高い言語と言われることが多いので、プログラムを作る早さは早い、という評価が一般的です。 Cで書くと2日かかる。実行時間は0.1秒 Rubyで書くと1日かかる。実行時間は10秒(Cの100倍) と、すこし極端な仮定を置いてみると...

    なぜrubyは他の言語と比べて遅いのでしょうか?
  • Rails 4, 5, 6における Security Fix について - Pepabo Tech Portal

    セキュリティ対策室の mrtc0 です。 セキュリティ対策室では、サービスで利用しているパッケージやライブラリ等の脆弱性情報を日々収集し分析しています。 そこで今回は 2019/3/14 に公開された次の3つの Rails の脆弱性の詳細をまとめたいと思います。 CVE-2019-5418 File Content Disclosure in Action View CVE-2019-5419 Denial of Service Vulnerability in Action View CVE-2019-5420 Possible Remote Code Execution Exploit in Rails Development Mode CVE-2019-5418 : File Content Disclosure in Action View ディレクトリトラバーサルです。 rend

    Rails 4, 5, 6における Security Fix について - Pepabo Tech Portal
  • 1台あたり10,000人を捌くRails製Webサーバのチューニング - dely Tech Blog

    SREの深尾です。kurashiru [クラシル] のインフラを担当しています。 タイトルのとおり、クラシルのwebサイトではRailsを使っており、1サーバあたり10,000人程度のアクセスに耐えることができます。実際には余裕を持たせて5,000人/サーバを目安にスケールさせており、TV CMをガンガンやったり、国内外のTV番組で特集されたり、芸能人にSNSで拡散されても動じませんが、実は過去に1度だけWebサイトがダウンしてしまったことがあります。それは2017年3月11日にSmaSTATION!!というTV番組でクラシルが取り上げられた時のことでした。 以下はその時のリクエスト数を表すグラフです。ダウンしてしまったので計測できなかったユーザの数字は含まれませんがそれでもアクセス数は1分で数万人を超えていました。 それまで、Webサイトの負荷対策はあまり行っておらず、2台のWebサーバ

    1台あたり10,000人を捌くRails製Webサーバのチューニング - dely Tech Blog
  • 数値で測るコード品質 - give IT a try

    プロフィールのところにも書いてあるのですが、おいらの目標は「美しく無駄のないシステムアーキテクチャを設計、構築すること」です。 なぜならシステムの保守性や拡張性って、アーキテクチャやコードの品質によって雲泥の差が出ることを、幾度となく痛感してきているからです。 しかし、どんなアーキテクチャやソースコードがキレイなのか、拡張性や保守性が高いのか、っていうのはなかなか客観的に判断しにくいのもたしか。 「俺のコードはあんたのより分かりやすい」 「そうですか??」 「絶対そうやろ!?なんでわからんのや???」 みたいな議論が始まったらたぶん平行線になっちゃいますよね。 そこでツールを使って、コードの品質を定量的に測ってみることにしました。 今回使ったツール 今回使ったツールはこちらです。 SourceMonitor V3.5 http://sourceforge.net/projects/dupl

    数値で測るコード品質 - give IT a try
  • 線形代数の知識ゼロから始めて行列式「だけ」理解する - アジマティクス

    この記事は、線形代数において重要な「行列式」の概念だけを、予備知識ゼロから最短距離で理解したい人のための都合のいい記事です。 そのため、わかっている人から見れば「大雑把すぎじゃね?」「アレの話するんだったらアレの話もしないとおかしくね?」という部分が少なくないかもですが、趣旨をご理解いただいた上でお付き合いください。明らかな間違いに関しては、ご指摘いただけますと助かります。 線形変換 ↑座標です。 座標を変形することを考えます。つまり、座標変換です。 座標変換にもいろいろあって、以下のようにグニュッと曲げたやつ も座標変換には違いありませんが、今回ここで考えるのは線形変換だけにします。線形変換とは大雑把に言えば「すべての直線を直線に保つ」「原点を動かさない」という条件を満たす変換です。 そういう変換には例として、伸ばしたり縮めたりの拡大・縮小(scale)、原点中心に回す回転(rotate

    線形代数の知識ゼロから始めて行列式「だけ」理解する - アジマティクス
  • 魅惑的(Fascinating)なテスティングフレームワーク Spock - A Memorandum

    Spock とは build.gradle HelloSpock 仕様(テストケース)の構造 フィールド fixture メソッド feature メソッド helper メソッド データドリブンなテスト @Unroll data pipe Stack の仕様例 例外の検証 例外とならないことの検証 タイムアウトを適用する Hamcrest matchers を使う リソースのクリーンナップを行う @Shared で共有リソースを利用する Specification に自然言語の名前をつける MOPを適用する feature の実行を制限する @Ignore @IgnoreRest @IgnoreIf @Requires @Stepwise Spock とは Java と Groovy アプリケーションのテスティングと仕様フレームワーク JUnit, jMock, RSpec, Groov

    魅惑的(Fascinating)なテスティングフレームワーク Spock - A Memorandum
  • 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)

    更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基的には変わらないと思います。リンクは可能なものについては日語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive

    肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)
  • DHHはどのようにRailsのコントローラを書くのか | POSTD

    私たちの救世主DHH™は最近の Full Stack Radioのインタビュー で、 Basecamp の最新版で彼がどのようにRailsのコントローラを書いたかを説明しています。下記は、彼のすばらしい話を書き取ったものです。 これまでに思うようになってきたのは、「RESTの原則に従うには、どのタイミングで新たなコントローラを作るべきかを一度決めたら、ほぼ異例なくその原則を遵守するべきだ」ということです。いつだってその方がうまくいくんです。自分の作ったコントローラの状態を悔やむのは決まって、作ったコントローラの数が少なすぎた時です。多くの処理を任せようとしすぎてしまうんです。 そこでBasecamp 3では、ある程度理にかなったサブリソースがあれば、毎回コントローラを分割していきます。フィルタなどの場合ですね。例えば画面があって、それがある状態になっているとします。もしこれにいくつかのフィ

    DHHはどのようにRailsのコントローラを書くのか | POSTD
    inureo
    inureo 2018/08/23
  • 10年オンプレで運用したmixiをAWSに移行した10の理由

    AWS Summit Tokyo 2016 B: Media & Entertainment Track ( 2016/06/02 ) http://aws.amazon.com/jp/summit2016-report/

    10年オンプレで運用したmixiをAWSに移行した10の理由
  • 日本語訳: Presentational and Container Components

    BismuthThere’s a simple pattern I find immensely useful when writing React applications. If you’ve been doing React for a while, you have probably already discovered it. This article explains it well, but I want to add a few more points.とても有益でシンプルなパターンを、Reactを書いているときに見つけました。もちろんあなたもReactをある程度書いたことがあれば、多分同じようなことを既に発見されていることでしょう。Thisこの記事も同じことについて説明しています。ですが、さらにいくつか新しいことを紹介できるとおもいます。You’ll find your

    日本語訳: Presentational and Container Components
  • 全社的な変革を成功させるには、魅力的なストーリーが必要だ

    ガートナーの米国社発のオフィシャルサイト「Smarter with Gartner」と、ガートナー アナリストらのブログサイト「Gartner Blog Network」から、@IT編集部が独自の視点で“読むべき記事”をピックアップして翻訳。グローバルのITトレンドを先取りし「今、何が起きているのか、起きようとしているのか」を展望する。 個人住宅のリフォーム事例を紹介するテレビ番組が、米国で人気を呼んでいる。視聴者はビフォーアフターの変貌ぶりや、途中のいろいろな経緯に興味津々だ。だが、こうした番組を魅力的なものにしているのは、リフォームの背景にあるストーリーだ。それが視聴者を最後まで引き付ける原動力になる。 CIOは、全社的な変革に乗り出すに当たり同じ戦術を使うことができる。従業員が変革を行う理由を理解するほど、独自のビフォーアフターストーリーを作るモチベーションが上がるからだ。 「人々

    全社的な変革を成功させるには、魅力的なストーリーが必要だ
  • ABEJAリブランディングのデザインプロセス - ABEJA Arts Blog

    おひさしぶりです。骨とワニが好きなデザイナー兼アートディレクターの吹上(@takana8)です🐊 去る2月22日、ABEJAは大規模AIカンファレンス「SIX 2018」を開催し、その基調講演でコーポレート・リブランディングを発表しました。 記事では、この発表に至るまでのブランディングプロジェクトの「舞台裏」を、アートディレクターの視点からご紹介します。 1. ブランディングプロジェクト、はじまる ブランディングプロジェクトのはじまりは、2016年の秋に遡ります。 当時はまだ正式なプロジェクトではなく、チームもない(社内に専任デザイナーは1人だけ)、まさに暗中模索な日々😎 絶えず発生する様々なデザイン業務と並行しながら、まずは「現状整理」を粛々と行っていました。経営陣へヒアリングしたり、社内外に散らばった制作物をかき集めたり、「ABEJAをとりまく環境」や「ABEJAらしさとは何か」

    ABEJAリブランディングのデザインプロセス - ABEJA Arts Blog
    inureo
    inureo 2018/05/10
    とってもいい、長丁場お疲れ様でした👏👏👏
  • プログラミングにおける不安と学びのプロセス - 人間とウェブの未来

    僕の場合、実現したいことをコードで書けない時には、ひたすら似たコードを読んで理解して写して…を繰り返す。そのうちに手元に大量の自分のサンプルが溜まっていく。その繰り返しがパターンの細分化を促し、書けるコードの幅を広げていく。書けるコードを気持ちよく書き続けてるだけでは新しいコードは書けないからだ....と、向き合えるようになるには時間がかかった。 書き慣れたコードの延長で書いていると、自分でコードを書けている実感があって、リファレンスなど何も見ずに自分の力でプログラミングできている感があるのだが、ある時これはただ「慣れ」の感覚を高めているように思えた。素早く書けること自体は、それはそれで一種のスキルで素晴らしいのだけど、実現したいことをコードで書けるようになる、という観点で振り返ったときに、どうしても成長を感じなかったのだ。それ以来、まずいと思い、実現したいことを思い描き、それを実現するた

    プログラミングにおける不安と学びのプロセス - 人間とウェブの未来
  • Microservices Maturity Model on Rails

    2018/3/24 Rails Developers Meetup Day 1 / 引用資料のリンクまとめ http://qsona.hatenablog.com/entry/2018/03/26/034451

    Microservices Maturity Model on Rails
  • Node.jsのexportsについて - 30歳からのプログラミング

    Node.jsにはモジュール機能があり、他のファイルの内容を読み込むことが出来る。 だが、何となくでしか使い方を理解していなかったので、調べてみた。 このエントリのコードは全て、v4.4.3で動かした。 基 まず、呼び出される側のファイルで、モジュール化する値やオブジェクトをexportsしておく。 そうすることで、その値やオブジェクトに外部からアクセスすることが可能になる。 呼び出す側ではrequire()関数を使い、ファイルを読み込む。 読み込んだファイルから、exportsされている値やオブジェクトにアクセスできるようになる。 // parts.js var value = '値'; var foo = 'foo'; exports.value = value; // index.js var parts = require('./parts.js'); console.log(p

    Node.jsのexportsについて - 30歳からのプログラミング
  • エンジニア組織のマネージメントってやっぱりみんな気になるよね ~VP of Engineering meetup by CA #2~ | CyberAgent Developers Blog

    エンジニア組織のマネージメントってやっぱりみんな気になるよね ~VP of Engineering meetup by CA #2~ こんにちは、アドテクスタジオ 業務推進室の伊藤 淳貴(@wildtiger0713)です。 前回、11月末に開催してご好評を頂いた「VP of Engineering meetup by CA」の第2回を1/29(月)に開催しました。 VP of Engineering Meetup by CA #2 https://cyberagent.connpass.com/event/76274/ 今回もVP of Engineering = エンジニア組織のマネージメント をテーマとし、チームマネージメントやアジャイルスクラムといった開発手法の話よりも更に一歩俯瞰した視点からの組織作りにおける課題やノウハウ、失敗談などを、CAグループの各社で実際にエンジニア組織

    エンジニア組織のマネージメントってやっぱりみんな気になるよね ~VP of Engineering meetup by CA #2~ | CyberAgent Developers Blog
  • diary/2017/12/15/Ruby biz グランプリ 2017で特別賞をいただきました

    日、Ruby biz グランプリの表彰式が開催され、esaが特別賞をいただきました! (\( ⁰⊖⁰)/) > 各自から一言各自から一言 深谷 @fukayatsu とても嬉しいです。約3年半前に最初のバージョンをリリースした当時は、まさか数年後にこんなことになっているとは思いもしませんでした。ここまでこれたのは、RubyRubyに携わる人々、たくさんのフィードバックを頂いたユーザーの皆様のおかげです。今回の受賞を励みにして、これからもよりよいサービスを提供できるよう努力していきます。 赤塚 @ken_c_lo 大変嬉しいです!Rubyに関わる人達の、作り手自身の楽しさや手触りの良さを大切にするマインドにとても触発され、自分達もそのようなプロダクトを作っていきたいと考えていました。esaは技術面のみならず精神面においてもRubyだからこそできたプロダクトだと感じています。Rubyに関わ

    diary/2017/12/15/Ruby biz グランプリ 2017で特別賞をいただきました
  • 技術書を作るための技術スタック | メルカリエンジニアリング

    Mercari Advent Calendar 2017の3日目はmhidakaがお送りします。 Advent Calendarで空いてるところに収まったら12月3日は日曜日ということで、エンジニア趣味的な話です。 筆者は技術的なブログや書籍を書くかたわら、技術書のためのイベントなどを開いてます。 技術を追求すること、プログラミング、まとめることが好きでモバイル分野で継続的に書籍を出版しています。 内容はおおむね同人誌作りへ適用している技術の話です。 書籍の作り方は出版社によっても違いますが、紹介する内容と同様の作り方をしている商業書籍もたくさんあります。 ここでは著者の目線から出版業界のテクノロジーをのぞいてみましょう。 作る楽しみと読者の視点 著者がを書く動機は人それぞれですが技術を広めたい、たくさん売れたい、自分の知識をまとめたいなど目的を持って書き始めます。 また一方で書籍の目

    技術書を作るための技術スタック | メルカリエンジニアリング
  • ホットペッパービューティーのiOSアプリのフルスクラッチSwiftリプレイス

    ホットペッパービューティーのアプリを担当している外崎です。 エンジニアとして入社し、現在は開発を兼務しつつUXディレクターとして働いています。 はじめに 2017年10月にホットペッパービューティーのiOSアプリのバージョン5.0.0が配信されました。 こちらはObjective-Cで書かれていたアプリをフルスクラッチでSwift(3.2)に書き換えたものになります。 以前に配信されたインタビュー記事でもリプレイスの背景について語られています。 https://www.wantedly.com/projects/78442 今回は年間7000万件以上(2017年11月現在)の予約が行われているホットペッパービューティーでどのようにアプリのリプレイスを行ってきたのかを話したいと思います。 プロジェクトの背景 インタビュー記事にもありますが、僕が新卒で入社して最初の仕事がホットペッパービューテ

    ホットペッパービューティーのiOSアプリのフルスクラッチSwiftリプレイス
    inureo
    inureo 2017/12/06