Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
最近はずっと ruby.wasm で遊んでます。 2023/5/19 に ruby.wasm 2.0 が出ました。 ruby.wasm 1.0 では await がうまく動かないことがあったけど、2.0 でちゃんと動くようになったんで、記念に前の記事以降にやったこと等をまとめてみた。 await ruby.wasm で await を使うには2つ問題がある。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある。 スタックサイズが小さくてすぐに SystemStackError エラーが出てしまう。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある HTML 内で <script type="text/ruby"> で気軽に Ruby スクリプトを書いたときに await を使うとエラーになってしまう。(ruby.wasm
プライベートでは基本的に誰の役にも立たないプログラムを作ってるんだけど、たまにうっかり MySQL Parameters みたいな役に立つものを作ってしまう。 MySQL Parameters は5年くらい前に Vue.js の勉強のために作ってみたんだけど、結局そのまま Vue.js は触らず放置状態だった。MySQL の新しいバージョンが出るたびにデータは更新してたけど。 ruby.wasm で Ruby が WebAssembly 上で動くようになり、ブラウザ上で JavaScript の代わりに使えるようになったんで、MySQL Parameters を Ruby で作り直してみた。 ruby.wasm ruby.wasm のページに載ってるけど、これだけでブラウザ上で Ruby が動く。簡単。 <html> <script src="https://cdn.jsdelivr.ne
日本語で読む 🇯🇵 TL;DR: WebAssembly is here! Already familiar with it? Check out the wasm gem to get started. Welcome to 2018, where some of the most exciting innovations are happening in the compiler space. Sure, there’s things like AR, VR, and machine learning on the bleeding edge, but don’t discount those technologies as old as computing itself, the software responsible for translating the source co
はじめに DHHがRails5.1にwebpackを取り入れる意向を示し、その実装としてwebpacker gemを提案しました。 まだ最低限の方針が示されただけで機能は全然足りてませんが(コミットチャンスですよ!!)、どんな実装になっているか軽く見てみました。 リポジトリ, PR webpacker gem: https://github.com/rails/webpacker PR to Rails: Basic --webpack delegation to new webpacker gem 内容 注: あくまで2017/1/18現在の話で、これから多くの変更が入ることになります webpackのラッパーになっている webpackを用いたJSアプリの素地を作ってくれる webpackのコマンドをrakeコマンドでラップしている rake越しにやりたくない人は、webpackを直に
Here is an example rubium app I call mruby-edit. It's a code editor written entirely in Ruby - including all DOM event handlers and manipulations. It's implemented on top of Ace, but uses Ruby to configure Ace keybindings, and access the file system. In the image, mruby-edit is viewing its own source code. Mruby-edit was written entirely in Ruby as a proof of concept, but you can freely switch bet
すいません。締切守れませんでした…。 やっぱ、java-jaの忘年会の翌日は辛い…。 はじめに Webシステムを開発していると切っても切れないのがJavaScriptです。 Railsはかなり早い時期からalt-JSや結合、minify等を組み込めるようにフレームワークにそれを取り入れてきました。 それを支えているのがRails3.1から導入されたsprocketsです。 それに伴なってJSのライブラリをどうやって管理するかという点について、独自の路線を取ることになりました。 JSのライブラリを同梱したgemパッケージにラップしてrubygemsとして管理する方法です。 ある程度は上手くいっていたし、今もその流れは続いているんですが、時々問題になることもあります。 例えばメンテナの対応時期がズレてて古いバージョンのままだったり、似たようなgemが乱立してややこしくなったり。(backbon
Web2.0と言われ始めた時代に、Ajaxという手法が広まりました。今ではAjaxを使っていないウェブアプリケーションを探すのが難しいくらい、Web開発の現場には浸透していると思います。もちろん、Ajaxを知らなくてもウェブアプリケーションは作れますが、これは使い心地を意識すれば自然と必要になってくるものです。 この記事では、実際に簡素な掲示板アプリを作りながら、現在ほとんどのウェブアプリケーションで使われているAjaxという手法を紹介していきます。ちなみに、タイトルの「100行で」というのは今回書いたapp.rb、index.erb、schema.sqlの3つのファイルのトータルがおよそ100行だという意味です。数字をタイトルに入れると読んでもらいやすいという話をどこかで聞いたので入れてみました。 ソースコードはGithubにも置いておきました。 gaaamii/ajax_sample
こんにちは山形です。 htmlやcss等を書いて静的なWebサイトを制作している方なら誰でも、より効率的な環境求めていると思います。 DreamweaverやAptana等のIDEを使うのも一つの手だと思いますが、より柔軟な環境構築としてご紹介したいと思います。 Rubyをインストールする Windowsの場合 Engineyard社が提供しているRailsinstallerでサクッと入れてしまいましょう。 Railsinstallerはこちらからダウンロード出来ます ダウンロードできたらexeを起動しウィザードに従ってインストールを実行してください。 Mac OS Xの場合 rbenvでのインストールを紹介します。 先にXcode Command line Toolsのインストールを済ませておいてください。 Xcodeの環境設定からインストールできます。 # rbenvをgithubから
今回はカテゴリを画面でソートできることをテストする。たとえばブログで言えばブログカテゴリの表示順を管理画面でソートしたいとき、などの話。 こんな画面で、ドラッグアンドドロップでソート後、更新ボタンを押したら、その順番に更新される、という仕様のテストを書く。 実装はここでは省くとして、テストを書こうと思ったときにD&Dをどうやるかがポイントになると思われる。 で、capybara-webkitにはdrag_toというメソッドがあるので、これで解決した。 なので、capybara-webkitを使う前提なので使えるようにしといてください。 ちなみにソートUIにはjquery-sortableを使ってます。 具体的にはこんな感じ。 view <section id="blog-categories" class="categories"> <header class="page-header c
こないだまでRailsとBackbone.jsを使ったWEBサービスを作ってました。折角なので、その際の初期設定とちょっとしたルールをまとめておきます。ちなみに、規模感は以下のような感じです。 ・ModelとCollection 各約10個 ・ViewとTemplate 各約30個 ・Routerは使わない(SinglePageApplicationではないので) バージョンは ・backbone.js: 1.1.0 ・rails: 3.2.13 です ライブラリの配置 依存ライブラリは以下のように配置した // vendor/assets/javascripts/配下 . |-- backbone/ | |-- backbone-min.js | `-- backbone-min.map |-- json2/ | `-- json2.js |-- underscore/ | |-- un
■topic summary study about "yield" in JavaScript. The function containing the yield keyword is a generator. yieldはRubyにあるから楽勝ー。 と思っていたけれど、JavaScript とRubyでは考え方が違うみたい。 JavaScript1.7は「開発者向けツール」で試さないこと こんなコードを書いて↓ function f(max){ var cur=1; for(var n=1; n<=max; n++){ cur *= n; yield(cur*10); console.log('cur= ' + cur); } } f(4); 開発者向けツールで実行。 あれれ。 本と挙動が違う。 fを普通の関数のように呼び出しても何も出力されません。 と書いてあるけど。 chrome
以前書いた記事の反省を元にMarionetteに移行した。 思った以上に快適! 大規模になったらMarionette.js使えとか書いているのは嘘で、普通にBackbone使うときは、初めから使うべき。 Backboneで一番恐ろしいのは、各現場/各開発者毎に異なるオレオレ実装。オレオレ実装作るコストに加え、使う人の思わぬバグや学習コストやスイッチングコスト等諸々考えると、特別な理由がない限りMarionetteみたいな既存のframework使うべき。 あんど。データバインディングを提供してくれる、stickitと一緒に使うと、より一層効果的。 めっちゃ、ソースコードの量が減って、ソースの意図が明快になった。悩みも少ない。工数も勿論減る。 ここから、幾つか思った事を、サッカー見ながらお酒飲みながら、ダラダラ書く。※ちなみに、日本vsオランダ戦見てる。 railsアプリでのjs周辺の作りの
sstephenson/execjs - GitHubrubymaverick/execjs-async - GitHubできることと起動方法とエンジンの違いRubyスクリプトからJavaScriptコードを実行できるV8, node, spidermonkey, rhino などの中からそのとき利用できるエンジンを autodetect して実行してくれる環境変数からエンジンを指定できる ExecJS::Runtimes の中で定義されている RubyRacer や Node の名前で export EXECJS_RUNTIME=Node などと指定する例えば Rhino は therubyrhino gem に依存する。こうした依存 gem は自動では入らないので注意が必要何の gem も準備していなければ execjs 1.2.4 の段階では node.js, JavaScriptC
先週から1週間websocketとnode.jsについて調べたのでまとめ 1. node.jsの何が凄いのか? 要はevent-drivenだからってこと。普通のHTTPサーバーだと、リクエスがきてからレスポンスを返すまで、掴んだままになってしまう(ブロッキング)。event-drivenだと、リクエストとレスポンスを分離して、処理が遅くてもどんどんリクエスが受けられるよってことだ。 下記URL的に言えば、タコだから凄い。 http://www.atmarkit.co.jp/fcoding/articles/websocket/01/websocket01a.html 2. websocketとは websocketはHTTPとは別規格の通信方法で、毎回通信を切るんじゃなくて、コネクションを張った状態にしておくから速いしプッシュも使えるよってやつだ。 要は、 event-driven +
先日 Evergreen を導入したけど Evergreen は今メンテされてないってコメントで教えてもらった。確かに、README よく見たら書いてあるし…。完全に見落としてた。不覚。 README のリンク先、Google グループのスレッドでは Konacha っていう Rails エンジンが勧められていた。コメントで教えてもらったのもコレ。 jfirebaugh/konacha · GitHub Evergreen 入れたばかりだけど、Konacha に移行しよう。 Konacha をインストール Gemfile に group :development, :test do gem "konacha" gem "capybara-webkit" end を記述して、 bundle を実行してインストール。 Headless テストも試すから、capybara-webkit もインス
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く