fxn is currently certified at Master level.

Name: Xavier Noria
Member since: 2001-06-15 10:41:45
Last Login: 2013-01-03 15:28:17

FOAF RDF Share This

Homepage: http://www.hashref.com

Notes:

About me

Everlasting student. Interested in X for all X.

Feel free to contact me at `echo -n ska@unfuers.pbz | tr a-z n-za-m`.

Certification

Projects

Articles Posted by fxn

Recent blog entries by fxn

Syndication: RSS 2.0
15 Nov 2011 (updated 16 Nov 2011 at 14:17 UTC) »

A Virtual Machine-based Development Environment

As many independent software developers, I normally have several projects going on: clients, side-projects, open source projects... Over the last years I have refined a development environment optimized for that use case that has worked really well for me. Let me share it in this post.

Isolated Environments

In a normal day I may work for a client that has a Rails 2.3.5 application with Solr, memcached, some custom vhosts, PostgreSQL 8.4, and a CAS running on Tomcat. Later at night I may work on Ruby on Rails and be able to, e.g., run the Active Record test suite with Ruby 1.9.3 and PostgreSQL 9.1.

If you multiply that by some number of projects, it becomes clear that a single machine can't possibly handle such a variety of environments in any predictable way. Well, you can predict chaos perhaps :).

And not only for today. If client C needs something three months after our last collaboration, I want to be able to launch his exact environment right away. No matter whether in the meantime I installed/uninstalled a gazillion things, upgraded the operating system, or got a new machine. I want to be able to launch the environment of client C anytime.

In summary, you need a robust setup that provides isolation to every project you work on. Virtual machines are a solution to that problem that allow you to have one single development (real) computer.

My development environment is totally based on virtual machines.

Software Choices

My laptop is a 13'' MacBook Pro from mid-2009, 4 GB of RAM, running Lion nowadays.

I have VMware Fusion and all the virtual machines run Linux. Since as a user I love Mac OS X I do most of my work in the host (I'll tell you how in a minute). In the virtual machine I basically need just a console, a light desktop is hence enough. My distro of choice nowadays is Lubuntu running the open-vm-tools Ubuntu package. That package provides desktop resize on window resize, copy & paste between the guest and the host, etc.

As I said, I do not work inside the virtual machine. I launch the virtual machine and there I have the complete runtime I need. Web servers and test suites run in the virtual machine, but editing, browsing, etc. happens in the Mac. To accomplish that I have a couple of tricks.

First, sharing the file system. VMware allows you to mount your home in the guest via what they call Shared Folders. But the virtual machines should be round and complete, so the code of my clients should be there, not in the host. In addition to that, Shared Folders do not work well with git, I think because of the hard linking going on. I rather go the other way around: I mount the guest file system in the host via SSHFS. If you use MacPorts just run sudo port install sshfs and you're golden. Looks like Homebrew also has a sshfs package. It surely works, but I don't use Homebrew.

Now, SSHFS mounts the file system through (local) SSH, not as fast as the hard drive. But I only need the files for editing and I don't really care if saving a file takes 5 ms. So no big deal. The only detail you probably want to tweak is disabling automatic project tree sync on focus in your editor/IDE if it has the concept of a project tree and tree sync on focus.

Second, I have a personal rule: One project at a time. If I am working for client C, I am totally focused on C's project. That's all I want to have up. Given that rule, I can implement a couple of convenient simplifications: All virtual machines have the same IP, and all virtual machines have the same mount point. Let me explain that in a dedicated section.

One Single IP, One Single Mount Point

VMware has several network modes. My virtual machines are configured to run under the default NAT mode, in which VMware does DHCP for the guest. That by itself is a little bit cumbersome because you get different IPs in different sessions, and sometimes you even get the IP changed while the machine is running. I've found that fixed addresses work better for my needs, up to a point where all the virtual machines have the same one.

The configuration for DHCP as of this writing lives in the file /Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf, and to assign a fixed IP to a virtual machine you just need to know its MAC address. The MAC address can be manually set in the virtual machine settings, but I just grab whatever is printed by ifconfig eth0 after a standard installation.

Then, open the config file mentioned earlier and add towards the bottom something like this:


host rails {
hardware ethernet 00:0c:29:0a:98:b8;
fixed-address 172.16.132.127;
}

That's the DHCP configuration for the virtual machine where I have the development environment for Ruby on Rails. The host name "rails" is an arbitrary string. It has MAC address 00:0c:29:0a:98:b8 and a fixed IP of 172.16.132.127. I have a host configuration like that one per virtual machine.

To choose the IP have a look at the subnet block generated by VMware towards the middle of the file:


subnet 172.16.132.0 netmask 255.255.255.0 {
range 172.16.132.128 172.16.132.254;
...
}

According to the first line you have to choose an IP within 172.16.132.* that it is outside the specified range. My choice is 172.16.132.127.

Since we have the same IP for any virtual machine, we can create an entry in /etc/hosts that gives us a single hostname to rule them all:


172.16.132.127 vm

Mounting the file system is easily scriptable:

sshfs -o StrictHostKeyChecking=no -o reconnect -o workaround=rename fxn@vm:. $HOME/vm

Unmounting is also easily scriptable:

diskutil umount $HOME/vm 2>/dev/null

Spurious Files

Some programs in the host may create metadata files for the Mac like .DS_Store and friends. I don't like such files in the virtual machines. For those few programs that do that there's normally a configuration option or somesuch to disable it. There's a shell one-liner for TextMate for example, but I no longer remember it because it's been a while since I used TextMate, but you can Google for it. AFAICT, Emacs, Vim, Sublime Text 2, and RubyMine leave no spurious files out of the box.

As a last resort, if I get any of these spurious files for whatever reason I just run unmac. That's a little utility of mine implemented as a Ruby gem that cleans a given directory. To install it gem install unmac, possibly with admin privs. In my experience I rarely need to run unmac though.

Backups

You do not want Time Machine to do incremental backups of your virtual machines because they are big files on disk that change continually. For backups I use Carbon Copy Cloner.

That's another big win. Backups are trivial, no matter whether your hard disk breaks, or you get a new computer, you are ready to work in no time and with the guarantee that all those complicated environments are consistent and safe. The peace of mind that gives is invaluable.

3 Oct 2010 (updated 3 Oct 2010 at 19:48 UTC) »

Ruby, C, and Java are pass-by-value, Perl is pass-by-reference

Call semantincs in languages that manage references often confuse people. It is a recurring thread in Java and Ruby. The reason is simple: "pass-by-reference" has the word "reference" in it and thus people assume it has something to do with the language's "references". Not really.

In Ruby and Java "reference" is a term that is close to the concept of "pointer" in C. You have a handler that somehow points to something, rather than being that very something. The language may hide the indirection for you. Usage is straight in Ruby or Java. Not so in C or Perl, where to go from a pointer/reference to their objects you need an arrow.

When we talk about "pass-by-value", though, the fact that the language has references is irrelevant. We are really talking about where's the value associated with the parameters' name. Particularly we mean that the value is stored in an area unrelated to the storage in the callee. Let's see this.

Say we have an assignment


    a = 1

This assignment means that somewhere there's an association between the name "a" and the value "1", which is itself stored somewhere:


    +-----+       +-----+
    |  a  | ----> |  1  |
    +-----+       +-----+

If you assign


    b = 1

conceptually we get two associations to two different value storages:


    +-----+       +-----+
    |  a  | ----> |  1  |
    +-----+       +-----+
 
    +-----+       +-----+
    |  b  | ----> |  1  |
    +-----+       +-----+

In particular, if in the next line we change b:


    b = 2

we all know the situation becomes


    +-----+       +-----+
    |  a  | ----> |  1  |
    +-----+       +-----+
 
    +-----+       +-----+
    |  b  | ----> |  2  |
    +-----+       +-----+

In particular a still holds 1.

In languages like Perl you can have this other diagram:


    +-----+
    |  a  | --+
    +-----+   |    +-----+
              +--> |  1  |
    +-----+   |    +-----+
    |  b  | --+
    +-----+

In Perl jargon you say that a and b are aliases. In that situation, any assignment to a is reflected in b, and any assignment to b is reflected in a. Those names are associated with the same storage area.

The terms "pass-by-value" and "pass-by-reference" are about names linked to storage. And with those pictures you can understand what they mean. I am gonna obviate scope to simplify this and use different variable names on purpose, so this is not exact, but the essence is there.

Say you have


  def foo(b)
    ...
  end
  
  a = 1
  foo(a)

In a pass-by-value language the situation is:


    +-----+       +-----+
    |  a  | ----> |  1  |
    +-----+       +-----+
 
    +-----+       +-----+
    |  b  | ----> |  1  |
    +-----+       +-----+

The interpreter or whoever runs your language performs a copy behind the scenes of the storage area associated with "a", and associates the new one with "b". That's why if you reassing to b inside foo a is unaffected.

On the other hand, in a pass-by-reference language the situation is:


    +-----+
    |  a  | --+
    +-----+   |    +-----+
              +--> |  1  |
    +-----+   |    +-----+
    |  b  | --+
    +-----+

That's why you can implement swap in such languages.

But I can change the state of a mutable object in Ruby/Java because I pass a reference!

That is true, and it has no bearing with this. Since Ruby is pass-by-value, you can be certain that when the method returns your variable will refer to the same object. object_id is guaranteed to be the same after a method invocation (modulo black magic). Same for Java.

But I can change the integer a variable holds by passing a pointer in C!

That is true, but you are not passing the integer, you are passing a pointer to the integer. Since C is pass-by-value, if you had a variable holding the pointer before the call, you can be totally certain the variable will hold the same exact pointer after the call.

Summary

The terms pass-by-value and pass-by-reference are about links from names to storage areas, they have nothing to do with the references or pointers of your language.

That's a bit simplified, in Perl for example the aliases happen within @_, but that's the key idea.

8 Aug 2010 (updated 8 Aug 2010 at 19:43 UTC) »

When Classes Leak Into Ruby Contracts

Sometimes Ruby APIs document non-Rubyesque expectations that artificially separate "classes" and "objects", a la Java. I'd like to give you a few examples to depict what I mean, and explain why that's artificial later.

First example, the Rack specification says that

A Rack application is an Ruby object (not a class) that responds to call.

That's not very idiomatic, why classes are banned? A Ruby programmer would expect this shorter contract:

A Rack application is an Ruby object that responds to call.

That's it, the nature of the object is irrelevant to Rack, the only thing that matters is that the object responds to call (with such and such signature). Indeed a class that responds to call is a perfectly valid Rack application. The implementation is Rubyesque, but the wording in the docs is not.

Another example taken from the chapter on routing of O'Reilly's Rails 3 in a Nutshell:

Constraints may either be specified as a hash, a class implementing a matches? class method, or a class that responds to a call method, such as a Proc object.

The suspicious bit in that contract is "a class implementing a matches? class method". Indeed there's no requirement in the routing system that you pass a class. All it matters is that you pass any object that responds to matches?, see:


    constraint.respond_to?(:matches?) && !constraint.matches?(req)

That's idiomatic Ruby, where the interface is the only thing that matters, classes are irrelevant.

Classes Are Ordinary Objects

Technically in Ruby there are no "class methods" as opposed to "instance methods". Ruby only has instance methods. Let me summarize how this works.

If you define a Person class having a name instance method, instances of Person respond to name. No surprises here. But individual person instances can respond to more stuff:


    def person.custom_method
      ...
    end

In the example above, the object stored in the person variable also responds to custom_method. Such a method targeted to a particular instance is called a singleton method. You can for example build simple mocks this way:


    o = Object.new
    def o.name
      "John"
    end
    # Now pass o to code that expects anything responding to #name.

And you can also override methods defined in the class of the object.

In Ruby classes are objects. When you write Person, that's an ordinary constant. Totally ordinary. It is the same kind of ordinary constant as


    X = 1

No difference. You can think of


    class Person
    end

as being equivalent to


    Person = Class.new

The Ruby interpreter then processes the class definition body, but as far as the constant is concerned that's it. In fact, if you have an anonymous class and assign it to a constant later, then it gets its name automatically after the constant's name.

So, this is a key point, the Person constant is ordinary, it happens to evaluate to a class object, the same way X above evaluates to an integer. And here is when Ruby deviates from other OO languages: classes are ordinary objects also, objects of type Class:


    klass = Person
    person = klass.new

That works because Person just evaluates to a class object, and as with any other object you can store classes in variables and pass them around, and that object responds to the new method, the same way person responds to name. Why? Because klass is an object of the class Class, which defines new among its instance methods. Simple and elegant.

So at this point you need to forget a bit mental schemas coming from other languages and open your mind to accept the derivations of this particular OO model.

Since classes are ordinary objects, you can also define singleton methods on them, the same way we did with person before. Do you recognize now this idiom?


    class Person
      def self.find_by_name(name)
        ...
      end
    end

In the body of a class self is the class object in scope, and so that is just defining a singleton method on it.

All classes are instances of Class, a "class method" is any method a class responds to, which may come from Class, or be defined for particular classes, that is, singleton methods.

Class Methods, Fine

I am fine with the term "class method" in Ruby as long as we know what we are talking about. Technically Ruby has no such things, everything are instance methods, but you can take "class method" as short for "an instance method of the class object". Depending on their intended usage, class methods are also referred to as "macros", also a convenient term, think has_many in Active Record.

But even if you can talk about "class methods" in that sense, you rarely need to tell classes from non-classes in API contracts based on interfaces.

12 Jun 2010 (updated 12 Jun 2010 at 23:20 UTC) »

Ruby Hero 2010

I was awarded Ruby Hero 2010 in RailsConf this week. I am deeply grateful and honored by this recognition I received together with José Valim (devise, Rails core team), Nick Quaranto (RubyGems.org), Aaron Patterson (Nokogiri, SQLite driver, and a ton of other software), Wayne Seguin (RVM awesomeness), and Gregory Brown (Ruport, Prawn, Ruby Best Practices...).

532 older entries...

 

fxn certified others as follows:

  • fxn certified jao as Journeyer
  • fxn certified fxn as Journeyer
  • fxn certified jaq as Apprentice
  • fxn certified sjanes71 as Journeyer
  • fxn certified jacobo as Journeyer
  • fxn certified Phoon as Apprentice
  • fxn certified DraX as Apprentice
  • fxn certified highgeek as Journeyer
  • fxn certified nymia as Journeyer
  • fxn certified robhudson as Journeyer
  • fxn certified footrot as Apprentice
  • fxn certified aftyde as Master
  • fxn certified wlach as Journeyer
  • fxn certified Szilva as Apprentice
  • fxn certified Bryce as Journeyer
  • fxn certified BrucePerens as Master
  • fxn certified davem as Master
  • fxn certified tronical as Master
  • fxn certified hacker as Master
  • fxn certified Marcus as Master
  • fxn certified julian as Journeyer
  • fxn certified Ilan as Apprentice
  • fxn certified pjdowner as Apprentice
  • fxn certified ottawaDave as Apprentice
  • fxn certified Zaitcev as Journeyer
  • fxn certified zeevon as Journeyer
  • fxn certified mulix as Journeyer
  • fxn certified sl0th as Apprentice
  • fxn certified ebizo as Apprentice
  • fxn certified pfh as Journeyer
  • fxn certified ldunbar as Apprentice
  • fxn certified merlyn as Master
  • fxn certified ask as Master
  • fxn certified bratsche as Journeyer
  • fxn certified raph as Master
  • fxn certified deekayen as Journeyer
  • fxn certified olandgren as Apprentice
  • fxn certified stevej as Journeyer
  • fxn certified stone as Journeyer
  • fxn certified aaronl as Journeyer
  • fxn certified advogato as Master
  • fxn certified jpick as Journeyer
  • fxn certified ztf as Apprentice
  • fxn certified jkinsella as Apprentice
  • fxn certified malcolm as Journeyer
  • fxn certified Al as Journeyer
  • fxn certified Dionys as Apprentice
  • fxn certified bjf as Apprentice
  • fxn certified murrayc as Master
  • fxn certified xach as Journeyer
  • fxn certified klevin as Journeyer
  • fxn certified ishmukler as Journeyer
  • fxn certified maragato as Journeyer
  • fxn certified mobius as Journeyer
  • fxn certified chakie as Journeyer
  • fxn certified cwinters as Journeyer
  • fxn certified Ausmosis as Apprentice
  • fxn certified jfleck as Journeyer
  • fxn certified taral as Journeyer
  • fxn certified davej as Master
  • fxn certified mdorman as Journeyer
  • fxn certified wichert as Master
  • fxn certified orph as Journeyer
  • fxn certified harvey as Apprentice
  • fxn certified rvdm as Journeyer
  • fxn certified jono as Master
  • fxn certified scottg as Journeyer
  • fxn certified ajaxx as Journeyer
  • fxn certified criswell as Journeyer
  • fxn certified Kay as Journeyer
  • fxn certified pjones as Journeyer
  • fxn certified josh as Journeyer
  • fxn certified andrei as Master
  • fxn certified ariya as Journeyer
  • fxn certified Mulad as Apprentice
  • fxn certified vinsci as Master
  • fxn certified dmuz as Journeyer
  • fxn certified sommere as Journeyer
  • fxn certified wainstead as Apprentice
  • fxn certified Wheat as Apprentice
  • fxn certified mstarch as Journeyer
  • fxn certified baruch as Journeyer
  • fxn certified vab as Journeyer
  • fxn certified nchriss as Journeyer
  • fxn certified dsifry as Master
  • fxn certified aleix as Apprentice
  • fxn certified lerdsuwa as Journeyer
  • fxn certified ErikLevy as Apprentice
  • fxn certified morcego as Journeyer
  • fxn certified logic as Journeyer
  • fxn certified superant as Master
  • fxn certified mathieu as Journeyer
  • fxn certified keverets as Apprentice
  • fxn certified carl as Apprentice
  • fxn certified neurogato as Journeyer
  • fxn certified sad as Apprentice
  • fxn certified slef as Apprentice
  • fxn certified mikeszcz as Apprentice
  • fxn certified jum as Journeyer
  • fxn certified ignatz as Apprentice
  • fxn certified Thias as Journeyer
  • fxn certified ks as Journeyer
  • fxn certified buckley as Apprentice
  • fxn certified prla as Apprentice
  • fxn certified jtauber as Master
  • fxn certified Iain as Journeyer
  • fxn certified LotR as Journeyer
  • fxn certified acidx as Apprentice
  • fxn certified blackamon as Apprentice
  • fxn certified jf as Apprentice
  • fxn certified leonardr as Journeyer
  • fxn certified schoen as Master
  • fxn certified MikeGTN as Journeyer
  • fxn certified barryp as Journeyer
  • fxn certified shlomif as Journeyer
  • fxn certified xcyber as Journeyer
  • fxn certified mjs as Master
  • fxn certified djcb as Journeyer
  • fxn certified bagder as Master
  • fxn certified mbp as Master
  • fxn certified purcell as Journeyer
  • fxn certified nutella as Journeyer
  • fxn certified gary as Journeyer
  • fxn certified bcully as Journeyer
  • fxn certified hub as Master
  • fxn certified bvermeul as Journeyer
  • fxn certified mjcox as Master
  • fxn certified ruaok as Journeyer
  • fxn certified TheCorruptor as Journeyer
  • fxn certified adulau as Journeyer
  • fxn certified eikeon as Journeyer
  • fxn certified mtearle as Apprentice
  • fxn certified kgb as Master
  • fxn certified bruder as Journeyer
  • fxn certified Dougster as Journeyer
  • fxn certified chromatic as Journeyer
  • fxn certified Waldo as Apprentice
  • fxn certified Jewelsthorn as Apprentice
  • fxn certified jianshi as Apprentice
  • fxn certified kahlage as Journeyer
  • fxn certified gregf as Journeyer
  • fxn certified Jordi as Journeyer
  • fxn certified emk as Journeyer
  • fxn certified ishamael as Journeyer
  • fxn certified richieb as Journeyer
  • fxn certified gwossum as Journeyer
  • fxn certified macricht as Journeyer
  • fxn certified dyork as Master
  • fxn certified baretta as Master
  • fxn certified NickElm as Journeyer
  • fxn certified rooneg as Journeyer
  • fxn certified edd as Journeyer
  • fxn certified ralsina as Journeyer
  • fxn certified fpmip as Journeyer
  • fxn certified rupert as Journeyer
  • fxn certified gdvieira as Apprentice
  • fxn certified gman as Journeyer
  • fxn certified zachlipton as Journeyer
  • fxn certified wwwwolf as Apprentice
  • fxn certified robster as Journeyer
  • fxn certified eric as Journeyer
  • fxn certified tdxdave as Apprentice
  • fxn certified nosinut as Journeyer
  • fxn certified fufie as Journeyer
  • fxn certified jhermann as Journeyer
  • fxn certified lilo as Master
  • fxn certified dto as Journeyer
  • fxn certified clausen as Journeyer
  • fxn certified lgerbarg as Master
  • fxn certified brainsik as Journeyer
  • fxn certified jch as Master
  • fxn certified dmerrill as Master
  • fxn certified yakk as Journeyer
  • fxn certified effbot as Master
  • fxn certified kelly as Journeyer
  • fxn certified Eli as Apprentice
  • fxn certified gt3 as Journeyer
  • fxn certified RaNma as Apprentice
  • fxn certified mukul as Apprentice
  • fxn certified dan as Journeyer
  • fxn certified gilbertt as Journeyer
  • fxn certified tjansen as Journeyer
  • fxn certified trow as Journeyer
  • fxn certified goingware as Journeyer
  • fxn certified larsu as Journeyer
  • fxn certified lukas as Journeyer
  • fxn certified kmcmartin as Apprentice
  • fxn certified alexr as Journeyer
  • fxn certified Denny as Apprentice
  • fxn certified amars as Apprentice
  • fxn certified syngin as Apprentice
  • fxn certified pjf as Journeyer
  • fxn certified deirdre as Journeyer
  • fxn certified gerv as Journeyer
  • fxn certified aelman as Journeyer
  • fxn certified binaryfoo as Apprentice
  • fxn certified nooks as Apprentice
  • fxn certified tef as Apprentice
  • fxn certified MCArkan as Journeyer
  • fxn certified Malx as Apprentice
  • fxn certified sej as Journeyer
  • fxn certified MikeCamel as Apprentice
  • fxn certified torsten as Journeyer
  • fxn certified nik as Master
  • fxn certified mx as Apprentice
  • fxn certified csm as Master
  • fxn certified tripp as Apprentice
  • fxn certified aicra as Apprentice
  • fxn certified gwm as Journeyer
  • fxn certified juran as Journeyer
  • fxn certified aint as Apprentice
  • fxn certified milkman as Apprentice
  • fxn certified loam as Journeyer
  • fxn certified hubertf as Master
  • fxn certified i0lanthe as Apprentice
  • fxn certified Adrian as Master
  • fxn certified acme as Master
  • fxn certified vicious as Master
  • fxn certified pvaneynd as Master
  • fxn certified RoUS as Master
  • fxn certified berend as Journeyer
  • fxn certified StevenRainwater as Journeyer
  • fxn certified sulaiman as Journeyer
  • fxn certified voltron as Journeyer
  • fxn certified jdub as Journeyer
  • fxn certified jerenkrantz as Master
  • fxn certified davidw as Journeyer
  • fxn certified craigbro as Journeyer
  • fxn certified Cantanker as Apprentice
  • fxn certified mpawlo as Apprentice
  • fxn certified Johnath as Apprentice
  • fxn certified realblades as Apprentice
  • fxn certified lkcl as Master
  • fxn certified ardiri as Journeyer
  • fxn certified walken as Journeyer
  • fxn certified gleblanc as Journeyer
  • fxn certified jimw as Master
  • fxn certified bstpierre as Journeyer
  • fxn certified dwmw2 as Master
  • fxn certified claudio as Journeyer
  • fxn certified maelstorm as Journeyer
  • fxn certified pphaneuf as Journeyer
  • fxn certified aeden as Journeyer
  • fxn certified khazad as Journeyer
  • fxn certified faassen as Journeyer
  • fxn certified rossigee as Apprentice
  • fxn certified mperry as Journeyer
  • fxn certified shifter as Journeyer
  • fxn certified davidl as Journeyer
  • fxn certified ncm as Master
  • fxn certified crhodes as Journeyer
  • fxn certified ingvar as Journeyer
  • fxn certified topher as Apprentice
  • fxn certified davidfv as Journeyer
  • fxn certified fdrake as Master
  • fxn certified movement as Journeyer
  • fxn certified Fefe as Journeyer
  • fxn certified zacs as Journeyer
  • fxn certified guerby as Master
  • fxn certified sdodji as Journeyer
  • fxn certified hadess as Journeyer
  • fxn certified premus as Journeyer
  • fxn certified almer as Journeyer
  • fxn certified DV as Master
  • fxn certified katzj as Journeyer
  • fxn certified Liedra as Apprentice
  • fxn certified japj as Journeyer
  • fxn certified gbowland as Journeyer
  • fxn certified calum as Journeyer
  • fxn certified spicyjack as Apprentice
  • fxn certified Jody as Master
  • fxn certified redmist as Apprentice
  • fxn certified roundeye as Journeyer
  • fxn certified niksilver as Apprentice
  • fxn certified tunesmith as Apprentice
  • fxn certified apm as Journeyer
  • fxn certified mako as Journeyer
  • fxn certified ber as Master
  • fxn certified ion as Apprentice
  • fxn certified jakd as Journeyer
  • fxn certified ringbark as Apprentice
  • fxn certified Joy as Journeyer
  • fxn certified ianmacd as Journeyer
  • fxn certified drake as Journeyer
  • fxn certified bownie as Journeyer
  • fxn certified fejj as Master
  • fxn certified rodrigo as Journeyer
  • fxn certified superuser as Journeyer
  • fxn certified jtjm as Journeyer
  • fxn certified hch as Master
  • fxn certified dancer as Journeyer
  • fxn certified brg as Journeyer
  • fxn certified broonie as Journeyer
  • fxn certified ole as Journeyer
  • fxn certified Qbert as Journeyer
  • fxn certified cmacd as Apprentice
  • fxn certified squish as Journeyer
  • fxn certified robk as Apprentice
  • fxn certified Lionfire as Apprentice
  • fxn certified rhult as Journeyer
  • fxn certified jmcnamara as Journeyer
  • fxn certified jonas as Journeyer
  • fxn certified wow as Apprentice
  • fxn certified sublum as Apprentice
  • fxn certified MartBrooks as Apprentice
  • fxn certified dmm as Apprentice
  • fxn certified brlewis as Journeyer
  • fxn certified tigert as Journeyer
  • fxn certified chalst as Journeyer
  • fxn certified chbm as Journeyer
  • fxn certified ruda as Journeyer
  • fxn certified naba as Journeyer
  • fxn certified connolly as Master
  • fxn certified angelsun as Journeyer
  • fxn certified gregor as Master
  • fxn certified AntonA as Journeyer
  • fxn certified pom as Master
  • fxn certified pliant as Master
  • fxn certified abraham as Journeyer
  • fxn certified Guillaume as Journeyer
  • fxn certified flatcap as Journeyer
  • fxn certified shd as Journeyer
  • fxn certified cmiller as Journeyer
  • fxn certified mwk as Journeyer
  • fxn certified andersca as Master
  • fxn certified jLoki as Master
  • fxn certified atech as Apprentice
  • fxn certified polo as Journeyer
  • fxn certified redowl as Apprentice
  • fxn certified jwb as Master
  • fxn certified robey as Journeyer
  • fxn certified magsilva as Apprentice
  • fxn certified technik as Apprentice
  • fxn certified emil as Journeyer
  • fxn certified nzkoz as Apprentice
  • fxn certified mrbook as Journeyer
  • fxn certified cerquide as Journeyer
  • fxn certified iwehrman as Apprentice
  • fxn certified pau as Apprentice
  • fxn certified pa1et as Apprentice
  • fxn certified kevindumpscore as Apprentice
  • fxn certified gp as Apprentice
  • fxn certified fuzzyping as Apprentice
  • fxn certified AlanShutko as Journeyer
  • fxn certified r4f as Master
  • fxn certified loic as Master
  • fxn certified taj as Journeyer
  • fxn certified jim as Journeyer
  • fxn certified imarsman as Journeyer
  • fxn certified shalabh as Journeyer
  • fxn certified aturner as Journeyer
  • fxn certified zephc as Journeyer
  • fxn certified lev as Journeyer
  • fxn certified forrest as Apprentice
  • fxn certified koNrads as Apprentice
  • fxn certified zeev as Master
  • fxn certified thies as Master
  • fxn certified bart as Journeyer
  • fxn certified jkh as Master
  • fxn certified xtifr as Journeyer
  • fxn certified rlk as Journeyer
  • fxn certified eivind as Master
  • fxn certified wsanchez as Master
  • fxn certified jhb as Master
  • fxn certified dwhite as Journeyer
  • fxn certified chrisime as Journeyer
  • fxn certified kroah as Journeyer
  • fxn certified krokodil as Master
  • fxn certified proski as Journeyer
  • fxn certified jamesh as Master
  • fxn certified Creslin as Apprentice
  • fxn certified riggwelter as Apprentice
  • fxn certified Simon as Journeyer
  • fxn certified sangr as Apprentice
  • fxn certified gc as Journeyer
  • fxn certified rkrishnan as Journeyer
  • fxn certified sits as Apprentice
  • fxn certified deven as Apprentice
  • fxn certified khoerling as Apprentice
  • fxn certified cjwatson as Journeyer
  • fxn certified trs80 as Apprentice
  • fxn certified hachi as Apprentice
  • fxn certified penso as Journeyer
  • fxn certified jefft as Master
  • fxn certified goran as Journeyer
  • fxn certified softweyr as Journeyer
  • fxn certified ghostgum as Master
  • fxn certified thull as Journeyer
  • fxn certified jonabbey as Journeyer
  • fxn certified jmaes as Journeyer
  • fxn certified Daagaak as Apprentice
  • fxn certified juanpri as Journeyer
  • fxn certified menesis as Journeyer
  • fxn certified lukeg as Journeyer
  • fxn certified CryoBob as Journeyer
  • fxn certified eskimoses as Journeyer
  • fxn certified panthar as Apprentice
  • fxn certified nuked as Journeyer
  • fxn certified Janus as Apprentice
  • fxn certified ssb as Master
  • fxn certified thom as Apprentice
  • fxn certified kevinvv as Journeyer
  • fxn certified drariel as Apprentice
  • fxn certified LenZ as Journeyer
  • fxn certified jmason as Journeyer
  • fxn certified dhd as Journeyer
  • fxn certified jbuck as Master
  • fxn certified Donwulff as Journeyer
  • fxn certified ajmitch as Apprentice
  • fxn certified mwh as Journeyer
  • fxn certified Trakker as Journeyer
  • fxn certified Svartalf as Journeyer
  • fxn certified Ruffy as Journeyer
  • fxn certified rwatson as Master
  • fxn certified peter as Master
  • fxn certified phk as Master
  • fxn certified Nectar as Journeyer
  • fxn certified mpr as Journeyer
  • fxn certified alcaron as Journeyer
  • fxn certified grant as Apprentice
  • fxn certified starzz as Apprentice
  • fxn certified Ahzz as Journeyer
  • fxn certified PhilipHunt as Journeyer
  • fxn certified gnu as Journeyer
  • fxn certified daniels as Journeyer
  • fxn certified jeek as Apprentice
  • fxn certified Rich as Journeyer
  • fxn certified slive as Journeyer
  • fxn certified chipx86 as Journeyer
  • fxn certified dannu as Journeyer
  • fxn certified Perrier as Apprentice
  • fxn certified jrf as Journeyer
  • fxn certified zhaoway as Journeyer
  • fxn certified SteveMallett as Apprentice
  • fxn certified cactus as Master
  • fxn certified lukeh as Master
  • fxn certified dsandras as Journeyer
  • fxn certified menthos as Journeyer
  • fxn certified darkewolf as Apprentice
  • fxn certified phooky as Journeyer
  • fxn certified fuzzynerd as Apprentice
  • fxn certified jimwelch as Apprentice
  • fxn certified bgeiger as Apprentice
  • fxn certified ath as Apprentice
  • fxn certified tnt as Journeyer
  • fxn certified mjg59 as Journeyer
  • fxn certified geoffeg as Apprentice
  • fxn certified mikem as Journeyer
  • fxn certified sponge as Journeyer
  • fxn certified ChrisMecca as Journeyer
  • fxn certified lloydwood as Journeyer
  • fxn certified campd as Journeyer
  • fxn certified chadfowler as Journeyer
  • fxn certified derick as Journeyer
  • fxn certified wacky as Journeyer
  • fxn certified scoop as Master
  • fxn certified bjr as Journeyer
  • fxn certified mk as Apprentice
  • fxn certified vivekv as Journeyer
  • fxn certified Raphael as Journeyer
  • fxn certified josef as Journeyer
  • fxn certified Uraeus as Journeyer
  • fxn certified postwait as Journeyer
  • fxn certified mathie as Journeyer
  • fxn certified jmbesnard as Apprentice
  • fxn certified zoke as Apprentice
  • fxn certified puffin as Master
  • fxn certified veltzer as Journeyer
  • fxn certified jmellen as Journeyer
  • fxn certified scjody as Apprentice
  • fxn certified hazmat as Journeyer
  • fxn certified tjmather as Journeyer
  • fxn certified kmaraas as Journeyer
  • fxn certified mslicker as Journeyer
  • fxn certified cce as Journeyer
  • fxn certified ClimbNorth as Apprentice
  • fxn certified booyaka as Apprentice
  • fxn certified XFire as Journeyer
  • fxn certified Stevey as Journeyer
  • fxn certified monkeyiq as Journeyer
  • fxn certified nerdgir1 as Apprentice
  • fxn certified landonf as Journeyer
  • fxn certified demoncrat as Journeyer
  • fxn certified samj as Journeyer
  • fxn certified zenalot as Journeyer
  • fxn certified chexum as Journeyer
  • fxn certified nomis as Journeyer
  • fxn certified jsn as Journeyer
  • fxn certified tod as Apprentice
  • fxn certified alexh as Apprentice
  • fxn certified braden as Journeyer
  • fxn certified walters as Master
  • fxn certified jimjag as Master
  • fxn certified mkraemer as Master
  • fxn certified Eitch as Journeyer
  • fxn certified osullivj as Journeyer
  • fxn certified lupus as Master
  • fxn certified ahvezda as Journeyer
  • fxn certified rkinder as Journeyer
  • fxn certified irbis as Journeyer
  • fxn certified cgillot as Apprentice
  • fxn certified mrcsparker as Apprentice
  • fxn certified dopey as Journeyer
  • fxn certified val as Journeyer
  • fxn certified kcbark as Journeyer
  • fxn certified mharris as Journeyer
  • fxn certified spot as Apprentice
  • fxn certified jennv as Journeyer
  • fxn certified hship as Journeyer
  • fxn certified Ankh as Master
  • fxn certified jules as Apprentice
  • fxn certified acoliver as Journeyer
  • fxn certified extra as Journeyer
  • fxn certified tromey as Master
  • fxn certified neuro as Journeyer
  • fxn certified Ender as Journeyer
  • fxn certified wli as Journeyer
  • fxn certified lmb as Journeyer
  • fxn certified stefan as Journeyer
  • fxn certified joey as Master
  • fxn certified aleksey as Journeyer
  • fxn certified davewiner as Master
  • fxn certified robla as Journeyer
  • fxn certified chicane as Journeyer
  • fxn certified sri as Apprentice
  • fxn certified will as Master
  • fxn certified mdekkers as Apprentice
  • fxn certified Leimy as Journeyer
  • fxn certified kov as Journeyer
  • fxn certified lypanov as Journeyer
  • fxn certified rillian as Journeyer
  • fxn certified lidl as Journeyer
  • fxn certified frehberg as Journeyer
  • fxn certified dak as Journeyer
  • fxn certified hypatia as Journeyer
  • fxn certified ahu as Journeyer
  • fxn certified whenning as Apprentice
  • fxn certified mbacarella as Journeyer
  • fxn certified airlied as Journeyer
  • fxn certified Perrin as Journeyer
  • fxn certified revoquer as Apprentice
  • fxn certified mdub as Apprentice
  • fxn certified Milambar as Apprentice
  • fxn certified jdhildeb as Journeyer
  • fxn certified joe566 as Apprentice
  • fxn certified Chicago as Apprentice
  • fxn certified bytesplit as Apprentice
  • fxn certified atai as Journeyer
  • fxn certified bjgm as Apprentice
  • fxn certified Urs as Journeyer
  • fxn certified hubicka as Master
  • fxn certified jpablo as Apprentice
  • fxn certified mdanish as Journeyer
  • fxn certified RossBurton as Journeyer
  • fxn certified ShredWheat as Journeyer
  • fxn certified pere as Journeyer
  • fxn certified jcv as Apprentice
  • fxn certified kristian as Journeyer
  • fxn certified roshan as Apprentice
  • fxn certified kasan as Journeyer
  • fxn certified jooon as Apprentice
  • fxn certified LSchiere as Apprentice
  • fxn certified wilane as Journeyer
  • fxn certified benoit as Journeyer
  • fxn certified rgregory as Journeyer
  • fxn certified tcurtis as Journeyer
  • fxn certified mattr as Apprentice
  • fxn certified djm as Master
  • fxn certified Uche as Journeyer
  • fxn certified arvind as Journeyer
  • fxn certified sand as Journeyer
  • fxn certified gpoo as Journeyer
  • fxn certified Fabian as Journeyer
  • fxn certified madscientist as Journeyer
  • fxn certified deb as Journeyer
  • fxn certified mhz as Journeyer
  • fxn certified domfox as Apprentice
  • fxn certified robilad as Journeyer
  • fxn certified dobey as Journeyer
  • fxn certified groom as Apprentice
  • fxn certified Penix as Apprentice
  • fxn certified fallenlord as Apprentice
  • fxn certified mjw as Journeyer
  • fxn certified CharlesKerr as Journeyer
  • fxn certified zwane as Journeyer
  • fxn certified helcio as Journeyer
  • fxn certified salmoni as Journeyer
  • fxn certified Bram as Master
  • fxn certified zefnd as Journeyer
  • fxn certified shrooti as Apprentice
  • fxn certified ddhulla as Apprentice
  • fxn certified dajobe as Journeyer
  • fxn certified wardv as Journeyer
  • fxn certified thomasvs as Journeyer
  • fxn certified olea as Journeyer
  • fxn certified Meuh as Journeyer
  • fxn certified kiko as Journeyer
  • fxn certified jdahlin as Journeyer
  • fxn certified RyanMuldoon as Journeyer
  • fxn certified besfred as Journeyer
  • fxn certified 4am as Journeyer
  • fxn certified moray as Journeyer
  • fxn certified mutiny as Apprentice
  • fxn certified dgatwood as Master
  • fxn certified nelsonrn as Master
  • fxn certified const as Journeyer
  • fxn certified Rabbitt as Journeyer
  • fxn certified graydon as Journeyer
  • fxn certified solovay as Journeyer
  • fxn certified tseaver as Journeyer
  • fxn certified afayolle as Journeyer
  • fxn certified gnutizen as Journeyer
  • fxn certified cesar as Apprentice
  • fxn certified apg as Journeyer
  • fxn certified alejandro as Journeyer
  • fxn certified MichaelCrawford as Journeyer
  • fxn certified phe as Journeyer
  • fxn certified rlevin as Journeyer
  • fxn certified bescoto as Journeyer
  • fxn certified tbradford as Master
  • fxn certified mooch as Journeyer
  • fxn certified danguer as Apprentice
  • fxn certified mattam as Journeyer
  • fxn certified les2 as Apprentice
  • fxn certified Tofu as Journeyer
  • fxn certified cwinans as Apprentice
  • fxn certified MisterP as Apprentice
  • fxn certified papineau as Journeyer
  • fxn certified gqueri as Journeyer
  • fxn certified Mmarquee as Journeyer
  • fxn certified abg as Journeyer
  • fxn certified coriordan as Apprentice
  • fxn certified danielk as Master
  • fxn certified manu as Journeyer
  • fxn certified tfheen as Journeyer
  • fxn certified itamar as Journeyer
  • fxn certified hukka as Apprentice
  • fxn certified joshuat as Journeyer
  • fxn certified kalle as Apprentice
  • fxn certified pjcabrera as Apprentice
  • fxn certified andreaskupries as Journeyer
  • fxn certified sjogren as Journeyer
  • fxn certified shughes as Master
  • fxn certified Hunter as Journeyer
  • fxn certified Anthony as Master
  • fxn certified esden as Journeyer
  • fxn certified acero as Journeyer
  • fxn certified yeupou as Journeyer
  • fxn certified blindcoder as Journeyer
  • fxn certified bje as Journeyer
  • fxn certified laredo as Journeyer
  • fxn certified takis as Journeyer
  • fxn certified allanf as Apprentice
  • fxn certified ploppy as Journeyer
  • fxn certified richdawe as Journeyer
  • fxn certified sjburges as Journeyer
  • fxn certified pasky as Journeyer
  • fxn certified strider as Journeyer
  • fxn certified halcy0n as Apprentice
  • fxn certified glyph as Journeyer
  • fxn certified croy as Apprentice
  • fxn certified amits as Journeyer
  • fxn certified sun as Journeyer
  • fxn certified trage as Apprentice
  • fxn certified cinamod as Master
  • fxn certified cbj as Master
  • fxn certified joshferraro as Journeyer
  • fxn certified follower as Apprentice
  • fxn certified fcrozat as Master
  • fxn certified anholt as Master
  • fxn certified simonstl as Journeyer
  • fxn certified mbrubeck as Journeyer
  • fxn certified bonzini as Master
  • fxn certified whytheluckystiff as Journeyer
  • fxn certified MichaelCardenas as Journeyer
  • fxn certified dolphy as Journeyer
  • fxn certified Fare as Master
  • fxn certified k as Journeyer
  • fxn certified water as Master
  • fxn certified pkot as Journeyer
  • fxn certified imp as Master
  • fxn certified larspind as Journeyer
  • fxn certified gbarr as Master
  • fxn certified Spoon as Journeyer
  • fxn certified petdance as Journeyer
  • fxn certified Abigail as Journeyer
  • fxn certified chrishowells as Journeyer
  • fxn certified leviramsey as Journeyer
  • fxn certified jaldhar as Journeyer
  • fxn certified RickMuller as Journeyer
  • fxn certified MJ as Journeyer
  • fxn certified dtucker as Journeyer
  • fxn certified Akira as Journeyer
  • fxn certified claviola as Journeyer
  • fxn certified federico as Master
  • fxn certified nuncanada as Apprentice
  • fxn certified xsa as Journeyer
  • fxn certified schubert as Journeyer
  • fxn certified alexm as Journeyer
  • fxn certified cTaylor as Journeyer
  • fxn certified jolan as Journeyer
  • fxn certified digitect as Journeyer
  • fxn certified AlanHorkan as Journeyer
  • fxn certified taw as Journeyer
  • fxn certified xor as Journeyer
  • fxn certified SyntaxPolice as Journeyer
  • fxn certified polak as Journeyer
  • fxn certified gonzo as Journeyer
  • fxn certified robertc as Master
  • fxn certified brejc8 as Journeyer
  • fxn certified echeslack as Apprentice
  • fxn certified mikehearn as Journeyer
  • fxn certified kwoo as Apprentice
  • fxn certified Spooky as Journeyer
  • fxn certified pfdietz as Journeyer
  • fxn certified jgrahamc as Journeyer
  • fxn certified joshk as Journeyer
  • fxn certified ebf as Journeyer
  • fxn certified elanthis as Journeyer
  • fxn certified Xantus as Journeyer
  • fxn certified HiroProtagonist as Apprentice
  • fxn certified Archit as Journeyer
  • fxn certified dcoombs as Journeyer
  • fxn certified winter as Journeyer
  • fxn certified id as Journeyer
  • fxn certified vdv as Journeyer
  • fxn certified opum as Journeyer
  • fxn certified sh as Journeyer
  • fxn certified presroi as Apprentice
  • fxn certified louie as Master
  • fxn certified bahner as Journeyer
  • fxn certified garnacho as Journeyer
  • fxn certified Pistos as Journeyer
  • fxn certified Kouran as Journeyer
  • fxn certified jds as Journeyer
  • fxn certified glasseyes as Journeyer
  • fxn certified johnnyb as Journeyer
  • fxn certified jg as Master
  • fxn certified alvaro as Journeyer
  • fxn certified ib as Journeyer
  • fxn certified ffrederick as Journeyer
  • fxn certified saugart as Journeyer
  • fxn certified brouhaha as Journeyer
  • fxn certified pfremy as Journeyer
  • fxn certified bolsh as Journeyer
  • fxn certified gobry as Journeyer
  • fxn certified ebassi as Journeyer
  • fxn certified softkid as Journeyer
  • fxn certified ramoth4 as Journeyer
  • fxn certified RyanPavlik as Journeyer
  • fxn certified rbultje as Journeyer
  • fxn certified wingo as Journeyer
  • fxn certified etbe as Master
  • fxn certified sussman as Journeyer
  • fxn certified zeenix as Journeyer
  • fxn certified trygvis as Journeyer
  • fxn certified nion as Apprentice
  • fxn certified faw as Apprentice
  • fxn certified Senra as Journeyer
  • fxn certified gadek as Master
  • fxn certified apenwarr as Journeyer
  • fxn certified slamb as Journeyer
  • fxn certified miah as Journeyer
  • fxn certified msevior as Master
  • fxn certified alex as Master
  • fxn certified lgs as Journeyer
  • fxn certified skx as Journeyer
  • fxn certified hereticmessiah as Journeyer
  • fxn certified FarcePest as Journeyer
  • fxn certified esteve as Journeyer
  • fxn certified fzort as Apprentice
  • fxn certified beto as Apprentice
  • fxn certified rmathew as Journeyer
  • fxn certified bwh as Master
  • fxn certified acs as Apprentice
  • fxn certified otavio as Journeyer
  • fxn certified stalens as Journeyer
  • fxn certified oubiwann as Journeyer
  • fxn certified uriel as Journeyer
  • fxn certified haruspex as Journeyer
  • fxn certified garbeam as Journeyer
  • fxn certified gicmo as Master
  • fxn certified orique as Apprentice
  • fxn certified GregoryBrown as Journeyer
  • fxn certified gstein as Master
  • fxn certified Hossein as Apprentice
  • fxn certified marnanel as Journeyer
  • fxn certified vasudevram as Journeyer
  • fxn certified robogato as Master
  • fxn certified timbl as Master

Others have certified fxn as follows:

  • jao certified fxn as Apprentice
  • fxn certified fxn as Journeyer
  • DraX certified fxn as Journeyer
  • Krelin certified fxn as Apprentice
  • footrot certified fxn as Apprentice
  • ottawaDave certified fxn as Apprentice
  • stevej certified fxn as Apprentice
  • maragato certified fxn as Apprentice
  • Dionys certified fxn as Journeyer
  • pjdowner certified fxn as Apprentice
  • Ausmosis certified fxn as Apprentice
  • rvdm certified fxn as Apprentice
  • Manesse certified fxn as Apprentice
  • ariya certified fxn as Apprentice
  • davej certified fxn as Apprentice
  • sl0th certified fxn as Apprentice
  • aleix certified fxn as Journeyer
  • superant certified fxn as Apprentice
  • nchriss certified fxn as Apprentice
  • ajaxx certified fxn as Journeyer
  • criswell certified fxn as Journeyer
  • neurogato certified fxn as Apprentice
  • acme certified fxn as Apprentice
  • ks certified fxn as Apprentice
  • buckley certified fxn as Apprentice
  • ignatz certified fxn as Apprentice
  • acidx certified fxn as Apprentice
  • shlomif certified fxn as Journeyer
  • ebizo certified fxn as Apprentice
  • bagder certified fxn as Apprentice
  • slef certified fxn as Journeyer
  • adulau certified fxn as Journeyer
  • fpmip certified fxn as Journeyer
  • cwinters certified fxn as Apprentice
  • robhudson certified fxn as Journeyer
  • TheCorruptor certified fxn as Journeyer
  • rupert certified fxn as Journeyer
  • MikeGTN certified fxn as Apprentice
  • xcyber certified fxn as Journeyer
  • Thias certified fxn as Journeyer
  • whytheluckystiff certified fxn as Journeyer
  • gt3 certified fxn as Journeyer
  • mikeszcz certified fxn as Apprentice
  • larsu certified fxn as Journeyer
  • mulix certified fxn as Journeyer
  • Jordi certified fxn as Journeyer
  • mjs certified fxn as Journeyer
  • alexr certified fxn as Journeyer
  • Denny certified fxn as Apprentice
  • tef certified fxn as Journeyer
  • sulaiman certified fxn as Journeyer
  • davidfv certified fxn as Journeyer
  • sdodji certified fxn as Master
  • premus certified fxn as Journeyer
  • almer certified fxn as Journeyer
  • roundeye certified fxn as Journeyer
  • mako certified fxn as Journeyer
  • jtjm certified fxn as Journeyer
  • naba certified fxn as Journeyer
  • angelsun certified fxn as Journeyer
  • pom certified fxn as Journeyer
  • Guillaume certified fxn as Journeyer
  • mwk certified fxn as Journeyer
  • polo certified fxn as Journeyer
  • redowl certified fxn as Journeyer
  • emil certified fxn as Journeyer
  • cerquide certified fxn as Journeyer
  • ak certified fxn as Journeyer
  • gp certified fxn as Apprentice
  • fuzzyping certified fxn as Journeyer
  • jLoki certified fxn as Journeyer
  • lev certified fxn as Journeyer
  • sits certified fxn as Journeyer
  • trs80 certified fxn as Journeyer
  • jamesh certified fxn as Journeyer
  • chipx86 certified fxn as Journeyer
  • dannu certified fxn as Journeyer
  • KlausWuestefeld certified fxn as Journeyer
  • Waldo certified fxn as Journeyer
  • bgeiger certified fxn as Apprentice
  • mikem certified fxn as Journeyer
  • ath certified fxn as Journeyer
  • forrest certified fxn as Journeyer
  • chalst certified fxn as Journeyer
  • Eitch certified fxn as Apprentice
  • osullivj certified fxn as Journeyer
  • irbis certified fxn as Journeyer
  • mrcsparker certified fxn as Journeyer
  • kcbark certified fxn as Journeyer
  • mharris certified fxn as Journeyer
  • acoliver certified fxn as Journeyer
  • starzz certified fxn as Apprentice
  • lypanov certified fxn as Journeyer
  • bjgm certified fxn as Apprentice
  • Leimy certified fxn as Journeyer
  • mpr certified fxn as Journeyer
  • bytesplit certified fxn as Apprentice
  • bstpierre certified fxn as Journeyer
  • sand certified fxn as Journeyer
  • Fabian certified fxn as Journeyer
  • revoquer certified fxn as Apprentice
  • Penix certified fxn as Master
  • groom certified fxn as Journeyer
  • Stevey certified fxn as Journeyer
  • wardv certified fxn as Journeyer
  • helcio certified fxn as Journeyer
  • Rabbitt certified fxn as Journeyer
  • afayolle certified fxn as Journeyer
  • mascot certified fxn as Journeyer
  • MichaelCrawford certified fxn as Journeyer
  • madhatter certified fxn as Journeyer
  • Tofu certified fxn as Journeyer
  • magsilva certified fxn as Journeyer
  • kwoo certified fxn as Journeyer
  • joshuat certified fxn as Journeyer
  • esden certified fxn as Journeyer
  • acero certified fxn as Journeyer
  • pasky certified fxn as Journeyer
  • strider certified fxn as Master
  • panthar certified fxn as Journeyer
  • amits certified fxn as Journeyer
  • bonzini certified fxn as Journeyer
  • linn certified fxn as Journeyer
  • anholt certified fxn as Journeyer
  • Spoon certified fxn as Journeyer
  • leviramsey certified fxn as Journeyer
  • dtucker certified fxn as Journeyer
  • wspace certified fxn as Apprentice
  • alexm certified fxn as Journeyer
  • bjr certified fxn as Journeyer
  • domi certified fxn as Journeyer
  • ebf certified fxn as Journeyer
  • richdawe certified fxn as Journeyer
  • mterry certified fxn as Journeyer
  • xsa certified fxn as Journeyer
  • lerdsuwa certified fxn as Journeyer
  • ebassi certified fxn as Journeyer
  • juanpri certified fxn as Journeyer
  • esteve certified fxn as Journeyer
  • hereticmessiah certified fxn as Master
  • brouhaha certified fxn as Journeyer
  • faw certified fxn as Journeyer
  • beto certified fxn as Master
  • acs certified fxn as Journeyer
  • stalens certified fxn as Journeyer
  • garbeam certified fxn as Journeyer
  • sye certified fxn as Master
  • StevenRainwater certified fxn as Journeyer
  • GregoryBrown certified fxn as Journeyer
  • messi certified fxn as Journeyer
  • vasudevram certified fxn as Master
  • jblnyc certified fxn as Journeyer
  • dma certified fxn as Master
  • fzort certified fxn as Journeyer
  • liam certified fxn as Master
  • ittner certified fxn as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page