作家、コンサルタント 全国学校図書館協議会「選定図書」・アフリカ支援「絵本」・Amazonランキング延べ66部門1位 アフリカ2年 ⇨ 香港3年 ⇨石垣島5年目
第3回になります。 記事を書くこと自体に時間がかかってしまうので 見やすい記事にするってのが難しいですね。。 少しずつ改良していきます。 ストックやフォローをして頂けると励みになります。 さて、本題です。 jstatやGCログなどを見てメモリがなかなか開放されない場合は ヒープダンプを取ってメモリの中身を解析することになります。 ヒープダンプの取得 まず、jstatやpsコマンド等で対象のJVMのプロセスIDを取得しましょう。 これで指定した場所にダンプファイルができます。 -dump:live,format=...というようにliveをつけるとGCが起きて コマンド実行時に活きているオブジェクトのみのダンプになるようです。 とりあえず今回はフルで取ります。 ヒープダンプの中身を解析をする 解析をするにはツールを使います。 java標準のjhatやMemory Analyzer、HeapA
今日はがっつりラーメンが食べたい! そんな日ありますよね! 「味噌、醤油、塩、とんこつ…どれを食べようかな? いつものお店に行くのもいいけれど、たまには違ったお店にも行ってみたい!」 でもラーメン屋さんって、都内だけでも無数にありますよね。 高田馬場や池袋のように、ラーメン激戦区だとどこに行くのか迷ってしまいます。 美味しいラーメン屋さんを開拓したいと思っているあなた! 今回は山手線沿いに絞って食べに行ける、究極の絶品ラーメン店7選をご紹介します。 1.これぞ隠れた名店!黄金色の鶏白湯ラーメン 光り輝く鶏白湯を食べたいなら「麺酒処 ぶらり」 澄んだスープの味はしっかりとした鶏の味。 さっぱりした味を想像させる鶏白湯ですが、強い鶏の味からは確実なコクを感じられます。 白濁スープに白髪ネギがたっぷり盛られ、仕上げに赤唐辛子のアクセントが効いています。 駅近ながら路地の奥にひっそりと店を構える佇
1. 株式会社ネクストスケープ 御中 青木 淳夫 & 上坂 貴志 Sansan DDD勉強会 #2 http://connpass.com/event/23174/ 2015.12.16 「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~ 3. 3 大手SIer、テクニカルライター、福井のWebデザイン会社を 経て、ネクストスケープ所属。 プログラマーとしてシステム開発の難しさを感じていた2000 年頃、XPとvbUnitに出会い、アジャイルに傾倒。 その後、Javaでの大規模ウォーターフォール案件でチームリ ーダーを経験したり、Web制作会社でPHPを書いてみたり。 最近はデジタルマーケティングやクラウドソリューションに 携わったりすることが多い。 Microsoft MVP for Visual Studio(2006~) Sitecore MVP(201
We are inviting corporate sponsors to support TokyoRubyKaigi11. The conference will focus on presentations about programming technology, which is a first among regional RubyKaigi. We expect to welcome a large number of talented engineers because of the location in front of Akihabara Station, the relevance of the speakers, and the highly interesting content of the presentations. We strive to increa
Swift 2.1 の SequenceType への LINQ ライクな拡張 2015-12-17 (鈴) 1. はじめに 2. Linq モジュールの構成 3. LINQ メソッドの実装 4. おわりに linq.swift : Linq モジュール・ソース swift-linq-27-12-16.tar.bz2 : linq.swift と fib_test.swift ( §4 ) の詰め合わせ: 2281 バイト, md5: 93a68bbe7b7e1fe4349504a7d6eefb67 1. はじめに 前回「 Swift 2.0 による LINQ to Objects の試作 」で与えた Swift に対する LINQ to Object (以下,単に LINQ) の実装は,その 第4節 で簡単に議論したように標準ライブラリに含まれる構造体 LazySequence (より正
この記事は Vim Advent Calendar 2015 の21日目の記事です. もくてき 本記事では Vim のコマンドの”覚え方”を紹介します. 基本的にはトリッキーな”覚え方”ではなく由来の紹介となります. 例えば J で行連結は Join が元だとか, gfが”goto file”の略だといったことを 知っておくとなにかと憶えやすいと思います. 対象読者 主にこれから Vim を使ってみよう! でもなかなかコマンドを覚えられないっ! という Vim 初心者の方に由来を知ることで少しでも コマンドを憶えやすいようにすることが目的です. 初心者を想定しているのでコマンドの動作などもなるべく紹介していきます. 中・上級者の方には普段何気なく使ってたあのコマンドの由来を知って「フハハハハ」と ほくそ笑んでもらえるような記事になれば嬉しいです. 注意 注意点として公式のものから公式っぽい
by Lenz Grimmer30 June, 1999 rinetd is a simple, but effective tool for redirecting TCP connections. This article describes its basic features and how it can be used for Linux firewalls. 1. Introduction Linux has become very popular as the "swiss army knife" for all kinds of networking purposes. One area where Linux is a viable alternative to commercial solutions is firewalling. The Linux kernel o
DA88 luôn là điểm đến mà bất kỳ cược thủ nào cũng muốn lựa chọn để tận hưởng trải nghiệm tốt nhất. Bạn sẽ có cơ hội tiếp cận nhiều loại hình giải trí hấp dẫn và các dịch vụ tiện ích. Nội dung cập nhật bên dưới đây về địa chỉ sẽ giúp bạn có thêm thông tin trước khi quyết định đăng ký. Cách Thức Liên Hệ Tổng Đài DA88 Cực Nhanh Và Chi TiếtChính Sách Bảo Mật DA88 Đang Áp Dụng Với Mọi Cược ThủChơi game
はじめまして、 pixiv Sketch でプロダクトマネージャー兼デザイナーを担当している @norio です。 今回は学生さんや社外のエンジニアの方からよく質問されるピクシブで新しいプロダクトや新機能がどのように生まれ、作られているのかを実例を交えながらご紹介します。 私は新しいプロダクトの起ち上げを担当することが多く、retime.me、pixiv国際版、BOOTH、pixivFACTORY、APOLLO、pixiv Sketch などの新規プロダクト開発を経験してきました。その知見を元に今回の記事を書いています。 新プロダクト・機能が生まれるパターン ピクシブにおける新しいプロジェクトの始まり方としては下記の2つのパターンがあります。 ボトムアップ型 最近多いのがこちらのボトムアップ型。社員の発案から企画が立ち上がるパターンです。 弊社では社員が自分の考えていることや情報を共有する
この記事は、animateLAB Advent Calendar 2015 13日目の記事です。 こんばんは、kariaです。きょうは昨日の「誕生日なのでMySQLの話をする(その1)」の続きを書こうと思います。 これまでのあらすじ MySQLのデータ(本番環境)を過去のダンプファイルで上書きされちゃった!?どーしよ!? 復旧までの道のり 我々の手元に残されたデータは以下の2つです。 早朝のデータ移行時に使用したダンプファイル MySQLのデータディレクトリ一式(←夕方に上書きされちゃったやつ) 上書きされちゃったやつはもはやどうしようもないし、早朝時点のダンプファイルを使って再構築し直してその日中帯のトランザクションは諦めるか、という案もありました。とはいえ、「諦めって言われてもその間のトランザクションは具体的にどうするんだ、ログから全部洗うか?」という事になりますし、「無くなりました、
// stateの初期値はinitialStateというファイルですべて宣言しています import initialState from 'initialState'; export default function sideBar(state = initialState.sideBar, action) { switch (action.type) { case ActionTypes.OPEN_SIDE_BAR: return update(state, { $merge: { isOpenedSideBar: !state.isOpenedSideBar } }); default: return state; } }; 上のソースはサイドバーの表示非表示のstateを変更するreducerです。(今回の製品にはサイドバーと呼ばれるものがあります。サイドバー内でイベントを発火してダ
z.shをGoで書き換え、Windows対応とパフォーマンスの向上を図ろうとしている話。 なお、たたき台を完成させて華麗に公開しようとしていたところ今日に限って体調を崩してしまったので、未完成です。すみません。 ですので、書いている最中に思ったことを書き連ねます。 最終的に完成しましたら、この記事にも変更コミットをしたいと思います。 なお、進捗は後日こちらでごらんください。 https://github.com/zchee/zgo ローカルの物は未コミットです。申し訳ない。 絶対!! 絶対本家超えてやるぞ!!! z.sh Goアドベントカレンダーをご覧の皆さんであれば、普段の生息地はターミナルの中だと思います。 そのターミナル内で縦横無尽にディレクトリを行き来するためのヘルパースクリプト、それがz.shです。 Bashやzshに対応し、標準のhistoryなどとは別に、今まで行き来したディ
最初に 本来は@takahiromさんが書く日だったのですが。もう埋まっちゃったよ!と僻んでいたら枠もらえました。本当にありがとうございました! @takahiromさんとはある勉強会でお会いしたのを機にPreLollipopTransitionなどで絡み出した縁で仲良くさせて頂いています。@takahiromさんの記事を期待していた方はこちらへおまわりください。 そもそも誰? 本題に入る前に、そもそもお前誰だ?なんでAPTを語る?って人が多いと思うので、自己紹介させて下さい。 Annotation Processing Tool(またはAPT)でのコード自動生成が好き過ぎて自作のステートパターン用APTライブラリを公開しただけでは飽きたらず、AndroidライブラリでAnnotationといえば、AndroidAnnotations(AA)でしょってことで、PRを投げ始めました。ついさっ
Hello, world! @cero_t です! このエントリーはElasitcsearch Advent Calendarの20日目になります。 先日、Elastic{ON} Tour 2015 Tokyoが行われました。 世界各地で行われたイベントの中で最後となる東京では、無料イベントにも関わらず、 セッションは充実しているし、資料が印刷されて、しかも翻訳までされているし、 ランチに人形町今半のお弁当が配られるし 帰るときにもらったノベルティグッズが、なんとElasticロゴ入りモバイルバッテリーだったり、 とんでもないホスピタリティあふれるイベントでした。 Acroquestもelastic社のパートナーとして提携して、今回もデモスポンサーとして参加しましたが それ以外にも何かイベントの盛り上げをお手伝いができないかなと思い、リアルタイムブログに挑戦してみました。 当日のブログ一覧
この記事はGo Advent Calendar 2015の21日目の記事です. 今年もGoコミュニティーから多くのツールが登場した.その中でも異彩を放っていたのがGoogleのDynamic testing toolsチームの@dvyukov氏によるgo-fuzzである. go-fuzzはGo関数のファジングを行うツールである.このツールはとても強力で標準パッケージで100以上,golang.org/x/パッケージで40以上,その他を含めると300以上のバグを発見するという実績を残している(cf. Trophies). 本記事ではこのgo-fuzzの紹介を行う. ファジングとは? Fuzz testing - Wikipedia, the free encyclopedia ソフトウェアの脆弱性検出におけるファジングの活用 「ファジング」とはソフトウェアのテスト手法である.テスト対象となる
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
クックパッドの海外向けのAndroidアプリを開発している @rejasupotaro です。海外チームでは英語圏だけでなく、スペイン語圏やアラビア語圏や、その他いろいろな地域・ユーザーの環境に合わせてサービスをローカライズしながら展開しています。 東南アジアや南米では日本に比べるとネットワークは不安定で遅く、現地に行って自分たちのサービスを使うと読み込みの遅さに愕然とすることがあります。レシピサービスにとって画像の読み込みの速度は重要なので、これまでもレイテンシ、フォーマット、圧縮率、キャッシュ、画像サイズ、リクエストの優先度、プリロードなどさまざまな最適化を試みてきました。今回はスレッドプールのサイズについて考察しました。 非同期処理とスレッドプール Androidには、UIを操作することができる唯一のメインスレッドと、APIや画像のリクエスト、DBの読み書きなどの時間のかかる処理でメ
今年20冊ほどデザイン関連本を新規購入及び再読した中で読んでよかったと思える本を4冊紹介する。 デザインする時の頭のなかの工程を可視化 名著が改訂版として25年ぶりに帰って来た 独学デザイナーが読みたい本 デザイン初心者ならこの本 おまけ:年末年始に読みたい本 デザインする時の頭のなかの工程を可視化 なるほどデザイン〈目で見て楽しむ新しいデザインの本。〉posted with カエレバ筒井 美希 エムディエヌコーポレーション 2015-07-31 Amazon まず一冊目は『なるほどデザイン』。デザイン初級〜中級者にとって丁度良いレベルの書籍。デザインを完成させるまでの工程を図示し、可視化してくれる点がこれまでの書籍にあまりなかった点で良かった。Amazonでのレビューは5、ブクログでは4.71と好評価。 口コミ① アプリが使えるだけのDTPオペレーターから、コンセプトやマーケティング視点
Swift Advent Calendar 2015 - Qiitaの20日目の記事です。 遅くなってしまいごめんなさい。 TL;DL 不変性を保ちつつ、ネストしたデータ構造に対するアクセスをLensの合成で扱える きっかけ 以前、Lens&Prism勉強会 - connpass に参加した際に興味を持ったので今回Swiftで簡易的な実装をしてみました。 to4iki/Monocle また、今回間違って説明していることなどありましたらコメント欄で教えていただけると嬉しいです! Lens もともとはHaskellのlensパッケージが存在していて、 今回参考にしたのは、それをScalaで実装したMonocleのLensです。 (MonocleはLens以外もTraversal, Optional, Prism, Isoを提供しています) Java実装: functionaljava/Lens
TL;DR Jupyter Notebookがアツい! RubyとかElixirも動かしてみたい! Dockerコンテナで動かせば楽! Docker ToolboxだけでOK! Pythonの知識なくても環境構築できる RubyやElixirの知識がなくてもJupyter Notebook上でそれらの言語が扱える Jupyter Notebookについて Jupyter Notebookがキテる!という話は色々なところでなされているため本稿では省略する: Jupyterがすごい勢いでやってくるからお前ら備えとけ(IPython Notebook + R) - Qiita Railsエンジニアに役立つJupyter NotebookとiRuby - クックパッド開発者ブログ 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ このJu
最近 Let's Encrypt が Public Beta になったということで,自分のサイト(https://sonickun.xyz)もSSL化してみた.また,どうせならSSL LabsのテストでA+を取りたいと思いあれこれ試行錯誤したので備忘録として残しておく. Let's Encrypt letsencrypt.org Let's Encrypt は,SSL/TLSサーバ証明書の取得・管理を簡略化できる無料のサービスであり,TLSやHTTPSを普及させることを目的としている.Let's Encryptで取得可能なSSL/TLSサーバ証明書は「ドメイン認証 (DV) SSL/TLS証明書」であり,独自ドメインの所有者であれば誰でも取得可能である.企業認証(OV)SSL/TLS証明書やEV SSL証明書は取得できないが,個人が運営するサイト程度ならDV証明書で十分といえる. Let'
こんにちは!フロントエンド闇祓いの Kuniwak です。 この投稿はmixiグループ Advent Calendar 2015の20日目の記事です。 今年の9月に、スマートフォン Web ブラウザ版 mixi「mixi Touch」の巨大 CSS を Less (CSS プリプロセッサー)でビルドする環境へと移行しました。 書き換えた CSS の行数は、なんと 56,725行 です。😵 ということで、今回は弊社の大規模 CSS → Less 移行事例についてお話しします。 背景 スマートフォン版 mixi は、2010年5月に始まりました。 この頃のスマートフォンは、iPhone 端末であれば iPhone 3GS、Android 端末であれば Nexus One という時期です。 また、スマートフォンの世界では、Webkit ベースのブラウザーが席巻していた時代ということになります。
SharedMemory と Atomic API について このエントリは JavaScript stage 0,1,2,3 Advent Calendar 2015 の 19日目の記事です。 ちなみに stage 1 です。 SharedMemory は SharedArrayBuffer と呼ばれる特殊な ArrayBuffer をインタフェースにして提供されます。さらに、 Atomic API というのはこの SharedArrayBuffer を操作するための Atomic という built-in Object です。 ちなみに Node.js v4.0 以降なら --harmony-sharedarraybuffer と --harmony-atomics で有効になります。 (Worker がないので無意味ですが) 背景 基本的に WebWorker に代表される Work
Microsoft Azure Advent Calendar 2015 の20日目の記事です。 今回はProject Oxfordを使って三倉姉妹(マナカナ)の判別を行いたいと思います。 三倉姉妹とは? 三倉姉妹とは、三倉茉奈と三倉佳奈の双子の女優・タレント・歌手です。 通称マナカナと呼ばれている人たちです。 「左がマナで、右がカナ。」という言葉が出来るほどに判別は難しく、人類がこれまで幾度と無く挑戦し失敗し諦めてきた大きな課題です。 準備としては、 まずBing Search APIを利用してマナカナの画像を集め、 blog.tottokug.com Project OxfordのFace APIを使ってかおの画像を切り出しました。 blog.tottokug.com 今日はついにマナカナを判別する所を実装していきます。 実装するは言い過ぎました。実装は特にしません。 Project
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 概要 つい一ヶ月前に提案された深層学習モデルであるDeep Convolutional Generative Adversarial Networks (以下DCGAN)をchainer上で実装した. 70万枚もの大量のイラストを使ってDCGANにイラストらしさを学習させた. 得られたモデルを利用して,コンピュータにイラストを描かせてみた. 結果としては結構上手く行った.本物と見分けがつかないというレベルではないものの,DCGANは正常にイラストらしい画像を生成できている. ネタが盛大に被って本当につらい はじめに DCGANという画像
ども、@kimihomです。 API に関する基礎的な話で、なぜ API が重要なのか、APIの実装で注意する点について記述した。 今回はAPI開発において最も頭を悩ます、認証の問題について考えてみたい。 API における認証 よくあるログインが必要なページを考えてみていただきたい。 通常のWebアプリケーションであれば、Cookieという仕組みを使って毎回Webサーバーにアクセスするときにsession idというものを送信し、それとユーザー情報を紐付けたデータを取ってくることで、どんなユーザーからリクエストが来たのかをWebアプリケーション側で判断することができる。これにより、私たちはいつも閲覧しているWebアプリケーションが自分専用の画面として見れるようになっている。 これがAPIになると話は違ってくる。Cookieという仕組みが使えないのである。ということで、なんとかしてAPIにア
この記事は、Android Advent Calendar 2015 19日目の記事です。 (Vim Advent Calendarの17日目の記事は期限の3分前に何とかpostできましたが、こちらは初めてのGradleプラグイン開発に手こずってしまい、27時間ほど遅刻してのpostとなってしまいましたすみません) 皆さんは、Androidアプリケーション開発において、テストカバレッジ計測をどのように実施していますか? Android Gradle Plugin 0.10.0からJaCoCoがサポートされ手軽にカバレッジ計測が実施できるようになったため、それを利用されている方も多いと思います。(私もそれで計測しています) カバレッジ計測結果の判定 手軽にカバレッジ計測できるようになった事は良いのですが、その計測結果の判定を自動的に実施できない点を、これまで不満に思っていました。 「計測結果
Domain-Driven Design (DDD) intersects with a broad range of the intellectual heritage in the software design discipline including object-orientation, design patterns and refactoring. And as such, it can be viewed as a synthesis of these knowledge assets tailored towards domain-oriented application software development. Although this view is valid and productive, there could be another way of viewi
The Hacks of Life: The Dangers of Super Smart Compilers Clangの最適化が未定義の挙動を検出してコード片を消し去ってしまったことに引っかかった開発者の嘆き。 今日初めて、RenderFarmのDSF render(global scenaryを作成するのに使っている内部ツール)をClangで最適化コンパイルして実行した。 結果はsegfaultだった。これは驚きだ(そして自身消失だ)。というのも、最適化していないデバッグビルドは問題なく動くし、GCCでコンパイルされた最適化ビルドも正しく動く。-O0ではバグがない(つまり#if DEVコードのバグではない)ので、「最適化は何をやっているんだ」の時間だ。 大量のprintfと試行錯誤の結果、最適化は以下のようなコード片を丸ごとすっ飛ばしていることが判明した。 for(vector<me
opencv_contrib レポジトリに dnn という名前のディレクトリがひそかに出来ており、中を覗いてみると cv::dnn モジュールにDeep Learning関連の実装が含まれていたので軽く試してみました。Google Summer of Code (GSoC) 2015で発表され、GitHubにて実装が公開されたという経緯のようです。 It would be cool if OpenCV could load and run deep networks trained with popular DNN packages like Caffe, Theano or Torch. – Ideas Page for OpenCV Google Summer of Code 2015 (GSoC 2015) * 2015/12/22 追記 12/21にOpenCV3.1がリリースされ
新規サーバに以下の環境を作成する CentOS7.1 PHP 7.0.0 Nginx1.8.0 SELinuxを殺す 一時的に殺しておくsudo setenforce 0 再起動後も殺しておくsudo vim /etc/selinux/config - SELINUX=enforcing + SELINUX=disabled Nginxのyumリポジトリを追加 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm Nginxをinstallする sudo yum -y install nginx 確認用のファイルを作成する vim /vagrantdev/phpinfo.php <?php echo phpinfo(); バーチャルホス
Rubyでニューラルネットワークを使った学習をするバックプロパゲーションのプログラムを試してみたいと思い立ったのでメモしておきます。 今回の記事では、その準備ということでまずバックプロパゲーションが何なのかということから振り返ってみたいと思います。 機械学習に関しては勉強を始めたばかりなので、理解が行き届いてない箇所や勘違いしている部分などたくさんあると思いますので教えてくださいますと幸いですm(_ _)m バックプロパゲーションについて バックプロパゲーションとはなんなのか まず、バックプロパゲーションがなんなのか、というところから振り返ってみたい。 そのためには、ニューラルネットワークについてまず知らなければいけない。 ニューラルネットワークとは、簡潔に説明すると「ニューロセルを複数結合した情報処理機構」である。 では「ニューロセル」とはなんなのか。 ニューロセル ニューロセルはニュー
データを眺めるのが好き 収集している情報 実現方法 データから分かった知見(?) 今後 年末なので、今年買ってよかったものに引き続き、今年やってみてよかった習慣について書いてみたいと思います。 データを眺めるのが好き 昔からデータを眺めるのは好きだったんですが、今年の5月くらいから自分に関するデータをとにかく収集してみました。可視化することで何か有益な視点だったり、生活の改善点が見つかるのではないか、という目的です。色んなデータを集めまくった結果、以下のようなグラフができあがります。ちょっと画像が小さいですが、毎日の歩いた歩数や体重、気温、録画した番組名、自宅マシンの負荷状況などが載っています。 収集している情報 上の画像ではとりあえずBlogに上げれるようなデータしか見せていないですが、収集している情報としては以下のようなものがあります。使用しているスクリプトで公開できるものはgithu
1つのプロジェクトが終了した後には、「振り返り」の機会を設けるべきです。今回は、振り返りの進め方や意義について取り上げます。以下、サイボウズ株式会社のオウンドメディア「サイボウズ式」のこちらの記事より転載いたします。 チームで長く仕事をしていれば、失敗の1つや2つは必ずするものです。 実態とかい離した計画をたててしまったり、コミュニケーションのやり方がまずくて無駄に時間を食ってしまうなど、多かれ少なかれチームでの仕事には失敗がともないます。すべてが計画どおりに進み、最後までトラブル1つ発生せずに終わるプロジェクトなどまずありません。 ですので、チームが何らかの失敗を犯すこと自体を嘆いてもあまり意味がありません。人間は失敗をする生き物です。チームが人間によって構成されている以上、一切失敗をしないチームをつくろうなどとは考えるべきではありません。 もっとも、「同じ失敗を繰り返す」チームは最悪で
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>タイトル | サイト名</title> <meta name="description" content="ディスクリプション" /> <meta property="og:type" content="website" /> <meta property="og:title" content="タイトル" /> <meta property="og:image" content="/img/icon.png" /> <meta property="og:url" content="http://example.net/" /> <me
[edit] 要約 繰り返しを行なうクラスのための Mix-in。このモジュールのメソッドは全て each を用いて定義されているので、インクルードするクラスには each が定義されていなければなりません。 Array, Hash, Range, Enumerator等のクラスで、 Enumerableモジュールはインクルードされています。ただし、効率化のため、そのクラスでEnumerableと同名・同等の機能を再定義(オーバーライド)しているケースも少なくなく、特にArrayクラスでは同名のメソッドを再定義していることが多いです。 目次 インスタンスメソッド all? any? chain chunk chunk_while collect collect_concat compact count cycle detect drop drop_while each_cons each_
※この説明では関数型プログラミングの部分について触れていませんが、Rxへの入門の準備という目的をややこしくしてしまうと思ったので省いています。 (私はObservable Streamを外部状態に依存しない書き方で使うことで安定して綺麗なコードを書ける、みたいな理解の仕方をしています) 実装例 長々と個人的な解釈を書き連ねてきたので、この辺で実際のコードに落とし込んでみたいと思います。 ここではマークダウンエディタを実装している想定で、ユーザーのキーボード入力イベントから、`(逆クォート記号)で囲まれた文字列を spanタグで囲んだhtml文字列に変換するような処理を実装します。 ただし、変換したhtml文字列をその度に描画していると描画コストが掛かり過ぎてしまうという想定で、 500ms毎に最新のhtml文字列を検出したいという仕様があるとしました。 準備 まず、ユーザーのキーボード入力
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く