Scheme処理系を書きました。このYAKLDは、京都大学大...gitignore.ioを使って.gitignoreを自動生成する2018年05月20日Git.gitignoreを手動で用意したり、.gitignoreのテンプレート集をコピペする時代は終わりました。「Emacs」「Python」等)を入力し、「Create」ボタンを押すだけで対応する.gitignoreを生成してくれます。それぞれ指定した要素の中身をHTML/テキストで取得する関数です。この両者は似たような用途で使われがちですが、取得する内容以外にも微妙な挙動の違いがあるため注意が必要です。指定した対象の要素が複数ある場合が両者で大きく異なります。ついては、対象の要素が複数ある場合、その先頭要素の中身のみを返...Elixir基礎文法最速マスター2018年05月18日ElixirElixirのすべての機能は紹介しきれないけど、とりあえずこれだけわかればfizzbuzzくらいは書けるでしょ程度の言語機能の一覧です。並行処理関連の話とかは全く書いてないので注意。throw/catchはKernelのメソッド。hogehoge」と発言したら「hogehoge」と返す簡単なbotを作るまでの流れです。(無料枠で使えるバージョンがこれしかない)を想定しています。Slackでアプリケーションを作成する場合、最初にアプリケーションの種類を選ぶ必要がある。Module.Nameで指定したモジュールのみを再コンパイルすることができます。このhoge.exをロードする。...以外と知らないGCCの拡張文法2018年03月14日CGCCの文法拡張のうち、個人的に使ったことのなかったものをまとめました。複文を括弧で括ることによって、その複文を式として扱うことができます。この際、最後の文の実行結果がそのままその式の値となります。RubyやElixirみたいな感じの挙動。typeを定義する2018年03月13日PHPWordPressPHPもWordPressも全然知らないのにたまに触らないといけない状態が来てしまってつらい。WordPressの投稿は、「通常の投稿」「固定ページ」などのように複数の種類に分けられています。type(投稿タイプ?)と呼ぶようです。typeを新たに登録する必要に迫られたので、行ったことのメモを残しておきます。Airを手に入れたので、最初にインストールしたものとか初期設定とかをまとめておきました。これさえあればそれなりに使えるようになるはず......。Rustを応援したいのでFirefox派です。複素数の兄弟のようなものに、二重数というものがあります。\[(x...Ectoを初めて使ってみたので基本的な書き方とかメモ2018年03月10日ElixirEctoの使い方がなんとなく分かってきたので、Ectoを使ってデータベースの操作を行っていくための大まかな流れをメモしておきます。それぞれの機能の詳細には触れないので、そのあたりは公式のドキュメントなりを読むといいと思います。新しいアプリケーションecto_exampleを作ります。B}はHoge.{}/2という関数呼び出しに相当する構文らしいということがわかります。基礎文法最速マスター2018年03月03日Linuxこれを書いていたらMakefileに関する知識がついてしまったので、ここにまとめておきます。targetNをそれぞれターゲットという。Buzzも例外ではありません。Buzzを謳ったコードは以下の3箇所で見つかりました。23日目の記事になります。こんなことを書いてしまったので、プログラミングからは一旦離れ、京都のおいしいコーヒーが飲める店でも紹介したいと思います。22日目の記事になります。Instagramは近年女子大生を中心に大流行している、ユーザーが画像を気軽に投稿できるタイプのSNSです。Emacsでアスペクト指向プログラミング的なことをできるようにするためのライブラリです。アスペクト指向というのは聞き慣れない言葉かもしれませんが、nadviceを使うだけなら難しくはありません。簡単に言うと、任意の関数の実行前後に好きな処理を挟むことができるライブラリです。world!")...Trampが起動時に失敗してコケるのを防ぐ2017年08月16日Emacsある日、trampを使ってサーバー上のファイルを書き換えた後にemacsを終了させ、再起動しようとすると、以下のようなエラーが出てしまうようになりました。これはかなり茨の道です。できることはできるようですが、BitVisor自体のソースコードを弄ったりする必要があり、割と面倒です。@Tとすることで明示的に型を指定することができるようになりました。この機能はTypeApplicationsという名前で提供されています。Prelude&g...テトリスの盤面の評価関数2017年08月02日Otherふと思い立って、テトリスを自動で解くAIを書いてみました。最初はαβ法でやってみようと思ったのですが、ブロック1つに対して置き場所の候補が3〜40通りくらいあり、探索空間がアホみたいに広くなってしまったため断念。探索の深さを1だけにして、評価関数だけで攻めていく方針でやっています。テトリスの場合はゲームとしてかなり単純なので、あまり深く先読みをしなくてもうまくやればうまくいきそう...ライフゲームを改良しました2017年07月30日Products去年くらいに作ったライフゲームを更新しました。ちなみにゲーム自体にはこちらからアクセスできます。この記事では以下のものについては成り立つと仮定します。この2つについてはそのうち勉強していきたいと思います。SVM(サポートベクターマシン)とは二値分類器の一つで、分離平面と訓練データの間の距離の...記事のサムネイル画像を表示できるようにした2017年07月27日JekyllTwitterとかに投稿したときに記事のサムネイル画像を表示できるようにしました。この記事はテスト用です。インストールは...親要素の高さを子のfloatしている要素に合わせる2017年07月19日CSSつい先ほどまで、このサイトのタグ一覧は画面幅が狭い時に悲惨なことになっていました。この原因は、タグ一覧にfloatされているliタグを使っていることです。現在のタグ一覧の部分は以下のような構成になっています。前回に引き続き、マルコフ決定問題を解いていきます。前回は状態遷移確率がわかっているものであるとして計算をしていましたが、現実は必ずしも遷移確率がわかるとは限りません。更新していく方法が取られることがあります。このような学習方法を直接法といいます。Pagesが更新されなくなりました。以下のようなシンプルな説明だけが出ていました。bui...88%の適合率でドル円の値上がりを予測するプログラムを書いた2017年07月11日FXOCaml機械学習タイトルは釣りです。FXに関しては全くの初心者ですが、適当に分析してみたらなんとなくそれっぽい結果が出てきたので紹介したいと思います。機械学習の勉強のついでにFXの価格予測でもやって一儲けできたら一石二鳥だなーと思い、一番簡単な分類方法として、ドル円が値上がりするかどうかが線形分離できないか試してみました。naming」2017年07月10日OCaml次のような2つのファイルを用意します。これをビルドしようとすると、以下のようなエラーが出ます。Buzz2017年06月30日HaskellGHC.TypeListにはNatというkindが定義されており、自然数のリテラルをkindがNatである型として利用することができます。Buzzくらいなら比較的簡単に書けてしまいます。network内のパケットをキャプチャする2017年06月26日NetworkQEMUにはパケットをキャプチャしてくれる機能があるので、オプションを足すだけで簡単にできます。...人と違うC言語のコードを書く方法ベスト32017年06月25日CC言語は大学の講義などでも使われることが多く、あまりプログラミングを知らない人でもそれなりに読めてしまうので、面白くありません。そこで、ここでは一歩差をつけた通っぽいコードを書くために必要なテクニックを3つ紹介したいと思います。左と右の式を評価し、右の式の結果を返す演算子です。5年前に作ったっきり全く更新もせずに放置していたので、Python2.5が使えなくなり動かなくなっていたのを直しました。いっても、ほとんど何もせずに使っているPythonのバージョンを上げただけです。それ以外にもいろいろと古い部分が残っているので、暇な時にでも作り直したいと思ってます(ただし優先度は低い)。lunch-price-al...Macで$HOSTNAMEとhostnameを一致させる2017年06月23日MacMacでのホスト名の設定は2種類あるようです。1つめが$HOSTNAMEに保存されている値。こちらは、システム設定→共有から変更できます。一つがhostnameコマンドの表示する値。Emacsの(system-name)もこちらを表示します。こちらの方のホスト名は以下のコマンドで変更することができます。Postsの部分の記事タイトルを文字数指定で切り落としていたのですが、CSSでも同様のことができるみたいです。Jekyllな環境でRSS2017年06月22日Jekyll使う人いなさそうだけど無いとなんとなく不安なRSSフィードをこのサイトにも追加しました。Pagesなのでプラグインを使わず、Jekyll管理下のxmlファイルを使ってテンプレートから自動的にフィードの生成をしています。ちなみに参考にしたのは以下のリポジトリ。(たぶんその1)2017年06月19日Algorithm高速にアクセスができ、かつ理論上最も効率よくデータを圧縮した場合と同程度に小さなデータ構造のことを簡潔データ構造といいます。Vectorについて紹介したいと思います。Vectorは文字通り1ビットの値の列で、通常は以下の2種類の操作について考えます。...Twitterのアイコンを寿司にする2017年06月19日TwitterTwitterのアイコンが丸くなってしまったので、昔ながらの寿司に戻す方法を紹介します。Greasemonkeyをインストールします。インストールボタンを押して再起動すれば準備完了です。再起動が終わればFirefoxの右上にキモい猿みたいなアイコンが出てくると思うので、そ...逆FizzBuzzをHaskellで解いてみた2017年06月17日Haskell逆FizzBuzz問題というのがあるらしいです。簡単に言うとFizzBuzzの逆関数を求める問題ですね。Haskellで解いてみました。...破壊的変更を隠蔽するDiffArray2017年06月17日HaskellHaskellのArrayは要素の更新を行うたびに配列全体のコピーが発生するので、頻繁な書き換えには向いていません。...Jekyllでタグごとの記事一覧ページを無理やり作る2017年06月14日JavaScriptJekyllJekyllではタグ一覧や記事一覧は取得できてもタグごとの記事一覧を表示する機能がないので、無理やりそれっぽいのを作りました。...ブログにDisqusのコメント欄を設置した2017年06月14日Jekyll方法自体はいろいろな所に書かれていますし、特に今更説明する必要もないでしょう。コメント欄があるとたまに間違えたことを書いたときに偉い人が集まってきて指摘してくれるので便利です。Pagesに移行しました2017年06月13日Othersタイトルの通りです。サイトのレイアウトとかは今後少しずつなんとかしていこうかと思います。type形式のファイルを、以下のスクリプトにかけて大量のjekyll用htmlファイルに変換しました。できてしまうのが不思議だったので、方法を調べてみました。例として、以下のようなクラスを作ってみます。Treeというデータ構造を使って作られるヒープです。Treeとは、以下のようなデータ構造です。...【重要】MacBookを手に入れたら真っ先にインストールするべき最強アプリn選2017年05月08日Macいい加減研究室で貰ったMacBookの環境設定をしたくなってきたので、とりあえず必要と思われるものとその入手先をメモっておきます。