Generando Codigo con AjTalk

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Generando Codigo con AjTalk

Angel Java Lopez
Hola gente!

Para maese @garduino: gracias a TDD y AjTalk, tengo un minimo proceso de
templates (salio en un poco mas de una hora):

https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st

Espero que se entiendad esos tests

Un texto como:

'Hello ${model}'

lo compila a un objeto Template que tiene un bloque que recibe :model y
:stream.

template run: aModel stream: aStream

ejecuta ese bloque compilado. y escribe en el stream (bueno, no es un
stream como el de uds, creo que uds. harian obj streamOn: stream
internamente, yo hago por ahora stream write: obj).

Tambien puedo compilar

'Hello <# model do: [ :item | stream write: item]. #>'

Es decir, lo que esta en <# #> pasa directamente a codigo del bloque (no
hay que olvidar el punto final, por ahora).

En un rato le voy a agregar dos cosas:

- Armar un template desde el texto de un archivo
- Tener un modelo dinamico, un DynamicObject tal que su doesNotUnderstand
permita tener setters, getters arbitrarios

dyn := DynamicObject new
dyn name: 'Adam'.
dyn age: 800.

de tal manera que lo pueda pasar como modelo al template cuando se ejecuta.

No es fino? ;-)

Es lo mismo que uso para generar codigo, en Ruby, Javascript/Node.js y el
AjGenesis original de .NET.

Angel "AjTalk" Lopez
@ajlopez
gh:ajlopez
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

garduino
Hola Angel!

Si! Es muy interesante! Este es el tipo de cosas que son realmente
interesantes y si, fina, fina!

Creo que si sigo sin poder hacer que los hosters comunes acepten Cog voy a
terminar haciendo algo que genere php, porque es lo que anda en todas
partes......la verdad no tengo nada contra el php, al contrario, me da de
comer, pero es mortalmente aburrido programar y debuggear en php........asi
que hace tiempo que me da vueltas por la cabeza hacer "algo" que desde
Smalltalk me permita generar PHP fácilmente, basado en templates. Ya lo
hice para html, pero aún no para php....

Ahora bien, esto para seguir con "lo tradicional", pero viendo como la web
se mueve y cambia, justo hoy estuve leyendo i twittee un par de artículos
que me hacen pensar:

http://techcrunch.com/2012/11/30/why-enterprise-apps-are-moving-to-single-page-design/
http://www.3scale.net/2012/12/the-death-of-the-web-page/

tiene que ver también con los comentarios de Sebastián sobre "mobile
first".....digo, quizás sea tiempo de pensar las aplicaciones que vienen de
un modo diferente.....

Me gusta mucho más AjTalk como segundo nombre que Java!

Salud!




El 9 de diciembre de 2012 11:48, Angel Java Lopez
<[hidden email]>escribió:

> **
>
>
> Hola gente!
>
> Para maese @garduino: gracias a TDD y AjTalk, tengo un minimo proceso de
> templates (salio en un poco mas de una hora):
>
>
> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st
>
> Espero que se entiendad esos tests
>
> Un texto como:
>
> 'Hello ${model}'
>
> lo compila a un objeto Template que tiene un bloque que recibe :model y
> :stream.
>
> template run: aModel stream: aStream
>
> ejecuta ese bloque compilado. y escribe en el stream (bueno, no es un
> stream como el de uds, creo que uds. harian obj streamOn: stream
> internamente, yo hago por ahora stream write: obj).
>
> Tambien puedo compilar
>
> 'Hello <# model do: [ :item | stream write: item]. #>'
>
> Es decir, lo que esta en <# #> pasa directamente a codigo del bloque (no
> hay que olvidar el punto final, por ahora).
>
> En un rato le voy a agregar dos cosas:
>
> - Armar un template desde el texto de un archivo
> - Tener un modelo dinamico, un DynamicObject tal que su doesNotUnderstand
> permita tener setters, getters arbitrarios
>
> dyn := DynamicObject new
> dyn name: 'Adam'.
> dyn age: 800.
>
> de tal manera que lo pueda pasar como modelo al template cuando se ejecuta.
>
> No es fino? ;-)
>
> Es lo mismo que uso para generar codigo, en Ruby, Javascript/Node.js y el
> AjGenesis original de .NET.
>
> Angel "AjTalk" Lopez
> @ajlopez
> gh:ajlopez
>
>  
>



--
============================================
Germán S. Arduino  <gsa @ arsol.net>   Twitter: garduino
Arduino Software  http://www.arduinosoftware.com
PasswordsPro  http://www.passwordspro.com
greensecure.blogspot.com germanarduino.blogspot.com
============================================
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

Angel Java Lopez
Hola gente!

Maese @garduino! Gracias por los enlaces... ahora no encuentro lo que vi
ayer, un proyecto que refrescaba el HTML de una pagina, via Ajax, el nuevo
HTML se formaba/armaba en el servidor.

Bien, lo prometido es deuda, tengo un DynamicObject (creo que se llama un
Null object, a cualquier atributo no definido responde nil), tests:
https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/DynamicObjectTests.st

Lo del template desde un archivo, y template con modelo dinamico, al final
de los tests:
https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st

Jeje... justo ayer genere PHP con AjGenesis, ver que el modelo del que se
parte se podria reusar tal cual para otra tecnologia, por ejemplo, quiero
generar para Node.js/Express:

https://github.com/ajlopez/Inmob/tree/master/codegen
El modelo se describe en:
https://github.com/ajlopez/Inmob/tree/master/codegen/Project

Ejemplo
[image: Inline image 1]

Lo que te perdes por no querer .NET ! ;-)

Bueno, hay gente que usa mi proyecto en Ruby:
https://github.com/ajlopez/AjGenesisRuby
no vi que alguien usara el de Node.hs:
https://github.com/ajlopez/AjGenesisNode

Algo asi quiero hacer con lo que arme hoy de AjTalk, un AjGenesis usando
como lenguaje Smalltalk.

Un viejo proyecto (PHP generando PHP, debe tener como 10 anios) migrado
hace poco a GitHub:
https://github.com/ajlopez/AjEntitiesPhp
pero podria generar cualquier texto.

El truco es usar PHP como lenguaje de template, llamarlo desde PHP e
interceptar el resultado (ahi en ese proyecto esta como se hace, es un
obbuffer o algo asi). Que recuerde, este proyecto tenia un modelo que en
vez de levantarse de texto o de XML, se levanta desde la base de datos, y
entonces tiene ABMs de esos modelos, donde se puede definir las entidades,
propiedades simples, y proyectos.

Nos leemos!

Angel "AjGenesis" Lopez
@ajlopez
gh:ajlopez

2012/12/9 Germán Arduino <[hidden email]>

> **
>
>
> Hola Angel!
>
> Si! Es muy interesante! Este es el tipo de cosas que son realmente
> interesantes y si, fina, fina!
>
> Creo que si sigo sin poder hacer que los hosters comunes acepten Cog voy a
> terminar haciendo algo que genere php, porque es lo que anda en todas
> partes......la verdad no tengo nada contra el php, al contrario, me da de
> comer, pero es mortalmente aburrido programar y debuggear en php........asi
> que hace tiempo que me da vueltas por la cabeza hacer "algo" que desde
> Smalltalk me permita generar PHP fácilmente, basado en templates. Ya lo
> hice para html, pero aún no para php....
>
> Ahora bien, esto para seguir con "lo tradicional", pero viendo como la web
> se mueve y cambia, justo hoy estuve leyendo i twittee un par de artículos
> que me hacen pensar:
>
>
> http://techcrunch.com/2012/11/30/why-enterprise-apps-are-moving-to-single-page-design/
> http://www.3scale.net/2012/12/the-death-of-the-web-page/
>
> tiene que ver también con los comentarios de Sebastián sobre "mobile
> first".....digo, quizás sea tiempo de pensar las aplicaciones que vienen de
> un modo diferente.....
>
> Me gusta mucho más AjTalk como segundo nombre que Java!
>
> Salud!
>
>
>
>
> El 9 de diciembre de 2012 11:48, Angel Java Lopez <[hidden email]>escribió:
>
>  **
>>
>>
>> Hola gente!
>>
>> Para maese @garduino: gracias a TDD y AjTalk, tengo un minimo proceso de
>> templates (salio en un poco mas de una hora):
>>
>>
>> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st
>>
>> Espero que se entiendad esos tests
>>
>> Un texto como:
>>
>> 'Hello ${model}'
>>
>> lo compila a un objeto Template que tiene un bloque que recibe :model y
>> :stream.
>>
>> template run: aModel stream: aStream
>>
>> ejecuta ese bloque compilado. y escribe en el stream (bueno, no es un
>> stream como el de uds, creo que uds. harian obj streamOn: stream
>> internamente, yo hago por ahora stream write: obj).
>>
>> Tambien puedo compilar
>>
>> 'Hello <# model do: [ :item | stream write: item]. #>'
>>
>> Es decir, lo que esta en <# #> pasa directamente a codigo del bloque (no
>> hay que olvidar el punto final, por ahora).
>>
>> En un rato le voy a agregar dos cosas:
>>
>> - Armar un template desde el texto de un archivo
>> - Tener un modelo dinamico, un DynamicObject tal que su doesNotUnderstand
>> permita tener setters, getters arbitrarios
>>
>> dyn := DynamicObject new
>> dyn name: 'Adam'.
>> dyn age: 800.
>>
>> de tal manera que lo pueda pasar como modelo al template cuando se
>> ejecuta.
>>
>>  No es fino? ;-)
>>
>> Es lo mismo que uso para generar codigo, en Ruby, Javascript/Node.js y el
>> AjGenesis original de .NET.
>>
>> Angel "AjTalk" Lopez
>> @ajlopez
>> gh:ajlopez
>>
>>
>
>
> --
> ============================================
> Germán S. Arduino  <gsa @ arsol.net>   Twitter: garduino
> Arduino Software  http://www.arduinosoftware.com
> PasswordsPro  http://www.passwordspro.com
> greensecure.blogspot.com germanarduino.blogspot.com
> ============================================
>
>  
>

inmob01.jpg (37K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

Angel Java Lopez
Hola gente!

Disculpen, al fin encontre el enlace, lo taggee ayer:

http://37signals.com/svn/posts/3112-how-basecamp-next-got-to-be-so-damn-fast-without-using-much-client-side-ui

It’s a similar idea to JavaScript-based one-page apps, but instead of
sending JSON across the wire and implementing the whole UI in client-side
MVC JavaScript, we just send regular HTML. From a programmers perspective,
it’s just like a regular Rails app, except Stacker requests do not require
rendering the layout.

2012/12/9 Angel Java Lopez <[hidden email]>

> Hola gente!
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

garduino
In reply to this post by Angel Java Lopez
Gracias por todos los datos y links Angel!


(No creo perderme nada al estar .net free, al contrario, pero bueno, son
puntos de vista).


Si, definitivamente todo esto es muy interesante, el tema es cuanto tiempo
se necesita para hacer algo útil y si en el mismo tiempo no lo hacés usando
las cosas que uno intenta generar.... pero bue, eso quitaría toda la
diversión :)

Saludos (hace muchhho calor acá otra vez, la pqlop).




El 9 de diciembre de 2012 12:30, Angel Java Lopez
<[hidden email]>escribió:

> **
>
>
> Hola gente!
>
> Maese @garduino! Gracias por los enlaces... ahora no encuentro lo que vi
> ayer, un proyecto que refrescaba el HTML de una pagina, via Ajax, el nuevo
> HTML se formaba/armaba en el servidor.
>
> Bien, lo prometido es deuda, tengo un DynamicObject (creo que se llama un
> Null object, a cualquier atributo no definido responde nil), tests:
>
> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/DynamicObjectTests.st
>
> Lo del template desde un archivo, y template con modelo dinamico, al final
> de los tests:
>
> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st
>
> Jeje... justo ayer genere PHP con AjGenesis, ver que el modelo del que se
> parte se podria reusar tal cual para otra tecnologia, por ejemplo, quiero
> generar para Node.js/Express:
>
> https://github.com/ajlopez/Inmob/tree/master/codegen
> El modelo se describe en:
> https://github.com/ajlopez/Inmob/tree/master/codegen/Project
>
> Ejemplo
> [image: Inline image 1]
>
> Lo que te perdes por no querer .NET ! ;-)
>
> Bueno, hay gente que usa mi proyecto en Ruby:
> https://github.com/ajlopez/AjGenesisRuby
> no vi que alguien usara el de Node.hs:
> https://github.com/ajlopez/AjGenesisNode
>
> Algo asi quiero hacer con lo que arme hoy de AjTalk, un AjGenesis usando
> como lenguaje Smalltalk.
>
> Un viejo proyecto (PHP generando PHP, debe tener como 10 anios) migrado
> hace poco a GitHub:
> https://github.com/ajlopez/AjEntitiesPhp
> pero podria generar cualquier texto.
>
> El truco es usar PHP como lenguaje de template, llamarlo desde PHP e
> interceptar el resultado (ahi en ese proyecto esta como se hace, es un
> obbuffer o algo asi). Que recuerde, este proyecto tenia un modelo que en
> vez de levantarse de texto o de XML, se levanta desde la base de datos, y
> entonces tiene ABMs de esos modelos, donde se puede definir las entidades,
> propiedades simples, y proyectos.
>
> Nos leemos!
>
> Angel "AjGenesis" Lopez
> @ajlopez
> gh:ajlopez
>
> 2012/12/9 Germán Arduino <[hidden email]>
>
>> **
>>
>>
>> Hola Angel!
>>
>> Si! Es muy interesante! Este es el tipo de cosas que son realmente
>> interesantes y si, fina, fina!
>>
>> Creo que si sigo sin poder hacer que los hosters comunes acepten Cog voy
>> a terminar haciendo algo que genere php, porque es lo que anda en todas
>> partes......la verdad no tengo nada contra el php, al contrario, me da de
>> comer, pero es mortalmente aburrido programar y debuggear en php........asi
>> que hace tiempo que me da vueltas por la cabeza hacer "algo" que desde
>> Smalltalk me permita generar PHP fácilmente, basado en templates. Ya lo
>> hice para html, pero aún no para php....
>>
>> Ahora bien, esto para seguir con "lo tradicional", pero viendo como la
>> web se mueve y cambia, justo hoy estuve leyendo i twittee un par de
>> artículos que me hacen pensar:
>>
>>
>> http://techcrunch.com/2012/11/30/why-enterprise-apps-are-moving-to-single-page-design/
>> http://www.3scale.net/2012/12/the-death-of-the-web-page/
>>
>> tiene que ver también con los comentarios de Sebastián sobre "mobile
>> first".....digo, quizás sea tiempo de pensar las aplicaciones que vienen de
>> un modo diferente.....
>>
>> Me gusta mucho más AjTalk como segundo nombre que Java!
>>
>> Salud!
>>
>>
>>
>>
>> El 9 de diciembre de 2012 11:48, Angel Java Lopez <[hidden email]>escribió:
>>
>>  **
>>>
>>>
>>> Hola gente!
>>>
>>> Para maese @garduino: gracias a TDD y AjTalk, tengo un minimo proceso de
>>> templates (salio en un poco mas de una hora):
>>>
>>>
>>> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st
>>>
>>> Espero que se entiendad esos tests
>>>
>>> Un texto como:
>>>
>>> 'Hello ${model}'
>>>
>>> lo compila a un objeto Template que tiene un bloque que recibe :model y
>>> :stream.
>>>
>>> template run: aModel stream: aStream
>>>
>>> ejecuta ese bloque compilado. y escribe en el stream (bueno, no es un
>>> stream como el de uds, creo que uds. harian obj streamOn: stream
>>> internamente, yo hago por ahora stream write: obj).
>>>
>>> Tambien puedo compilar
>>>
>>> 'Hello <# model do: [ :item | stream write: item]. #>'
>>>
>>> Es decir, lo que esta en <# #> pasa directamente a codigo del bloque (no
>>> hay que olvidar el punto final, por ahora).
>>>
>>> En un rato le voy a agregar dos cosas:
>>>
>>> - Armar un template desde el texto de un archivo
>>> - Tener un modelo dinamico, un DynamicObject tal que su
>>> doesNotUnderstand permita tener setters, getters arbitrarios
>>>
>>> dyn := DynamicObject new
>>> dyn name: 'Adam'.
>>> dyn age: 800.
>>>
>>> de tal manera que lo pueda pasar como modelo al template cuando se
>>> ejecuta.
>>>
>>>  No es fino? ;-)
>>>
>>> Es lo mismo que uso para generar codigo, en Ruby, Javascript/Node.js y
>>> el AjGenesis original de .NET.
>>>
>>> Angel "AjTalk" Lopez
>>> @ajlopez
>>> gh:ajlopez
>>>
>>>
>>
>>
>> --
>> ============================================
>> Germán S. Arduino  <gsa @ arsol.net>   Twitter: garduino
>> Arduino Software  http://www.arduinosoftware.com
>> PasswordsPro  http://www.passwordspro.com
>> greensecure.blogspot.com germanarduino.blogspot.com
>> ============================================
>>
>>
>  
>

inmob01.jpg (37K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

Angel Java Lopez
Bueno, ahora le agregue paginas dinamicas al servidor web

[image: Inline image 1]


Esa pagina viene de un template con Smalltalk embebido, el proceso de
generacion de codigo a partir de texto que aparecio hoy al mediodia:
https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Console/templates/customers.tpl

Algo del codigo que lo lanza:
https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Console/Programs/WebSiteTemplates.st

Fue un poco "quick and dirty" pero salio ;-). No soporta verbo POST por
ejemplo, todavia

En algun momento me gustaria transformarlo en MVC. Donde la vista se defina
con el template, y el controlador diga que vista y modelo entregar.

Nos leemos!

Angel "Java" Lopez
@ajlopez
gh:ajlopez

2012/12/9 Germán Arduino <[hidden email]>

> **
>
>
> Gracias por todos los datos y links Angel!
>
>
> (No creo perderme nada al estar .net free, al contrario, pero bueno, son
> puntos de vista).
>
>
> Si, definitivamente todo esto es muy interesante, el tema es cuanto tiempo
> se necesita para hacer algo útil y si en el mismo tiempo no lo hacés usando
> las cosas que uno intenta generar.... pero bue, eso quitaría toda la
> diversión :)
>
> Saludos (hace muchhho calor acá otra vez, la pqlop).
>
>
>
>
> El 9 de diciembre de 2012 12:30, Angel Java Lopez <[hidden email]>escribió:
>
>  **
>>
>>
>> Hola gente!
>>
>> Maese @garduino! Gracias por los enlaces... ahora no encuentro lo que vi
>> ayer, un proyecto que refrescaba el HTML de una pagina, via Ajax, el nuevo
>> HTML se formaba/armaba en el servidor.
>>
>> Bien, lo prometido es deuda, tengo un DynamicObject (creo que se llama un
>> Null object, a cualquier atributo no definido responde nil), tests:
>>
>> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/DynamicObjectTests.st
>>
>> Lo del template desde un archivo, y template con modelo dinamico, al
>> final de los tests:
>>
>> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st
>>
>> Jeje... justo ayer genere PHP con AjGenesis, ver que el modelo del que se
>> parte se podria reusar tal cual para otra tecnologia, por ejemplo, quiero
>> generar para Node.js/Express:
>>
>> https://github.com/ajlopez/Inmob/tree/master/codegen
>> El modelo se describe en:
>> https://github.com/ajlopez/Inmob/tree/master/codegen/Project
>>
>> Ejemplo
>> [image: Inline image 1]
>>
>> Lo que te perdes por no querer .NET ! ;-)
>>
>> Bueno, hay gente que usa mi proyecto en Ruby:
>> https://github.com/ajlopez/AjGenesisRuby
>> no vi que alguien usara el de Node.hs:
>> https://github.com/ajlopez/AjGenesisNode
>>
>> Algo asi quiero hacer con lo que arme hoy de AjTalk, un AjGenesis usando
>> como lenguaje Smalltalk.
>>
>> Un viejo proyecto (PHP generando PHP, debe tener como 10 anios) migrado
>> hace poco a GitHub:
>> https://github.com/ajlopez/AjEntitiesPhp
>> pero podria generar cualquier texto.
>>
>> El truco es usar PHP como lenguaje de template, llamarlo desde PHP e
>> interceptar el resultado (ahi en ese proyecto esta como se hace, es un
>> obbuffer o algo asi). Que recuerde, este proyecto tenia un modelo que en
>> vez de levantarse de texto o de XML, se levanta desde la base de datos, y
>> entonces tiene ABMs de esos modelos, donde se puede definir las entidades,
>> propiedades simples, y proyectos.
>>
>> Nos leemos!
>>
>> Angel "AjGenesis" Lopez
>> @ajlopez
>> gh:ajlopez
>>
>> 2012/12/9 Germán Arduino <[hidden email]>
>>
>>> **
>>>
>>>
>>> Hola Angel!
>>>
>>> Si! Es muy interesante! Este es el tipo de cosas que son realmente
>>> interesantes y si, fina, fina!
>>>
>>> Creo que si sigo sin poder hacer que los hosters comunes acepten Cog voy
>>> a terminar haciendo algo que genere php, porque es lo que anda en todas
>>> partes......la verdad no tengo nada contra el php, al contrario, me da de
>>> comer, pero es mortalmente aburrido programar y debuggear en php........asi
>>> que hace tiempo que me da vueltas por la cabeza hacer "algo" que desde
>>> Smalltalk me permita generar PHP fácilmente, basado en templates. Ya lo
>>> hice para html, pero aún no para php....
>>>
>>> Ahora bien, esto para seguir con "lo tradicional", pero viendo como la
>>> web se mueve y cambia, justo hoy estuve leyendo i twittee un par de
>>> artículos que me hacen pensar:
>>>
>>>
>>> http://techcrunch.com/2012/11/30/why-enterprise-apps-are-moving-to-single-page-design/
>>> http://www.3scale.net/2012/12/the-death-of-the-web-page/
>>>
>>> tiene que ver también con los comentarios de Sebastián sobre "mobile
>>> first".....digo, quizás sea tiempo de pensar las aplicaciones que vienen de
>>> un modo diferente.....
>>>
>>> Me gusta mucho más AjTalk como segundo nombre que Java!
>>>
>>> Salud!
>>>
>>>
>>>
>>>
>>> El 9 de diciembre de 2012 11:48, Angel Java Lopez <[hidden email]
>>> > escribió:
>>>
>>>  **
>>>>
>>>>
>>>> Hola gente!
>>>>
>>>> Para maese @garduino: gracias a TDD y AjTalk, tengo un minimo proceso
>>>> de templates (salio en un poco mas de una hora):
>>>>
>>>>
>>>> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st
>>>>
>>>> Espero que se entiendad esos tests
>>>>
>>>> Un texto como:
>>>>
>>>> 'Hello ${model}'
>>>>
>>>> lo compila a un objeto Template que tiene un bloque que recibe :model y
>>>> :stream.
>>>>
>>>> template run: aModel stream: aStream
>>>>
>>>> ejecuta ese bloque compilado. y escribe en el stream (bueno, no es un
>>>> stream como el de uds, creo que uds. harian obj streamOn: stream
>>>> internamente, yo hago por ahora stream write: obj).
>>>>
>>>> Tambien puedo compilar
>>>>
>>>> 'Hello <# model do: [ :item | stream write: item]. #>'
>>>>
>>>> Es decir, lo que esta en <# #> pasa directamente a codigo del bloque
>>>> (no hay que olvidar el punto final, por ahora).
>>>>
>>>> En un rato le voy a agregar dos cosas:
>>>>
>>>> - Armar un template desde el texto de un archivo
>>>> - Tener un modelo dinamico, un DynamicObject tal que su
>>>> doesNotUnderstand permita tener setters, getters arbitrarios
>>>>
>>>> dyn := DynamicObject new
>>>> dyn name: 'Adam'.
>>>> dyn age: 800.
>>>>
>>>> de tal manera que lo pueda pasar como modelo al template cuando se
>>>> ejecuta.
>>>>
>>>>  No es fino? ;-)
>>>>
>>>> Es lo mismo que uso para generar codigo, en Ruby, Javascript/Node.js y
>>>> el AjGenesis original de .NET.
>>>>
>>>> Angel "AjTalk" Lopez
>>>> @ajlopez
>>>> gh:ajlopez
>>>>
>>>>
>>>
>>>
>>> --
>>> ============================================
>>> Germán S. Arduino  <gsa @ arsol.net>   Twitter: garduino
>>> Arduino Software  http://www.arduinosoftware.com
>>> PasswordsPro  http://www.passwordspro.com
>>> greensecure.blogspot.com germanarduino.blogspot.com
>>> ============================================
>>>
>>>
>>
>
>
>  
>

ajtalkcs06.png (11K) Download Attachment
inmob01.jpg (37K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

garduino
Muy bueno, gracias por compartir acá todo esto.

Saludos!


El 9 de diciembre de 2012 19:25, Angel Java Lopez
<[hidden email]>escribió:

> **
>
>
> Bueno, ahora le agregue paginas dinamicas al servidor web
>
> [image: Inline image 1]
>
>
> Esa pagina viene de un template con Smalltalk embebido, el proceso de
> generacion de codigo a partir de texto que aparecio hoy al mediodia:
>
> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Console/templates/customers.tpl
>
> Algo del codigo que lo lanza:
>
> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Console/Programs/WebSiteTemplates.st
>
> Fue un poco "quick and dirty" pero salio ;-). No soporta verbo POST por
> ejemplo, todavia
>
> En algun momento me gustaria transformarlo en MVC. Donde la vista se
> defina con el template, y el controlador diga que vista y modelo entregar.
>
> Nos leemos!
>
> Angel "Java" Lopez
> @ajlopez
> gh:ajlopez
>
> 2012/12/9 Germán Arduino <[hidden email]>
>
>> **
>>
>>
>> Gracias por todos los datos y links Angel!
>>
>>
>> (No creo perderme nada al estar .net free, al contrario, pero bueno, son
>> puntos de vista).
>>
>>
>> Si, definitivamente todo esto es muy interesante, el tema es cuanto
>> tiempo se necesita para hacer algo útil y si en el mismo tiempo no lo hacés
>> usando las cosas que uno intenta generar.... pero bue, eso quitaría toda la
>> diversión :)
>>
>> Saludos (hace muchhho calor acá otra vez, la pqlop).
>>
>>
>>
>>
>> El 9 de diciembre de 2012 12:30, Angel Java Lopez <[hidden email]>escribió:
>>
>>  **
>>>
>>>
>>> Hola gente!
>>>
>>> Maese @garduino! Gracias por los enlaces... ahora no encuentro lo que vi
>>> ayer, un proyecto que refrescaba el HTML de una pagina, via Ajax, el nuevo
>>> HTML se formaba/armaba en el servidor.
>>>
>>> Bien, lo prometido es deuda, tengo un DynamicObject (creo que se llama
>>> un Null object, a cualquier atributo no definido responde nil), tests:
>>>
>>> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/DynamicObjectTests.st
>>>
>>> Lo del template desde un archivo, y template con modelo dinamico, al
>>> final de los tests:
>>>
>>> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st
>>>
>>> Jeje... justo ayer genere PHP con AjGenesis, ver que el modelo del que
>>> se parte se podria reusar tal cual para otra tecnologia, por ejemplo,
>>> quiero generar para Node.js/Express:
>>>
>>> https://github.com/ajlopez/Inmob/tree/master/codegen
>>> El modelo se describe en:
>>> https://github.com/ajlopez/Inmob/tree/master/codegen/Project
>>>
>>> Ejemplo
>>> [image: Inline image 1]
>>>
>>> Lo que te perdes por no querer .NET ! ;-)
>>>
>>> Bueno, hay gente que usa mi proyecto en Ruby:
>>> https://github.com/ajlopez/AjGenesisRuby
>>> no vi que alguien usara el de Node.hs:
>>> https://github.com/ajlopez/AjGenesisNode
>>>
>>> Algo asi quiero hacer con lo que arme hoy de AjTalk, un AjGenesis usando
>>> como lenguaje Smalltalk.
>>>
>>> Un viejo proyecto (PHP generando PHP, debe tener como 10 anios) migrado
>>> hace poco a GitHub:
>>> https://github.com/ajlopez/AjEntitiesPhp
>>> pero podria generar cualquier texto.
>>>
>>> El truco es usar PHP como lenguaje de template, llamarlo desde PHP e
>>> interceptar el resultado (ahi en ese proyecto esta como se hace, es un
>>> obbuffer o algo asi). Que recuerde, este proyecto tenia un modelo que en
>>> vez de levantarse de texto o de XML, se levanta desde la base de datos, y
>>> entonces tiene ABMs de esos modelos, donde se puede definir las entidades,
>>> propiedades simples, y proyectos.
>>>
>>> Nos leemos!
>>>
>>> Angel "AjGenesis" Lopez
>>> @ajlopez
>>> gh:ajlopez
>>>
>>> 2012/12/9 Germán Arduino <[hidden email]>
>>>
>>>> **
>>>>
>>>>
>>>> Hola Angel!
>>>>
>>>> Si! Es muy interesante! Este es el tipo de cosas que son realmente
>>>> interesantes y si, fina, fina!
>>>>
>>>> Creo que si sigo sin poder hacer que los hosters comunes acepten Cog
>>>> voy a terminar haciendo algo que genere php, porque es lo que anda en todas
>>>> partes......la verdad no tengo nada contra el php, al contrario, me da de
>>>> comer, pero es mortalmente aburrido programar y debuggear en php........asi
>>>> que hace tiempo que me da vueltas por la cabeza hacer "algo" que desde
>>>> Smalltalk me permita generar PHP fácilmente, basado en templates. Ya lo
>>>> hice para html, pero aún no para php....
>>>>
>>>> Ahora bien, esto para seguir con "lo tradicional", pero viendo como la
>>>> web se mueve y cambia, justo hoy estuve leyendo i twittee un par de
>>>> artículos que me hacen pensar:
>>>>
>>>>
>>>> http://techcrunch.com/2012/11/30/why-enterprise-apps-are-moving-to-single-page-design/
>>>> http://www.3scale.net/2012/12/the-death-of-the-web-page/
>>>>
>>>> tiene que ver también con los comentarios de Sebastián sobre "mobile
>>>> first".....digo, quizás sea tiempo de pensar las aplicaciones que vienen de
>>>> un modo diferente.....
>>>>
>>>> Me gusta mucho más AjTalk como segundo nombre que Java!
>>>>
>>>> Salud!
>>>>
>>>>
>>>>
>>>>
>>>> El 9 de diciembre de 2012 11:48, Angel Java Lopez <
>>>> [hidden email]> escribió:
>>>>
>>>>  **
>>>>>
>>>>>
>>>>> Hola gente!
>>>>>
>>>>> Para maese @garduino: gracias a TDD y AjTalk, tengo un minimo proceso
>>>>> de templates (salio en un poco mas de una hora):
>>>>>
>>>>>
>>>>> https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/TemplatesTests.st
>>>>>
>>>>> Espero que se entiendad esos tests
>>>>>
>>>>> Un texto como:
>>>>>
>>>>> 'Hello ${model}'
>>>>>
>>>>> lo compila a un objeto Template que tiene un bloque que recibe :model
>>>>> y :stream.
>>>>>
>>>>> template run: aModel stream: aStream
>>>>>
>>>>> ejecuta ese bloque compilado. y escribe en el stream (bueno, no es un
>>>>> stream como el de uds, creo que uds. harian obj streamOn: stream
>>>>> internamente, yo hago por ahora stream write: obj).
>>>>>
>>>>> Tambien puedo compilar
>>>>>
>>>>> 'Hello <# model do: [ :item | stream write: item]. #>'
>>>>>
>>>>> Es decir, lo que esta en <# #> pasa directamente a codigo del bloque
>>>>> (no hay que olvidar el punto final, por ahora).
>>>>>
>>>>> En un rato le voy a agregar dos cosas:
>>>>>
>>>>> - Armar un template desde el texto de un archivo
>>>>> - Tener un modelo dinamico, un DynamicObject tal que su
>>>>> doesNotUnderstand permita tener setters, getters arbitrarios
>>>>>
>>>>> dyn := DynamicObject new
>>>>> dyn name: 'Adam'.
>>>>> dyn age: 800.
>>>>>
>>>>> de tal manera que lo pueda pasar como modelo al template cuando se
>>>>> ejecuta.
>>>>>
>>>>>  No es fino? ;-)
>>>>>
>>>>> Es lo mismo que uso para generar codigo, en Ruby, Javascript/Node.js y
>>>>> el AjGenesis original de .NET.
>>>>>
>>>>> Angel "AjTalk" Lopez
>>>>> @ajlopez
>>>>> gh:ajlopez
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> ============================================
>>>> Germán S. Arduino  <gsa @ arsol.net>   Twitter: garduino
>>>> Arduino Software  http://www.arduinosoftware.com
>>>> PasswordsPro  http://www.passwordspro.com
>>>> greensecure.blogspot.com germanarduino.blogspot.com
>>>> ============================================
>>>>
>>>>
>>>
>>
>>
>>
>  
>

inmob01.jpg (37K) Download Attachment
ajtalkcs06.png (11K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

Edgar De Cleene
In reply to this post by garduino
Estuve siguiendo este thread con atencion.
Los links que mandaste y sus derivados me dejaron pensando a mi tambien

Edgar



Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

Angel Java Lopez
Ah! Que bueno!

Podrias elaborar? Digo, te dejaron pensando en que? Cual tema?

Nos leemos!

Angel "Java" Lopez
@ajlopez
gh:ajlopez


2012/12/10 Edgar J. De Cleene <[hidden email]>

> **
>
>
> Estuve siguiendo este thread con atencion.
> Los links que mandaste y sus derivados me dejaron pensando a mi tambien
>
> Edgar
>
>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

Angel Java Lopez
In reply to this post by Edgar De Cleene
Hola gente!

Edgar? que fue lo que te llamo la atencion?

Vamos, cuente, cuente! ;-)

2012/12/10 Edgar J. De Cleene <[hidden email]>

> **
>
>
> Estuve siguiendo este thread con atencion.
> Los links que mandaste y sus derivados me dejaron pensando a mi tambien
>
> Edgar
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

Edgar De Cleene
> Hola gente!
>
>
> Edgar? que fue lo que te llamo la atencion?
>
> Vamos, cuente, cuente! ;-)
>
> 2012/12/10 Edgar J. De Cleene <[hidden email]>
>  
> Estuve siguiendo este thread con atencion.
> Los links que mandaste y sus derivados me dejaron pensando a mi tambien
>
> Edgar
>

Creo que era en un link derivado.
Ahi lei que se supone que lo que viene son aplicaciones web y se hablaba de
"la  muerte de la pagina web " como hoy la conocemos, que el esquema actual
de links y recargas de paginas no se usaria mas.
Hasta habia un ejemplo de un sitio que no baje, asi que mucho mas no puedo
decir.

Edgar


Reply | Threaded
Open this post in threaded view
|

Re: Generando Codigo con AjTalk

Angel Java Lopez
Ah! Ahora tengo mas contexto.

Bien, para los que les interesa, el enlace debio ser:

http://www.3scale.net/2012/12/the-death-of-the-web-page/

Algo relacionado:

http://techcrunch.com/2012/11/30/why-enterprise-apps-are-moving-to-single-page-design/

Y tenia otro, mas, que ahora no encuentro, debi haberlo mencionado en este
thread, donde alguien daba ejemplo de: enviar HTML, en vez de JSON, al
cliente.

Lo bueno de enviar JSON, es que permite que se puedan construir distintos
clientes: desde una pagina web, a un cliente, no se, supongo Android
nativo. O lo que aparezca maniana.

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez


2012/12/17 Edgar J. De Cleene <[hidden email]>

> **
>
>
> > Hola gente!
> >
> >
> > Edgar? que fue lo que te llamo la atencion?
> >
> > Vamos, cuente, cuente! ;-)
> >
> > 2012/12/10 Edgar J. De Cleene <[hidden email]>
> >
> > Estuve siguiendo este thread con atencion.
> > Los links que mandaste y sus derivados me dejaron pensando a mi tambien
> >
> > Edgar
> >
>
> Creo que era en un link derivado.
> Ahi lei que se supone que lo que viene son aplicaciones web y se hablaba de
> "la muerte de la pagina web " como hoy la conocemos, que el esquema actual
> de links y recargas de paginas no se usaria mas.
> Hasta habia un ejemplo de un sitio que no baje, asi que mucho mas no puedo
> decir.
>
> Edgar
>
>  
>