サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブックレビュー
qiita.com/kjunichi
の手前に入れる。 app.commandLine.appendSwitchにはChromeのオプションの手前の--(--enable-unsafe-es3-apis)を除いたものを指定することでElectron公式のドキュメント以外のオプションも渡せる模様。 関連記事 CI環境のNightmareでWebGLを動かす方法や、NightmareでWebGL 2.0を動かす方法 - non vorrei lavorare Electronで自分のIPアドレスをLAN内のiPhoneに通知するには Raspberry Piの温度をgRPCを使ってElectronで作ったデスクトップマスコットに表示させた ElectronでWebGL(three.js)使ってデスクトップマスコット作った際に分かったこと ElectronでmacOSのDockやWindowsのタスクバーに独自のアイコンを表示するに
はじめに Trusterdはこのアドベントカレンダーの主催者の@matsumotoryさんが開発されているmrubyで書かれたHTTP2サーバーです。 h2oやngx_mruby、mod_mrubyでRack APIベースのAPIに移行(もしくは対応)し、 これを機にmruby-hibariというフレームワークが開発されました。 今回はTrusterdでこのmruby-hibariを動かそうという記事になります。 Rack APIとは 第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge|gihyo.jp … 技術評論社 によると、 Rubyにおけるサーバとアプリケーション/フレームワーク間のインターフェースの役割を果たすライブラリ とのことでした。Perlで言う所の、PSGIということのようでした。 そんなこと言われても何となくわかるだけで、そんな
背景 Rust で node の native modules を書くの、Rustを書いてみたいからっていう理由だけで試してみたい。 https://t.co/vek4YFjW5e https://t.co/uqpd95C4QQ — Yosuke FURUKAWA (@yosuke_furukawa) 2015, 12月 24 なんて、ツイートをたまたま見かけ、 原理的にちょっとまえのRustだとdleopn時に呼び出す関数を指定できなかったから直接.nodeファイルはRustが吐けないはずなんだけど、その辺りどうなってるのだろうか / “dherman/wc-demo · GitHub” https://t.co/pdAqgRMFbW — kjunichi (@kjunichi) 2015, 12月 24 なぜ原理的に無理そうなのか http://abrakatabura.hatenab
背景 普段はOSXやLinuxを好んで使っています。しかし、2,3万円台で買えるWindowsノートPCも魅力的で、実際、 奥さんに内緒で買って使ってます。ちょっと前に次男にコーンポタージュをこぼされて壊れてしまい、 今のは2台目になります。。 そんな環境なので自作のプログラムがOSX,Linux,Windowsで動いてくれると、いろいろ便利だと思っています。 ただ、特に2,3万のPCでは非力なので、出来ればどこか別のPCでビルドを行い、 微調整だけ非力なPCで行えれば、激安ノートPCやWindowsタブレットにVSやMingwを入れずに済みます。 (Cygwinはh2oを動かすために外せませんw) それにできれば、開発環境を入れるPCは限定して、そこで一括してビル出来るような環境が嬉しいです。 Go言語ではクロスコンパイルしてワンバイナリが出来る 以下の記事が最近の事情を反映しており参考
WebMの動画に入れたいシーンの登録 勝手にCanvasに描画したものを記録するわけではなく、 プログラムで任意のタイミングで、フレームを追加する必要があります。 Canvasから取得したContextを追加
#[link(name = "raiburari")] extern { fn foo(script: *const libc::c_char, cb: extern fn(* const libc::c_char) -> c_int ) } rustcのコマンドラインでは-Lオプションがあるので、Cと同様に共有ライブラリの パスを指定することが可能。コード中で指定したlibraiburariがどこにあっても参照できる。 しかし、Cargoを使ってこれをするやり方がなかなか分からなかった。 驚きの結果 なんと、build.rsをいうファイルを作成して、rustで標準出力にオプションの 文字列を出力するコードを書くことで、これが可能になることが分かった。 共有ライブラリの検索パスは以下のオプション cargo:rustc-link-search build.rsの中身
mainWindow = new BrowserWindow({ "width": 800, "height": 600, "title-bar-style": "hidden-inset" }); のようにtitle-bar-styleにhidden-insetを指定すると という用にYosemite風のウィンドウが表示できる。 electron-jpにて流れてきたFacebookメッセンジャーの https://github.com/sindresorhus/caprine/ で気が付き、調べたら、 https://github.com/atom/electron/issues/761 でも挙がっていた機能がv0.32.3からサポートされた模様。 関連記事 Electronで自分のIPアドレスをLAN内のiPhoneに通知するには Raspberry Piの温度をgRPCを使ってEle
背景 Travis CIに入っているImageMagickはどうもEXIFが扱えない模様で 自前でビルドしてこれを使用して、テストをすることにした。 たまたま、clangを使う設定をしており、ImageMagickのビルド自体は 問題なく出来たが、make installでエラー sudo make install make install-am make[1]: Entering directory `/home/travis/build/kjunichi/ImageMagick' make[2]: Entering directory `/home/travis/build/kjunichi/ImageMagick' /bin/mkdir -p '/usr/lib' /bin/bash ./libtool --mode=install /usr/bin/install -c magic
背景 Travis-CIに入っているImageMagickがどうも自分が期待していた APIが使えないビルドであった為、これを自前でビルドしようとしたら、 今度はautoconfが古いと怒られた。 autoconfも自前のモノを入れることにした。 ちなみに、この方法は、古いtravis-ci用のファイルの書き方なので、 新しい書き方で書ける人はそうしたほうが負債にならないと思われる。 autoconfをgitでcloneしてビルドする GNUのツールなので、./configure一発と思いきや、gitで持ってくると まず、configureがない。 このconfigureを作るのに大変苦労した。 autoconfコマンドを1回叩いて、エラーをくらい、めげずにもう一度叩くと、configureを生成してくれるが、travis-ciだと、コマンドの終了コードが0以外だと即エラーで中断なので、困
2015/9/14追記 https://github.com/h2o/h2o/pull/506 にて以下は解決済みです。 前提 hhvmを最近公開されたhhvm/hhvmにtapしてインストールした環境。 問題 mruby付きだとlibonig.aが無いと怒られる 原因 h2oは自前のlibonig.aをリンクしようとするが、libonig.aが作れれないのが問題。 hhvmはonigirumaに依存しているので、/usr/local/include/にoniguruma.hが入れられる。 h2oでバンドルされているmruby-onig-regxは既にonigurumaがインストールされているとバンドルしているOnigumo(onigurumaの改良版?)をビルドしない。 このチェックをoniguruma.hの有無で行っている。 https://github.com/h2o/h2o/blo
2015/9/18 追記 以下の方法はh2oがmrubyをバンドルするようになって使えません。 代わりにpure ruby(mruby)のみのmrbgemsならdeps配下に置くだけでOkです。 libmruby.pcファイルを作る 例えば、mruby-mrmagick組み込んだmrubyを使いたい場合。 予め、mruby-mrmagickを組み込んだmrubyを用意しておきます。 その後、以下の作業でh2oにそのmrubyを組み込めます。 以下の.pcファイルを用意する prefix=/Users/kjunichi/local/src/mruby exec_prefix=${prefix} libdir=${exec_prefix}/build/host/lib/ includedir=${prefix}/include Name: MRUBY-libmruby Description:
背景 システム標準のライブラリとの衝突を避ける為に、HomebrewではOSXに標準で入っているライブラリは/usr/local/lib等へインストールしない。 その為、./configureなソースをビルドする際に、configureにOSX標準のライブラリを認識され、バージョンが古いからNGを食らったりする。 回避方法 PKG_CONFIG_PATHに.pcファイルの格納されたフォルダを指定する。 例 openssl mdfindなどで以下のように.pcファイルを指定して、Homebrewで入れた格納されてるフォルダを見つける。
2015/5/29現在、LinuxのAtomエディタやElectronでは日本語などの2バイト文字が 豆腐のような四角い文字で表示されてしまう。 以下のIssueが参考になる https://github.com/atom/atom/issues/6214 Electronで確認する Jsdo.itに上記を参考に文字化けが解消したかをチェックした Devtool立ち上げて、location.hrefに以下を指定して、文字化けが 治ることを確認できた。 http://jsdo.it/kjunichi/2nlE ちなみにChromeは平気 どうやらfreetype周りの問題のようで、Chromeは独自のfreetypeライブラリで対応しているらしい。 Droidフォントがないんだけど Ubuntu14.04だと以下で入った。本当は等幅の日本語フォントの指定を うまいことすれば良いかもだが。
背景 GTK+ Download: Mac OS Xを参考に jhbuildでGimpをビルドした。 問題 2台のマックで作業をしたのだが、片方がGtkのフォント選択ダイアログでなにもフォントが 表示されない状態。 なかなかこの原因がわからなかった。 解決への糸口の発見 の結果がフォント一覧が出てる場合、ずらずら/usr/X11R6/lib配下のフォントが表示される。 わかったこと 2台共、Xquartzは入れてはいたが、 /usr/X11R6 が問題となったMacの方には無かった。どうやら、これがないと、
noVNCとは https://github.com/novnc/noVNC HTML5で実現されたVNCクライアント。アプリのVNCクライアントの代わりに ブラウザでVNCサーバーへアクセス出来る。 とはいっても、noVNCサーバー的なものを動かすため、残念ながらフロントエンドだけで 閉じているわけではない。 noVNCをDockerで動かす際の注意 別にDockerで動かす場合に限ったことではないが、 以前はパスワードが1234など数字のみでOKだったが、 最近は数字とアルファベットの組み合わせにしないと認証エラーで 弾かれる模様。github上のnoVNCをつかったDockerファイル っとここまで書いてどっかに書いた気がするんだが。。 ターミナルで動くansi-vncをDockerで試した - Qiita これでした。でも、これはnoVNCではなく、同様のVNCクライアントの 話で
はじめに 最近はhttp2やmruby関連でAtom ShellのIssueウォッチが今まで以上に雑になっている。 特に今季はLinux関連は追えていない。 atom-shell - Atom Shellで俺の役に立ったIssue達 - Qiita Mac App Store Mac App Storeに出せるかに関して まだ誰も結果報告を挙げていない模様 app.restart() Atom Shellの再起動方法 Windows: Support for the equivalent of the OS X Dock bounce (FlashWindow) Having multiple JavaScript contexts causes a race condition in uv event loop handling デバッグの参考になるかも Pressing "Delete
背景 Paiza.ioはネットワークにアクセス出来たり、ファイルが扱える。 って事は、Pythonのctypes経由でlibtrusterdが動かせるんじゃないか! 困ったこと wgetっぽいことは案の定、Pythonで簡単に実装できた。 context = ssl.create_default_context() conn = http.client.HTTPSConnection(host, 443, context=context) conn.request('GET',path) res = conn.getresponse() f = open(libname, "wb") f.write(res.read()) f.close()
背景 libtrusterdなるリポジトリを作って、こっそり活動していたら、 なんと! trusterdの作者の@matsumotory さんからtrusterdに リポジトリを移動して、こっちで開発しない? (英語でのお誘いのため、一部意訳かも) ということで、前々からSEO的に絶対有効だと思われるGo言語対応を ほぼ、cgoでのqsortの例を見つけ、paiza.ioの枯れている版と思われる goで動かせたので、これは行けると思い、早速作業。 1階層上のフォルダの共有ライブラリをリンク goの例もexamplesというフォルダに入れることして、
C言語のアプリにmruby経由でtrusterdのHTTP/2サーバ機能を5分で組み込む方法 - 人間とウェブの未来をOSXで動かすには Homebrewを行儀よく使ってる方向け 必要なライブラリ trusterdをビルドするのに以下のライブラリが必要でした。 brew install libev brew install libxml2 brew install libevent brew install zlib brew install spdylay nghttp2で必要なzlibは以前はシステムのライブラリでもよかったみたいですが、 最近のものはシステムのもだとバージョンチェックではじかれるようなので、新しいものが 必要でした。 keg-only対策 Homebrewで入れているOpenSSL等のライブラリはシステムが提供している同様のライブラリとの競合を避ける為、以下のような環
はじめに mrubyをcloneしてビルドしておきます。 pythonはblenderが使っているのが、3.4.2なので、 これに近いやつだと以下のコードで動きます。 この記事の応用例のご紹介 Blenderでtrusterd.py?(Pythonの中のmrubyの中でhttp2サーバーのtrusterdを動かした) C #include <stdio.h> #include <assert.h> #include "mruby.h" #include "mruby/proc.h" #include "mruby/compile.h" // "(1..10).each { |x| p x }" int spam_hello(char *name) { assert(name != NULL); mrb_state* mrb = mrb_open(); mrb_load_string(mrb
背景 pythonのcyptesを試しているが、C側からPythonを呼び出せないのか 調べていたら、libcのqsortの例が 16.16. ctypes — Pythonのための外部関数ライブラリ — Python 3.4.2 ドキュメント に出ていた。 そこで、OSXではlibcに該当するdylibはどれなんだろ? Where is the standard C library on Mac OS X? ありました。 osx - Where is the standard C library on Mac OS X? - Stack Overflow libSystem.B.dylibが手元のYosemiteなMacには転がっていました。 やってみた from ctypes import * cdll.LoadLibrary("libSystem.B.dylib") libc=CDL
あけおめことよろ 昨年ストック頂いた皆様、投稿を読んでくださった皆様、 本年もよろしくお願いします。 背景 Chromebookを買ったので、オフラインアプリの可能性を試そうと Application Cacheを思い出し、node.jsのexpressを使おうとしたら、 .appcacheファイルのMIMEタイプを追加する必要に迫られた。 staticなファイルのMIMEタイプを追加するには var express = require('express'); express.static.mime.define({'text/cache-manifest': ['appcache']}); Link javascript - Express: Setting content-type based on path/file? - Stack Overflow あとがき 実はこれ書いた後、m
背景 Dockerで音を鳴らすという記事を書く際にwavファイルが必要になり、探していたら、偶然txt2wav.cなるコードを- コマンドラインからwaveファイルを作る方法 (テキストを.wavに変換) - 主に言語とシステム開発に関してで発見する。 このtxt2wav.cがShift-JISで書かれていたため、そのままclangでコンパイルして実行するとMacのターミナルでは文字化けしてしまう。 iconvでUTF-8に変換 sjisを指定すると
Proxy使わないといけないんだけど 環境変数HTTP_PROXY設定してもダメだった Stackoverflowに出てたやり方が参考になった Getting git to work with a proxy server 自分がうまくいったやり方 Win8なGUIを使いたいのを我慢して、Git Shellを起動。
はじめに ChromebookのC720/2を買いました。 Chrome OSを予習していないので、あれこれいじってます。 今回は、歴史的なブラウザーをChromebookで動かそうという試みです。 必要なもの ハード編 Chromebook Dockerを動かせるPC ソフト編 NCSA Mosaicが入ったコンテナ Dockerを動かせるPCで以下を実施 git clone https://github.com/kjunichi/docker-mosaic.git cd docker-mosaic docker build -t kjunichi/mosaic . docker run -p 6080:6080 -d kjunichi/mosaic /startup.sh
はじめに tmlib.jsを知ったのは、今年の初めに開催されたとあるプライベートイベントで、@phi さんから直々にtmlib.jsに関して プレゼンを受けた前後からです。 知育アプリもどきの作成 あんまり小さいころからディスプレイ見せているのは子供もの目にどうかと思いますが、 今回はひらがなを表示して、子供にひらがなを覚えてもらおうという淡い期待の元に作業を進めます。 知育アプリ計画がうまく行けば、奥さんを説得して、新しいMacBook Proを買いやすくなるかも なんてことも考えていたり、その割には、作業が進んでいません。。 今回やってみようとしいるアプリの概要 画面にひらがなを表示する 子供になんの字か考えされる 答えをパソコンがしゃべる 答え合わせは子供と一緒にする(スキンシップ大事w) うーん、イマイチtmlib.jsの力を発揮させることが出来るか不安になってきた。 ボタンを表示
背景 JMeterの使い方で、近所が苦戦していたので、自分もやってみることにした。 そこで、node.jsのkaoだと不慣れなので、expressでログインして何か表示するようなサンプルWebアプリを作ろうとした。 express4からはモジュールの外部化がどんどん進んでる expressでセッションを使うケースですらexpress-sessionを後から入れる必要があった。
まえがき Node.jsのffiモジュールでOpenCVつかって、Webカメラのキャプチャーをやった。JavaScriptでFFIする際には内部的には型付き配列(Typed Array)が使われてる模様。 今回はOSXで試した。多分UNIX系なら同様に動かせると思う。 構造体を使うには ref-structを入れる。 var Struct = require('ref-struct'); var CaptureVal = Struct({ }); var CaptureValPtr = ref.refType(CaptureVal);
Emscriptenでsleepが書けるようになった emccのオプションに-s ASYNCIFY=1を指定すると、 が使える。 (このオプションを忘れると、ランタイムエラーで教えてはくれる) このオプションが導入されるまでは、メインループを切り出して 関数にして、その関数へのポインタをemscripten_set_main_loopに 登録する処理が必要だった。 関連ツイート ”-s ASYNCIFY=1”に加えてSDL_Delayみたいなsleep読んでる箇所をemscripten_sleep()に書き換える必要があるのかぁ、さっきのライブラリの作者がemscriptenのwikiに解説書いてた http://t.co/f2MUN7XCzk — kjunichi (@kjunichi) 2014, 9月 2 関連記事 SLコマンドをEmscriptenでWeb化する 2014年秋編 l
次のページ
このページを最初にブックマークしてみませんか?
『@kjunichiのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く