clone your own copy | download snapshot


OSP Visual Culture Git Viewer

We are Open Source Publishing. A group of designers working in Brussels. We make books and posters and websites, and we do that using only Free and Open Source Software. That is because we feel it is important to have an intimate relation with our tools. If all designers use the same tools made by the same company, this is bound to make us less creative and less relevant.

For working together and sharing our source files, we use a system called Git. This system, originally developed for computer code, is great to work together. Yet when we started sharing our source code through the internet, we found all interfaces to git were geared to sharing text files. We want to create an interface for sharing our work

We have been displaying the contents of our repository in a more graphic way: showing previews in the filelistings of the fonts and the illustrations and the pdf’s. We want to take this a whole step further still, and build this into a platform where you can in a visual way view the development of your graphic design projects, the changes in between files, and comment and share and make visible your process.

Snapshots | iceberg

No images in this repository’s iceberg at this time

Inside this repository



Eric Schrijversang

— First commit, run $ shotgun app.rb "path/to/git/repo"

Based on by Stefano Verna

Just changed that the repo is supplied as a command line argument.
No licence was supplied but probably the code will change as much
so that this original base will not be there anymore…

Thursday, 2nd February 2012 - 17:09


Eric Schrijverclaimed

— Added linguist as a dependency

How to subclass the Grit blob?
I think we need to include blob_helper ?

Thursday, 2nd February 2012 - 17:59


Eric Schrijverspilled the beans

— Added helpful note

Thursday, 2nd February 2012 - 18:05


Eric Schrijverunwrapped

— Templates as *.erb, moved into separate files

Also removed the linguist dependency because it
seems hard to install at the moment.

Instead of ERB I would have used liquid, since the syntax is equivalent
to Jinja and Django templates… But liquid requires you to create
liquid specific methods for each object…

Thursday, 9th February 2012 - 23:14


Eric Schrijverblabbed out

— Added Twitter Bootstrap scaffolding

Thursday, 9th February 2012 - 23:24



— linguist instructions: now, working

Friday, 10th February 2012 - 12:08



— we now have linguist features on our blobs

Friday, 10th February 2012 - 13:23



— hmmm, it looks confused about the mimetypes of our fonts...

Friday, 10th February 2012 - 13:27



— small correction in dir.erb

Friday, 10th February 2012 - 13:31



— new mimes :D

Friday, 10th February 2012 - 15:51


Eric Schrijverblabbed

— View files as thumbnails

Shift from the list view paradigm to the thumbnail view paradigm

Friday, 10th February 2012 - 16:15



— now how we do?

Friday, 10th February 2012 - 19:02



— tests tests tests

Friday, 10th February 2012 - 19:22



— magick transforms now happening

Friday, 10th February 2012 - 20:10



— added settings system through json and other goodie-ness

Friday, 10th February 2012 - 21:29



— app.rb not working yet..

Monday, 13th February 2012 - 17:56



— worked on testing system, integrating settings, and more

Monday, 13th February 2012 - 22:01


Eric Schrijvershouted

— More detailed installation instructions for Ubuntu and in case of Ruby 1.8

Tuesday, 14th February 2012 - 14:54


Eric Schrijverwhispered

— The views in another folder

This makes it work,
we can look at the most logical organisation later


Tuesday, 14th February 2012 - 17:00



— revising tests, added internal 'VC.settings("image-sizes")

Wednesday, 15th February 2012 - 12:41



— yessir, that is correct! we have Mixin!

Wednesday, 15th February 2012 - 14:44


Johngave away

— svg transducer appears on the scene

Wednesday, 15th February 2012 - 23:04



— now with the sweetness

Thursday, 16th February 2012 - 15:30



— now provalactic

Thursday, 16th February 2012 - 15:49


Eric Schrijverargued

— Now we transduce via the web interface

Thursday, 16th February 2012 - 16:05


Eric Schrijververbalized

— When generating thumbnails, also take into account folders

Thursday, 16th February 2012 - 16:15


Eric Schrijversang

— The root folder is now in the same view as the other folders

And the url has a trailing slash and thus makes more sense

Thursday, 16th February 2012 - 18:34


Eric Schrijverbrought out

— Start of navigation ( breadcrumbs not yet functional )

Intermediate path components should still be turned into links:
( see lib/views/layout.erb )

/view/:commit_id/iceberg/index.mkd has the following breadcrumbs: / <--- this link works
iceberg / <--- this should link to /commit/view/iceberg
index.mkd <--- this is ok, not a link

Friday, 17th February 2012 - 16:16


Eric Schrijversang

— Working breadcrumb navigation

Friday, 17th February 2012 - 16:52


Eric Schrijverrevealed

— All links now use same commit_id length

Friday, 17th February 2012 - 17:10


Eric Schrijverblabbed out

— Correct small <pre> white-space problem

Friday, 17th February 2012 - 17:11


Eric Schrijverconfessed

— The view can no display both text files and rendered files

It also can figure out files that are neither.

And sketchy icons.

Monday, 20th February 2012 - 15:53


Eric Schrijverspoke

— HTML escape blob data

Also tidy up check for transducable / binary / text

Wednesday, 22nd February 2012 - 17:48


john c. haltiwangerlet on

— atoning for serious sins of mixin

Thursday, 23rd February 2012 - 19:29


john c. haltiwangerinterpreted

— on our way

Thursday, 23rd February 2012 - 21:04


john c. haltiwangerlet out

— throw some code around

Saturday, 25th February 2012 - 06:57


john c. haltiwangerdisclosed

— tested ok

Saturday, 25th February 2012 - 07:12


john c. haltiwangersang

— yyyyuuuuppp:)

Saturday, 25th February 2012 - 09:17


Eric Schrijversang

— Whitespace fix (tabs -> spaces)

Sunday, 26th February 2012 - 18:18


Eric Schrijverspoke

— Now handles multiple repositories

(apply as arguments from the command line)

Sunday, 26th February 2012 - 19:04


Eric Schrijverconfessed

— Now with repo index view

Sunday, 26th February 2012 - 19:17



— bin/visualculture is working :D

Tuesday, 28th February 2012 - 23:29



— added Sinatra::Reloader code, app now requires sinatra-contrib gem. also updated the usage info in README

Wednesday, 29th February 2012 - 10:46



— now as a bundley gem

Thursday, 1st March 2012 - 17:48



— back at it

Wednesday, 28th March 2012 - 15:40



— trying to patch

Wednesday, 28th March 2012 - 15:48



— fingers crossed

Wednesday, 28th March 2012 - 15:49



— This setup works under Phusion Passenger
( Hence the tmp/restart.txt )

Monday, 23rd April 2012 - 00:01


Eric Schrijversaid

— Remove app.rb to avoid confusion: now in lib/vc-server.rb

Monday, 23rd April 2012 - 00:32


Eric Schrijverbabbled

— Fixed the detailed blob view

Monday, 23rd April 2012 - 00:33


Eric Schrijvertalked

— Start of simple api

Monday, 23rd April 2012 - 12:10


Eric Schrijverrendered

— The css etcetera in a submodule

Thursday, 26th April 2012 - 16:50


Eric Schrijverargued

— Added the OSP nav bar, and a Clone button with modal popup

Thursday, 26th April 2012 - 17:24


Eric Schrijversaid

— Can I get in synch?

Thursday, 26th April 2012 - 17:28


Eric Schrijverconfessed

— I dont think I understand whats going on with the submodules

Thursday, 26th April 2012 - 17:26


Eric Schrijverblabbed out

— With the OSP fonts

Thursday, 26th April 2012 - 18:02



— Reference the HEAD automagically!


Note all hyperlinks will consequently still refer back
to SHA’d urls, for now

Tuesday, 8th May 2012 - 23:43


codingisacopingstrategygave away

— Move to OSP specific naming scheme

(and more links to HEAD everywhere–
except in the repo index)

Wednesday, 9th May 2012 - 00:33


Eric Schrijververbalised

— Mixins for Iceberg handling!

Thursday, 17th May 2012 - 22:32


Eric Schrijverdeclared

— More utility functions for making webpages, also through the API

Friday, 18th May 2012 - 11:28



— Implementing a category view

Saturday, 19th May 2012 - 19:22



— Like this we can serve everything straight from the repository!

Saturday, 19th May 2012 - 19:23


Eric Schrijverbabbled out

— Enter /commits.json and /repos.json , sorted by date_updated

date.xmlschema makes an ISO output that can be sorted

Monday, 21st May 2012 - 17:55



— Improved navigation and meaningful <title> field

Tuesday, 29th May 2012 - 02:38


Eric Schrijverbrought out

— The category overview sorted by last commit

Thursday, 31st May 2012 - 15:14


Eric Schrijverinterpreted

— Remove commented out code for clarity

Thursday, 31st May 2012 - 15:41


Eric Schrijveremited

— New transducers, a new function to create paths to the cache

And I figured out the cache actually wasn’t working at all!
That is because the compose_path function wasn’t being used
inside the transducers. So they got saved somewhere else.

It still isn’t working but we should be able to get it to work now.

btw I deleted the module method to transduce because it was super
confusing to have to maintain the same method twice

Thursday, 31st May 2012 - 17:13


Eric Schrijverblabbed

— Now the cache works again

Thursday, 31st May 2012 - 17:25


Eric Schrijverrendered

— Transduce to pdf (quite heavy, but code is simple)

Thursday, 31st May 2012 - 20:01


Eric Schrijverironized

— Submodule up to date, .gitignore up to scratch

Thursday, 21st June 2012 - 08:49


Eric Schrijversang

— Git has stopped watching settings.json

The source now comes with settings.json.example

Thursday, 21st June 2012 - 11:21


Eric Schrijverwhispered

— Make the api aware of urls, allow more dots in slugs

Friday, 22nd June 2012 - 12:33


Eric Schrijverclaimed

— modules all the same require syntax

Friday, 22nd June 2012 - 12:46


Eric Schrijverbabbled

— Submodules drove me crazy so here is all the style!

Friday, 22nd June 2012 - 14:47


Eric Schrijvershouted

— Visualculture.css is generated from visualculture.less
which imports bootstrap.less

Friday, 22nd June 2012 - 15:16


Eric Schrijverspoke

— Add some useful html classes to the API output

Friday, 22nd June 2012 - 19:34



— IT'S ALIVE!!!!!!
After much trial and tribulation, I would like to present you with Visual Culture running at

Had to fight with Debian's confused ruby packaging. Ergo, using rvm in a system-wide configuration. The major change in terms of Visual Culture is adding a file, config/setup_load_path.rb , which reads a .rvmrc file in the root Visual Culture directory.

In order to generate this file, run 'rvm 1.9.3 --rvmrc --create' in the repository.

Many other steps were necessary, but they were server specific and did not directly impact the app code itself.

Friday, 22nd June 2012 - 18:48


Eric Schrijververbalised

— Merge branch 'master' of

Friday, 22nd June 2012 - 19:35


Eric Schrijvercomitted

— Check against empty repos on initialising

Friday, 22nd June 2012 - 19:54


Eric Schrijvercomitted

— Make navigation links works with different host urls

Friday, 22nd June 2012 - 19:57


Eric Schrijversaid

— Don’t crash when there’s no error: give html messages

Friday, 22nd June 2012 - 20:08


Eric Schrijverlet loose

— added the Visual Culture pitch as the README / description

Tuesday, 26th June 2012 - 14:09


Eric Schrijvertold

— # encoding: UTF-8

Thursday, 28th June 2012 - 15:20



— On the roof we start the css contagion

Monday, 2nd July 2012 - 15:00



— Johns Gemfile changes

Monday, 2nd July 2012 - 15:20


Pierre Marchandsaid

— First attempt to turn the default visualculture
index template into a proper home page for
OSP wonderland.

Monday, 2nd July 2012 - 18:32


Eric Schrijversaid

— Fix UndefinedEncodingError when writing to JSON in Ruby 1.9

So in Ruby 1.9 normally I can use the output of Grit methods:

j = { "foo" => g.commits()[0] }
=> {"foo"=>"St\xC3\xA9phanie Vilayphiou"}

But it will give me problems when exporting to JSON

j = { "foo" => g.commits()[0] }.to_json
Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8
from (irb):31:in `encode'
from (irb):31:in `to_json'
from (irb):31
from /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'

One needs to force encode to UTF-8:

j = { "foo" => g.commits()[0]"UTF-8") }.to_json
=> "{\"foo\":\"St\u00E9phanie Vilayphiou\"}"

Ruby 1.8 hasn’t got this problem, but it also hasn’t got the force_encoding method,
so we do a begin / rescue here to handle that case.

Tuesday, 3rd July 2012 - 09:22


OSP@ospworklet on

— I messed up the templates sorry.

Tuesday, 3rd July 2012 - 10:47


Eric Schrijverunwrapped

— Oops

Tuesday, 3rd July 2012 - 10:49


Eric Schrijverblabbed out

— The repos view could come in handy elsewhere

Tuesday, 3rd July 2012 - 10:54


Eric Schrijverclaimed

— Exposed the 8 latest iceberg containing repos for the home page

Should be more easy to port the php script now

Tuesday, 3rd July 2012 - 11:12


Eric Schrijverrevealed

— Just the 8 latest icebergs. For real now. Je vais des conneries là.

Tuesday, 3rd July 2012 - 18:51


Pierre Marchandlet loose

— Rewrite of PDF transducer.
RMagick was using way too much resources to turn PDFs into images. By using Poppler, it seems that we can get faster rendering, the price being that the ruby binding comes with GTK dependecies.

Friday, 6th July 2012 - 13:27


Pierre Marchandlet loose

— Added image mode when creating cairo surface

Friday, 6th July 2012 - 16:19


Pierre Marchandsaid

— first bits of prototyping a rewrite of VC with libgit2 python binding

Sunday, 8th July 2012 - 13:35


Eric Schrijverstated

— small homepage performance tweak

Sunday, 8th July 2012 - 10:20


Eric Schrijverblabbed out

— at /repos/ lives again a list of all the repos

Sunday, 8th July 2012 - 10:20


Eric Schrijvertalked

— Touch up README but shouldnt we be using Bundlr?

Sunday, 8th July 2012 - 12:49


Pierre Marchandbrought out

— Merge branch 'master' of

Sunday, 8th July 2012 - 13:36


Pierre Marchandsaid

— Tested libmagic binding for mime-type detection

Monday, 9th July 2012 - 10:18


Pierre Marchandsaid

— Covered more aspects of git repo browsing + inserted resources from osp web site

Tuesday, 10th July 2012 - 03:58


Pierre Marchandsang

— On the road to Avignon, first seeds of a disputio
+ remainings of visual culture py

Saturday, 14th July 2012 - 18:48


Eric Schrijvertalked

— Some progress in porting index.php

We should really look at layout.erb and make it match too
It looks like there won’t be much use for Twitter bootstrap in our views

Maybe me & Steph can get together for a css rush?

Thursday, 12th July 2012 - 16:32


Pierre Marchandbrought out

— Merge branch 'master' of

Saturday, 14th July 2012 - 18:52


Pierre Marchandinterpreted

— Added docs listing and find entry point to disputio

Sunday, 15th July 2012 - 11:24


Pierre Marchandclaimed

— Added *.pyc to gitignore

Tuesday, 21st August 2012 - 09:11


Pierre Marchandlet on

— First bits of the first part of a Django implementation of VC
Following the guidelines drawn during previous discussions and
developments, I started with wrapping libgit2 into an app serving
JSON structures reflecting on a collection of GIT repositories.
It still lacks a bit of URI design to pretend to be a REST-ful API
but it gets close.
/repos/ : list of repository names
/repos/<repo_name>/ : head commit
/repos/<repo_name>/<hex>/ : commit[1] or tree entry[2] or blob[3]
/repos/<repo_name>/<hex>/blob-data : blob data (note that this one is not encapsulated into JSON structure)

[1] {'type':'commit', 'repo_name':name, 'commit': commit.hex, 'author', 'message':commit.message, 'files':files, 'parent':parent.hex}
[2] {'type':'tree', 'repo_name':name, 'dirs':dirs, 'files':items}
[3] {'type':'blob', 'repo_name':name, 'commit' : commit.hex, 'mime':mime}

Tuesday, 21st August 2012 - 09:12


Eric Schrijverpeached

— Comments explaining the methods we add to the Repository class

Also, implement a fallback for a Title if there is no README

Friday, 17th August 2012 - 21:41


Eric Schrijvertold

— Ported the OSP Repository widget from PHP to Ruby

And we’re going to port it to Python still
way to stay busy :o

(this was in

Friday, 17th August 2012 - 22:30


Eric Schrijverdisclosed

— Synch styles with the OSP PHP Homepage Rush

Oh my these were wonderful days in the studio

I also took the occassion to remove as much stuff we don’t
use anymore. No CSS, just LESS. Lots of Bootstrap cruft
removed as well.

Only some doubling up on the fonts side but that shall be
fixed when we up our font hostingg

Friday, 17th August 2012 - 23:53


Eric Schrijververbalised

— Implement proper fluid layout

// The menu sticks to the right of this wrapper.
// The wrapper is at 100% of the page unless the page
// Becomes less than 995px wide
// ( the padding is subtracted from the width because
// of the different box-sizing model )
// This way the menu doesn’t interfere with the main page
// content in #active-projects

Saturday, 18th August 2012 - 01:48


Pierre Marchandlet on

— Merge branch 'master' of

Tuesday, 21st August 2012 - 09:31


Pierre Marchanddisclosed

— Adjusted few import statements

Tuesday, 21st August 2012 - 19:06


Pierre Marchandlet the cat out of the bag

— Now the first bits of VC implementation as a Django app
I started with the easiest thing, images, and it does not support
options yet nor any fancy stuff, but it's a nice starting point.
Note that there's nothing yet about integrating OSP website, which
will come as another app.

Tuesday, 21st August 2012 - 19:07


Eric Schrijverstated

— Keeping track of the install process

At least I managed to stop getting import errors,
do for the moment I don’t see any page yet :)

/ ->

/repos/ ->
ViewDoesNotExist at /repos/
Could not import git_info.views.index. View does not exist in module git_info.views.

Oh and I updated .gitignore with venv
A name I like to use for my venv’s

But yeeeaah for VC! Curious where this goes!

Tuesday, 21st August 2012 - 21:02


Eric Schrijverunwrapped

— Make it also work for names like

(btw, I added some comments to other day to lib/vc-repo.rb
to explain what kind of methods we implemented for the
osp website)

Tuesday, 21st August 2012 - 21:27


Pierre Marchandstated

— Added a basic test application

Thursday, 23rd August 2012 - 12:41


Pierre Marchandverbalised

— Reorganised imports and added plai/text reader

Thursday, 23rd August 2012 - 12:43


Eric Schrijvertweeted

— Compatibility with recent versions of python-magic

If the old way doesn’t work, it falls back to the new way

Thursday, 23rd August 2012 - 22:38


Eric Schrijverbrought out

— JQuery from CDN

It was hardcoded to


At some point maybe we start using
{% static "jquery.js" %}
when we have more static files

Friday, 24th August 2012 - 01:04


Pierre Marchandverbalised

— Caching/Queuing
After having written a task queue to get an idea of how it works,
went for Django-Celery, which seems to be regarded as the standard
component for the job.
Note that Celery needs a broker, tested here with RabbitMQ, that
you have to setup and run separatedly + running some Celery workers
to get the tasks processed :) Yep, forgot it at some point
See Celery documentation

Saturday, 25th August 2012 - 17:49


Pierre Marchandgave away

— Added a PDF reader based on libpoppler
Made a custom python binding based on poppler-cpp with boost::python
first rendering feels a bit slow, viva caching!

Tuesday, 28th August 2012 - 12:51


Pierre Marchandtold

— wouldn't handle repositories with ony one commit

Friday, 31st August 2012 - 18:42


Pierre Marchandsaid

— First bits of a possible use of Fontforge for font handling

Friday, 31st August 2012 - 18:44


Pierre Marchandverbalised

— condom commit

Wednesday, 5th September 2012 - 12:03


Eric Schrijverbrought out

— Getting a consistent set of OSP styles / layout (but where to put our colourful commit boxes?)

After I guess we put Masonry on the files and icebergs so to
fill the space

Wednesday, 29th August 2012 - 02:34


Eric Schrijversaid

— Merging in Pierre

Wednesday, 29th August 2012 - 02:36


Eric Schrijvergave away

— Frog fixes & other myriad home page nits
following up on commit 00d92d3133e80

* Fix the frog:
instead of the svg, you actually get a png if you use an old IE :)

* The spacing bug I thought I’d fixed before

* Reduced the number of shown commits, images
to be on par with our PHP mockup

also less.js is now in debug mode

Thursday, 30th August 2012 - 23:04


Eric Schrijvercomitted

— Add commit_time to commit json

Wednesday, 5th September 2012 - 01:06


Eric Schrijverrendered

— Find a file or folder by path

Works as such: /repo_name/path/ + path/to/file/or/folder

The other views work by specifying an object id, which a user
or external app might not always be aware of.

Git doesn’t have a specific way to search for a tree or blob by path,
you just recurse down the tree:
/libs/transducers -> repo.head.tree['libs'].to_object()['transducers'].to_object()

Wednesday, 5th September 2012 - 01:08


Eric Schrijvercried

— I added masonry but it doesn’t work yet

“Whereas floating arranges elements horizontally then vertically,
Masonry arranges elements vertically, positioning each element
in the next open spot in the grid.”

Wednesday, 5th September 2012 - 10:50


Eric Schrijverdeclared

— Url routing fixed for repo names with dashes

Wednesday, 5th September 2012 - 11:51


Pierre Marchandlet the cat out of the bag

— Merge branch 'master' of


Wednesday, 5th September 2012 - 12:07


Pierre Marchandverbalized

— better handling of failures

Wednesday, 5th September 2012 - 13:10


Pierre Marchanduttered

— first bits of reader options

Saturday, 8th September 2012 - 14:47


Eric Schrijverwhispered

— Adjust CMake recipe

( It was linking statically,
we need to link dynamically )

Wednesday, 5th September 2012 - 16:26


Eric Schrijversang

— Move a sys import to it’s new home

Wednesday, 5th September 2012 - 18:31


Eric Schrijverwhispered

— We install, we write README.txt

Wednesday, 5th September 2012 - 23:29


Eric Schrijverrendered

— Serve static and media files in development

public/ -> /static/
visual/ -> /visual/

If anyone has a funner name for static I’d like to know updated to automatically use these folders

Wednesday, 5th September 2012 - 23:29


Eric Schrijvercried

— The part of the app that returns JSON is now namespaced as '/api/'

Friday, 7th September 2012 - 23:50


Eric Schrijverrendered

— Repositories now returned in order of last updated.

Using an ordered dictionary for the GitCollection,
a backported implementation of the Python 2.7 data structure.

Also an extra check on initialisation of the git modules:
it tries to reach the head commit. If this fails, the repo is not added.
This catches both empty and corrupted repos.

Sorting is probably heavy, but it happens on __init__ of the class,
not when requesting the list through .get_names()

Saturday, 8th September 2012 - 01:21


Pierre Marchandbabbled

— Merge branch 'master' of

Saturday, 8th September 2012 - 14:47


Eric Schrijverrendered

— More structure views

Renamed commits to objects when they are other kinds of objects

Add latest commits and tree to repository information

We need to wrap the pygit2 classes with to_hash objects

Saturday, 8th September 2012 - 15:22


Eric Schrijverlet the cat out of the bag

— Add view to render all repos

Which, of course, is super heavy, so it needs to be adequately
cached. But this greatly facilitates the development of the OSP

Monday, 10th September 2012 - 20:33


Eric Schrijverlet out

— So the test app ceased to work along the way

Now it's still not completely working (clicking on a file
fails). Though Pierre M, you might also need to update your settings
to take into account the static folder'path/to/spion/' + 'public'

<3 from upstairs

Tuesday, 11th September 2012 - 00:39


Eric Schrijverbabbled out

— add osp: It is not there, but one can see where
we are going

Tuesday, 11th September 2012 - 00:42


Eric Schrijvercomplained

— Move initialisation of GitCollection from git module to views, implement prefix

( The PREFIX is read from settings )

Wednesday, 12th September 2012 - 00:06


Eric Schrijvertold

— I had forgotten to set a max to the number of rendered commits

So it recursed down the whole tree.. no wonder it was super slow

Wednesday, 12th September 2012 - 00:14


Pierre Marchanddisclosed

— Merge branch 'master' of

Tuesday, 18th September 2012 - 12:38


Eric Schrijverlet the cat out of the bag

— Indent the JSON. Highly readable API yes

Wednesday, 12th September 2012 - 00:29


Eric Schrijversaid

— Clean api. Breaks test

Wednesday, 12th September 2012 - 00:34


Eric Schrijversang

— 'Rubygems' by default for ruby command line utility

Wednesday, 12th September 2012 - 15:50


Eric Schrijverspoke

— Let’s throw a 404

Kick in the door wave the 404
When we don’t find the object
by hex
It’s not really there
A plausible scenario

Thursday, 20th September 2012 - 01:13


Eric Schrijveremited

— Blobs and trees queried via the path API now know about their own paths,
and the path to their raw data.

Thursday, 20th September 2012 - 02:10


Eric Schrijverbabbled

— Add profiling: append query string with ?prof to see it!


Thursday, 20th September 2012 - 14:28


Eric Schrijverwhistled

— Rendering the tree for every repo was costing us too much time
( on the view /all/ )
it is now optional

Also rewrote the logic for finding the name of a path
(it didnt work for root paths)
We now keep the final empty path for dirs so we can rejoin.

Thursday, 20th September 2012 - 14:30


Eric Schrijvertattled

— Strip off '.git' from the name of bare repositories

Monday, 24th September 2012 - 18:00


Pierre Marchandclaimed

— Merge branch 'master' of

Monday, 24th September 2012 - 19:59


Pierre Marchandpeached

— Implemented the bare minimum to make GitCollection mimic a container type

Monday, 24th September 2012 - 20:32


Eric Schrijverbabbled out

— Basic browsing through the repos works
(no visuals yet)

Monday, 24th September 2012 - 19:29


Eric Schrijverwhispered

— No double slashes when generating hyperlinks

Monday, 24th September 2012 - 23:30


Eric Schrijverbabbled out

— Some finishing touches to the Ruby prototype
Now works with masonry

Saturday, 29th September 2012 - 14:43


Eric Schrijvertattled

— The gEvent server and why we need it:

If we want to test both the osp-site and the git-api locally at the same
time, the normal Django development server doesn’t cut it: since it is
single-threaded, the server can’t send an api request to itself.

Pierre provides us with a forking server. The only thing that needs to be ironed
out, is that it doesn’t serve the static files from 'public' under '/static/*'
nor does it serve the media files from 'visual' under '/visual/*'

Saturday, 29th September 2012 - 14:49


Eric Schrijverlet loose

— OSP site now also self-sufficient django app
With its own settings file and

cd vc_django/osp
python runserver

Now the only thing you need to have installed to do local OSP Site
development is Django.

Saturday, 29th September 2012 - 15:08


Eric Schrijverrendered

— Forgot this one!

Saturday, 29th September 2012 - 17:51


Eric Schrijvertweeted

— osp site :: after commit+push: 'make' pulls changes on server, restarts server

Saturday, 29th September 2012 - 17:55


Pierre Marchanddivulged

— Merge branch 'master' of

Sunday, 30th September 2012 - 11:28


Pierre Marchandironized

— Implemented options infrastructure for visual generation.
Only implemented the size arguments for image generation. Pass width and/or height arguments(GET or POST) to the request.
Didn't exactly remember the URL scheme, but it will be trivial to adjust if i got it wrong.

Sunday, 30th September 2012 - 14:53


Pierre Marchandironized

— Implemented options support for the PDF reader
I changed the caching system. It used to pass the blob data through the message queue, excellent when the blob data was not large, but failed completely as soon as I tried to pass large files.
The way it works now is that we just pass a blob_info dictionary to the reader and it gets the data from the repository with an helper installed by the @reader decorator [e.g.: self.get_blob_data(blob_info)]

Thursday, 4th October 2012 - 19:44


Pierre Marchandpublished

— quiet gcc on ospwork

Thursday, 4th October 2012 - 20:00


Pierre Marchandclaimed

— forgot self

Friday, 5th October 2012 - 01:04


Pierre Marchanddiscovered

— First smell of ice

Friday, 5th October 2012 - 01:52


Pierre Marchandstated

— weird final

Friday, 5th October 2012 - 02:08


Pierre Marchanddivulged

— Make it right, huh

Friday, 5th October 2012 - 02:13


Pierre Marchandtold

— Make it right, huh huh

Friday, 5th October 2012 - 02:18


Pierre Marchandadmitted

— Almost there with osp home page, still some glitches in the visual culture but still we can see icebergs

Friday, 5th October 2012 - 03:10


Pierre Marchanduttered

— Got the frog back :)

Friday, 5th October 2012 - 03:32


Eric Schrijveradmitted

— Add example setting to VC path

Friday, 5th October 2012 - 13:00


Eric Schrijverclaimed

— Remove bobo/disputio

Disputio has its own home,
and the bobo folder represents experiments in python/libgit2
that have ended up in the django version

Friday, 5th October 2012 - 21:40


Eric Schrijvercomitted

— Remove the django version from the Ruby branch

Friday, 5th October 2012 - 21:54