yunomuのブログ

プログラミング関係

MSYS2でRuby開発環境を作る

ウィルスバスターその他いろいろに阻まれてrubyinstaller+DevKit(MSYS2)のインストールに失敗したみなさん。いっそMSYS2そのものをインストールしてしまいましょう。64bitのWindowsの7以降を対象にしています。10ならだいたいOKだと思います。www.msys2.org …

CGIを書こう

タイトル「インターネットになろう」にしようと思ったけどやめた。 今回はちょっとWebをやってみます。「そろそろ何をやりたいか考えてみよう」と言いたいところですが、そんな簡単に見つかるなら幸せなことで、それはそれで良いのですが、普通はとりあえず…

2時間でわかる繰り返し

今回は繰り返しの話です。 繰り返しというのは要するに同じことや似たようなことを何回もやる、ということですが、そのやり方はたくさんあります。これはRubyだからということではなく、様々なプログラミング言語で様々な繰り返しの方法があります。その多数…

「20分ではじめるRuby」解説 4ページ目

前回: 「20分ではじめるRuby」解説 3ページ目 - yunomuのブログ最後です。 実行 まずは3ページ目に戻って、「ファイルに保存して実行」です。 このファイルを“ri20min.rb”という名前で保存して、“ruby ri20min.rb”と 実行しましょう。 メモ帳でもなんでもい…

「20分ではじめるRuby」解説 3ページ目

前回: 「20分ではじめるRuby」解説 2ページ目 - yunomuのブログ オブジェクトを作る それではgreeterオブジェクトを作り、使ってみましょう。 から始まります。最初から飛ばしていますね。 2ページ目の最後にclass Greeterを書きましたね。これがクラスだと…

「20分ではじめるRuby」解説 2ページ目

前回: 実際のところ20分ではじまるかもしれないけどよくわからないよねRuby - yunomuのブログつづき。「20分ではじめるRuby」の今回は2ページ目についてです。今回もマニュアルを見ながらいきましょう。docs.ruby-lang.org www.ruby-lang.org メソッド定義 …

実際のところ20分ではじまるかもしれないけどよくわからないよねRuby

まえがき プログラミングをはじめてみようと思ってとりあえず日本語の解説が多くて名前もいい感じだからRubyを選んでチュートリアルをひととおりやってみようと思って「20分ではじめるRuby」をひととおりやってみたみなさん。実際のところはインストールして…

研究室の思い出 印刷された大量のソースコード

2004年頃、大学4年で研究室に配属され、OSとネットワークの研究室でちょっと専門外の機械学習の研究をしていた。配属直後なので研究というより概念のお勉強から始まる。 その研究室では既に10年続くプロジェクトもあり、打ち合わせのために作られた大量の検…

Goでsubcommandsを使う

git や kubectl みたいなサブコマンドを実装したい時。 たぶん一番楽なのはsubcommandsライブラリを使う方法だと思います。 subcommands package · pkg.go.dev mainは後回しにして、subcommand側から。 Command 型を作って、subcommands.Command インタフェ…

glide getやglide upが動かない

glide getで新しいライブラリをインストールしようとするとこんなエラーが出た。 [ERROR] Error scanning github.com/golang/protobuf/ptypes/duration: open /Users/yunomu/.glide/cache/src/https-github.com-golang-protobuf-ptypes-duration: no such fi…

cabalでビルドをカスタマイズする

cabalファイルだけでは足りない事がある。どうしても単一のプログラムではできないこともあるし、TemplateHaskellでも生成できなくてやむなくソースコードを自動生成するスクリプトを書かざるを得ない事もあります。自動生成なんかやると何かに負けた気分に…

Javaの例外のスタックトレースを操作する(しない)

Javaで、例外を作成するメソッドを作りたくなることが数年に1回くらいある。で、大抵はそんなこと実はやらないほうがよくて、やらないんですけど、まあやることになったとします。やるなよ。 そんでこんなメソッドを作る。 private Exception makeException(…

ファイルとファイルディスクリプタとファイルのようなものたち

プログラムからファイルを読もうとしたらどうするか。 まずディスクを選んで、ディスクに書き込まれているファイルシステムを調べる。次にファイルシステムの管理情報に基づいて目的のファイルのデータブロックを探す。具体的にはファイルシステムの形式に従…

ディスク拡張したのにディスク容量が増えないんだけど(ファイルシステムの話)

例えばAmazon EC2のEBSのように、ディスクが仮想化されるようになり、そうするとディスクの容量を拡張するというよくわかんない事がお手軽にできるようになり、「ディスク容量増やしたんだけどOSから見ると増えてない。なんで」みたいな事が起こり、「ディス…

パッケージ管理システムのこと

自分で作ったプログラムを実行することは、ほとんどの場合で簡単にできます。だいたい動作確認しながら作るので当たり前です。 でも自分で作ったプログラムを人に渡して使ってもらおうとすると、これが結構面倒くさい。 ここでプログラムというのは、実行フ…

死んでもTwitterで遊ぼう

先生が「死ぬまでTwitterで遊ぼう」みたいな事を言ったら、学生に「いや別に死んでもTwitterできますよプログラマなんだから」みたいな事を言われた、という話を去年京都で飲んだ時に聞いた。 そういえば私は昔、人間を作りたくて色々勉強してた事を思い出し…

Android SDKのSQLiteDatabase#execSQLのbindArgsの型

AndroidSDKのSQLiteDatabase#execSQLのマニュアル [http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL(java.lang.String, java.lang.Object[])] よくあるsqlとbindArgs(Object配列)を渡す構造なんですが、このbi…

SSHがつながらない

前回と同じネットワーク構成で。 AからVPN経由でCへのSSH接続を試みる。 % ssh 192.168.2.11 ssh_exchange_identification: read: Connection reset by peerつながらない。Aからインターネット経由でC(eth0)へのSSH接続は普通にできる。 % ssh server_public…

ネットワークがつながらない

基本がわかっていないとなにもかもわからなくなる。 出来事 外で借りてるサーバ(C)を使ってこんな感じのネットワークを作った。 AはWindows 7 Aの隣に何台かノート(D)やら携帯(E)やらがある BはUT-VPNクライアントが動く程度のLinux(CentOS 5系だったと思う)…

haskell-relational-recordとMySQLの識別子の大文字小文字

haskell-relational-record(hrr)とMySQLを使ってプログラムを書いてみようと思った。書き方自体はこのあたり。 https://github.com/khibino/haskell-relational-record https://github.com/krdlab/haskell-relational-record-driver-mysql元々haskell-relati…

Frappuccinoの使い方

前回、Frappuccinoの件をあまりにももののついでみたいに書いてしまったんですが、使おうとすると例によってドキュメントが無くてソースを読む事になって、なったので、その時の足跡です。 https://github.com/steveklabnik/frappuccino Source 前準備として…

Chrome remote-debuggingの話と見せかけてWebSocketとかfrappuccinoとか

最近ちょっとブラウザで遊んでいたので、共有というか。Google Chromeにremote debuggingという機能があります。 https://developers.google.com/chrome-developer-tools/docs/debugger-protocol要するにJavaScript開発者にはおなじみのDeveloper toolsが使…

ノートの使い方

ノートの話をたまに書いているので、じゃあ次はペンの話でも書こうかと思ったけど、ノートの使い方の話は書いてないよねと指摘を受けたので書いてみます。そういやそうだよね。断片的には書いてるけど。まず基本として、ノートは記憶の補助として使っていま…

アルゴリズム問題

最近、CodeIQというサイトの「今週のアルゴリズム」を解くのが楽しい。元々私はこういうアルゴリズム問題を解くのが非常に苦手なんですが、まあこの「今週のアルゴリズム」の問題は簡単だし。20分とはいえないかもしれないけど1時間もかかんない感じだし。で…

UTCTimeをEqで検査する

UTCTimeが関わるテストをQuickCheckで書こうとしてハマった。まずUTCTimeをランダム生成するために、UTCTimeをArbitraryのインスタンスにしようとした。 UTCTimeはDayとDiffTimeの組になっていて、DayとDiffTimeはIntegerから作れるし、IntegerはArbitraryの…

文具トーク

たまにキングジムとかコクヨのサイトを眺める趣味がある。 文具屋では当たり前に便利なものがそろっているんですが、こういうサイトだと新製品とかなんかよくわからないアイテムがあったりして、また違う面白さがあったりします。面白いだけで買ったりとかは…

Haskellで可変長引数

可変長引数を作りたかったわけではないんだけど、というか何がしたかったんだかよく覚えていないんだけど、こういうのを作った。 class Test a where test :: a -> Int test = const 0 instance Test a => Test (b -> a) where test f = 1 + test (f undefin…

io-streams

そろそろio-streamsで遊んでみよう。いや遊んでたのは実のところ随分前なんですけど。 http://hackage.haskell.org/package/io-streamsio-streamsというのはHaskellのストリーム処理ライブラリの一つで、シンプルなのが売りなのかな。 ストリーム処理には私…

スタイラスペンとブギーボードの話

iPad用に静電気タイプのスタイラスペンを買って使ってみてますけど、ここまで書いた段階でもういいやって感じです。参ったな高かったのに。 http://www.princeton.co.jp/product/digitalaudio/psatpa1.html電源入れないと書けないので電池を気にしなきゃいけ…

JavaコードをHaskellで書きなおすのに手こずった話

「続・アルゴリズムを学ぼう」が発売されて、校正をほんのちょっと手伝ったお礼かなんかで発売された本を頂きまして、ぼちぼち読んだりしています。 前作に比べて使いやすいというか、親しみやすいネタが多くて面白いですね。 「続・アルゴリズムを学ぼう」h…