privacy first cloud amberについて

Amber X - Smart Personal Cloud Device という製品をCloud fundingで購入?した。 これは、カリフォルニアのLattice Workという会社?の製品で、簡単に言うとNAS+VPNである。 スマートフォンなどの写真やビデオなどのコンテンツをDrop boxなどのクラウドサ…

マクロでerlang:qlcモジュールの妙な制限を撤廃する

Qlcモジュール erlangにはリスト内包表記でクエリを記述できるqlcモジュールというものが標準で付いており、それをelixirから利用するためのモジュールがQlcだ。hex.pmに登録してあるのでmix.exsにdepsするだけで利用できる。インストールしたのちの話だが、…

「「サマータイム導入はコンピュータシステム的に難あり」は本当か (1/2)」は本当か

「「サマータイム導入はコンピュータシステム的に難あり」は本当か」という刺激的なエントリーが某界隈を賑わしていますが、技術者以外の人は信じてしまいそうな恐れがあるので、検証してみます。 「導入すべき理由について考えてみる」について考えてみる …

[perl]Spreadsheet::XLSXのeast asia localな事情について

とある事情からperlでXLSXファイルを読まなければならなくなり、cpanから それっぽいSpreadsheet::XLSXをインストールしてテストしてみた。 |佐藤| |鈴木| |田代|これをSpreadsheet::XLSXでcsvに変換したいわけだが、どういうわけか、佐藤サトウ 鈴木スズキ …

実行時にマクロ展開を行う

この記事は #サッポロビーム #137 でやったことの記事です。クリス・デイトのリレーショナル言語「tutorialD」が気に入ったので、処理系を作ろうと思っていた。 erlangのmnesiaを基盤として、とりあえずできたのだが、何をするにもフルスキャン必須で、実用…

elixir-v1.1.0リリース

elixirのv1.1.0がリリースされました。パチパチ。MapSetなど重要な機能が追加されています。Macro周りではimportでの名前の衝突を検出して、勝手に乗っ取ることがしずらくなっています。Mm.exというファイルを作ってみます。 defmodule Mm do def h do IO.pu…

elixir v1.1.0-betaに対応したリファレンス作った

最近盛り上がってきているelixirですが、v1.1.0-beta記念に、久しぶりに リファレンスの翻訳を再開してみた。 いつものように elixir, iex, ex_unit だけですが、http://ns.maqcsa.org/elixir/docs/v1.1.0-beta/に置いてみました。これまで同様、やる気のな…

QLC for elixir

QLCとはerlangのリスト内包表記を使ったクエリ書式であり、リストやEts, Dets, Mnesiaなどに対応している。今回はこれをelixirで使えるようにしようと思う。 qlcの使い方 基本的には、erlangなので変数は大文字で、 [Expression || Qualifier1, Qualifier2, …

アナフォリックマクロを作ってみる

Elixir Advent Calendar 2014 16日目。またマクロのネタを。 On Lispでは、Common LISPの力の例として、アナフォリックマクロが紹介されている。elixirでも、アナフォリックマクロを作ってみよう。 アナフォリックマクロとは アナフォラ(anaphora)というのは…

[elixir] マクロを使ってloop/recurを実装してみる

Elixir Advent Calendar 2014 7日目の記事。前日は@keithseahusさんの 去年のやつをv1.0仕様で書き直します だった。 loop/recurとは何? 最近からelixirを始めた人にはピンとこないかもしれないが、elixir-0.5あたりでサポートされていた、無名関数を使わず…

elixirプロトコルについて(Enumerable)

elixirでは標準でいくつかのプロトコルを提供しているが、あまり目立っていない。そこで、モジュールではなくプロトコルに着目して調べてみた。 Enumerable Enumerableとは、「数え上げることができる」という意味で、主にEnum、StreamモジュールがEnumerabl…

elixir地域化の話: アプリケーションのロード

地域化の話ではあるけれど、Elixir/Erlangのコードローディングとアプリケーションの話でもある。 地域化の基本設計の段階で、翻訳リソースはアプリケーション毎(OTPでいうところのアプリケーション)に決定した。 ところが、Code.get_docs/2では、モジュール…

elixir地域化の話その2

前回のExgettextは、ビルドが面倒だったり、mixのdepsへ入れると うまく連動しないとか不満があったので、その辺を整備してみました。 不満1 mix depsに入れるとexmoがビルドされない 当たり前で、deps.compileではMix.Tasks.Compileが呼ばれます。Mix.Tasks…

[elixir] Elixir地域化の話

依然として開発が活発なElixirですが、日本語のサポートが欲しいと思って、地域化のパッケージを作成してみました。国際化/地域化パッケージと言えばGNU gettextですので、できるだけGNU gettextを使うようにしました。 Exgettext 地域化するためにはまず、 …

[elixir][erlang] erlang/OTP-R17とelixir

やっとerlang/OTP-R17がリリースされました。UTF-8の全面採用、mapsデータ型の(実験的)サポート、名前つき無名関数など盛りだくさん。 Maps -- Records are dead, long live maps! いわゆるperlでのハッシュがやっと実装された。これまではproplistモジュー…

無名関数での再帰処理

elixirでの無名関数はfnスペシャルフォームで定義できるが、無名関数のため、自分自身を呼び出すような処理は記述できない。 たとえば、フィボナッチ数を求める関数は、 fn (0) -> 0 (1) -> 1 (n) -> self(n-1) + self(n - 2) のように書くことは出来ない。 …

shinjuku.ex#7

久しぶりに開催されたshinjuku.exに参加。今年に入ってからelixir界隈はにぎわってきていて、 Programming Elixir のような書籍が現れてきた。他にもオライリーからも出版されてきている。そんな背景と関係あるのか無いのか、今回はKDDIウェブコミュニケーシ…

ex_doc

elixirは「ドキュメントが第一級のオブジェクト」という面白い概念をもっている。どういう事かというと、プログラムのドキュメントをプログラムから操作できるという事である。doxygenなどは、プログラムのコメントを書式化するものだが、elixirではモジュー…

erlang like record manipulator

rabbitmqのクライアントamqp_clientをelixirで使おうと思ったのだが、erlangのrecordを使い倒していて困った。elixirにもレコードはあるし、erlangレコードをコンバートする事も出来るのだが、-includeを追いかけてくれないとかのelixirのRecord.extract_fro…

韓国への「サイバー攻撃」続報その4

Google 翻訳 によると、 21日、放送通信委員会は "去る20日、金融·マスコミのコンピュータ·ネットワーク麻痺を起こしたサイバーテロが一般国民に拡散する可能性と追加攻撃が発生する可能性など、あらゆる可能性を開いておいている"とし、 "個人でもPCを起動…

韓国での「サイバー攻撃」の続報その3

ついに原因判明。デスブログに以下のエントリーがあることが判明した。 久しぶりに食べたコリアンは とってもおいしかったです〜♪ キムチのお土産までいただいて お腹もいっぱーーい! 攻撃元が中国のIPだったが、実は勝手に韓国の農協内部で使っていたとか…

韓国での「サイバー攻撃」の続報

http://itpro.nikkeibp.co.jp/article/NEWS/20130321/464942/によると、WSUSがクラッキングされたのが原因と発表している。 マルウエア対策を実施しているはずの大手企業が被害を受けたのは、企業内でセキュリティパッチを一括管理する更新管理サーバーがハ…

韓国での「サイバー攻撃」の簡単なまとめ

http://www3.nhk.or.jp/news/html/20130320/k10013333751000.html によると、 韓国で20日午後、主要な3つのテレビ局や大手銀行などで社内のイントラネットがほぼ同じ時間帯から使えなくなり、韓国政府は、「ハッキングにより不正プログラムが流されたこと…

[elixir][heroku][dynamo] herokuでrun dynamo!してみるテスト

dynamoというweb frameworkがある。sinatraに似ているということだが、sinatraに詳しくないのですいません。 get "/" do render "hoge.html", [a: "test", b: "teset2"] end とかするとテンプレートhoge.html.eexに変数 aに "test", bに"test2"が代入されて…

elyxerでlyxからhtmlを生成してみた

lyx

elyxerというpythonで記述されたconverterがあり、lyx標準のxhtmlよりプリティな出力が得られるらしいので試してみた。 パッチとインストール 本家からダウンロードして % sudo python install.py でインストール完了だが、このままだと、includeしたlisting…

Elixir v0.5.0 releasedの超意訳

はじめのお断り これはPlataformatec社のコンテンツを勝手に翻訳したものです。 追記: twitterで翻訳した旨伝えたところ、怒られなかったです TOEICの成績がヤバすぎる私の超意訳なので、突っ込み歓迎。 文中の「私」は作者のJosé Valimを指します。 では行…

elixir-0.5.0 リリース

Release 0.5.0 \o/ · elixir-lang/elixir@6052352 · GitHubによると、0.5.0がリリースされた。0.5.0-devからの主な違いは、 new syntax: match: が->になり、cond 式が追加。 else:、after:などが else, afterなどになり、より普通の文法に。 @file属性の追…

elixirはプログラマの万能薬になるか その4

今回はマクロプログラミングをelixir自身を例題にしていこうと思うが、マクロをプリプロセッサと勘違いしている人も多いので、まずは入門から。 マクロ入門 Elixirのマクロは、コンパイルプロセス中において、構文解析後のツリーを入力として、別のツリーを…

elixir-modeをハックしてみた

elixir向けのemacs メジャーモードとしてはhttps://github.com/secondplanet/elixir-modeがあるのだが、0.4.0-dev以降のelixirには対応していない。elixir側も結構キーワードが変わっているし、作者氏も更新するのをやめてしまったみたいだし、インデントコ…

elixirはプログラマの万能薬になるか その3

前回はrubyなところを主に説明してきたので、いよいよ今回はLispな所であり、個人的に最もエキサイティングだと感じているメタプログラミングについて記述する。 メタプログラミング プログラムを書くプログラムを書く事をメタプログラミングと呼ぶ。Cのプリ…