English  

Diferencia entre revisiones de «Guifi.net Studio»

De Guifi.net - Wiki Hispano

m
 
(No se muestran 21 ediciones intermedias realizadas por 3 usuarios)
Línea 1: Línea 1:
== Identity ==
+
[[Archivo:Screenshot_guifinet_studio_v0.7.png|500px|right]]
'''Name:''' Pablo Castellano<br>
+
'''Email:''' pablo+at+anche.no<br>
+
'''Project title:''' CNML Explorer
+
  
== Contact/working info ==
+
'''Guifi.net Studio''' es una aplicación de escritorio desarrollada por [[Usuario:Pablog|Pablo Castellano]] como proyecto [[Google Summer of Code]] durante el verano de 2012. La aplicación está desarrollada en Python/GTK+ y tiene una licencia de software libre GPLv3+.
'''Timezone:''' UTC+2<br>
+
'''Typical working hours:''' I prefer evenings and late nights<br>
+
'''IRC or IM networks/handle(s):''' pablog@FreeNode, my email address also as Jabber account
+
  
== Project summary ==
+
La última versión estable disponible es la 0.7 y está disponible tanto en el repositorio Git como en los repositorios Ubuntu/Debian de Guifi.net. Para más información consulta la sección [[#Instalación]].
In order to understand better this project, you need to know first what is CNML. You can have a look to [[CNML|this article]].
+
  
My proposal is developing a desktop application to manage these files. I will be useful for people that administer zones, workers that install Guifi.net nodes... etc.
+
Para más información puedes consultar la [http://en.wiki.guifi.net/wiki/User:Pablog/GSoC2012/Guifi.net_Studio propuesta inicial del proyecto] (en inglés) o la '''[http://blip.tv/guifimedia/sax2012-a-terres-de-l-ebre-google-summer-of-code-6382664 presentación]''' grabada en el [[SAX 2012]].
  
CNML files offer a lot of possibilities that are not being exploited actually. It can also be used for statistics, data visualization, which will help people in their studies, or thesis about libre networks.
+
Para más información hay también disponibles una serie de informes hechos durante la fase de desarrollo donde se puede apreciar la evolución del software:
 +
# [http://lainconscienciadepablo.net/content/gsoc-report-0-documentation GSOC Report #0: Documentation]
 +
# [http://lainconscienciadepablo.net/content/gsoc-report-1-maps GSOC Report #1: Maps]
 +
# [http://lainconscienciadepablo.net/content/gsoc-report-2-libs-and-apis GSOC Report #2: libs and APIs]
 +
# [http://lainconscienciadepablo.net/content/gsoc-report-3-unsolclic-and-libcnml GSOC Report #3: unsolclic and libcnml]
 +
# [http://lainconscienciadepablo.net/content/gsoc-report-4-libcnml-ready GSOC Report #4: libcnml ready]
 +
# [http://lainconscienciadepablo.net/content/gsoc-report-5-pyguifiapi GSOC Report #5: pyGuifiAPI]
 +
# [http://lainconscienciadepablo.net/content/gsoc-report-6-gui-guifinet-api GSOC Report #6: GUI + Guifi.net API]
 +
# [http://lainconscienciadepablo.net/content/gsoc-report-7-pencils-down GSOC Report #7: Pencils down!]
 +
# [http://lainconscienciadepablo.net/content/gsoc-final-report GSOC Final Report]
  
This application will load a CNML file and show its contents in friendly windows. Users will be able to filter nodes or zones by name, coordinates or hardware used.
+
== Características ==
 +
* Explorar archivos CNML sin conexión a Internet usando los mapas de [[OpenStreetMaps]]
 +
* Exportar [[CNML]] a otros formatos como KML
 +
* Generar configuración [[unsolclic]] usando el método de las plantillas
 +
* Descargar y organizar archivos CNML usando la interfaz gráfica
 +
* Crear nodos/zonas/dispositivos y demás usando la [[API]] de Guifi.net
 +
* Tiene soporte para distintos servidores de Guifi.net
 +
* Calculadora inalámbrica integrada
 +
* Otras herramientas cono traceroute visual, encontrar el nodo al que corresponde una IP usando CNML...
  
It could also be a first step to develop a client that allowed users to modify their nodes by means of an API without having to use their web browsers.
+
== Instalación ==
 +
=== Desde repositorio ===
 +
Añadir [[repositorio]] (ejecutar como root):
 +
echo 'deb http://serveis.guifi.net/repo/debian/ guifi/ ' > /etc/apt/sources.list.d/guifinet.list
 +
apt-get update
 +
apt-get install guifinet-studio
  
It will also use some library (not decided yet) to show nodes in the world map like OpenStreetMap (OSM). In particular, OSM would allow final users to visualize nodes in the map without requiring any Internet connection as the maps are free and can be cached in disk.
+
=== Desde Git ===
 +
Instalar Git y las dependencias de guifinet-studio (consulta el archivo [https://gitorious.org/guifi-altres/guifinetstudio/blobs/master/README README] para más información):
 +
* Ubuntu/Debian (ejecutar como root):
 +
apt-get install git python2.7 gir1.2-gtkchamplain-0.12 git python-lxml python-jinja2 \
 +
python-kml gir1.2-gtkclutter-1.0 python-kml python-twisted-core python-jinja2
  
Another interesting function would be implementing 'unsolclic' in CNML Explorer, so that users could also generate their configuration files for their nodes offline and administrators could debug better network configurations.
+
Clonar el repositorio público de Gitorious:
 +
git clone git://gitorious.org/guifi-altres/guifinetstudio.git
  
I will develop it using [[wikipedia:Python (programming language)|Python]] and [[wikipedia:GTK+|GTK]] as I already control and have experience in both. It would be cool to write it in [[wikipedia:Vala_%28programming_language%29|Vala]], but it would take me more time learning Vala as I don't actually know too much about it. I prefer to focus on the functionalities and Python is a language that permits you to develop quickly.
+
'''NOTA:''' si vas a instalarlo desde [[Guifi.net]] mediante un proxy, tienes que definir el proxy para git en el archivo <code>~/.gitconfig</code>
 +
[http]
 +
        proxy = http://''user'':''pass''@''ip.del.proxy'':3128
  
The project license will be '''GPLv3+'''.
+
Clonar el repositorio público de Gitorious vía http:
 +
git clone http://git.gitorious.org/guifi-altres/guifinetstudio.git
  
The idea of this project came to me during Summer 2011 and I started it. Unfortunately I couldn't spend much time on it, so what I did is only a proof of concept. Working on it full time during the Summer 2012 would be amazing :)
+
Ir al directorio donde se ha descargado la aplicación y ejecutarla:
 +
cd guifinetstudio/
 +
./guifinet-studio
  
You can have a look to the code in my GitHub repository<ref>[https://github.com/PabloCastellano/pablog-scripts/tree/master/guifi/cnml_explorer pablog-scripts], GitHub repository</ref>. As a picture is worth a thousand words, here there are two screenshots:
+
== Cómo colaborar ==
 +
Puedes colaborar reportando fallos en [[trac.guifi.net]], corrigiendo fallos (bugs) o aportando ideas.
  
[[Archivo:Cnml_explorer2.png|500px]] [[Archivo:Cnml_explorer1.png|300px]]
+
== Enlaces externos ==
 
+
* [http://trac.guifi.net/query?status=accepted&status=assigned&status=new&status=reopened&component=Guifi.net+Studio&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority Bugs abiertos en el Trac]
== About you ==
+
I'm currently studying Computers Engineering in the [[wikipedia:Autonomous University of Barcelona|Autonomous University of Barcelona (UAB)]]. I'm a geek and free software supporter who has been dealing with Linux since I was 13 (now I'm 23). I enjoy working in projects with social benefits. My favorite programming languages are Python and C.
+
 
+
Participating in GSoC is one of the things I wanted to do during my academic life. It's very exciting and Guifi.net is a big community which I like and needs more developers. Last year I tried to participate in the Mediawiki project but it was a very hasty decision and finally I didn't. You can read my 2011 application [https://www.mediawiki.org/wiki/User:PabloCastellano/GSoC_2011_Application here].
+
 
+
== Deliverables ==
+
 
+
=== Required deliverables ===
+
* Desktop application based in GTK to read CNML files with the following features:
+
** Filtering options
+
** View nodes in map
+
** Unsolclic
+
*** Add support for new devices (hybrid nodes, nanostation loco M, mesh?...)
+
** Export subzone to another file
+
** Export to other formats like .gml or .kml (Google Earth).
+
 
+
These are for me the most important features. Here there's a list of more features I will implement with no particular order (I can prioritize some or implement new ones according to the community interests):
+
* Cache OSM data (I don't know if any library already does it)
+
* Different ways to visualize nodes in the map. The user can change the color, thickness and type of the line that links two nodes; show supernodes only; show supernodes with >=N links...
+
* The main window can have two modes of visualization: 1) Map (default) 2) Node list
+
* Check CNML integrity twice
+
* Improve integration with drupal-guifi
+
* Check wrong MAC address, zones, ip ranges...
+
* Integrate with map profile
+
* Generate HTML report of any zone/node
+
* Add new radios/devices and save to a new CNML
+
* If Drupal API existed, user could log in with its guifi.net username and upload changes made locally to CNML
+
 
+
=== If time permits ===
+
* Any of the features enumerated before
+
* Ncurses and command line interface.
+
* Guifi.net API
+
* I will help to move forward the CNML specification
+
* I will send patches to Guifi.net if necessary.
+
 
+
== Project schedule ==
+
=== Community Bonding Period ===
+
* April 23 - April 29
+
* April 30 - May 6
+
  - Present the project to the community so that they know about it and they can follow it and report suggestions/feedback.
+
  - Read documentation about libraries I will use.
+
  - Familiarize with CNML and other similar formats.
+
  - Contact people that was already involved in the CNML specification and talk with them (I have already started it).
+
 
+
* May 7 - May 13
+
  - Design Graphic User Interface
+
  - Think about the whole application design.
+
 
+
* May 14 - May 20
+
  - Start coding interface (since in June I'll be busy with exams, I prefer to start before the official coding period).
+
  - Design first prototype of nodes map with some options to have different visualizations.
+
 
+
=== Official Coding Period ===
+
* May 21 - May 27
+
  - Implement unsolclic for the same devices that are supported in the website
+
  - Fix also [http://trac.guifi.net/query?status=accepted&status=assigned&status=new&status=reopened&component=Web+guifi.net+%3A+Unsolclic&group=component&order=priority existing bugs]
+
 
+
* May 28 - June 3
+
  - Start implementing unsolclic for new devices (like hybrid nodes)
+
 
+
* June 4 - June 10
+
* June 11 - June 17
+
* June 18 - June 24
+
  - I have my final exams between these dates, so I won't have so much free time to work on GSoC :-(
+
    Depending on my time I will be more or less testing and thinking on the next tasks.
+
  - Ask the community to test this new unsolclic
+
 
+
* June 25 - July 1
+
  - Continue unsolclic for new devices with feedback from the community
+
 
+
* July 2 - July 8
+
  - Filtering nodes (in list and map modes)
+
 
+
* July 9 - July 15
+
  - Export to other formats
+
  - Export subzones or selected nodes (filtered previosly)
+
 
+
* July 16 - July 22
+
  - Check semantic integrity of CNML file (MAC addresses, zones, IP ranges...)
+
  - Generate HTML report
+
 
+
* July 23 - July 29
+
  - Command line interface
+
 
+
* July 30 - August 5
+
* August 6 - August 13
+
  - Clean code and fix last bugs
+
  - Documentation (user manual)
+
  - Internationalization
+
 
+
=== Suggested pencils down date ===
+
* August 14 - August 20
+
  - Documentation and minor changes
+
 
+
== Participation ==
+
* I will reach my mentor mostly by email to discuss all important things about the development. In emergency cases I would also phone him/her :D.
+
* People will be able to consult my code as I will set up a Git repository where I will commit.
+
* I will write a blog post about my progresses once a week.
+
* I will also idle in #guifi IRC channel to get in touch with the community.
+
* I will be listening for comments and suggestions.
+
 
+
== Past open source experience ==
+
 
+
I'm a GNOME developer and member of the GNOME Foundation, which is the biggest project I have contributed. I have experience working with other open source projects. You can see my contributions to open source projects at my [http://www.ohloh.net/accounts/pablog ohloh account].
+
 
+
I try to fix every annoying bug I find in software daily.
+
 
+
I like attending to free software events. I have attended to DebConf9 and Fosdem 2010 among others.
+
 
+
== Any other info ==
+
  
 
[[Categoría:Google Summer of Code]]
 
[[Categoría:Google Summer of Code]]
 +
[[Categoría:Guifi.net Studio]]
 +
[[Categoría:Manual de instalación]]
  
= References =
+
[[en:Guifi.net Studio]]
<references/>
+

Última revisión de 18:13 5 oct 2014

Screenshot guifinet studio v0.7.png

Guifi.net Studio es una aplicación de escritorio desarrollada por Pablo Castellano como proyecto Google Summer of Code durante el verano de 2012. La aplicación está desarrollada en Python/GTK+ y tiene una licencia de software libre GPLv3+.

La última versión estable disponible es la 0.7 y está disponible tanto en el repositorio Git como en los repositorios Ubuntu/Debian de Guifi.net. Para más información consulta la sección #Instalación.

Para más información puedes consultar la propuesta inicial del proyecto (en inglés) o la presentación grabada en el SAX 2012.

Para más información hay también disponibles una serie de informes hechos durante la fase de desarrollo donde se puede apreciar la evolución del software:

  1. GSOC Report #0: Documentation
  2. GSOC Report #1: Maps
  3. GSOC Report #2: libs and APIs
  4. GSOC Report #3: unsolclic and libcnml
  5. GSOC Report #4: libcnml ready
  6. GSOC Report #5: pyGuifiAPI
  7. GSOC Report #6: GUI + Guifi.net API
  8. GSOC Report #7: Pencils down!
  9. GSOC Final Report

Características

  • Explorar archivos CNML sin conexión a Internet usando los mapas de OpenStreetMaps
  • Exportar CNML a otros formatos como KML
  • Generar configuración unsolclic usando el método de las plantillas
  • Descargar y organizar archivos CNML usando la interfaz gráfica
  • Crear nodos/zonas/dispositivos y demás usando la API de Guifi.net
  • Tiene soporte para distintos servidores de Guifi.net
  • Calculadora inalámbrica integrada
  • Otras herramientas cono traceroute visual, encontrar el nodo al que corresponde una IP usando CNML...

Instalación

Desde repositorio

Añadir repositorio (ejecutar como root):

echo 'deb http://serveis.guifi.net/repo/debian/ guifi/ ' > /etc/apt/sources.list.d/guifinet.list
apt-get update
apt-get install guifinet-studio

Desde Git

Instalar Git y las dependencias de guifinet-studio (consulta el archivo README para más información):

  • Ubuntu/Debian (ejecutar como root):
apt-get install git python2.7 gir1.2-gtkchamplain-0.12 git python-lxml python-jinja2 \
python-kml gir1.2-gtkclutter-1.0 python-kml python-twisted-core python-jinja2

Clonar el repositorio público de Gitorious:

git clone git://gitorious.org/guifi-altres/guifinetstudio.git

NOTA: si vas a instalarlo desde Guifi.net mediante un proxy, tienes que definir el proxy para git en el archivo ~/.gitconfig

[http]
       proxy = http://user:pass@ip.del.proxy:3128

Clonar el repositorio público de Gitorious vía http:

git clone http://git.gitorious.org/guifi-altres/guifinetstudio.git

Ir al directorio donde se ha descargado la aplicación y ejecutarla:

cd guifinetstudio/
./guifinet-studio

Cómo colaborar

Puedes colaborar reportando fallos en trac.guifi.net, corrigiendo fallos (bugs) o aportando ideas.

Enlaces externos

Herramientas personales