Programación visual

YAPA – Javascript maker visually

http://jsmaker.com/

http://www.stencyl.com/download/

https://github.com/okamstudio/godot/wiki

https://scratch.mit.edu/about/

http://www.squeakland.org/download

http://appinventor.mit.edu/explore/get-started.html

https://en.wikipedia.org/wiki/SynthEdit

https://en.wikipedia.org/wiki/OpenMusic

https://en.wikipedia.org/wiki/Visual_programming_language

Advertisements

Notepad++ sesiones a mi

Intentando optimizar la organización de proyecto, gracias a la función de SESIÓN que traen incorporada este editor (como muchos otros) es posible guardar el listado de archivos abiertos, así la próxima vez que se abre el programa ya aparecen todos juntos.

También es posible guardar ese estado en un archivo: Menú Archivo > Guarda Sesión …

Notepad++ no tienen una extensión específica para este tipo de archivos, así que puede ser cualquiera. Yo opté por poner .npp

Así que cuando guardo una sesión, preferentemente en la raiz de la carpeta del proyecto que esté trabajando, le pongo Proyecto.npp

El tema es que es algo molesto tenér que abrir Notepad++, ir al menú, Cargar Sesión… y navegar en el cuadro de diálogo a la carpeta donde tengo guardado el archivo de sesión. ¿No sería más cómodo hacer doble click sobre el archivo y que Notepad++ lo cargara directo?

Este comportamiento se puede lograr sin mucho esfuerzo, aunque tuve buscar un poco, porque inicialemente pensé que habría que hacer algo con la línea de comandos y lanzar un parámetro.

Aquí: http://stackoverflow.com/questions/11181583/how-to-open-notepad-session-files-as-sessions-instead-of-raw-text-files

Se explica que se puede agregar en la configuración de Notepad++, apartado MISC. en un cuadrito que pone Ext. archivo sesión la extensión que uno quiera para que interprete esos tipos como archivos se sesión.

Póngale npp y listo. Chau!

GetSimple modificando el escritor de XML

Dado que versionar archivos XML que están todo en una sola línea es absurdo estoy intentando modificar el GETSIMPLE para que escriba los TAGS XML separados por retornos de carro.

Primero buscqué en el foro oficial para tener un pista de por donde tocar XML tags

Pocos resultados, el más prometedor

http://get-simple.info/forums/showthread.php?tid=1593&highlight=XML+tags

donde hablas del SimpleXML el parser

Con esto hago una búsqueda de cadena en los archivos

SimpleXML

Y saltan varios. Uno de ellos, changedata.php, me llama la atención.

Aquí encuentro una parte del código con $xml => asXML ($filem) que me parece es la clave.

Manos a la obra

La primera prueba fue realizar la modificación antes de que los datos sean grabados, convirtiendo el XML en STRING, hacer los remplazos y volver a convertir.

Busco de nuevo: https://duckduckgo.com/?q=asXML

y llego a la fuente php.net

http://php.net/manual/es/simplexml.examples-basic.php

http://php.net/manual/es/simplexmlelement.tostring.php

Me encuentro con que la clase tienen ya los métodos para realizar esto de convertir de un tipo a otro y hago mi primer intento a lo bruto

Hay que insertar una nueva línea, como siempre me olvido, consulto aquí

    // --- INI PARCHE Insertar retornos entre TAGs XMLS
    $xmlStringTmp = $xml->asXML();
    $xmlStringTmp = str_replace("><",">\n<",$xmlStringTmp);
    $xml = new SimpleXMLElement($xmlStringTmp);
    // --- FIN PARCHE
    
     $xml->asXML($filem);

Y… rompe todo, creo que el problema es que a lo bruto separa los <![CDATA[]>, pero también inserta lineas en otras partes donde no debería.

Investigando un poco más cómo carga los archivos el GetSimple descubro el file_get_contents($file); y para mi gusto también existe file_put_contents($file);

Así que en el segundo intento vamos con cargar el XML que ya grabó en un string, modificarlo aprovechando cuidar lo de <![CDATA[]>, y luego escribir el archivo otra vez, entonces:

(nótece que vamos después del $xml->asXML )

    $xml->asXML($filem);
    
    /* 
    --- INI PARCHE Insertar lineas entre TAGs XMLS
    
    Dado que al manipular el string obtenido del objeto XML
    se generaba cosas extrañas y "rompía" un poco el formato
    del XML que espera GetSimple se optó por recargar el archivo
    y luego modificarlo, teniendo la precación de sólo insertar entre
    los <TAGS> y no los <![DACA[]]>
    
    */

    $tmpXMLfile = file_get_contents($filem);
    $tmpNTC = "###NO_TOCA_BOTON###";
    
    // Insertamos los seguros para no romper los CDATA
    $tmpXMLfile = str_replace("><![CDATA",">$tmpNTC<![CDATA",$tmpXMLfile);
    $tmpXMLfile = str_replace("]]></","]]>$tmpNTC</",$tmpXMLfile);
    
    // Agregamos las nuevas líneas \n entre ><
    $tmpXMLfile = str_replace("><",">\n<",$tmpXMLfile);
    
    // Quitamos los seguros
    $tmpXMLfile = str_replace("$tmpNTC","",$tmpXMLfile);
    file_put_contents($filem,$tmpXMLfile);    
    
    // --- FIN PARCHE

Y… funciona como una seda! Chau.