Technology

You are currently browsing the archive for the Technology category.

The Free Culture X Conference and Unconference took place the past 13th and 14th of February at the George Washington University, in Washington, DC. I had the privilege to attend thanks to a travel grant from the generosity of Google, Mozilla and Shareable.

As they define it, its vision is to bring together student activists and free culture luminaries to discuss free software and open standards, open access scholarship, open educational resources, network neutrality, and university patent policy, especially in the context of higher education.

Below there is a summary of the notes I took during the conference. It doesn’t aim to be complete nor precise, but I hope it will provide an idea of what did we discuss about.

During the different keynotes and panels, we used, apart from the classical hand-up, the backchan.nl tool for audience intervention during conferences. Better than a massive Twitter, IMO.

After a short introduction, we started discussing about the politics of open networks. It was pointed out that we need to come up with a clear definition of net neutrality and push the ISPs to implement the policies we want. The politics-related meetings about net neutrality often include a lot of industry representation, but seldom people from other sectors of the population, which are also affected, as university campuses or consumers’ groups.

The three-strikes law to cut the access to the Internet can become extremely harmful in contexts where it’s being used as a platform for services like VoIP or TV, disconnecting the affected user completely, unable to make even emergency calls.

In general, the existence of a competitive market of ISPs, like the one in England, contributes to the natural enforcement of the net neutrality.

Controversely, one of the panelists, Timothy B. Lee, exposed his ideas about how to preserve the net neutrality without law regulations. You can read more about his ideas, and a quite long and in-deep paper, in his blog.

I’ve recently read bad news about net neutrality in Spain. Some of the major ISPs operating in the country, like Telefónica or Vodafone, claim a monetary compensation from companies that use their infrastructures for their business, like search engines, mobile apps distributors, or VoIP companies. I personally oppose the Internet to become another TV.

Next, Pat Aufderheide directed a keynote about the concept of fair use to reuse and remix existing culture. Fair use is perfectly legal in the US and should be encouraged, even enlarging or modifying non-copying policies for homework in schools. There’s a lot of interesting material about fair use in the Center for Social Media website.

Moving on to the topic of Open Access and Access to Knowledge, it was pointed out that Open Access in public universities is low-hanging fruit and we should contact these universities to encourage them to adopt this model. The Open University Campaign, a Students For Free Culture project, contains valuable information about this. Also, the Right to Reseach Coalition is an excellent source of info about how to demand the research work paid with our taxes to come back to us without having to pay additional unfair fees.

Unfortunately, some countries lack from copyright exceptions for libraries and universities, and the changes in the law, usually promoted by the industry, always tend to make it more restrictive.

We need to take the discussion about Access to Knowledge from experts to the “family dinner”, explaining current common behaviour that is or would be illegal under the current laws, to make the public aware of how are they affected and take part in the legal discussions about copyright laws.

Also, it was pointed out that personal meetings, faxes and phone calls are much more effective than emails or Facebook campaigns to make the politicians hear our opinion.

The next panel was about Open Educational Resources (OER). Eric Frank, from Flat World Knowledge (FWK), told us that textbooks are a major portion of the tuition costs in some countries. Flat World Knowledge provides a platform to create, publish and distribute quality, peer-reviewed, customizable and flexible-licensing books that are freely accesible online and affordable as printed copies. The people from FWK have observed that, even when there’s a free printable copy of the book available, some students prefer to buy the book, which makes this publishing model presumably sustainable.

The Michigan University OER Team (Open.Michigan) is working on an impressive list of projects to enable groups and individuals to openly share their work. These are mostly collaboration tools, supporting the idea of that the knowledge is not just “transferred” from teachers to students, but something socially constructed. Some of the most interesting are dScribe, a framework to help faculty staff to gather available educational material, clear possible copyright restrictions over it (so it can be published legally under certain circumstances) and reuse it to create and publish new OERs; or OERca, the free software platform that powers most of the dScribe framework.

Finally, Timothy Vollmer, from ccLearn, told us about how CreativeCommons is helping to the development of OERs, the available tools for adequately tag content for further indexing and discovery.

Related articles

Tags: , , ,

Now one can generate graphs like this one. :)

Related articles

Tags: ,

Update! I’ve extended and polished the library and published it as pyyahoofinance at github. Feel free to critizise my coding style and laugh at me, and of course to use it and/or contribute.

I’m working on a project where I need to analyze the ups and downs of different stock values along the history and find correlations between the contraction and expansion of the market, the evolution of the indexes and simulate certain trading strategies to become rich and famous. ;)

Yahoo! Finance lets you download historical financial data in CSV, but only provides data for one stock at a time. Clicking, saving, cutting and pasting is always tedious, error-prone and a waste of time in general, so I’ve taken advantage of my good friend Python to write a script to plunder (yeah, I’m a pirate, you know ;) Yahoo!’s Standard & Poor’s 500 index in a couple of minutes and save it in a space-separated-values file named “results.txt”.

You can then generate beautiful charts like this one:

Code follows:

#!/usr/bin/python

import urllib2

CLOSE_COLUMN = 4 # the index of the column containing the close value
TICKER_COLUMN = 0 # the index of the column containing the ticker name

# get the Standard & Poor stock tickers
tickers = []
for n in range(0, 500, 50):
    url = urllib2.urlopen("http://download.finance.yahoo.com/d/quotes.csv?s=@%5EGSPC&f=sl1d1t1c1ohgv&e=.csv&h=PAGE".replace('PAGE', str(n)))
    data = url.read()
    stocks = data.split('\r\n')
    for stock in stocks:
        try:
            ticker = stock.split(',')[TICKER_COLUMN]
            ticker = ticker.replace('"', '') # remove surrounding quotes
            if ticker: # not empty ticker
                tickers.append(ticker)
        except IndexError: # empty row
            pass

global_closes = {}

for ticker in tickers:
    print "getting data from ticker: %s" % ticker
    url = urllib2.urlopen("http://ichart.finance.yahoo.com/table.csv?s=%s&a=00&b=1&c=2000&d=00&e=1&f=2009&g=m&ignore=.csv" % ticker)

    history = url.read()

    measures = history.split('\n')
    measures = measures[1:-1] # the last row is empty and the first
                              # one contains the labels

    closes = [measure.split(',')[CLOSE_COLUMN] for measure in measures]

    global_closes[ticker] = closes

columns = [[ticker] + global_closes[ticker] for ticker in global_closes.keys()]

rows = zip(*columns)
out = open('results.txt', 'w')
for row in rows:
    out.write(' '.join(row))
    out.write('\n')
out.close()

Related articles

Tags: , , ,

Back to Stockholm! I’ve spent this whole weekend in Barcelona in the Free Culture Forum, working together with more than a hundred people from all over the world to debate about how to face the new (and old) challenges with copyright, net neutrality and education, among others, and decide the next actions to take.

First of all, I’d like to congratulate and thank everyone who contributed to organize and manage this. Despite the lack of a solid financial and human support, the forum was an undeniable success in terms of organization – I felt like at home and had a real good time.

Our main task was to elaborate a document reflecting our vision, goals and demands. We worked in five groups: Education, Economy, Politics, Digital Infrastructure Rights and Legal. I worked on Education since I was invited to the event in representation of Alqua.

Since the document has been composed with the input of so many people, I’m a bit concerned about its coherence and homogeneity, so I’ll advocate for several different proof-reads before publishing anything, including mine. Also, the idea is that the different individuals and organizations who attended the forum will sign it as a whole, so we have to be very careful with the inclusion of any “too” radical demand in order to reach a reasonably broad acceptance.

One of the atendees suggested that we should speak about the next steps we, as individuals, either representing a project/group or not, will take to achieve the goals stated in our chart. I think this is rather important since otherwise (and even if we do so) we’re in risk of this awesome forum to become no more than a declaration of intentions, an utopy, without any real commitment of work and thus failed. Don’t get me wrong – I’m the first who starts slackering and procrastrinating if I don’t state my own commitments clearly. So here are my agenda of next actions, which I will post to our (hopefully upcoming) mailing list:

- Concact the Spanish universities and ask them to upload their already existing educational material to OAI-enabled repositories. OAI is a metadata standard for easy dissemination of content. Contact Ignasi Labastida (Creative Common Spain), who showed us some of the different tools available, to help me to understand how these repositories work.

- Place the already existing Alqua documents in OAI-enabled repositories, or create a new one, to increase their visibility.

- Contact David Gómez-Ullate, who is currently leading a (publicly funded!) pedagogical innovation project to use free software in some courses and research work in Universidad Complutense de Madrid.

- Investigate the current use of Free Software in the Spanish universities to find out use cases and good practices.

This is all for now, friends. If you’re (even slightly) interested in helping or have any suggestions, don’t hesitate to contact me! :)

Related articles

Tags: ,

I got bored of having to write “site:plone.org/documentation blabla” in the Firefox search box to use Google to look for documentation in Plone.org so I created a plugin following these instructions and using this generator.

Check it out!

Some tips:

  • Use Ctrl+K to get to the searchbar.
  • With the focus in the searchbar Alt+Up/Down lets you select what search engine you want to use.
  • While selecting an engine, typing a character makes you jump to the first search engine starting with this character. In our case, use ‘p’.

Related articles

Tags: , ,

It’s not the first time someone tells me that he doesn’t want to create a Facebook account for himself because he wants to keep his private life on his own. I usually think they’re too over-concerned due to a variety of reasons.

First of all, you’re not obliged to share anything you don’t want to. If you’re depressed and don’t want to tell anybody about it, nobody will interrogate you and post it in your status feed. If you’ve make up with somebody, Facebook won’t tell this to your parents.

Second, Facebook has one of the most flexible privacy settings customization I’ve ever seen. You can choose who can see each part of your profile, photos taken by you, photos of you, data sharing with 3rd party applications and much, much more, like if you allow Google to index your “profile page” or if you want to appear in public searches of people.

Some people is concerned by the possibility of somebody uploading photos of them drunk. Well, this can always happen even if you don’t have an account and:

  1. You can choose not to share your photos with everybody so unauthorized people won’t see these photos as “photos of you”.
  2. You can contact your “friend” and ask him/her to remove these photos, please.
  3. You can eventually report the photo to the Facebook staff for them to hide it, if the previous step didn’t work.

Whereas I must agree on that social networks encourage people to share more than they would have shared outside them, I don’t think the problem is in the tool but in the people using it – one has to keep in mind what’s he sharing and with who.

I’ve not read the whole Privacy Policies of Facebook so I’m not aware of all the privacy issues that could emerge from them, but I don’t think it can be worse than receiving tons of printed ads in your ordinary mailbox everyday, or even some governments’ surveillance.

Related articles

Tags: ,

What started as an utopic idea has now become real! Over the last Plone releases, the documentation had become sadly outdated, because the people writing code for the new features of the product were faster than the people writing the documentation for them.

During the last Plone Conference the Plone Documentation Team was revived. It was time to start doing things The Right Way (TM). Our idea was to bind the development to the documentation, studying PLIPs after being approved by the Framework Team and updating and extending the documentation base accordingly before the new product version is released.

And finally, we did it for 3.3! So congrats to everybody who’s participated! I hope that in the future more people will chime in and we will improve our workflow for updating and testing changes in the documentation. Some ideas:

  • We can’t publish (make visible to everybody) the documentation for the new version before the new version is released, because it will confuse people. Next PHC version will likely provide us Working Copy Support so we will be able to edit documentation “privately” while keeping the old (stable) version of a page public.
  • We have to coordinate better with the PLIP implementors to write, review and verify the documentation. Proposed workflow:
    1. Make a list of affected docs. This list will likely include only documents in the official documentation area.
    2. Make a copy of them and find someone to document the changes. With Working Copy Support, thiw will no longer be neccessary.
    3. Ask the implementer of each PLIP to review the introduced documentation changes. Test them against a beta or release candidate release.
    4. After the final release, copy the contents of the copied articles back to the live ones, and delete the copies. With Working Copy Support, promote the changes to the public page.

Happy ploning to everybody!

Related articles

Tags: ,

This list is not intended as a in-depth tutorial to learn how to create new content-types in Plone (if you are looking for that, please check the Archetypes Developer Manual), but as a checklist to ensure you’ve not forgot any step.

  1. Create the skeleton of the package using paster -t plone.
  2. Add the package to your buildout.cfg, including the eggs, develop and zcml sections.
  3. Define your type interfaces using zope.schema.
  4. Implement the interface using Archetypes.
    1. Define the content-type fields using Archetypes.atapi.Schema.
    2. Bridge the getters and setters to attributes using atapi.ATFieldProperty.
  5. Define the security policies for the class attributes throught <require /> directives into your configure.zcml.
  6. Register the neccessary resources (images, css, javascript) into your browser/configure.zcml file, throught <browser:resource /> directives.
  7. Implement the main view of the object.
    1. Register a <browser:page /> into the browser/configure.zcml file, referencing the view class and the content-type interface.
    2. Write the implementation of the referenced class above, using Products.Five.browser.pagetemplatefile.ViewPageTemplateFile and defining any internal methods that you’ll need into the rendered templates later.
    3. Write the associated template, using ZPT.
  8. Write the GenericSetup install code for the new content-type:
    1. Register a extension profile into your configure.zcml, using a <genericsetup:registerProfile /> directive.
    2. Register the type into the portal_types tool throught a types.xml file.
    3. Specify the details for each type into the types/your-type-name.xml file.
    4. Write the __init__.py package’s boilerplate code to initialize the content-type and create the factory functions.
    5. Write down your configuration data into a config.py file.
    6. Assign add permissions to desired roles throught rolemap.xml.
    7. Register the type factory in the factorytool.xml file.

Thanks to Martin Aspeli for such a great book!

Related articles

Tags: ,

Tuentifox es un proyecto liderado por los chicos de Mozilla Hispano para comunicarse con la popular red social Tuenti desde el propio navegador.

Actualmente se encuentra en fase pre-alfa, pero merece la pena que le echéis un vistazo y propongáis ideas y mejoras.

Related articles

Tags: ,

Sólo os aconsejo que uséis el sentido común.

Cuando estuve en el Evento Blog España de este año en Sevilla un tipo de IBM nos explicó cómo había decidido dejar de usar el email en su trabajo en favor de otras herramientas de intercambio de información como wikis, blogs, twitter y resto de redes sociales, ya que la cantidad de mensajes de correo electrónico que recibía todos los días era tan brutal que la mitad de las veces les daba a “marcar todos como leídos” sólo de pensar en el agobio de tener que leerlos todos.

En un entorno en el que hay tal cantidad de información necesitamos herramientas para filtrarla y poder leer lo que más nos interesa en función del tiempo que tenemos, y el mercado de filtrado y organización no para de crecer.

En definitiva, podéis seguir enviando enlaces y chorrisandeces de menos de cinco líneas por la lista de correo si lo veis conveniente, pero antes de hacerlo pensad en lo que dijo Poul-Henning Kamp:

      +------------------------------------------------------------+
      | Your email is about to be sent to several hundred thousand |
      | people, who will have to spend at least 10 seconds reading |
      | it before they can decide if it is interesting.  At least  |
      | two man-weeks will be spent reading your email.  Many of   |
      | the recipients will have to pay to download your email.    |
      |								   |
      | Are you absolutely sure that your email is of sufficient   |
      | importance to bother all these people ?                    |
      |								   |
      |                  [YES]  [REVISE]  [CANCEL]                 |
      +------------------------------------------------------------+

Bueno, quizá no tanto como varios cientos de miles de personas, pero sí suficientes para que os planteéis si no hay mejores vías de comunicación para la información que queréis transmitir.

Larga vida al sentido común, y ojalá aprendamos a aprender de los errores de los demás algún día.

Related articles

Tags:

« Older entries