Recent changes to this wiki:
Add Symfony plugin
diff --git a/libraries.mdwn b/libraries.mdwn index 785f145..61a722b 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -105,6 +105,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [MediaWiki](http://www.mediawiki.org/wiki/Extension:Libravatar) * [Mojolicious](https://metacpan.org/release/Mojolicious-Plugin-Libravatar) * [Pidgin](https://code.google.com/p/pidgin-libravatar/) +* [Symfony](https://github.com/julienfastre/LibravatarBundle) * [Weblate](http://weblate.org/) (part of core starting in 1.5) * [WordPress](http://wordpress.org/extend/plugins/libravatar/) * [Zookeepr](http://zookeepr.org/) (part of core, starting with PyCon AU 2012)
It's WordPress
diff --git a/libraries.mdwn b/libraries.mdwn index b98ad28..785f145 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -106,7 +106,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Mojolicious](https://metacpan.org/release/Mojolicious-Plugin-Libravatar) * [Pidgin](https://code.google.com/p/pidgin-libravatar/) * [Weblate](http://weblate.org/) (part of core starting in 1.5) -* [Wordpress](http://wordpress.org/extend/plugins/libravatar/) +* [WordPress](http://wordpress.org/extend/plugins/libravatar/) * [Zookeepr](http://zookeepr.org/) (part of core, starting with PyCon AU 2012) # Contribute!
change "should" federate to "must" federate
diff --git a/api.mdwn b/api.mdwn index fb11160..9f135d9 100644 --- a/api.mdwn +++ b/api.mdwn @@ -66,7 +66,7 @@ Note that Libravatar does **not** support the <tt>rating</tt> (or simply <tt>r</ # Federated servers -In order to support domain name owners who choose to [[run their own instances|running your own]] of Libravatar, you should perform a DNS query to lookup the appropriate base URL for each domain (the domain is extracted from email addresses or OpenID URLs). +In order to support domain name owners who choose to [[run their own instances|running your own]] of Libravatar, you must perform a DNS query to lookup the appropriate base URL for each domain (the domain is extracted from email addresses or OpenID URLs). You will probably want to use an [[existing library|libraries]] for this, but here's how to do that DNS lookup on a UNIX command line:
typo
diff --git a/libraries.mdwn b/libraries.mdwn
index 6aeb3aa..b98ad28 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -19,7 +19,7 @@ If a library or plugin is not availble for your language or application, your be
<img src="nodejs_logo.png" width="219" height="75" align="right">
-There is a [Libravatar node.js module](https://npmjs.org/package/libravatar) that can be used in the follow way:
+There is a [Libravatar node.js module](https://npmjs.org/package/libravatar) that can be used in the following way:
var libravatar = require('libravatar');
libravatar.url(email='person@example.com', openid=null, { size: 96, default: 'mm' }, https=false,
Add link to pidgin plugin
diff --git a/libraries.mdwn b/libraries.mdwn index e280e1e..6aeb3aa 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -104,6 +104,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [MediaWiki](http://www.mediawiki.org/wiki/Extension:Libravatar) * [Mojolicious](https://metacpan.org/release/Mojolicious-Plugin-Libravatar) +* [Pidgin](https://code.google.com/p/pidgin-libravatar/) * [Weblate](http://weblate.org/) (part of core starting in 1.5) * [Wordpress](http://wordpress.org/extend/plugins/libravatar/) * [Zookeepr](http://zookeepr.org/) (part of core, starting with PyCon AU 2012)
replace the "two implementations" sentence with a more generic one
diff --git a/running_your_own.mdwn b/running_your_own.mdwn index 70a811b..8f5f854 100644 --- a/running_your_own.mdwn +++ b/running_your_own.mdwn @@ -2,7 +2,7 @@ Libravatar was designed so that domain owners can choose to host themselves the # Server implementations -Currently exist two libravatar image server implementations: +There currently exist the following Libravatar image server implementations: [[!table class="border" data=""" Name | Description | Administration | Programming language | Support for | Default modes
diff --git a/running_your_own.mdwn b/running_your_own.mdwn index 431badf..70a811b 100644 --- a/running_your_own.mdwn +++ b/running_your_own.mdwn @@ -8,7 +8,7 @@ Currently exist two libravatar image server implementations: Name | Description | Administration | Programming language | Support for | Default modes libravatar | The software that runs libravatar.org | web-based | Python | Email, OpenID | 404, mm, identicon, monsterid, wavatar, retro [Surrogator](https://sourceforge.net/p/surrogator/) | very simple avatar server | command line only | PHP | Email, OpenID | 404, mm -[Simple Libravatar service](http://pusling.com/blog/?p=274) | Static files | command line only | Shell script | Email | none (always returns a static image) +[Simple Libravatar service](http://pusling.com/blog/?p=274) | Quick hack to serve static files | command line only | Shell script | Email | none (always returns a static image) """]]
add simple libravatar service
diff --git a/running_your_own.mdwn b/running_your_own.mdwn
index 5804a70..431badf 100644
--- a/running_your_own.mdwn
+++ b/running_your_own.mdwn
@@ -1,36 +1,41 @@
Libravatar was designed so that domain owners can choose to host themselves the profile pictures for their domain. For example, an organisation may want to have control over the pictures use for their employees.
+# Server implementations
+
Currently exist two libravatar image server implementations:
[[!table class="border" data="""
Name | Description | Administration | Programming language | Support for | Default modes
libravatar | The software that runs libravatar.org | web-based | Python | Email, OpenID | 404, mm, identicon, monsterid, wavatar, retro
[Surrogator](https://sourceforge.net/p/surrogator/) | very simple avatar server | command line only | PHP | Email, OpenID | 404, mm
+[Simple Libravatar service](http://pusling.com/blog/?p=274) | Static files | command line only | Shell script | Email | none (always returns a static image)
"""]]
-The following instructions are about the official libravatar.org software.
+# libravatar.org
+The following instructions are about the official libravatar.org software.
+
-# System requirements
+## System requirements
You can find the latest system requirements in the [installation instructions](https://gitorious.org/libravatar/libravatar/blobs/master/INSTALL.md) that come with the software, but Libravatar has been confirmed to work on [Debian 6](http://www.debian.org/releases/squeeze/) (squeeze).
-# Getting the code
+## Getting the code
We are not currently doing regular releases of the code, but you can easily get the latest copy from our [git repository](https://gitorious.org/libravatar/libravatar):
git clone git://gitorious.org/libravatar/libravatar.git
-# Installation
+## Installation
Once you've got a copy of the code, follow the instructions in the [INSTALL](https://gitorious.org/libravatar/libravatar/blobs/master/INSTALL.md) file.
-# Configuration
+## Configuration
A number of options can be customised in the libravatar/settings.py file. If there's anything that's unclear in there, please [file a bug](https://bugs.launchpad.net/libravatar/+filebug) against the project so that we know how to improve the documentation.
-# DNS setup
+## DNS setup
Once your instance is running on a publicly-accessible server (<tt>avatars.example.com</tt> in this example), add the following records to your DNS zone file:
@@ -41,13 +46,13 @@ The first entry (<tt>\_avatars.\_tcp</tt>) should point to an HTTP server wherea
Note that these servers do not have to be running [Libravatar](https://launchpad.net/libravatar) themselves, but they do have to implement the same [[protocol/API|API]]</a>.
-## TTL
+### TTL
The time-to-live (cache expiry) should be set to **at least 1 day** (86400 seconds).
If you choose a TTL smaller than 1 day, Libravatar clients are allowed (and encouraged) to ignore it and cache your entry for a day.
-## Subdomains
+### Subdomains
If you use full hostnames or subdomains in your email addresses, for example bob@foo.example.com and bob@bar.example.com, then you need to have a set of SRV records for each of them:
@@ -56,12 +61,12 @@ If you use full hostnames or subdomains in your email addresses, for example bob
_avatars._tcp.bar.example.com. IN SRV 0 0 80 avatars.example.com
_avatars-sec._tcp.bar.example.com. IN SRV 0 0 443 avatars.example.com
-## SRV weights and priorities (optional)
+### SRV weights and priorities (optional)
All SRV entries should have the same priority. Lower priority ones will be ignored by Libravatar clients.
You may however use weights to spread the load across more than one avatar server.
-## Testing
+### Testing
Once you have these records, have a look at the [domain check tool](https://www.libravatar.org/tools/check_domain) to make sure everything is working.
C# federation note
diff --git a/libraries.mdwn b/libraries.mdwn
index 842aeae..e280e1e 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -13,6 +13,8 @@ If a library or plugin is not availble for your language or application, your be
using libravatarsharp;
var uri = AvatarUri.FromEmail( "someone@example.com" );
+(!) The library does not support federation.
+
## node.js
<img src="nodejs_logo.png" width="219" height="75" align="right">
add rawatar (qt5) lib
diff --git a/libraries.mdwn b/libraries.mdwn
index 134be3a..842aeae 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -64,6 +64,11 @@ The [pyLibravatar](http://pypi.python.org/pypi/pyLibravatar) module can be used
avatar_url = libravatar_url(email = 'person@example.org')
print '<img src="' + avatar_url + '">'
+## Qt5
+
+The source code for [Rawatar](http://pusling.com/blog/?p=329) can be found on [git.kde.org](http://quickgit.kde.org/?p=scratch%2Fsune%2Frawatar.git)
+
+
## Ruby
<img src="ruby_logo.png" width="75" height="75" align="right">
link server software page
diff --git a/index.mdwn b/index.mdwn index 615d9cd..357dc31 100644 --- a/index.mdwn +++ b/index.mdwn @@ -16,6 +16,7 @@ specify the server that should host images for their organisation. * [[API documentation|api]] * [[Libraries and plugins|libraries]] +* [[Server software|running your own]] # Community
Add Weblate to the list of plugins
diff --git a/libraries.mdwn b/libraries.mdwn index 364ab71..134be3a 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -97,6 +97,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [MediaWiki](http://www.mediawiki.org/wiki/Extension:Libravatar) * [Mojolicious](https://metacpan.org/release/Mojolicious-Plugin-Libravatar) +* [Weblate](http://weblate.org/) (part of core starting in 1.5) * [Wordpress](http://wordpress.org/extend/plugins/libravatar/) * [Zookeepr](http://zookeepr.org/) (part of core, starting with PyCon AU 2012)
GIF support was added last week
diff --git a/features.mdwn b/features.mdwn
index 0632fb7..6315226 100644
--- a/features.mdwn
+++ b/features.mdwn
@@ -3,6 +3,7 @@ Here is a list of features currently available in [Libravatar](https://www.libra
[[!table class="border" data="""
| Libravatar | Gravatar
JPEG and **PNG** support | Yes | Yes
+GIF support | Yes | No
Upload size limit | 10 MB | None
Image size (in pixels) | 1 to 512 (configurable) | [2048](http://blog.gravatar.com/2012/07/30/retina/)
**HTTPS** support | Yes | Yes
Add a link to the Mojolicious plugin on CPAN
diff --git a/libraries.mdwn b/libraries.mdwn index 6c9b3ca..364ab71 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -96,6 +96,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Ikiwiki](http://ikiwiki.info) (part of core, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [MediaWiki](http://www.mediawiki.org/wiki/Extension:Libravatar) +* [Mojolicious](https://metacpan.org/release/Mojolicious-Plugin-Libravatar) * [Wordpress](http://wordpress.org/extend/plugins/libravatar/) * [Zookeepr](http://zookeepr.org/) (part of core, starting with PyCon AU 2012)
Errors should be sent to mirrors@libravatar.org (bug #1072680)
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn index 515e280..dc8c33c 100644 --- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn +++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn @@ -24,7 +24,7 @@ Do this on the **slave**: 3. make sure cron errors go somewhere by adding this to `/etc/aliases`: - libravatar-slave: root + libravatar-slave: mirrors@libravatar.org 4. update the postfix config:
Need to update package metadata after modifying sources.list
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index 2e51a7d..515e280 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -13,6 +13,7 @@ Do this on the **slave**:
1. install the required packages on the slave:
+ apt-get update
apt-get install libravatar-{common,cdn-common,cdn,seccdn,slave}
2. copy the SSL certificate into place:
Mirrors should now use the new apt repository
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index 51b7cb7..2e51a7d 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -5,10 +5,15 @@ This will be of interest only to admins who run a Libravatar master server using
Do this on the **slave**:
1. make sure NTP is installed and running
+1. add the Libravatar apt repository:
+
+ echo "deb http://apt.libravatar.org/ squeeze main" >> /etc/apt/sources.list
+ gpg --keyserver pgp.net.nz --recv 007c98d1
+ gpg -a --export 007c98d1 | apt-key add -
+
1. install the required packages on the slave:
- dpkg -i libravatar-{common,cdn-common,cdn,seccdn,slave}*.deb
- apt-get install -f
+ apt-get install libravatar-{common,cdn-common,cdn,seccdn,slave}
2. copy the SSL certificate into place:
SSL testing and SNI
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index ed96b83..51b7cb7 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -56,6 +56,13 @@ and then lookup images using the [test tool](https://www.libravatar.org/tools/ch
namecoind name_update d/libravatar "`xargs echo < config/dns.json`"
+
+# SSL testing
+
+Once the DNS zone has been updated, use the [SSL Labs tool](https://www.ssllabs.com/ssltest/analyze.html?d=seccdn.libravatar.org&hideResults=on) to make sure that the SSL config for the new mirror matches the other ones. In particular, it is important that the new mirror does not require the use of [SNI](https://en.wikipedia.org/wiki/Server_Name_Indication) since it's not supported on [old operating systems](https://en.wikipedia.org/wiki/Windows_XP).
+
+If there are any problems, simply take the new mirror out of the `seccdn` CNAME group. The bandwidth requirements for HTTP are much bigger, so it's fine to have fewer mirrors doing HTTPS.
+
# Basic monitoring
At the very least, add something like <http://ismyblogworking.com/1.cdn.libravatar.org/working.html> to your feed reader.
Basic monitoring via RSS
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index c7b71e0..ed96b83 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -56,6 +56,10 @@ and then lookup images using the [test tool](https://www.libravatar.org/tools/ch
namecoind name_update d/libravatar "`xargs echo < config/dns.json`"
+# Basic monitoring
+
+At the very least, add something like <http://ismyblogworking.com/1.cdn.libravatar.org/working.html> to your feed reader.
+
# Enabling stats on the slave (optional)
1. install awstats:
Add a note to forward libravatar-slave emails somwehere
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index 38a1fe5..c7b71e0 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -16,6 +16,15 @@ Do this on the **slave**:
cp seccdn.pem /etc/libravatar/
cp seccdn.crt /etc/libravatar/
+3. make sure cron errors go somewhere by adding this to `/etc/aliases`:
+
+ libravatar-slave: root
+
+4. update the postfix config:
+
+ newaliases
+ /etc/init.d/postfix reload
+
Do this on the **master**:
1. add the slave's ssh pubkey to `/var/lib/libravatar/master/.ssh/authorized_keys`:
Reverse mirror direction (bug #947796)
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index 33ab3e1..38a1fe5 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -16,15 +16,9 @@ Do this on the **slave**:
cp seccdn.pem /etc/libravatar/
cp seccdn.crt /etc/libravatar/
-3. uncomment <tt>allowrsync</tt> in <tt>/etc/rssh.conf</tt>.
-
Do this on the **master**:
-1. add the slave's ssh hostkey to known_keys:
-
- sudo -u libravatar-master ssh libravatar-slave@mirror1.example.com
-
-2. add the mirror hostname to <tt>/etc/default/libravatar-master</tt>
+1. add the slave's ssh pubkey to `/var/lib/libravatar/master/.ssh/authorized_keys`:
Within about 15 minutes, you should see these files pop up on the slave:
Copy certs, don't symlink them
There is an hourly cronjob to swap certs and restart Apache and so
this will not work with symlinks.
There is an hourly cronjob to swap certs and restart Apache and so
this will not work with symlinks.
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index e46e1ab..33ab3e1 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -10,11 +10,11 @@ Do this on the **slave**:
dpkg -i libravatar-{common,cdn-common,cdn,seccdn,slave}*.deb
apt-get install -f
-2. create symlinks for the SSL certificate:
+2. copy the SSL certificate into place:
- ln -s /var/lib/libravatar/slave/cert/seccdn-chain.pem /etc/libravatar/
- ln -s /var/lib/libravatar/slave/cert/seccdn.pem /etc/libravatar/
- ln -s /var/lib/libravatar/slave/cert/seccdn.crt /etc/libravatar/
+ cp seccdn-chain.pem /etc/libravatar/
+ cp seccdn.pem /etc/libravatar/
+ cp seccdn.crt /etc/libravatar/
3. uncomment <tt>allowrsync</tt> in <tt>/etc/rssh.conf</tt>.
@@ -32,8 +32,6 @@ Within about 15 minutes, you should see these files pop up on the slave:
* <tt>/var/lib/libravatar/slave/cert/seccdn.pem</tt>
* <tt>/var/lib/libravatar/slave/cert/seccdn.crt</tt>
-Then you can restart Apache on the slave to enable everything.
-
# Testing the new mirror
Given a new slave with an IP address of 192.0.2.10, then you can put this in your local <tt>/etc/hosts</tt>:
fix typo
diff --git a/running_your_own.mdwn b/running_your_own.mdwn index 5f8afdd..5804a70 100644 --- a/running_your_own.mdwn +++ b/running_your_own.mdwn @@ -64,4 +64,4 @@ You may however use weights to spread the load across more than one avatar serve ## Testing -Once you have these records, have a look at the [domain check tool](https://www.libravatar.org/tools/check_domain) to make sure eveprything is working. +Once you have these records, have a look at the [domain check tool](https://www.libravatar.org/tools/check_domain) to make sure everything is working.
supported modes (email, openid)
diff --git a/running_your_own.mdwn b/running_your_own.mdwn index d94e16d..5f8afdd 100644 --- a/running_your_own.mdwn +++ b/running_your_own.mdwn @@ -3,9 +3,9 @@ Libravatar was designed so that domain owners can choose to host themselves the Currently exist two libravatar image server implementations: [[!table class="border" data=""" -Name | Description | Administration | Programming language | Default modes -libravatar | The software that runs libravatar.org | web-based | Python | 404, mm, identicon, monsterid, wavatar, retro -[Surrogator](https://sourceforge.net/p/surrogator/) | very simple avatar server | command line only | PHP | 404, mm +Name | Description | Administration | Programming language | Support for | Default modes +libravatar | The software that runs libravatar.org | web-based | Python | Email, OpenID | 404, mm, identicon, monsterid, wavatar, retro +[Surrogator](https://sourceforge.net/p/surrogator/) | very simple avatar server | command line only | PHP | Email, OpenID | 404, mm """]] The following instructions are about the official libravatar.org software.
Replace HTML table with a text-based one
diff --git a/features.mdwn b/features.mdwn index a80b65b..0632fb7 100644 --- a/features.mdwn +++ b/features.mdwn @@ -1,31 +1,31 @@ Here is a list of features currently available in [Libravatar](https://www.libravatar.org) and how it differs from [Gravatar](http://www.gravatar.com). -<table border="1"> -<tr><th></th><th>Libravatar</th><th>Gravatar</th></tr> -<tr><td>JPEG and <b>PNG</b> support</td><td>Yes</td><td>Yes</td></tr> -<tr><td>Upload size limit</td><td>10 MB</td><td>None</td></tr> -<tr><td>Image size (in pixels)</td><td>1 to 512 (configurable)</td><td>1 to <a href="http://blog.gravatar.com/2012/07/30/retina/">2048</a></td></tr> -<tr><td><b>HTTPS</b> support</td><td>Yes</td><td>Yes</td></tr> -<tr><td><b>IPv6</b> support</td><td>Yes</td><td>-</td></tr> -<tr><td>Support email hashes</td><td>MD5 and <b>SHA256</b></td><td><a href="http://en.gravatar.com/site/faq/#answer-2-1">MD5 only</a></td></tr> -<tr><td><b>OpenID</b> URL support</td><td>Yes</td><td>-</td></tr> -<tr><td>Redirection to Gravatar</td><td>Yes</td><td>Not needed :)</td></tr> -<tr><td>Customisable default image</td><td>Yes</td><td>Yes</td></tr> -<tr><td>MPAA-style image ratings</td><td>-</td><td>Yes</td></tr> -<tr><td>Text-based personal information</td><td>-</td><td>Yes</td></tr> -<tr><td><b>Federation</b> via DNS SRV records</td><td>Yes</td><td>-</td></tr> -<tr><td><b>BrowserID</b> authentication</td><td>Yes</td><td>-</td></tr> -<tr><td><b>LDAP</b> authentication</td><td>Yes</td><td>-</td></tr> -<tr><td><b>OpenID</b> authentication</td><td>Yes</td><td>-</td></tr> -<tr><td>Automatic photo <b>importers</b></td><td>[[Yes|photo importers]]</td><td>-</td></tr> -<tr><td>Translated UI</td><td><a href="https://translations.launchpad.net/libravatar">Yes</a></td><td><a href="http://en.gravatar.com/site/translations/">Yes</a></td></tr> -<tr><td>Account <b>export</b></td><td>Yes</td><td>-</td></tr> -<tr><td>Account <b>deletion</b></td><td>Yes</td><td><a href="http://en.gravatar.com/site/faq/#answer-1-7">No</a></td></tr> -<tr><td>XMLRPC API</td><td>-</td><td>Yes</td></tr> -<tr><td>Libraries/plugins available</td><td>[[Some|libraries]]</td><td><a href="http://en.gravatar.com/site/implement/images/libraries/">Lots</a></td></tr> -<tr><td><b>Free and Open Source Software</b></td><td><a href="http://www.gnu.org/licenses/agpl.html">Yes</a></td><td><a href="http://blog.gravatar.com/2010/05/31/gravatar-localization/#comment-8749">Not yet</a></td></tr> -<tr><td>Distributed service</td><td>[[Community mirrors|run a mirror]]</td><td>Professional CDN</td></tr> -<tr><td>Corporate sponsor</td><td>None</td><td><a href="http://automattic.com/">Automattic</a></td></tr> -</table> +[[!table class="border" data=""" + | Libravatar | Gravatar +JPEG and **PNG** support | Yes | Yes +Upload size limit | 10 MB | None +Image size (in pixels) | 1 to 512 (configurable) | [2048](http://blog.gravatar.com/2012/07/30/retina/) +**HTTPS** support | Yes | Yes +**IPv6** support | Yes | — +Supported email hashes | MD5 and **SHA256** | [MD5 only](http://en.gravatar.com/site/faq/#answer-2-1) +**OpenID** URL support | Yes | — +Redirection to Gravatar | Yes | Not needed :) +Customizable default image | Yes | Yes +MPAA-style image ratings | G-rated only | Yes +Text-based profile information | — | Yes +**Federation** via DNS SRV records| Yes | — +**Persona** authentication | Yes | — +**LDAP** authentication | Yes | — +**OpenID** authentication | Yes | — +Automatic photo **importers** | [[Yes|photo importers]] | — +Translated user interface | [Yes](https://translations.launchpad.net/libravatar) | [Yes](http://en.gravatar.com/site/translations/) +Account **export** | Yes | — +Account **deletion** | Yes | [No](http://en.gravatar.com/site/faq/#answer-1-7) +XMLRPC API | — | Yes +Libraries/plugins available | [[Some|libraries]] | [Lots](http://en.gravatar.com/site/implement/images/libraries/) +**Free and Open Source software** | [Yes](http://www.gnu.org/licenses/agpl.html) | [No](http://blog.gravatar.com/2010/05/31/gravatar-localization/#comment-8749) +Distributed service | [[Community mirrors|run a mirror]] | Commercial CDN +Corporate owner | — | [Automattic](http://automattic.com/) +"""]] Is something missing from this list? Let us know by [filing a bug](https://bugs.launchpad.net/libravatar/+filebug), or [[contributing|contribute]] a new feature yourself!
Reduce size of Logo and specify dimensions
diff --git a/index.mdwn b/index.mdwn index 3bd37d0..615d9cd 100644 --- a/index.mdwn +++ b/index.mdwn @@ -1,4 +1,4 @@ -<img src="http://cdn.libravatar.org/nobody/300.png" align="right"> +<img src="http://cdn.libravatar.org/nobody/256.png" align="right" width="256" height="256"> [Libravatar](https://www.libravatar.org) is a free service for hosting profile images tied to your email address or OpenID. Once you have an
attachment upload
diff --git a/local.css b/local.css
new file mode 100644
index 0000000..207fba3
--- /dev/null
+++ b/local.css
@@ -0,0 +1,10 @@
+/* ikiwiki local style sheet */
+
+/* Add local styling here, instead of modifying style.css. */
+table.border {
+ border-collapse: collapse;
+}
+table.border td, table.border th {
+ border: 1px solid black;
+ padding: 2px 4px;
+}
\ No newline at end of file
diff --git a/local.css.old b/local.css.old
new file mode 100644
index 0000000..207fba3
--- /dev/null
+++ b/local.css.old
@@ -0,0 +1,10 @@
+/* ikiwiki local style sheet */
+
+/* Add local styling here, instead of modifying style.css. */
+table.border {
+ border-collapse: collapse;
+}
+table.border td, table.border th {
+ border: 1px solid black;
+ padding: 2px 4px;
+}
\ No newline at end of file
talk about surrogator
diff --git a/running_your_own.mdwn b/running_your_own.mdwn index 84bf10e..d94e16d 100644 --- a/running_your_own.mdwn +++ b/running_your_own.mdwn @@ -1,5 +1,17 @@ Libravatar was designed so that domain owners can choose to host themselves the profile pictures for their domain. For example, an organisation may want to have control over the pictures use for their employees. +Currently exist two libravatar image server implementations: + +[[!table class="border" data=""" +Name | Description | Administration | Programming language | Default modes +libravatar | The software that runs libravatar.org | web-based | Python | 404, mm, identicon, monsterid, wavatar, retro +[Surrogator](https://sourceforge.net/p/surrogator/) | very simple avatar server | command line only | PHP | 404, mm +"""]] + +The following instructions are about the official libravatar.org software. + + + # System requirements You can find the latest system requirements in the [installation instructions](https://gitorious.org/libravatar/libravatar/blobs/master/INSTALL.md) that come with the software, but Libravatar has been confirmed to work on [Debian 6](http://www.debian.org/releases/squeeze/) (squeeze).
remove dev@libravatar.org email address and link to contact page instead
diff --git a/libraries.mdwn b/libraries.mdwn index 035249d..6c9b3ca 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -101,4 +101,4 @@ There aren't many plugins available at the moment, but please [[suggest the ones # Contribute! -Interested in writing a plugin for your favourite framework/CMS or a library for your favourite language? Please [get in touch](mailto:dev@libravatar.org), we would be more than happy to link to them from this page! +Interested in writing a plugin for your favourite framework/CMS or a library for your favourite language? Please [[get in touch|talk to us]], we would be more than happy to link to them from this page!
PyCon got there before LCA!
diff --git a/libraries.mdwn b/libraries.mdwn index 38322b0..035249d 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -97,7 +97,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [MediaWiki](http://www.mediawiki.org/wiki/Extension:Libravatar) * [Wordpress](http://wordpress.org/extend/plugins/libravatar/) -* [Zookeepr](http://zookeepr.org/) (part of core, starting with LCA 2013) +* [Zookeepr](http://zookeepr.org/) (part of core, starting with PyCon AU 2012) # Contribute!
Updated NPM link
diff --git a/libraries.mdwn b/libraries.mdwn
index 81dfa54..38322b0 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -17,7 +17,7 @@ If a library or plugin is not availble for your language or application, your be
<img src="nodejs_logo.png" width="219" height="75" align="right">
-There is a [Libravatar node.js module](http://search.npmjs.org/#/libravatar) that can be used in the follow way:
+There is a [Libravatar node.js module](https://npmjs.org/package/libravatar) that can be used in the follow way:
var libravatar = require('libravatar');
libravatar.url(email='person@example.com', openid=null, { size: 96, default: 'mm' }, https=false,
Mention Libravatar's new 10MB limit and Gravatar's new 2048px limit
diff --git a/features.mdwn b/features.mdwn index 00f1140..a80b65b 100644 --- a/features.mdwn +++ b/features.mdwn @@ -3,8 +3,8 @@ Here is a list of features currently available in [Libravatar](https://www.libra <table border="1"> <tr><th></th><th>Libravatar</th><th>Gravatar</th></tr> <tr><td>JPEG and <b>PNG</b> support</td><td>Yes</td><td>Yes</td></tr> -<tr><td>Upload size limit</td><td>5 MB</td><td>None</td></tr> -<tr><td>Image size (in pixels)</td><td>1 to 512 (configurable)</td><td>1 to 512</td></tr> +<tr><td>Upload size limit</td><td>10 MB</td><td>None</td></tr> +<tr><td>Image size (in pixels)</td><td>1 to 512 (configurable)</td><td>1 to <a href="http://blog.gravatar.com/2012/07/30/retina/">2048</a></td></tr> <tr><td><b>HTTPS</b> support</td><td>Yes</td><td>Yes</td></tr> <tr><td><b>IPv6</b> support</td><td>Yes</td><td>-</td></tr> <tr><td>Support email hashes</td><td>MD5 and <b>SHA256</b></td><td><a href="http://en.gravatar.com/site/faq/#answer-2-1">MD5 only</a></td></tr>
use getUrl() in php,not url()
diff --git a/libraries.mdwn b/libraries.mdwn
index 4fa5fa4..81dfa54 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -43,16 +43,16 @@ As of version 1.04, you can also use OpenID URLs instead of email addresses:
<img src="php_logo.png" width="145" height="75" align="right">
-[Melissa Draper](http://www.meldraweb.com/) maintains the [Services_Libravatar](http://pear.php.net/package/Services_Libravatar/) PEAR module. Here's an example of how it works:
+[Melissa Draper](http://www.meldraweb.com/) maintains the [Services_Libravatar](http://pear.php.net/package/Services_Libravatar/) PEAR package. Here's an example of how it works:
require_once 'Services/Libravatar.php';
$libravatar = new Services_Libravatar();
- $avatar_url = $libravatar->url('person@example.org');
- print '<img src="' . $avatar_url . '">';
+ $avatar_url = $libravatar->getUrl('person@example.org');
+ print '<img src="' . htmlspecialchars($avatar_url) . '" alt="avatar"/>';
or like this for OpenID-based avatars served over HTTPS:
- $avatar_url = $libravatar->url('http://example.org/id/Person', array('https' => true));
+ $avatar_url = $libravatar->getUrl('http://example.org/id/Person', array('https' => true));
## Python
Remove Frendica from the list since it has support now
diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index 3f7282c..0d3dc42 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -16,7 +16,6 @@ The following [[plugins|libraries]] have been suggested: * [Gitorious](https://issues.gitorious.org/issues/62) * Pidgin * BuddyCloud -* [Friendica](https://github.com/friendica/friendica) - [Klaus is onto it](http://friendica.dszdw.net/display/klaus/6377) If you'd like to **vote** for one of these, add a "+" sign at the end of the line.
add mediawiki plugin
diff --git a/libraries.mdwn b/libraries.mdwn index 881f4cb..4fa5fa4 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -95,6 +95,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Friendica](https://github.com/friendica/friendica-addons/tree/master/libravatar) * [Ikiwiki](http://ikiwiki.info) (part of core, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) +* [MediaWiki](http://www.mediawiki.org/wiki/Extension:Libravatar) * [Wordpress](http://wordpress.org/extend/plugins/libravatar/) * [Zookeepr](http://zookeepr.org/) (part of core, starting with LCA 2013)
Link to new Friendica plugin
diff --git a/libraries.mdwn b/libraries.mdwn index 65fa0e7..881f4cb 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -92,6 +92,7 @@ The [txLibravatar](http://pypi.python.org/pypi/txLibravatar) module can be used There aren't many plugins available at the moment, but please [[suggest the ones|suggested plugins]] you'd like to have. * [Foswiki](http://foswiki.org/Extensions/AvatarPlugin) +* [Friendica](https://github.com/friendica/friendica-addons/tree/master/libravatar) * [Ikiwiki](http://ikiwiki.info) (part of core, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Wordpress](http://wordpress.org/extend/plugins/libravatar/)
Fix indentation
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn index 0afa825..e46e1ab 100644 --- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn +++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn @@ -46,14 +46,14 @@ and then lookup images using the [test tool](https://www.libravatar.org/tools/ch 1. Add these two DNS records in the <tt>libravatar.org</tt> zone: - cdn A 10 123.123.123.123 - seccdn A 10 123.123.123.123 - cdn AAAA 10 dead::beef - seccdn AAAA 10 dead::beef + cdn A 10 123.123.123.123 + seccdn A 10 123.123.123.123 + cdn AAAA 10 dead::beef + seccdn AAAA 10 dead::beef 2. Add the same records to the [JSON zone file](https://gitorious.org/libravatar/libravatar/blobs/master/config/dns.json) and then use <tt>namecoind</tt> to update the <tt>libravatar.bit</tt> zone: - ~/devel/remote/namecoin/src/namecoind name_update d/libravatar "`xargs echo < config/dns.json`" + namecoind name_update d/libravatar "`xargs echo < config/dns.json`" # Enabling stats on the slave (optional)
Add DNS and Dot Bit instructions
The Dot Bit instructions come from Chris Double:
http://www.bluishcoder.co.nz/2011/05/12/namecoin-a-dns-alternative-based-on-bitcoin.html
The Dot Bit instructions come from Chris Double:
http://www.bluishcoder.co.nz/2011/05/12/namecoin-a-dns-alternative-based-on-bitcoin.html
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn index 44a14d0..0afa825 100644 --- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn +++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn @@ -42,7 +42,18 @@ Given a new slave with an IP address of 192.0.2.10, then you can put this in you and then lookup images using the [test tool](https://www.libravatar.org/tools/check). -Once it works, add the new slave to the round-robin A (and hopefully AAAA) records in your zone. +# Adding the new mirror to the DNS load-balancer + +1. Add these two DNS records in the <tt>libravatar.org</tt> zone: + + cdn A 10 123.123.123.123 + seccdn A 10 123.123.123.123 + cdn AAAA 10 dead::beef + seccdn AAAA 10 dead::beef + +2. Add the same records to the [JSON zone file](https://gitorious.org/libravatar/libravatar/blobs/master/config/dns.json) and then use <tt>namecoind</tt> to update the <tt>libravatar.bit</tt> zone: + + ~/devel/remote/namecoin/src/namecoind name_update d/libravatar "`xargs echo < config/dns.json`" # Enabling stats on the slave (optional)
Switch main repo from bzr to git
diff --git a/code_checkout.mdwn b/code_checkout.mdwn
index 380bc77..9ecd0e5 100644
--- a/code_checkout.mdwn
+++ b/code_checkout.mdwn
@@ -1,4 +1,4 @@
-The main repository is using bzr, but that doesn't mean you have to use it since we provide mirrors of the repository in other version control systems.
+The main repository is using git, but that doesn't mean you have to use it since we provide mirrors of the repository in other version control systems.
# Using [bzr](http://bazaar.canonical.com/)
@@ -12,14 +12,14 @@ You can [browse the repository](http://bazaar.launchpad.net/~libravatar/libravat
<img src="git_logo.png" width="64" height="64" align="right">
-**WARNING: the git mirror is currently not syncing. Please [[talk to us]] if you can help fix it.**
-
You can [browse the code](https://gitorious.org/libravatar/libravatar/trees) on Gitorious and [clone the repository](https://gitorious.org/libravatar/libravatar/clone).
Otherwise, just check the code out locally:
git clone git://gitorious.org/libravatar/libravatar.git
+A mirror of it is also available on [Github](https://github.com/libravatar/libravatar).
+
# Using [mercurial](http://mercurial.selenic.com/)
<img src="hg_logo.png" width="64" height="64" align="right">
@@ -32,4 +32,4 @@ Otherwise, just clone the repo:
# Using other version control systems
-Is your favourite source control system not in our list? Well, if you can [[send us|talk to us]] instructions on how to convert a bzr repository to a *YourFavoriteVCS* repository, then we'll try to add it to the sync cronjob we have.
+Is your favourite source control system not in our list? Well, if you can [[send us|talk to us]] instructions on how to convert a git repository to a *YourFavoriteVCS* repository, then we'll try to add it to the sync cronjob we have.
diff --git a/code_layout.mdwn b/code_layout.mdwn
index c665937..16f7944 100644
--- a/code_layout.mdwn
+++ b/code_layout.mdwn
@@ -1,18 +1,18 @@
Libravatar is a fairly simple [Django](http://www.djangoproject.org) application.
-Here's what you'll find in the [main repository](https://code.launchpad.net/~libravatar/libravatar/trunk):
+Here's what you'll find in the [main repository](https://gitorious.org/libravatar/libravatar):
-* [config/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/config/): [Apache](http://httpd.apache.org/) configuration files
-* [contrib/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/contrib/): contributed code related to the project but not needed by the main application
-* [debian/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/debian/): installation scripts and cron jobs
-* [libravatar/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/): [Gearman](http://gearman.org/) workers and Django configuration
- * [libravatar/account/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/account/): main application (logged in)
- * [libravatar/locale/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/locale/): [translations](https://translations.launchpad.net/libravatar/trunk/+translations)
- * [libravatar/public/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/public/): public-facing website (logged out)
- * [libravatar/schemas/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/schemas/): XML schema used for account exports
- * [libravatar/templates/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/templates/): HTML templates
- * [libravatar/tools/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/tools/): helpful interactive tools
-* [static/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/static/): CSS stylesheets, Javascripts and images need by the Django application
- * [static/cdn/](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/static/cdn/): images needed by the avatar CDNs
+* [config/](https://gitorious.org/libravatar/libravatar/trees/master/config): [Apache](http://httpd.apache.org/) configuration files
+* [contrib/](https://gitorious.org/libravatar/libravatar/trees/master/contrib): contributed code related to the project but not needed by the main application
+* [debian/](https://gitorious.org/libravatar/libravatar/trees/master/debian): installation scripts and cron jobs
+* [libravatar/](https://gitorious.org/libravatar/libravatar/trees/master/libravatar): [Gearman](http://gearman.org/) workers and Django configuration
+ * [libravatar/account/](https://gitorious.org/libravatar/libravatar/trees/master/libravatar/account): main application (logged in)
+ * [libravatar/locale/](https://gitorious.org/libravatar/libravatar/trees/master/libravatar/locale): [translations](https://translations.launchpad.net/libravatar/trunk/+translations)
+ * [libravatar/public/](https://gitorious.org/libravatar/libravatar/trees/master/libravatar/public): public-facing website (logged out)
+ * [libravatar/schemas/](https://gitorious.org/libravatar/libravatar/trees/master/libravatar/schemas): XML schema used for account exports
+ * [libravatar/templates/](https://gitorious.org/libravatar/libravatar/trees/master/libravatar/templates): HTML templates
+ * [libravatar/tools/](https://gitorious.org/libravatar/libravatar/trees/master/libravatar/tools): helpful interactive tools
+* [static/](https://gitorious.org/libravatar/libravatar/trees/master/static): CSS stylesheets, Javascripts and images need by the Django application
+ * [static/cdn/](https://gitorious.org/libravatar/libravatar/trees/master/static/cdn): images needed by the avatar CDNs
As far as getting your head around the Django-specific code, have a look at the [excellent manual](https://docs.djangoproject.com/en/1.2/) they provide.
diff --git a/coding_guidelines.mdwn b/coding_guidelines.mdwn
index 2878bbf..7994730 100644
--- a/coding_guidelines.mdwn
+++ b/coding_guidelines.mdwn
@@ -2,4 +2,4 @@ The main Django application follows the usual the usual [PEP-8](http://www.pytho
We also enforce some of this through [pylint](http://www.logilab.org/project/pylint) in the test suite (<tt>make test</tt>).
-(These guidelines are also included in the [HACKING](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/HACKING) file distributed with Libravatar.)
+(These guidelines are also included in the [HACKING.md](https://gitorious.org/libravatar/libravatar/blobs/master/HACKING.md) file distributed with Libravatar.)
diff --git a/designer.mdwn b/designer.mdwn
index b0a9895..51a1987 100644
--- a/designer.mdwn
+++ b/designer.mdwn
@@ -4,6 +4,6 @@ We would be delighted to have you on board!
The best place to start is to [[talk to us]] and then:
-1. grab a copy of the [HTML templates](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/templates/) and [CSS files](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/static/css/)
+1. grab a copy of the [HTML templates](https://gitorious.org/libravatar/libravatar/trees/master/libravatar/templates) and [CSS files](https://gitorious.org/libravatar/libravatar/trees/master/static/css)
2. make them look fresh and attractive (i.e. the hard creative bit)
3. attach them to a [new bug report](https://bugs.launchpad.net/libravatar/+filebug)
diff --git a/development_environment.mdwn b/development_environment.mdwn
index bc7cc51..10cc2ae 100644
--- a/development_environment.mdwn
+++ b/development_environment.mdwn
@@ -52,12 +52,12 @@ To create and initialize your chroot-based environment:
* install the required packages in the chroot:
- apt-get install bzr make debhelper yui-compressor python-django python-psycopg2 python-gearman.libgearman python-imaging python-openid python-dns pylint
+ apt-get install git make debhelper yui-compressor python-django python-psycopg2 python-gearman.libgearman python-imaging python-openid python-dns pylint
* get a copy of the repo:
cd /root
- bzr co lp:libravatar
+ git clone git://gitorious.org/libravatar/libravatar.git
* create a config file for your environment:
@@ -113,10 +113,10 @@ The next time you want to get inside the chroot to do some work, simply do the f
If you want to update the Libravatar codebase you are working from, do this:
-* update the bzr branch:
+* update the branch:
cd /root/libravatar
- bzr up
+ git pull
* get rid of old packages:
diff --git a/easy_development_tasks.mdwn b/easy_development_tasks.mdwn
index 7806075..b954457 100644
--- a/easy_development_tasks.mdwn
+++ b/easy_development_tasks.mdwn
@@ -1,7 +1,7 @@
There are two places where we keep track of things to do in the project:
* [Bug tracker](https://bugs.launchpad.net/libravatar): for bugs and suggested features in the code
-* [TODO file](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/TODO): for project-wide or sysadmin tasks
+* [TODO file](https://gitorious.org/libravatar/libravatar/blobs/master/TODO.md): for project-wide or sysadmin tasks
But if you are looking for an easy bug / feature to start with, you may want to:
diff --git a/how_to_add_a_new_translation.mdwn b/how_to_add_a_new_translation.mdwn
index f7d581e..3d71506 100644
--- a/how_to_add_a_new_translation.mdwn
+++ b/how_to_add_a_new_translation.mdwn
@@ -1,8 +1,8 @@
Here is the current list of steps required to add a new po-based translation to the Libravatar codebase:
1. get the po file from the [Launchpad repo](https://code.launchpad.net/~libravatar/libravatar/libravatar-po)
-2. add the po file under [po/libravatar](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/po/libravatar/)
-3. create a new directory under [libravatar/locale/](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/locale/) add the appropriate symlink pointing to the above po file
-4. add the language to the <tt>LANGUAGES</tt> array in [libravatar/settings.py.example](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/libravatar/settings.py.example) and the local <tt>settings.py</tt>
-5. add the language code to the for loop in the <tt>pofiles</tt> target of the [Makefile](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/Makefile)
+2. add the po file under [po/libravatar](https://gitorious.org/libravatar/libravatar/trees/master/po/libravatar)
+3. create a new directory under [libravatar/locale/](https://gitorious.org/libravatar/libravatar/trees/master/libravatar/locale) add the appropriate symlink pointing to the above po file
+4. add the language to the <tt>LANGUAGES</tt> array in [libravatar/settings.py.example](https://gitorious.org/libravatar/libravatar/blobs/master/libravatar/settings.py.example) and the local <tt>settings.py</tt>
+5. add the language code to the for loop in the <tt>pofiles</tt> target of the [Makefile](https://gitorious.org/libravatar/libravatar/blobs/master/Makefile)
6. run the <tt>make pofiles</tt> command and commit changes to the <tt>en</tt> translation (i.e. the POT file)
diff --git a/running_your_own.mdwn b/running_your_own.mdwn
index 2d48e98..84bf10e 100644
--- a/running_your_own.mdwn
+++ b/running_your_own.mdwn
@@ -2,17 +2,17 @@ Libravatar was designed so that domain owners can choose to host themselves the
# System requirements
-You can find the latest system requirements in the [installation instructions](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/INSTALL) that come with the software, but Libravatar has been confirmed to work on [Debian 6](http://www.debian.org/releases/squeeze/) (squeeze).
+You can find the latest system requirements in the [installation instructions](https://gitorious.org/libravatar/libravatar/blobs/master/INSTALL.md) that come with the software, but Libravatar has been confirmed to work on [Debian 6](http://www.debian.org/releases/squeeze/) (squeeze).
# Getting the code
-We are not currently doing regular releases of the code, but you can easily get the latest copy from our [Bazaar repository](https://code.launchpad.net/libravatar):
+We are not currently doing regular releases of the code, but you can easily get the latest copy from our [git repository](https://gitorious.org/libravatar/libravatar):
- bzr branch lp:libravatar
+ git clone git://gitorious.org/libravatar/libravatar.git
# Installation
-Once you've got a copy of the code, follow the instructions in the [INSTALL](http://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/INSTALL) file.
+Once you've got a copy of the code, follow the instructions in the [INSTALL](https://gitorious.org/libravatar/libravatar/blobs/master/INSTALL.md) file.
# Configuration
diff --git a/submitting_a_patch.mdwn b/submitting_a_patch.mdwn
index 0959209..d628ea3 100644
--- a/submitting_a_patch.mdwn
+++ b/submitting_a_patch.mdwn
@@ -1,7 +1,8 @@
-There are two ways to submit your patch:
+There are three ways to submit your patch:
1. Attach it to the relevant bug on the [tracker](https://bugs.launchpad.net/libravatar) (create a [new bug](https://bugs.launchpad.net/libravatar/+filebug) if you need to)
-2. Submit a bzr [merge request](https://help.launchpad.net/Code/Review#Proposing%20a%20merge)
+2. Submit a [merge request](https://gitorious.org/libravatar/libravatar/merge_requests) on [Gitorious](https://gitorious.org/libravatar/libravatar)
+3. Submit a [pull request](https://help.github.com/articles/using-pull-requests) on [Github](https://github.com/libravatar/libravatar)
Of course, if you need any help, [[give us a shout|talk to us]]!
diff --git a/writing_a_plugin.mdwn b/writing_a_plugin.mdwn
index bdcfa7f..a7b065e 100644
--- a/writing_a_plugin.mdwn
+++ b/writing_a_plugin.mdwn
@@ -15,6 +15,6 @@ What should you do if a library is not available for your target language? Well,
(Diff truncated)
Update www URL for move to HTTPS
diff --git a/api.mdwn b/api.mdwn
index 8344ad1..fb11160 100644
--- a/api.mdwn
+++ b/api.mdwn
@@ -85,7 +85,7 @@ You will probably want to use an [[existing library|libraries]] for this, but he
;; ANSWER SECTION:
_avatars._tcp.example.com. 86400 IN SRV 0 0 80 avatars.example.com.
-We also provide a [domain check tool](http://www.libravatar.org/tools/check_domain) to help in your testing.
+We also provide a [domain check tool](https://www.libravatar.org/tools/check_domain) to help in your testing.
Notes for advanced users / library authors:
@@ -135,4 +135,4 @@ Therefore, if you don't have an email address for some of your users but you do
# Testing tool
-We provide a [check tool](http://www.libravatar.org/tools/check) to help developers test their implementations and compare their results.
+We provide a [check tool](https://www.libravatar.org/tools/check) to help developers test their implementations and compare their results.
diff --git a/designer.mdwn b/designer.mdwn
index a91ac97..b0a9895 100644
--- a/designer.mdwn
+++ b/designer.mdwn
@@ -1,4 +1,4 @@
-Are you a CSS / graphics guru? Do you have any ideas on how to improve the style of our [website](http://www.libravatar.org)?
+Are you a CSS / graphics guru? Do you have any ideas on how to improve the style of our [website](https://www.libravatar.org)?
We would be delighted to have you on board!
diff --git a/developer.mdwn b/developer.mdwn
index 783fc56..14548af 100644
--- a/developer.mdwn
+++ b/developer.mdwn
@@ -2,7 +2,7 @@ Depending on your interest and what programming languages you know, there are a
# Plugins / Libraries
-We want to see the Libravatar community grow and one of the best ways to do this is to expand the range of applications supporting [Libravatar](http://www.libravatar.org) out of the box, or with the help of a plugin/extension.
+We want to see the Libravatar community grow and one of the best ways to do this is to expand the range of applications supporting [Libravatar](https://www.libravatar.org) out of the box, or with the help of a plugin/extension.
Please consider writing a patch, plugin or extension for your favourite web applications. There might already be a [[library|libraries]] for the relevant programming language. Otherwise, you could always write one!
diff --git a/features.mdwn b/features.mdwn
index 5dc299d..00f1140 100644
--- a/features.mdwn
+++ b/features.mdwn
@@ -1,4 +1,4 @@
-Here is a list of features currently available in [Libravatar](http://www.libravatar.org) and how it differs from [Gravatar](http://www.gravatar.com).
+Here is a list of features currently available in [Libravatar](https://www.libravatar.org) and how it differs from [Gravatar](http://www.gravatar.com).
<table border="1">
<tr><th></th><th>Libravatar</th><th>Gravatar</th></tr>
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index c27bb35..44a14d0 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -40,7 +40,7 @@ Given a new slave with an IP address of 192.0.2.10, then you can put this in you
192.0.2.10 cdn.libravatar.org seccdn.libravatar.org
-and then lookup images using the [test tool](http://www.libravatar.org/tools/check).
+and then lookup images using the [test tool](https://www.libravatar.org/tools/check).
Once it works, add the new slave to the round-robin A (and hopefully AAAA) records in your zone.
diff --git a/running_your_own.mdwn b/running_your_own.mdwn
index bd1ca47..2d48e98 100644
--- a/running_your_own.mdwn
+++ b/running_your_own.mdwn
@@ -52,4 +52,4 @@ You may however use weights to spread the load across more than one avatar serve
## Testing
-Once you have these records, have a look at the [domain check tool](http://www.libravatar.org/tools/check_domain) to make sure eveprything is working.
+Once you have these records, have a look at the [domain check tool](https://www.libravatar.org/tools/check_domain) to make sure eveprything is working.
we need to update the lang list in settings.py and the POT file
diff --git a/how_to_add_a_new_translation.mdwn b/how_to_add_a_new_translation.mdwn index 7ba2e4a..f7d581e 100644 --- a/how_to_add_a_new_translation.mdwn +++ b/how_to_add_a_new_translation.mdwn @@ -3,5 +3,6 @@ Here is the current list of steps required to add a new po-based translation to 1. get the po file from the [Launchpad repo](https://code.launchpad.net/~libravatar/libravatar/libravatar-po) 2. add the po file under [po/libravatar](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/po/libravatar/) 3. create a new directory under [libravatar/locale/](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/locale/) add the appropriate symlink pointing to the above po file -4. add the language to the <tt>LANGUAGES</tt> array in [libravatar/settings.py.example](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/libravatar/settings.py.example) +4. add the language to the <tt>LANGUAGES</tt> array in [libravatar/settings.py.example](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/libravatar/settings.py.example) and the local <tt>settings.py</tt> 5. add the language code to the for loop in the <tt>pofiles</tt> target of the [Makefile](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/Makefile) +6. run the <tt>make pofiles</tt> command and commit changes to the <tt>en</tt> translation (i.e. the POT file)
Update mailing list
diff --git a/talk_to_us.mdwn b/talk_to_us.mdwn index 64c8893..20a683e 100644 --- a/talk_to_us.mdwn +++ b/talk_to_us.mdwn @@ -16,7 +16,7 @@ We use [Launchpad](https://bugs.launchpad.net/libravatar) as our bug tracker. # Mailing list -If you've got a proposal to discuss or prefer to write to us, you can join [our developers mailing list](http://libravatar.onlinegroups.net/groups/libravatar-devel). +If you've got a proposal to discuss or prefer to write to us, you can join [our developers mailing list](https://launchpad.net/~libravatar-fans#mailing-lists). # Identica / Twitter
PHP class is now a proper PEAR module
diff --git a/libraries.mdwn b/libraries.mdwn
index 66134d7..65fa0e7 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -43,7 +43,7 @@ As of version 1.04, you can also use OpenID URLs instead of email addresses:
<img src="php_logo.png" width="145" height="75" align="right">
-[Melissa Draper](http://www.meldraweb.com/) maintains the [Services_Libravatar](http://pear.php.net/package/Services_Libravatar/) PHP class. Here's an example of how it works:
+[Melissa Draper](http://www.meldraweb.com/) maintains the [Services_Libravatar](http://pear.php.net/package/Services_Libravatar/) PEAR module. Here's an example of how it works:
require_once 'Services/Libravatar.php';
$libravatar = new Services_Libravatar();
Make a note that someone is working on Friendica
diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index 0d3dc42..3f7282c 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -16,6 +16,7 @@ The following [[plugins|libraries]] have been suggested: * [Gitorious](https://issues.gitorious.org/issues/62) * Pidgin * BuddyCloud +* [Friendica](https://github.com/friendica/friendica) - [Klaus is onto it](http://friendica.dszdw.net/display/klaus/6377) If you'd like to **vote** for one of these, add a "+" sign at the end of the line.
Adding a new translation is really hard!
diff --git a/how_to_add_a_new_translation.mdwn b/how_to_add_a_new_translation.mdwn new file mode 100644 index 0000000..7ba2e4a --- /dev/null +++ b/how_to_add_a_new_translation.mdwn @@ -0,0 +1,7 @@ +Here is the current list of steps required to add a new po-based translation to the Libravatar codebase: + +1. get the po file from the [Launchpad repo](https://code.launchpad.net/~libravatar/libravatar/libravatar-po) +2. add the po file under [po/libravatar](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/po/libravatar/) +3. create a new directory under [libravatar/locale/](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/files/head:/libravatar/locale/) add the appropriate symlink pointing to the above po file +4. add the language to the <tt>LANGUAGES</tt> array in [libravatar/settings.py.example](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/libravatar/settings.py.example) +5. add the language code to the for loop in the <tt>pofiles</tt> target of the [Makefile](https://bazaar.launchpad.net/~libravatar/libravatar/trunk/view/head:/Makefile) diff --git a/translator.mdwn b/translator.mdwn index c412b15..ca5d269 100644 --- a/translator.mdwn +++ b/translator.mdwn @@ -15,3 +15,7 @@ On the other hand, if your language of choice is English, please feel free to im 1. [download the PO files](https://translations.launchpad.net/libravatar/trunk/+export) 2. edit them, fixing what needs to be fixed 3. attach the improved PO file to a [new bug report](https://bugs.launchpad.net/libravatar/trunk/+filebug) + +# Technical information + +* [[How to add a new translation]]
Apparently Services_Libravatar is in PEAR
diff --git a/libraries.mdwn b/libraries.mdwn
index f4c538f..66134d7 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -43,7 +43,7 @@ As of version 1.04, you can also use OpenID URLs instead of email addresses:
<img src="php_logo.png" width="145" height="75" align="right">
-[Melissa Draper](http://www.meldraweb.com/) maintains the [Services_Libravatar](https://launchpad.net/services-libravatar) PHP class. Here's an example of how it works:
+[Melissa Draper](http://www.meldraweb.com/) maintains the [Services_Libravatar](http://pear.php.net/package/Services_Libravatar/) PHP class. Here's an example of how it works:
require_once 'Services/Libravatar.php';
$libravatar = new Services_Libravatar();
Mention BrowserID support
diff --git a/features.mdwn b/features.mdwn index 9f42017..5dc299d 100644 --- a/features.mdwn +++ b/features.mdwn @@ -14,6 +14,7 @@ Here is a list of features currently available in [Libravatar](http://www.librav <tr><td>MPAA-style image ratings</td><td>-</td><td>Yes</td></tr> <tr><td>Text-based personal information</td><td>-</td><td>Yes</td></tr> <tr><td><b>Federation</b> via DNS SRV records</td><td>Yes</td><td>-</td></tr> +<tr><td><b>BrowserID</b> authentication</td><td>Yes</td><td>-</td></tr> <tr><td><b>LDAP</b> authentication</td><td>Yes</td><td>-</td></tr> <tr><td><b>OpenID</b> authentication</td><td>Yes</td><td>-</td></tr> <tr><td>Automatic photo <b>importers</b></td><td>[[Yes|photo importers]]</td><td>-</td></tr>
Unfortunately despite my efforts, the code never made it to the LCA2012 production site
diff --git a/libraries.mdwn b/libraries.mdwn index 0ca999d..f4c538f 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -95,7 +95,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Ikiwiki](http://ikiwiki.info) (part of core, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Wordpress](http://wordpress.org/extend/plugins/libravatar/) -* [Zookeepr](http://zookeepr.org/) (part of core, starting with LCA 2012) +* [Zookeepr](http://zookeepr.org/) (part of core, starting with LCA 2013) # Contribute!
Add a few suggestions from LCA
diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index e62ce45..0d3dc42 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -14,6 +14,8 @@ The following [[plugins|libraries]] have been suggested: * [gnus](http://julien.danjou.info/blog/index.html#Gnus_and_Gravatar_support) * [Redmine](http://www.redmine.org) - [Feature #9112](http://www.redmine.org/issues/9112) * [Gitorious](https://issues.gitorious.org/issues/62) +* Pidgin +* BuddyCloud If you'd like to **vote** for one of these, add a "+" sign at the end of the line.
Add Lars' Gitorious bug
diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index d93e8d0..e62ce45 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -13,6 +13,7 @@ The following [[plugins|libraries]] have been suggested: * [GroupServer/OnlineGroups.net](http://groupserver.org/) * [gnus](http://julien.danjou.info/blog/index.html#Gnus_and_Gravatar_support) * [Redmine](http://www.redmine.org) - [Feature #9112](http://www.redmine.org/issues/9112) +* [Gitorious](https://issues.gitorious.org/issues/62) If you'd like to **vote** for one of these, add a "+" sign at the end of the line.
Another small tweak to the license statement
diff --git a/index.mdwn b/index.mdwn index 26ffecb..3bd37d0 100644 --- a/index.mdwn +++ b/index.mdwn @@ -32,4 +32,4 @@ We value your privacy and freedom which is why we are committed to delivering ou ---- -The contents of this wiki is licensed under your choice of the [GNU Affero GPL version 3 or later](http://gnu.org/licenses/agpl.html), or the [Creative Commons Attribution-ShareAlike 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/) license. +The contents of this wiki is licensed under your choice of the [GNU Affero GPL version 3](http://gnu.org/licenses/agpl.html) or later, or the [Creative Commons Attribution-ShareAlike 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/) license.
Add missing word to the license statement in the footer
diff --git a/index.mdwn b/index.mdwn index 87baeac..26ffecb 100644 --- a/index.mdwn +++ b/index.mdwn @@ -32,4 +32,4 @@ We value your privacy and freedom which is why we are committed to delivering ou ---- -The contents of this wiki is licensed your choice of the [GNU Affero GPL version 3 or later](http://gnu.org/licenses/agpl.html), or the [Creative Commons Attribution-ShareAlike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/). +The contents of this wiki is licensed under your choice of the [GNU Affero GPL version 3 or later](http://gnu.org/licenses/agpl.html), or the [Creative Commons Attribution-ShareAlike 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/) license.
Libravatar support merged into zookeepr
diff --git a/libraries.mdwn b/libraries.mdwn index 655eab7..0ca999d 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -95,6 +95,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Ikiwiki](http://ikiwiki.info) (part of core, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Wordpress](http://wordpress.org/extend/plugins/libravatar/) +* [Zookeepr](http://zookeepr.org/) (part of core, starting with LCA 2012) # Contribute! diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index 4bcd2d8..d93e8d0 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -13,7 +13,6 @@ The following [[plugins|libraries]] have been suggested: * [GroupServer/OnlineGroups.net](http://groupserver.org/) * [gnus](http://julien.danjou.info/blog/index.html#Gnus_and_Gravatar_support) * [Redmine](http://www.redmine.org) - [Feature #9112](http://www.redmine.org/issues/9112) -* LCA's zookeepr or web CMS, for conference schedules If you'd like to **vote** for one of these, add a "+" sign at the end of the line.
fix CC license name and switch libravatar.org link to https
diff --git a/index.mdwn b/index.mdwn index 6cfc573..87baeac 100644 --- a/index.mdwn +++ b/index.mdwn @@ -1,6 +1,6 @@ <img src="http://cdn.libravatar.org/nobody/300.png" align="right"> -[Libravatar](http://www.libravatar.org) is a free service for hosting +[Libravatar](https://www.libravatar.org) is a free service for hosting profile images tied to your email address or OpenID. Once you have an account with us, your photo will be displayed next to your posts and comments on sites which support Libravatar. @@ -32,4 +32,4 @@ We value your privacy and freedom which is why we are committed to delivering ou ---- -The contents of this wiki is licensed your choice of the [GNU Affero GPL version 3 or later](http://gnu.org/licenses/agpl.html), or the [Creative Commons Attribution-Share Alike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/). +The contents of this wiki is licensed your choice of the [GNU Affero GPL version 3 or later](http://gnu.org/licenses/agpl.html), or the [Creative Commons Attribution-ShareAlike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/).
add a license to the wiki
diff --git a/index.mdwn b/index.mdwn index 4fa6196..6cfc573 100644 --- a/index.mdwn +++ b/index.mdwn @@ -29,3 +29,7 @@ welcome to join the project and [[run your own instance|Running your own]]. # Freedom We value your privacy and freedom which is why we are committed to delivering our service using a [[freedom-respecting infrastructure]]. + +---- + +The contents of this wiki is licensed your choice of the [GNU Affero GPL version 3 or later](http://gnu.org/licenses/agpl.html), or the [Creative Commons Attribution-Share Alike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/).
diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index d93e8d0..4bcd2d8 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -13,6 +13,7 @@ The following [[plugins|libraries]] have been suggested: * [GroupServer/OnlineGroups.net](http://groupserver.org/) * [gnus](http://julien.danjou.info/blog/index.html#Gnus_and_Gravatar_support) * [Redmine](http://www.redmine.org) - [Feature #9112](http://www.redmine.org/issues/9112) +* LCA's zookeepr or web CMS, for conference schedules If you'd like to **vote** for one of these, add a "+" sign at the end of the line.
Remove all of the "hello world" noise from the Twisted example
We shouldn't have to give a complete example to people. If they
want one, they can look in contrib/ (Libravatar source tree), but
if they are Twisted programmers, they should be able to figure
this out without a runnable example.
We shouldn't have to give a complete example to people. If they
want one, they can look in contrib/ (Libravatar source tree), but
if they are Twisted programmers, they should be able to figure
this out without a runnable example.
diff --git a/libraries.mdwn b/libraries.mdwn
index 387feae..655eab7 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -82,25 +82,9 @@ You can also use <tt>:openid => 'https://example.com/id/person'</tt> instead of
The [txLibravatar](http://pypi.python.org/pypi/txLibravatar) module can be used like this:
- from twisted.internet import reactor
- from twisted.web import server, resource
from txlibravatar import libravatar_url
-
- class TestResource(resource.Resource):
- isLeaf = True
-
- def print_response(self, result, request):
- request.setHeader("content-type", "text/html")
- request.write('<img src="' + result + '">')
- request.finish()
-
- def render_GET(self, request):
- d = libravatar_url(email = 'person@example.com')
- d.addCallback(self.print_response, request)
- return server.NOT_DONE_YET
-
- reactor.listenTCP(3000, server.Site(TestResource()))
- reactor.run()
+ d = libravatar_url(email = 'person@example.com')
+ d.addCallback(lambda x: print '<img src="' + x + '">')
<a name="plugins"></a>
# Plugins
Use an example.com email address in Twisted example
diff --git a/libraries.mdwn b/libraries.mdwn
index da7a307..387feae 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -95,7 +95,7 @@ The [txLibravatar](http://pypi.python.org/pypi/txLibravatar) module can be used
request.finish()
def render_GET(self, request):
- d = libravatar_url(email = 'fmarier@gmail.com')
+ d = libravatar_url(email = 'person@example.com')
d.addCallback(self.print_response, request)
return server.NOT_DONE_YET
Add table of content to the libraries page
diff --git a/libraries.mdwn b/libraries.mdwn index 33214b7..da7a307 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -1,7 +1,9 @@ -If a library or plugin is not availble for your language or application, your best option at the moment is to use our [[simple API|API]]. Don't worry though, it's really not that much work! +[[!toc levels=2]] # Libraries +If a library or plugin is not availble for your language or application, your best option at the moment is to use our [[simple API|API]]. Don't worry though, it's really not that much work! + ## C\# <img src="dotnet_logo.png" width="179" height="75" align="right">
Mention the Twisted library
diff --git a/libraries.mdwn b/libraries.mdwn
index eb5fd71..33214b7 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -74,6 +74,32 @@ The [pyLibravatar](http://pypi.python.org/pypi/pyLibravatar) module can be used
You can also use <tt>:openid => 'https://example.com/id/person'</tt> instead of providing an email address.
+## Twisted
+
+<img src="twisted_logo.png" width="71" height="75" align="right">
+
+The [txLibravatar](http://pypi.python.org/pypi/txLibravatar) module can be used like this:
+
+ from twisted.internet import reactor
+ from twisted.web import server, resource
+ from txlibravatar import libravatar_url
+
+ class TestResource(resource.Resource):
+ isLeaf = True
+
+ def print_response(self, result, request):
+ request.setHeader("content-type", "text/html")
+ request.write('<img src="' + result + '">')
+ request.finish()
+
+ def render_GET(self, request):
+ d = libravatar_url(email = 'fmarier@gmail.com')
+ d.addCallback(self.print_response, request)
+ return server.NOT_DONE_YET
+
+ reactor.listenTCP(3000, server.Site(TestResource()))
+ reactor.run()
+
<a name="plugins"></a>
# Plugins
diff --git a/libraries/twisted_logo.png b/libraries/twisted_logo.png
new file mode 100644
index 0000000..6f7203c
Binary files /dev/null and b/libraries/twisted_logo.png differ
update email and openid code examples to match current version of pyLibravatar, add basic auth username/password handling to the example
diff --git a/api.mdwn b/api.mdwn
index 1420daa..8344ad1 100644
--- a/api.mdwn
+++ b/api.mdwn
@@ -14,7 +14,7 @@ Here's an example in Python:
import hashlib
email = 'George@example.com'
- hash = hashlib.md5(email.lower()).hexdigest()
+ hash = hashlib.md5(email.strip().lower()).hexdigest()
which gives us a hash of <tt>40f8d096a3777232204cb3f796c577b7</tt> and therefore the following image tag:
@@ -113,7 +113,7 @@ In addition to email addresses, Libravatar allows users to associate photos to t
The same 5 steps apply:
1. Take a user's OpenID URL as entered by them.
-2. Convert the **protocol and hostname parts** of the URL to lowercase. e.g. HTTP://EXAMPLE.COM/ID/Bob => http://example.com/ID/Bob
+2. Convert the **protocol and hostname parts** of the URL to lowercase. e.g. HTTP://UserName:Password@EXAMPLE.COM/ID/Bob => http://UserName:Password@example.com/ID/Bob
3. Compute the hash (using the **SHA256 hash algorithm only**).
4. Turn the image into a URL by prefixing it with the Libravatar base URL.
5. Put the image into an <tt>img</tt> tag on your page.
@@ -122,9 +122,15 @@ Therefore, if you don't have an email address for some of your users but you do
import hashlib
from urlparse import urlsplit, urlunsplit
+
openid = 'http://example.com/id/john'
- url = urlsplit(openid)
- lowercase_url = urlunsplit((url.scheme.lower(), url.netloc.lower(), url.path, url.query, url.fragment))
+ url = urlsplit(openid.strip())
+ if url.username:
+ password = url.password or ''
+ netloc = url.username + ':' + password + '@' + url.hostname
+ else:
+ netloc = url.hostname
+ lowercase_url = urlunsplit((url.scheme.lower(), netloc, url.path, url.query, url.fragment))
hash = hashlib.sha256(lowercase_url).hexdigest()
# Testing tool
Update API and link to npmjs.org page
diff --git a/libraries.mdwn b/libraries.mdwn
index 3cffc74..eb5fd71 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -15,11 +15,11 @@ If a library or plugin is not availble for your language or application, your be
<img src="nodejs_logo.png" width="219" height="75" align="right">
-There is a [Libravatar node.js module](https://github.com/fmarier/node-libravatar) that can be used in the follow way:
+There is a [Libravatar node.js module](http://search.npmjs.org/#/libravatar) that can be used in the follow way:
var libravatar = require('libravatar');
libravatar.url(email='person@example.com', openid=null, { size: 96, default: 'mm' }, https=false,
- function (avatar_url) {
+ function (error, avatar_url) {
console.log('<img src="' + avatar_url + '">');
});
Add node.js library to the list
diff --git a/libraries.mdwn b/libraries.mdwn
index a2d48b6..3cffc74 100644
--- a/libraries.mdwn
+++ b/libraries.mdwn
@@ -11,6 +11,18 @@ If a library or plugin is not availble for your language or application, your be
using libravatarsharp;
var uri = AvatarUri.FromEmail( "someone@example.com" );
+## node.js
+
+<img src="nodejs_logo.png" width="219" height="75" align="right">
+
+There is a [Libravatar node.js module](https://github.com/fmarier/node-libravatar) that can be used in the follow way:
+
+ var libravatar = require('libravatar');
+ libravatar.url(email='person@example.com', openid=null, { size: 96, default: 'mm' }, https=false,
+ function (avatar_url) {
+ console.log('<img src="' + avatar_url + '">');
+ });
+
## Perl
<img src="perl_logo.png" width="75" height="75" align="right">
diff --git a/libraries/nodejs_logo.png b/libraries/nodejs_logo.png
new file mode 100644
index 0000000..3d68212
Binary files /dev/null and b/libraries/nodejs_logo.png differ
Move awstats instructions to a separate section
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index 20c3931..c27bb35 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -17,11 +17,6 @@ Do this on the **slave**:
ln -s /var/lib/libravatar/slave/cert/seccdn.crt /etc/libravatar/
3. uncomment <tt>allowrsync</tt> in <tt>/etc/rssh.conf</tt>.
-4. (optional) make the statistical reports available:
-
- apt-get install awstats
- ln -s /usr/share/awstats/icon/ /var/www/awstats-icon
- ln -s /var/cache/awstats/ /var/www/stats
Do this on the **master**:
@@ -48,3 +43,20 @@ Given a new slave with an IP address of 192.0.2.10, then you can put this in you
and then lookup images using the [test tool](http://www.libravatar.org/tools/check).
Once it works, add the new slave to the round-robin A (and hopefully AAAA) records in your zone.
+
+# Enabling stats on the slave (optional)
+
+1. install awstats:
+
+ apt-get install awstats
+
+2. add this to <tt>/etc/awstats/awstats.conf.local</tt>:
+
+ SiteDomain="libravatar.org"
+ LogType=W
+ LogFormat=1
+
+3. make the reports available:
+
+ ln -s /usr/share/awstats/icon/ /var/www/awstats-icon
+ ln -s /var/cache/awstats/ /var/www/stats
add "installing awstats" to the list of things to do
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index 9c87aa2..20c3931 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -17,8 +17,9 @@ Do this on the **slave**:
ln -s /var/lib/libravatar/slave/cert/seccdn.crt /etc/libravatar/
3. uncomment <tt>allowrsync</tt> in <tt>/etc/rssh.conf</tt>.
-4. (optional) make the awstats reports available:
+4. (optional) make the statistical reports available:
+ apt-get install awstats
ln -s /usr/share/awstats/icon/ /var/www/awstats-icon
ln -s /var/cache/awstats/ /var/www/stats
new name for seccdn-chain.pem
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index 79635fe..9c87aa2 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -12,7 +12,7 @@ Do this on the **slave**:
2. create symlinks for the SSL certificate:
- ln -s /var/lib/libravatar/slave/cert/chain.pem /etc/libravatar/
+ ln -s /var/lib/libravatar/slave/cert/seccdn-chain.pem /etc/libravatar/
ln -s /var/lib/libravatar/slave/cert/seccdn.pem /etc/libravatar/
ln -s /var/lib/libravatar/slave/cert/seccdn.crt /etc/libravatar/
make a note that NTP needs to be running
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index ac936d4..79635fe 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -4,6 +4,7 @@ This will be of interest only to admins who run a Libravatar master server using
Do this on the **slave**:
+1. make sure NTP is installed and running
1. install the required packages on the slave:
dpkg -i libravatar-{common,cdn-common,cdn,seccdn,slave}*.deb
fix rsync option name
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index d8a7145..ac936d4 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -15,7 +15,7 @@ Do this on the **slave**:
ln -s /var/lib/libravatar/slave/cert/seccdn.pem /etc/libravatar/
ln -s /var/lib/libravatar/slave/cert/seccdn.crt /etc/libravatar/
-3. uncomment <tt>enablersync</tt> in <tt>/etc/rssh.conf</tt>.
+3. uncomment <tt>allowrsync</tt> in <tt>/etc/rssh.conf</tt>.
4. (optional) make the awstats reports available:
ln -s /usr/share/awstats/icon/ /var/www/awstats-icon
there is no apt repo yet for cdn packages
diff --git a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
index 2fbbc38..d8a7145 100644
--- a/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
+++ b/how_to_add_a_mirror_slave_to_the_mirror_master.mdwn
@@ -6,7 +6,7 @@ Do this on the **slave**:
1. install the required packages on the slave:
- apt-get install libravatar-{common,cdn-common,cdn,seccdn,slave}
+ dpkg -i libravatar-{common,cdn-common,cdn,seccdn,slave}*.deb
apt-get install -f
2. create symlinks for the SSL certificate:
link to Moodle bug
diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index c123694..d93e8d0 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -5,7 +5,7 @@ The following [[plugins|libraries]] have been suggested: * Launchpad * [Drupal](http://drupal.org/node/1045064) * [Django](https://code.google.com/p/django-gravatar/) -* Moodle +* [Moodle](http://tracker.moodle.org/browse/MDL-29584) * Wikkid * [Thunderbird](https://addons.mozilla.org/en-US/thunderbird/addon/58034/) * [pfaces](https://projects.pekdon.net/projects/pfaces)
mention email address
diff --git a/talk_to_us.mdwn b/talk_to_us.mdwn index c618e2f..64c8893 100644 --- a/talk_to_us.mdwn +++ b/talk_to_us.mdwn @@ -23,3 +23,7 @@ If you've got a proposal to discuss or prefer to write to us, you can join [our Finally, you can also put short notices to our attention on [Identica](http://identi.ca/libravatar) or [Twitter](http://twitter.com/libravatar). Identica users are encouraged to [join our group](http://identi.ca/group/libravatar). + +# Email + +And if you need to email us: [dev@libravatar.org](mailto:dev@libravatar.org)
add a note about the Transifex proejct
diff --git a/translator.mdwn b/translator.mdwn index 55888ef..c412b15 100644 --- a/translator.mdwn +++ b/translator.mdwn @@ -4,6 +4,10 @@ If you are fluent in another language than English, you can now make Libravatar There is [documentation](https://help.launchpad.net/Translations/StartingToTranslate) available to help you, but please [[get in touch with us|talk to us]] if you run into problems. +## Transifex + +If you already use Transifex to translate other projects, you can also find a [Libravatar project](https://www.transifex.net/projects/p/libravatar/) on there and submit your translations that way. We do however prefer that new translators use the Launchpad system. + # English speakers On the other hand, if your language of choice is English, please feel free to improve our grammer and fix our tpyos :) The best way to do that is to:
link to talk to us page
diff --git a/translator.mdwn b/translator.mdwn index a2ef4f6..55888ef 100644 --- a/translator.mdwn +++ b/translator.mdwn @@ -2,7 +2,7 @@ If you are fluent in another language than English, you can now make Libravatar speak your language through an [easy web interface](https://translations.launchpad.net/libravatar/trunk). No coding required! -There is [documentation](https://help.launchpad.net/Translations/StartingToTranslate) available to help you. +There is [documentation](https://help.launchpad.net/Translations/StartingToTranslate) available to help you, but please [[get in touch with us|talk to us]] if you run into problems. # English speakers
add a few more advocacy ideas
diff --git a/contribute.mdwn b/contribute.mdwn index c53c7ee..b06099d 100644 --- a/contribute.mdwn +++ b/contribute.mdwn @@ -16,6 +16,10 @@ If you can spare a bit of disk space and bandwidth, please [get in touch](mailto # Advocacy -If you don't fit into of the other categories, you are still more than welcome to come and hang out on our [IRC channel](irc://chat.freenode.net/%23libravatar) ([web interface](http://webchat.freenode.net/?channels=libravatar)). +If you don't fit into of the other categories, you are still more than welcome to join us: -And of course, feel free to submit feature requests for your favourite applications to add support for Libravatar. +* come and hang out on our [IRC channel](irc://chat.freenode.net/%23libravatar) ([web interface](http://webchat.freenode.net/?channels=libravatar)). +* subscribe to our [mailing list](http://libravatar.onlinegroups.net/groups/libravatar-devel) +* blog about Libravatar + +And of course, feel free to [submit feature requests](https://bugs.launchpad.net/libravatar/+filebug) against your favourite applications to add support for Libravatar.
diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index 1183745..c123694 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -12,6 +12,7 @@ The following [[plugins|libraries]] have been suggested: * [GMail](http://socialgmail.monkeyalience.com/) * [GroupServer/OnlineGroups.net](http://groupserver.org/) * [gnus](http://julien.danjou.info/blog/index.html#Gnus_and_Gravatar_support) +* [Redmine](http://www.redmine.org) - [Feature #9112](http://www.redmine.org/issues/9112) If you'd like to **vote** for one of these, add a "+" sign at the end of the line.
remove Koha and Wordpress since they are done
diff --git a/suggested_plugins.mdwn b/suggested_plugins.mdwn index 838fd2a..1183745 100644 --- a/suggested_plugins.mdwn +++ b/suggested_plugins.mdwn @@ -3,11 +3,9 @@ The following [[plugins|libraries]] have been suggested: * StatusNet * Mahara * Launchpad -* Wordpress (see [bug 780850](https://bugs.launchpad.net/libravatar/+bug/780850)) * [Drupal](http://drupal.org/node/1045064) * [Django](https://code.google.com/p/django-gravatar/) * Moodle -* Koha (see [bug 769801](https://bugs.launchpad.net/libravatar/+bug/769801)) * Wikkid * [Thunderbird](https://addons.mozilla.org/en-US/thunderbird/addon/58034/) * [pfaces](https://projects.pekdon.net/projects/pfaces)
Link to basic Wordpress plugin
diff --git a/libraries.mdwn b/libraries.mdwn index 8662085..a2d48b6 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -70,6 +70,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Foswiki](http://foswiki.org/Extensions/AvatarPlugin) * [Ikiwiki](http://ikiwiki.info) (part of core, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) * [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) +* [Wordpress](http://wordpress.org/extend/plugins/libravatar/) # Contribute!
link to Perl and Python DNS sanitization code
diff --git a/api.mdwn b/api.mdwn index 63e934b..1420daa 100644 --- a/api.mdwn +++ b/api.mdwn @@ -92,7 +92,7 @@ Notes for advanced users / library authors: * Libravatar clients only consider servers listed in the highest SRV priority. * They do however honour relative weights. * SRV records are cached for at least 1 day (or more if the TTL is greater than 1 day). -* **Make sure you sanitize the results you get from the DNS resolver.** +* **Make sure you sanitize the results you get from the DNS resolver** (see [Perl](https://github.com/schwern/gravatar-url/commit/14b0c613f434d2513f8f4609a17aff4fe31c17ea) and [Python](http://bazaar.launchpad.net/~libravatar/pylibravatar/trunk/revision/5) examples). # HTTPS support
add a note about sanitizing DNS results
diff --git a/api.mdwn b/api.mdwn index f2bb437..63e934b 100644 --- a/api.mdwn +++ b/api.mdwn @@ -87,11 +87,12 @@ You will probably want to use an [[existing library|libraries]] for this, but he We also provide a [domain check tool](http://www.libravatar.org/tools/check_domain) to help in your testing. -Notes for advanced users: +Notes for advanced users / library authors: * Libravatar clients only consider servers listed in the highest SRV priority. * They do however honour relative weights. * SRV records are cached for at least 1 day (or more if the TTL is greater than 1 day). +* **Make sure you sanitize the results you get from the DNS resolver.** # HTTPS support
make a note about git repo not in sync
diff --git a/code_checkout.mdwn b/code_checkout.mdwn index 08f6aff..380bc77 100644 --- a/code_checkout.mdwn +++ b/code_checkout.mdwn @@ -12,6 +12,8 @@ You can [browse the repository](http://bazaar.launchpad.net/~libravatar/libravat <img src="git_logo.png" width="64" height="64" align="right"> +**WARNING: the git mirror is currently not syncing. Please [[talk to us]] if you can help fix it.** + You can [browse the code](https://gitorious.org/libravatar/libravatar/trees) on Gitorious and [clone the repository](https://gitorious.org/libravatar/libravatar/clone). Otherwise, just check the code out locally:
add anchor for plugins
diff --git a/libraries.mdwn b/libraries.mdwn index 86d3abf..8662085 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -62,6 +62,7 @@ The [pyLibravatar](http://pypi.python.org/pypi/pyLibravatar) module can be used You can also use <tt>:openid => 'https://example.com/id/person'</tt> instead of providing an email address. +<a name="plugins"></a> # Plugins There aren't many plugins available at the moment, but please [[suggest the ones|suggested plugins]] you'd like to have.
add koha to the list of supported apps
diff --git a/libraries.mdwn b/libraries.mdwn index 791cb3e..86d3abf 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -68,6 +68,7 @@ There aren't many plugins available at the moment, but please [[suggest the ones * [Foswiki](http://foswiki.org/Extensions/AvatarPlugin) * [Ikiwiki](http://ikiwiki.info) (part of core, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) +* [Koha](http://www.koha-community.org) (part of core starting in 3.6, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) # Contribute!
mention foswiki plugin
diff --git a/libraries.mdwn b/libraries.mdwn index 44eae44..791cb3e 100644 --- a/libraries.mdwn +++ b/libraries.mdwn @@ -66,6 +66,7 @@ You can also use <tt>:openid => 'https://example.com/id/person'</tt> instead of There aren't many plugins available at the moment, but please [[suggest the ones|suggested plugins]] you'd like to have. +* [Foswiki](http://foswiki.org/Extensions/AvatarPlugin) * [Ikiwiki](http://ikiwiki.info) (part of core, automatically enabled if [Libravatar::URL](http://search.cpan.org/dist/Gravatar-URL/) is installed) # Contribute!
credit Kai with the idea
diff --git a/run_a_mirror.mdwn b/run_a_mirror.mdwn
index c752882..14628b6 100644
--- a/run_a_mirror.mdwn
+++ b/run_a_mirror.mdwn
@@ -1,4 +1,10 @@
-Libravatar's images are automatically served by a network of mirrors (through [DNS round-robin](http://en.wikipedia.org/wiki/Round-robin_DNS)). To get the latest list of mirrors on a UNIX machine, run:
+Libravatar's images are automatically served by a network of mirrors (through [DNS round-robin](http://en.wikipedia.org/wiki/Round-robin_DNS)).
+
+Thanks to [Kai Hendry](https://twitter.com/kaihendry) for [the idea](http://natalian.org/archives/2010/08/06/Debian_powered_Web_applications/). We're hoping to implement GeoDNS once we have a few mirrors outside of Europe.
+
+# List of mirrors
+
+To get the latest list of mirrors on a UNIX machine, run:
dig cdn.libravatar.org
Fix broken "mirrors" link
diff --git a/description.mdwn b/description.mdwn index 0510e28..df968bf 100644 --- a/description.mdwn +++ b/description.mdwn @@ -43,7 +43,7 @@ The basic architecture is meant to be simple and scalable: 1. Users log into a dynamic [Django](http://www.djangoproject.com)-based site where they upload their photos and confirm their email or OpenID addresses. 1. Uploaded photos are cropped, resized and optimised one after the one using [Gearman](http://gearman.org) to ensure that the server is not overloaded. 1. Once the slow operations finish, the final image files are stored on disk with a filename corresponding to the email/OpenID address hashes. -1. These photos are then replicated to all of the [[mirrors]] which serve them as static files directly to end-user browsers. +1. These photos are then replicated to all of the [[mirrors|run a mirror]] which serve them as static files directly to end-user browsers. <img src="architecture.png" width="600" height="433">
Reduce size of diagram
diff --git a/description.mdwn b/description.mdwn index ed1e368..0510e28 100644 --- a/description.mdwn +++ b/description.mdwn @@ -45,7 +45,7 @@ The basic architecture is meant to be simple and scalable: 1. Once the slow operations finish, the final image files are stored on disk with a filename corresponding to the email/OpenID address hashes. 1. These photos are then replicated to all of the [[mirrors]] which serve them as static files directly to end-user browsers. -<img src="architecture.png" width="900" height="650"> +<img src="architecture.png" width="600" height="433"> If you're interested in the details of how third-party websites display Libravatar photos, have a look at [[our API|api]]. The gist of it is that clients get a base URL via a DNS lookup and then tack on the hashed value of the user's email or OpenID address to form the final image: diff --git a/description/architecture.png b/description/architecture.png index 171f45a..9e43fdb 100644 Binary files a/description/architecture.png and b/description/architecture.png differ
Revise wording and add Gearman to the diagram
diff --git a/description.mdwn b/description.mdwn
index 1093eb0..ed1e368 100644
--- a/description.mdwn
+++ b/description.mdwn
@@ -2,17 +2,17 @@
It's a piece of [free software](http://www.gnu.org/philosophy/free-sw.html) to do federated avatar hosting. What does that do and why should you care?
-Say you've got a profile image you like to use when you have an account software. Now, you want this photo to show up whenever you interact socially with a website. You want your blog comments, status updates, git commits or anything else you do publicly to be associated with that image.
+Say you've got a profile image you like to use when you have an account somewhere. You want this photo to show up whenever you interact socially with a website. In other words, you want your blog comments, status updates, git commits or anything else you do publicly to be associated with that image.
-Uploading your image everywhere is clearly a waste of time. What if there was a place where you could put it and where every website out there could access it easily? That's the idea behind [Gravatar](http://www.gravatar.com), the service that pioneered this idea and inspired Libravatar.
+Uploading your image everywhere is clearly a waste of time. What if there was a place where you could put it and where every website out there could access it easily? That's the idea behind [Gravatar](http://www.gravatar.com), the service that pioneered this approach and inspired Libravatar.
# How to use it
-So what you do is you [sign up on libravatar.org](https://www.libravatar.org/account/new), upload your photo and tell it what your email address it. That's it. That's all that needed.
+All you have to do is [sign up on libravatar.org](https://www.libravatar.org/account/new), upload your photo and tell us what your email address is. That's all.
<img src="profile_fmarier.png" width="624" height="565">
-Once you've done that, a bunch of websites (where you've entered your email address) will start display your avatar next to your name.
+Once you've done that, a bunch of websites (where you've entered your email address, usually as part of the registration process) will start displaying your avatar next to your name.
<table border="1"><tr>
<td><img src="ohloh_fmarier.png" width="300" height="300"></td>
@@ -22,15 +22,15 @@ Once you've done that, a bunch of websites (where you've entered your email addr
# Freedom and federation
-How is Libravatar [[different|features]] from Gravatar though? The main difference is that while [Libravatar.org](https://www.libravatar.org) is an online avatar hosting service just like Gravatar, the [software](https://launchpad.net/libravatar) that powers it is also available for download under a [free software license](http://www.gnu.org/licenses/agpl.html).
+How is Libravatar [[different|features]] from Gravatar though? The main difference is that while [Libravatar.org](https://www.libravatar.org) is an online avatar hosting service just like Gravatar, the [software](https://launchpad.net/libravatar) that powers the former is also available for download under a [free software license](http://www.gnu.org/licenses/agpl.html).
-Why would you want to [[run your own]] instance? Our belief is that centralised approaches don't put users in control. If you own your own domain name, you control how mail is delivered to your domain. You should also be able to control how avatars are served to other websites.
+Why would you want to [[run your own|running your own]] instance? Our belief is that centralised approaches don't put users in control. If you own your own domain name, you control how mail is delivered to your domain. You should also be able to control how avatars are served to other websites.
-For example, if you're a business, you may want to integrate with existing systems (e.g. a staff directory) and delegate authentication to what you're already using (LDAP?). Plus, you can choose what happens when images are not found (display your company logo?).
+For example, if you own a business, you may want to integrate with existing systems (e.g. a staff directory) and delegate authentication to what you're already using (LDAP?). Plus, you can choose what happens when email addresses are not found (display your company logo?).
# What else?
-We also support things like [OpenID](http://openid.net). Not only can you [login](https://www.libravatar.org/openid/login) without creating a username and password, but you can also associate a photo to your OpenID identifier just like you associate photos to your email addresses.
+Libravatar also supports things like [OpenID](http://openid.net). Not only can you [login](https://www.libravatar.org/openid/login) without creating a username and password, but you can also assign a photo to your OpenID identifier just like you assign photos to your email addresses.
<img src="openid_fmarier.png" width="340" height="117">
@@ -38,16 +38,16 @@ There are lots of other things in the [pipeline](https://bugs.launchpad.net/libr
# How does it work?
-The basic architecture is designed to be simple and scalable:
+The basic architecture is meant to be simple and scalable:
1. Users log into a dynamic [Django](http://www.djangoproject.com)-based site where they upload their photos and confirm their email or OpenID addresses.
-1. Uploaded photos are cropped, resized and optimised one after using [Gearman](http://gearman.org) to ensure that the server is not overloaded.
-1. Once the slow operations finish, the final image files are stored on disk with a filename corresponding to the email/OpenID address hash.
-1. These photos are then replicated to all of the [[mirrors]] which then serve them as static files directly to browsers.
+1. Uploaded photos are cropped, resized and optimised one after the one using [Gearman](http://gearman.org) to ensure that the server is not overloaded.
+1. Once the slow operations finish, the final image files are stored on disk with a filename corresponding to the email/OpenID address hashes.
+1. These photos are then replicated to all of the [[mirrors]] which serve them as static files directly to end-user browsers.
-<img src="architecture.png" width="900" height="631">
+<img src="architecture.png" width="900" height="650">
-If you're interested in the details of how third-party websites display Libravatar photos, you can have a look at the [[API]]. The gist of it is that they get a base URL via a DNS lookup and then tack on the hashed value of the user's email or OpenID address to form the final image:
+If you're interested in the details of how third-party websites display Libravatar photos, have a look at [[our API|api]]. The gist of it is that clients get a base URL via a DNS lookup and then tack on the hashed value of the user's email or OpenID address to form the final image:
<table border="1">
<tr><td align="center"><img src="http://cdn.libravatar.org/avatar/f52a1d3d8c39868fc92cf70828821635"></td></tr>
diff --git a/description/architecture.png b/description/architecture.png
index c541bec..171f45a 100644
Binary files a/description/architecture.png and b/description/architecture.png differ
diff --git a/description/architecture.svg b/description/architecture.svg
index 18aebbc..77b0b35 100644
--- a/description/architecture.svg
+++ b/description/architecture.svg
@@ -10,7 +10,7 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1392.1058"
- height="975.76141"
+ height="1005.1169"
id="svg2"
version="1.1"
inkscape:version="0.48.1 r9760"
@@ -109,9 +109,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="0.38183766"
- inkscape:cx="615.59061"
- inkscape:cy="441.9465"
+ inkscape:zoom="0.76367532"
+ inkscape:cx="675.02026"
+ inkscape:cy="123.66496"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
@@ -132,7 +132,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -153,28 +153,42 @@
y="222.51335"
id="tspan3784"
style="text-align:center;text-anchor:middle">photo upload</tspan></text>
- <g
- id="g3796"
- transform="translate(78.327545,22.29933)">
- <text
- sodipodi:linespacing="125%"
- id="text3766"
- y="471.73065"
- x="429.18765"
- style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- y="471.73065"
- x="429.18765"
- id="tspan3768"
- sodipodi:role="line">Django</tspan></text>
- <rect
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:10"
- id="rect3794"
- width="235.18518"
- height="235.18518"
- x="383.33334"
- y="343.10291" />
- </g>
+ <text
+ sodipodi:linespacing="125%"
+ id="text3247"
+ y="874.67902"
+ x="487.42731"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="874.67902"
+ x="487.42731"
+ id="tspan3249"
+ sodipodi:role="line">Gearman</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:10"
+ id="rect3251"
+ width="235.18518"
+ height="235.18518"
+ x="461.66089"
+ y="742.52588" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="507.5152"
+ y="871.15363"
+ id="text3766"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3768"
+ x="507.5152"
+ y="871.15363" /></text>
+ <rect
+ y="742.52588"
+ x="461.66089"
+ height="235.18518"
+ width="235.18518"
+ id="rect3794"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:10" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
@@ -215,9 +229,14 @@
id="path3824"
inkscape:connector-curvature="0" />
<path
+ style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend)"
+ d="m 579.20944,630.9373 0,81.48148"
+ id="path3272"
+ inkscape:connector-curvature="0" />
+ <path
inkscape:connector-curvature="0"
id="path4484"
- d="m 579.20944,253.81368 0,81.48148"
+ d="m 579.20944,261.67042 0,81.48148"
style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend)" />
<g
id="g5002"
@@ -427,9 +446,10 @@
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend-2)"
- d="m 578.77999,641.19268 0,306.41294 -1094.70605,0 0,-83.80525"
+ d="m 432.1208,947.6056 -948.04686,0 0,-83.8052"
id="path5688"
- inkscape:connector-curvature="0" />
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
<path
inkscape:connector-curvature="0"
(Diff truncated)
Link to description page
diff --git a/index.mdwn b/index.mdwn index 38f8db0..4fa6196 100644 --- a/index.mdwn +++ b/index.mdwn @@ -5,6 +5,7 @@ profile images tied to your email address or OpenID. Once you have an account with us, your photo will be displayed next to your posts and comments on sites which support Libravatar. +* [[What is Libravatar?|description]] * [[Features]] # Technology
Add diagram of basic architecture
diff --git a/description.mdwn b/description.mdwn index c1ac8a7..1093eb0 100644 --- a/description.mdwn +++ b/description.mdwn @@ -45,7 +45,7 @@ The basic architecture is designed to be simple and scalable: 1. Once the slow operations finish, the final image files are stored on disk with a filename corresponding to the email/OpenID address hash. 1. These photos are then replicated to all of the [[mirrors]] which then serve them as static files directly to browsers. -TODO: insert diagram +<img src="architecture.png" width="900" height="631"> If you're interested in the details of how third-party websites display Libravatar photos, you can have a look at the [[API]]. The gist of it is that they get a base URL via a DNS lookup and then tack on the hashed value of the user's email or OpenID address to form the final image: diff --git a/description/architecture.png b/description/architecture.png new file mode 100644 index 0000000..c541bec Binary files /dev/null and b/description/architecture.png differ diff --git a/description/architecture.svg b/description/architecture.svg new file mode 100644 index 0000000..18aebbc --- /dev/null +++ b/description/architecture.svg @@ -0,0 +1,444 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1392.1058" + height="975.76141" + id="svg2" + version="1.1" + inkscape:version="0.48.1 r9760" + sodipodi:docname="architecture.svg"> + <defs + id="defs4"> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lstart" + style="overflow:visible"> + <path + id="path3847" + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lend" + style="overflow:visible"> + <path + id="path3850" + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible"> + <path + id="path3832" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lend-2" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3850-4" + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lstart-1" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3847-4" + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="marker4949" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path4951" + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.38183766" + inkscape:cx="615.59061" + inkscape:cy="441.9465" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1280" + inkscape:window-height="781" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="0" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Calque 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(654.54178,26.9058)"> + <text + xml:space="preserve" + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans" + x="579.25348" + y="222.51335" + id="text3780" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="579.25348" + y="222.51335" + id="tspan3784" + style="text-align:center;text-anchor:middle">photo upload</tspan></text> + <g + id="g3796" + transform="translate(78.327545,22.29933)"> + <text + sodipodi:linespacing="125%" + id="text3766" + y="471.73065" + x="429.18765" + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + y="471.73065" + x="429.18765" + id="tspan3768" + sodipodi:role="line">Django</tspan></text> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:10" + id="rect3794" + width="235.18518" + height="235.18518" + x="383.33334" + y="343.10291" /> + </g> (Diff truncated)
mention Gravatar's XMLRPC api
diff --git a/features.mdwn b/features.mdwn index e1dcf42..9f42017 100644 --- a/features.mdwn +++ b/features.mdwn @@ -20,6 +20,7 @@ Here is a list of features currently available in [Libravatar](http://www.librav <tr><td>Translated UI</td><td><a href="https://translations.launchpad.net/libravatar">Yes</a></td><td><a href="http://en.gravatar.com/site/translations/">Yes</a></td></tr> <tr><td>Account <b>export</b></td><td>Yes</td><td>-</td></tr> <tr><td>Account <b>deletion</b></td><td>Yes</td><td><a href="http://en.gravatar.com/site/faq/#answer-1-7">No</a></td></tr> +<tr><td>XMLRPC API</td><td>-</td><td>Yes</td></tr> <tr><td>Libraries/plugins available</td><td>[[Some|libraries]]</td><td><a href="http://en.gravatar.com/site/implement/images/libraries/">Lots</a></td></tr> <tr><td><b>Free and Open Source Software</b></td><td><a href="http://www.gnu.org/licenses/agpl.html">Yes</a></td><td><a href="http://blog.gravatar.com/2010/05/31/gravatar-localization/#comment-8749">Not yet</a></td></tr> <tr><td>Distributed service</td><td>[[Community mirrors|run a mirror]]</td><td>Professional CDN</td></tr>
add two Libravatar screenshots
diff --git a/description.mdwn b/description.mdwn index 7ec9533..c1ac8a7 100644 --- a/description.mdwn +++ b/description.mdwn @@ -10,7 +10,7 @@ Uploading your image everywhere is clearly a waste of time. What if there was a So what you do is you [sign up on libravatar.org](https://www.libravatar.org/account/new), upload your photo and tell it what your email address it. That's it. That's all that needed. -TODO: screenshot of profile page +<img src="profile_fmarier.png" width="624" height="565"> Once you've done that, a bunch of websites (where you've entered your email address) will start display your avatar next to your name. @@ -32,7 +32,7 @@ For example, if you're a business, you may want to integrate with existing syste We also support things like [OpenID](http://openid.net). Not only can you [login](https://www.libravatar.org/openid/login) without creating a username and password, but you can also associate a photo to your OpenID identifier just like you associate photos to your email addresses. -TODO: screenshot of a photo associated to an OpenID +<img src="openid_fmarier.png" width="340" height="117"> There are lots of other things in the [pipeline](https://bugs.launchpad.net/libravatar/+bugs?field.importance=WISHLIST) and if you have a great idea why not [[tell us|talk to us]]?
Add two screenshots from Libravatar.org
diff --git a/description/openid_fmarier.png b/description/openid_fmarier.png new file mode 100644 index 0000000..3220dfb Binary files /dev/null and b/description/openid_fmarier.png differ diff --git a/description/profile_fmarier.png b/description/profile_fmarier.png new file mode 100644 index 0000000..2eea22c Binary files /dev/null and b/description/profile_fmarier.png differ
display screenshots in a table
diff --git a/description.mdwn b/description.mdwn index d4d3484..7ec9533 100644 --- a/description.mdwn +++ b/description.mdwn @@ -14,7 +14,11 @@ TODO: screenshot of profile page Once you've done that, a bunch of websites (where you've entered your email address) will start display your avatar next to your name. -<img src="gitorious_fmarier.png" width="300" height="300"><img src="ohloh_fmarier.png" width="300" height="300"> +<table border="1"><tr> +<td><img src="ohloh_fmarier.png" width="300" height="300"></td> +<td><img src="gitorious_fmarier.png" width="300" height="300"></td> +<td><img src="wordpress_fmarier.png" width="300" height="300"></td> +</tr></table> # Freedom and federation
fix log (now a png file)
diff --git a/index.mdwn b/index.mdwn index 16e3246..38f8db0 100644 --- a/index.mdwn +++ b/index.mdwn @@ -1,4 +1,4 @@ -<img src="http://cdn.libravatar.org/nobody/300.jpg" align="right"> +<img src="http://cdn.libravatar.org/nobody/300.png" align="right"> [Libravatar](http://www.libravatar.org) is a free service for hosting profile images tied to your email address or OpenID. Once you have an
Add a screenshot from a wordpress blog
diff --git a/description/wordpress_fmarier.png b/description/wordpress_fmarier.png new file mode 100644 index 0000000..efb24b8 Binary files /dev/null and b/description/wordpress_fmarier.png differ
Add screenshots
diff --git a/description/gitorious_fmarier.png b/description/gitorious_fmarier.png new file mode 100644 index 0000000..60d16d2 Binary files /dev/null and b/description/gitorious_fmarier.png differ diff --git a/description/ohloh_fmarier.png b/description/ohloh_fmarier.png new file mode 100644 index 0000000..7fd154f Binary files /dev/null and b/description/ohloh_fmarier.png differ
add images again
diff --git a/description.mdwn b/description.mdwn index eed49bd..d4d3484 100644 --- a/description.mdwn +++ b/description.mdwn @@ -10,11 +10,11 @@ Uploading your image everywhere is clearly a waste of time. What if there was a So what you do is you [sign up on libravatar.org](https://www.libravatar.org/account/new), upload your photo and tell it what your email address it. That's it. That's all that needed. -<img src="gitorious_fmarier.png" width="300" height="300"><img src="ohloh_fmarier.png" width="300" height="300"> +TODO: screenshot of profile page Once you've done that, a bunch of websites (where you've entered your email address) will start display your avatar next to your name. -TODO: ohloh and gitorious screenshots +<img src="gitorious_fmarier.png" width="300" height="300"><img src="ohloh_fmarier.png" width="300" height="300"> # Freedom and federation
add screenshots
diff --git a/description.mdwn b/description.mdwn index ce5d296..eed49bd 100644 --- a/description.mdwn +++ b/description.mdwn @@ -10,7 +10,7 @@ Uploading your image everywhere is clearly a waste of time. What if there was a So what you do is you [sign up on libravatar.org](https://www.libravatar.org/account/new), upload your photo and tell it what your email address it. That's it. That's all that needed. -TODO: screenshot of profile page in Libravatar +<img src="gitorious_fmarier.png" width="300" height="300"><img src="ohloh_fmarier.png" width="300" height="300"> Once you've done that, a bunch of websites (where you've entered your email address) will start display your avatar next to your name.
remove parentheses in last sentence
diff --git a/description.mdwn b/description.mdwn index b1d6bf7..ce5d296 100644 --- a/description.mdwn +++ b/description.mdwn @@ -50,4 +50,4 @@ If you're interested in the details of how third-party websites display Libravat <tr><td align="center"><img src="http://cdn.libravatar.org/avatar/f52a1d3d8c39868fc92cf70828821635"></code></td></tr> </table> -It's that simple. (Well actually, for most web applications it's even easier because they're just using one of the convenient [[libraries]] provided by the community.) +It's pretty simple, but for most web applications it's even easier because they're just using one of the convenient [[libraries]] provided by the community.