SummerOfCode2012: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
 
(168 revisões intermediárias por 6 usuários não estão sendo mostradas)
Linha 1: Linha 1:
[http://labmacambira.sf.net LabMacambira] is applying to be a mentor organization for [http://www.google-melange.com/gsoc/homepage/google/gsoc2012 Google's Summer of Code 2012]. Here we list all the projects with mentors.
[[SummerOfCode2013|[for GSocC 2013 - click here]]]
 
<div style="background:#CAFF70;border:1px solid #CAFF70; padding: 10px">
='''UPDATE (2013):'''=
 
A total of 11 participants in GSoC 2012 were directly related to [http://labmacambira.sf.net LabMacambira]. This was achieved by mentoring together with (other) GSoC 2012 orgs such as [http://www.google-melange.com/gsoc/org/google/gsoc2012/e_cidadania e-cidadania] and [[Scilab]]. Members of [http://labmacambira.sf.net] also took part as students, for Mozilla and the mentioned orgs. This participation focused in projects related to [[AA]], digital deliberation methods, [[Scilab]] and [[Mozilla]][http://maverickranter.blogspot.com.br/2012/05/5-bolsas-do-google-summer-of-code-dadas.html].
 
Here is the list of the mentors/students of LabMacambira.sf.net and their respective projects:
 
* Scilab
** [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/cardinot/1 Marcos Cardinot]
** [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/gustavolibotte/1 Gustavo Libotte]
** [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/caioc2/1 Caio Souza]
** [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/grandao/1 Pedro Souza]
** [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/mady902/8001 Pallan Madhavan]
* Mozilla
** [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/automata1 Vilson Vieira]
* e-cidadania
** [http://www.google-melange.com/gsoc/org/google/gsoc2012/e_cidadania Marcos Mendonça] mentored [http://www.google-melange.com/gsoc/project/google/gsoc2012/hugodes/10001 Hugo Des]
 
LabMacambira.sf.net was not selected as a GSoC 2012 organization. However, we are very proud and thankful for all the vouchers and recommendation letters written for us (and forwarded to Google) during the summer of 2012. These letters are listed in the following section.
 
=Vouchers and Recommendations=
 
There are some honorable documents written to Google
itself, as recommendations and vouchers of our work. First of all,
there is a letter from Célio Turino[1], idealizer of 'pontos de cultura',
a Brazilian federal program that reaches 8,4 million people (5% of Brazilian
population). It is a formal gift from him to LabMacambira and a homage to
Cleodon Silva (1949 - 2011), who inspired LabMacambira.sf.net.
There is also a formal document from the National Commission that gathers almost 4000
'pontos de cultura' telling a little bit more about LabMacambira.sf.net's importance
for Cultura Viva[2]. The third letter came from Ethymos, a partner enterprise
(LabMacambira.sf.net is not an enterprise) that joins LabMacambira.sf.net
in a direct democracy and free medias protagonist network in Brazil.
The fourth letter came from Puraqué, a collective based in Santarém,
in the Amazonian region [4]. Worth noticing that both Amazonian Free Software
Forum (FASOL) and Amazonian Forum of Digital Culture are in the third edition,
and the text might suggest otherwise.
 
 
[1] [http://issuu.com/patriciaferraz/docs/oficio_cnpdc_09_2012 Letter to Google from National Commission of the Pontos de Cultura]: translation is a courtesy by Ricardo Ruiz
 
[2] [http://ubuntuone.com/1Q20Hl7iqMBdPIqfZtYXiU Letter and Poem to Google from Célio Turino], translation is a courtesy by Rafael Reinehr.
 
[3] [http://ubuntuone.com/4g7z6e6cXdPWDL6TwvIulQ Letter to Google from Ethymos], a direct democracy partner.
 
[4] [http://ubuntuone.com/2NZTSE5ML35A56hdJcFl5W Letter to Google from Coletivo Puraqué], an FLOSS activism co-worker from the Amazonian regions.
 
[5] Honorary: [http://ubuntuone.com/6vWt3xi02bMMSHY0UZrjGl Letter to Google from Casa de Cultura '''Tainã''' and the '''Mocambos Network'''],
representative of the African Culture and of African-descendant communities in Brazil. Take a quick look at its various websites for abundant information.
 
[6] [http://ubuntuone.com/3nthjkuuvcZskpsb1yjmP7 Letter to Google from Digital Culture Forum],
one of Brazilians most important events on the use of technology as a cultural trace.
 
[7] [http://ubuntuone.com/67pyR8poK1Qt4l1NNpFGUT Letter to Google from Teia Casa de Criação], present in LabMacambira.sf.net since its beginnings as
a unified group, dealing with institutional background for various articulations and developments. Translation is a courtesy by Ricardo Fabbri.
 
[8] [http://ubuntuone.com/18uDSrkEK1zHX4Bd1A0jQm Letter to Google from Pontão da Eco], an upholder of Digital Culture based in Rio de Janeiro, maintains pontaopad.me and other key services as well.
</div>
 
__TOC__
 
This page lists all the projects with associated mentors. Our mentors are very approachable and include world-class '''experts in web, audio, and video software technology'''. Take a look at [http://hera.ethymos.com.br:1080/reacpad/p/gsoc2012 our filled out menthorship application for GSoC2012] for more information on LabMacambira.sf.net - this application will make it to the 2013 GSoC only, but for 2012 we are participating as mentors and students in other orgs (such as Scilab and Mozilla). We can also arrange for alternative funds for interested students. 
 
Ideas page follows below.


=Information for potential students=
=Information for potential students=


You may choose from the list, '''but feel free to submit a proposal for your own idea!'''  
You may choose from the following list, '''but feel free to submit a proposal for your own idea!'''  


You can also discuss your ideas in '''#labmacambira''' channel on IRC network '''irc.freenode.net'''
You can also discuss your ideas in '''#labmacambira''' channel on IRC network '''irc.freenode.net'''


Our [https://sourceforge.net/apps/trac/labmacambira/ bugtrack] is a good starting point to be inspired about new ideas, please, take a look!
Our [https://sourceforge.net/apps/trac/labmacambira/ bugtracker] is a good starting point to be inspired about new ideas, please take a look!


=Project Ideas=
=Project Ideas=
The mentorings named below for each idea corresponds to individual affinities
The mentorings named below for each idea corresponds to individual affinities
or responsability for the trend. In truth, Renato Fabbri, Ricardo Fabbri, Vilson Vieira
for the trend. In practice, Fabricio Zuardi, Renato Fabbri, Ricardo Fabbri, Vilson
and Daniel Marostegan are mentoring together.
Vieira and Daniel Marostegan will be mentoring together. See also the [[SummerOfCode2012#Mentors| Mentors]] section.
 


== AA (client) ==
[[Imagem:Aa-macaco.png|right|bottom|alt=AA Console Client]]


[[AA]] is a social system for coordinating
distributed teamwork where each participant stays logged for at least 2 hours a day,
publicly microblogging
their development activities related to assigned tickets (self-assigned or team-assigned). At the end of each
daly session, a video log is recorded and [http://vimeo.com/channels/labmacambira uploaded to a public video channel],
the text log is also [http://hera.ethymos.com.br:1080/paainel/casca/ published on the Web] and is
peer-validated for quality. The AA system and its underlying software
engineering methodology enables self-funding for distributed collectives of
developers working on FLOSS projects.


== AA (client) ==
'''Objective:''' AA is a distributed system following a client-server
[http://wiki.nosdigitais.teia.org.br/AA AA] is a co-working system written in Python where each participant stay logged for 2 hours by day sending messages periodically about their development status. These messages [http://hera.ethymos.com.br:1080/paainel/casca/ stay public on Web] and are validated by their own co-workers. Using AA we have a system that makes possible self-funding for collective of people working on FLOSS projects.
architecture. Each AA client is a Python application in textual or GTK+ form that communicates
with the AA server, the web instance. Through the client each developer can send
messages and log his activities. Currently, AA client is a simple program
written to run in Linux. Being a software that aims to be used by everyone
it would be important to be multiplatform (perhaps as a web client) and to have
additional functionalities such as better Trac and Git log integration, RSS/Google+
developer feeds, and automatic videolog watermarking. A student working on AA could
work on these features for the program.


'''Objective:''' AA is a distributed system following a client-server simple architecture. Each AA client is a terminal application that communicates with the AA server, the web instance. By terminal, each developer can send messages and log his activities. All the log is made public in [http://hera.ethymos.com.br:1080/paainel/casca/ AA server running in Web]. By now, AA client is a very simple program written to run just in Linux. Being a software that aims to be used by everyone it would be good to be multiplatform and to have more functionalities. A student working on AA could work on these features for the program.
[[Imagem:Aapp2.png|right|bottom|alt=AA GTK2 Frontend]]


'''Suggested Roadmap:''' 1) Understand the AA architecture; 2) To use AA to understand, as a developer working in a collaborative group, what features it needs. These features could be implemented during the summer or documented for a future developer working on that; 3) Research about how to make AA multiplatform, we are planning to make it a Web app, but you could be more creative than us; 4) Implement the features on the TODO of the project and some of the features listed by yourself if possible.
'''Suggested Roadmap:''' 1) Understand the AA architecture; 2) Use AA in its
current form to understand, as a developer working in a collaborative group,
what features are most needed. These features could be implemented during the
summer or documented for a future developers; 3) Research about how to make AA
multiplatform - we are planning to make a Web client; 4) Implement the features
on the TODO of the project and some of the features listed by yourself if
possible. 5) write a paper about the AA methodology and experiences with the
implemented system.


'''Repos:''' git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/aa
'''Repos:''' git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/aa
'''Languages:''' Python, Javascript, Shell script


'''Mentor(s):''' Renato Fabbri <renato.fabbri@gmail.com>
'''Mentor(s):''' Renato Fabbri <renato.fabbri@gmail.com>
<br style="clear: both" />


== pAAinel (AA server) ==
== pAAinel (AA server) ==
AA is a Python distributed system, as said bellow. Here we encourage you to work on the server side of AA: [http://hera.ethymos.com.br:1080/paainel/casca/ pAAinel]. Today, [http://hera.ethymos.com.br:1080/paainel/casca/ pAAinel] just displays information about logs registered by AA server.  
[[Imagem:Aa2.png|right|bottom|alt=AA]]
 
AA is a distributed system for coordinating decentralized teamwork, as described above. We need to develop the server side of AA, which already includes an aggregator of logs, and a master aggregator of all the team information in a dashboard which is similar to iGoogle: [http://hera.ethymos.com.br:1080/paainel/casca/ pAAinel]. Currently, [http://hera.ethymos.com.br:1080/paainel/casca/ pAAinel] merely displays information about logs registered by the AA server, together with complementary information, like a recent irc log, tickets and last screencasts and code commits.
 
'''Objective:''' We desire to rewrite the AA microblog server (actually written in PHP) as a module inside pAAinel, a Django application.


'''Objective:''' We desire to rewrite AA server (actually written in PHP) as a module inside pAAinel, a Django application.
'''Suggested Roadmap:''' 1) Understand the current AA architecture; 2) Read both pAAinel (made in Django) and AA server (in PHP) code and associated documentation, planning how to rewrite AA server as a module inside pAAinel; 3) To develop and test the new pAAinel together with members of LabMacambira; 4) Continuouslly document the process.


'''Suggested Roadmap:''' 1) Understand the AA architecture, it's simple, we promise; 2) Read both pAAinel (made in Django) and AA server (in PHP) and plan how to rewrite AA server as a module inside pAAinel; 3) To develop and test the new pAAinel together with members of LabMacambira; 4) Continuouslly document the process.
'''Repos:'''  
git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/paainel
git clone git@gitorious.org:macambira_aa/macambira_aa.git


'''Repos:''' git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/paainel
'''Languages:''' Python, PHP, Javascript


'''Mentor(s):''' Vilson Vieira <vilson@void.cc>
'''Mentor(s):''' Vilson Vieira <vilson@void.cc>
<br style="clear: both" />
== [[AirHackTable]] ==
[[Imagem:Aht.png|right|bottom|alt=AHT]]
The [[AirHackTable]] is an art project - an interactive music instrument based on advanced computer vision algorithms that track flying origamis, associating their trajectories, color, and shape to different musical properties. The recycled coolers inside a cardboard table (itself an origami) generates a layer of air on top of which colored origamis float around and make track patterns depending on their geometry. A set of webcams on top then captures those patterns through our own color detection and 3D reconstruction algorithms, and then generate and modulate sounds based on the trajectory, color, and shape of the origamis. Many are the technological spinoffs of this project, most of which were accepted officially into well-established software such as the [[Pd]]/Gem real time multimedia programming system and [[Scilab]].
'''Objective:''' The [[AHT]] project is an opportunity to develop and spread cutting-edge technology in a playful manner, which may seem otherwise too hard/unapproachable.
We plan to improve geometric recognition to be used for generating sounds for modulating voices that are in agreement with the geometry of the origami. The goal, then, is to implement algorithms for 3D edge/curve reconstuction from the mentor's research, in order to recover the origami's edges in 3D, thus recovering the true geometry of the origami. Other techniques such as 2D recognition of origami silhouettes should also be developed. This playful project is expected to generate technological spinoffs which will be incorporated into other well-established FLOSS projects such as [[Pd]], [[Scilab]], [[OpenCV]], and [http://vxl.sf.net VXL]. Some of the Google projects that can benefit from the underlying machine vision technology include Google Streetview, Google Book scanning, Google Image Search, and Youtube.
'''Suggested Roadmap:''' 1) compile and run the current system after downloading the large set of repositories and watching our screencasts; 2) brush up on the background: [[Pd]], [[C++]],
and Computer Vision, by talking to the mentors and watching our screencasts; 3) get the 3D reconstruction system up and running isolatedly 4) optimize the system to run in real time
5) incorporate the 3D reconstruction system into the [[AHT]] system; 6) write up documentation and papers on the core technologies.
'''Repos:'''
git clone git://github.com/rfabbri/pd-macambira.git
git clone git://github.com/rfabbri/Gem.git gem.git
git clone git://github.com/wakku/Hacktable.git hacktable
git clone git@github.com:rfabbri/pd-macambira-utils.git
git clone https://github.com/gilsonbeck/beck-repo.git
[[Imagem:Yoshizawa12-hp-origami.jpg|left|bottom|alt=Google Origami Doodle]]
'''Languages:''' C++ (strong), [[Pd]] (intermediate), Scilab (familiarity)


== SIP ==
'''Mentor(s):''' Ricardo Fabbri (rfabbri at gmail), Renato Fabbri (renato.fabbri att ggmaill)


animal? TeDi?
<br style="clear: both" />


== Ágora Delibera ==
== [[SIP]] + [[Scilab]] ==


REST Web application to deliberation.
[[Imagem:SIP_whitebg.png|right|bottom|alt=SIP toolbox]]
[[Imagem:Leptonica.jpg|right|bottom|alt=Leptonica Image Processing Library from Google]]


'''Objective:'''
[http://siptoolbox.sf.net SIP] stands for [[Scilab]] Image Processing toolbox. [[SIP]] performs imaging tasks such
as filtering, blurring, edge detection, thresholding, histogram manipulation,
segmentation, mathematical morphology, color image processing, etc. It leverages
the extremely simple [[Scilab]] programming environment for prototyping complex computer
vision solutions.


'''Suggested Roadmap:'''
'''Objective:''' First, to add functionality to the Google FLOSS project
[http://www.leptonica.com Leptonica] and interface most of this C library with Scilab.
Second, to throroughly document this library. Google projects that will most
benefit from this effort include Google Book search and Google Image Search.
 
'''Suggested Roadmap:''' 1) Run leptonica and SIP; 2) make a contribution to
Leptonica (at least a simple bugfix), which will help the student get started;
3) write the necessary C infrastructure to interface Leptonica
image structures with Scilab matrices
4) interface a Leptonica functionality with Scilab and document it thoroghly
5) repeat 4, prioritizing functions that can only be found in Leptonica.
 
 
'''Repos:'''
 
svn checkout http://leptonica.googlecode.com/svn/trunk/ leptonica-read-only
git clone git://siptoolbox.git.sourceforge.net/gitroot/siptoolbox/animal
git clone git://siptoolbox.git.sourceforge.net/gitroot/siptoolbox/siptoolbox
 
'''Languages:''' C (strong), Scilab (familiarity)
 
'''Mentor(s):''' Ricardo Fabbri (rfabbri at gmail)
 
<br style="clear: both" />
 
== [[Scilab]] Interactive Visualization ==
 
[[Imagem:Scilab_logo.gif|200px|right|bottom|alt=Scilab]]
 
[[Scilab]] is a free rapid prototyping environment for numerical algorithm
development, similar to Octave, Matlab and (to some extent) Python. A powerful
interactive GUI is one of the main features that makes Scilab stand out from
Python and Octave in their current form. This is a central feature of scilab,
specially for large-scale data mining; the capability of interactively
exploring visual data to/from the scilab language is a fundamental part of
the process of prototyping a solution to a given problem.
 
'''Objective:''' This project aims to improve interactive data exploration and
editing features of Scilab graphics. In other words, the aim is to make plots
more interactive with data (clicking + deleting a curve, clicking + obtaining
data from a curve, etc).  Primary objectives include: to improve tooltip
functionality, to improve editing capabilities, and to improve selection of
plots and inspection of values into a scilab varialble, both in 2D and 3D.  This
basically means treating the scilab graphic window as a vector graphics, through
an editing interface, and then being able to get the data back in scilab.  Other
objectives include the use of OpenGL for speeding up the speed of (vector)
graphics rendering in general, but always focusing on interactive features
(dragging points from a plot curve and obtaining the corresponding data, etc)
 
 
'''Suggested Roadmap:''' 1) Compile scilab from source and understand the
graphics branch from Git; 2) See what has already been done, by carrying out
minor changes in the code and contributing bugfixes as a starter project
3) Code the visual selection of individual points and curves and 3D surfaces, and outputting curve properties into a
scilab variable.
4) Improve the inspection of individual curve/surface elements/points with a tooltip
5) Code the deletion of isolated points and curves from a plot
6) Code point and curve editing functionality: click and drag a point will
change its (x,y) data. Similar for curves and surfaces, but dragging each
individual sample points independently, or even Bezier-style functionality could be
added.
 
'''Repos:'''
 
git clone git://git.scilab.org/scilab
 
'''Languages/Skills:''' C/C++ (strong), Scilab (familiarity), Java (intermediate), OpenGL (intermediate)
 
'''Mentor(s):''' Ricardo Fabbri (rfabbri at gmail)
 
== [[Scilab]] Fast and Flexible Image (Raster) Display ==
[[Imagem:SIP-shot4.png|250px|right|bottom|alt=Scilab]]
 
[[Scilab]] is a free rapid prototyping environment for numerical algorithm
development, similar to Octave, Matlab and (to some extent) Python. A powerful
interactive GUI for displaying raster data (matrices, images, marked pixels,
etc) would be one of the main features that makes Scilab stand out from Python and
Octave in their current form. Interactive graphics is a central feature of
scilab, specially for developing new image processing algorithms; the capability
of interactively exploring raster visual data to/from the Scilab language is a
fundamental part of the process of prototyping and debugging a new algorithmic
solution to a given image analysis problem.
 
'''Objective:''' This project aims to improve interactive '''raster''' data exploration and
editing features of Scilab graphics. In other words, the aim is to make image
display more interactive with data (clicking + modifying a pixel, clicking + obtaining
associated data from a pixel, etc).  Primary objectives include: to improve tooltip
functionality, to improve display capabilities, and to improve selection of
pixels and inspection of their values and associated data into a scilab
varialble, both in 2D and 3D.  This basically means treating the scilab graphic
window as a buffer from a raster graphics editor (such as GIMP), through an editing interface, and then being able
to get the data back in scilab.  Other objectives include the use of OpenGL for
speeding up (raster) graphics rendering in general, but always
focusing on interactive features and flexible displays. Each pixel should be
efficiently displayed, not only with traditional OpenGL functionality such as pan and zooming,
but most importantly with the ability of having custom ''markers'' to overlay on
the pixels in a fast way. Many image processing algorithms require pixels to be
marked in order to be debugged or animated.
 
 
'''Suggested Roadmap:''' 1) Compile scilab from source and understand the
graphics branch from Git; 2) See what has already been done, by carrying out
minor changes in the code and contributing bugfixes as a starter project
3) Code the visual selection of individual pixels, and outputting pixel
properties (which can be a complex data structure) into a scilab variable.
4) Optimize the speed of the image display
4) Improve the inspection of individual pixels with a tooltip
5) Code the display of individual pixels with custom markers, in a fast way
using OpenGL.
6) Finalize a complete fast and flexible display for image/raster data in
Scilab. Incorporate it into a full-fledged fast <tt>imshow</tt> function in SIP,
the Scilab Image Processing toolbox.
 
'''Repos:'''
 
git clone git://git.scilab.org/scilab
git clone git://siptoolbox.git.sourceforge.net/gitroot/siptoolbox/siptoolbox
 
'''Languages/Skills:''' C/C++ (strong), Scilab (familiarity), Java (intermediate), OpenGL (intermediate)
 
'''Mentor(s):''' Ricardo Fabbri (rfabbri at gmail)
 
<br style="clear: both" />
 
== [http://wiki.nosdigitais.teia.org.br/GT-Web#.C3.81gora_Communs_.28atual_.C3.81gora_Delibera.29 Ágora Delibera] ==
[[Imagem:Agora2.png|right|bottom|alt=Ágora Delibera]]
 
Envisioning direct democracy, this simple deliberation algorithm has been used in different forms by collectives and in software. From a PHP or Django ''hacksware'' to state of art direct democracy as is Delibera, from [http://www.ethymos.com.br Ethymos], a LabMacambira.sf.net partner and co-worker. In fact it is in use by ONU in almost 90 countries for 'habitation rights'. There is also an interesting LabMacambira.sf.net REST version already being tested and an official release o Delibera, from Ethymos partnerts, envisioning this year's election for mayors and councillors. There is a nacional alliance dedicated to direct democracy
going on and writing the [http://pontaopad.me/cartademocraciadireta Open Democracy Letter] which encourage and support
the use of Agora Delibera's mechanisms and codes for representative mandates and public sphere.
 
 
'''Objectives:''' Enhance REST deliberation tool to acceptable standards of use for elected representatives. Explore
Ágora Communs; ''hacksware'' to implement and test deliberation modes. With permission to viewing and posting. Test and
implement email, SMS, etc interfaces to Ethymos' Delibera.
 
'''Suggested Roadmap:''' Study ágora delibera's [https://github.com/teiacasadecriacao/agora-communs/wiki simple mechanism for deliberation].
Get in touch with ongoing [http://wiki.nosdigitais.teia.org.br/GT-Web#.C3.81gora_Communs_.28atual_.C3.81gora_Delibera.29 team and code].
With current development team, choose core features to better apps. Work close with team in irc channel #labmacambira and
maybe try working with [[AA]] as methodology and documentation.


'''Repos:''' git clone https://github.com/daneoshiga/agoracommuns
'''Repos:''' git clone https://github.com/daneoshiga/agoracommuns


'''Mentor(s):''' Renato Fabbri <renato.fabbri@gmail.com>, Daniel Marostergan <daniel@teia.org.br>
'''Languages:''' Python, PHP (Ágora Communs 'hacksware'), Javascript (REST)
 
'''Mentor(s):''' João Paulo Mehl <jpmehl@ethymos.com.br>, Marco Antônio Konopacki <marco@ethymos.com.br>, Renato Fabbri <renato.fabbri@gmail.com>, Daniel Marostergan <daniel@teia.org.br>, Vilson Vieira <vilson@void.cc>
<br style="clear: both" />


== reacPad ==
== reacPad ==


We are planning to create a plugin to EtherPad that makes possible to run JavaScript (and maybe other languages) inside of EtherPads and to be programmable collaborative the same way EtherPad already does for common text.
We are planning to create a plugin to [http://etherpad.org EtherPad] that makes possible to run JavaScript (and maybe other languages) inside of EtherPads and to be programmable collaborative the same way EtherPad already does for common text.


Important to say that EtherPad is an interesting tool to civil society. With pads we are creating logs for reunions and documents of many kinds (take a look at our page [[Epads]]).
Important to say that EtherPad is an interesting tool to civil society. With pads we are creating logs for reunions and documents of many kinds (take a look at our page [[Epads]]). It is interesting to take a look at [http://worrydream.com/Tangle/ Bret Victor works on "reactive documents"]. It is a kind of documents we are interested to implement using pads.


== AHT ==
'''Objective:''': Create a plugin to [http://beta.etherpad.org EtherPad Lite] (the [[http://nodejs.org node.js]] port of EtherPad) to make possible to embed JavaScript scripts inside a pad.


Software para um instrumento que gera sons a partir de dobraduras flutuantes detectadas por webcam
'''Suggested Roadmap:''' 1) Study the EtherPad Lite architecture; 2) Be part of EtherPad Lite maillist and IRC channel and review the status of plugins development. As we know, today there is not a plugin system for EtherPad Lite, so there will be a task to create a first prototype of a plugin to the system; 3) Develop the plugin inside the plugin system to embed the scripts; 4)


== FIGGUS ==
'''Repos:''': The EtherPad Lite GIT repos is a good starting point https://github.com/Pita/etherpad-lite


== ABT ==
'''Languages:''' JavaScript (major), HTML5 and CSS3 (a plus)


Programa para execucao em tempo real e análise rítmica.  
'''Mentor(s):''' Vilson Vieira <vilson@void.cc>
 
== Deferred time Music with Minimum-fi and [[FIGGUS]] ==
 
<pre>'The increasing dominance of graphic interfaces for music software obscured
the continuing presence of the command-line tradition,
the code writer, the hacker. The code writing of deferred time
computer programming may be assembled out of time order, debugged and optimized.'
 
--- Simon Emmerson, Living electronic music, 2007</pre>
 
 
 
'''Languages:''' Pure Python or with numerical libraries like numpy, pylab and audiolab
 
'''Mentors:''' Renato Fabbri < renato.fabbri AT GmAil DOT cc > and Vilson Vieira < vilson AT void DOT cc >
 
'''Objective:''' student proposal
 
'''Roadmap:''' open for student creativity
 
'''Core Repos:'''
 
''' 1) ''' With minimum resources to synthesize musical structures, ''Minimum-fi'' is a single python file -
in [http://paste.org/45689 pure python] or [http://labmacambira.git.sourceforge.net/git/gitweb.cgi?p=labmacambira/audioArt;a=blob_plain;f=minimum-fi/minimum-fi-numpy-audiolab.py;hb=HEAD using numpy and audiolab] -
doing a sample by sample sythesis with resulting notes and tibres in music:
git clone git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/audioArt/minimum-fi
 
''' 2) ''' Mathematical structures derived form permutations and algebraic groups is the core of music composing with
''[[FIGGUS]]''' interesting and condensed structures. Make an EP with one command:
git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/FIGGUS
 
 
 
<br style="clear: both" />
 
== Livecoding ==
 
=== ABT (A Beat Tracker) ===
 
                    __                                        __
                    |--|                                      |--|
        .._      o' o'                    (())))    _    o' o'
        //\\\    |  __                      )) _ _))  ,' ; |  __ 
      ((-.-\)  o' |--|  ,;::::;.          (C    )  / /^ o' |--| `
      _))'='(\-.  o' o' ,:;;;;;::.        )\  -'( / /    o' o'                                  (((((..,
    (          \      :' o o `::      ,-)()  /_.')/                .                            \_  _ )))  '
    | | .)(. |\ \      (  (_    )      /  (  `'  /\_)    .:izf:,_  .  |                __            L    ) 
    | | _  _| \ \    :| ,==. |:    /  ,  _  / 1  \ .:q568Glip-, \ |              |--|        ` ( .  ) \
    \ \/ '-' (__\_\____::\`--'/::    /  /  / \/ /|\  \-38'^"^`8k='  \L,            o' o'          `www'  \
      \__\\[][]____(_\_|::,`--',::  /  /  /__/ <(  \  \8) o o 18-'_ ( /                          / \      |
      :\o*.-.(    '-,':  _    :`.|  L----' _)/ ))-..__)(  J  498:- /]        __________        / /  | |  |___
      :  [  \    |    |=|  '  |\_____|,/.' //.  -38, 7~ P88;-'/ /        \        \      ( /  ( /  @ /  .\
      :  | \  \    |  |  |_|  |  |    ||  :: (( :  :  ,`""'`-._,' /          \  A B T  \    ///  ///  __/ /___)
      :  |  \  \  ;  |  |    |  |    \ \_::_)) |  :  ,    ,_    /            \        \__________  <___).
      :( |  /  )) /  /|  |    |  |    |    [    |  \_\      _;--==--._        \_________\---------'  `
    MJP:  |  /  /  /  / |  |    |  |    |    Y    |CJR (_\____:_        _:
      :  | /  / _/  /  \  |lf  |  |  CJ|mk  |    | ,--==--.  |_`--==--'_|
                                                        "  `--==--' 
 
ABeatTracker is a music software for real time execution of specialized macros
that play rythmic patterns with samples. Its internal module ABeatDetector (ABD),
is a rythmic analiser oriented towards indicating periodicities (symmetryc overal duration cells) in a
tapped in rythm. Its porpuse is to indicate musical cells and successions
that can be used immediatelly in ABT, making it possible to really
play live indicating structures that makes sense and develops what your
partner or base is playing.
 
'''Objectives:''' open for student proposal. Would be really good if ABD and ABT where finaly conected and
ABT could then use ABD's rythmic analysis. Also, ABT could have a Vi or Emacs interface
for live performance with approppriate shortcuts and abbreviations for musical code
execussion.
 
'''Roadmap:''' while open for student creativity, musical execution of the code
will reveal hacks that creates interesting musical structures. In a way or another,
it would be good so recover or redesign ABD's code (it has been schatched or broken) and
its communication with ABT.
 
Also, creating 'presets' and abreviations in Vi or Emacs
will provide lots of sound banks and 'musical set' examples. This ideally leads to further
development of livecoding interfaces in Emacs and Vi.
 
'''Languages:''' Python and ChucK comunicating via OSC mainly, vi and Emacs scripting too
 
'''Mentors:''' Renato Fabbri < renato.fabbri AT GmAil DOT cc > and Vilson Vieira < vilson AT void DOT cc >
 
'''Core Repos:'''
 
'''1)''' ABeatTracker:
    git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/abt
 
'''2)''' Vi and Emacs example scripts for livecoding (and actually used in a live performance for more than 4k persons):
    git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/audioArt/livecoding
    https://gist.github.com/1379142
    http://hera.ethymos.com.br:1080/reacpad/p/livecoding-virus
 
=== Vivace or Livecoding for Web ===
                                         
                                  ()
                              () |                              _            .      _
                        _      |  |                              u            @88>    u
                      |      |.'                              88Nu.  u.    %8P    88Nu.  u.
                      |      '                              '88888.o888c    .    '88888.o888c      u          .        .u
          __          ()  \                                    ^8888  8888  .@88u  ^8888  8888    us888u.  .udR88N    ud8888.
        ('__`>          .  \  | /                              8888  8888 '`888E`  8888  8888 .@88 "8888" <888'888k :888'8888.
        // -(        ,  `. \ |                                8888  8888  888E    8888  8888 9888  9888  9888 'Y"  d888 '88%"
        /:_ /        /  ___________                            8888  8888  888E    8888  8888 9888  9888  9888      8888.+"
      / /_;\      /____\__________)____________              .8888b.888P  888E  .8888b.888P 9888  9888  9888      8888L
      **/ ) \\,-_  /                      \\  \ `.              ^Y8888*""    888&    ^Y8888*""  9888  9888  ?8888u../ '8888c. .+
        | |  \\(\\J                        \\  \  |=-.            `Y"        R888"    `Y"      "888*""888"  "8888P'  "88888%
        |  \_J,)|~                        \\  \  ;  |                        ""                ^Y"  ^Y'    "P'      "YP'
        \._/' `|_______________,------------+-+-'  `--.  .--.          ________     
          `.___.  \    ||| /                | |        |  \ /          \    __  \
        |_..__.'. \    |||/                | |        `---\'            \  \__\  \         
          ||  || \_\__ |||                  `.|              `---.        \        \________
          ||  ||  \_-'=|||                  ||                  `---------=\________\-------'
      -----++--++-------++--------------------++--------Ool
 
[http://toplap.org Livecoding] is an alternative way to compose and interpret music in real-time. The performer/composer plays on a laptop and shows your screen to the public, making them part of the performance and even understanding what the musician is really doing to generate that weird sounds. Livecoders commonly use general domain languages or creates their own computer music languages. Vivace is an attempt to create a Livecoding language that runs in the Open Web using the new [https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html Web Audio] and [https://wiki.mozilla.org/Audio_Data_API Audio Data] APIs.
 
'''Objective:''' Continue to add features to Vivace, a Livecoding language that runs on Web browsers.
 
'''Suggested Roadmap:''' 1) Understand the architecture of Vivace and [http://github.com/oampo/Audiolet Audiolet] (the awesome JavaScript Audio lib created by Joe Turner); 2) Understand features specified at TODO and present at other languages like [http://www.ixi-audio.net/content/software.html ixi lang] and ABT/ABD; 3) Implement the features; 4) Screencast performances using Vivace, maybe public ones.
 
'''Repos:''' git clone git://github.com/automata/vivace.git
 
'''Languages:''' JavaScript, HTML5 and CSS3
 
'''Mentor(s):''' Vilson Vieira <vilson@void.cc>
 
== IRC Bots as Social Channels ==
[[Imagem:Lalenia.png|right|bottom|alt=Macambot]]
                                  o
        (\____/)                  \____/\             
          (_oo_)                  [_Oo_] o  ---.        < Hello, how can We help you? >
            (O)                      \/      ,  `---.___ /
          __||__    \)            __||__    \)         
      []/______\[] /          []/______\[] /     
      / \______/ \/            / \______/ \/     
      /    /__\                /    /__\     
    (\  /____\                    ()
 
IRC bots are social technology by nature. Autonomous software agents that can talk directly with people are powerful tools to understand their needs. We visualize IRC as a direct channel to communicate with people. Macambot, Lalenia and coBots are Supybots, Python IRC robots we want to continuously develop as agents that can collect software features proposed by the people and interact with them.
 
'''Objective:''' Continue the deveopment of the Supybots Macambot, Lalenia and coBots.
 
'''Suggested Roadmap:''' 1) Understand Supybot and its plugins; 2) Develop a test plugin to interact with people collecting their suggestions as software features; 3) Study Python NLTK (Natural Language Toolkit); 4) Improve the plugin with natural language processing, to talk with people "as a human"; 5) Create a Trac plugin to add bug and features entries based on the IRC bots data base of conversation with people that use #labmacambira at irc.freenode.net and/or other channels and IRC servers
 
'''Repos:''' git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/macambots
 
'''Languages:''' Python. Its important to love IRC.
 
'''Mentor(s):''' Renato Fabbri <renato.fabbri@gmail.com>
 
== Permanent Conference ==
[[Imagem:Conf-perm2.png|right|bottom|alt=Per]]
 
Every year in Brazil we have the Conference for Defense of Children Rights along all the country. This
are ephemeral reunions, that can benefit alot from a good platform for permanent discussion.
 
What happens when the conference end? Where the ideas discussed at the conference goes and whats happening about it? Permanent Conference is a Web application to collect knowledge generated on these conferences and to make sure they will be available to all the people.
 
'''Objective:''' Continue the implementation of the Django application Permanent Conference
 
'''Suggested Roadmap:''' 1) Read the code already written for the application. It was written in Django, so it is good to have a minor knowledge about that; 2) Understand the [ missed features] and bugs around. Trac is a good point to start; 3) Implement the features; 4) Test with people from Pontos de Cultura from Brazil.
 
'''Repos:'''
 
'''1)''' hackish crude php: git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/cope_php


Reforçar ABT + ABD.
'''2)''' barelly real pinax (django) version: git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/confperm


== Macambot ==
'''Test version:''' A test version is running at http://hera.ethymos.com.br:1080/confperm


Citar Lalenia e coBots.
'''Languages:''' Python (Django), JavaScript, HTML5 and CSS3


== Conferência Permanente ==
'''Mentor(s):''' Renato Fabbri <renato.fabbri@gmail.com>, Vilson Vieira, Fabricio Zuardi < fabricio@fabricio.org >


Plataforma para as Conferência de Defesa dos Direitos das Crianças e dos Adolescentes
<br style="clear: both" />


== SOS ==
== SOS ==
[[Imagem:Sos2.png|right|bottom|alt=SOS]]
"Saúde Olha Sabedoria" (or Health, Look! Knowledge) is a Web application to collect popular tips around human health. People can also learn how to use popular knowledge to cure their deceases. We believe that softwares like SOS are an interesting way to preserve the culture of a nation and spread it to the others.
'''Objective:''' Fix some bugs on SOS and extend the concept to other areas, creating a knowledge base around popular culture
'''Suggested Roadmap:''' 1) Understand SOS architecture. It was written in Python using Django, so it is important to have a minor knowledge of these technologies; 2) Look at our Trac for bugs related in SOS and fix them; 3) Look for new features. The Trac is again a good start; 4) Extend the SOS to allow the insertion of other kinds of knowledge, not just related with health; 4) Test the platform with people of Pontos de Cultura and collect their feedback
'''Repos:''' git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/sos


Sistema dedicado à coleta e difusão de conhecimentos populares e indígenas sobre saúde.  
'''Test Version:''' A test version is running at http://hera.ethymos.com.br:1080/sos/


== Translation of our FLOSS tutorials to newcomers ==
'''Languages:''' Python (Django), JavaScript, HTML5 and CSS3


Comming soon.
'''Mentor(s):''' Renato Fabbri <renato.fabbri@gmail.com>


<br style="clear: both" />


== More to come ==
== More to come ==


Take a look at our creations at: http://wiki.nosdigitais.teia.org.br/Lab_Macambira#Software_Livre_Criado_pela_Equipe_Lab_Macambira
Take a look at our remaining creations at: http://wiki.nosdigitais.teia.org.br/Lab_Macambira#Software_Livre_Criado_pela_Equipe_Lab_Macambira


[[Category:Lab_Macambira]]
[[Category:Lab_Macambira]]
== Application Template ==
(brief description goes here)
'''Objective:''' (describe the purpose of this task here)
'''Suggested Roadmap:''' (describe a possible path to accomplish the objective here)
'''Repos:''' (list the main repositories for the project here)
'''Languages:''' (list the main programming languages and the required skill level)
'''Mentor(s):''' (indicate mentor names and email here)
=Mentors=
* [http://fabricio.org Fabricio Zuardi]. Specialty: music and web.
* [http://estudiolivre.org/el-user.php?view_user=gk Renato Fabbri]. Specialty: music, audio and web. Social technologies for welfare.
* [http://www.lems.brown.edu/~rfabbri Ricardo Fabbri]. Specialty: image and video.
* [http://automata.cc Vilson Vieira]. Specialty: audio and web. Tools for computational creativity.
* Daniel Marostegan e Carneiro. Specialty: social, citizen rights, and architecture apps.

Edição atual tal como às 15h28min de 28 de março de 2013

[for GSocC 2013 - click here]

UPDATE (2013):

A total of 11 participants in GSoC 2012 were directly related to LabMacambira. This was achieved by mentoring together with (other) GSoC 2012 orgs such as e-cidadania and Scilab. Members of [1] also took part as students, for Mozilla and the mentioned orgs. This participation focused in projects related to AA, digital deliberation methods, Scilab and Mozilla[2].

Here is the list of the mentors/students of LabMacambira.sf.net and their respective projects:

LabMacambira.sf.net was not selected as a GSoC 2012 organization. However, we are very proud and thankful for all the vouchers and recommendation letters written for us (and forwarded to Google) during the summer of 2012. These letters are listed in the following section.

Vouchers and Recommendations

There are some honorable documents written to Google itself, as recommendations and vouchers of our work. First of all, there is a letter from Célio Turino[1], idealizer of 'pontos de cultura', a Brazilian federal program that reaches 8,4 million people (5% of Brazilian population). It is a formal gift from him to LabMacambira and a homage to Cleodon Silva (1949 - 2011), who inspired LabMacambira.sf.net. There is also a formal document from the National Commission that gathers almost 4000 'pontos de cultura' telling a little bit more about LabMacambira.sf.net's importance for Cultura Viva[2]. The third letter came from Ethymos, a partner enterprise (LabMacambira.sf.net is not an enterprise) that joins LabMacambira.sf.net in a direct democracy and free medias protagonist network in Brazil. The fourth letter came from Puraqué, a collective based in Santarém, in the Amazonian region [4]. Worth noticing that both Amazonian Free Software Forum (FASOL) and Amazonian Forum of Digital Culture are in the third edition, and the text might suggest otherwise.


[1] Letter to Google from National Commission of the Pontos de Cultura: translation is a courtesy by Ricardo Ruiz

[2] Letter and Poem to Google from Célio Turino, translation is a courtesy by Rafael Reinehr.

[3] Letter to Google from Ethymos, a direct democracy partner.

[4] Letter to Google from Coletivo Puraqué, an FLOSS activism co-worker from the Amazonian regions.

[5] Honorary: Letter to Google from Casa de Cultura Tainã and the Mocambos Network, representative of the African Culture and of African-descendant communities in Brazil. Take a quick look at its various websites for abundant information.

[6] Letter to Google from Digital Culture Forum, one of Brazilians most important events on the use of technology as a cultural trace.

[7] Letter to Google from Teia Casa de Criação, present in LabMacambira.sf.net since its beginnings as a unified group, dealing with institutional background for various articulations and developments. Translation is a courtesy by Ricardo Fabbri.

[8] Letter to Google from Pontão da Eco, an upholder of Digital Culture based in Rio de Janeiro, maintains pontaopad.me and other key services as well.

This page lists all the projects with associated mentors. Our mentors are very approachable and include world-class experts in web, audio, and video software technology. Take a look at our filled out menthorship application for GSoC2012 for more information on LabMacambira.sf.net - this application will make it to the 2013 GSoC only, but for 2012 we are participating as mentors and students in other orgs (such as Scilab and Mozilla). We can also arrange for alternative funds for interested students.

Ideas page follows below.

Information for potential students

You may choose from the following list, but feel free to submit a proposal for your own idea!

You can also discuss your ideas in #labmacambira channel on IRC network irc.freenode.net

Our bugtracker is a good starting point to be inspired about new ideas, please take a look!

Project Ideas

The mentorings named below for each idea corresponds to individual affinities for the trend. In practice, Fabricio Zuardi, Renato Fabbri, Ricardo Fabbri, Vilson Vieira and Daniel Marostegan will be mentoring together. See also the Mentors section.


AA (client)

AA Console Client

AA is a social system for coordinating distributed teamwork where each participant stays logged for at least 2 hours a day, publicly microblogging their development activities related to assigned tickets (self-assigned or team-assigned). At the end of each daly session, a video log is recorded and uploaded to a public video channel, the text log is also published on the Web and is peer-validated for quality. The AA system and its underlying software engineering methodology enables self-funding for distributed collectives of developers working on FLOSS projects.

Objective: AA is a distributed system following a client-server architecture. Each AA client is a Python application in textual or GTK+ form that communicates with the AA server, the web instance. Through the client each developer can send messages and log his activities. Currently, AA client is a simple program written to run in Linux. Being a software that aims to be used by everyone it would be important to be multiplatform (perhaps as a web client) and to have additional functionalities such as better Trac and Git log integration, RSS/Google+ developer feeds, and automatic videolog watermarking. A student working on AA could work on these features for the program.

AA GTK2 Frontend

Suggested Roadmap: 1) Understand the AA architecture; 2) Use AA in its current form to understand, as a developer working in a collaborative group, what features are most needed. These features could be implemented during the summer or documented for a future developers; 3) Research about how to make AA multiplatform - we are planning to make a Web client; 4) Implement the features on the TODO of the project and some of the features listed by yourself if possible. 5) write a paper about the AA methodology and experiences with the implemented system.

Repos: git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/aa

Languages: Python, Javascript, Shell script

Mentor(s): Renato Fabbri <renato.fabbri@gmail.com>

pAAinel (AA server)

AA

AA is a distributed system for coordinating decentralized teamwork, as described above. We need to develop the server side of AA, which already includes an aggregator of logs, and a master aggregator of all the team information in a dashboard which is similar to iGoogle: pAAinel. Currently, pAAinel merely displays information about logs registered by the AA server, together with complementary information, like a recent irc log, tickets and last screencasts and code commits.

Objective: We desire to rewrite the AA microblog server (actually written in PHP) as a module inside pAAinel, a Django application.

Suggested Roadmap: 1) Understand the current AA architecture; 2) Read both pAAinel (made in Django) and AA server (in PHP) code and associated documentation, planning how to rewrite AA server as a module inside pAAinel; 3) To develop and test the new pAAinel together with members of LabMacambira; 4) Continuouslly document the process.

Repos:

git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/paainel 
git clone git@gitorious.org:macambira_aa/macambira_aa.git 

Languages: Python, PHP, Javascript

Mentor(s): Vilson Vieira <vilson@void.cc>

AirHackTable

AHT

The AirHackTable is an art project - an interactive music instrument based on advanced computer vision algorithms that track flying origamis, associating their trajectories, color, and shape to different musical properties. The recycled coolers inside a cardboard table (itself an origami) generates a layer of air on top of which colored origamis float around and make track patterns depending on their geometry. A set of webcams on top then captures those patterns through our own color detection and 3D reconstruction algorithms, and then generate and modulate sounds based on the trajectory, color, and shape of the origamis. Many are the technological spinoffs of this project, most of which were accepted officially into well-established software such as the Pd/Gem real time multimedia programming system and Scilab.


Objective: The AHT project is an opportunity to develop and spread cutting-edge technology in a playful manner, which may seem otherwise too hard/unapproachable. We plan to improve geometric recognition to be used for generating sounds for modulating voices that are in agreement with the geometry of the origami. The goal, then, is to implement algorithms for 3D edge/curve reconstuction from the mentor's research, in order to recover the origami's edges in 3D, thus recovering the true geometry of the origami. Other techniques such as 2D recognition of origami silhouettes should also be developed. This playful project is expected to generate technological spinoffs which will be incorporated into other well-established FLOSS projects such as Pd, Scilab, OpenCV, and VXL. Some of the Google projects that can benefit from the underlying machine vision technology include Google Streetview, Google Book scanning, Google Image Search, and Youtube.

Suggested Roadmap: 1) compile and run the current system after downloading the large set of repositories and watching our screencasts; 2) brush up on the background: Pd, C++, and Computer Vision, by talking to the mentors and watching our screencasts; 3) get the 3D reconstruction system up and running isolatedly 4) optimize the system to run in real time 5) incorporate the 3D reconstruction system into the AHT system; 6) write up documentation and papers on the core technologies.

Repos:

git clone git://github.com/rfabbri/pd-macambira.git
git clone git://github.com/rfabbri/Gem.git gem.git
git clone git://github.com/wakku/Hacktable.git hacktable
git clone git@github.com:rfabbri/pd-macambira-utils.git
git clone https://github.com/gilsonbeck/beck-repo.git
Google Origami Doodle

Languages: C++ (strong), Pd (intermediate), Scilab (familiarity)

Mentor(s): Ricardo Fabbri (rfabbri at gmail), Renato Fabbri (renato.fabbri att ggmaill)


SIP + Scilab

SIP toolbox
Leptonica Image Processing Library from Google

SIP stands for Scilab Image Processing toolbox. SIP performs imaging tasks such as filtering, blurring, edge detection, thresholding, histogram manipulation, segmentation, mathematical morphology, color image processing, etc. It leverages the extremely simple Scilab programming environment for prototyping complex computer vision solutions.

Objective: First, to add functionality to the Google FLOSS project Leptonica and interface most of this C library with Scilab. Second, to throroughly document this library. Google projects that will most benefit from this effort include Google Book search and Google Image Search.

Suggested Roadmap: 1) Run leptonica and SIP; 2) make a contribution to Leptonica (at least a simple bugfix), which will help the student get started; 3) write the necessary C infrastructure to interface Leptonica image structures with Scilab matrices 4) interface a Leptonica functionality with Scilab and document it thoroghly 5) repeat 4, prioritizing functions that can only be found in Leptonica.


Repos:

svn checkout http://leptonica.googlecode.com/svn/trunk/ leptonica-read-only
git clone git://siptoolbox.git.sourceforge.net/gitroot/siptoolbox/animal 
git clone git://siptoolbox.git.sourceforge.net/gitroot/siptoolbox/siptoolbox

Languages: C (strong), Scilab (familiarity)

Mentor(s): Ricardo Fabbri (rfabbri at gmail)


Scilab Interactive Visualization

Scilab

Scilab is a free rapid prototyping environment for numerical algorithm development, similar to Octave, Matlab and (to some extent) Python. A powerful interactive GUI is one of the main features that makes Scilab stand out from Python and Octave in their current form. This is a central feature of scilab, specially for large-scale data mining; the capability of interactively exploring visual data to/from the scilab language is a fundamental part of the process of prototyping a solution to a given problem.

Objective: This project aims to improve interactive data exploration and editing features of Scilab graphics. In other words, the aim is to make plots more interactive with data (clicking + deleting a curve, clicking + obtaining data from a curve, etc). Primary objectives include: to improve tooltip functionality, to improve editing capabilities, and to improve selection of plots and inspection of values into a scilab varialble, both in 2D and 3D. This basically means treating the scilab graphic window as a vector graphics, through an editing interface, and then being able to get the data back in scilab. Other objectives include the use of OpenGL for speeding up the speed of (vector) graphics rendering in general, but always focusing on interactive features (dragging points from a plot curve and obtaining the corresponding data, etc)


Suggested Roadmap: 1) Compile scilab from source and understand the graphics branch from Git; 2) See what has already been done, by carrying out minor changes in the code and contributing bugfixes as a starter project 3) Code the visual selection of individual points and curves and 3D surfaces, and outputting curve properties into a scilab variable. 4) Improve the inspection of individual curve/surface elements/points with a tooltip 5) Code the deletion of isolated points and curves from a plot 6) Code point and curve editing functionality: click and drag a point will change its (x,y) data. Similar for curves and surfaces, but dragging each individual sample points independently, or even Bezier-style functionality could be added.

Repos:

git clone git://git.scilab.org/scilab

Languages/Skills: C/C++ (strong), Scilab (familiarity), Java (intermediate), OpenGL (intermediate)

Mentor(s): Ricardo Fabbri (rfabbri at gmail)

Scilab Fast and Flexible Image (Raster) Display

Scilab

Scilab is a free rapid prototyping environment for numerical algorithm development, similar to Octave, Matlab and (to some extent) Python. A powerful interactive GUI for displaying raster data (matrices, images, marked pixels, etc) would be one of the main features that makes Scilab stand out from Python and Octave in their current form. Interactive graphics is a central feature of scilab, specially for developing new image processing algorithms; the capability of interactively exploring raster visual data to/from the Scilab language is a fundamental part of the process of prototyping and debugging a new algorithmic solution to a given image analysis problem.

Objective: This project aims to improve interactive raster data exploration and editing features of Scilab graphics. In other words, the aim is to make image display more interactive with data (clicking + modifying a pixel, clicking + obtaining associated data from a pixel, etc). Primary objectives include: to improve tooltip functionality, to improve display capabilities, and to improve selection of pixels and inspection of their values and associated data into a scilab varialble, both in 2D and 3D. This basically means treating the scilab graphic window as a buffer from a raster graphics editor (such as GIMP), through an editing interface, and then being able to get the data back in scilab. Other objectives include the use of OpenGL for speeding up (raster) graphics rendering in general, but always focusing on interactive features and flexible displays. Each pixel should be efficiently displayed, not only with traditional OpenGL functionality such as pan and zooming, but most importantly with the ability of having custom markers to overlay on the pixels in a fast way. Many image processing algorithms require pixels to be marked in order to be debugged or animated.


Suggested Roadmap: 1) Compile scilab from source and understand the graphics branch from Git; 2) See what has already been done, by carrying out minor changes in the code and contributing bugfixes as a starter project 3) Code the visual selection of individual pixels, and outputting pixel properties (which can be a complex data structure) into a scilab variable. 4) Optimize the speed of the image display 4) Improve the inspection of individual pixels with a tooltip 5) Code the display of individual pixels with custom markers, in a fast way using OpenGL. 6) Finalize a complete fast and flexible display for image/raster data in Scilab. Incorporate it into a full-fledged fast imshow function in SIP, the Scilab Image Processing toolbox.

Repos:

git clone git://git.scilab.org/scilab
git clone git://siptoolbox.git.sourceforge.net/gitroot/siptoolbox/siptoolbox

Languages/Skills: C/C++ (strong), Scilab (familiarity), Java (intermediate), OpenGL (intermediate)

Mentor(s): Ricardo Fabbri (rfabbri at gmail)


Ágora Delibera

Ágora Delibera

Envisioning direct democracy, this simple deliberation algorithm has been used in different forms by collectives and in software. From a PHP or Django hacksware to state of art direct democracy as is Delibera, from Ethymos, a LabMacambira.sf.net partner and co-worker. In fact it is in use by ONU in almost 90 countries for 'habitation rights'. There is also an interesting LabMacambira.sf.net REST version already being tested and an official release o Delibera, from Ethymos partnerts, envisioning this year's election for mayors and councillors. There is a nacional alliance dedicated to direct democracy going on and writing the Open Democracy Letter which encourage and support the use of Agora Delibera's mechanisms and codes for representative mandates and public sphere.


Objectives: Enhance REST deliberation tool to acceptable standards of use for elected representatives. Explore Ágora Communs; hacksware to implement and test deliberation modes. With permission to viewing and posting. Test and implement email, SMS, etc interfaces to Ethymos' Delibera.

Suggested Roadmap: Study ágora delibera's simple mechanism for deliberation. Get in touch with ongoing team and code. With current development team, choose core features to better apps. Work close with team in irc channel #labmacambira and maybe try working with AA as methodology and documentation.

Repos: git clone https://github.com/daneoshiga/agoracommuns

Languages: Python, PHP (Ágora Communs 'hacksware'), Javascript (REST)

Mentor(s): João Paulo Mehl <jpmehl@ethymos.com.br>, Marco Antônio Konopacki <marco@ethymos.com.br>, Renato Fabbri <renato.fabbri@gmail.com>, Daniel Marostergan <daniel@teia.org.br>, Vilson Vieira <vilson@void.cc>

reacPad

We are planning to create a plugin to EtherPad that makes possible to run JavaScript (and maybe other languages) inside of EtherPads and to be programmable collaborative the same way EtherPad already does for common text.

Important to say that EtherPad is an interesting tool to civil society. With pads we are creating logs for reunions and documents of many kinds (take a look at our page Epads). It is interesting to take a look at Bret Victor works on "reactive documents". It is a kind of documents we are interested to implement using pads.

Objective:: Create a plugin to EtherPad Lite (the [node.js] port of EtherPad) to make possible to embed JavaScript scripts inside a pad.

Suggested Roadmap: 1) Study the EtherPad Lite architecture; 2) Be part of EtherPad Lite maillist and IRC channel and review the status of plugins development. As we know, today there is not a plugin system for EtherPad Lite, so there will be a task to create a first prototype of a plugin to the system; 3) Develop the plugin inside the plugin system to embed the scripts; 4)

Repos:: The EtherPad Lite GIT repos is a good starting point https://github.com/Pita/etherpad-lite

Languages: JavaScript (major), HTML5 and CSS3 (a plus)

Mentor(s): Vilson Vieira <vilson@void.cc>

Deferred time Music with Minimum-fi and FIGGUS

'The increasing dominance of graphic interfaces for music software obscured 
the continuing presence of the command-line tradition, 
the code writer, the hacker. The code writing of deferred time 
computer programming may be assembled out of time order, debugged and optimized.'

--- Simon Emmerson, Living electronic music, 2007


Languages: Pure Python or with numerical libraries like numpy, pylab and audiolab

Mentors: Renato Fabbri < renato.fabbri AT GmAil DOT cc > and Vilson Vieira < vilson AT void DOT cc >

Objective: student proposal

Roadmap: open for student creativity

Core Repos:

1) With minimum resources to synthesize musical structures, Minimum-fi is a single python file - in pure python or using numpy and audiolab - doing a sample by sample sythesis with resulting notes and tibres in music: git clone git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/audioArt/minimum-fi

2) Mathematical structures derived form permutations and algebraic groups is the core of music composing with FIGGUS' interesting and condensed structures. Make an EP with one command: git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/FIGGUS



Livecoding

ABT (A Beat Tracker)

                    __                                        __ 
                   |--|                                      |--|
        .._       o' o'                     (())))     _    o' o'
       //\\\    |  __                      )) _ _))  ,' ; |  __  
      ((-.-\)  o' |--|  ,;::::;.          (C    )   / /^ o' |--| `
     _))'='(\-.  o' o' ,:;;;;;::.         )\   -'( / /     o' o'                                   (((((..,
    (          \       :' o o `::       ,-)()  /_.')/                 .                            \_  _ )))  '
    | | .)(. |\ \      (  (_    )      /  (  `'  /\_)    .:izf:,_  .  |                __            L    )  
    | | _   _| \ \     :| ,==. |:     /  ,   _  / 1  \ .:q568Glip-, \ |               |--|        ` ( .  ) \
    \ \/ '-' (__\_\____::\`--'/::    /  /   / \/ /|\  \-38'^"^`8k='  \L,             o' o'          `www'   \
     \__\\[][]____(_\_|::,`--',::   /  /   /__/ <(  \  \8) o o 18-'_ ( /                           / \       | 
      :\o*.-.(     '-,':   _    :`.|  L----' _)/ ))-..__)(  J  498:- /]        __________         / /  | |   |___
      :   [   \     |     |=|   '  |\_____|,/.' //.   -38, 7~ P88;-'/ /        \         \       ( /  ( /  @ /  .\
      :  | \   \    |  |  |_|   |  |    ||  :: (( :   :  ,`""'`-._,' /          \  A B T  \    ///   ///  __/ /___) 
     :  |  \   \   ;  |   |    |  |    \ \_::_)) |  :  ,     ,_    /             \         \__________   <___). 
      :( |   /  )) /  /|   |    |  |    |    [    |   \_\      _;--==--._         \_________\---------'   `
   MJP:  |  /  /  /  / |   |    |  |    |    Y    |CJR (_\____:_        _:
      :  | /  / _/  /  \   |lf  |  |  CJ|mk  |    | ,--==--.  |_`--==--'_|
                                                        "   `--==--'  

ABeatTracker is a music software for real time execution of specialized macros that play rythmic patterns with samples. Its internal module ABeatDetector (ABD), is a rythmic analiser oriented towards indicating periodicities (symmetryc overal duration cells) in a tapped in rythm. Its porpuse is to indicate musical cells and successions that can be used immediatelly in ABT, making it possible to really play live indicating structures that makes sense and develops what your partner or base is playing.

Objectives: open for student proposal. Would be really good if ABD and ABT where finaly conected and ABT could then use ABD's rythmic analysis. Also, ABT could have a Vi or Emacs interface for live performance with approppriate shortcuts and abbreviations for musical code execussion.

Roadmap: while open for student creativity, musical execution of the code will reveal hacks that creates interesting musical structures. In a way or another, it would be good so recover or redesign ABD's code (it has been schatched or broken) and its communication with ABT.

Also, creating 'presets' and abreviations in Vi or Emacs will provide lots of sound banks and 'musical set' examples. This ideally leads to further development of livecoding interfaces in Emacs and Vi.

Languages: Python and ChucK comunicating via OSC mainly, vi and Emacs scripting too

Mentors: Renato Fabbri < renato.fabbri AT GmAil DOT cc > and Vilson Vieira < vilson AT void DOT cc >

Core Repos:

1) ABeatTracker:

   git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/abt

2) Vi and Emacs example scripts for livecoding (and actually used in a live performance for more than 4k persons):

   git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/audioArt/livecoding
   https://gist.github.com/1379142
   http://hera.ethymos.com.br:1080/reacpad/p/livecoding-virus

Vivace or Livecoding for Web

                                 ()
                              () |                               _            .       _
                       _      |  |                              u            @88>    u
                      |       |.'                              88Nu.   u.    %8P    88Nu.   u.
                      |       '                               '88888.o888c    .    '88888.o888c       u           .        .u
         __          ()   \                                    ^8888  8888  .@88u   ^8888  8888    us888u.   .udR88N    ud8888.
       ('__`>           .  \  | /                               8888  8888 '`888E`   8888  8888 .@88 "8888" <888'888k :888'8888.
       // -(         ,   `. \ |                                 8888  8888   888E    8888  8888 9888  9888  9888 'Y"  d888 '88%"
       /:_ /        /   ___________                             8888  8888   888E    8888  8888 9888  9888  9888      8888.+"
      / /_;\       /____\__________)____________               .8888b.888P   888E   .8888b.888P 9888  9888  9888      8888L 
     **/ ) \\,-_  /                       \\  \ `.              ^Y8888*""    888&    ^Y8888*""  9888  9888  ?8888u../ '8888c. .+
       | |  \\(\\J                        \\  \  |=-.             `Y"        R888"     `Y"      "888*""888"  "8888P'   "88888%
       |  \_J,)|~                         \\  \  ;  |                         ""                 ^Y"   ^Y'     "P'       "YP'
        \._/' `|_______________,------------+-+-'   `--.   .--.           ________       
         `.___.  \     ||| /                | |        |   \ /           \    __  \
        |_..__.'. \    |||/                 | |         `---\'            \  \__\  \          
          ||  || \_\__ |||                  `.|              `---.         \        \________
          ||  ||  \_-'=|||                   ||                  `---------=\________\-------'
     -----++--++-------++--------------------++--------Ool

Livecoding is an alternative way to compose and interpret music in real-time. The performer/composer plays on a laptop and shows your screen to the public, making them part of the performance and even understanding what the musician is really doing to generate that weird sounds. Livecoders commonly use general domain languages or creates their own computer music languages. Vivace is an attempt to create a Livecoding language that runs in the Open Web using the new Web Audio and Audio Data APIs.

Objective: Continue to add features to Vivace, a Livecoding language that runs on Web browsers.

Suggested Roadmap: 1) Understand the architecture of Vivace and Audiolet (the awesome JavaScript Audio lib created by Joe Turner); 2) Understand features specified at TODO and present at other languages like ixi lang and ABT/ABD; 3) Implement the features; 4) Screencast performances using Vivace, maybe public ones.

Repos: git clone git://github.com/automata/vivace.git

Languages: JavaScript, HTML5 and CSS3

Mentor(s): Vilson Vieira <vilson@void.cc>

IRC Bots as Social Channels

Macambot
                                 o
        (\____/)                  \____/\              
         (_oo_)                   [_Oo_] o   ---.        < Hello, how can We help you? >
           (O)                      \/      ,   `---.___ /
         __||__    \)             __||__    \)           
      []/______\[] /           []/______\[] /       
      / \______/ \/            / \______/ \/       
     /    /__\                /    /__\       
    (\   /____\                     ()

IRC bots are social technology by nature. Autonomous software agents that can talk directly with people are powerful tools to understand their needs. We visualize IRC as a direct channel to communicate with people. Macambot, Lalenia and coBots are Supybots, Python IRC robots we want to continuously develop as agents that can collect software features proposed by the people and interact with them.

Objective: Continue the deveopment of the Supybots Macambot, Lalenia and coBots.

Suggested Roadmap: 1) Understand Supybot and its plugins; 2) Develop a test plugin to interact with people collecting their suggestions as software features; 3) Study Python NLTK (Natural Language Toolkit); 4) Improve the plugin with natural language processing, to talk with people "as a human"; 5) Create a Trac plugin to add bug and features entries based on the IRC bots data base of conversation with people that use #labmacambira at irc.freenode.net and/or other channels and IRC servers

Repos: git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/macambots

Languages: Python. Its important to love IRC.

Mentor(s): Renato Fabbri <renato.fabbri@gmail.com>

Permanent Conference

Per

Every year in Brazil we have the Conference for Defense of Children Rights along all the country. This are ephemeral reunions, that can benefit alot from a good platform for permanent discussion.

What happens when the conference end? Where the ideas discussed at the conference goes and whats happening about it? Permanent Conference is a Web application to collect knowledge generated on these conferences and to make sure they will be available to all the people.

Objective: Continue the implementation of the Django application Permanent Conference

Suggested Roadmap: 1) Read the code already written for the application. It was written in Django, so it is good to have a minor knowledge about that; 2) Understand the [ missed features] and bugs around. Trac is a good point to start; 3) Implement the features; 4) Test with people from Pontos de Cultura from Brazil.

Repos:

1) hackish crude php: git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/cope_php

2) barelly real pinax (django) version: git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/confperm

Test version: A test version is running at http://hera.ethymos.com.br:1080/confperm

Languages: Python (Django), JavaScript, HTML5 and CSS3

Mentor(s): Renato Fabbri <renato.fabbri@gmail.com>, Vilson Vieira, Fabricio Zuardi < fabricio@fabricio.org >


SOS

SOS

"Saúde Olha Sabedoria" (or Health, Look! Knowledge) is a Web application to collect popular tips around human health. People can also learn how to use popular knowledge to cure their deceases. We believe that softwares like SOS are an interesting way to preserve the culture of a nation and spread it to the others.

Objective: Fix some bugs on SOS and extend the concept to other areas, creating a knowledge base around popular culture

Suggested Roadmap: 1) Understand SOS architecture. It was written in Python using Django, so it is important to have a minor knowledge of these technologies; 2) Look at our Trac for bugs related in SOS and fix them; 3) Look for new features. The Trac is again a good start; 4) Extend the SOS to allow the insertion of other kinds of knowledge, not just related with health; 4) Test the platform with people of Pontos de Cultura and collect their feedback

Repos: git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/sos

Test Version: A test version is running at http://hera.ethymos.com.br:1080/sos/

Languages: Python (Django), JavaScript, HTML5 and CSS3

Mentor(s): Renato Fabbri <renato.fabbri@gmail.com>


More to come

Take a look at our remaining creations at: http://wiki.nosdigitais.teia.org.br/Lab_Macambira#Software_Livre_Criado_pela_Equipe_Lab_Macambira

Application Template

(brief description goes here)

Objective: (describe the purpose of this task here)

Suggested Roadmap: (describe a possible path to accomplish the objective here)

Repos: (list the main repositories for the project here)

Languages: (list the main programming languages and the required skill level)

Mentor(s): (indicate mentor names and email here)

Mentors

  • Fabricio Zuardi. Specialty: music and web.
  • Renato Fabbri. Specialty: music, audio and web. Social technologies for welfare.
  • Ricardo Fabbri. Specialty: image and video.
  • Vilson Vieira. Specialty: audio and web. Tools for computational creativity.
  • Daniel Marostegan e Carneiro. Specialty: social, citizen rights, and architecture apps.