Suche senden
Hochladen
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
•
3 gefällt mir
•
4,786 views
Sho Hosoda
Folgen
2013/12/12 のTsukuba.rb の発表資料です。
Weniger lesen
Mehr lesen
Melden
Teilen
Melden
Teilen
1 von 19
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
自動化大好きエンジニアLT会 vol6(2022/02/02)での発表資料です。 もう少し整ったらソースも公開するかもしれません。
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
ssuserfb543d1
CombGig2のスライドです。(2014/12/21)
BOOTがぶっとんだ
BOOTがぶっとんだ
paralleltree
Rubyと機械学習の現状
Rubyと機械学習の現状
Aki Ariga
Ruby
Ruby
Shintaro Abe
Rubyのままで速くなる方法
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Shuyo Nakatani
第1回 複雑ネットワーク輪読会 資料
NetworkXによる語彙ネットワークの可視化
NetworkXによる語彙ネットワークの可視化
Shintaro Takemura
Gitを使ったRoute53の管理
Gitを使ったRoute53の管理
Sugawara Genki
Meguro.rb#3で「Ruby入門書を書いてて得られた知見5選+3α」と題してLTした資料。ちょっと公開用に微調整済。 https://megurorb.connpass.com/event/57119/
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Tsutomu Chikuba
Empfohlen
自動化大好きエンジニアLT会 vol6(2022/02/02)での発表資料です。 もう少し整ったらソースも公開するかもしれません。
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
ssuserfb543d1
CombGig2のスライドです。(2014/12/21)
BOOTがぶっとんだ
BOOTがぶっとんだ
paralleltree
Rubyと機械学習の現状
Rubyと機械学習の現状
Aki Ariga
Ruby
Ruby
Shintaro Abe
Rubyのままで速くなる方法
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Shuyo Nakatani
第1回 複雑ネットワーク輪読会 資料
NetworkXによる語彙ネットワークの可視化
NetworkXによる語彙ネットワークの可視化
Shintaro Takemura
Gitを使ったRoute53の管理
Gitを使ったRoute53の管理
Sugawara Genki
Meguro.rb#3で「Ruby入門書を書いてて得られた知見5選+3α」と題してLTした資料。ちょっと公開用に微調整済。 https://megurorb.connpass.com/event/57119/
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Tsutomu Chikuba
C Extension and GC in Ruby
メモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なこと
Masaya TARUI
mrubyのfiberを試してみた
mrubyのfiberを試してみた
Kindai University
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
Pythonすいーつ部
Pythonすいーつ部
Atsushi Odagiri
http://www.youtube.com/watch?v=YZfqKuWIQeY
計算数学
計算数学
blackenedgold
Ruby舞鶴勉強会 #10
Ruby on Rails での開発で使って良いなと思ったメソッド
Ruby on Rails での開発で使って良いなと思ったメソッド
107steps
TypeSafe OSの試み
TypeSafe OSの試み
Hiroki Mizuno
俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes
Masayuki KaToH
Twitter: https://twitter.com/taichiro_dev Github: https://github.com/tbrand Topaz: https://github.com/tbrand/topaz
Crystal勉強会#4 LT資料
Crystal勉強会#4 LT資料
Taichiro Suzuki
Aizu LT 2017 0x09
Alt2017 1111 hatobus
Alt2017 1111 hatobus
Bus Hato
デスクトップでのRuby活用事例
デスクトップでのRuby活用事例
Yoshiyuki MIKAMI
Railsハイパー実践講座-第35回NaCl勉強会
Railsハイパー実践講座-第35回NaCl勉強会
Narihiro Nakamura
78tch's 10 Favorite Things
78tch
78tch
78tch
エムスリー株式会社での Crucibel 利用事例
Crucible @ M3, Inc.
Crucible @ M3, Inc.
Kazuhiro Sera
社内Lt
社内Lt
Keiichi Kayama
MmapScanner
MmapScanner
Masahiro Tomita
Grunt task Unite-Coffee
Grunt task Unite-Coffee
minoru nakanou
ruby-csharp_script の実装の紹介と将来についてのスライドです。
Ruby と C# をつなぐ
Ruby と C# をつなぐ
107steps
code4lib japan 2020ライトニングトーク資料
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
7/1の29回シェル芸勉強会で話したスライドです
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
xztaityozx
2016/02/14 シェーダだけで世界を創る!three.jsによるレイマーチング GPU の熱でチョコも溶けちゃう!? GLSL シェーダテクニック勉強会 @gam0022
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
Sho Hosoda
スマホにおけるWebGL入門 菅家 洋太 CyberAgent, Inc. -------------------------------- ・WebGLとは ・普及状況 ・セキュリティー問題 ・スマホWebGL対応状況 ・スマホにおけるWebGLの活用方法 ・まとめ
スマホにおけるWebGL入門
スマホにおけるWebGL入門
Yohta Kanke
Weitere ähnliche Inhalte
Was ist angesagt?
C Extension and GC in Ruby
メモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なこと
Masaya TARUI
mrubyのfiberを試してみた
mrubyのfiberを試してみた
Kindai University
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
Pythonすいーつ部
Pythonすいーつ部
Atsushi Odagiri
http://www.youtube.com/watch?v=YZfqKuWIQeY
計算数学
計算数学
blackenedgold
Ruby舞鶴勉強会 #10
Ruby on Rails での開発で使って良いなと思ったメソッド
Ruby on Rails での開発で使って良いなと思ったメソッド
107steps
TypeSafe OSの試み
TypeSafe OSの試み
Hiroki Mizuno
俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes
Masayuki KaToH
Twitter: https://twitter.com/taichiro_dev Github: https://github.com/tbrand Topaz: https://github.com/tbrand/topaz
Crystal勉強会#4 LT資料
Crystal勉強会#4 LT資料
Taichiro Suzuki
Aizu LT 2017 0x09
Alt2017 1111 hatobus
Alt2017 1111 hatobus
Bus Hato
デスクトップでのRuby活用事例
デスクトップでのRuby活用事例
Yoshiyuki MIKAMI
Railsハイパー実践講座-第35回NaCl勉強会
Railsハイパー実践講座-第35回NaCl勉強会
Narihiro Nakamura
78tch's 10 Favorite Things
78tch
78tch
78tch
エムスリー株式会社での Crucibel 利用事例
Crucible @ M3, Inc.
Crucible @ M3, Inc.
Kazuhiro Sera
社内Lt
社内Lt
Keiichi Kayama
MmapScanner
MmapScanner
Masahiro Tomita
Grunt task Unite-Coffee
Grunt task Unite-Coffee
minoru nakanou
ruby-csharp_script の実装の紹介と将来についてのスライドです。
Ruby と C# をつなぐ
Ruby と C# をつなぐ
107steps
code4lib japan 2020ライトニングトーク資料
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
7/1の29回シェル芸勉強会で話したスライドです
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
xztaityozx
Was ist angesagt?
(20)
メモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なこと
mrubyのfiberを試してみた
mrubyのfiberを試してみた
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
Pythonすいーつ部
Pythonすいーつ部
計算数学
計算数学
Ruby on Rails での開発で使って良いなと思ったメソッド
Ruby on Rails での開発で使って良いなと思ったメソッド
TypeSafe OSの試み
TypeSafe OSの試み
俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes
Crystal勉強会#4 LT資料
Crystal勉強会#4 LT資料
Alt2017 1111 hatobus
Alt2017 1111 hatobus
デスクトップでのRuby活用事例
デスクトップでのRuby活用事例
Railsハイパー実践講座-第35回NaCl勉強会
Railsハイパー実践講座-第35回NaCl勉強会
78tch
78tch
Crucible @ M3, Inc.
Crucible @ M3, Inc.
社内Lt
社内Lt
MmapScanner
MmapScanner
Grunt task Unite-Coffee
Grunt task Unite-Coffee
Ruby と C# をつなぐ
Ruby と C# をつなぐ
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
Andere mochten auch
2016/02/14 シェーダだけで世界を創る!three.jsによるレイマーチング GPU の熱でチョコも溶けちゃう!? GLSL シェーダテクニック勉強会 @gam0022
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
Sho Hosoda
スマホにおけるWebGL入門 菅家 洋太 CyberAgent, Inc. -------------------------------- ・WebGLとは ・普及状況 ・セキュリティー問題 ・スマホWebGL対応状況 ・スマホにおけるWebGLの活用方法 ・まとめ
スマホにおけるWebGL入門
スマホにおけるWebGL入門
Yohta Kanke
WebGL Tokyo Meet upで話したスライドです。 WebGLのセットアップからGLSLなどの、Hello Worldをざっくりと解説しています。
WebGLことはじめ
WebGLことはじめ
Kazuya Hiruma
Rubyのソースコードを読んでみよう(入門編)
Rubyのソースコードを読んでみよう(入門編)
baban ba-n
関数型スタイルでのクイックソートを高速化した話(Ruby)です。KLab ALM 2014/07/29 で発表しました。
Immutable List Gem (KLab ALM版)
Immutable List Gem (KLab ALM版)
Sho Hosoda
[120517]自己紹介
[120517]自己紹介
Takahiro Yano
KLab プロトタイピングラボ 2013 で開発したWebサービスの紹介です。 TwitterIDから手軽に名刺を作るサービスです。
Twitter名刺ジェネレータ
Twitter名刺ジェネレータ
Sho Hosoda
three.js の紹介です。 #coinsLT で発表しました。
three.js の紹介
three.js の紹介
Sho Hosoda
名詞に関することを色々と (2012/03/21 @鈴鹿高専 LT大会第4回)
名刺の作り方(+α)
名刺の作り方(+α)
Takahiro Yano
2015-11-21 第5回プログラマのための数学勉強会
データに隠れた構造を推定して予測に活かす 〜行列分解とそのテストスコアデータへの応用〜
データに隠れた構造を推定して予測に活かす 〜行列分解とそのテストスコアデータへの応用〜
Atsunori Kanemura
GLSL勉強会の資料
チョコ溶かす奴
チョコ溶かす奴
翔 石井
2015-05-30(土)「Oculus Rift勉強会 #02」の、LTスライド https://ocuben.doorkeeper.jp/events/24708
子どもがOculusダメな理由を調べてみた
子どもがOculusダメな理由を調べてみた
Hiromichi Yamada
「HTML5+α @福岡」第18回のLTです。
Three.jsで3D気分
Three.jsで3D気分
Toshio Ehara
オリジナルのSION2に手を加えずにハイレゾ化してウェブブラウザで遊べるようにしたお話。
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
Takashi Toyoshima
Unity で パノラマ動画をVR再生 する上での情報をまとめました
パノラマ動画VR再生のあれこれ
パノラマ動画VR再生のあれこれ
MakotoItoh
曲面レイトレ入門
曲面レイトレ入門
Toru Matsuoka
第3回プログラマのための数学勉強会
Yahoo150522
Yahoo150522
kyutoku
レイトレ合宿4!? 実装紹介スライド
レイトレ合宿4!? 実装紹介スライド
レイトレ合宿4!? 実装紹介スライド
Hisanari Otsu
移動しました : https://speakerdeck.com/kumaashi/le-siishadertoy Shaderで遊べる楽しいサイト、ShaderToyを勝手に紹介します。 https://www.shadertoy.com/
楽しいShaderToy
楽しいShaderToy
Masaki Sasaki
The community announcement of grimoire.js. This is first announcement after renaming.
Grimoire.js Community announcement June 20 2016
Grimoire.js Community announcement June 20 2016
翔 石井
Andere mochten auch
(20)
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
スマホにおけるWebGL入門
スマホにおけるWebGL入門
WebGLことはじめ
WebGLことはじめ
Rubyのソースコードを読んでみよう(入門編)
Rubyのソースコードを読んでみよう(入門編)
Immutable List Gem (KLab ALM版)
Immutable List Gem (KLab ALM版)
[120517]自己紹介
[120517]自己紹介
Twitter名刺ジェネレータ
Twitter名刺ジェネレータ
three.js の紹介
three.js の紹介
名刺の作り方(+α)
名刺の作り方(+α)
データに隠れた構造を推定して予測に活かす 〜行列分解とそのテストスコアデータへの応用〜
データに隠れた構造を推定して予測に活かす 〜行列分解とそのテストスコアデータへの応用〜
チョコ溶かす奴
チョコ溶かす奴
子どもがOculusダメな理由を調べてみた
子どもがOculusダメな理由を調べてみた
Three.jsで3D気分
Three.jsで3D気分
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
パノラマ動画VR再生のあれこれ
パノラマ動画VR再生のあれこれ
曲面レイトレ入門
曲面レイトレ入門
Yahoo150522
Yahoo150522
レイトレ合宿4!? 実装紹介スライド
レイトレ合宿4!? 実装紹介スライド
楽しいShaderToy
楽しいShaderToy
Grimoire.js Community announcement June 20 2016
Grimoire.js Community announcement June 20 2016
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
1.
Rubyで連結リスト使うための gemを作った @gam0022
2.
自己紹介 Twitter: @gam0022 情報科学類3年(coins11) @daigoroubot の飼い主 COJT
SWコース Ruby と C# けっこうなんでも書きます
3.
作った動機 Rubyでオーバーヘッドを気にせずに 再帰プログラミングをしたかった。 (情報特別講義の課題)
4.
Rubyで再帰プログラミング Ruby の Array
は 配列で実装されている。 遅い + メモリを消費する 次の操作が 先頭への要素の追加(cons) 連結(append) push などが破壊的操作 再帰プログラミングをするのには致命的
5.
なんとかしたい リストのデータ構造を自分で作ってみた! ImmutableList
6.
ImmutableList 特徴 単方向連結リスト(singly-circularly-linked list) 非破壊的(immutable) Cで実装 (C
Extensions) Rubyで実装すると、オーバーヘッドが多すぎる RubyGemsでは、Cで実装されたLinkedListは見つから なかった
7.
ImmutableList OCaml を意識したメソッド cons head, tail rev_append,
rev, append length nth
8.
Basic
9.
Benchmark 先頭に長さ3のリストを連結するのにかかった秒数 連結回数 Array ImmutableList 10 1.5E-05 2E-05 1000 0.007251 0.00166 10000 0.727542 0.015206 100000 102.080825 0.414083
10.
メモリ効率の良さ Arrayの連結(C = A
+ B) : メモリの使用量が2倍 B A 1 2 3 + 1 2 3 4 4 6 5 8 7 C 5 6 7 8 4 5 6 7 B A 1 2 3 8
11.
メモリ効率の良さ ImutableListの連結(C = A
+ B): BとCはメモリを共有 B A 1 3 2 + 4 6 5 7 8 C 1 2 3 B A 1 2 3 4 5 6 7 8
12.
Quick Sort とは クイックソート 一般的に最も高速なソート
O(n log n)、安定ソートではない アルゴリズム 1. 適当に数(ピポット)を選ぶ 2. ピポットより小さい数を前方、大きい数を後方に分割 3. 2分割されたデータで更に繰り返す
13.
Quick Sort 素朴な実装 tempとか実装上の都合 の変数が多い
(#・ ・) プログラムの動作が追い にくい (#・ ・) 読みにくい (#・ ・)
14.
Quick Sort 再帰版
15.
RubyGemsで公開中 RubyGemとは Rubyのライブラリのパッケージ管理システム
16.
Install コマンド一発で導入可能
17.
ご静聴ありがとうございました 詳しい話はブログで 「ruby immutable_list」で検索 http://gam0022.net/blog/2013/10/22/immutablelist-gem/ http://gam0022.net/blog/2013/10/18/gems-withextensions/
18.
余談 RubyのC拡張は作りやすさは素晴らしい。 しかし、デメリットもある。 Rubyを改良するための大きな変更がしたいときに、C拡張 が足を引っ張る。 効率の良いGCを取り入れたいが、それまでのライブラリが 使えなくなる。
19.
RGenGC GCは重い処理。 現状のRubyは mark&sweep 方式(全探索で遅い) Ruby
2.1 では世代別GCが採用予定 RGecGC 過去のC拡張の互換性を保ちつつ高速化 http://www.atdot.net/ ko1/activities/ RubyKaigi2013-ko1.pdf
Jetzt herunterladen