Re: Re: Re: Benchmarking en distintos lengu ajes [ Era algo así como cliente en jabber. .. ]
On Dec 3, 2007 10:59 AM, Xavier Andrade [EMAIL PROTECTED] wrote: On Sun, 2 Dec 2007, Aldrin Gonzalo Martoq Ahumada wrote: Discrepo. Lo que se llama maquina es la definicion de una arquitectura y su set de instrucciones. Cuando se habla de maquina virtual, se quiere decir que ese set de instrucciones no es el mismo que el implementado en hardware; por lo tanto si quieres ejecutar ese set de instrucciones requeriras de un paso de traduccion. Un interprete es un programa que realiza la traduccion desde un set de instrucciones o lenguaje y las ejecuta, de manera que puedas correr el codigo en tu maquina real. La distincion importante es que el paso de traduccion se hace en tiempo de ejecucion; es decir, cada vez que corras el programa tendras el costo adicional de traduccion lo que puede traer problemas de performance o uso de recursos (memoria por ej). Por eso la *implementacion* de la maquina virtual de java es un interprete. El problema es que no es tan claro hacer la distincion, de acuerdo a tu definicion, x86(_64) es una maquina virtual, ya los procesadores modernos implementan un set de instrucciones a la RISC internamente y en el momento de ejecucion se traducen las instrucciones x86 a instrucciones nativas, algunas directamente y otras por microcodigo. Exactamente, ese es el punto: los procesadores x86 modernos poseen un interprete! Dicho de otra forma, si pudieramos compilar (traducir offline) directamente en el codigo nativo del procesador, nos ahorrariamos varios ciclos de cpu (y tal vez transistores si dejamos esa pega exclusivamente al ambiente); que se gastan en el interprete (traducir online). -- Aldrin Martoq From [EMAIL PROTECTED] Wed Dec 5 02:06:14 2007 From: [EMAIL PROTECTED] (Aldrin Gonzalo Martoq Ahumada) Date: Wed Dec 5 02:15:28 2007 Subject: Benchmarking en distintos lenguajes In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] On Dec 4, 2007 2:30 PM, Franco Catrin L. [EMAIL PROTECTED] wrote: Veamos un simple cambio de este sencillo ejemplo. Ahora queremos pasar el nombre del saludado por parametro. En Java quedaria como : (sin validar) public class HelloWorld { public static void main(String[] args ) { System.out.println( Hello + args[0] ); } } Sigue odiando Java por su mal llamada elegancia (== sobre-ingenieria). Escribo ese ejemplo en eclipse 3 europa, y ya tengo varios warnings. El programa final profesional queda asi: ---hello/HelloWorld.java- // The use of the default package is discouraged. package hello; public class HelloWorld { // avoid using explicit string literals, declare constants instead // BTW, por que esto no lo hace el compilador! private static final String _STR_HELLO = Hello ; //$NON-NLS-1$ public static void main(String[] args) { System.out.println(_STR_HELLO + args[0]); } } --- Oh perdon, el programa se cae por una (de las odiadas por mi) RunTimeExceptions; es decir, los errores _mas_ tipicos comunes por los cuales se caen los programas, en particular NullPointerException; pero que no son revisados durante la compilacion. $ java hello.HelloWorld Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 0 at hello.HelloWorld.main(HelloWorld.java:66) Nueva version: ---hello/HelloWorld.java // The use of the default package is discouraged. package hello; public class HelloWorld { // avoid using explicit string literals, declare constants instead private static final String _STR_HELLO = Hello ; //$NON-NLS-1$ // avoid using explicit string literals, declare constants instead private static final String _STR_USAGE = Usage: java hello.HelloWorld your_name; //$NON-NLS-1$ public static void main(String[] args) { if (args.length != 1) { System.err.println(_STR_USAGE); return; } System.out.println(_STR_HELLO + args[0]); } } -- Y que es eso de NON-NLS??? Ah claro, olvidaba la i18n -- Ultima version, espero -- package hello; public class HelloWorld { private static final String _STR_HELLO = Messages.getString(HelloWorld.HELLO); //$NON-NLS-1$ private static final String _STR_USAGE = Messages.getString(HelloWorld.USAGE); //$NON-NLS-1$ public static void main(String[] args) { if (args.length != 1) { System.err.println(_STR_USAGE); return; } System.out.println(_STR_HELLO + args[0]); } import java.util.MissingResourceException; import java.util.ResourceBundle; public class Messages { private static final String BUNDLE_NAME = hello.messages;
Benchmarking en distintos lenguajes
On Dec 5, 2007 2:06 AM, Aldrin Gonzalo Martoq Ahumada [EMAIL PROTECTED] wrote: On Dec 4, 2007 2:30 PM, Franco Catrin L. [EMAIL PROTECTED] wrote: Veamos un simple cambio de este sencillo ejemplo. Ahora queremos pasar el nombre del saludado por parametro. En Java quedaria como : (sin validar) public class HelloWorld { public static void main(String[] args ) { System.out.println( Hello + args[0] ); } } Sigue odiando Java por su mal llamada elegancia (== sobre-ingenieria). Escribo ese ejemplo en eclipse 3 europa, y ya tengo varios warnings. El programa final profesional queda asi: [Horrible monstruo escrito en Java que saluda, con soporte de i18n] Algun contraejemplo en otro lenguaje, anyone??? ;) #!/usr/bin/env python import sys import gettext from gettext import gettext as _ gettext.install('hello') try: print _(Hello %s) % sys.argv[1] except IndexError: print _(Usage: hello.py your_name) -- Leo Soto M. http://blog.leosoto.com From [EMAIL PROTECTED] Wed Dec 5 04:43:44 2007 From: [EMAIL PROTECTED] (Carlos Manuel Duclos Vergara) Date: Wed Dec 5 05:16:54 2007 Subject: Predominancia de C [Was: Re: Re: Re: Re: Benchmarking en distintos lenguajes [ Era algo =?iso-8859-1?q?as=ED_como_cliente?= =?iso-8859-1?q?_en_jabber=2E=2E=2E_=5D=5D?= In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] ¿Los proyectos de SourceForge en que lenguaje están escritos principalmente?(puede que algunos estén escritos en C++) ¿Los fuentes para una tarjeta de red por ejemplo en Linux,en que lenguaje estan escritos? ¿Cual es lenguaje históricamente preferido por los Hackers gringos? ¿En que lenguage escribió Richard Stallman principalmente su editor de textos GNU/emacs (bueno cabe decir que uso LISP pero sólo para las extensiones)? ¿Que lenguaje se ha usado para crrear compiladores de otros lenguajes? [...] Al menos en el lado comercial del software para Linux te garantizo que al menos el 50% de las applicaciones estan escritas en C++. No que da más que decir :C la lleva,debido a que es un lenguaje de alto nivel ,pero que permite trabajar lo mas cercano posible al nivel de la máquina el amplio manejo de las entradas y salidas,los tipos de datos con los que se puede trabajar,es algo que difícilmente se puede ver en otros lenguajes. C es muy bueno si quieres construir un edificio empezando por hacer la mezcla de cemento, en el caso de que quieras tener cemento listo, ladrillos y todo ese tipo de cosas C++ es mucho mas usable. Por eso skype, Mathematica y otros utilizan C++ y no C. En cuanto al C++ de Stroustrup ,una vez leí por ahí ,una entrevista que le hicieron al creador de este lenguaje,y en donde le consultaron el motivo de por que había creado el lenguaje.Tuvieron que dejar hasta ahí la entrevista curiosa entrevista aquella, podrias dar una referencia? ,dado que supuestamente Stroustrup habría confesado que solo había creado este lenguaje por motivos económicos,y que las propiedades de herencia ,polimorfismo,no justificaban la generación en muchos casos de enormes tamaños,que podrían tener un tamaño óptimo si hubieran sido escritos en C...en definitiva ,habría creado el lenguaje sólo para darles trabajo a los programadores. Aunque dudo que esa haya sido su principal motivacion, debo reconocer que ha sido bastante exitoso en eso. -- Carlos Manuel Duclos Vergara http://carlosduclos.blogspot.com From [EMAIL PROTECTED] Wed Dec 5 06:18:40 2007 From: [EMAIL PROTECTED] (Satoru Lucas Shindoi) Date: Wed Dec 5 06:52:59 2007 Subject: redes wifi In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] El Mon, 26 Nov 2007 09:42:37 -0300 Carlos Massoglia L. [EMAIL PROTECTED] escribió: 1.- La frecuencia a la cual está escaneando. A mi me sucedía lo mismo hace un tiempo y era imposible que la tarjeta wireless se conectara al router y/o ap a esa frecuencia, dado que la banda de operación es desde los 2.4 a los 2.4835 ghz y que está dividida en 11 canales. Si no me equivoco 802.11a es a 5.3ghz 2.- La interfaz que estás tratando de configurar, es un error de escritura el problema o efectivamente en vez de ser eth es ath? ... Interfaz de un device atheros? Saludos -- Satoru Lucas Shindoi - [EMAIL PROTECTED] SysAdmin GNU/Linux, *NIX Oficina (06 a 15 hs) 03783 463449 / 425612 Particular (16 hs en adelante) 03783 459196 ICQ: 95357247 - Gmail: [EMAIL PROTECTED] - [EMAIL PROTECTED] Messenger: [EMAIL PROTECTED] - Yahoo: [EMAIL PROTECTED] -- Sistemas de Informacion - DPEC -
Re: Benchmarking en distintos lenguajes [ Era algo así como cliente en jabber... ]
- Mensaje original De: Rodrigo Fuentealba [EMAIL PROTECTED] Para: Discusion de Linux en Castellano linux@listas.inf.utfsm.cl Enviado: martes 4 de diciembre de 2007, 18:47:27 Asunto: Re: Benchmarking en distintos lenguajes [ Era algo así como cliente en jabber... ] rodrigo ahumada escribió: Ni tanto mas feo que la version C. Ambos leguajes pecan al final. Por que @#%^[EMAIL PROTECTED] llaman void a un procedimiento? ¿Porque no quieren devolver nada? pero es un procedimiento, ni si quiera se debe pensar en devolver... Hmm, los procedimientos no existen, solo existen las funciones que no retornan ningun valor ;-) ¿que no era al revés? las funciones no existen, todos son procedimientos, solo que algunos dejan valores en registros del CPU, o en la RAM, o en ambos... No. Todo son funciones; las funciones pueden devolver un tipo de dato cualquiera, aunque éste sea void (nada). Te recomendaría algo denso relacionado con C, pero por esta clase de errores, ve al Aprenda C como si estuviera en Primero. ¿cuáles errores? ¿el no comulgar con el dogma C? por algo en algunos ensambladores existe la palabra PROC y no FUNC... Porque no estamos hablando de ensambladores, sino del lenguaje C, me imagino que entiendes la diferencia, ¿verdad? en realidad no se está hablando de eso, se está hablando de cuál los dos lenguajes (C o java) presenta menos cosas incomprensbles a un novato, supongo que leíste los correos anteriores... De hecho, lo que generalmente en orientación a objetos en PHP 5 se le llama métodos también se declara como function; es la forma del lenguaje de denominarla, nada más que eso. eso muestra que el primer lenguaje que aprendieron los creadores de PHP probablemente fue C. Eso se llama Impronta, y explica harto este tipo de discusiones de que cual lenguaje es mas santo. Tarjeta de crédito Yahoo! de Banco Supervielle. Solicitá tu nueva Tarjeta de crédito. De tu PC directo a tu casa. www.tuprimeratarjeta.com.ar
Benchmarking en distintos lenguajes [ Era algo así como cliente en jabber... ]
El mié, 05-12-2007 a las 01:06 -0300, Aldrin Gonzalo Martoq Ahumada escribió: On Dec 3, 2007 10:59 AM, Xavier Andrade [EMAIL PROTECTED] wrote: On Sun, 2 Dec 2007, Aldrin Gonzalo Martoq Ahumada wrote: Discrepo. Lo que se llama maquina es la definicion de una arquitectura y su set de instrucciones. Cuando se habla de maquina virtual, se quiere decir que ese set de instrucciones no es el mismo que el implementado en hardware; por lo tanto si quieres ejecutar ese set de instrucciones requeriras de un paso de traduccion. Un interprete es un programa que realiza la traduccion desde un set de instrucciones o lenguaje y las ejecuta, de manera que puedas correr el codigo en tu maquina real. La distincion importante es que el paso de traduccion se hace en tiempo de ejecucion; es decir, cada vez que corras el programa tendras el costo adicional de traduccion lo que puede traer problemas de performance o uso de recursos (memoria por ej). Por eso la *implementacion* de la maquina virtual de java es un interprete. El problema es que no es tan claro hacer la distincion, de acuerdo a tu definicion, x86(_64) es una maquina virtual, ya los procesadores modernos implementan un set de instrucciones a la RISC internamente y en el momento de ejecucion se traducen las instrucciones x86 a instrucciones nativas, algunas directamente y otras por microcodigo. Exactamente, ese es el punto: los procesadores x86 modernos poseen un interprete! Dicho de otra forma, si pudieramos compilar (traducir offline) directamente en el codigo nativo del procesador, nos ahorrariamos varios ciclos de cpu (y tal vez transistores si dejamos esa pega exclusivamente al ambiente); que se gastan en el interprete (traducir online). Dudo que se gane mucho ya que esa traduccion se ejecuta una sola vez, antes de ejecutar un bloque. En una aplicación por ejemplo no es lento ejecutar una sección secuencial de código ( O(1)) comparado con lo que significa ejecutar un ciclo (O(n)). En este ultimo caso, el paso de traduccion simplemente lo convierte en O(n+1), y si tenemos casos como O(n^2) se transforma simplemente en O(n^2 + 2) Respecto a la compilacion, la diferencia entre compilar un programa en C y ejecutar bytecode (Java, C#) es que el programa compilado en C queda en un archivo estático (offline como dices), y eso impide que se puedan hacer optimizaciones en tiempo de ejecucion. En Mono se puede indicar el flag -aot (ahead of time) para que los no-creyentes tengan un archivo estatico para ejecutar. Las diferencias van por otro lado, el paper que envió Daniel Serpell es muy iluminador, aunque aun no lo he terminado de analizar por completo. -- Franco Catrin L. TUXPAN Software S.A. http://www.tuxpan.com/fcatrin
Benchmarking en distintos lenguajes
El 5/12/07, Aldrin Gonzalo Martoq Ahumada [EMAIL PROTECTED] escribió: Algun contraejemplo en otro lenguaje, anyone??? ;) http://www.infiltec.com/j-h-wrld.htm -- Roberto Bonvallet
Benchmarking en distintos lenguajes
El mié, 05-12-2007 a las 02:06 -0300, Aldrin Gonzalo Martoq Ahumada escribió: On Dec 4, 2007 2:30 PM, Franco Catrin L. [EMAIL PROTECTED] wrote: Veamos un simple cambio de este sencillo ejemplo. Ahora queremos pasar el nombre del saludado por parametro. En Java quedaria como : (sin validar) [...] Y que es eso de NON-NLS??? Ah claro, olvidaba la i18n -- Ultima version, espero -- package hello; public class HelloWorld { private static final String _STR_HELLO = Messages.getString(HelloWorld.HELLO); //$NON-NLS-1$ private static final String _STR_USAGE = Messages.getString(HelloWorld.USAGE); //$NON-NLS-1$ public static void main(String[] args) { if (args.length != 1) { System.err.println(_STR_USAGE); return; } System.out.println(_STR_HELLO + args[0]); } import java.util.MissingResourceException; import java.util.ResourceBundle; public class Messages { private static final String BUNDLE_NAME = hello.messages; //$NON-NLS-1$ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); private Messages() { } public static String getString(String key) { try { return RESOURCE_BUNDLE.getString(key); } catch (MissingResourceException e) { return '!' + key + '!'; } } } messages.properties HelloWorld.HELLO=Hello HelloWorld.USAGE=Usage: java hello.HelloWorld your_name --- Alguien en java llega a algo tan elaborado??? Y eso que ni siquiera hemos llegado a J2EE Algun contraejemplo en otro lenguaje, anyone??? ;) Aqui tengo un ejemplo para hacer lo mismo que trataste de hacer en Java :D import java.util.*; public class HelloWorld { static final String USAGE = usage, HELLO=hello; static public void main (String args[]) { ResourceBundle messages = ResourceBundle.getBundle(messages); System.out.println(args.length!=1? messages.getString(USAGE):messages.getString(HELLO) + args[0]); } } -- Franco Catrin L. TUXPAN Software S.A. http://www.tuxpan.com/fcatrin
Benchmarking en distintos lenguajes
El mié, 05-12-2007 a las 03:57 -0300, Leonardo Soto M. escribió: On Dec 5, 2007 2:06 AM, Aldrin Gonzalo Martoq Ahumada [EMAIL PROTECTED] wrote: On Dec 4, 2007 2:30 PM, Franco Catrin L. [EMAIL PROTECTED] wrote: Veamos un simple cambio de este sencillo ejemplo. Ahora queremos pasar el nombre del saludado por parametro. En Java quedaria como : (sin validar) public class HelloWorld { public static void main(String[] args ) { System.out.println( Hello + args[0] ); } } Sigue odiando Java por su mal llamada elegancia (== sobre-ingenieria). Escribo ese ejemplo en eclipse 3 europa, y ya tengo varios warnings. El programa final profesional queda asi: [Horrible monstruo escrito en Java que saluda, con soporte de i18n] Algun contraejemplo en otro lenguaje, anyone??? ;) #!/usr/bin/env python import sys import gettext from gettext import gettext as _ gettext.install('hello') try: print _(Hello %s) % sys.argv[1] except IndexError: print _(Usage: hello.py your_name) Si quieres hacer un ejemplo equivalente, te falto cambiar los literales por constantes. Eso no es obligatorio en ningun lenguaje, es solo una recomendacion para programar. -- Franco Catrin L. TUXPAN Software S.A. http://www.tuxpan.com/fcatrin
Benchmarking en distintos lenguajes [ Era algo así como cliente en jabber... ]
On Tue, 2007-12-04 at 23:18 -0300, Patricio Morales wrote: Ambos leguajes pecan al final. Por que @#%^[EMAIL PROTECTED] llaman void a un procedimiento? void no es el nombre del procedimiento, sino lo que entrega y -como que no es obvio?!?- un procedimiento devuelve nada, si devolviera algo, seria una funcion. pecado? nah! belleza de las mas sublime! Correción: En C no manejas procedimentos como en Pascal,pero puedes hacer que una función se comporte como un procedimiento,vale decir que no devuelva nada. Correccion: En Pascal existen procedimientos y funciones, en C sólo existen funciones; pero puedes hacer que una funcion en C se comporte como un procedimiento en Pascal haciendo que devuelva void, vale decir, devuelva nada. Saludos -- Marcos Ramirez [EMAIL PROTECTED]
Ocultar Passwords a produccion.
Estimados, mi ultima consulta aqui fue respecto de un cliente para jabber (y ya vieron lo que ocurrio (y esta ocurriendo)). Finalmente, se opto por openfire y spark como cliente, lejos las discusiones respecto a la performance del modelo, ya esta implementado y camina /de pelos/. Gracias a todos lo que dieron sus opiniones. Esta vez, los molesto con otra cosa que me aflije. Tengo algunos servicios con db (mysql, db2, sql server) y existe un gran cuestionamiento: ¿como escondo las password (y usuarios) de las db a los programas y usuarios?. Es decir, pe. al configurar el acceso a mysql para un servicio web (LAMP), necesariamente debo configurar en un file la passwordm user y database que utilizare. Otro problema, y mas grande aun, en cuando tenemos aplicaciones cliente-servidor, con archivos de configuracion en cada cliente, o bien (en el caso sql server) odbc, en ese caso no existe manera de encriptar las password, y al menos debe conocerla el desarrollador/analista de la aplicacion y configurarla (digitarla) bien en el codigo (ejecutable) o en un archivo de configuracion. Mi problema es que necesito que estas password no sean conocidas por nadie, ni siquiera el admin del sistema (password bipartida) y el dia de mañana poder cambiarlas de manera transparente para los usuarios. He hecho monos, tirado lineas y buscado en san google, pero ando medio perdido. Espero me puedan orientar. Mis ideas me llevan a pensar que debe haber /algo/ en medio que permita la autenticacion, es decir: SERVER(user, pass):**ALGO**:CLIENTE(user, _clave_) donde clave, es una llave, un id de instalacion, la ip de mi LAN, el usuario de dominio, etc. De antemano, muchisimas gracias. -- Saludos, LSM. Existen 10 tipos de personas: los que entienden binarios y los que no From [EMAIL PROTECTED] Wed Dec 5 14:10:37 2007 From: [EMAIL PROTECTED] (Alvaro Herrera) Date: Wed Dec 5 14:13:35 2007 Subject: Ocultar Passwords a produccion. In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] Asdtaker escribió: Otro problema, y mas grande aun, en cuando tenemos aplicaciones cliente-servidor, con archivos de configuracion en cada cliente, o bien (en el caso sql server) odbc, en ese caso no existe manera de encriptar las password, y al menos debe conocerla el desarrollador/analista de la aplicacion y configurarla (digitarla) bien en el codigo (ejecutable) o en un archivo de configuracion. Mi problema es que necesito que estas password no sean conocidas por nadie, ni siquiera el admin del sistema (password bipartida) y el dia de mañana poder cambiarlas de manera transparente para los usuarios. Eso es imposible. Ademas, no lograrias nada, porque el administrador de la maquina, siendo root, podria de todos modos detener el servidor y levantarlo en el modo que no requiere password, si quisiera robarse tu informacion. Las passwords necesariamente deben estar en un archivo en alguna parte. Lo que mas puedes hacer es que dicho archivo este oculto y que nadie (salvo la aplicacion) tenga privilegios para leerlo. -- Alvaro Herrera Developer, http://www.PostgreSQL.org/ Las cosas son buenas o malas segun las hace nuestra opinión (Lisias) From [EMAIL PROTECTED] Wed Dec 5 17:54:21 2007 From: [EMAIL PROTECTED] (Horst H. von Brand) Date: Wed Dec 5 17:57:12 2007 Subject: =?iso-8859-1?q?Re=3A_Re=3A_Re=3A_Benchmarking_en_distintos_le?= =?iso-8859-1?q?nguajes_=5B_Era_algo_as=ED_como_cliente_en_jabber?= =?iso-8859-1?q?=2E=2E=2E_=5D?= In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] Aldrin Gonzalo Martoq Ahumada [EMAIL PROTECTED] wrote: On Dec 3, 2007 10:59 AM, Xavier Andrade [EMAIL PROTECTED] wrote: On Sun, 2 Dec 2007, Aldrin Gonzalo Martoq Ahumada wrote: Discrepo. Lo que se llama maquina es la definicion de una arquitectura y su set de instrucciones. Cuando se habla de maquina virtual, se quiere decir que ese set de instrucciones no es el mismo que el implementado en hardware; por lo tanto si quieres ejecutar ese set de instrucciones requeriras de un paso de traduccion. Un interprete es un programa que realiza la traduccion desde un set de instrucciones o lenguaje y las ejecuta, de manera que puedas correr el codigo en tu maquina real. La distincion importante es que el paso de traduccion se hace en tiempo de ejecucion; es decir, cada vez que corras el programa tendras el costo adicional de traduccion lo que puede traer problemas de performance o uso de recursos (memoria por ej). Por eso la *implementacion* de la maquina virtual de java es un interprete. El problema es que no es tan claro hacer la distincion, de acuerdo a tu
Re: Benchmarking en distintos lenguajes [ Era algo así como cliente en jabber... ]
rodrigo ahumada [EMAIL PROTECTED] wrote: Alvaro Herrera [EMAIL PROTECTED] dijo: rodrigo ahumada escribió: Ni tanto mas feo que la version C. Ambos leguajes pecan al final. Por que @#%^[EMAIL PROTECTED] llaman void a un procedimiento? Hmm, los procedimientos no existen, solo existen las funciones que no retornan ningun valor ;-) ¿que no era al revés? las funciones no existen, todos son procedimientos, solo que algunos dejan valores en registros del CPU, o en la RAM, o en ambos... por algo en algunos ensambladores existe la palabra PROC y no FUNC... Eso es un detalle de la arquitectura en la que tradicionalmente implementan C, no una caracteristica propia de C. -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de InformaticaFono: +56 32 2654431 Universidad Tecnica Federico Santa Maria +56 32 2654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 2797513 From [EMAIL PROTECTED] Wed Dec 5 17:51:12 2007 From: [EMAIL PROTECTED] (Enrique Herrera Noya) Date: Wed Dec 5 18:15:43 2007 Subject: : Ocultar Passwords a produccion. In-Reply-To: [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] Estimados, mi ultima consulta aqui fue respecto de un cliente para jabber (y ya vieron lo que ocurrio (y esta ocurriendo)). Finalmente, se opto por openfire y spark como cliente, lejos las discusiones respecto a la performance del modelo, ya esta implementado y camina /de pelos/. Gracias a todos lo que dieron sus opiniones. Esta vez, los molesto con otra cosa que me aflije. Tengo algunos servicios con db (mysql, db2, sql server) y existe un gran cuestionamiento: ¿como escondo las password (y usuarios) de las db a los programas y usuarios?. Es decir, pe. al configurar el acceso a mysql para un servicio web (LAMP), definiendo funcion conectar y eso que utilice quien programe (suponiendo php) y lo dejas en un directorio paralelo al del sitio y accediendo al php via alias algo asi: /wuebs/coneccion/conecta.php /wuebs/sitio/config.php en config.php tienes require (dominio/conecto/conecta.php) y en apache tienes Alias /conecto/ /wuebs/coneccion necesariamente debo configurar en un file la passwordm user y database que utilizare. Otro problema, y mas grande aun, en cuando tenemos aplicaciones cliente-servidor, con archivos de configuracion en cada cliente, o bien (en el caso sql server) odbc, en ese caso no existe manera de encriptar las password, y al menos debe conocerla el desarrollador/analista de la aplicacion y configurarla (digitarla) bien en el codigo (ejecutable) o en un archivo de configuracion. Mi problema es que necesito que estas password no sean conocidas por nadie, ni siquiera el admin del sistema (password bipartida) y el dia de mañana poder cambiarlas de manera transparente para los usuarios. He hecho monos, tirado lineas y buscado en san google, pero ando medio perdido. Espero me puedan orientar. Mis ideas me llevan a pensar que debe haber /algo/ en medio que permita la autenticacion, es decir: SERVER(user, pass):**ALGO**:CLIENTE(user, _clave_) donde clave, es una llave, un id de instalacion, la ip de mi LAN, el usuario de dominio, etc. De antemano, muchisimas gracias. -- Saludos, LSM. Existen 10 tipos de personas: los que entienden binarios y los que no
main() de C [Was: Re: Re: Benchmarking en distin tos lenguajes [ Era algo así como cliente en ja bber... ] ]
Rodrigo Fuentealba [EMAIL PROTECTED] wrote: 2007/12/4, rodrigo ahumada [EMAIL PROTECTED]: Alvaro Herrera [EMAIL PROTECTED] dijo: rodrigo ahumada escribió: Ni tanto mas feo que la version C. Ambos leguajes pecan al final. Por que @#%^[EMAIL PROTECTED] llaman void a un procedimiento? ¿Porque no quieren devolver nada? Para que quieres procedimientos? La idea (según lo que he leÃdo) es que el pecado es hacer que la función main no devuelva nada (void main();), es mejor devolver el estado con el que terminó el programa (que si es totalmente correcto, es return 0). De esta manera, cuando los integras con otras aplicaciones, éstas son capaces de saber si el programa cumplió con su cometido. No. El cuento es mas profundo. El estandar de C permite implementar funciones de distinta forma segun lo que retornen (obvio; p.ej. en i386 una funcion que retorna un double lo retorna en un registro de punto flotante, si un int (o similar) en EAX, si retorna un struct hace alguna brujeria a traves de un puntero; dependiendo de la arquitectura usar mecanismos diferentes para retorno algo o no retorno nada puede tener costos muy diferentes). A su vez, la funcion main es interfaz con el ambiente en que se ejecuta el programa, que a su vez puede tener un manejo radicalmente diferente a una funcion normal. /Generalmente/ main se implementa igual que una funcion (y la brujeria de conectarla con el ambiente (armarle argc, argv a lo C; obtener el valor retornado y darlo como resultado exito/fracaso) se hace fuera), y /muchas implementaciones/ no hacen diferencia especial entre retorna int y no retorna nada. -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de InformaticaFono: +56 32 2654431 Universidad Tecnica Federico Santa Maria +56 32 2654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 2797513 From [EMAIL PROTECTED] Wed Dec 5 20:03:15 2007 From: [EMAIL PROTECTED] (Horst H. von Brand) Date: Wed Dec 5 20:06:09 2007 Subject: =?iso-8859-1?q?Re=3A_Predominancia_de_C_=5BWas=3A_Re=3A_Re=3A?= =?iso-8859-1?q?_Re=3A_Re=3A_Benchmarking_en_distintos_lenguajes_?= =?iso-8859-1?q?=5B_Era_algo_as=ED_como_cliente_en_jabber=2E=2E=2E_?= =?iso-8859-1?q?=5D=5D?= In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] Patricio Morales [EMAIL PROTECTED] wrote: El dÃa 4/12/07, Horst H. von Brand [EMAIL PROTECTED] escribió: Patricio Morales [EMAIL PROTECTED] wrote: [...] Como que obvio? Hubo/hay muchos otros lenguajes, una buena coleccion de sistemas operativos cada uno con su propio lenguaje tradicional: VMS con Bliss; OS/370 con su assembler, FORTRAN, COBOL y PL/1; hubo sistemas interesantes escritos en LISP, Oberon, Modula II; los hay hechos en C++ e incluso Java. Hace no tanto, con lo que se podia contar en cualquier computador era una implementacion competente de FORTRAN 60, y pocazo mas. Por algo cosas tan divertidas como Ratfor... ¿Los proyectos de SourceForge en que lenguaje están escritos principalmente?(puede que algunos estén escritos en C++) Hoy dia los sistemas tipicos son Unixisticos == C o C++. ¿Los fuentes para una tarjeta de red por ejemplo en Linux,en que lenguaje estan escritos? El nucleo esta hecho en C, escribir un driver en Perl seria bastante divertido... ¿Cual es lenguaje históricamente preferido por los Hackers gringos? LISP ¿En que lenguage escribió Richard Stallman principalmente su editor de textos GNU/emacs (bueno cabe decir que uso LISP pero sólo para las extensiones)? LISP ¿Que lenguaje se ha usado para crrear compiladores de otros lenguajes? De todo... desde un compilador BASIC escrito en BASIC hasta un assembler escrito en COBOL, pasando por preprocesadores Ratfor (+/- similar a C) en FORTRAN 66. Y uno de los criterios para un nuevo lenguaje es que cosa que no sea su compilador se ha escrito en el? No que da más que decir :C la lleva,debido a que es un lenguaje de alto nivel ,pero que permite trabajar lo mas cercano posible al nivel de la máquina el amplio manejo de las entradas y salidas,los tipos de datos con los que se puede trabajar,es algo que difÃcilmente se puede ver en otros lenguajes. Exacto. Y C es (casi) un subconjunto de C++ En cuanto al C++ de Stroustrup ,una vez leà por ahà ,una entrevista que le hicieron al creador de este lenguaje,y en donde le consultaron el motivo de por que habÃa creado el lenguaje.Tuvieron que dejar hasta ahà la entrevista ,dado que supuestamente Stroustrup habrÃa confesado que solo habÃa creado este lenguaje por motivos económicos,y que las propiedades de
Re: Re: Re: Re: Benchmarking en distintos l enguajes [ Era algo así como cliente en jabber. .. ]
Leonardo Soto M. [EMAIL PROTECTED] wrote: On Dec 5, 2007 5:54 PM, Horst H. von Brand [EMAIL PROTECTED] wrote: Aldrin Gonzalo Martoq Ahumada [EMAIL PROTECTED] wrote: [...] Dicho de otra forma, si pudieramos compilar (traducir offline) directamente en el codigo nativo del procesador, nos ahorrariamos varios ciclos de cpu (y tal vez transistores si dejamos esa pega exclusivamente al ambiente); que se gastan en el interprete (traducir online). Nopes. El procesador es /mucho/ mas rapido que la memoria hoy dia (por algo el cuento de hyperthreading, dual-core, procesadores celulares, ...). En parte por esa razon guatearon los RISC, y las arquitecturas nuevas son CISC: Claro, procesar instrucciones simples es mas rapido, pero el codigo es muchisimo menos denso (todas las instrucciones son grandes, para hacer alguna operacion un poquitin mas compleja es media docena de instrucciones; lo mismo en CISC puede ser una sola, incluso de un solo byte); con el resultado que lo que se gana en el procesador se pierde con creces en mover instrucciones desde la memoria. Aún asÃ, el decoding de una instrucción en x86 (y x86-64) es caro. Por esto en los últimos procesadores de esta arquitectura se está almacenando en la caché de instrucciones el microcode en lugar de las instrucciones originales. No es esa la razon, las instrucciones internas RISCisticas pueden reordenarse (mas) que las CISC originales. -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de InformaticaFono: +56 32 2654431 Universidad Tecnica Federico Santa Maria +56 32 2654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 2797513 From [EMAIL PROTECTED] Wed Dec 5 22:50:32 2007 From: [EMAIL PROTECTED] (Alejandro Weinstein) Date: Wed Dec 5 22:53:26 2007 Subject: =?iso-8859-1?q?Re=3A_Re=3A_Benchmarking_en_distintos_lenguajes_?= =?iso-8859-1?q?=5B_Era_algo_as=ED_como_cliente_en_jabber=2E=2E=2E_?= =?iso-8859-1?q?=5D?= In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] On Dec 5, 2007 3:39 PM, Horst H. von Brand [EMAIL PROTECTED] wrote: Pedro GM [EMAIL PROTECTED] wrote: Python ha tenido buen avance en esta area, su sintaxis simple aporta bastante a la hora de aprender. Asi es, aunque la idea de espacios indican anidamiento es la idea mas idiota nunca inventada para un lenguaje. Por que tan taxativo? Aca opinan justo lo contrario: http://www.secnetix.de/~olli/Python/block_indentation.hawk Alejandro. From [EMAIL PROTECTED] Wed Dec 5 23:24:35 2007 From: [EMAIL PROTECTED] (Horst H. von Brand) Date: Wed Dec 5 23:27:26 2007 Subject: =?iso-8859-1?q?Re=3A_Benchmarking_en_distintos_lenguajes_=5B_?= =?iso-8859-1?q?Era_algo_as=ED_como_cliente_en_jabber=2E=2E=2E_=5D?= In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] Message-ID: [EMAIL PROTECTED] rodrigo ahumada [EMAIL PROTECTED] wrote: Rodrigo Fuentealba [EMAIL PROTECTED] dijo: rodrigo ahumada escribió: [...] No. Todo son funciones; las funciones pueden devolver un tipo de dato cualquiera, aunque éste sea void (nada). Te recomendarÃa algo denso relacionado con C, pero por esta clase de errores, ve al Aprenda C como si estuviera en Primero. ¿cuáles errores? ¿el no comulgar con el dogma C? Si no sabes C, no tienes derecho a opinar. [...] De hecho, lo que generalmente en orientación a objetos en PHP 5 se le llama métodos también se declara como function; es la forma del lenguaje de denominarla, nada más que eso. eso muestra que el primer lenguaje que aprendieron los creadores de PHP probablemente fue C. En C no hay metodos. Tampoco en C++. Es terminologia propia de Smalltalk (donde significa algo /bien/ diferente). Eso se llama Impronta, y explica harto este tipo de discusiones de que cual lenguaje es mas santo. Bueno, si es por eso el lenguaje mas santo para mi debiera ser FORTRAN 66 (o algo anterior)... no es tan simple. -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de InformaticaFono: +56 32 2654431 Universidad Tecnica Federico Santa Maria +56 32 2654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 2797513
Benchmarking en distintos lenguajes
On Dec 5, 2007 10:18 AM, Franco Catrin L. [EMAIL PROTECTED] wrote: El mié, 05-12-2007 a las 02:06 -0300, Aldrin Gonzalo Martoq Ahumada escribió: Alguien en java llega a algo tan elaborado??? Y eso que ni siquiera hemos llegado a J2EE Algun contraejemplo en otro lenguaje, anyone??? ;) Aqui tengo un ejemplo para hacer lo mismo que trataste de hacer en Java :D Franco, mi intencion era precisamente en la frase de tan elaborado, es decir, programar en serio con el lenguaje. Por supuesto, el hola mundo no es un buen ejemplo para esto, pero la idea es que asi se ve el codigo supuestamente profesional en java... Basicamente, use todas las recomendaciones para j2se (que la clase Messages este fuera es por una razon, que los Strings sean constantes static final es por otra, ademas de esos horribles comentarios y asi suma y sigue). Y mi problema emocional con java es precisamente que queda horrible y es _demasiado complejo_, por lo que jamas he visto codigo java escrito asi. Basta comparar el codigo que publico Leonardo... -- Aldrin Martoq