読者です 読者をやめる 読者になる 読者になる

Rust の Index bounds check の性能影響を調べてみた

Rust の配列 (Vec<T> や [T] など) では、インデックスアクセス時に境界チェック (index bounds check) が常に行われます。 常に行われる、というのはビルドの種類 (リリースビルド・デバッグビルド) に依存しないという意味です。 とにかく安全性を重視する Ru</t>…

Xperia Z5の画面が割れてタッチに反応しなくなった時にやったこと

機種変更して1ヶ月くらいのXperia Z5の画面を割ってしまう事故を起こしてしまった時にやったことを記録がてらメモ。 同じような事故を起こしてしまった人の助けとなれば。。。 前提 機種: Xperia Z5 (au) 故障内容: 画面のガラスが割れ、タッチ操作が行えな…

EmscriptenでRustをJavaScriptへコンパイルする

以前のエントリではうまくいかなかった、RustのJavaScriptへのコンパイルですが、 gifnksm.hatenablog.jp 先日フォーラムに投稿されていたやり方をまねるだけで簡単にできるようになっていました。 internals.rust-lang.org Rust本体にEmscripten対応が取り…

EmscriptenでRustをJSへコンパイルする (コンパイルできてない)

2016/3/8追記 うまくいきました。エントリ書きました。 gifnksm.hatenablog.jp RustでEmscriptenを使う方法を調べたのでメモ。2015年12月28日時点でなんとか動作させるための手順です。今後オフィシャルにEmscriptenサポートが入るなどすると、もっと簡単な…

kcovを使ってRustプログラムのカバレッジを測定する

本記事は Rust Advent Calendar 2015 13日目の記事です。 前置き Rust 1.5リリースおめでとうございます!!! cargo install の登場により、Rust製ツール群のインストールが飛躍的に楽になりました。最近のアップデートに追従できていなかったという方も、…

Power Assert を Rust で作ってみた

素敵な表示をしてくれるassertionライブラリ、Power Assert を Rust でも実現してみました!!! gifnksm/power-assert-rs Assertion failure 時にこんな感じに分かりやすくメッセージ出力してくれます。使い方は GitHub参照ください。 $ cargo run --exampl…

rustで変なテトリスを書いた

Rust1.0リリースパーティーで、絶対にPistonを使ってみるぞ!!!と決心してから早3ヶ月、やっとPistonを触ってみました。 Piston触ってみようかな #rustlang— ぎふ (@gifnksm) 2015, 5月 16 チュートリアル編 RustリリースパーティーでLTをされていた、http…

rustでtelnetチャットを書いた

ソケットプログラミングの練習でよくあるアレをrustで書いてみた。 https://github.com/gifnksm/telnet-chat クライアントプログラム書くのがダルかったので、telnet を使う仕様にした。 \ から始まるコマンドを打つことで、参加者一覧を出したりできる。 練…

gunosyから元記事に自動的に飛ぶユーザースクリプト

gunosy_redirect.user.js (インストール) Gunosyから届くメールのリンクのうちいくつかが元記事ではなくGunosy内に転載された記事に飛ぶようになっていて(例)腹が立ったので書いたので広報する。 ページ内から「元記事を探す」のリンクを探してきて、locatio…

multirust で今日から始める快適 rust 生活

Rust 1.0 リリースおめでとうございます!!!! Rust 1.0 がリリースされました!!!!めでたい!!!!!! このリリースは非常に大きな一歩です。これまではコンパイラのバージョンが上がる度にコードを頑張って修正する必要がありましたが、今後はstabl…

Rust nightly の x86_64, i686 両対応版の PKGBUILD

タイトルの通りのブツです。これを参考にして rust-bin-nightly を改造した感じです。 パッケージのビルド時間が短くなって大変ハッピー。 # Maintainer: NAKASHIMA, Makoto <makoto.nksm@gmail.com> pkgname=rust-nightly-bin pkgver=2015.01.25 pkgrel=1 arch=('i686' 'x86_64') p</makoto.nksm@gmail.com>…

Rustでコンパイル時処理に挑戦する

この記事は Rust Language Advent Calendar 2014 の21日目の記事です。 20日目はRyuseiさんの「Go, Rust, Haxeによる正規表現エンジン実装の読み比べ - M59のブログ」、22日目はwoxtuさん担当です。 Rustのコンパイル時処理 システムプログラム界隈でコンパ…

nicovideo Thumbinfo popup 更新 (現カテゴリタグに追従)

nicovide Thumbinfo popup を更新しました。 nicovideo Thumbinfo popup (Greasy Fork) カテゴリタグデータを最新化しました。 (316さん、ご指摘ありがとうございます)

nicovideo Thumbinfo popup の配付サイトを移動 & @grant 対応

超久々 Greasemonkey 更新情報です。 nicovideo Thumbinfo popup の配付サイトとして利用していた userscripts.org が死亡したらしいので、 新しい配付サイトとして Greasy Fork へと移動しました。 nicovideo Thumbinfo popup (Greasy Fork) スクリプトの自…

swift-lang 処理系のインストールからFizzBuzzプログラムの実行まで

今話題の Swift 言語を触ってみました。Linuxで。 処理系のインストール バイナリからのインストールは、Quickstart guideというテキストに非常に簡潔にまとまっています。 $ wget http://swift-lang.org/packages/swift-0.94.1.tar.gz $ tar xvf swift-0.94…

無料ダウンロードできる言語処理系まとめ

言語は適当にチョイス。順番も適当。文言はパッと見で目立つものをピックアップ。 言語処理系にはランタイムとかコンパイルも含むゆるふわな分類です。 言語 ベンダ・処理系名 文言 Cなど GNU, GCC GCC, the GNU Compiler Collection Rust Mozilla, rustc Ru…

特定の major-mode "以外" の場合に hook を設定にする emacs lisp

やり始めたら 30 分くらいハマってたのでメモ。 以下コードは、 rust-mode "以外" の場合に after-save-hook に executable-make-buffer-file-executable-if-script-p を設定するものです。 (defun after-change-major-mode-hook-fn () (unless (eq major-mo…

rustpkg test でプロダクトコード中に書かれたユニットテストを実行する

以下のようなパッケージ foo が存在したとします。 // src/foo/lib.rs #[crate_id = "foo"]; pub fn super_complex_function() -> uint { 42 } #[cfg(test)] mod test { #[test] fn test_super_complex_function() { assert_eq!(42, super::super_complex_fu…

はてなブログおみくじ2014

はてなブログおみくじ2014 久方ぶりの更新がコレってのもかなりアレ感ありますね。そのうち、なんかちゃんとしたもの書きます。

Rust 基礎文法最速マスター (rust 0.7 編)

警告 (2014/1/25 追記) 以下の記事ですが、今となっては通用しない記述が多く含まれています。 0.7 から現在までに行われた大きな変更としては、思いつくだけでも 言語組み込み機能としての managed box が非推奨になった (将来削除され、ライブラリによる実…

デザインのテスト

見出しのデザインを考えるためのテスト記事です。 最高レベルの見出し 本文 2 番目のレベルの見出し 本文 3 番目のレベルの見出し 本文 4 番目のレベルの見出し 本文 5 番目のレベルの見出し 本文

はてなブログに移転しました

はてなブログに記事をインポート&はてなダイアリーからのリダイレクト設定をしました。 さんざん放置してたダイアリーの移転なので、特にこれといって変化はないでしょうが、 今後はちょくちょく記事書いて日常のあれやこれやを記録に残せたらなあ、と思い…

rust-incoming-git の PKGBUILD

rust の最新の変更の commit 先が master ブランチから incoming ブランチに変更されたため、 master ブランチの動きが少なくなってしまい寂しかったので、 incoming ブランチ用の PKGBUILD を作成しました。ついでに、AUR にアップしておきました。 AUR (en…

rust-git の PKGBUILD

AUR にある rust-git が、makepkg しようとすると毎回 llvm やら libuv のサブモジュールを clone しようとして時間がかかって仕方が無いので、初回だけ clone するように修正してみた。ついでに、コンパイラとして clang を使う設定もいれてみた。 既にある…

Rust で ProjectEuler #8 ~ #12

Problem 8 入力された数列に含まれる5つの連続した数の積のうち、最大のものを求める問題。 最新版ソース use std; fn main() { const prod_len: uint = 5u; let input = " 73167176531330624919225119674426574742355349194934 969835203127745063262395783…

Rust で ProjectEuler #4 ~ #7

Problem 4 3桁の2つの数の積で表せる最大の palindrome な数。 最新版ソース use std; fn to_palindromic(n: u64, dup_flag: bool) -> u64 { let cs = str::chars(u64::to_str(n, 10u)); let s = str::from_chars( if dup_flag { cs + vec::tail(vec::revers…

Rust で ProjectEuler のレポジトリを github で公開しました

レポジトリ作った。ソースは適宜修正していく予定ですので、最新版はこちらを参照してください。 gifnksm/ProjectEulerRust · GitHub

Rust で ProjectEuler #1 ~ #3

放置状態になっていたProject Eulerを再開してみることにしました。以前はHaskellでProb. 133まで解いてHaskellに慣れることができたので、今回はRustで書いてみようと思います。Haskellは最後まで使いこなせてる感は出なかったのですが、遅延評価ではないRu…

Rust で Generic な数値型を作る

ちまたで話題(?) の Rust 言語。昨年末くらいから「日本語情報が全然無い、先駆者になるチャンス!」とか思いながらのろのろしてたら、先日の0.1版発表で一気に知名度が上がってしまい(´・ω・`)としているgifnksmです。 0.1リリースでいろいろ変わりました…

Titech Portal Auto Loginの更新とメンテナー募集のお知らせ

Titech Portal Auto Loginを更新しました。更新内容は,ソースコードの整理です。 作者修了につき,多分これが最後の更新になります。東工大ポータルの仕様が変わらない限り現在のスクリプトは動き続けると思いますが,将来的に正しく動き続けるかどうかは分…

ニコニコ動画で watch ページにタグの履歴を表示する Greasemonkey スクリプト: NicoTag Tab を作った

インストールはこちら NicoTag Tab for Greasemonkey 機能 データグリッド状にタグを表示します グリッドの列毎にソートすることができます 表示する要素をフィルタリングすることができます XUL/Migemoがインストールされていると,ローマ字から日本語のタ…

ニコニコ動画でコメントを取得する方法のメモ

動画再生ページ上で動作するGreasemonkeyスクリプトから,動画についたコメントを取得する方法は主に2通りある。それぞれについてメモ。 新プレイヤーのAPIを使う方法 javascript: function hoge(data)alert(uneval(data)); void(document.getElementById("f…

LaTeXのOTFパッケージ+新jsドキュメントクラスでredeffont

TeX

これまで \usepackage[deluxe, expert]{otf} \usepackage{redeffont} を使っていて,見出しのフォントが太字にならないことに悩んでいた.今回,太字にならない原因と,その対策が分かったのでそれをまとめる. そもそもredeffont.styが新ドキュメントクラス…

Mathematicaでカレントディレクトリのパッケージを読み込む

やり方がわかったのでメモ.分かってしまえばかなり単純. SetDirectory[NotebookDirectory[]]; <

ニコニコ動画で getflv を呼び出すときに便利なGM用ライブラリ

NicoFilter Tabを書くときに使った関数をライブラリ化しました。gistにアップロードしてあります。ニコニコ動画でgetFlvを呼び出す関数 概要 ニコニコ動画用のGMスクリプトを書くときに,http://flapi.nicovideo.jp/api/getflv/sm*****を呼び出す処理が必要…

ニコニコ動画の動画再生ページに投稿者フィルターを表示させるGreasemonkeyスクリプト,NicoFilter Tab を作った

インストールはこちら http://userscripts.org/scripts/show/90132 近頃めっきり見なくなった投稿者フィルターですが,見えないよりは見えた方がいいよね!ということで,タブの形で見えるようにしてみました。 フィルターを可視化するスクリプトは,既に腐…

.NET 4.0 + C# + VS2010でManaged DirectXを使う

C#

日を改めて調べて見たら案外あっさり解決策が見つかったのでメモ。 プロジェクトの参照設定でMDXのDLLを追加する C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0 以下 app.configを以下の用に書き換える <startup useLegacyV2RuntimeActivationPolicy="true"> ... これでDirectXがC# on .NET Fra</startup>…

わくわくするルーレット「わくわくルーレット」を作った

わくわくルーレットというソフトを作りました。 説明やらダウンロードやらはこちらから わくわくルーレット バグ報告やら要望やらはこちらへどうぞ 【わくわく】わくわくルーレットサポートスレッド【するの?】 - Greasemonkey等サポート掲示板 ソフトの命…

nicovideo Thumbinfo Popup を更新

インストールはこちら nicovideo Thumbinfo popup for Greasemonkey http://nine.nicovideo.jp/watch/で始まるURLのポップアップに対応しました。

ニコニコ動画の動画再生ページに広告コメントを表示させるGMスクリプト: NicoAds Tab を作った

ダウンロードはこちら NicoAds Tab for Greasemonkey 先日作ったライブラリを使いがてらつくってみた。スクリーンショットを見て分かるとおり、かなりのやっつけ実装。最初はちゃんとしたUI作ろうと思ってたんだけど、思いの他面倒だったから結局やっつけた…

ニコニコ動画の動画再生ページのタブをGreasemonkeyから追加する方法

さっき書いた関数 (Nicopedia Tabで使ったやつ)を使えば,Greasemonkeyからタブが追加できたりしていろいろ便利になるんじゃないかな,と思ったので公開します。 function createPanel(label, id, action) { id = 'itab_' + id; let itab = document.querySe…

新Greasemonkeyスクリプト:Nicopedia Tab を作った

ニコニコ動画の動画再生ページに,ニコニコ大百科の動画記事(の概要?)を埋め込むGreasemonkeyスクリプトです。今回のリニューアルで消えちゃったやつをタブとして復活させました。 インストールはこちら Nicopedia Tab for Greasemonkey 運営が本気出せば…

nicovideo Add Thumbnailを更新

ニコニコ動画の動画再生ページにサムネイルを表示する"nicovideo add Thumbnail"を更新して新インターフェースでも動くようにしました。 インストールはこちら nicovideo Add Thumbnail for Greasemonkey 今回動画タイトルが<h1>じゃなくなったのもそうだけど,</h1>…

ニコニコ動画の「もったいないスペース」を減らすユーザースタイル書いた

ニコニコ動画の動画再生ページが新インターフェースになりましたね!これまで目立たなかったユーザー情報が目立つようになったのが良いですね! そんな新インターフェースなんですが,画説明文が長かったりする場合に下の図のように「もったいないスペース」…

TextNodeにも使えるgetBoundingClientRect

JavaScript(というかDOM? CSSOM?)には getBoundingClientRect という便利なメソッドが用意されています。これを使えば,ある要素のviewport上の座標,つまりブラウザ画面の左上を原点とした座標上での要素の位置を取得することができます。これまでは d:id…

ECMAScript5時代のクラス定義

Firefox4でES5のプロパティ定義がサポートされるようなので,実際に使うときに備えて覚え書きしてみる。 これまでこんな感じで書いてたJavaScriptのクラス定義。 // クラス const Hoge = function(prop) { this._prop = prop; }; Hoge.prototype = { _prop: …

KeySnailでタブを操作するプラグイン 「TabSnail」 を作った

以前公開した,ツリー型タブをKeySnailから操作するコマンド群をKeySnailプラグイン化してみました。インストールすると,タブ操作用の各種エクステ (コマンド)が利用できるようになります。ツリー型タブがインストールされていると,ツリー操作用のエクステ…

ニコニコ動画の「キーワードを含むタグ検索」に大百科アイコンを表示させるGreasemonkeyスクリプト

久しぶりに新Greasemonkeyスクリプトを作りました。 userscripts.orgが落ちてたのでソースコードを貼り付けておきます。適当にコピペして,保存したファイルFirefoxにドラッグすればインストールできるかと。できないかも。 userscripts.orgにアップロートし…

nicovideo Thumbinfo Popup を更新

ひさしぶりな更新。 インストールはこちら nicovideo Thumbinfo popup for Greasemonkey 修正内容 ニコニコ大百科アイコンが正しく表示されない不具合を修正 短縮URL (nico.ms) への対応 その他細かいバグ修正 thanks for サポート掲示板の>>41さん

MATLABで参照型

Wikipediaには MATLAB は参照を持たないため、オープンハッシュテーブル、線形リスト、木構造やその他計算機科学で一般的に用いられる間接参照を含むデータ構造を実装するのは困難である。 http://ja.wikipedia.org/wiki/MATLAB なんて書いてあるけど,実はM…