LiveScript でつまずいたこと

関数呼び出し中の do hoge-func ham, tomato, beacon do a: \foo b: \bar が: hogeFunc( ham, tomato, beacon, { a: 'foo', b: 'bar' } ); になって欲しいのだが、時々こういう風になる: hogeFunc( ham, tomato, beacon({ a: 'foo', b: 'bar' }) ); うん、be…

あけおめ!

ʕ•͡ω•ʔ あけおめ

あんまり怖くないと思いたい null

多くの開発者にとって、null は忌避すべきものだ。 万が一、null に*さわってしまった*ら、あなたは突如発生した例外により、ヨルダン辺りまで吹き飛ばされるだろう。 あと、えーっと、オフィスの天井も失くなってしまう。 null の影響で行方不明になった…

ファイルのサイズを取得するには?

Strongtalk のソースコードを読んでいたところ、このような記述を見つけた: void Bootstrap::openFile() { stream_ = fopen( file_name_, "rb" ); if ( stream_ == NULL ) { has_error_ = true; lprintf( "\nCould not open file (%s) for reading!\n", file…

うどんこビリーでうどんなお正月!!

╰( ´◔ ω ◔ `)╯ やっぱり C++ も面白いな

カレー・ブルストの作り方

www.adventar.org ボイルしたソーセージ(ブルストとも呼ばれる。なるべく太いものが望ましい)を食べやすい大きさに切る。 ケチャップを親の敵のようにかける。 死ぬほどカレー粉をまぶす。 ╰( ´◔ ω ◔ `)╯ Windows でも Perl6 が使えるように rakudo を clone…

雨に唄えばおじさんと揚げ玉ビーチ

www.adventar.org ╰( ´◔ ω ◔ `)╯ またまた Swiff の話だ ╰( ´◔ ω ◔ `)╯ 多分な 換気扇の空、オリーブオイルの海、揚げ玉の海岸。 雨に唄えばおじさんは自分が厄介な場所に来てしまったことを悟った。 ということで、以下のコードはコンパイルエラーになる(は…

カーネルおじさんによる美味しくできるニワトリ料理パターン

www.adventar.org ╰( ´◔ ω ◔ `)╯ 毎回記事本体じゃなくて、ナンセンス釣りタイトルを考えるのに時間を費やしてる気がしなくもない 今朝は Swiff の型について考えたような気がする。 自分の中では Swiff も Uva も文法的なところが違うだけのようになってき…

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

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 に切り替えた。 (๑´ڡ`๑) めっちゃ使いやすい