View resize.go
package main
import (


Let's build a small distributed system to mine a new cryptocurrency and become millionaires in ElixirCoins!

An ElixirCoin is a {secret_string, positive_integer} pair for which the MD5 digest of the concatenation of the secret string with the given integer is a hash whose hexadecimal representation starts with at least 5 consecutive zeroes.

For instance:

  • {"foo", 123} is not an ElixirCoin because the MD5 hash of foo123 is ef238ea00a26528de40ff231e5a97f50
  • {"Serun+u", 1} is a valid ElixirCoin because the MD5 hash of Serun+u1 is 00000011f4de73238f12fb2c57d5dc56
View SignalOfRandomNum.elm
module SignalOfRandomNum where
import Graphics.Element as GE
import Time
import Random
import Maybe exposing (..)
randomIntSignal : Int -> Int -> Signal Time.Time -> Signal Int
randomIntSignal lo hi inputSignal =
View day1.elm
module Day1 where
import Graphics.Element as G
import String
import List
import Maybe exposing ( Maybe(..) )
instructions =

Instead of implementing its own asset pipeline Phoenix uses Brunch, a fast and developer-friendly asset build tool. Phoenix comes with a default configuration for Brunch and it will work out of the box, but it is very easy to bend it to our needs, add support for various script and style languages, like CoffeeScript, JSX, or LESS.

Brunch has a very good tutorial, but this short guide should be enough to get us started with asset management from the Phoenix perspective.


Brunch is a Node.js application. A newly generated Phoenix project contains package.json which lists packages for installation with npm, the Node Package Manager . If we agree to install dependencies when running mix, Phoenix will run npm for us. If we don't, or if we change package.json, we can always do this ourselves:

View expand.ex
defmodule UselessMacros do
defmacro bar(42) do
quote do
"the answer"
defmacro baz(42) do
quote do
View WiceGrid version

OCTOBER 18, 2009

Today WiceGrid has reached the next level of maturity and was awarded the tag of version 0.5.

This version of WiceGrid is accompanied by an application called WiceGrid Examples running online and with source code available on GitHub.

Here's a list of changes as compared with version 0.4:


View Moving to Ruby

FEBRUARY 28, 2010

Ruby 1.9.1 was released more than a year ago, but the migration to it has been slow. Looking forward to using the new Fiber class(1, 2), sexier functional syntax, and, of course, enjoying the speed, I decided to move a Rails app that I had started recently, to 1.9.1.

Here are a few tips:

Before you start, consider using Ruby Version Manager (RVM) to manage your Rubies and gems. RVM allows to quickly switch between various Ruby implementations (including such exotic implementations as MagLev), keeping a separate gem set for each interpreter. It even allows you to create your own named gem sets (per project, for example), which I find a very cool feature. If you use Mysql, follow the instruction on how to compile the Mysql gem here: [](