Tuesday, October 30, 2007

Ruby in Steel

Hoy día me instalé el Ruby in Steel versión personal. Que es eso? Pues es un plug-in para programar en Ruby y en Rails desde el entorno de Visual Studio.

El paquete completo de instalación pesa solamente 2,5 Mb...Y nos permite utilizar el Visual Studio (Con todas sus ventajas) para poder programar.

                    Ruby_Steel_About

                    Ruby_Steel_Project

                    Ruby_Steel_File

                    Ruby_Steel_Code

                              Ruby_Steel_Running

Hasta ahora, solamente he hecho la prueba con un programa...Pero por lo que he podido comprobar...El Ruby in Steel es excelente! y la versión personal es 100% gratuita -;)

Saludos,

Blag.

ABAP LOGO - Dibuja en ABAP!


Este es mi nuevo proyecto...Una copia del lenguaje de programación LOGO, utilizando ABAP.

Que es lo que se puede hacer?

  • Puedes escoger entre cargar o grabar un script.

  • Entiende los siguintes comandos.

    • GOTO

    • WRITE

    • SQUARE

    • FILL_SQUARE

    • TRIANGLE

    • FILL_TRIANGLE

    • RECTANGLE

    • FILL_RECTANGLE

    • HORIZONTAL_LINE

    • VERTICAL_LINE

    • DIAGONAL_LINE



  • Puedes visualizar el gráfico generado o crear una orden de spool.

  • Posee un manejo de errores para los comandos del Script.


Veamos algunas imágenes -:)











Ahora...El código fuente...

*&----------------------------------------------------------------*
*& Report ZABAP_LOGO *
*&----------------------------------------------------------------*
*& Developed by: Alvaro "Blag" Tejada Galindo. *
*& Date: 28/10/2007 *
*&----------------------------------------------------------------*
*& Supported commands: *
*& GOTO *
*& WRITE *
*& SQUARE *
*& FILL_SQUARE *
*& TRIANGLE *
*& FILL_TRIANGLE *
*& RECTANGLE *
*& FILL_RECTANGLE *
*& HORIZONTAL_LINE *
*& VERTICAL_LINE *
*& DIAGONAL_LINE *
*&----------------------------------------------------------------*
report zabap_logo no standard page heading.

*&----------------------------------------------------------------*
* TYPES *
*&----------------------------------------------------------------*
types: begin of ty_lines,
line type string,
end of ty_lines.

*&----------------------------------------------------------------*
* VARIABLES *
*&----------------------------------------------------------------*
data: custom_container type ref to cl_gui_custom_container,
text_editor type ref to cl_gui_textedit,
w_ucomm type sy-ucomm,
w_lines type i,
w_tabix type sy-tabix,
w_tabix_aux type sy-tabix,
w_text(254) type c,
w_file_name type string,
w_long type i,
is_text type c.

data: pos_col type i,
pos_line type i,
p_newcol type i,
text type string,
text_line type string,
value type i,
value2 type i,
draw_flag type c,
second_run type c,
create_spool type c,
w_subrc type sy-subrc,
path type string,
w_save type c,
w_load type c,
fullpath type string.

*&----------------------------------------------------------------*
* INTERNAL TABLES *
*&----------------------------------------------------------------*
data: t_lines type standard table of ty_lines,
t_command type table of string,
t_filetab type filetable.

*&----------------------------------------------------------------*
* CONSTANTS *
*&----------------------------------------------------------------*
constants: line_length type i value 254.

*&----------------------------------------------------------------*
* FIELD-SYMBOLS *
*&----------------------------------------------------------------*
field-symbols: <fs_lines> like line of t_lines,
<fs_command> like line of t_command,
<fs_command_line> like line of t_command,
<fs_filetab> like line of t_filetab.

*&----------------------------------------------------------------*
* SELECTION-SCREEN *
*&----------------------------------------------------------------*
selection-screen begin of block file with frame.
parameters:
p_file type rlgrap-filename,
p_save radiobutton group rapt user-command test default 'X',
p_load radiobutton group rapt.
selection-screen end of block file.

*&----------------------------------------------------------------*
* AT SELECTION-SCREEN OUTPUT *
*&----------------------------------------------------------------*
at selection-screen output.

*&----------------------------------------------------------------*
* AT SELECTION-SCREEN ON VALUE-REQUEST *
*&----------------------------------------------------------------*
at selection-screen on value-request for p_file.
if p_load eq 'X'.
call method cl_gui_frontend_services=>file_open_dialog
exporting
window_title = 'Select file'
default_filename = '*.txt'
file_filter = '*.txt'
changing
file_table = t_filetab
rc = w_subrc.

read table t_filetab index 1
assigning <fs_filetab>.
if <fs_filetab> is assigned.
w_file_name = <fs_filetab>.
p_file = w_file_name.
endif.
else.
call method cl_gui_frontend_services=>file_save_dialog
exporting
window_title = 'Select file'
file_filter = '*.txt'
changing
filename = w_file_name
path = path
fullpath = fullpath.

p_file = fullpath.
endif.

*-----------------------------------------------------------------*
* START-OF-SELECTION *
*-----------------------------------------------------------------*
start-of-selection.
call screen 0100.

*&----------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT *
*&----------------------------------------------------------------*
module status_0100 output.

set pf-status 'STATUS_MAIN'.
set titlebar 'TITLE'.

if draw_flag eq space.
perform call_editor.
else.
leave to list-processing.
endif.

endmodule. " STATUS_0100 OUTPUT

*&----------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT *
*&----------------------------------------------------------------*
module user_command_0100 input.

w_ucomm = sy-ucomm.

case w_ucomm.
when 'BACK' or 'CANCEL' or 'EXIT'.
set screen 0.
exit.
when 'SPOOL'.
create_spool = 'X'.
perform show_graphic.
second_run = 'X'.
draw_flag = 'X'.
when 'SHOW'.
perform show_graphic.
second_run = 'X'.
draw_flag = 'X'.
endcase.

endmodule. " USER_COMMAND_0100 INPUT

*&----------------------------------------------------------------*
*& Form call_editor *
*&----------------------------------------------------------------*
form call_editor.

if text_editor is initial.
create object custom_container
exporting
container_name = 'CUSTOM_CONTROL'
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.

create object text_editor
exporting
wordwrap_mode
= cl_gui_textedit=>wordwrap_at_fixed_position
wordwrap_position = line_length
wordwrap_to_linebreak_mode = cl_gui_textedit=>true
parent = custom_container
exceptions
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
gui_type_not_supported = 5
others = 6.
endif.

if p_file ne space and p_load eq 'X'.
call function 'GUI_UPLOAD'
exporting
filename = w_file_name
tables
data_tab = t_lines.

if not t_lines[] is initial.
call method text_editor->open_local_file
exporting
file_name = p_file.

call method cl_gui_cfw=>flush.
endif.
endif.

endform. " call_editor

*&---------------------------------------------------------------*
*& Form show_graphic *
*&---------------------------------------------------------------*
form show_graphic.

if second_run eq 'X'.
clear: t_lines,w_lines,w_tabix,text_line.
refresh t_lines.
endif.

if t_lines[] is initial.

call method text_editor->get_line_count
importing
lines = w_lines.

call method cl_gui_cfw=>flush.

do w_lines times.
w_tabix = w_tabix + 1.
call method text_editor->get_line_text
exporting
line_number = w_tabix
importing
text = w_text.

call method cl_gui_cfw=>flush.

append initial line to t_lines
assigning <fs_lines>.
<fs_lines>-line = w_text.
enddo.
endif.

clear w_tabix.

if p_file ne space and create_spool eq 'X'.
new-page print on no dialog keep in spool 'X'.
endif.

loop at t_lines assigning <fs_lines>.
split <fs_lines>-line at space into table t_command.
loop at t_command assigning <fs_command>.
w_tabix = sy-tabix.
translate <fs_command> to upper case.
case <fs_command>.
when 'GOTO'.
clear is_text.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into pos_col.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into pos_line.
perform goto using pos_col pos_line.
when 'WRITE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into text.
while sy-subrc eq 0.
concatenate text_line text
into text_line separated by space.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into text.
if sy-subrc ne 0.
exit.
endif.
w_long = strlen( text ) - 1.
if text+0(1) eq '"' or text+w_long(1) eq '"'.
concatenate text_line text
into text_line separated by space.
replace all occurrences of '"' in text_line
with space.
condense text_line.
exit.
endif.
endwhile.
is_text = 'X'.
perform write_text using text_line.
when 'DRAW'.
clear is_text.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
assigning <fs_command_line>.
translate <fs_command_line> to upper case.
case <fs_command_line>.
when 'SQUARE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
perform draw_square using value.
when 'FILL_SQUARE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
perform draw_fill_square using value.
when 'TRIANGLE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
perform draw_triangle using value.
when 'FILL_TRIANGLE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
perform draw_fill_triangle using value.
when 'RECTANGLE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value2.
perform draw_rectangle using value value2.
when 'FILL_RECTANGLE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value2.
perform draw_fill_rectangle using value value2.
when 'HORIZONTAL_LINE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
perform draw_horizontal_line using value.
when 'VERTICAL_LINE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
perform draw_vertical_line using value.
when 'DIAGONAL_LINE'.
w_tabix = w_tabix + 1.
read table t_command index w_tabix
into value.
perform draw_diagonal_line using value.
when others.
perform show_draw_error using <fs_command_line>.
exit.
endcase.
when others.
if is_text ne 'X'.
perform show_error using <fs_command>.
exit.
endif.
endcase.
endloop.
endloop.

if w_file_name ne space.
call function 'GUI_DOWNLOAD'
exporting
filename = w_file_name
tables
data_tab = t_lines.

if create_spool eq 'X'.
new-page print off.
create_spool = space.
endif.

endif.

endform. " show_graphic

*&----------------------------------------------------------------*
*& Form goto *
*&----------------------------------------------------------------*
form goto using p_col
p_line.

leave to list-processing.

skip to line pos_line.
position pos_col.

endform. " goto

*&----------------------------------------------------------------*
*& Form draw_square *
*&----------------------------------------------------------------*
form draw_square using p_value.

clear w_tabix.

w_tabix_aux = pos_line - 1.

do p_value times.
w_tabix = w_tabix + 1.
if w_tabix eq 1.
do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.
elseif w_tabix eq p_value.
write:/ ''.
clear w_tabix_aux.
w_tabix_aux = pos_line - 1.
do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.
else.
write at /pos_line '*'.
p_newcol = pos_line + p_value - 1.
write at p_newcol '*'.
endif.
enddo.

endform. " draw_square

*&----------------------------------------------------------------*
*& Form draw_fill_square *
*&----------------------------------------------------------------*
form draw_fill_square using p_value.

clear w_tabix.

do p_value times.
w_tabix_aux = pos_line - 1.
do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.
write:/ ''.
enddo.

endform. " draw_fill_square

*&----------------------------------------------------------------*
*& Form draw_triangle *
*&----------------------------------------------------------------*
form draw_triangle using p_value.

data: w_number type i,
w_times type i,
w_pos_col type i,
w_pos_line type i,
w_tabix_tri type i,
w_end_value type i.

clear w_tabix.

w_tabix_aux = pos_line - 1.

w_number = p_value mod 2.
w_end_value = p_value - 1.
if w_number ne 0.
w_times = ( p_value + 1 ) / 2.
do w_times times.
w_tabix = w_tabix + 1.
if w_tabix eq 1.
w_tabix_aux = pos_line + w_times.
write at w_tabix_aux '*'.
elseif w_tabix eq w_end_value.
write:/ ''.
w_tabix_aux = pos_line.
do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.
else.
w_tabix_aux = w_tabix_aux - w_tabix + 1.
write at /w_tabix_aux '*'.
w_tabix_tri = w_tabix_tri + 1.
w_tabix_aux = w_tabix_aux + w_tabix.
w_tabix = w_tabix + 1.
write at w_tabix_aux '*'.
endif.
enddo.
endif.

endform. " draw_triangle

*&----------------------------------------------------------------*
*& Form draw_fill_triangle *
*&----------------------------------------------------------------*
form draw_fill_triangle using p_value.

data: w_number type i,
w_times type i,
w_pos_col type i,
w_pos_line type i,
w_tabix_tri type i,
w_end_value type i,
w_tabix_fill type i.

clear w_tabix.

w_tabix_aux = pos_line - 1.

w_number = p_value mod 2.
w_end_value = p_value - 1.
if w_number ne 0.
w_times = ( p_value + 1 ) / 2.
do w_times times.
w_tabix = w_tabix + 1.
if w_tabix eq 1.
w_tabix_aux = pos_line + w_times.
write at w_tabix_aux '*'.
elseif w_tabix eq w_end_value.
write:/ ''.
w_tabix_aux = pos_line.
do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.
else.
w_tabix_aux = w_tabix_aux - w_tabix + 1.
w_tabix_fill = w_tabix_aux.
write at /w_tabix_aux '*'.
w_end_value = w_tabix_aux.
w_tabix_tri = w_tabix_tri + 1.
w_tabix_aux = w_tabix_aux + w_tabix.
w_tabix = w_tabix + 1.
w_tabix_fill = w_tabix_aux - w_tabix_fill.
do w_tabix_fill times.
w_end_value = w_end_value + 1.
write at w_end_value '*'.
enddo.
endif.
enddo.
endif.

endform. " draw_fill_triangle

*&----------------------------------------------------------------*
*& Form write_text *
*&----------------------------------------------------------------*
form write_text using p_text.

write at pos_line p_text.

endform. " write_text

*&----------------------------------------------------------------*
*& Form draw_rectangle *
*&----------------------------------------------------------------*
form draw_rectangle using p_value
p_value2.

data: w_number type i.
clear w_tabix.

w_number = pos_line + p_value - 1.
w_tabix_aux = pos_line - 1.

do p_value2 times.
w_tabix = w_tabix + 1.
if w_tabix eq 1.
do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.
elseif w_tabix eq p_value2.
write:/ ''.
clear w_tabix_aux.
w_tabix_aux = pos_line - 1.
do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.
else.
write at /pos_line '*'.
write at w_number '*'.
endif.
enddo.

endform. " draw_rectangle

*&----------------------------------------------------------------*
*& Form draw_fill_fill_rectangle *
*&----------------------------------------------------------------*
form draw_fill_rectangle using p_value
p_value2.

clear w_tabix.

do p_value2 times.
w_tabix_aux = pos_line - 1.
do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.
write:/ ''.
enddo.

endform. " draw_fill_rectangle

*&----------------------------------------------------------------*
*& Form show_error *
*&----------------------------------------------------------------*
form show_error using p_command.

if p_command eq 'SQUARE' or
p_command eq 'FILL_SQUARE' or
p_command eq 'TRIANGLE' or
p_command eq 'FILL_TRIANGLE' or
p_command eq 'RECTANGLE' or
p_command eq 'FILL_RECTANGLE' or
p_command eq 'HORIZONTAL_LINE' or
p_command eq 'VERTICAL_LINE' or
p_command eq 'DIAGONAL_LINE'.
exit.
endif.

if p_command na '0123456789'.
write:/ 'The command', p_command, 'doesn''t exist.' &
'Please check your script.'.
endif.

endform. " show_error

*&----------------------------------------------------------------*
*& Form show_draw_error *
*&----------------------------------------------------------------*
form show_draw_error using p_command_line.

if p_command_line na '0123456789'.
write:/ 'The command', p_command_line, 'doesn''t exist.' &
'Please check your script.'.
endif.

endform. " show_draw_error

*&----------------------------------------------------------------*
*& Form draw_horizontal_line *
*&----------------------------------------------------------------*
form draw_horizontal_line using p_value.

clear w_tabix.

w_tabix_aux = pos_line - 1.

do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at w_tabix_aux '*'.
enddo.

endform. " draw_horizontal_line

*&----------------------------------------------------------------*
*& Form draw_vertical_line *
*&----------------------------------------------------------------*
form draw_vertical_line using p_value.

clear w_tabix.

w_tabix_aux = pos_line - 1.

do p_value times.
write at /w_tabix_aux '*'.
enddo.

endform. " draw_vertical_line

*&----------------------------------------------------------------*
*& Form draw_vertical_line *
*&----------------------------------------------------------------*
form draw_diagonal_line using p_value.

clear w_tabix.

w_tabix_aux = pos_line - 1.

do p_value times.
w_tabix_aux = w_tabix_aux + 1.
write at /w_tabix_aux '*'.
enddo.

endform. " draw_vertical_line


Para su conveniencia, pueden obtener el código del Google Project abaplogo en el formato SAPLink.

Si no tienen SAPLink, les recomiendo que lo descarguen y lo instalen -;)

También, sientase libres de modificar el programa.

Saludos,

Blag.

Technorati tags:

Monday, October 29, 2007

Windows Live Writer

En el SAP TechEd - Las Vegas 2007, mi amigo Dan McWeeney me habló acerca del Windows Live Writer así que decidí probarlo.

La verdad es que es excelente, tiene una interfaz sencilla y permite crear posts para una cantidad bastante grande de blogs...Este post lo estoy escribiendo utilizando el Live Writer...Además, felizmente cuenta con una gran variedad de Plug-Ins para descargar.

Además, permite configurar varias cuentas de blogs, por lo cual desde un mismo entorno, podemos acceder a diferentes blogs con diferentes cuentas de usuario.

       Live_Writer

Si no lo han probado, les recomiendo que lo descarguen -:)

Saludos,

Blag.

Saturday, October 27, 2007

Prism - Lo nuevo de Mozilla Labs

Ayer leí en mi RSS Reader que Mozilla Labs estaba desarrollando algo llamado Prism...Al principio me emocioné mucho, porque pensé que era una alternativa a Flex y Silverlight...Lastima que estaba completamente equivocado...

Según la página de Mozilla, Prism es Una aplicación que permite a los usuarios separar aplicaciones web de sus navegadores y correrlas directamente de sus escritorios.

En otras palabras...No es más que un Widget al cual le dices, "Abre esta página cada vez que haga click"...Para mí...Una perdida de tiempo...Pero veamos como funciona...Primero lo instalamos...Luego lo ejecutamos...(Hasta ahora nada expectacular)...LLenamos algunos parámetros...

                  Prism_Config

Y nos abre un MiniBrowser con la página que cargamos...

                Prism_Mini_Browser

Dudo mucho que hay alguien le parezca interesante o necesario esto...Pero bueno...Si quieren, bajen Prism y decepcionense por ustedes mismos...

Saludos,

Blag.

Friday, October 26, 2007

Jugando con Opera...


Se me ocurrió probar el famoso browser Opera. El diseño es interesante y es bastante rápido...Lo que me ha gustado bastante es el Speed Dial, que es una forma de tener a la mano las páginas a las que accedemos con mayor frecuencia...



Además...Cargó todos mis bookmarks de FireFox sin necesidad de que tenga que configurar nada...Eso es bueno -:)

Opera trabaja con Widgets...Lo cual es mejor que los add-ons de FireFox...Además de obviamente permite guardar los Widgets para llamarlos cuando uno quiera...

La configuración también es bastante sencilla...

La verdad es que Opera parece una opción bastante buena...El instalador no pasa de los 10Mb...Así que les recomiendo que lo prueben y saquen sus propias conclusiones.

Saludos,

Blag.

Wednesday, October 24, 2007

Soy Mentor de SAP!


Soy Mentor de SAP, y mi trabajo como tal es guiar a las personas dentro de la comunidades del SDN y el BPX, además, fomentar el acceso a dichas comunidades y sobre todo, apoyar a las comunidades con mis conocimientos y mi esfuerzo.

Cabe destacar que somos pocos los elegidos para ser Mentores, por lo cual siento un doble orgullo de parte de esta iniciativa de SAP.



Así que cualquier consulta que tengan sobre SAP, SDN o BPX, pueden recurrir a mi -:)


Technorati tags:

¿A quién conocí en el TechEd 2007?

Si bien el TechEd terminó -:( Conocí a mucha gente y tuve la suerte de tomarme fotos con muchos de ellos...Aquí tienen mi pequeño album -:)

Rich Heilman

Marilyn Pratt

Thomas Jung

Mark Finnern

Dan Mcweeney

Suresh Datti

Craig Cmehil

Ed Hermann

Chip Rodgers

Gali Kling Schneider

Mark Yolton


El próximo año me tomaré fotos con los que faltan... -:)

Technorati tags:

Thursday, October 04, 2007

Blag on TechEd (Las Vegas) - TechEd Día 2


Ayer tuve un día muy ocupado...Comencé con el Blogger Only Update Roundtable con Zia Yusuf.



Hablamos sobre lo siguiente (Ok...Yo no hablé...Y no estabamos solos en el mismo cuarto)...Así que, esto de acerca de lo que hablaron...

Business by Design

* Lanzar demos, buscar socios de negocio (A mediados del próximo año).
* Business One ya funciona como una herramienta para pequeñas compañías.
* No está pensado para grandes compañías.
* El mercado decidirá cual es la mejor herramienta para cubrir sus necesidades.

Trabajar con los Bloggers

* Source forge para proyectos de la Communidad en vez de utilizar el hosting de Google (Michael Cote).
* Son necesarias reglas para poder crear un sistema de Hosting para proyectos. (Debemos hablar con nuestro abogados - Mark Yolton LOL).
* Integración entre la comunidad y fuentes externas.
* Compartir blogs y documentos de la comunidad con otras compañías o blogs.
* NetWeaver es una plataforma para la innovación (Mark Yolton).

Open Source
* Las personas no saben esto, pero participamos activamente en el Open Source (Zia Yusuf).
* SAP está haciendo contribuciones a Eclipse, son solo con herramientas para NetWeaver tools, sino también con el proyecto Eclipse.

Luego, de eso, estuve en el Blogger Only Update with Mark Yolton, Marilyn Pratt, Mark Finneren and Craig Cmehil.



Donde hablaron basicamente de la Comunidad BPX.

* Llenar el vacio entre los negocios y el IT.
* Vacio entre Geeks entre Suits.
* Organizational Change Management.
* Conferencias virtuales?
* Preguntale a Granmamary

Finalmente, terminé en el End User Interaction, Portal and UI Channel.



Lo que hicieron fué tener un brainstorming.

* A los usuarios no les gustan las Interfaces de Usuario.
* Las empresas necesitan Web 2.0?
* Necesidad de Dashboards y Broadcasting
* ¿Puede ser el WebDynpro stateless?
* ¿ABAP en Eclipse?
* El uso de WebDynpro para ABAP o Java depende de las necesidades
* ¿Web Semántica?
* Agregar más funcionalidades al WebDynpro? Flex? Ajax? Visual Composer?
* No Widgets individuales...Un Widget para manejar a todos
* Duet - Integración entre Microsoft y SAP

Fué bueno que terminara con el RIA's Hacker Night

Saludos,

Blag.


Technorati tags:

RIA's Hacker Night


Ayer...Un grupo de Geeks, asistimos al RIA's Hacker Night (Rich Internet Applications Hacker Night)...Una noche de comida, tragis, Wii y Flex...

Un empleado de Intelligroup mostró una aplicación interesante que usa Flex, JSP, EP y algunas cosas más...Muy buena demostración...



Dan y Ed nos mostraron una vez más su asombroso Mayority Desk...Nada de código por supuesto...Creo que esperando que SAP les compre los derechos LOL



Thomas Jung nos montró su Flex dentro de páginas BSP...I cuando digo "Dentro de páginas BSP", lo digo en serio -;) Además, nos mostró algunas cosas con el SilverLight...Y nos dimos cuenta de que Flex es mucho mejor...Finalmente, nos mostró su Geek interno que gritaba por salir...Un Screen Saver tipo Matrix del RIA's Hacker Night (O algo parecido).



Además, nos divertimos un poco con el Nintendo Wii.



Nos dieron un libro de Flex (Uno muy bueno).



Antes de que la noche de Geeks terminara...Matthias Zeller hizo un pequeño concurso...Sacó nombres de una caja y regaló algunas cosas. Yo fuí el afortunado ganador de un Nintendo Wii.



Mientras que otros afortunados, recibieron una copia del Adobe Flex Builder 2.



Fué un evento muy bueno e impresionante, que debería de repetirse en cada TechEd...

Saludos,

Blag.


Technorati tags:

Majority que???...Majority Desk!


El DemoJam de este año fué excelente...Pero al igual que el año pasado...Dan McWeeney y Ed Hermann realmente me dejaron sin palabras...Nos mostraron el Majority Desk...Seguramente se preguntarán...¿Qué es eso? Así que tendré que responderles..."La verdad, no estoy seguro...Simplemente estoy tratando de salir del Shock"...



Ambos fueron lo suficientemente loco como para mezclar Flex, Open Dynamis Engine, PaperVision3D, Nintendo Wii and Python (No se si me falta algo...) para crear una herramienta realmente extraña pero asombrosa...Ahora, miren esta imagen y diganme si realmente pueden entender que está pasando...



¿Está Ed realmente utilizando un control de Nintendo Wii para mover aplicaiones Flex alrededor de la pantalla? Pueden apostar que sí...Nunca me hubiera imagina algo como eso...De verdad que aún no puedo creerlo...



Ambos son una de las mejoras cosas que le podría haber pasado a la Comunidad del SDN ...Opps! Lo hicieron de nuevo.

Saludos,

Blag.


Technorati tags:

Blag on TechEd (Las Vegas) - TechEd Día 1


El jueves, tuvimos el primer día del SAP TechEd 2007....Muchas cosas pasaron ese día, por lo cual sería muy dificil hablar de todas...Así que hagamos un pequeño resumen.

Comenzamos con el desayunos de los Mentores...Al que no pude asistir...Así que no hay fotos...Ni modo -:(

Continuamos con el SAP Executive Keynote con Peter Zencke, Miembro del equipo ejecutivo, Vishal Sikka, Jefe de Tecnología and Zia Yusuf, Vice Presidente ejecutivo.



Fué muy bueno porque el SDN/BPX los tomó por sorpresa con el Ask A Video Question at the TechEd Keynote.



Luego de eso, los Bloggers del SDN fuimos lo suficientemente afortunados de participar en la Rueda de Prensa y Preguntas y Respuestas con los Miembros del Conjeso Ejecutivo decon Peter Zencke, Zia Yusuf, Peter Graf.



Luego, los miembros del SAP Bloggers Corner fuimos más afortunados aún, porque asistimos al Blogger Only Roundtable con Vishal Sikka, Jefe de Tecnologías.



Pueden leer acerca de esto aquí.

El evento más esperado (Más esperado por mi por supuesto LOL), fué el DemoJam!



Craig fué como siempre un excelente anfitrión...Alentado a la comunidad...



El afortunado ganador fué Brian Yarnell, quien presentó una extraña pero asombrosa sesión llamada Supporting Data-Driven Presentation Needs of a Sales Force With XP3 and SAP Netweaver BI donde desarrollo un plug in para PowerPoint plug, con el cual poder modificar los PowerPoint's en tiempo real desde SAP...Muy bueno!



Saludos,

Blag.


Technorati tags:

Wednesday, October 03, 2007

Enfrentemos la cruda realidad...


Ok, todo el tiempo, cuando Craig me presenta a alguien dice: "El es el famoso Blag"...Lo he escuchado tantas veces...Que en realidad pensé que era cierto.



Ayer estuve paseando por el comedor...Estuve caminando por cerca de 1 hora y nadie me detuvo para decirme "Hey! Tu eres Blag! Encantado de conocerte"...Había poco más de 400 personas y ninguna me saludó....Bueno, Mark Yolton me dijo hola, pero creo que estaba demasiado ocupado como para hablar con este humilde blogger...Estoy bromeando desde luego...Mark y yo nos tomamos esta foto en el DemoJam!



En fín...Andaba muy deprimido...Nadie me había saludado. Me encontré con mis amigos Leornardo de Araujo y Harald Reiter, estabamos tomando y conversamos...Hasta que alguien llegó para salvar mi noche...Chip Rodgers se acercó...Miró mi identificación y me dijo "Eres Blag! Mucho gusto en conocerte!"...Gracias Chip, eres mi nuevo heroe -;)



Así que hoy día aprendí, que no importa que tan famoso seas...La comunidad del SDN/BPX es tan grande...Que solamente somos hormigas en la colonia.

Saludos,

Blag.


Technorati tags:

SAP's Blogger Corner Round Table con Vishal Sikka


Así que no saben quien es Vishal Sikka? No? No se preocupen...Yo tampoco lo conocía hasta el Community Day...Y felizmente tuve la oportunidad de reunirme con el en el mismo cuarto.

Entonces, quien es Vishal Sikka? Es el jefe de Tecnologías en SAP.

Comenzamos en el Bloggers Corner Table...



Y luego nos fuimos a un pequeño cuarto con Vishal, Craig Cmehil, James Governor, Michael Cote, Jeff Nolan y algunos cuantos más...Perdón pero no se sus nombres. Necesito traer una lapicero y apuntar todos los nombre de todos la próxima vez.

Sobre que hablamos? (En realidad, yo ni hable). Vishal habló sobre algunos puntos interesantes.

* Harmonize, una herramienta para los empleados de SAP
* Integración con .NET (Project DUET)
* ABAP en Eclipse?
* Business by Design
* Trabajando con Adobe (Project Muse)

Bueno, mi inglés no es aún tan bueno, así que podamos dar mayores detalles acerca de lo que habló, pero creanme...Es muy inteligente, muy accesible y muy centrado en su trabajo.



Esta fué una experiencia única y quería compatirla con ustedes.

Saludos,

Blag.


Technorati tags: