GNU / Linux /

Una aplicación que programa por vos

Participa en el tema Una aplicación que programa por vos en el foro GNU / Linux.
CodMACs: Se trata de una aplicación, en desarrollo. La idea es que, basandose en un ...

Buscar en este tema:
 
  •  
    #1 Si sos programador tenes que leer esto
    CodMACs:

    Se trata de una aplicación, en desarrollo. La idea es que, basandose en un código fuente de base, te genera programas de forma automática (obviamente, luego tendrías que retocarlos) pero la idea es similar a lo que hace el PHP (que genera una respuesta código HTML) Y es similar también porque es un código embebido dentro de otro.
    En este caso, uno pone el código fuente base (en cualquier lenguaje) y dentro de éste (embebido) código del CodMACs. Luego, basandose en los datos recogidos por la aplicación desde SQL (por ahora, despues le voy a poner MySQL) y en unas funciones que puede definir cada uno te arma un programa base sobre la tabla que elijas.

    Lo estoy desarrollando yo en ratos libres. Como acá frecuentan programadores me pareció un lugar copado para postearlo. Y aprovecho para pedir colaboración de quién desee participar.

    Acá está la explicación más detallada:
    http://stealthissoftware.blogspot.co...grama-por.html

    Y la página que estoy armando:
    http://codmacs.tk

    Screenshots:







    Un Ejemplo. Tengo este código base:

    Código:
            c = "SELECT COUNT(*) AS cant FROM @@!TableName WHERE "
            If grd.Gset(0, rec) <> grd.regi(0) Then
                <@@LOOPPKEY>
                sql = sql & "@@!Identifier=" & @@CASE(@@!Format,DataTipo)(grd.regi(G@@!Identifier)) & ","
                </@@LOOPPKEY>
                sql= c & sql
                rs.Open sql, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
                cant = rs!cant
                rs.Close
                If cant > 0 Then
                    Cancel = True 'hay 2 claves iguales
                    Exit Sub
                End If
            End If
    
    Como ven es código escrito en Visual Basic. Pero hay cosas externas, las detallo:

    <@@LOOPPKEY> : Esta marca indica que hay que hacer un loop por cada campo Primary_Key.
    @@!Identifier: Hace referencia al nombre del campo current.
    @@CASE(@@!Format,DataTipo) : @@CASE indica que se va a usar una función. @@!Format, hace referencia al formato del campo current. DataTipo es el nombre de la función custom. Aclaro, esas funciones son definidas por el usuario, totalmente a medida según las necesidades. Pongo el ejemplo de DataTipo:

    Código:
    BEGIN Function DataTipo(Value)
        CASE 'nvarchar['+* || CSql
        CASE 'datetime' || FSql
        CASE 'smalldatetime' || FSql
        CASE 'money' || NSql
        CASE 'real' || NSql
        CASE 'int' || NSql
    END DataTipo
    
    Luego, tomando desde las tablas (te genera un XML con la estructura, editable en texto plano y treeview) Ejemplo:

    Código:
    <CodeMACs Version="0.1">
        <DataBase Name="Testeo">
            <Articulos>
                <PrimaryKey>arti</PrimaryKey>
                <Purpose> </Purpose>
                <Items>
                    <arti>
                        <Field>0</Field>
                        <Format>nvarchar[16]</Format>
                        <Description> </Description>
                    </arti>
                    <nomb>
                        <Field>1</Field>
                        <Format>nvarchar[30]</Format>
                        <Description> </Description>
                    </nomb>
                    <fami>
                        <Field>2</Field>
                        <Format>tinyint</Format>
                        <Description> </Description>
                    </fami>
                    <rubr>
                        <Field>3</Field>
                        <Format>smallint</Format>
                        <Description> </Description>
                    </rubr>
                    <unid>
                        <Field>4</Field>
                        <Format>nvarchar[3]</Format>
                        <Description> </Description>
                    </unid>
                    <tiva>
                        <Field>5</Field>
                        <Format>tinyint</Format>
                        <Description> </Description>
                    </tiva>
                    <nota>
                        <Field>6</Field>
                        <Format>nvarchar[30]</Format>
                        <Description> </Description>
                    </nota>
                    <stok>
                        <Field>7</Field>
                        <Format>nvarchar[1]</Format>
                        <Description> </Description>
                    </stok>
                    <arts>
                        <Field>8</Field>
                        <Format>nvarchar[16]</Format>
                        <Description> </Description>
                    </arts>
                    <frac>
                        <Field>9</Field>
                        <Format>real</Format>
                        <Description> </Description>
                    </frac>
                    <prec>
                        <Field>10</Field>
                        <Format>money</Format>
                        <Description> </Description>
                    </prec>
                </Items>
            </Articulos>
        </DataBase>
    </CodeMACs>
    
    Ahi vemos que en Artículos (la única tabla que puse) tiene como primary key el campo arti. El resultado del código puesto arriba, usando esta tabla es:

    Código:
            c = "SELECT COUNT(*) AS cant FROM Articulos WHERE "
            If grd.Gset(0, rec) <> grd.regi(0) Then
                sql = sql & "arti=" & Csql(grd.regi(Garti)) & ","
                sql= c & sql
                rs.Open sql, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
                cant = rs!cant
                rs.Close
                If cant > 0 Then
                    Cancel = True 'hay 2 claves iguales
                    Exit Sub
                End If
            End If
    
    Además, asi como @@!Identifier, hay otras cosas a las cuales se pueden hacer referencia:

    @@LOOP: Hace un loop por cada campo de la tabla
    @@IFPKEY: Es un if para saber si un campo es Primary Key y actuar en consecuencia.
    @@!Index: Es un simple contador incremental dentro del loop
    @@!FileName: Nombre del archivo a generar (se puede autoreferenciar)
    @@!FileExt: Extensión del archivo a generar

    @@!@: Es un arroba literal
    @@!!: Es un ! literal
    @@!(: Parentesis literal
    @@!): Idem

    Además pienso ponerle soporte para expresiones regulares.

    Asi se ve el editor del XML en modo treeview.




    La idea es hacerlo OpenSource. Y portarlo a Linux
    Se entiende???? Fui claro en mi explicación??
    Y lo más importante, que les parece la idea?

    NOTA: Porqué lo posteo acá? Primero para que se enteren de que existe. Segundo, porque lo quiero portar a linux y liberar el codigo fuente. Y tercero porque, más allá de que está hecho para Windows (por ahora) genera código fuente en cualquier lenguaje, entonces, bien podrían usarlo para generar código que luego van a usar en linux.
    Y 4to... porque creo que en este foro es donde más gente "abierta" e inteligente hay. Gente que puede ser capaz de apreciar algo hecho por otro con esfuerzo y sin fines de lucro.
    Editado por apocalypse - 02.05.2009 12:23 hs.
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/gnu-linux.50/918469-una-aplicacion-que-programa-por-vos.html
    | Más
  • #2 Re: Una aplicación que programa por vos

    Parece bastante interesante, mas alla que yo de programacion 0 (solo bash scripting) pero me parece una alternativa buena para luego hacer portables las aplicaciones. Desde ya si open-source sabemos como el crecimiento se puede tornar exponencial desde aca lo unico que puedo hacer es darte el " segui para delante negro..!!" saludos
    Me gusta este mensaje
  • #3 Re: Una aplicación que programa por vos

    Originalmente publicado por lea_b Ver mensaje
    Parece bastante interesante, mas alla que yo de programacion 0 (solo bash scripting) pero me parece una alternativa buena para luego hacer portables las aplicaciones. Desde ya si open-source sabemos como el crecimiento se puede tornar exponencial desde aca lo unico que puedo hacer es darte el " segui para delante negro..!!" saludos
    Gracias!
    Me parece que mi problema grande es que no me hago entender. En el foro de programación lo postié y no tuve ni una sola respuesta. O no se entiende nada, o realmente es una mierda la idea, je!
    Yo creo que está piola, de hecho, lo hice para mi (luego decidí liberarlo para todo el mundo)
    Me gusta este mensaje
  • #4 Re: Una aplicación que programa por vos

    apocalypse: A mi me parecio exelente idea. Me costo un poco enteder lo que hace... es un medio engorrso el post.. .
    Cuando tenga un tiempito lo bajo a ver que tal esta.
    Me gusta este mensaje
  • #5 Re: Una aplicación que programa por vos

    Originalmente publicado por criztianix Ver mensaje
    apocalypse: A mi me parecio exelente idea. Me costo un poco enteder lo que hace... es un medio engorrso el post.. .
    Cuando tenga un tiempito lo bajo a ver que tal esta.
    Si. La cagada grande es esa. NO logro ser claro. Es 100% mi culpa...

    La segunda gran cagada es que lo tengo para windowze. Por eso lo postié acá. Me gustaría ir armando algo para linux. De ahi, liberar el código (no tengo idea de donde publicarlo, salvo sourceforge) y ahi, si pega y a alguien le gusta y quiere toquetearlo, joya. Cero interés de lucro.
    Me gusta este mensaje
  • #6 Re: Una aplicación que programa por vos

    Comprendi el concepto, y la aplicacion es GROSISIMA!
    Lo que si, no lo puedo bajar como para probarlo.
    Si necesitas una mano para hacer el port de linux, avisame.
    Saludos
    Me gusta este mensaje
  • #7 Re: Una aplicación que programa por vos

    Originalmente publicado por MaRsOn
    Comprendi el concepto, y la aplicacion es GROSISIMA!
    Lo que si, no lo puedo bajar como para probarlo.
    Si necesitas una mano para hacer el port de linux, avisame.
    Saludos
    Lo subí acá así nomás. No hice todavia un instalador ni nada. Tiene bugs por todos lados!! (aviso)
    Piensen que lo hago en ratos libres (que no son muchos) pero está hecho con amor (como feliz domingo)
    Saludos
    Archivos adjuntos
    Tipo de archivo: rar CodMACs.rar (108.0 KB, 0 vistas)
    Me gusta este mensaje
  • #8 Re: Una aplicación que programa por vos

    UPDATE:

    La aplicación original se canceló. Hace ya varios meses que vengo armando la misma idea pero en python y, además usando la misma sintaxis de python como lenguaje de macros. Así como PHP está embebido en HTML CodMACs/Python va a estar embebido en el lenguaje que se desee.

    Ya tengo desarrollado un 99% del framework, sólo modo texto.

    A quien le interese, no dude contactarme, ya sea para adquirirlo o para obtener el source y, o bien darme una mano o bien, chusmearlo.

    Saludos
    Me gusta este mensaje


Estadísticas del tema
  • 7 RESPUESTAS
  • 325 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB