Cosas por hacer

Tengo muchas ideas sobre cómo mejorar varios programas, y también muchos otros por empezar, y quiero escribir bastantes tutoriales básicos sobre informática. Desgraciadamente, no tengo tiempo para todo. Aunque me gustaría poder resolverlo todo yo (soy egoísta), me gustaría aún más que otras personas entiendan los problemas que propongo y hagan algo por solucionarlos. No es que yo esté buscando respuestas para mí, sino para la gente que las necesita: hay muchas cosas que aún faltan y alguien tiene que explicar o arreglar.

Consideraré que un trabajo está acabado si se cumplen estas cuatro condiciones: tiene una licencia libre, está bien escrito (sin faltas y con los acentos donde toca), es gratis, y es mejor que el resto de soluciones. Si no pasa esto, en mi opinión no es útil y probablemente otras personas tengan que repetir el trabajo.

Si te animas a solucionar alguna de estas cosas (o de la sección a largo plazo), puedes avisarme. Como a mí también me interesa, intentaré ayudar con ideas, críticas, y escribiendo.

Desde marzo-06, actualizado hasta 20.m03.2023. En 2017 (y aún en 2023) esta página necesita una gran actualización y ampliación, y un mejor sistema de hipertexto. Daniel Clemente Laboreo (web, correo). Este fichero .html se ve mejor abriendo el .org con org-mode (Emacs)

Otras listas: Índice (varias tareas) Temas de investigación (tareas mayores) Emacs Bazaar Conkeror Sobre este sistema (y org-mode)


Índice


1. Sobre esta lista de cosas por hacer

Hay varias secciones (las que salen en la barra de navegación de arriba). Son:

Ya habrás visto que haciendo clic en una cabecera, se expande y dentro puedes ver más subsecciones. Está organizado todo jerárquicamente, y hay una gran cantidad de información en este árbol de secciones. He explicado cómo gestiono esta lista de tareas (con org-mode); ahí hay más detalles sobre este sistema de esquemado.

2. Básico

Quiero unas páginas de ayuda sobre:

  • por qué es importante una licencia libre (como GPL, BSD, o CC), o incluso: por qué hay que fijarse antes en la licencia de un programa que en sus características técnicas. Empecé a escribir sobre esto, pero no tengo mucho tiempo ni conocimientos legales para continuar. Más información en subapartado.
  • ayudas para escribir bien en los sitios donde hay que escribir bien (traducciones, Wikipedia, tutoriales, etc.). O sea: un recordatorio de ortografía, que sirva para entender bien el propio idioma y así darse cuenta de si se están haciendo faltas o no

Estas dos cosas las considero realmente básicas; porque tanto la licencia como el lenguaje están presentes en todo lo demás (tutoriales, programas, etc.), y si no están bien elegidas estropean el resto. Pero me parece que la gente -en general- sabe poco de licencias y poco de gramática (me incluyo). Pueden ser temas aburridos si no se explican bien. Supongo que conoces el problema. Si también te interesa esto, intenta compartir alguna ayuda, consejo o tutorial, aunque sea en una página web o un weblog; enseñando se aprende mucho y se evita que haya tanto desconocimiento (hay mucha gente que quiere aprender más y no encuentra información útil).

Yo también empecé a escribir tutoriales sobre estos dos temas, pero avanzo muy poco a poco…

2.1. páginas explicativas sobre licencias

En concreto, lo que quiero/tengo que hacer es identificar las cosas que más hace falta explicar: las mayores confusiones y los mayores desnocimientos sobre el tema de las licencias libres.

En concreto hace falta que haya páginas explicando éstas y otras ideas clave:

  • gratis no es igual a libre (en español). La palabra „libre“ es muy ambigua
  • lo de libre es una cuestión ética; no va de informática
  • todo tiene una licencia, hasta una foto hecha por ti
  • cuando oigas „licencia“ no pienses en algo que se compra („comprar 1 licencia“), sino en un texto que dice tus derechos
  • es un tema aburrido pero legal; no todos pueden „pasar“ de esto
  • no poner restricciones es lo habitual en muchos aspectos; no en la informática
  • al comparar dos programas, antes de mirar sus capacidades técnicas hay que mirar sus licencias, pues las leyes limitan el uso de esas funcionalidades
  • algunos programas son malos sólo por su licencia (por el cómo tratan a las personas que los usan)
  • hay un proyecto para hacer la informática sin restricciones (GNU)
  • el interés mostrado hacia la ética en el mundo es bajísimio; pasa lo mismo con GNU. Como mínimo es curioso este comportamiento humano
  • aún así, no tener restricciones es agradable para todos
  • restringir a los usuarios da más dinero. Los comportamientos no éticos, en general, aseguran una ventaja
  • análisis de licencias famosas; abusos (o no) de cada una, legalidad de eso
  • qué tal está técnicamente el proyecto de crear la informática sin restricciones (¡bastante bien!)
  • diferentes modelos de desarrollo de software en comunidad (tampoco tiene que ver con ética)
  • propuestas para un mundo mejor… o al menos para un mundo bueno
  • etc.

Mi idea es tener explicaciones sencillas (2 ó 3 páginas de largo) para cada idea que se quiera transmitir. Lenguaje sencillo, bien escrito, sin restricciones de distribución, etc.

A fecha de <21.m03.2010> tengo ya algo escrito pero son notas sueltas; falta ordenarlas.

Tú puedes también escribir y explicar cosas sobre estos temas.

3. Programas

3.1. emacs, bazaar, conkeror

Como uso bastante estos programas y tengo muchas mejoras a hacerles, les he dedicado una página aparte:

3.2. ampliación de algunos programas de procesado de texto

3.2.1. txt2tags

txt2tags es un sencillo lenguaje de etiquetas; el programa (en Python) genera código HTML, LaTeX, y otros a partir del .t2t.

Arreglar varios fallos que encontré, sobre HTML; su autor también empezó a corregirlos, pero tampoco tiene tiempo libre. Hace falta que participe alguien más.

  • <25.m03.2006>: puesto
  • <15.m03.2010>: ya no lo uso; he migrado a org-mode.

3.2.2. dislines

dislines es un programita que hice, aún poco usado, para combinar varios ficheros en uno.

  • simplificar la especificación, añadir cosas útiles (quizás el @^en), quitar las complicadas (el @!), separar en niveles de complejidad, dar implementación como ejemplo
  • hacer otras utilidades relacionadas que hagan cosas de traducciones con esta misma sintaxis. Hay muchas posibilidades muy útiles; tengo varias ideas
  • internacionalizar; ahora sólo sale en inglés
  • arreglar el código, y convertirlo en package de Perl (lo tenía hecho, pero perdí los parches en un descuido)
  • hacer un módulo de coloreado de sintaxis para vim, emacs y otros
  • hacer que en caso de error de sintaxis, el valor de retorno sea distinto de 0
  • una vez funcione todo bien, integrarlo en CPAN
  • conseguir hacer un buen paquete para incluirlo en alguna distribución (hace falta página man, entre otras cosas)
  • hacer opción para que las líneas "comunes" sean descartadas

Desde <25.m03.2006> A fecha de <21.m03.2010>, una idea que me apasiona es buscar una solución cómoda para hacer lo que hace dislines dentro de org-mode.

3.2.3. schart.pl (va de malabares)

schart es un programa para crear tablas de trasición de estados, que representan todos los patrones que se pueden hacer al hacer malabares con N objetos. Hay que mejorar el programa:

  • hacer código que se entienda mejor
  • cambiar la primera línea en la salida si se activa -t, o sea, que el título sea más descriptivo
  • añadir opción para poder generar diagramas reducidos como los enlazados al final del artículo. Imagino que se puede usar GraphViz para dibujar el grafo. schart necesita sólo escribir el código GraphViz. Quizás se puede usar SVG para algo.
  • hacer que sea más fácil generar una salida bonita: preparar un CSS para el HTML generado, automatizar la creación de PNG, SVG, etc.
  • ordenar mejor los tipos de salida (quizás hacer una única opción -t, tipo, con muchos posibles valores). Que se pueda generar una tabla bonita a la vista (sin sintaxis de txt2tags por enmedio)

No se necesita saber hacer malabares para esto, pero te lo recomiendo de todas formas.

Desde <11.m01.2007>

3.3. añadidos a varios programas técnicos de GNU/Linux

3.3.1. BONUS enlaces simbólicos en scp

Hacer que scp (de SSH) acepte opción para que no siga enlaces simbólicos, y que los copie tal cual

3.3.2. BONUS rsync incremental por defecto

Hacer que rsync continúe la copia de ficheros por donde se quedara la última vez, en vez de volver a empezar (molesta mucho con ficheros grandes). Iría bien usar algún código de control (ej: MD5) para comprobar la integridad del fichero final.

Descubrí que esto se puede hacer con -partial, pero creo que debería hacerlo así siempre. O eso o busco otro programa.

3.3.3. BONUS quitar módulos con modprobe

Hacer un modprobe -r que realmente borre módulos recursivamente

3.3.4. BONUS historial en screen

Hacer que en screen sea más fácil moverse por el historial, sin tener que entrar y salir del modo copiar (si se pudiera usar la rueda del ratón estaría muy bien). Esto he visto que lo piden en la lista de correo

3.3.5. BONUS strings (de binutils) pero que extraiga cadenas de texto con todo tipo de caracteres

Ahora strings de un binario (por ejemplo un .doc) da ASCII (corta por todo carácter que los angloparlantes no conozcan), y pasando -eS los resultados son subóptimos: prácticamente da todo el fichero.

No es tan difícil hacerlo bien y hacer un grep para quedarse con el conjunto de caracteres usado en idiomas.

[a-zA-ZáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙüïÜÏñçÑÇŀĿ0-9,.:; ]{3,}

Hay que ampliar strings o buscar otro programilla mejor.

De momento a strings -eS le puedo pasar un segundo filtro como

grep -e  '[a-zA-ZáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙüïÜÏñçÑÇŀĿ0-9,.:; ]\{9,\}'

3.4. nuevos programas e ideas (o programas que hay que encontrar y reformar)

3.4.1. Cliente de Jabber en consola

Quiero un programa de Jabber para consola, como imcom,

pero fácil de usar:

  • separando opciones básicas de las avanzadas
  • con las opciones más útiles al alcance
  • cómodo, pero a la vez avanzado
  • fácil de configurar
  • que permita varias cuentas a la vez
  • que vaya bien con Unicode, tanto en xterm como en consola
  • que unas líneas no tapen a otras ni pasen cosas raras cuando un mensaje llega mientras se está escribiendo uno de varias líneas
  • <07.m04.2006>: Tengo bastantes ideas, pero aún no he empezado con esto. Creo que imcom está algo abandonado.
  • <21.m03.2010>: Actualizo: emacs-jabber va muy bien aunque aún es mejorable en usabilidad. No uso imcom ya.

3.4.2. recortar imágenes

  • uno para recortar imágenes fácilmente (quizás usando ImageMagick) pero especializado en esto; que no haga nada más. Mejor que "display" (que no es muy usable) y más al estilo de "gthumb" pero con más opciones para esto del recorte. Deseado: interfaz gráfica, información sobre medidas y proporciones, zoom para ver cómo quedan los bordes, automatización, uso también en modo texto, fórmulas de recorte predefinidas (bordes, …), recorte de PDFs, y todo lo que sea útil.

3.4.3. personalizar colores de bash

  • varias utilidades para hacer más cómodo bash, el intérprete de comandos de Linux (hacer "prompt" personalizado, elegir colores de forma interactiva, etc.)

3.4.4. ver XML cómodamente, coloreado

  • buscar combinación de programas, hacer uno nuevo, o escribir tutorial explicativo sobre el siguiente problema: tengo un fichero XML bastante caótico (muchas etiquetas, muy imbricadas, una sola línea) y quiero hacer que quede bonito y con la sintaxis coloreada, para poderlo leer cómodamente, editarlo en vim, verlo en página web, o incluirlo en un trabajo. Sugerencia: 4Suite.org, biblioteca para Python, módulo Ft.Xml.Domlette, función PrettyPrint.

3.4.5. pasar a ogg

  • buscar/escribir programa y hacer tutorial sobre: pasar de cualquier formato a OGG. Tengo uno hecho en una línea, en Perl, pero es muy chapucero

3.4.6. ATENDAS selector del mejor fichero entre varios candidatos, evaluados programáticamente o manualmente. Mejor fichero. Es para ordenar ficheros

Idea del <07.m03.2011> pero necesitado desde hace tiempo.

Tengo varios ficheros parecidos y quiero ordenarlos de mejor a peor para encontrar el mejor de ellos. Qué es „mejor“ y „peor“ lo decide el usuario en cada momento y se lo indica al ordenador. Ej.

  • tengo muchas fotos (.jpg), unas buenas y otras malas, y quiero compararlas 2-a-2 para encontrar la que más me gusta.
  • escucho muchas canciones regularmente, y tras cada una quiero darle una nota para marcar si me ha gustado o no más que otra; así se establece un orden y el programa puede elegir las que más me gustan

Ideas:

  • iría bien comparar parejas, así se avanza siempre
  • la comparación puede ser manual y visual (abrir ambos ficheros para que el usuario los vea y decida) o automática (ejecutar un programa para evaluar ambas opciones y decidirse por una)
  • se parece a:
    • la búsqueda de la revisión más apropiada que hace „git bisect“
    • lo que hacen algunos programas de escuchar música para encontrar música de tus gustos (cuando se los has dicho)
    • http://thefunniest.info/, de xkcd
    • eso de Zuckerberg, ~hotornot.com
  • se pueden usar atributos extendidos, ver notas
  • me bastaría con poder cambiar a mano el orden de ficheros de Linux; con esto ya hago todo. Pero hay que entender la implementación de ext4 etc. y abusarla
  • mejor con nombres de fichero, e ir renombrando:
    • lo básico:
      • todos los ficheros tienen un trocito „ord008“ en su nombre
      • todos empiezan con „ord___“
      • hay una interfaz para irles dando nombre
      • ir preguntando „¿cuál es mejor, el de la izquierda o el de la derecha?“ y mostrar dos imágenes
      • ir repitiendo varias veces con ficheros al azar, hasta que más o menos los resultados concuerdan con lo ya sabido
      • alternativa: mostrar tríos: „de estas tres imágenes, ¿cuál es la mejor y cuál la peor?“
    • [ ] usar base ternaria para dar nombre a cada fichero, ẽ 001122110, donde cada dígito es un paso en la ruta a un árbol que contiene todas las preferencias. 0 es la prioridad alta, 1 la media, 2 la baja. Por tanto todos los que empiezan por 0 son buenos, y de entre ellos, los 00 mejor que los 01, y los 01 mejor que los 02. De entre los ẽ 02, los 020 son mejores, luego van los 021 luego los 022. Al final el mejor de todos es el 000000000… (tantos ceros quiere decir que tiene un nivel de precisión alto)
      • obviamente puedo en binario también: 0101011101
    • o algo más sencillo: simplemente mostrarlos todos (ẽ imágenes) uno tras otro, y permitir ordenarlos (moverlos arriba/abajo) y esto cambia el nombre
    • voy probando esto en nuevo visor de imágenes que me hago → ver imaja.py
  • [ ] Ask Slashdot: Software To Organise a Heterogeneous Mix of Files? - Slashdot
  • listar cada fichero en org-mode, y luego ordenar la lista en org
  • va de: https://en.wikipedia.org/wiki/Recommender_system
  • [ ] pruebo a hacer dos herramientas que cambian nombres y preguntan al usuario:
    • cataloga_ficheros_preguntando.py
    • ordena_ficheros_preguntando.py
    • ver por ahí

¡Todo esto importa muy poco! Siempre hay algún enfoque mejor, adaptado a cada caso (ej. reproductor de música que guarda listas de reproducción, dar orden yo a mano renombrando ficheros, …)

3.5. vim

vim es un editor muy bueno. Cosas que no me gustan:

  • Es lento al arrancar; yo diría que hace más cosas de las absolutamente necesarias, con plugins y demás. Optimizar.
  • Al recuperar un fichero del que hay copia de seguridad, el texto presentado es difícil de entender:

[A]brir para lectura únicamente, (E)ditar de todas formas, (R)ecuperar, (S)alir, A(b)ortar. Debería dar una forma de solucionar el problema desde ahí mismo: si no hay diferencias entre ambos ficheros, borrar la copia; si las hay, mostrarlas y permitir integrarlas.

  • Además, si el fichero original era Unicode, luego la copia restaurada no se ve bien, la graba en ISO.
  • Al abrir ficheros grandes, se cuelga temporalmente. Quiero un editor listo: si abro un fichero de 2 Gb, no quiero que ponga esos 2 Gb en memoria, sino sólo la parte que yo estoy viendo. Iba a buscar un editor especializado en abrir ficheros grandes, pero me gustaría que éste fuera vim (o emacs, que también puede).

3.6. MALFAR ion

ion fue durante un tiempo el único gestor de "ventanas" que me gustaba, aunque nunca del todo. Faltaba:

  • arreglar ese fallo tan viejo de los programas que no se adaptan al tamaño de la pantalla (se arregla partiendo la ventana y volviéndola a juntar)
  • entender la configuración, o simplificar; me da la sensación de que está repetida en varios sitios (tanto en /etc como en en ~, sin clara sobreescritura)
  • conseguir compilar de forma estática para que no necesite tantas bibliotecas: hacerlo portable
  • la operación más usada es probablemente abrir terminal. ¿Se puede optimizar? (por ej.: tenerla ya abierta y así sólo hay que hacerla visible). Nota: urxvtcd ayuda aquí
  • permitir en ion2 mover una pestaña de un espacio a otro (Alt+N mientras se arrastra). ion3 lo hace
  • fallo difícil en X.org, visible en ion3: aparecer ventana en marco padre. Para eso, según el autor, hay que promover e implementar la especificación de aviso de inicio.
  • Desde <15.m04.2006>, actualizado el <23.m05.2008>
  • En <21.m03.2010> esto no es tan importante porque he visto que wmii es mucho mejor; debería publicar mi configuración y mi historia y motivos para elegir este gestor de ventanas.

3.6.1. IS en Netbeans se pierde el foco de teclado al cambiar de ventana y volver; es por ion

  • CONCLUSIÓN escrita el <23.m03.2009 13:34>
    lo evito usando versión mía compilada de ion3 con un parche no del todo bonito

A otros les pasaba: http://www.tbray.org/ongoing/When/200x/2005/09/16/Netbeans-5

3.6.1.1. dónde pasa y dónde no

Netbeans funciona bien con icewm (en Xnest)… sí. Es por ion3 seguro.

A ver si es por Swing con Ion3… lo pruebo con JPedal… ¡y pasa! Ion3 con Swing falla.

3.6.1.2. MALFAR quizás es por scim
  • CONCLUSIÓN escrita el <14.m01.2009 10:31>
    no creo que lo sea pues dentro de icewm va bien
3.6.1.2.1. MALFAR Probar desinstalar

libqscintilla7 libscim8c2a scim scim-bridge-agent scim-bridge-client-gtk scim-gtk2-immodule scim-modules-socket scim-modules-table scim-tables-additional Lo malo es que „tora“ también ha de ser borrado.

3.6.1.3. IS mandar fallo
3.6.1.3.1. Para Netbeans (INCORRECTO; es de ion3)

Netbeans 6.5 loses keyboard focus each time I switch to the application window. No key works, and I must click anywhere to type again. This happens only in ion3 but all other Java/Swing it is the first program I use that has this bug.

To reproduce:

  1. Install in GNU/Linux the ion3 window manager (both 20080207-2 from Ubuntu or the latest version, 20090110, works. You can run it without installing via http://modeemi.fi/~tuomov/dl/Ion3.xml
  2. Learn to move between tabs with the keyboard. I think the default is Alt+K N for next and Alt+K P for previous.
  3. Open netbeans and some other programs in tabs next to it.
  4. Select netbeans and open an editor with some code; the cursor is inside the editor
  5. Select another tab (either with mouse or with keyboard).
  6. Select netbeans again (either with mouse or with keyboard).
  7. Try to continue typing, but it doesn't work. The cursor is nowhere, and no key works (space, cursors, A-S-o, … all gone). You must click again in the editor.
3.6.1.3.2. Para ion3 (pues no sé si es de ion3 porque parece que sólo pasa con Java1.6)
Hi,

  ion3 is stealing keyboard focus to Swing applications. This happens for instance with Netbeans 6.5:

1. Open netbeans and some other programs in tabs next to it.
2. Select netbeans and open an editor with some code; the cursor is inside the editor
3. Select another tab (either with mouse or with keyboard).
4. Select netbeans again (either with mouse or with keyboard).
5. Try to continue typing, but you can't. The cursor is nowhere, and *no key* works (space, cursors, A-S-o, ... all gone). You must click again in the editor and then you can type again.

In fact any Swing application has this problem. You can use this one to test:

--- TypeInSwing.java ----------------------------------------

import javax.swing.JFrame;
import javax.swing.JTextField;

public class TypeInSwing {
  public static void main(String[] args) {
    JFrame frame = new JFrame("HelloWorldSwing");
    final JTextField field = new JTextField("type here");

    frame.getContentPane().add(field);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
  }
}

--------------------------------------------------------------

It happens with latest version 20090110 (with 20080207 too).

I am using:

$ java -version
java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)


  Why is it so?


Daniel
3.6.1.3.3. Para Java
Keyboard focus is lost in Swing application after switching to window

This is a problem shared between Java >=1.6 and the ion3 window manager.
In combination, a Swing application which has keyboard focus on a field will lose it if you change to other window and return back to the first one. Then, no key works until you click again on any field.

This happens prominently with Netbeans 6.5 (all editors are blocked) but also with a simple program like this one:

--- TypeInSwing.java ----------------------------------------

import javax.swing.JFrame;
import javax.swing.JTextField;

public class TypeInSwing {
  public static void main(String[] args) {
    JFrame frame = new JFrame("HelloWorldSwing");
    final JTextField field = new JTextField("type here");

    frame.getContentPane().add(field);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
  }
}

--------------------------------------------------------------


To reproduce the bug:
1. Install in GNU/Linux the ion3 window manager (both 20080207-2 from Ubuntu or the latest version, 20090110, works. You can run it without installing via http://modeemi.fi/~tuomov/dl/Ion3.xml
2. Learn to move between tabs with the keyboard. I think the default is Alt+K N for next and Alt+K P for previous.
3. Run some programs so that you have more than one tab.
4. Run that example program with Java 1.6 or 1.7.
5. Click on the text field and type; it works.
6. In ion's tab bar, select another tab (either with mouse or with keyboard).
7. Select the example program's tab again (either with mouse or with keyboard).
8. Try to continue typing, but it doesn't work. The cursor is nowhere. You must click again in the editor.

In my tests I saw:
- another window manager (ex: icewm) doesn't show this problem: the focus isn't lost. This with Java 1.6
- but in ion3, Java 1.4 and Java 1.5 also don't show this problem.
- Affected: Java 1.6.0_06 on Ubuntu, Java 1.6.0_10 on Debian, OpenJDK 1.6.0_0-b11 Debian, Java 1.7.0-ea-b43 Debian.
- Not affected: sun-java5-bin on Debian Etch, gij/libgcj 1.4.2 (4.0.2), 1.5.0_16-b02 on Debian

This may be a regression in Java 1.6 or a bug in ion3.
3.6.1.3.3.1. IS mandado a Java

Your report has been assigned an internal review ID of 1440119, which is NOT visible on the Sun Developer Network (SDN).

Acabó siendo este inferro: http://bugs.sun.com/view_bug.do?bug_id=6798064

3.6.1.4. MALFAR mandado; esperar respuesta
3.6.1.5. lo vuelvo a mandar a ion

Pues: Hi, sorry if this message comes twice (I posted yesterday via NNTP without being subscribed to the list).

3.6.1.6. IS esperar respuesta
  • CONCLUSIÓN escrita el <16.m01.2009 09:29>
    no le pasa a Tuomo
3.6.1.7. IS probar en otros sistemas
Hi,
  I tried it with Sun's Java 1.6.0_10 on Debian (another machine). The bug is still present.
  However, on the same machine, Sun's Java 1.5.0_16-b02 makes my example work as expected (focus is not lost).

  And with libgcj... well, the example didn't work correctly and I didn't see the text field. My version:
java version "1.5.0"
gij (GNU libgcj) version 4.3.3 20090110 (prerelease)

  With OpenJDK 1.6.0_0-b11, the bug shows up.
  With the unreleased Java 1.7.0-ea-b43, the same (bug present).

  So the focus problem seems to be a regression introduced in version 1.6 of Java and still not corrected...
  Or maybe it is indeed a bug in ion3; since other window managers (ex: icewm) do work with Java 1.6.

  In any case, I sent this bug to Java. I will report progress here.

-- Daniel
3.6.1.8. IS otra vez esperar respuesta de Tuomo
3.6.1.9. IS retocar ion3 para corregir fallo de foco en Swing
3.6.1.9.1. lo que me dijo

It seems that at most it could be related to different interpretations of the ICCCM that's a bit vague at this point, race conditions, etc.

One possible problem is the handling of the WM_TAKE_FOCUS call, although most "modern" toolkits just seem to ignore X focus for any widgets, and do their own complicated buggy focus tracking, (cause of the legendary firefox/gtk focus bug that took years to fix, and only by an Ion user, not the gtk lamers) so WM_TAKE_FOCUS should pretty much be ignored.

Try moving the region_finalise_focusing call to the beginning of clientwin_do_set_focus. This could help – and seems to be the more logical order of the calls – but it will probably break some other applications. The ICCCM doesn't seem to specify in which order the WM should set the focus to the application top level window, and send the WM_TAKE_FOCUS message that tells the client to give the focus to a more specific widget. Also, since there's no (simple) way to coordinate the timestamp of the actual focus change call with Xlib, and the timestamp for the client message has to be obtained by a hack, this could cause problems.

Probably it won't help, and will break other things, but it seems worth a try.

3.6.1.9.1.1. lo que yo saco en claro de esto
  • hay dos llamadas:
    • enfocar la ventana
    • enfocar el control dentro de la ventana (WM_TAKE_FOCUS)
      • llamada WM_TAKE_FOCUS: muchos gdv la ignoran y hacen la gestión de foco por su cuenta (difícil)
  • es difícil coordinarlas:
    • el ICCCM no especifica el orden en el que hacer estas dos llamadas
    • el cambio de ventana (la llamada 1ª) es difícil coordinarlo con Xlib
    • el tiempazo (marca de tiempo) del mensaje para el cliente (imagino que la 2ª) ha de obtenerse con chapuzas
  • creo que me sugiere:
    • no es intercambiar el orden de ambas llamadas ŭ1
    • sino desactivar la 2ª
3.6.1.9.2. útil para leer
3.6.1.9.3. IS mmm… ¡que compile! El ion3-plus (que no es el que toca)
3.6.1.9.4. que compile ion3 bueno

http://iki.fi/tuomov/dl/ion-3-20090110.tar.gz

En system.mk hay que poner:

LUA_DIR=/usr
LUA_LIBS = -L$(LUA_DIR)/lib -llua5.1
LUA_INCLUDES = -I$(LUA_DIR)/include/lua5.1
LUA=$(LUA_DIR)/bin/lua
LUAC=$(LUA_DIR)/bin/luac
3.6.1.9.4.1. IS error al arrancar
/w/ion-3-20090110/ion ; DISPLAY=:1 ./ion3

>> Unable to find 'look' on search path. >> No drawing engines loaded, trying "de". >> Unable to find 'de' on search path. >> Unable to find 'ioncore_ext' on search path. >> Refusing to start due to encountered errors.

3.6.1.9.4.1.1. IS desinstalaré el ion3 global para ver si se corrige
  • CONCLUSIÓN escrita el <08.m02.2009 16:07>
    lo conseguí metiendo de todo en ~/.ion3/lib, con ayuda de strace

Éste ii ion3 20080825-1 tiling tabbed window manager designed for ke

3.6.1.9.5. IS hacer cambios sugeridos a ion3
3.6.1.9.5.1. solución que he encontrado que arregla Netbeans y ejemplo en Swing

Es meter el region_finalise_focusing en un else.

static void clientwin_do_set_focus(WClientWin *cwin, bool warp)
{
    if(cwin->flags&CLIENTWIN_P_WM_TAKE_FOCUS){
        Time stmp=ioncore_get_timestamp();
        send_clientmsg(cwin->win, ioncore_g.atom_wm_take_focus, stmp);
    } else {
        region_finalise_focusing((WRegion*)cwin, cwin->win, warp);
    }
    
    XSync(ioncore_g.dpy, 0);
}

Pero Konqueror ya no recibe el foco. Es que:

  • Konqueror toma foco, y por lo visto necesita el WM_TAKE_FOCUS y además el region_finalise_focusing
  • Netbeans toma foco, pero hay que evitar hacerle el region_finalise_focusing
3.6.1.9.5.2. sobre region_finalise_focusing
3.6.1.9.5.2.1. la forma habitual de entrar en region_finalise_focusing (xterm, Konqueror)

entro en region_finalise_focusing con: warp: 0 REGION_IS_ACTIVE: 0 ioncore_await_focus(): 0 RevertToParent: 2 CurrentTime: 0

3.6.1.9.5.2.2. y al entrar haciendo clic en título: cambia warp=1, REGION_IS_ACTIVE=2

entro en region_finalise_focusing con: warp: 1 REGION_IS_ACTIVE: 2 ioncore_await_focus(): 0 RevertToParent: 2 CurrentTime: 0

3.6.1.9.5.2.3. el foco se pierde justo durante XSetInputFocus

XSetInputFocus(ioncore_g.dpy, win, RevertToParent, CurrentTime/*ioncore_focus_time*/);

3.6.1.9.5.2.3.1. investigar XSetInputFocus
3.6.1.9.5.3. para lista

Resultados. Para lista:

Hi; thanks for the explanations.
  I tried doing that change and it stayed the same. I also tried doing a sleep(2) before sending the WM_TAKE_FOCUS (with the +2s timestamp), but without success.

  What did work is this:

static void clientwin_do_set_focus(WClientWin *cwin, bool warp)
{
    if(cwin->flags&CLIENTWIN_P_WM_TAKE_FOCUS){
        Time stmp=ioncore_get_timestamp();
        send_clientmsg(cwin->win, ioncore_g.atom_wm_take_focus, stmp);
    } else {
        region_finalise_focusing((WRegion*)cwin, cwin->win, warp);
    }
    
    XSync(ioncore_g.dpy, 0);
}


  I just added the „else“ keyword so that region_finalise_focusing is not called if the WM_TAKE_FOCUS is sent. I don't know the meaning of this, but only that it solves all problems with Netbeans and my example Swing application. Focus is set to the last active widget.
  This, however, makes Konqueror 4 stop receiving focus. This makes me think:
- Konqueror has flag CLIENTWIN_P_WM_TAKE_FOCUS and apparently needs both the WM_TAKE_FOCUS call and the region_finalise_focusing
- Netbeans/Swing also has flag CLIENTWIN_P_WM_TAKE_FOCUS, but if you run the region_finalise_focusing code on it, it loses focus

  Maybe region_finalise_focusing should sometimes be doing nothing in windows like Netbeans.
  Or maybe Swing should be correctly handling the XSetInputFocus(ioncore_g.dpy, win, RevertToParent, CurrentTime) in region_finalise_focusing.

  It is exactly at that XSetInputFocus where the text field at the Swing application loses the keyboard focus (I tested it inserting sleeps between calls).


  I filed this bug to Sun but I don't whether they think the bug is in JDK. The bug report is at http://bugs.sun.com/view_bug.do?bug_id=6798064

  Greetings,
Daniel
3.6.1.9.5.3.1. IS remandar a lista de ion
  • CONCLUSIÓN escrita el <08.m02.2009 21:58>
    Mandado a ion y a Sun (comentario)
3.6.1.9.5.4. nueva sugerencia de Tuomo

Me manda parche.

3.6.1.9.5.4.1. aquí esta el truco

 {
     if(cwin->flags&CLIENTWIN_P_WM_TAKE_FOCUS){
         Time stmp=ioncore_get_timestamp();
+        region_finalise_focusing((WRegion*)cwin, cwin->win, warp, stmp);
         send_clientmsg(cwin->win, ioncore_g.atom_wm_take_focus, stmp);
+    }else{
+        region_finalise_focusing((WRegion*)cwin, cwin->win, warp, CurrentTime);
     }

En cada caso manda un tiempo distinto.

3.6.1.9.5.4.2. le respondo

Well, it improved lots of things. It works perfectly with gtk, qt, tk, keyboard, mouse, … The example code now works when I use Java 1.6.0_12-b04. But if I compile and run it with the unreleased 1.7.0-ea-b43, the focus is still buggy: not only the text field misses focus after going to that window, but also I can't restore the focus to the text field even if I click into it many times. Even with JDK 1.7, this doesn't happen in other window managers (I tried wmaker).

3.6.1.9.5.4.2.1. MALFAR volver a probar para que vaya en Java 1.7
  • CONCLUSIÓN escrita el <18.m05.2009 19:46>
    creo que Tuomo no corregirá esto. Y Sun tampoco. Yo por mi parte quiero librarme de ion
3.6.1.9.5.4.2.1.1. IS que vuelva a compilar ion3
  • CONCLUSIÓN escrita el <28.m02.2009 08:57>
    La solución fue:

    ~/.ion3/lib ; ln -s look_newviolet.lua look.lua
    
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) run  
Starting program: /Werkstatt/ion-3-20090110/ion/ion3 
[Thread debugging using libthread_db enabled]
[New Thread 0xb7d79a70 (LWP 13761)]
>> Unable to find 'look' on search path.
>> drawing engines loaded, trying "de".
>> Unable to find brush for style 'frame-unknown'.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7d79a70 (LWP 13761)]
0x00000000 in ?? ()
(gdb) bt
 #0  0x00000000 in ?? ()
 #1  0x0806e4a7 in grbrush_set_window_shape (brush=0x0, rough=1, n=0, rects=0x0) at gr.c:594

file:/w/ion-3-20090110/ioncore/gr.c::C…A…L…L_DYN grbrush_set_window_shape brush brush rough n rects

void grbrush_set_window_shape(GrBrush *brush, bool rough,
                              int n, const WRectangle *rects)
dh{
    C…A…L…L_DYN(grbrush_set_window_shape, brush, (brush, rough, n, rects));
}

Si al final el problema va a ser: error del gordo pues brocha nula

>> Unable to find brush for style 'frame-tiled'.
>> Unable to find brush for style 'frame-unknown'.

Y no los encuentra porque no ha cargado el "look". Y no lo carga por:

open("/home/dc/.Xdefaults-ali", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/dc/.Xdefaults", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/home/dc/.Xdefaults-ali", O_RDONLY) = -1 ENOENT (No such file or directory)
>> Unable to find 'look' on search path.
>> No drawing engines loaded, trying "de".
open("/home/dc/.ion3/lib/de.so", O_RDONLY) = 5
open("/home/dc/.ion3/lib/ioncore_ext.lc", O_RDONLY) = 5
open("/home/dc/.ion3/lib/ioncore_ext.lc", O_RDONLY) = 5
open("/home/dc/.ion3/lib/ioncore_luaext.lc", O_RDONLY) = 5
open("/home/dc/.ion3/lib/ioncore_luaext.lc", O_RDONLY) = 5
open("/home/dc/.ion3/lib/ioncore_bindings.lc", O_RDONLY) = 5
3.6.1.9.5.4.2.1.2. IS no va, avisar

Aviso también de los problemas de compilación:


Hi, I tried to compile and run ion3 without installing it and I took apparently the painful way.
 I ended up copying most .lua and configuration files to ~/.ion3/lib just because ion3 was looking for them there and otherwise couldn't find them. (Why can't it try also in the current directory?).

 Then I found that ion started with a „segmentation fault“ error (more info below). Much later I discovered the cause: there was a file I couldn't copy to ~/.ion3/lib because it wasn't in ion's source. It is look.lua and is created in the etc/Makefile as a symlink to look_newviolet.lua.

 My request is: instead of creating a link to it at install time, can ion really have a look.lua file which refers (like in #include) look_newviolet.lua? In this way the file doesn't need a special installation step; it is just copied like the others.
 If not, maybe the defaulting to look_newviolet.lua can be included in the C code, so that if it doesn't find look.lua at least it doesn't crash with a segmentation fault.
 I would even find better if ion stopped with an useful error message when it can't find look.lua.


-- Daniel
backtrace:

(gdb) run  
Starting program: /Werkstatt/ion-3-20090110/ion/ion3 
[Thread debugging using libthread_db enabled]
[New Thread 0xb7d79a70 (LWP 13761)]
>> Unable to find 'look' on search path.
>> drawing engines loaded, trying "de".
>> Unable to find brush for style 'frame-unknown'.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7d79a70 (LWP 13761)]
0x00000000 in ?? ()
(gdb) bt
 #0  0x00000000 in ?? ()
 #1  0x0806e4a7 in grbrush_set_window_shape (brush=0x0, rough=1, n=0, rects=0x0) at gr.c:594
3.6.1.9.5.4.2.2. ATENDAS esperar si lo corrige para que JDK1.7 vaya bien
3.6.1.9.5.4.2.3. IS de todas formas, empezar a usar ion3 con su parche para Java 1.6
  • CONCLUSIÓN escrita el <17.m03.2009 23:32>
    me ha costado pero me va NetBeans bien (bueno, hay otros fallos por ion3)
3.6.1.10. ATENDAS enviado a Sun; a ver si lo corrigen (ellos o Tuomo)
3.6.1.10.1. MALFAR avisar a Ion3 de esto
  • CONCLUSIÓN escrita el <08.m02.2009 21:49>
    le aviso en otro correo

We have determined that this report is a new bug and entered the bug into our internal bug tracking system under Bug Id: 6798064.

You can monitor this bug on the Java Bug Database at http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6798064.

3.6.2. IS ion tiene la culpa de que en Netbeans salgan ventanas de 0x0

Ej: Go to file (M-o etc.) Uso ion3 20080207 – muy viejo.

3.6.2.1. IS : probar con más nuevo

Con ion3 20090110 o similar va bien (al menos dentro de Xnest) Tengo que instalarlo.

Lo ¬instalo con: 0launch http://iki.fi/tuomov/dl/Ion3.xml # en mi .xsession. ¡Y funciona! Problema solucionado.

3.7. wmii (gestor de ventanas)

3.7.1. IS que dmenu (menú de wmii) acepte combinaciones de teclas Control-algo

  • CONCLUSIÓN escrita el <28.m10.2010 19:25>
    ya se pusieron algunas, y añadir las personales es fácil

dmenu está en el paquete suckless-tools En la versión 35-1 (Debian, a <06.m08.2010>) me faltan: MNPGBFD y tengo HWUCAE. Estado de la versión última:

  • [X] Control-M para aceptar ← a fecha de <06.m08.2010> está
  • [X] Control-N para avanzar a la siguiente opción ← a fecha de <06.m08.2010> está
  • [X] Control-P para retroceder a la anterior opción ← a fecha de <06.m08.2010> está
  • [ ] Control-G para cancelar
  • [X] Control-B para ir al carácter anterior ← a fecha de <06.m08.2010> está, más o menos
  • [X] Control-F para ir al carácter siguiente ← a fecha de <06.m08.2010> está, más o menos
  • [ ] Control-D para borrar el carácter de la derecha
  • [X] Control-H para borrar el carácter de la izquierda ← en 35.1
  • [X] Control-W para borrar palabra ← en 35.1
  • [X] Control-U para borrar hasta el inicio ← en 35.1
  • [X] Control-C para cancelar ← en 35.1
  • [X] Control-A para ir al inicio ← en 35.1
  • [X] Control-E para ir al final ← en 35.1 ← en 35.1

Así que le añado D y G. Envío parche: http://lists.suckless.org/dev/1008/5361.html

3.8. herramientas de programación, y desarrollo web

3.8.1. kompozer (editor de páginas web)

Éste es el editor de páginas web (HTML) que más recomiendo para gente que quiere tener una página web pero no sabe cómo empezar.

Falta algo de esfuerzo para distribuir este programa y para hacerlo mejor. (O encontrar otro programa mejor.) Mi idea es: prepararlo para que se pueda recomendar fácilmente a quien tiene un proyecto web y quiere ponerlo en práctica.

En <26.m02.2023> está olvidado pero dicen que se sigue usando. No veo el sitio donde se siga desarrollándolo.

3.8.1.1. enlaces de descarga de kompozer en español

Información.

Sobre el editor de HTML (creador de páginas web) Kompozer:

Descarga de última versión en español: http://www.proyectonave.es/productos/descargas#kompozer (Elige debajo de „Kompozer“ la versión para tu sistema operativo)

Descripción del programa, en español: http://www.proyectonave.es/productos/kompozer/

Descripción del programa, en inglés: http://www.kompozer.net/ En 2023 ésta es mejor: https://websitewissen.com/kompozer-editor

3.8.1.2. BONUS hace falta que la página de Kompozer sea más amigable
  • Amigable para la gente en general, no sólo para quien entiende inglés. La página debería mostrarse en el idioma del usuario.
  • Hay que poner fechas para mostrar que el programa es actual
  • Esconder informaciones técnicas (que si GTK, PPC, compilaciones, …). Se supone que es fácil
  • Hay que explicar que en GNU/Linux va mejor usar el gestor de paquetes

Puede ir bien hacer página aparte (en web, blog, …) y luego pedir integrarla con la oficial.

En <26.m02.2023>, https://websitewissen.com/kompozer-editor ya está bien. Y ya indica que el programa es viejo. Aún no está en español.

3.8.1.3. BONUS mejoras que hay que hacerle al programa
  • al editar código, debería estar coloreado
  • usar em y strong y elementos más semánticos en vez de span
  • las informaciones que da no son muy amigables: ej. muchas ventanas emergentes
  • etc. (buscar más)

<30.m03.2010>

3.8.2. Django (aplicaciones web)

3.8.2.1. BONUS ¡hace falta un tipo Moneda!

Motivos:

  • no es trivial (<5 minutos) hacerlo uno mismo, y menos un novato
    • el programador típico no quiere estar preocupándose del redondeo, la precisión de la coma flotante, o los valores especiales como inf y NaN, sino que quiere que funcione
  • tiene muchas partes: representación (localizada), almacenamiento, entrada. También conversión entre monedas, pero eso es más avanzado
    • ha de estar integrado en models., pues no sólo es un campo de formulario (forms.) sino que también tiene representación propia en BD
  • ha de ser compatible con operaciones matemáticas, por tanto no puede ser RegexField (cadena de texto)
  • es algo muy importante en aplicaciones web
  • ¿cómo se van a hacer aplicaciones de negocios en Django si no se pueden representar monedas? Hasta que no esté, Django no es muy apropiado para esto

Los intentos que hay no tienen la calidad suficiente. Hace falta que esté en el núcleo.

3.8.3. BONUS interfaz para clips

Interfaz cómoda para CLIPS (IA): que use readline() o ncurses. Además hay que arreglar el propio CLIPS y hacer que acepte Unicode (si es posible), añadirle un Makefile, y permitir automatizarlo, al estilo UNIX (ya escribí sobre esto al autor)

3.8.4. gdb (depurador)

3.8.4.1. BONUS max-completion-results; parche de Klee Dienes

Me lo mandó el <18.m11.2008> cuando se lo pedí. El <03.m12.2009>, algo tarde…, lo puse en el gestor de tareas de GDB: http://sourceware.org/bugzilla/show_bug.cgi?id=11048

3.8.5. pdb (depurador de Python)

Es el que sale al incluir en el código:

import pdb
pdb.set_trace()
3.8.5.1. IS orden para volver a la línea actual

Implementado parche el <22.m10.2008>.

http://bugs.python.org/issue4179

Le he añadido un comando "l ." a pdb.

3.8.5.1.1. IS adaptar a Python 3.2
3.8.5.1.2. IS incluido ya en Python3k, con la sintaxis que propuse

3.9. IS scribus (maquetación)

3.9.1. MALFAR 0007609: In code: Replace constant numerical values with helpful named constants

  • CONCLUSIÓN escrita el <22.m09.2009 18:40>
    Me temo que no tengo ganas de seguir con esto, pues Scribus es muy chapucero y lo del PDF que implementamos también.

http://bugs.scribus.net/view.php?id=7609

3.9.2. IS adaptar a 1.3.5 los dos parches que hice en openTrends

3.9.2.1. IS 7760, tipo de campo
  • CONCLUSIÓN escrita el <02.m02.2009 01:25>
    lo adaptó fschmid a 1.3.5:

    09-Jan-27 17:43 dclemente New Issue 09-Jan-27 17:43 dclemente File Added: submit-type.patch

    09-Jan-29 22:26 fschmid Note Added: 0021044 09-Jan-31 13:07 fschmid Status new => resolved 09-Jan-31 13:07 fschmid Fixed in Version => 1.3.3.13svn 09-Jan-31 13:07 fschmid Resolution open => fixed 09-Jan-31 13:07 fschmid Assigned To => fschmid 09-Feb-01 16:04 cbradney Status resolved => closed

3.9.2.2. MALFAR 7759, firma digital
  • CONCLUSIÓN escrita el <22.m09.2009 18:40>
    Me temo que no tengo ganas de seguir con esto, pues Scribus es muy chapucero y lo del PDF que implementamos también.

mirar especificación pdf

3.9.2.2.1. contestado; V es opcional

The /V entry seems to be optional. From the PDF 1.8 reference ( http://www.adobe.com/devnet/pdf/pdf_reference.html [^] ), page 446 (12.7.4.5 Signature Fields):

„The field type (FT) shall be Sig, and the field value (V), if present, shall be a signature dictionary containing the signature and specifying various attributes of the signature field (see Table 252).“

3.10. bash (intérprete de comandos de GNU)

3.10.1. BONUS colores al completar

Básicamente: que al completar con TAB también vea los listados de colores, igual que en ls (ej: azul para directorios). Algo muy sencillo pero que no está hecho.

Sólo vi alguna referencia en: http://groups.google.com/group/gnu.bash.bug/browse_thread/thread/ff22232f56f33445/72225aee50272f8d?lnk=gst&q=completions+colour#72225aee50272f8d

3.10.2. BONUS compleción detallada

Quiero que al darle a Shift+TAB, salga un listado de las compleciones posibles pero de forma detallada; tanto como la relación entre ls -l y ls. Saldrá:

  • en el caso de ficheros, la lista de archivos en formato largo, con todas sus opciones (tamaño, fecha, etc.)
  • en el caso de programas, la primera línea de la descripción de su manual
  • en el caso de equipos, los nombres e IPs conocidas para el equipo
  • etc.

3.10.3. BONUS forma fácil de moverse entre directorios; cambiador rápido de directorio

Ej. con las flechitas (arr,aba,izq,der en el teclado) combinadas con modificadores. Cada acción tiene un efecto directo; no hay que confirmarla con ninguna otra tecla. No es necesario mostrar menús, sino sólo hacer un cd. Las teclas serían:

  • Mayúsculas+izquierda: va al directorio padre del actual. En / no hace nada
  • Mayúsculas+derecha: va al primer directorio hijo del actual (1º alfabéticamente). Si no tiene, no hace nada
  • Mayúsculas+arriba: va al anterior hermano del directorio actual
  • Mayúsculas+abajo: va al siguiente hermano del directorio actual
  • Mayúsculas+Control+izquierda: va al elemento anterior de una lista de directorios importantes
    • esta lista está compuesta por una 1ª parte „fija“, seguida del directorio actual, y seguida de una 2ª „dinámica“
    • la 1ª parte es directorios fijos y se han predefinido en .bashrc
    • la 2ª parte se calcula a partir de los directorios visitados por última vez
    • la idea es que „el actual es el centro“, y con la flecha izquierda empezaremos a ver los de la 1ª parte mas con la derecha los de la 2ª. Pero queda por decidir el qué hacer cuando el actual forma parte de la 1ª o 2ª parte. Quizás hay que prohibir repetidos en la lista. Pero eso perjudica el acceso a los de la 2ª cuando el actual pertenecía a la 1ª
  • Mayúsculas+Control+derecha me moverá de forma análoga a la anterior pero empezando por los de la 2ª parte

Recuerdo: será más cómodo si no hay menú, ni confirmación de acción, ni concepto de „estado“ (ej. „estamos seleccionando el 3r directorio“). Sino que cada vez se mira el actual, se computa la lista, se calcula el cambio y se ejecuta.

Se me ocurrió esto el <05.m06.2011> y creo que me irá muy bien… cuando alguien lo haga en bash.

  • [ ] buscar
  • [ ] probar a implementar
  • [ ] proponer

3.11. konqueror y kde

3.11.1. BONUS hacer que C-m sea el intro

Le quité el comportamiento anterior, pero entonces no hace nada.

3.12. openoffice.org

3.12.1. ATENDAS „Más“ al elegir idioma abre otra cosa no relacionada

Me lo dijo Á.T. el <20.m03.2009 12:38>.

http://www.openoffice.org/issues/show_bug.cgi?id=100413

3.13. gnuplot

3.13.1. BONUS diseñar sistema para gráfico de funciones arbitrarias

Ej:

Seno, sin(x) Fijo, 8 Identidad, x

Y que gnuplot lo lea y las pinte

Me hizo falta para hacer un gráfico de líneas horizontales (ej. torres con su altura).

3.13.1.1. probar con call

3.14. Debian

3.14.1. BONUS programa para actualizar paquetes .deb que diga la importancia de cada actualización

Ej. de 1.3.10 a 1.3.11 es poco importante y no la quiero, pero de 1.3.10 a 1.4 es importante y sí la tomo al actualizar.

Puedo asintar la salida de:

root@lovic:/var/cache/apt/archives# LANG=C apt-cache policy python-gtk2
python-gtk2:
  Installed: 2.16.0-1
  Candidate: 2.16.0-1
  Version table:
 *** 2.16.0-1 0
        500 http://ftp.caliu.cat testing/main Packages
        100 /var/lib/dpkg/status

No necesito un instalador que resuelva dependencias; sólo un pequeño filtro ayudante que me diga qué paquetes me conviene actualizar con el apt-get normal.

3.14.1.1. para probar

Instalar a mano versión vieja, ej: http://packages.debian.org/squeeze/sgt-puzzles y luego querer actualizar.

3.14.1.2. IS ∴ buscar mediante apt-show-versions -u

Lo hice mediante un programilla cutre en Perl. Versión 2:

function Anovindaj () {
apt-show-versions -u | perl -ne '/^(.*)\/\S+ upgradeable from (.*) to (.*)/ and print int($3)>int($2)?"Actualiza ".(push @ind,$1 and $1)." de $2 a $3 pues es cambio grande.\n":"No hace falta actualizar $1 de $2 a $3 pues es cambio pequeño.\n"; END { print"En total, te recomiendo actualizar:\napt-get install -u -V @ind\n";}'
}

Me falta revisarla y hacer un poco de control de errores, implementar la detección buena (ej. 1.3.1 → 1.4 es grande), …

3.14.1.3. MALFAR lo puedo hacer con python-apt (paquete apt_pkg)
  • CONCLUSIÓN escrita el <25.m09.2011 21:16>
    demasiada complicación; quedaría un programa difícil de entender
import apt_pkg

3.15. workrave

3.15.1. BONUS ejecutar programitas al cambiar de estado en Workrave

Formas de extensión posibles

  • definir varios eventos posibles y para cada uno, permitir decir el programa a ejecutar. Solución fácil y bastante multiplataforma
  • llamar a una sola función editable, pasándole parámetros que digan el tipo de evento
  • convertir workrave en biblioteca que provea funciones (iniciar descanso, obtener estadísticas, detectar movimiento de ratón, …) y hacer nueva interfaz en otro lenguaje (ej. Emacs Lisp)

4. Tutoriales

Quiero que haya algunos tutoriales (libres, completos, y bien escritos) sobre:

4.1. Redes

  • Content-Type necesario para HTML y para XHTML; explicar el application/xhtml+xml
  • TCP/IP básico: en qué consiste una conexión, qué paquetes se intercambian, …

4.2. Linux

  • privilegios y usuarios en Linux: quiero explicar sobre todo que no se debe trabajar como root, y menos en el modo gráfico. Es un consejo muy importante que todo usuario de Linux ha de saber
  • arrancar un ordenador sin disco duro; por ejemplo, todo desde un disco USB (incluso si la BIOS no arranca desde USB; se puede usar un disquete). Quizás ya hay algún tutorial de esto

4.3. Programación

  • opinión y estudio sobre la filosofía KISS

4.4. Universidad

  • análisis detallado sobre la operación de cortar un trozo de una lista enlazada e insertarlo en otra posición dentro de la misma lista; es un buen lío de punteros (cuando se hace de la forma óptima). Lo hice en alguna práctica de mi universidad (creo que en PS)
  • ejercicios resueltos para IA: búsqueda local, heurística, A*, IDA*, Minimax, satisf. restricciones, backtracking cronológico, lógica difusa, … Ésa es la información que más eché a faltar durante el curso

4.5. Personal

5. Wikipedia

Wikipedia es una enciclopedia libre (GFDL), que cualquiera puede editar (también tú), y en la que hay información de todos los temas.

5.1. Artículos que uso

Me escriben mucho para preguntarme cosas de servidores, HTML, Linux, etc., y a veces contesto con enlaces a la Wikipedia.

Pero no me gusta dar información que está a medias o mal explicada. Algunos artículos los novatos necesitan pero que hay que mejorar son:

  • Ubuntu Linux tenía una captura de pantalla en la que se veía todo gris y en inglés. Vaya impresión que da sobre Linux… Al cabo de un tiempo se cambió, pero aún hacen falta más capturas (bonitas) y en español
  • en Ubuntu Linux también hay que poner la información que buscan los que no saben lo que es. Ahora es para expertos en el tema (ej: habla de repositorios, bugs, arquitecturas, Debian, …). Continuamente estoy enviando a novatos a esta página, y tal como está no sirve para describir qué hace el Ubuntu o el Linux
  • Software libre también lo uso mucho; tendría que explicarse bien, sin irse por otros temas, y de forma que los novatos se queden sin dudas al leer los primeros párrafos
  • Nvu es el editor HTML que recomiendo, pero su artículo no explica casi nada del programa. Estaría bien que alguien lo pruebe y haga la descripción completa (es un programa sencillo)

<24.m04.2006>, actualizado el <15.m07.2006>. Nota del <21.m03.2010>: toca actualizar esto, y hacer una versión estable de los artículos en el momento en que lleguen a ser buenos.

5.2. Páginas web

Conseguir que Página web sea un artículo destacado, o sea, muy bueno. Ha de incluir:

  • lo que hay en las WP en otros idiomas
  • los conceptos que necesita la gente que no sabe lo que son
  • historia, etc.
  • imágenes relevantes
  • respuestas a la pregunta ¿cómo puedo insertar contenido dinámico? Mencionar todos los métodos (JavaScript, PHP, CGIs, Java, …)
  • temas sobre accesibilidad, separación de diseño y contenido, etc.
  • enlaces a los temas técnicos

No ha de haber información repetida (como en Sitio web). Todos los temas relacionados (Internet, WWW, Navegador web, etc.) han de tener enlaces a Página web.

Incluir lo que vaya bien de este texto que escribí: HTML correcto. Ya tiene licencia GFDL.

Desde <25.m03.2006>.

5.3. Ontología informática

Hay una serie de conceptos básicos sobre informática que deberían estar bien explicados, como mínimo para la gente que no entiende. Ejemplos: modelo cliente-servidor, página web, nombre de dominio, editor de texto, …

Por eso creo que hay que hacer:

  1. Una lista de conceptos relacionados con informática, organizados por niveles. Por ejemplo: «básico», «medio», y después las especializaciones («juegos», «diseño», «historia», «programación», …). Básicamente, lo que quiero es una ontología (Informática). Probablemente ya existan muchas; hay que buscar.
  2. Comprobar que los conceptos básicos están bien explicados.

Desde <09.m04.2006>

5.4. Conceptos básicos sobre GNU/Linux

Deberían estar explicados los conceptos básicos sobre software libre, licencias, GNU, Linux, y otros, para que quienes no entienden del tema puedan aprender. Muchos de los que usamos GNU/Linux ya sabemos lo que es el vim, ssh, bash, Debian, la GPL, y todo ese tipo de cosas; creo que es por eso por la que hay tan pocas explicaciones básicas.

Los detalles técnicos pueden estar en artículos especializados o en secciones por el centro, pero el principio de cada artículo tiene que tener la información básica. Eso incluye: las respuestas a las preguntas típicas de los novatos.

Hay que hacer una lista de conceptos relacionados con este tema, y comprobar que están todos bien explicados en la Wikipedia en español.

Desde <09.m04.2006>

5.5. Servidores

Me escriben mucho para preguntarme dudas sobre servidores web, siempre las mismas. En vez de responderlo cada vez (no tengo tiempo), me va mucho mejor incluir la información en la Wikipedia y luego dar la dirección.

Ya escribí algunos artículos, del estilo de Registro de dominios o Alojamiento compartido (ver lista más larga), pero aún falta mucho por arreglar e incluir.

Hay que hablar de puertos TCP, conmutadores y concentradores (hub/switch), direcciones IP, nombres de dominio, DNS, IPs dinámicas, servidores (de correo, web, de IRC, …), páginas web, proxy, etc. Si es necesario hago una lista completa, aunque más vale empezar y ya está.

Desde <21.m04.2006>.

5.6. Komputada leksikono

Asegurarse de que los conceptos que aparecen en este diccionario de informática están en la Wikipedia en esperanto, bien explicados. Así será más fácil hablar de cualquier tema informático.

Desde <25.m03.2006>. <21.m03.2010>: aún faltan

5.7. Incluir información de mi web

En mi página tengo información en varios idiomas, con licencias libres. Las partes objetivas y enciclopédicas (y sólo ésas) pueden ser incluidas en la Wikipedia correspondiente.

Podría hacerlo yo, pero me gustaría romper con esa tradición de que el autor original es quien lo ha de hacer todo. He usado licencias libres, y por tanto se pueden aprovechar los documentos para otros trabajos; cualquiera puede hacerlo.

Desde <25.m03.2006>. En <21.m03.2010>: ningún progreso que yo sepa. Bah, da igual. Artículos importantes han pasado años sin mejoras.

5.8. Pequeños fallos

  • la "versión para imprimir" debería ser realmente una versión reducida del artículo, no el mismo HTML con otro CSS. Motivo: al copiar+pegar, sólo se copia HTML, no el CSS. Por eso el HTML no ha de tener contenido no deseable (como enlaces o información escondida).

Los fallos gordos, en la sección llamada A largo plazo, apartado Arreglar Wikipedia.

Apuntado el <25.m03.2006>

6. A largo plazo

También he hecho una lista de cosas que me gustaría ver acabadas algún día, pero que necesitan más dedicación, y no sé si me pondré con ellas (las haré muy poco a poco, a menos que tenga un puesto de trabajo relacionado).

Iba a llamarle «Utopías», pero quedará mejor como «Temas de investigación» :-).