サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
WWDC24
qiita.com/kjunichi
go run triangle.go # command-line-arguments ./triangle.go:10: import /Users/kjw_junichi/gocode/pkg/darwin_amd64/github.com/andrebq/gas.a: object is [darwin amd64 go1.3 X:precisestack] expected [darwin amd64 go1.3.3 X:precisestack]
背景 iOS6になりinputタグのtype=fileの指定が可能になった。 これにより、iPhoneから写真のアップロードが非ネイティブアプリで 可能になった。 しかし、サーバーにファイルをアップロードする分には問題ないのだが、 とはいえ、カメラロールの写真のサイズはそれなりにデカい。 クライアントサイドで扱えないか? となるわけですが、カメラロールの写真のサイズはMobile Safariで 扱える画像サイズを遥かに超えており、困った。 何とかしてみた サーバーにアップロードできるんだから、 内部的には、あるていど画像データを扱えているのだろう? 何か方法は無いものかと途方に暮れいた2012年。。 ローカルファイルをバイナリーデータとして読み込めることを知る 先日、File APIでDataURLとして読み込まず、素のバイナリーに近い 形で扱える。FileReader#readAsBi
追記(2014/9/26) iOS 8.0.2でフツーにSafariからフォトライブラリにアクセスできるようになった - Qiita 追記ここまで 背景 iOS8でMobile SafariがWebGLに対応したので、さっそく、iPhoneのフォトライブラリ の写真をテクスチャーに貼り付けてみようとしたら出来なかった。 どうやら、iOS8のSafariでは、普通にはフォトライブラリの画像データにアクセス 出来なくなってしまった模様。 解決方法 対象のページのHeadタグ内に以下を記述する。 Mobile Safariで対象のURLを開き、ホーム画面に追加 ホーム画面に保存したアイコンをタップして、対象のページが表示され、 ここで、ファイル選択のボタンをクリックすると、ダイアログが表示され、 これに「許可する」と答えると、フォトライブラリの画像ファイルのデータを取得できるようになる。 サンプ
追記(2014/9/26) iOS 8.0.2でフツーにSafariからフォトライブラリにアクセスできるようになった - Qiita 追記ここまで iOS8でWebGLは http://jsdo.it/kjunichi/fNgw など 過去のjsdo.itへ投稿した作品が陽の目を見ることが出来た。 テクスチャにカメラロールの画像を使おうとしたら 使えない。もしかするとちょっと前からNGだったのかもだが。 iPhone4S使っていたころは、GPS情報がごっそり消されるくらいで、 あとはフツーにFile API経由で読み出せていたのだが、実に残念 動かなくなっていた作品 iOSでJSオンリーでカメラロールの画像を扱う Register as a new user and use Qiita more conveniently You get articles that match your n
2017年10月追記 以下の記事は2014年のものです。 いまは、Rust公式ページにもあるようにrustupを入れれば、 nightlyも安定板も切り替えて使えますし、Cargoもとくに 自分で入れなくても勝手に入ります。 はじめに 最近node-ffiやって、libuvに割りと近づいてきたので、libuvつながりのrustを始めてみた。 いきなりGUIを使いたいんだけど ffiな機構の存在を知る The Rust Foreign Function Interface Guide 画像が出せるようなライブラリを探す node-webcl(node-webglもあるけどw)で知った。glfwというGLUTに取って代わるかもしれないOpenGLのフレームワーク?があり、rustでもこれを使ったものがあり、今回は、これのexampleを動かすところまで辿りつけた。 実践編 Rust本体はNig
はじめに 極ライトにAtom Shellの追いかけやってます なんで、そんなことやってるかとかのエモイことは、気が向いたらブログに書くかもしれないので、 Feedlyなどで、購読をオネシャス! atom-shell - Atom Shellで俺の役に立ったIssue達 2015年春版 - Qiita 勉強になるもの つまり、あとで読もう状態のもの Error building in Linux (undefined reference to symbol 'XConvertSelection') · Issue #500 · atom/atom-shell もともと12.04LTS向けにいろいろ作っているから、Ubuntu14.04ではビルドに工夫が必要らしい。 Support to choose clipboard in clipboard operations (to support
背景 NodObjCが利用しているネイティブモジュールのnode-ffiがNAN化され、 nodeの0.11系でも動くようになり、Atom Shellでも動かせそうな状況になったので試した。 64ビットでうごかす? 説明のページだと32ビットなんだがうまくいかない。 以下ようにアーキテクチャの指定をx64指定したらうまく行ったので、最近はAtom ShellはOSXでは完全に64ビットで動いているのかも。
背景 node-webkitやAtom Shellでやった方が実用的な気がするが、node.jsのスクリプトをOSXのアプリケーションとして動かす方法を試行錯誤していた際に、アプリケーションバンドル内に置いたスクリプトのパスを取得する必要があった。 アプリケーションバンドルを作る エントリーポイント?の実行ファイルをシェルスクリプトに書き換える cp /dev/null> foo.app/Contents/MacOS/applet atom foo.app/Contents/MacOS/applet appletの変更後の内容
はじめに Dockerで音を鳴らすという記事を書いた際に、Dockerコマンドを実行しているホストのローカルIPアドレスの取得方法が 気になり、最近使っている言語のいくつかでどうやって書くのか調べた。 OCamlも調べたが、ググる力と英語力が足りず断念。。。 Ruby 2.1以降 ruby -r socket -e 'puts Socket.getifaddrs.select{|x| x.name == "eth0" and x.addr.ipv4?}.first.addr.ip_address'
背景 先日Qiitaに投稿されたちょっとしたHTMLはGitHub Gistに置いてbl.ocks.orgで表示するのがお手軽ですという記事をはてブ経由で知りました。 自分はもっと前からbl.ocks.orgを知っていましたが、結構なブクマが付いていたので驚きでした。(ホントは悔しかったw。内容は自分にとってもへーって感じですごいなぁ色々調べてるなぁと後からこっそり見て感じましたw) ちょうどこれと同時期に@Phiさんがログイン不要! 気軽にプログラミングを始められるWebエディタ『runstant』作りましたを投稿されました。 初めは、この2つは自分の中ではリンクせず、むしろ、gistを使ったbl.ocks.orgだと、gistを編集してから反映されるまでのタイムラグが当時気になり、トライ&エラーなスタイルでの開発に向かないから、runstant推しって感じでした。 gistをJSONP
for k:1 thru 15 do mandelbrot ([iterations, k], [x, -2, 1], [y, -1.2, 1.2], [grid,400,400],[legend,false],[palette, [gradient, green, cyan, blue, violet]],[png_file,concat("mandel",sreverse(substring(sreverse(concat("0",k)),1,3)),".png")])$
背景 しつこく、続けいている最新リリース版ninix-ayaをDockerで動かそうと、Python3.4では、うまくゴーストがインストール出来なかったので、どうやら、3.3向けに開発されているようなので、pyenvを導入。 ninix-ayaで使うGPyGObjectはpipでは、Windowsプラットフォーム以外は手動で入れる必要がある。 問題点 pyenvでpythonコマンドが任意の版に変更できても./configure&&make系はデフォルトでは/usr/local等に入れられてしまう。これでは、pyenvでpythonの版が手軽に変更できても、毎度ビルドする羽目になる。 解決方法 pyenv prefixを使う pyenvの公式ページのインストールしたpythonのアンイストール方法でのみ乗っているコマンドのpyenv prefixを使うことで解決した。
var https = require('https'); var options = { key: fs.readFileSync(__dirname +"/key.pem"), cert: fs.readFileSync(__dirname +"/cert.pem") }; https.createServer(options, app.callback()).listen(4430); expressと違い、#callbackが必要だった。 オレオレ証明書でためすには key.pem、cert.pemの2ファイルを用意する。 自分は昔書いたブログ記事を参考にすると作れる。 Windowsだとハマるかも オレオレ証明書の作成をWindowsでやったら、BOM付で作られ、そのままだとエラーで怒られたので、BOMなしにして、ついでに改行コードもLFに変換したら動いた。 関連記事 Atom
はじめに 大体、Node.js/Expressでのシンプルなファイルのアップロードの記事でOK express4固有の対応 expressコマンドがない Express 4 をはじめようでこれを知りました。記事にある通り、「express-generator」を入れることで、expressコマンドが使えます。
HTML5のフルスリーンAPIが使えない WebRTCや、WebGLは使えるのにこれは意外でした。 でも大丈夫 HTML5のAPIで無いのはちょっと残念ですが、ちゃんとAPIが 用意されてます。 実装例 <!DOCTYPE html> <html> <title>FullScreen Demo</title> <h1>FullScreen Demo</h1> We are using node.js <script>document.write(process.version)</script>. <div id="hello"></div> <button id="play">Full screen</button> <script> var gui = require('nw.gui'); var btn = document.getElementById("play"); btn.a
node-webclを入れると出来る Unix系なOSだと割と楽にインストールできる Linux、OSXはnpm install node-webclで行けるかも 手元のMarvericksなMacBook Proでは /usr/local/includeや/usr/local/lib配下をコンパイルやリンク時に見てくれないので、 CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib npm install node-webcl で、npm付属ではなく、最新のnode-gypでビルドしないと駄目。 node-webclが依存するDLL等の用意 node-webclのReadMe.mdの通り、依存するライブラリを準備しておく。 GLFWは2.7系を入れると良い気がする。 64ビット node-webclのdevice.ccで動的に配列を
準備 Google Consoleにログイン アプリケーションを登録(Webアプリケーション) ※ただし、Redirect URIsは空にして登録すること! 後で使うのは Client ID for web applicationsの欄のClient ID Simple API Accessの欄のAPI key 認証処理 認証用のボタンを用意 var clientId = '準備したClientID'; var apiKey = '準備したAPI key'; // とりあえず、怖いので、カレンダーを読むだけの設定 // https://www.googleapis.com/auth/plus.meは不要かも。。 var scopes = ['https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/
背景 OpenGLなソースをEmscriptenでJavaScriptに変換できることは分かったのだが、 OpenGLなソースだとテクスチャーをファイルとして読み込むようなケースが多々ある、 Emscriptenでこういったファイルの読み込みも可能なような記述があるが、 具体的な方法が英語力の低さから分からずにいた。 そんな折、はてなの人力検索ですばらしい質問と回答を発見して、これを手がかりに C++でファイルを読み込むプログラムをEmscriptenでJavaScriptに変換することが出来た。 前提 EmscriptenでJavaScriptに変換された本体のプログラムのファイルアクセスは仮想ファイルシステムを介して行われる。 この為、本体のプログラムを実行する前に、この仮想ファイルシステムに必要なファイルやフォルダの登録が必要となる模様。 emscriptenのページでは自動でやって
半日以上かかってしまった! JSONPで返却する文字列に\u2028が含まれているとブラウザで 扱えない模様。 任意のURLを指定するとその内容をJSONPで返していたのだが、 特定のページがなぜかエラーとなってしまい、原因に時間がかかった。 JSON.stringifyすりゃ、デコード絶対出来るものと思い込んでいた ちなみに、JSON.stringifyしてJSONPで返す文字列を作成していたので、 余計に時間がかかった気がする。 どんなエラーが出るのか? Chromeでは
Save to Drive buttonだとData URIが使えない つまり、動的にファイル生成して保存が出来ない! 今回の方法ならば、頑張れば、画像イメージでもなんでもJavaScriptのみでサーバサイドに 頼らず、Google Driveに保存可能。タダで永続的なストレージAPIが手に入る! 昔からあるJavaScript APIを使うことで、動的にファイルをGoogle Driveに保存できる 準備 Google Consoleにログイン アプリケーションを登録(Webアプリケーション) ※ただし、Redirect URIsは空にして登録すること! テキストエリアに入力した内容をテキストファイルとして保存する 拡張子は勝手には付加されないので、「.txt」を付けるなりしないと何のファイルか分からなくなるw <script type="text/javascript"> var C
とHTTPプロキシにこれからhttpsで通信する旨を通知する必要がある。 その後、HTTPプロキシから200の応答をもらうことで、 「以降の通信を暗号化」して行うことになる。 以降の通信を暗号化が問題だった。 PHPでは、ソケット(ストリーム)を引数に // Https access with Http Proxy Server // プロキシサーバ経由でhttps通信する var net = require('net'); var url = require('url'); var startTls = require('starttls').startTls; var HTTP_PROXY_HOST = "localhost"; var HTTP_PROXY_PORT = "8080"; var targetUrl = "https://www.google.co.jp/"; var
以下にタブを使ったサンプルを置いた。2.x系の話ですよ。 (1.x系から乗り換えの際はチト苦労した) ポイント <div class="tabbable"> <ul class="nav nav-tabs"> <li class="active"><a href="#home" data-toggle="tab">Home</a></li> <li><a href="#tab1" data-toggle="tab">タブ1</a></li> <li><a href="#tab2" data-toggle="tab">タブ2</a></li> </ul> <div id="my-tab-content" class="tab-content"> <div class="tab-pane active" id="home"> </div> <div class="tab-pane" id="t
最近投稿してないので、忘れないようにjsdo.itのものを挙げてみます。 Processing.jsで画像を扱えるのですが、クロスドメインの制限もありますが、 コメント形式でプリロードの指定が必要?であったり、動的に扱うことをあまり 考えられていないようで、自力でやってみました。 Jsdo.itの動作例はこちら 自ドメイン外の任意のURLの画像を取得するには ドメイン外の画像ファイルをDataURL形式でもらうJSONPを利用します。 そのため、Processing.js側のプログラム中からJavaScriptの関数を 呼び出します。 いったんCanvasに描画して、イメージデータを取得 JSONPで取得たDataURL形式のイメージをCanvasに描画します。 その後、Context#getImageDataで、画像データを取得します。 Processing.js側での処理 Proces
このページを最初にブックマークしてみませんか?
『@kjunichiのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く