一歩前進

プログラミングに関する雑多なメモ

数式とUMLが記述できる静的サイト生成 Middleman + Asciidoctor の連携

PlantUMLや数式が記述できる静的サイト生成の環境が欲しいと思い調べたところ、Middleman + Asciidotor + asciidoctor-diagramで実現できたのでメモします。 (Hugoが気に入っていたのですが、現時点ではAsciiDocには対応していませんでした。) AsciiDocはM…

不動点とfix演算子

ある関数に対する不動点 とは、 なる です。 例えば、べき乗を関数とみなすと、 となり、1と0はべき乗の不動点となります [1]。 プログラム言語の教科書では という演算子が登場します [2,3,4]。 この と先の不動点はどう関係があるのか、フィボナッチ数の例…

OCaml モジュールとシグネチャの命名規則

モジュール名 OCamlのモジュール名は大文字から始まる必要があり、単語の区切り方は以下の2つのケースが多いようです。 先頭大文字のスネークケース (例: Type_utils) アッパーキャメルケース (例: TypeUtils) 前者はJane Street CoreやOcsigen等で見受け…

OCamlでPostgreSQLにアクセスする

シンプルなPostgreSQLのOCamlライブラリがないかと探したところ、Mottl氏らによるpostgresql-ocamlというライブラリがありました。 というわけで、postgresql-ocamlの導入と簡単な使い方のご紹介です。 公式ページ Postgresql-ocaml インストール OPAM経由で…

MacでPostgreSQL

MacPorts経由でMacにPostgreSQLをインストールしたときのメモです。ここでは、サーバ運用は考慮せず、シングルユーザでの利用を想定しています。 通常ユーザのプロンプトを%、postgresユーザのプロンプトをpostgres$で示します。 インストール % sudo port i…

MacTeX 2014

TeX環境を入れ直したのでメモ。 なんだかんだでhomebrewからMacPortsに戻ってきました。 MacPortsにはtexのパッケージが用意されています。しかし、MacPortsからインストールするとTeXのパッケージ管理ツールTeX Live Manager(tlmgr)での管理が出来ないの…

MacにF#をビルド&インストールする

MacでF# 3.1をビルドしたときのメモ。 0. 前提環境 OS X 10.9.3 Xcode 5.1.1 + Commad Line Tools Git (ソースコード取得用) 1. 事前準備 (1) autoconf, automake, libtool MacPortsやHomebrewあたりで、autoconf, automake, libtoolを用意しておきます。\ …

HaskellのJavadoc, Haddockを使う

HaskellでJavadocやRDocに相当するドキュメンテーション生成ツールHaddockを使ってみます。 インストール cabalが便利なのでcabalを使います。 まず、パッケージ情報を更新しておきます。 $ cabal update 古いパッケージをアップグレードしておきたい場合は…

KeyRemap4MacBookでキーのリピートを速くする

Mac

Macを使っていてカーソル移動や文字を削除するときの動作が遅いなぁ、と思ったことはありませんか? そこで、KeyRemap4MacBookです。 1. インストール (1) まずはKeyRemap4MacBookをダウンロードします KeyRemap4MacBook https://pqrs.org/macosx/keyremap4m…

ghc-mod-3.1.5 depends on haskell-src-exts-1.14.0 which failed to install.

cabalからghc-modを入れようとしたら以下のようなエラーに遭遇しました。 cabal: Error: some packages failed to install: ghc-mod-3.1.5 depends on haskell-src-exts-1.14.0 which failed to install. haskell-src-exts-1.14.0 failed during the configu…

[Mac] perlbrewでERROR: Failed to retrieve patchperl executable.が出たときの対処

Mac上でのperlbrewで"ERROR: Failed to retrieve patchperl executable"というエラーが出たので回避策をメモします。 どうやら、MacPortsからインストールしたwgetに関連するエラーのようで、これを使わないようにすることでエラーを回避できました。 エラー…

畳込関数fold:foldrとfoldlの違い (あるいはfold_right, fold_left)

畳込関数fold リストに関する処理は、以下のようなパターンで処理することが多いです。 f [] = v f (x:xs) = x ● f xs 上記は関数fにリストを与えた時、次のような処理を行います。 リストが空の場合:値vが返される リストが空でない場合:先頭要素xと関数f…

Rubyのバージョン体系と安定版、開発版の見分け方

バージョン体系 (major).(minor).(teeny) 例:1.8.7Rubyでは、major, minor, teenyはそれぞれ1桁の値です(今のところ)。一般に、major、minor、teenyは以下のような意味を示します。 majorバージョンはアーキテクチャやコンセプトの変更、完全な書き換え…

SQL Server のインスタンス名

SQL Serverをインストールするときに、特にインスタンス名を指定していなければ以下のインスタンス名が適用されるらしい。 SQL Server 2012 Express以外の場合 MSSQLSERVER SQL Server 2012 Expressの場合 SQLEXPRESS SQL Server Management Studioから、「…

Start Menu 8 vs Classic Shell for Windows 8.1

※vsと書いておきながら、まともな比較はしていません。かつてのスタートメニューを取り戻すアプリはいろいろとありますが、個人的にはClassic Shell v4.0.0 よりも Start Menu 8 v1.3.0がおすすめです。明確な理由はありません。直感的に使いやすかった、そ…

SQL Server 2012にNorthwindとPubsサンプルデータベースをインストールする

SQL Serverの定番のサンプルデータベースNorthwindとPubsは、SQL Server 2000をベースとしているため、SQL Server Management Studio を使ってSQL Server 2012用に変換をかけるとエラーになります。 そこで、sqlファイルを直接実行してデータベースを作るこ…

tracerouteで応答がないときはtcptracerouteを試す

tracerouteコマンド(Windowsはtracert)を使った時に、経路上のゲートウェイがUDPやICMPに対して応答を返さないようになっていて、経路が分からないときがあります。 そんなときは、TCPを用いてtracerouteを行うtcptracerouteコマンドを使うと経路がわかるこ…