アメリカ縦断! おにぎりスタンプラリーぶらり旅

www.adventar.org 7 日目。 ╰( ´◔ ω ◔ `)╯ ネタがないな (๑´ڡ`๑) ポケモン楽しい

Uva をはじめようかなー

www.adventar.org エントリーポイント Uva は決まったエントリーポイントを持たない言語です。 例えば、クラスの外においては Java は一切の文あるいは式(クラス・インターフェイス定義、import 文、package 文を除く)を書くことが許されていませんが、 Uva …

James VM のこと

Uva Advent Calendar 2016、 5 日目。 ʕ•͡ω•ʔ 今日は JS の Promise のことを調べてた。 James VM は Uva 用の VM です。 正確には、Uva 用の VM になる予定です。 Uva コンパイラ uvac でコンパイルすると、Uva ソースコードは基本的には James VM 用のバイ…

Linux なデスクトップ環境でおすすめの 10 のアプリ

Uva Advent Calendar 4 日目。 今日は Linux なデスクトップ環境でおすすめのアプリを紹介していきたいと思います。 10 つ全部 Emacs や Vim になったりした 10 things を見たって? 大丈夫。今回は Emacs や Vim 以外のアプリを紹介するから。 Banshee Bans…

紳士的振る舞いを紳士 Spec でテストする

╰( ´◔ ω ◔ `)╯ Argu を使ったテストをしようと思って、NUnit でやってみたら、FSharp.Core の 4.3.0 が必要みたいなんだ ʕ•͡ω•ʔ Argu が FSharp.Core 4.3.0 に依存しているのかな? ╰( ´◔ ω ◔ `)╯ テスト用プロジェクトは 4.4.0 でやってるから、4.3.0 に落…

さあ、Uva を始めよう

Uva Advent Calendar 2 日目。 今日は Rosetta Code の題材を使ってほにゃららら*1。 配列の宣言 100 の要素を持つ bool 型の配列、doors を用意します。 variable はこの変数が可変だという意味を持つアノテーションです。 variable を付けない場合、変数は…

Uva Advent Calendar 一日目

Uva Advent Calendar 1 日目。 今日は 1 日目ということで、Uva じゃないことを書こうかと思います。 ある日、dotnet-cli をインストールしようと思ったんですが、/ がパンパンでビルド中にあぼーんしてしまいます。 これはいかん! と思って、そんなに必要…

Guile では call-with-input-file の proc 内でエラーが起きるとポートが閉じられない件

問題 あんまり問題とは言えないかもしれないが、 (proc port) 内でエラーが起きた場合、ポートを閉じる手続きが呼ばれない。 助けてドラえもん!! とはいえ、プログラムが終了する時に全てのポートは自動的に閉じられるとかどこかに書いてあった気がするの…

バックトレースとか、スタックフレームのこと

さて、現在のスタック・トレースを得るには make-stack 関数を呼び出します。 引数の #t を忘れないようにしてください: (define a-stack (make-stack #t)) a-stack の型をとりあえず <stack> としましょう。 <stack> オブジェクトの中には <frame> オブジェクトが幾つか含まれて</frame></stack></stack>…

1 の脳内で動くと思われる Uva

Uva

オレオレ言語の Uva 熱が続いているので Uva のことについて書く。 Uva って何? Uva は Ceylon をベースにしています。 Ceylon は結構良い構文だし、Uva*1 は Ceylon のサブセットらしいので、そんな感じの名前にしました。 多分、色々と Ceylon と違うくな…

uim が起動しない件

半角全角キーを押しても、全角入力モード?に切り替わらない。 不思議だなーと思って % ps ax | grep uim-xim と打ってみると、見つからなかった。 .xsession にはこのように書いたんだけど: # -*- mode: shell-script; coding: utf-8; -*- export GTK_IM_MO…

Steam が動くようになった件

ただし、以下のコマンドで、だけど。 % STEAM_RUNTIME=0 steam STEAM_RUNTIME=0 は Steam 側のライブラリ*1じゃなくて、/usr/lib のライブラリを使うというスイッチだよ。 あと、cef_extentions.pak はどうしてもどうやって取得すればいいのかわからなかった…

最近よく使ってるコマンド

そのいち これかなぁ: % find -name '*.zip' -exec unzip -O cp932 {} \; 元の unzip がそうなのかはよくわからないけれど、unzip-iconv では unzip <ファイル名> -O cp932 ってやると、-O cp932 が無効なオプションだよって言われるのでとっても悲しい。 そ…

また Steam が動かなくなった件

カテゴリに Arch_Linux って書いてあるけど、私が使っているのは Antergos なんだ。 とにかく、steam を実行するとこんなメッセージが出る: % steam /home/rihine/.local/share/Steam/steam.sh: 行 154: VERSION_ID: 未割り当ての変数です /home/rihine/.loc…

なぜこの書き方がいいの?

LiveScript では、普通の文字列の別の書き方として \hoge というのができる。 SliderService.add-column account.serv, account.name, type, params, (ok, msg) !-> if ok console.log 'create column done.' respond { result: \ok, content: { column: msg…

めっちゃシンプルな更新監視型ビルドツールが欲しい

Hotot3 の core/scripts は CoffeeScript で書かれているので、LiveScript で書き直したりするようなことをしていた。 じゃっばすくりぷよにコンパイルする時に lsc に --watch 付けてやってたんだけど、コンパイルに失敗するとわけ不明なエラーを吐いて落ち…

Socket.IO やってみた

const Http = require( 'http' ); const Express = require( 'express' ); const Socket_IO = require( 'socket.io' ); const app = Express(); const server = Http.createServer( app ); const io = Socket_IO( server ); const port = 3000; app.get( '/'…

ファイルの順番の話

こーいう F# のソースファイルがありますよね。 Batteries.Env モジュールと: // env.fs module Batteries open System module Env = let at (index : int) = let argv = Environment.GetCommandLineArgs() argv.[index] let get = at それを参照する main.f…

Argu すごい

Argu は F# 製のコマンドラインパーサーだよ。 gmake のオプションを前半だけ書いてみた。 type Arguments = | [<AltCommandLine("-B")>] Always_Make | [<AltCommandLine("-C")>] Directory of dir : string | Debug of mode : DebugMode option | [<AltCommandLine("-e")>] Environment_Overrides | Eval of expr : string | [<AltCommandLine("-f")></altcommandline("-f")></altcommandline("-e")></altcommandline("-c")></altcommandline("-b")>…

printfn とかで出力する時に

最近までこんな風にやってたんだけど: let name = user.GetName() // printfn "Hello, %s!" user.GetName() はエラーになっちゃうので // 一旦、変数に束縛する。 printfn "Hello, %s!" name 別にそんなことをする必要はなかったらしい。 <| を使うんだルー…

よく考えると coke とか joke とかいい名前があるじゃまいか

よさげなビルドツールを作ることはよさげな開発人生に一条のいい感じの光を投げかける的ななんかアレなわけです。 以下の C 言語なソースコードをビルドすることを考えてみましょう: // main.c #include <stdio.h> int main() { printf( "Hello, World!\n" ); return </stdio.h>…

RequestPolicy じゃなくて RequestPolicy Continued にしたら捗った

いままで、RequestPolicy を愛用していたんだけど、全然更新されていないのに気がついたので、RequestPolicy Continued に切り替えた。 (๑´ڡ`๑) めっちゃ使いやすい

class が export キーワードで export できなくてちょっと悲しかった

node のバージョンはこんな感じ: % node --version v6.3.1 wasp を書いてたら、 // ↓ class は書けるのに、export ができない!!!>< /* export */ class Emitter { constructor() { this.events = []; } on(name, cb) { this.events = ( this.events || …

ビルドツール Wasp とかどうかな

Fly を見ていたらこういう風に書けたって良いんじゃないかなと思った: const gcc = require( 'wasp-gcc' ); const paths = { scripts: [ 'src/**/*.c' ], dist: 'obj' }; export default function () { this.ready( 'build' ); } export function compile() …

Nemerle やってみた

インストール yaourt でインストールできる: % yaourt -S nemerle へろーわーるど using System; Console.WriteLine( "Hello, World!" ); このファイルを hello.n とすると、ncc を使ってこんな風にコンパイルできる: % ncc ./hello.n -o hello.exe 関数 関…

ちょっと休憩

というか、めちゃくちゃ進んでしまったので、書くのめんどくさい。 % nuget install FParsec -SolutionDirectory . とやることで、./packages/ に FParsec がインストールされることがわかった。

FParsec のチュートリアル的な何か

さて、今日は FParsec 日本語チュートリアルを読んでやってみるよ。 nuget はインストールしてるかな? 私は nuget3 をインストールしてみたよ: % yaourt -S nuget3 勉強用のディレクトリを作成しよう: % mkdir ./hello-fparsec % cd ./hello-fparsec FParse…

OCaml の Test::Simple を目コピしてみた その 4

OCaml のソースコードに沿って TAPDocument.ml を test-document.fs にして、TAPBuilder.ml を test-builder.fs に書いてみた。 なんかクラスっぽいやつでやってみたんだけど、これでいいのかな…………(汗 module Test.Builder type Plan(?count : int) = let c…

OCaml の Test::Simple を目コピしてみた その 3

続き。 ʕ•͡ω•ʔ TAPDocument.ml 完全目コピでけたー! init_document はなんか初期化しそう。 let init_document doc = let count = count_tests doc in let failures = count_test_failures doc in match doc with | Document(PlanNode(plan)::nodes) -> Doc…

OCaml の Test::Simple を目コピしてみた その 2

続き。 OCaml では文字列の結合は ^ だけど*1、F# では + だ。 また、OCaml での string_of_int は F# には存在しないけど、書くとしたらこんな感じになる: let string_of_int (n:int):string = n.ToString() DiagnosticNode を返す関数 2 連発: let create_…