1. Electronic Presence & Pocket URI

    March 28, 2008 by jerome

    Yesterday we all went to the launch of Disclosures, a series of event organised by Gasworks. Disclosures purpose is to scrutinise the notion of openness across fields of cultural production at large..
    Electronest is part of the event as commissioned artist/designer for the Pipeline website and we also designed the printed communication.
    This morning, like almost every morning, I was looking at the statistics of our various websites; I started to consider the leaflet in which we had the chance to have an extended colophon as an extension of our Electronic Presence – yesterday, on Assembling we released a short report about the re-launch of Electronest’s “home page” and I remembered an idea Pierre explored a little while ago: Generic Business Card.

    gbc_photo.jpg

    This morning, the idea of considering those bits of paper which I always neglected (or more exactly which I always tried to neglect) as an extension of our Electronic Presence started to be quite attractive.
    Attractive enough for me, to have my own go at it.

    businesscard-IMG_8317.png
    businesscard-IMG_8315.png

    Reading WikiPedia, Business Cards evolved from a fusion of traditional trade cards and visiting cards; they are bearing business information about a company or individual. They are shared during formal introductions as a convenience and a memory aid.
    It is funny to then read and figure out the similitude with the definition of what a URI (Uniform Resource Identifier) is: In computing, a Uniform Resource Identifier (URI), is a compact string of characters used to identify or name a resource. The main purpose of this identification is to enable interaction with representations of the resource over a network, typically the World Wide Web, using specific protocols.

    Business Cards on WikiPedia
    URI on WikiPedia
    ∗ by the way, the program which has a few mistakes and bugs, should be corrected in a future PDF, a sort RC2
    ∗ Pipeline |* is not yet launched but it should get some content and go live soon


  2. Disclosures Wall

    March 27, 2008 by jerome

    disclosures wall.png

    This is a 365×270 cm wall inside the Gasworks gallery. It will signal I’ve got the books, you’ve got the brains… and the Disclosures series of events; it’s featuring the font LaPolice by François Rappo, edited by B&P Type Foundry.


  3. As simple as Mail.app > mailbox > rebuild

    March 26, 2008 by jerome

    Since a few days I had quite some troubles to get my emails right… they were were all mixed up: when clicking on an email of Damien for some quick modifications on a project we did recently, I was accessing an email, from my mother, which I received just after. Not a really practical situation to read and answer emails.

    My first fear was a corruption on the IMAP server, but Mail.app on other computers were syncing email header, title and email content correctly so it was not a server side issue. There was definitely a corruption in the SQLite file on my local Mail.app and I was wondering about radical best practice to get things back to normal, like un-installing/cleaning/installing the mail folders. I’ve read a few articles about how to flush the SQLite database.

    Mail.app extensively use SQLite to store emails, it is a C library that implements a self-contained, embeddable, zero-configuration SQL database engine, it is driven toward fast performance and embed-ability in local application.

    Finally, thinking there was a simpler solution (because there is always a simpler solution) I stumbled upon the Rebuild item inside the Mailbox menu. If it is greyed, it might be because you did not select a Mailbox first. Upon selection, Rebuild will re-fetch the emails headers, and re do the caching – this can take some time before it’s completed.

    email-rebuild.png

    And Shazam!
    All emails are back with their correct header/title/content …


  4. google queries reverse engineering, diff & deltas for search engine result sets

    March 25, 2008 by pierre

    This morning the sentence “I wonder what he googled to find this idea” made Jérôme and I think of a game: given a page of search results, find the closest list of keywords (the “google query”) that leads to it. Today the biggest search engines are based on indexation of content using keywords*: being able to find the correct keywords or combination of keywords that leads you to relevant information on a topic you do not know yet is a quite important skill. This game could be a way to exercise this skill. To program this as an online game would be interesting. You could either play it with two players, one player set the query the other one get the results and have to guess the query, or it could be played with a single player and a programs generates a random query from a list of words and push the results to the player for him to guess the query.

    Now if the person who guess the query picks a not exactly identical but similar query, we would like to tell him: “not exactly but close!”, and “how close”. This could be based on finding that the words in the original query and the words in the guess are synonyms, but more interestingly it could be based on calculating the difference, distance, or delta between the two results sets that the original and the guessed query yields. Is there any code that compares search results and compute deltas? In what other situations this kind of calculus could be useful?

    *there is a demo of an alternative way of searching on the company “the knowledge” homepage. This technology for sure is interesting, but since I saw it I wonder: what kind of non trivial questions would I ask there? and what would be the success rate of the answers then? hu…


  5. ideas for the filmshop

    March 24, 2008 by pierre

    I went to the filmshop to get a few episodes of the first season of the Wire but their copy was out until tomorrow. I was thinking that if they had their db of dvd’s and tapes online I could have checked before going. But maybe that would not interest the owner of the shop, because people who go there to pick a dvd which is not there can look at other things and maybe take another one. So in a way it is good for the shop to not have their stock state available online.

    And I also noticed that the shop is a place where people meet. It is a place of astounding social homogeneity, even electronic noise music concerts gather a more disparate crowd, the only place with an equivalent lack of different social statuses that I can think of is Rochelle Cantine in Arnold Circus. Poeple don’t miss an occasion to look around, observe other people postures and looks, check what films they are interested in etc… In the shop as well there is a small corner where people can put up adds for flat sharing, courses, etc… and it is overflowing.

    So I thought of the following system: on the shop website you could post your email with a film title, the people working in the shop would print this on a card and display it in the shop. Any clients who goes to the shop and fancy it could look at the stack of cards, if he finds a movie that’s indicated on a card is in, he can take the card and send you an email saying, “hey … is available, you should picked it up it’s a great film bla blah blu”.

    Or, a little more complex: the distributed film delivery system. You can login to the website, enter your name and adress and your credit card details, so the shop can bill you when you are not there. You can enter as well a list of films that you’d like to see and a list of friends of your that are members of the filmshop and that you trust. When your friends go to the film shop they can look up that list, if they find a film that you’d like to see they can borrow it and bring it to you, the shop charge your account and your freind drop the DVD on his way.


  6. site down check-list

    March 23, 2008 by pierre

    Some parts are dreamhost centric.

    Is it down just for me:

    1/ ssh to another machine and: $ ping thedomain.com
    2/ http://downforeveryoneorjustme.com/

    Dreamhost status:

    1/ http://www.dreamhoststatus.com/
    2/ schedule tests

    DNS status:

    $ whois thedomain.com (check that the name servers are ns1.dreahmost.com, ns2.dreahmost.com, ns3.dreahmost.com)
    $ host thedomain.com
    $ dig thedomain.com

    $ traceroute thedomain.com


  7. Auto Social – a patch for delicious description

    March 22, 2008 by jerome

    Auto Social is a very neat plug-in for WordPress which lets your blog publish automatically its new or updated content on various services; at the moment it works only with del.icio.us, but the plugin structure is open enough to send in the future to any service with a descent API or url construct.

    We decided to start using Auto Social with R-Echos. It worked great – out of the box, straight to the WordPress plugin folder on the server but we wanted to have a brief description of the content in the field Notes. With the del.icio.us API it has been a snap to introduce this in the code; note that the field Notes (extended.api) is limited to 255 characters.

    Mainly, it’s this line which does the job:

    $params .= "&extended=".urlencode($cleaned_content);

    You can find more details about the del.icio.us api post:
    https://api.del.icio.us/v1/posts/add? Add a post to del.icio.us
    &extended (optional) – notes for the item.

    Here is the patch for the file delicious.php: delicious_patch.txt.

    To apply a patch, you can use:
    patch -p 0 < patch_name

    To create a patch, you can use the unix command: diff
    diff -Naur oldfile newfile &rt; patch_name


  8. returning wordpress tags as an array

    March 20, 2008 by jerome

    Maybe useful for someone else: this is a patch of wp-includes/category-template.php to return an array of the tags instead of printing it when using the “format=array” option in wp_tag_cloud().

    This seems to have been fixed in version 2.5, let’s see that soon! In the meantime…

    tag_array-patch


  9. playbill programming

    March 19, 2008 by pierre

    First steps toward Anthony Ellis playbill application (a small text editor that typeset the words typed in the font with the closest matching name – e.g. the word “film” rendered in “filosfia” ).

    Points 1 and 2 below are programming details, point 3 is an example of what we can do now, 4. is what we need to do next.

    1. Interface with the operating system, list all available fonts.

    We can use Objective-C object called NSFontManager and and a method called availableFonts(). Using python’s bridge to Objective-c included in NodeBox.

    from AppKit import NSFontManager
    def fonts():
    	return NSFontManager.sharedFontManager().availableFonts()

    We can now modify this function to make it return a filtered list of fonts name that match a certain string of characters:

    from AppKit import NSFontManager
    def fonts(s):
        return [f for f in NSFontManager.sharedFontManager().availableFonts() if f.lower().startswith(s.lower())]

    2. Find a w[ord]‘s first match in the list of font names.

    In python for example, lets say “write()” is an imaginary function that write a string in specified typeface, “fonts()” is the function already defined that take a string and return a list of matching typeface names, and “s” is just a string that we want to typeset.

     

    from string import letters, whitespace, punctuation
    
    s_buff, f_buff = '', ''
    
    for c in s:
        if c in letters:
            s_buff += c
            if fonts(s_buff) != []:
                f_buff = fonts(s_buff)[0]
        elif c in whitespace or c in punctuation:
            write(c)
            write(s_buff, f_buff)
            s_buff, f_buff= '', ''

    We have a small datastructure that contains the two things we are matching, strings and font names (s_buff and f_buff), we then conditionally fill and empty theses buffers as we scan the input string.

    3. Example

    picture-1.jpg

    download the code: playbill-0.txt

    4. Next step

    The next step is to integrate this typesetting process in a small text editor. The text field will need to support multiple fonts in the same field, and it will need to return “key” events that we can use as input stream for what we already programmed. As Jérôme pointed out, another solution is to make an infinite loop in parallel of the editor that “poll” it regularly for new characters.

    In what typeface should we typeset the punctuation? I’m not sure if it is a good idea but we could imagine replicating Anthony idea at the scale of a typeface using glyphs names: you take a punctuation sign name, like “comma”, “dot” and find the closest match in the font list : comma => commic sans, dot => dogma, etc…


  10. the night Potentially became Capacity…

    March 18, 2008 by jerome

    …is tonight. Hello World!