読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

rust-cudnnのcuDNN v6対応

2年ほど前にAutmunAIというヨーロッパのベンチャがRustで書かれたDeep Learning Framework "Leaf"を開発し始めて注目していました。 しかし、残念なことに1年ほど前に、TensorFlowのエコシステムの成長を見て「負け」を宣言して開発を中止したようです。 Rus…

Maxima日本語マニュアル(5.40.0)更新しました。

仔細な修正以外の主なところはencode_timeとdecode_timeの追加、Maximaの式整理のイントロダクションの追加でした。

Herokuで無料でたくさんTwitter Streamingボットを実装する方法

Herokuでは、ここ2年ほどで無料のdynoに関して変遷がありましたが、今はアカウント毎に毎月所定の時間のdyno hourを割り当てるということに落ち着いたようです。Twitterでリプライやフォローバックをリアルタイムで自動でしようと思うと、Streaming APIを利…

RustによるWeb Assembly事始め

Rustが安定版1.14.0でWeb Assemblyを実験的にサポートしました。blog.rust-lang.orgasm.js関連技術を使うにはC/C++に戻らないといけないのかとげんなりしていたので、これほどありがたいことはありません^^ EmscriptenによるWeb Assembly 早速、Web Assembly…

Maxima日本語マニュアルを5.39.0に更新しました

maxima.osdn.jp

WGoエディタ

追記(2016-11-14] SabakiというElectronベースの良さげなSGFエディタがありました。github.comこちらを利用させていただきます。なのでWGoエディタの開発は中止します_o_version 0.19.0のmacOS用バイナリはうまく動かないようです。githubレポジトリをclone…

Excite翻訳非公開APIの変更があったようです

Exciteの翻訳は特に中国語、韓国語の翻訳の精度が高く重宝しています。 また、URLにクエリパラメータを指定すると指定の翻訳ができるのも便利でした。 最近、(6月20日頃から)この、クエリパラメータ指定がうまくいかなくなって、原因を調べたところ、HTTPメ…

Mac用外付けSSDドライブ

[2016年7月6日追記] 以下の内容間違っていました。 trimforceを使わない(disable)状態でもその後フリーズが起こるようになりました。 どうもネットワーク絡みのようです。フリーズした時にWiFiルータを再起動すると復帰する感じがあります。 要約 ELECOM SSD…

Maxima日本語マニュアル更新

5.38.1に更新しました。 http://maxima.osdn.jp/maxima.html トップページに\input texinfoと表示されていて、マクロの処理がおかしい感じです。 オリジナルでもそうなるので、申し訳ないですが放置しています^^;

Meteorのappcacheの有効活用

Meteorは、appcacheというパッケージを追加するだけで、Application Cacheを利用できます。 手作業だと、manifestをしこしこ書かないといけないのでとても楽です。ただ、Meteorのappcacheは静的リソースのサーバー側での動的変更をサポートしていて、このた…

サイトの画像を一括ダウンロード

訳あって、サイトに表示されているimg画像を一括してダウンロードするスクリプトを書きました。 ((func) -> scr = document.createElement 'script' scr.src = "//ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"; # 短いのに大げさですが、jQue…

Twitterボタンを動的に更新する

[2016/06/08追加] 動的にボタンを追加するAPIがあるみたいですね。 dev.twitter.com Twitterボタンには以下の属性が設定可能です。 type ボタンのタイプ size ボタンのサイズ lang ボタン表示の言語設定 text ツイート内容 url 添付するURL hashtags ハッシ…

新浪微博の各ポストへのURL生成

新浪微博の各ポストに当たるURLを生成する必要があったので、調べました。URLはhttp://weibo.com/<user id>/<post mid>という構造になっていて、post midはpost idから計算できます。 post midを計算するAPI(Querymid)が用意されていたようですが、今の提供されていないようです</post></user>…

meteor.comにデプロイした古いMeteorアプリでのsiperableの注意点

追記 去年の10月にAJAX Crawling (Deprecated)はご覧の通りdeprecatedになっており、meteorのspiderableパッケージは今となっては特に有効ではないということのようです。 Meteorアプリを検索エンジンのボットに読み取ってもらうにはspiderableパッケージを…

SGFパーサ

Rustでコンピュータ碁に取り組むプロジェクト「きり」、ちょっと地味ですが初めての成果公開します。 SGFパーサを作ってcrate.ioに公開しました。 レポジトリは y-ich/rust-sgf: Smart Game Format parser in Rust rust-pegを使って書きました。

GoGui付属のツール

コンピュータ碁の開発者の多くが、GoGuiをUIや開発ツールとして利用しているようです。 GoGuiにはコンピュータ碁の開発開発用ツール(スクリプト)が付属されているので、どんなものがあるかメモってみました。 http://gogui.sourceforge.net/doc/tools.html g…

オープンソースのコンピュータ囲碁

昔オープンソースのコンピュータ囲碁にどんなものがあるのか調査したメモを公開します。 他にご存知の方、教えてください。 Rn URL: https://github.com/zakki/Ray/ 言語: 限りなくCなC++ ライセンス: BSD コメント: RayにDeep Learningを追加したもの。活発…

パッケージが外部コマンドを起動できない時は

Rustaceanになろうと四苦八苦しています。 Atomでlinter-rustを入れて、cargoで作ったプロジェクトをいじると、 Failed to run cargo spawn cargo ENOENTというエラーが出ます。cargoがパスにないようです。OS XのYosemite以降、ターミナルからコマンドを起…

日本語マニュアルにカスタム検索機能付けました

Maxima日本語マニュアルにカスタム検索機能を付けました。 http://maxima.osdn.jp/maxima.html

日本語マニュアル更新

Maximaの日本語マニュアルを5.37.2に更新しました。 (10月11日に更新したのですが、1箇所訳せなかった部分がようやく訳せたので告知させていただきます。)一度引退したはずなのですが、変更箇所が少ない状況が続いていますので、まあやっちゃうかという感じ…

underscore形式の名前をCamelCaseに変換する

Atomのfind-and-replaceは正規表現が使えますが、JavaScript仕様なので、置換文字に\u(小文字を大文字に変える)などのメタ文字が使えません。 JavaScriptのreplaceは置換文字列引数に関数を与えることができ、それでなんでも変換できるようになっていますが…

Collection Typeを使う重い計算にSwiftを使うにはまだ時期が早い?

アルゴリズムに専念できる「高級」言語でコンピュータ囲碁をやってみたいと思い、Swiftを選択してみました。 原始モンテカルロ碁を実装してみて、結論として、残念ながらSwift 2ではまだこういう計算は大変という結論を得ました。以下、ボトルネックとなった…

cloneメソッド

最近、Swiftを始めました。Swiftはいいとこ取りの言語で、どこかで見た良さげな言語仕様が採用されているので書きやすいです。 でも、インスタンスをコピーするcloneメソッドで苦労しました。事実上finalのクラスに単にcloneメソッドを実装する分には何の問…

Bootstrapのドロップダウンメニューのhover効果をiOS Safariで改善する

Bootstrap(3.3.5)は様々な場所でCSSのhoverを利用しています。 残念ながらiOS Safariではhoverに該当する状態がなく、ドロップダウンメニューでどれをタッチしたかわかりにくいなどという問題が発生します。検索すると、hover対応の凝ったJavaScriptコードが…

TAPi18nのページロード時の振る舞いの改善

Meteor + Iron Routerの国際化にiron-router-i18nとTAPi18nを使っています。 TAPi18nはなぜかデフォルト言語として英語を読み込み表示、その後setLangaugeで言語が設定されるとその言語に切り替えると仕組みになっています。 なので、ネットワーク遅延の目立…

ファイルの文字コードの自動判別

AtomでシフトJISのファイルを扱うことがあって、自動判別忘れに苦しみました。 ググるとちゃんと解決してくれている人がいました。 ATOM でファイルを開いたら自動文字コード判定を行う ところが、これだと手動でファイルを開いた時にはOKですが、フォルダ指…

レスポンシブなページネーション

Bootstrapのページネーションボタン、長すぎると困ります。 で、レスポンシブにしてくれるjQueryプラグインがありました。 http://auxiliary.github.io/rpage/ 素晴らしい。 ただページネーションの隣にインライン要素があると動かなかったり、コードが少し…

Iron Routerのフックの覚書

Iron Routerには以下の5つのフックが定義できるようになっている。 onRun onRerun onBeforeAction onAfterAction onStop その他に呼び出しのタイミングを考慮する上で、 subscriptions waitOn オプションがある。ここまでで1つ覚えておくことは、onRun, onSt…

アプリを検索クローラーに見てもらう

作ったMeteorアプリをGoogleで検索すると、URLとタイトルは引っかかるのですが、中身が空白です。 ウェブアプリは仕方がないのかと思っていたのですが、ちゃんと枠組みがあるのですねぇ。 Making AJAX applications crawlable Meteorにもspiderableというパ…

ImageIdentifyをREST APIとして使う

Twitter友達からWolfram Language Image Identification Projectを教えていただきました。こんな記事がありますね。 http://gigazine.net/news/20150527-wolfram-language-image-identification-project/ で、これをREST APIとして使えるかどうか調査しまし…