Ruby・Mruby活用ガイドブックを発刊します ~Iot時代における

Total Page:16

File Type:pdf, Size:1020Kb

Ruby・Mruby活用ガイドブックを発刊します ~Iot時代における 平成27年 5月21日 担当:参事官(電子・情報産業担当) 宅見 幸一 TEL (082)224-5630 Ruby・mruby 活用ガイドブックを発刊します ~IoT時代における開発環境変化に向けて~ 中国経済産業局では、地域企業の生産性向上や競争力強化に資することを目的として、新たな 時代に適したプログラミング言語「Ruby」および「mruby」の活用に関するガイドブックを発刊 いたしました。 【ガイドブック発刊の背景と趣旨】 多種多様なモノがネットワーク化された IoT(Internet of Things)の世界では、あらゆる産 業分野において、多様なデータを活用しながら、分野を超えた関係者とともに、短期間で試行 錯誤しつつ製品やサービスをリリースすることが、ビジネスイノベーションを起こすための重 要なカギとなります。 また、IoT の状況下では、人が介在せず、ネットワークに繋がれた機器同士が相互に情報交換 や管理・制御等を行う機器間通信(M2M=Machine to Machine)が想定され、ネットワーク接続 機能の搭載要求がさらに広範囲な機器へと拡大することに伴い、組込みシステムのアプリケー ションも複雑になるため、システム開発には生産性の高いプログラミング言語の使用が適して います。 Ruby は日本発のプログラミング言語として初めて、2012 年 4 月に ISO/IEC 国際規格に承認 されました。Ruby の高生産性を引き継ぎつつ、組込みシステム開発向け機能を追加した 軽量 R uby(mruby)は、単純比較でC言語の最大 3.9 倍の生産性を誇り、かつC言語で開発された既 存のシステム資産と高い互換性があり、実装時に特定の OS に依存しない、といった特徴を持ち ます。 以上のような状況に鑑み、Ruby・mruby の特徴を洗い出し、これまでに活用されてこなかった 分野での利活用の可能性や、新たな市場分野への参入時の条件や取引慣行等を明らかにした上 で、Ruby・mruby を使用したシステム導入時の課題を抽出し、必要な環境整備に繋げることを目 的に調査事業「IoT時代を担うM2M領域への“Ruby(mruby)”の新規参入可能性調査」を実 施いたしました。 その結果、Ruby 技術者の人材確保が困難であること、新たなテクノロジーに対する不安感 (情報不足)など、非技術的要因により導入を躊躇するケースも多いことが判明しました。そ こで、あらゆる産業の経営者、管理者、技術者向けの導入編資料として、「Ruby・mruby 活用ガ イドブック」を発刊しました。 1 あらゆる産業の経営者、管理者、技術者向け Ruby・mruby 活用ガイドブック (IoTで時代がRuby・mrubyに追いついた) 発行:中国経済産業局 協力: 協力:NPO軽量Rubyフォーラム 目次 経営者の方へのメッセージ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・1 IoT(Internet of Things)による状況変化 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・2 IoTシステムの概念図とRubyとmrubyの活用範囲 ・・・・・・・・・・・・・・・・・・・・・・・3 Rubyの強み~開発スピードが速まる ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4 IoT時代の開発言語mruby ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 5 Ruby・mrubyの支援・推進体制図 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・6 「Ruby・mrubyについてもっと知りたいチェックリスト」 Ruby・mrubyについてもっと知りたい~技術的な相談・情報入手先・・・・・・・・・・・・・・・・・・7 Ruby・mrubyについてもっと知りたい~ビジネスパートナーを探す・・・・・・・・・・・・・・・・・・・8 Ruby・mruby についてもっと知りたい~活用事例、技術者向け情報、資格試験・・・・・・・・9 Ruby・mrubyについてもっと知りたい~セミナー(人材育成、資格取得等)> ・・・・・・・・・10 Ruby・mrubyについてもっと知りたい~Ruby最新事例 ・・・・・・・・・・・・・・・・・・・・・・・11~14 Ruby・mrubyについてもっと知りたい~mruby最新事例 ・・・・・・・・・・・・・・・・・・・・・・15~16 <経営者の方へのメッセージ> 習得しやすく、開発にスピードが要求されるIoT時代にピッタリのRuby 多種多様なモノがネットワーク化されたIoT(Internet of Things)の状況下では、ITに特化した人材のみならず、課題設定・解決能 力を持った多様な分野の専門家が、あらゆるデータを活用しながら、分野を超えた関係者と共に短期間で試行錯誤し、いかに素早く 製品やサービスをリリースできるかがカギとなります。このガイドブックは、IoTや、ドイツのインダストリー4.0の動きに代表される生産 工程のデジタル化などの、今後避けて通れないIT環境とビジネスの在り方の変化を捉え、ビジネスイノベーションを起こしていくため には、Rubyやmruby(軽量Ruby)の活用が有効であることを理解頂き、活用に繋げて頂くことが目的です。 Webアプリケーションの分野や海外で高い評価 Rubyは、まつもとゆきひろ氏が1993年より開発している日本発のオブジェクト指向スクリプト言語であり、Smalltalkのような本格的 なオブジェク ト指向機能と、Perlのようなスクリプト言語としての手軽さを併せ持ち、国内はもとより、海外でも高い評価を得ていま す。近年では、David Heinemeier Hansson氏によって開発され、2004年に発表されたWebアプリケーションフレームワークであるRuby on Railsの流行に伴い、Webアプリケーションの分野で特に広く利用されていますが、今後はより幅広い分野に普及していくことが専 門家の間でも期待されています。 複雑化・ネットワーク化される組込みシステム開発には生産性の高いmruby Rubyはプロトタイピングやアジャイル開発に向いた言語であるため、シリコンバレーにおいては研究開発や試作品開発などの分野で 人気の高い言語となっています。また、M2M領域における組込みシステム開発では、ネットワーク接続機能の搭載要求がさらに広範 囲な機器へと拡大することにより、組込みシステムのアプリケーションも複雑化・ネットワーク化されるため、Rubyやmrubyのような生 産性の高いプログラミング言語の使用が適しています。 Rubyは、ISO/IEC 国際規格に承認された言語 Ruby は日本のプログラミング言語として初めて、2012 年 4 月に ISO/IEC 国際規格に承認されました。Ruby の高生産性を引き継ぎ つつ、組込みシステム開発向け機能を追加した mrubyに関しては、単純比較でC言語の最大 3.9 倍の生産性を誇り、かつC言語で 開発された既存のシステム資産と高い互換性があり、実装時に特定の OS に依存しない、といった特徴を持っています。 Ruby・mrubyを活用することによって皆様のビジネスイノベーションと競争力強化につなげて頂くことを願っています。 1 <IoT(Internet of Things)による状況変化> IoT(Internet of Things)は、あらゆるモノがインターネットを通じて接続され、モニタリングや コントロールを可能にするといった概念・コンセプトのことで、衣服(ウェアラブルデバイス)や 自動車(スマートカー)、家屋(スマートハウス)など、あらゆるものがスマート化され、かつ、 必ずしも人を介さず、機器同士が自律連携することが想定される。 多種多様な潜在的ニーズに訴えかけるため、IT部門と事業部門、ITベンダとITユーザ、 または異なる分野の専門家同士が、きめ細かくスピード感を持って製品・サービス開発を 行うことが必要。 組込み・モバイル・クラウドがネットワークで接続されるようになる。 出所(図表):経済産業省商務情報政策局資料 2 <IoTシステムの概念図とRubyとmrubyの活用範囲> アプリケーションでは、開発スピード ビッグデータ解析には、データの抽出、並べ替え、 が速く、 システムでの実績が グループ化、性質や関係を知る等のような処理が Web 多い が適している 発生するので、プログラムが書きやすく、アルゴ Ruby リズムが明確なRubyが適している クラウド Ruby on Railsを使えば美しい デザインのUIを作成できる ビッグテータ アプリケーション ネットワークやサーバ制御等の Ruby 分野は、Rubyがよく使われてい て強みを発揮している 広域ネットワーク HEMS・BEMS フィールドサーバ ホームサーバ 等 ゲートウェイ ユーザ ローカルサーバ インタフェース ウェアラブルデバイス フィールドセンサー mruby 機器内蔵センサー 近距離無線ネットワーク 監視カメラ 等 スマートフォン ウェアラブルデバイス 機器内蔵インタフェース センサー アクチュエータ 公共端末 等 各種機器・装置 シンプルな文法なの mrubyは、既存C言語資産との 出所:IPA/SECの講演資料を元に作成 で、保守性も高い 相性がよい上に、試行錯誤しな がらの開発が可能 3 <Rubyの強み~開発スピードが速まる> 1.Rubyの特徴 ●コンピュータの都合よりも人間の都合を優先 –高い生産性 ●言語ではなくプログラムをシンプルに – Rubyを使うのは簡単 2.Rubyを使うメリット ● 可読性が高い – プログラムが書きやすい、 プログラムが読みやすい – 抽象化により、アルゴリズムが明確になる ● プログラムの行数が少ない – 不具合の埋め込みが少なくなる、 開発スピードが速まる ● 他社と差別化できる。企業の先進性をアピールできる 3.開発・保守体制 ●オープンソースソフトウェア –企業ではなく個人による開発、開発者の大部分はボランティア ●自由な開発スタイル –多様な機能の発展 <参考:RubyとJavaの比較> 開発期間が4ヶ月と決 められていた。短期間 で開発を完了させるた め、Ruby on Railsを採 用した。 出所:U社がBEMS開発時に採用言語を 比較した結果(講演資料より) 4 <IoT時代の開発言語mruby> ・変化の激しいAPL(アプリケーション)開発に迅速に対応 ・ラピッドプロトタイピングに最適 ・インターネット時代の新プラットフォーム <mrubyの特徴> 1.高い生産性 2.組込みに特化 IoTでの開発に必要になる組込み開発に特化 ・省リソースで動作 ・中間言語化しておりOSを選ばず ・メモリ管理も組込みを考慮 ・既存C言語アプリ資産の有効活用可能 3.Rubyの良さを生かしたmruby ・NW、DBへのアクセス、GUI開発などの効率的実施 ・操作しやすくプロトタイピングに最適 ・IoT開発の情報制御部分に最適 <進化するmruby> ・120を超えるライブラリがさらに発展中 ・デバッガ対応 (2014.11) 5 <Ruby・mrubyの支援・推進体制図> 開発コミュニティやスポンサーのみならず、国、自治体、産業支援機関、学校などがRuby・mrubyを応援しています。 Ruby・mrubyで成長 ユーザ企 業、 利用者 SIベンダー <mruby> 開発コミュニティ 九州大学(福田晃教授) 認定システムインテグレータ 研究開発 九州工業大学(田中和明 先行的な開発 <Gold 22社> Ruby Association 准教授) 人材育成 次々頁に社名を掲載 利用する企業 理事長 まつもとゆきひろ の支援など <Silver 66社> 福岡県Ruby・コンテ 標準維持事業 次々頁に社名を掲載 情報発信事業 ンツビジネス振興 会議 Gold資格試験はオブジェクト指 福岡県 支援 向等の理解も問われ難しい。 Ruby技術者 事業者認定制度 軽量Ruby Gold技術者が一定数以上いる 認定試験事業 ことが認定システムインテグ フォーラム レータGoldの条件である。 コミュニティ 軽量Rubyの機能拡充 開発支援事業 支援事業 Sponsors 研修、セミナー実施 (Platinum Gold Silver) 支援 イベントへの出展 11社 21社 45社 周辺ツールや業種別ライブラリ拡充 教育・人材育成 島根県 松江市 利用する企業 しまねOSS協議会 の支援 しまね産業振興財団 研究、情報発信 島根大学Ruby・OSS プロジェクトセンター 経済産業省 中国経済産業局 (独)情報処理推進機構 松江高専(原副校長) 6 ・ についてもっと知りたい <Ruby mruby ~技術的な相談・情報入手先> Rubyは黒色 お気軽にご相談ください! mrubyは緑色 ●一般財団法人Rubyアソシエーション ●特定非営利活動法人 軽量Rubyフォーラム 〒812-0013 福岡市博多区博多駅前1-17-1福岡県東総合庁舎5F 福岡県Ruby・コンテンツ産業振興センター Tel 092-483-7770 http://forum. mruby.org/index.html ●認定システムインテグレータ(Rubyの高い技術を持った企業です) →8頁をご覧ください <公的セクター> ●島根県商工労働部産業振興課情報産業振興室 ●松江市産業観光部 まつえ産業支援センター ●福岡県商工部新産業振興課 企画監(Ruby ・コンテンツ産業政策担当) ●福岡県Ruby・コンテンツビジネス振興会議 ●九州工業大学大学院情報工学研究院機械情報工学研究系 7 <Ruby・mrubyについてもっと知りたい~ビジネスパートナーを探す> 連絡先一覧→ http://www.ruby.or.jp/ja/certification/sier/ Ruby Association Certified Ruby Association Certified System Integrator Silver System Integrator Gold 株式会社アールラーニング 株式会社トランプソフト 株式会社ネットワーク応用通信研 株式会社アクティブネットワーク 株式会社インネット 究所 株式会社アーチ 日本ユニシス・エクセリューションズ株式会社 株式会社富士通ソーシアルサイエ 株式会社北見コンピューター・ビジネス 株式会社アクトシステムズ ンスラボラトリ 株式会社BSC アルカディア・システムズ株式会社 株式会社DTS 株式会社ジェイテック 株式会社ケーシーエスキャロット 株式会社エヌ・ティ・ティ ピー・シー 株式会社テクノプロジェクト 株式会社LASSIC コミュニケーションズ 日本アイティディ株式会社 株式会社RAWHIDE. 株式会社トランスネット リバティ・フィッシュ株式会社 さくら情報システム株式会社 株式会社ケイケンシステム 株式会社サイバーミッションズ 株式会社島根情報処理センター 株式会社サムブーク 株式会社プロビズモ 株式会社日立ソリューションズ・クリエイト サイバーコム株式会社 シーエスエヌ株式会社 フロイデ株式会社 株式会社インフォメーション・ディベ 株式会社コルモ アウェイク・ビジネスソリューション株式会社 ロプメント 株式会社富士通システムズ・イースト 株式会社シー・エス・イー 株式会社日立ソリューションズ 株式会社マツケイ 株式会社クランディム 株式会社ファインディックス 株式会社システム工房エム 富士アイティ株式会社 株式会社万葉 株式会社両備システムズ 株式会社アイ・ディ・エス 株式会社システムリンク 株式会社セブン・シーズ 株式会社エクステック 株式会社ヒューマンネットワーク べニックソリューション株式会社 株式会社エム・アイ・シー 株式会社ゼネット 株式会社テイジイエル 株式会社SSLパワードサービス リコーITソリューションズ株式会社 株式会社テクノブレーン Framgia Vietnam CO.,LTD アドソル日進株式会社 SETソフトウェア株式会社 株式会社ミライト情報システム 株式会社ワコムアイティ ニフティ株式会社 株式会社カシックス 株式会社日立ハイシステム21 エボルテック株式会社 株式会社ケー・エス・イー 株式会社アピリッツ セントラルソフト株式会社 株式会社日本ハイソフト 株式会社インフォコム東日本 日本ユニシス株式会社 コンテンツ・プランナー株式会社 株式会社永和システムマネジメント テラインターナショナル株式会社 エヌ・ティ・ティ・コムウェア株式会社 株式会社FM.Bee 株式会社ウィルド 22社 株式会社日本ピュアシステム 株式会社クレオネットワークス 株式会社テクノアイ 株式会社アイティープロデュース センターフィールド株式会社 株式会社八雲ソフトウェア 株式会社Cuon 株式会社トスコ 社 株式会社アルメディア・ネットワーク 株式会社パーク 66 8 <Ruby・mrubyについてもっと知りたい~活用事例、技術者向け情報、資格試験> 内容 URL <活用事例等> Rubyの活用事例紹介 (Rubyアソシエーション) http://www.ruby.or.jp/ja/showcase/ フクオカRuby大賞受賞事例 http://www.digitalfukuoka.jp/ (ふくおかRuby・コンテンツビジネス振興会議) ETアワード2013スマートエネルギー部門「優秀賞」受賞事例 http://www.kumikomi.net/archives/2013/12/in15ruby.php (Tech Village) <技術者向け情報> ルビーツールボックス https://www.ruby-toolbox.com/ Rubyとは (Rubyアソシエーション) http://www.ruby.or.jp/ja/tech/introduction/ インストール(Ruby、Webアプリケーションフレームワーク、開発 http://www.ruby.or.jp/ja/tech/install/ 環境) (Rubyアソシエーション) 開発メニュー (Rubyアソシエーション) http://www.ruby.or.jp/ja/tech/development/ 開発ツール(バージョン管理システム、バグ/課題管理システ ム、レグレッションテストツール、自動デプロイツール) (Rubyア http://www.ruby.or.jp/ja/tech/development_tool/ ソシエーション) GET mruby (軽量Rubyフォーラム) http://forum.mruby.org/ (軽量Rubyフォーラム) http://forum.mruby.org/download/source/mruby-1.1.0.tar.gz (GitHub) https://github.com/mruby-Forum/mruby mrubyデバッガの紹介(講演資料) (slideshare) http://www.slideshare.net/kazuakitanaka391/ruby-44092362 mrubyプログラム言語Rubyによる組込みソト開発(講演資料) http://forum.mruby.org/doc/mruby-141121135812-conversion-gate01.pdf (軽量Rubyフォーラム) <教育、認定試験制度> Rubyアソシエーション認定教育機関 (Rubyアソシエーション) http://www.ruby.or.jp/ja/certification/education/ Ruby技術者認定試験制度 (Rubyアソシエーション) http://www.ruby.or.jp/ja/certification/examination/ 9 毎年実施は黒色 <Ruby・mrubyについてもっと知りたい~セミナー(人材育成、資格取得等)> 単発実施は緑色 2013年~2014年度の実績を紹介しています。 2015年度以降の日程等については、主催者のホームページ等でご確認ください。 日程 タイトル 主催者 場所 1月15日 RubyとCloudで生み出す新ビジネス Rubyアソシエーション 大阪 3月8,15 軽量 Ruby(mruby) 組込み入門セミナー Ruby ビジネス推進協議会 大阪 7月16日 Rubyビジネスフォーラム Rubyビジネス推進協議会 大阪 「ものづくり小規模事業者等人材育成事業」指 10~11月 リバティ・フィッシュ株式会社 大阪 定講習 11月13、14 RubyWorld Conference 2014 RubyWorld Conference 開催実行委員会 松江市 ET2014 スペシャルセッション 11月20日 mrubyプログラム言語Rubyによる組込みソト開 JASA 東京 発 長崎、鹿児島、熊本、 11~1月 軽量Ruby利活用セミナー 九州経済産業局 宮崎、佐賀、大分 12月8日 軽量Ruby(mruby)入門コース ルネサス 大阪 1月29日 Rubyビジネスセミナー大阪 Rubyアソシエーション 大阪 1月30日 Ruby東京プレゼンテーション 福岡県Ruby・コンテンツビジネス振興会議 東京 2月25日 Ruby技術者認定試験合格者ミーティング Rubyアソシエーション 東京 春、夏 Ruby合宿(大学生、高専対象) 島根県商工労働部産業振興課 松江市 3月11日 Ruby・mrubyビジネスセミナー 福岡県Ruby・コンテンツビジネス振興会議 福岡 夏休み 松江市 中学生、高校生Ruby教室 松江市産業観光部まつえ産業支援センター 松江市 10 < Ruby・mrubyについてもっと知りたい~Ruby最新事例> 株式会社日立ソリューションズ http://www.hitachi-solutions.co.jp/ O2O(Online to Offline)マーケティングのソリューション開発にあたり、競争優位を見出すため市場投入スピードが重視された。Ruby on Railsとクラ ウドの活用により、開発期間を2分の1の3カ月に短縮するとともに開発コストを4分の3に削減することができた。 O2Oソリューションの開発にRubyを採用することで、短期間、低コストを実現した『ReBee』 ニーズおよび解決したかったこと ・O2Oソリューション。スマートフォンアプリを活用、リアル店舗への集客を促進するCRMソリューション
Recommended publications
  • Tomasz Dąbrowski / Rockhard GIC 2016 Poznań WHAT DO WE WANT? WHAT DO WE WANT?
    WHY (M)RUBY SHOULD BE YOUR NEXT SCRIPTING LANGUAGE? Tomasz Dąbrowski / Rockhard GIC 2016 Poznań WHAT DO WE WANT? WHAT DO WE WANT? • fast iteration times • easy modelling of complex gameplay logic & UI • not reinventing the wheel • mature tools • easy to integrate WHAT DO WE HAVE? MY PREVIOUS SETUP • Lua • not very popular outside gamedev (used to be general scripting language, but now most applications seem to use python instead) • even after many years I haven’t gotten used to its weird syntax (counting from one, global variables by default, etc) • no common standard - everybody uses Lua differently • standard library doesn’t include many common functions (ie. string.split) WHAT DO WE HAVE? • as of 2016, Lua is still a gold standard of general game scripting languages • C# (though not scripting) is probably even more popular because of the Unity • Unreal uses proprietary methods of scripting (UScript, Blueprints) • Squirrel is also quite popular (though nowhere near Lua) • AngelScript, Javascript (V8), Python… are possible yet very unpopular choices • and you can always just use C++ MY CRITERIA POPULARITY • popularity is not everything • but using a popular language has many advantages • most problems you will encounter have already been solved (many times) • more production-grade tools • more documentation, tutorials, books, etc • most problems you will encounter have already been solved (many times) • this literally means, that you will be able to have first prototype of anything in seconds by just copying and pasting code • (you can
    [Show full text]
  • Feather-Weight Cloud OS Developed Within 14 Man-Days Who Am I ?
    Mocloudos Feather-weight Cloud OS developed within 14 man-days Who am I ? • Embedded Software Engineer • OSS developer • Working at Monami-ya LLC. • Founder/CEO/CTO/CFO/and some more. Some My Works • Realtime OS • TOPPERS/FI4 (dev lead) • TOPPERS/HRP (dev member) • OSS (C) JAXA (C) TOPPERS Project • GDB (committer / write after approval) • mruby (listed in AUTHOR file) • Android-x86 (develop member) Wish • Feather-weight cloud OS. • Runs on virtualization framework. • Works with VM based Light-weight Language like Ruby. Wish • Construct my Cloud OS within 14 man-days My First Choice • mruby - http://www.mruby.org/ • Xen + Stubdom - http://www.xen.org/ What’s mruby • New Ruby runtime. http://github.com/mruby/mruby/ • Created by Matz. GitHub based CI development. • Embedded systems oriented. • Small memory footprint. • High portability. (Device independent. ISO C99 style.) • Multiple VM state support (like Lua). • mrbgem - component model. mrbgem • Simple component system for mruby. • Adds/modifies your feature to mruby core. • By writing C lang source or Ruby script. • Linked statically to core runtime. • Easy to validate whole runtime statically. Stubdom • “Stub” for Xen instances in DomU. • IPv4 network support (with LWIP stack) • Block devices support. • Newlib based POSIX emulation (partly) • Device-File abstraction like VFS. Stubdom • This is just a stub. • The implementation is half baked. • More system calls returns just -1 (error) • No filesystems My Additional Choice • FatFs : Free-beer FAT Filesystem • http://elm-chan.org/fsw/ff/00index_e.html • Very permissive license. • So many example uses including commercial products. My Hacks • Writing several glue code as mrbgems. • Xen’s block device - FatFs - Stubdom • Hacking mrbgems to fit poor Stubdom API set.
    [Show full text]
  • C. Elegans and CRISPR/Cas Gene Editing to Study BAP1 Cancer-Related Mutations and Cisplatin Chemoresistance
    C. elegans and CRISPR/Cas gene editing to study BAP1 cancer-related mutations and cisplatin chemoresistance Carmen Martínez Fernández TESI DOCTORAL UPF / 2020 Thesis supervisor Dr. Julián Cerón Madrigal Modeling Human Diseases in C. elegans Group. Gene, Disease, and Therapy Program. IDIBELL. Department of Experimental and Health Sciences Para aquellos que aún perviven en el amor, la alegría y la perseverancia. Acknowledgments En primer lugar, quiero agradecer a mis padres, María del Mar y Fran, por darme vuestro amor y apoyo incondicional en todas las decisiones que he tomado en estos 27 años. Y a mi hermana, Helena, por tener el corazón más grande del planeta, a juego con sus labios y su frente, y tenerme siempre en él. No os lo digo, pero os quiero mucho. A mi familia, porque sois la mejor que me ha podido tocar: a mi abuelo Paco, a mi abuela Carmen y mi a abuela Maru. A vosotros, Caki y Padrino, titos y titas. A mis primos, primitas y primito =) Os quiero mucho a todos! Mención especial a Julián, ¡lo hemos conseguido!. Gracias por el apoyo. Gracias por la motivación que desprendes, aunque a veces sea difícil de encontrar. Gracias también por echarme del país y por dejarme empezar a aprender contigo. No ha sido fácil, pero sin duda, volvería a repetir. A Curro, Karinna, Xènia y Montse, porque fuisteis mis primeros labmates. Esos nunca se olvidan. A la segunda ronda, David, Dimitri, LLuís y Jeremy. ¡Lo que une Cerón lab, no lo separará nae! En especial, quería agradecer a XS, Mex y Dim.
    [Show full text]
  • Anton Davydov ·
    Anton Davydov Software Architect phone: +7(968) 663-81-28 email: [email protected] github: github.com/davydovanton site: davydovanton.com About Helping business solve problems, grow technical culture and developers understand business. Active OpenSource activist and contributor. Hanami and dry-rb core developer. I’m trying to be on the cutting edge of technology. Besides I have communication skills and meet deadlines. I’m interested in distributed systems, data evolution, communication between different services, architecture problems and functional programming. Profession experience JUNE 2020 - CURRENT TIME, CONSULTING, SOLUTION ARCHITECT Worked as an independent solution architect with different clients. I helped with getting business requirements and logic, detecting the importance of each business feature. Also, I designed a technical solution based on business requirements, current implementation, and available technical and non-technical resources. I helped with migration from monolith to SOA and helped with understanding and researching around necessary infrastructure for SOA. I worked on several major tasks at this time: - Got necessary requirements, designed and helped with implementation for a new version of billing for internal employees; - Got necessary requirements and designed solution for item synchronization in orders; - Designed a new implementation for roles in the company based on ABAC paradigm; Domains: Ecommerce, advertising, billing and accounting, integration with different systems, SOA. Database: postgresql, redis, big query, kafka, rabbitmq, elastic search, prometheus. Languages: ruby, javascript, node.js, go, elixir, java. JULY 2019 - MARCH 2020, TOPTAL, BACKEND ARCHITECT I developed, researched, documented and managed migration to service-oriented architecture while I was working in toptal. I researched technologies and practices which toptal are using for migrating to the service and build new architecture.
    [Show full text]
  • Debugging at Full Speed
    Debugging at Full Speed Chris Seaton Michael L. Van De Vanter Michael Haupt Oracle Labs Oracle Labs Oracle Labs University of Manchester michael.van.de.vanter [email protected] [email protected] @oracle.com ABSTRACT Ruby; D.3.4 [Programming Languages]: Processors| Debugging support for highly optimized execution environ- run-time environments, interpreters ments is notoriously difficult to implement. The Truffle/- Graal platform for implementing dynamic languages offers General Terms an opportunity to resolve the apparent trade-off between Design, Performance, Languages debugging and high performance. Truffle/Graal-implemented languages are expressed as ab- Keywords stract syntax tree (AST) interpreters. They enjoy competi- tive performance through platform support for type special- Truffle, deoptimization, virtual machines ization, partial evaluation, and dynamic optimization/deop- timization. A prototype debugger for Ruby, implemented 1. INTRODUCTION on this platform, demonstrates that basic debugging services Although debugging and code optimization are both es- can be implemented with modest effort and without signifi- sential to software development, their underlying technolo- cant impact on program performance. Prototyped function- gies typically conflict. Deploying them together usually de- ality includes breakpoints, both simple and conditional, at mands compromise in one or more of the following areas: lines and at local variable assignments. The debugger interacts with running programs by insert- • Performance: Static compilers
    [Show full text]
  • Specialising Dynamic Techniques for Implementing the Ruby Programming Language
    SPECIALISING DYNAMIC TECHNIQUES FOR IMPLEMENTING THE RUBY PROGRAMMING LANGUAGE A thesis submitted to the University of Manchester for the degree of Doctor of Philosophy in the Faculty of Engineering and Physical Sciences 2015 By Chris Seaton School of Computer Science This published copy of the thesis contains a couple of minor typographical corrections from the version deposited in the University of Manchester Library. [email protected] chrisseaton.com/phd 2 Contents List of Listings7 List of Tables9 List of Figures 11 Abstract 15 Declaration 17 Copyright 19 Acknowledgements 21 1 Introduction 23 1.1 Dynamic Programming Languages.................. 23 1.2 Idiomatic Ruby............................ 25 1.3 Research Questions.......................... 27 1.4 Implementation Work......................... 27 1.5 Contributions............................. 28 1.6 Publications.............................. 29 1.7 Thesis Structure............................ 31 2 Characteristics of Dynamic Languages 35 2.1 Ruby.................................. 35 2.2 Ruby on Rails............................. 36 2.3 Case Study: Idiomatic Ruby..................... 37 2.4 Summary............................... 49 3 3 Implementation of Dynamic Languages 51 3.1 Foundational Techniques....................... 51 3.2 Applied Techniques.......................... 59 3.3 Implementations of Ruby....................... 65 3.4 Parallelism and Concurrency..................... 72 3.5 Summary............................... 73 4 Evaluation Methodology 75 4.1 Evaluation Philosophy
    [Show full text]
  • Mruby-Machine--An-Operating-System-For-Microcontroller.Pdf
    mruby machine An Operating System for Microcontroller HASUMI Hitoshi @hasumikin September 4-5, 2020 Me HASUMI Hitoshi(羽角 均) @hasumikin(ハスミキン) From Ruby City Matsue, a holy place of (熱燗) Developer on Rails (レールに乗った開発者) Coffee Curry Soba (NoEmojiError) Chapter 1 Background Motivation MicroPython Generally, we keep minimal confguration of MicroPython under 80K of ARM Thumb2 code (which includes compiler and interactive prompt, ...). That means a Cortex-M microcontroller with 128KB of flash can host a minimal version together with some hardware drivers. [cited from `https://github.com/micropython/micropython/wiki/FAQ'] Motivation MicroPython Regarding RAM usage, (...) 8KB is minimal amount to run simple scripts. As Python is interpreted high-level language, the more memory you have, the more capable applications you can run. The reference MicroPython board, PyBoard, has 128KB of RAM. [cited from `https://github.com/micropython/micropython/wiki/FAQ'] Motivation mruby and mruby/c Flashing mruby application into 128KB ROM and running it on 128KB RAM are diffcult mruby/c runs on 64KB RAM but it doesn't have mruby compiler You have to compile Ruby script into VM code before embedding Motivation MicroPython: "Overwhelming, we are!" 「圧倒的じゃないか、我が軍は」 Motivation Would it be great if we have a smaller mruby compiler? Target Microcontroller PSoC5LP: Reference board of mruby/c Arm Cortex-M3 32bit processor 64KB RAM 256KB ROM It will be comparable to MicroPython if Ruby runs on PSoC5LP with compiler Demo Chapter 2 Terms and Tools Terms mruby A Ruby implementation
    [Show full text]
  • Ruby by Ruby Supporters
    PERFECT Ruby by Ruby Supporters Copyright ⓒ 2013 Ruby Supporters All rights reserved Original Japanese edition published by Gijyutsu-Hyoron co., Ltd., Tokyo. This Korean language edition published by arrangement with Gijyutsu-Hyoron co., Ltd., Tokyo in care of Tuttle-Mori Agency, Inc., Tokyo through Danny Hong Agency, Seoul. Korean translation copyright ⓒ 2015 by J-PUB 이 책의 한국어판 저작권은 대니홍 에이전시를 통한 저작권사와의 독점 계약으로 제이펍에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 복제를 금합니다. 초판 1쇄 발행 2015년 4월 9일 지은이 루비 서포터즈 옮긴이 김완섭 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406-2009-000087호 주소 경기도 파주시 문발로 141 뮤즈빌딩 403호 전화 070-8201-9010 / 팩스 02-6280-0405 홈페이지 www.jpub.kr / 이메일 [email protected] 편집부 이민숙, 이 슬, 이주원 / 소 통·기 획 팀 현지환 본문디자인 디자인콤마 / 표지디자인 미디어픽스 용지 신승지류유통 / 인쇄 한승인쇄사 / 제본 광우제책사 ISBN 979-11-85890-16-6 (93000) 값 34,000원 ※ 이 책은 저작권법에 따라 보호를 받는 저작물이므로 무단전재와 무단복제를 금지하며, 이 책 내용의 전부 또는 일부를 이용 하려면 반드시 저작권자와 제이펍의 서면 동의를 받아야 합니다. ※ 잘못된 책은 구입하신 서점에서 바꾸어 드립니다. 제이펍은 독자 여러분의 책에 관한 아이디어와 원고 투고를 기다리고 있습니다. 책으로 펴내고자 하는 아이디어나 원고가 있으신 분께서는 책에 대한 간단한 개요와 차례, 구성과 저(역)자 약력 등을 메일로 보내주세요. [email protected] ※ 드리는 말씀 ●● 이책에기재된내용을기반으로한운용결과에대해저자,역자,소프트웨어개발자및제공자,제이펍출판사는일체의책임을 지지않으므로양해바랍니다. ●● 이책에등장하는각회사명,제품명은일반적으로각회사의등록상표또는상표입니다.본문중에는TM,Ⓒ,Ⓡ마크등이표시 되어있지않습니다. ●● 이책에서사용하고있는제품버전은독자의학습시점이나환경에따라책의내용과다를수있습니다. ●● 본문중일본내의실정에만국한되어있는내용이나그림은일부를삭제하거나국내실정에맞도록변경하였으니참고바랍니다. ●● 책내용과관련된문의사항은역자나출판사로연락해주시기바랍니다. • 역자:[email protected] • 출판사:[email protected] 차례 옮긴이 머리말 xxii 시작하며 xxiii 저자 소개 xxiv 베타리더 후기 xxviii Part 1 루비 개요 1장 비요 루 개 2 1-1 루비에 대해 2 1-1-1 루비란? 2 1-1-2 모든 것이 객체 3 1-1-3 루비 버전과 역사 4 1-2 을 이 책 읽는 법 5
    [Show full text]
  • FOSDEM 2017 Schedule
    FOSDEM 2017 - Saturday 2017-02-04 (1/12) Janson K.1.105 (La H.2215 (Ferrer) H.1301 (Cornil) H.1302 (Depage) H.1308 (Rolin) H.1309 (Van Rijn) H.2111 Fontaine)… 09:30 Welcome to FOSDEM 2017 09:45 10:00 Kubernetes on the road to GIFEE 10:15 10:30 Welcome to the Legal … Python Winding Itself MySQL & Friends Free/open source Around Datacubes Devroom software and drones Optimizing MySQL 10:45 without SQL or touching my.cnf Welcome! 11:00 Software Heritage The Veripeditus AR Let's talk about The State of OpenJDK MSS - Software for Game Framework hardware: The POWER Make your Corporate planning research Applying profilers to of open. CLA easy to use, please! aircraft missions MySQL 11:15 11:30 Jockeying the Jigsaw The power of duck Instrumenting plugins Mixed License FOSS typing and linear for Performance Schema Projects algrebra 11:45 12:00 CloudABI LoRaWAN for exploring Open J9 - The Next Free It's time for datetime the Internet of Things Java VM sysbench 1.0: teaching an old dog new tricks 12:15 Making License 12:30 Compliance Easy: Step Diagnosing Issues in Webpush notifications by Open Source Step. Java Apps using for Kinto ↴ Introducing gh-ost ↴ Thermostat and Byteman. ↴ 12:45 FOSDEM 2017 - Saturday 2017-02-04 (2/12) H.2213 H.2214 H.3227 H.3228 AW1.120 AW1.121 AW1.125 AW1.126 09:30 09:45 10:00 10:15 10:30 Opening Intro to Graph Intro to the Software Welcome Word Backup Welcoming and Internet Of Things databases Defined Radio Track and Disaster Recovery… Introdu… Devroom Opening Portability of containers across diverse HPC DARPA's Hackfest
    [Show full text]
  • Yukihiro Matsumoto from Wikipedia, the Free Encyclopedia
    Yukihiro Matsumoto From Wikipedia, the free encyclopedia Yukihiro Matsumoto (まつもとゆきひろ Matsumoto Yukihiro, a.k.a. Matz, born 14 April 1965) is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its reference Yukihiro Matsumoto implementation, Matz's Ruby Interpreter (MRI). His demeanor has brought about a motto in the Ruby community: "Matz is まつもと ゆきひろ nice and so we are nice," commonly abbreviated as MINASWAN. As of 2011, Matsumoto is the Chief Architect of Ruby at Heroku, an online cloud platform-as-a-service in San Francisco. He is a fellow of Rakuten Institute of Technology, a research and development organisation in Rakuten Inc. He was appointed to the role of technical advisor for VASILY, Inc. starting in June 2014.[2] Contents 1 Early life 2 Work 2.1 Ruby 2.2 MRuby 2.3 streem Yukihiro Matsumoto at the ACM International Collegiate Programming 2.4 Treasure Data Contest in Tokyo, 14 March 2007 Native name 松本 行弘 3 Written works Born 14 April 1965 4 Recognition Osaka Prefecture, Japan Nationality Japanese 5 Personal life Other names Matz 6 See also Occupation Computer scientist, programmer, author 7 References Known for Ruby 8 External links Children 4 Early life Born in Osaka Prefecture, Japan, he was raised in Tottori Prefecture from the age of four. According to an interview conducted by Japan Inc., he was a self-taught programmer until the end of high school.[3] He graduated with an information science degree from University of Tsukuba, where he was a member of Ikuo Nakata's research lab on programming languages and compilers.
    [Show full text]
  • Towards Left Duff S Mdbg Holt Winters Gai Incl Tax Drupal Fapi Icici
    jimportneoneo_clienterrorentitynotfoundrelatedtonoeneo_j_sdn neo_j_traversalcyperneo_jclientpy_neo_neo_jneo_jphpgraphesrelsjshelltraverserwritebatchtransactioneventhandlerbatchinsertereverymangraphenedbgraphdatabaseserviceneo_j_communityjconfigurationjserverstartnodenotintransactionexceptionrest_graphdbneographytransactionfailureexceptionrelationshipentityneo_j_ogmsdnwrappingneoserverbootstrappergraphrepositoryneo_j_graphdbnodeentityembeddedgraphdatabaseneo_jtemplate neo_j_spatialcypher_neo_jneo_j_cyphercypher_querynoe_jcypherneo_jrestclientpy_neoallshortestpathscypher_querieslinkuriousneoclipseexecutionresultbatch_importerwebadmingraphdatabasetimetreegraphawarerelatedtoviacypherqueryrecorelationshiptypespringrestgraphdatabaseflockdbneomodelneo_j_rbshortpathpersistable withindistancegraphdbneo_jneo_j_webadminmiddle_ground_betweenanormcypher materialised handaling hinted finds_nothingbulbsbulbflowrexprorexster cayleygremlintitandborient_dbaurelius tinkerpoptitan_cassandratitan_graph_dbtitan_graphorientdbtitan rexter enough_ram arangotinkerpop_gremlinpyorientlinkset arangodb_graphfoxxodocumentarangodborientjssails_orientdborientgraphexectedbaasbox spark_javarddrddsunpersist asigned aql fetchplanoriento bsonobjectpyspark_rddrddmatrixfactorizationmodelresultiterablemlibpushdownlineage transforamtionspark_rddpairrddreducebykeymappartitionstakeorderedrowmatrixpair_rddblockmanagerlinearregressionwithsgddstreamsencouter fieldtypes spark_dataframejavarddgroupbykeyorg_apache_spark_rddlabeledpointdatabricksaggregatebykeyjavasparkcontextsaveastextfilejavapairdstreamcombinebykeysparkcontext_textfilejavadstreammappartitionswithindexupdatestatebykeyreducebykeyandwindowrepartitioning
    [Show full text]
  • Web Development with Ruby on Rails
    Web development with Ruby on Rails Unit 3: Ruby Announcements Office Hours Mat Wednesdays 9am - 12pm Innovation Station #2, Weiss Tech House Jennifer Fridays 4p-5p 2nd Floor of Houston Hall David Thursdays, 8pm-9:30pm, Moore 100A Sundays, 11pm-12am, Dubois Computer Lab IRC matschaffer irc.freenode.net #philly.rb Sub on 10/3 Ruby Designed by Yukihiro Matsumoto (“Matz”) Interpreted OO language Sometimes described as a cross between Smalltalk and Perl Ruby Features Concise but readable Pure OO (no primitives) Dynamic typing (“Duck typing”) Functional programming (blocks/closures) Metaprogramming Ruby Intangibles Thriving ecosystem Maximizes developer “happiness” LOTS of discussion and opinion on this topic, e.g. this thread on Stack Overflow http://bit.ly/elegantruby Many Rubies Matz's Ruby Interpreter (MRI) JRuby Rubinius MacRuby MagLev mRuby Just Enough Ruby Syntax Statements # Separated by line breaks statement_one statement_two # Can use semicolon to put several # statements on one line statement_one; statement_two # Operator, comma or dot can be # followed by a line break my_name = "Mat " + "Schaffer" # Strings can contain # line breaks my_name = "Mat Schaffer" Data Types - No Primitives Constants, classes and modules PI MyClass MyModule Symbols :purple Strings "purple" Data Types (cont) Arrays ["one", 2, :four] Hashes 1.8 { :good => “four legs”, :bad => “two legs” } Hashes 1.9 {good:"four legs", bad:"two legs"} Numbers 100 3.14159 1_000_000 Strings Characters quoted by single-quotes (') or double- quotes (") Syntax "This is a String" Inline Ruby interpretation Double-quotes interpolate, single-quotes do not. Example irb> name = "Smith" irb> "Hello, #{name}!" => Hello, Smith! Symbols Like an immutable string More efficient, use single memory address Not interchangeable String "blue" Symbol :blue Jim Weirich says..
    [Show full text]