El blog variado sobre temas curiosos en .NET... Cubriendo un poco de todo ;)
Jod... y este post para inaugurar el blog!!! Muy bueno Augusto, estoy seguro que esto ayudará a mucha gente que tarde o temprano se encontrará con el problema que comentas. Para los que no conozcan a Augusto, es un chico encantador y un fenómeno picador de código que estoy seguro que nos hará disfrutar con muchos de los Post!!.
Saludos
Unai Zorrilla Castro
Holas!
Bienvenido :D, y gusto conocer a gente con la misma o más pasión por la tecnología y el software.
P.D.: Como dices con Objetos y Web Services, es una forma de extender todo el modelo de Acceso a Datos. Recientemente hice un howto de acceso a datos: http://geeks.ms/blogs/sergiotarrillo/archive/2006/10/29/5373.aspx. El cuál se complementa con el ejemplo que has dado ;)
Saludos,
Bastante interesante Augusto, la verdad es que no descarto usuarlo en próximos desarrollos, espero tu segundo artículo.
Salu2.
Hola! Vamos con la segunda parte del artículo que había prometido. De momento ADFS provee
Estoy de acuerdo, creo que la manipulación de punteros y su comprensión completa, no sólo ayuda al programador sino es el primer paso en la comprensión de cualquier ordenador en sí.
Muchas veces ese conocimiento nos permite detectar fallos de forma preventiva y otras poder entender salidas de resultados de forma ininteligibles para el ojo inexperto.
Aunque estemos en el año 2006, comprender y analizar el significado de un trozo de código que contenga referencias (punteros) considero que es fundamental para alguién cuya meta sea la de programar algo más que no sea en Java y que tenga alguna trascendencia en el tiempo..
Para un puesto de desarrollador, pienso que es un buen filtro.
Y si no aprendieron a manejar C/C++ en la Universidad, daría mucho que decir, para empezar que ante cosas dífiles simplementa lo hacen por hacer, no le ponen pasión, o no le encuentran pasión.
Y creo que al final con este post, algunos aprenderán porque los evaluarán a la hora de postular un trabajo, lo ideal es que despierte el interés en ser abstractos para programar. Dominar el código :).
Al menos en mi caso tiene toda la razón. Yo empecé por mi cuenta a aprender a programar en Pascal y C. Hacía algunas cosillas, pero la llegar a la historia esa de los punteros, algo me fallaba y ya cuando llegados a la POO sencillamente, me perdí. Una lástima, la informática se ha perdido un genio. ;b
saber punteros es la base de todo buen programador, quien no sabe este tema diría que realmente no sabe de programación.
muchas veces usamos punteros y no sabemos que lo estamos usando, alli viene el fundamento del por qué de las cosas...
hay que programar por pasión y con amor, sino no tiene sentido pelarse más...
Es cierto, la única forma de entender qu hace realmente un lenguaje es saber sobre punteros, en una oportunidad trabaje en un proyecto en .NET donde la API base para comunicarnos a SAP (o por lo menos como lo queríamos hacer) estaba en C ANSI y buenos golpes nos dimos hasta descubir la estructura d memoria que se necesitaba crear, eran structs de structs y punteros por doquier, no sabrás los golpes al inicio q dimos hasta que me acostumbre a punteros otra vez, tanot que cuando volvía al código C# ya pensaba en q alocacion estará haciendo esto, porque mejor hago el objeto así, así bajo la cantidad de bytes alocados, y etc... Fue muy aleccionador esa experiencia
Pues yo voy a romper una lanza en favor de los que en absoluto pensamos que C (y mucho menos C++) sea indispensable para ser un BUEN programador. Posiblemente sí sea necesario si quieres ser un GURU, un DIOS... vamos, el Chuck Norris de la programación. Pero vamos, que para el común de los mortales (los que por suerte o por desgracia nos dedicamos a hacer "aburridas" aplicaciones de gestión, y no a desarrollar juegos u otros tipos de programas -léase tratamiento de imágenes etc- donde si no eres un hacha de los punteros además de un hacha de doble filo de las matemáticas y la física no te comes un torrao) desde los tiempos del Pascal o el Clipper de toda la vida no nos han hecho falta los punteros (y mucho menos C) para crear una buena aplicación. O mejor dicho, lo más cerca que hemos llegado a estar de C y los punteros ha sido cuando hemos tenido que hacer llamadas a la API de Win32 y hemos querido saber que Pascal mete y saca los parámetros de la función en un orden, y C lo hace en el orden inverso (como curiosidad, el modificador 'pascal' de las funciones en C es una extensión de Apple según tengo entendido). Pero hasta ahí. No nos ha interesado la, por lo visto, apasionante diferencia entre hacer un incremento de variable utilizando v++ o ++v, ni muchas otras "pijadas" que sí, que tendrán mucha utilidad, pero en ámbitos muy concretos.
Y en cuanto a la recursividad... por Dios, parece que sólo sepáis hacer algoritmos recursivos los "C-eros", pero vamos yo sólo recuerdo un lenguaje en el que teóricamente no era posible implementar recursividad, y era en el BASIC del Spectrum... y aún así lo dudo.
Hombre Pablo...
Los hay aún peores, que consideran que el LISP es el sumum de la programación (hay una historia curiosa sobre eso en Xooglers, creo), simplemente porque la diferencia entre datos y código no existe explícitamente.
Pero para programar aplicaciones de gestión de las de toda la vida hay dos caminos. Hacer una más y hacer la mejor. Está claro que cada uno ha de elegir su camino... ;)
Y pensar que saber algorítmica y estructura de datos sólo hace falta para los que se dedican a hacer juegos es un error garrafal. A ver cómo ibas a manejar una base de datos de una aplicación aburrida (como puede ser la de las publicaciones de un periódico) por la fuerza bruta. Por muy buenas consultas SQL que puedas hacer, cuando procesas miles de registros el elegir un buen algoritmo marca mucha diferencia, y eso no es saber si pones ++i o i++... y no me vale el argumento de que hay que poner más potencia de hardware.
Porque, mal que nos pese, para tratar una colección de datos no siempre nos vale usar un foreach. :P
P.D.: En Pascal se pueden usar punteros...
el comentario anterior lo escribí sin leer el post... ;)...
ahora leyendo el posto digo: "si no sabes punteros en C, no serás más que un aficionado...."
si sabes punteros, el mundo binario es tuyo, claro, C es la voz !!!!.
Opino que aunque no sea indispensable, el conocimiento de cómo funcionan los cotarros "a bajo nivel" es muy beneficioso e importante. Un programador que comprenda y maneje el concepto de punteros podrá entender mucho mejor el funcionamiento de lo que está empleando. Creo que el concepto de puntero es básico. Es importante saber C. Y además, puede ser uno de los lenguajes más sencillos de aprender.
El uso de punteros dentro de nuestras app, fue siempre un tema crucial, muxos los utilizan sin saber lo ke utilizan y sion saber su funcionamiento base, siempre es bueno saber como gira la rueda,
Mmmmm La verdad es que yo el ver las cosas con punteros no me fue muy traumatico. De hecho cuando empecé a ver las cosas que antes habia hecho a las bravas con punteros, le vi mas logica. De todos modos si hay algo claro es que todo programador que se precie tiene que saber manejarse desde mas bajo nivel hasta la ultima abstraccion que se haya hecho en este mundillo, por lo que el articulo lo extendería a que hay que saber manejarse en todo... Incluido ensamblador... Nunca se sabe quien puede necesitar darle vueltas a AL... ;)
Augusto, veo que vamos acercando posturas. Sin embargo...
- No he dicho que no sea necesaria la algorítmica o las estructuras de datos. Todo lo contrario, ser capaz de implementar buenos algoritmos y comprender bien las estructuras de datos es fundamental. Lo que yo he dicho, es que los punteros son prescindibles, y que C no es en absoluto necesario para desarrollar.
O dicho de otro modo, si lo prefieres, "C + punteros != algoritmica + estructuras de datos"
No mezclemos churras con merinas por favor.
Otra cosa, es que desgraciadamente en el mundo laboral, NADIE va a valorarte que hagas la mejor aplicación. Como mucho obtendrás reconocimiento de tus compañeros, pero no esperes, jamás, obtenerlo de los "capos" de tu empresa. A ellos les da igual que tu aplicación ocupe 50 megas, o 50 KB. Se la trae al fresco que te hayas currado un algoritmo de búsqueda revolucionario que deje en pañales a los que utiliza Google, ellos sólo van a ver que has "perdido" muchas valiosas horas "jugando" (en nuestro idioma: investigando). Ellos quieren la aplicación funcionando, YA.
La primera vez que te pasa esto, te ries. La segunda vez (cuando has mejorado aun más tu programa) te jode. Y la tercera ya pasas de todo, y de querer hacer "la mejor" te da exactamente igual hacer "una más".
PS: Por cierto, LISP estaba muy bien para lo que fue concebido, nada más. Y Cobol, y Fortran, y ADA...
Hola Pablo,
Llevo 7 años en este negocio (sé que aún no son muchos, y puede que aún conserve la ilusión) y por lo que he podido ver, por lo menos en mi caso, el hecho de hacer las cosas bien suele tener recompensa. Porque muchas veces para hacer las cosas bien no hace falta investigar si tienes buena base... como mucho, recordar.
Eso sí, es cierto que C + punteros != algorítmica + estructuras de datos.
Pero en una entrevista de trabajo tienes 20 minutos para decidir si contratar o no. Y lo que he podido ver es que esa pequeña prueba (que además, te digo, yo no obligo a hacerla en C, sino en el lenguaje que elijan - me vale pseudocódigo) sí que me vale para discriminar. Sobre todo porque es muy preferible desde el punto de vista de los gastos que te pueden generar, decir que no a uno bueno que decir que sí a uno mediocre.
Si dices que sí a uno mediocre, necesitarás a uno bueno para arreglar lo que hace el mediocre, y estarás pagando a dos por hacer el trabajo de uno (y además, tardando más, ya que el que viene a arreglarlo lo tiene que arreglar después).
Dar la vuelta a una lista enlazada es muy sencillo de hacer en C y con punteros. Si echas un vistazo al artículo, en él explico que los que tiran por Java o por .NET muchas veces (no siempre) tienen problemas con el concepto del objeto, y de ahí que no utilicen los constructores correctamente... Y es una prueba sencilla que implica algo de algorítmica y de estructura de datos.
Por último: Creo que no has leído todo el post, o no lo hiciste con atención ;) Porque no digo en ningún momento que la recursividad y los punteros sean cosa de C. Y no soy un DIOS ni un GURU ni un Chuck Norris de la programación :P
Parece que los comentarios se han quedado encallados en los punteros... en cualquier caso, para punteros el ensamblador :P. En serio, está claro que C (o similar) + punteros [Bien Utilizado] siempre va a tener más rendimiento que usar un lenguaje OO. Pero por otra parte, la mayoría de las estructuras de datos se han implementado y reimplementado miles y miles de veces. Porqué volver a hacerlo va a ser mejor (exceptuando el típico orgullo del programador informático)... sin contar conque probablemente estará mucho más probada ("testada"). Por último, por muy bueno que seas con los punteros, creo que es mucho más difícil encontrar posibles errores. En cuanto al resto del artículo concuerdo en que lo principal para ser un buen programador es ser inteligente y terminar las cosas que empiezas y, aunque cada vez menos saber inglés, aunque si para estar a la última. Y para acabar, jeje, todo esto es culpa de Augusto, que me lía. No creo que se deba aprender C o .Net uno antes del otro, sino aprender a Programar (con mayúsculas). Al final el lenguaje en si debería dar un poco igual (lenguajes de alto nivel, claro). Eso si que me parece importante, más que saber manejar punteros, que en un mes currando (a ser posible antes de empezar a pagarle, claro) ya controle el lenguaje en si.
Hombre, lo que mas o menos parece que todo el mundo esta de acuerdo es que el conocer como se "manejan" las cosas hace que entiendas mejor el ordenador, no?
Por cierto, Augusto, yo de pregunta de calentamiento a veces hago una que tambien es un reverse: Darle la vuelta a un arbol binario }:)
Hola phobeo,
ja ja ja... que risa ....!!! ps tienes la razón hombre, "el fin es entender como se manejan las cosas"... esto es entender el mundo binario...
salu2.
Bueno este post vino por uno mio y ahora me toca opinar a mi :P, yo no voy a entrar en si te hace mejor programador conocer C o no, para empezar porque no lo sabré hasta que lo conozca.
Lo que si te hace buen programador es conocer cuanto más, ¡mejor!!
El poco tiempo que llevo con C, la verda, no he tenido ningún problema con los punteros... puede que no los conozca lo suficiente para no entenderlo :) El caso es que de momento no tengo problemas.
Pero bueno... Tengo 16 años (hace 2 que entre en las programación), conozco .NET 2.0 (con VB y C#), tanto para Windows como para Web, y por lo que me ha dicho Unai no creo que Compact Framework sea muy diferente.
¿Me voy a conformar viendo como .NET evoluciona?¿O empezar con Java (lo dudo porque no me gusta)?
Pues yo creo que no... Conocer C creo que no solo será un lenguaje que se sume a mis conocimientos sino que también me hará ver la programación con unos ojos diferentes, pero eso... me pasará con C y con otros lenguajes que aprenda en lo mucho que me queda por aprender.
Joder Eugenio... empezaste a los 14 años?? Tú eres de los míos, jejeje :D ( http://thenetrix.blogspot.com/2006/10/y-cmo-he-llegado-yo-hasta-aqu.html ) Lo que pasa es que "en mis tiempos" no teníamos las opciones de ahora... aparte por supuesto de que un PC era absolutamente inalcanzable. Así que, para los ordenadores de la época tenías que elegir entre BASIC o assembler. Bueno, algunos privilegiados con sus Amstrad tenían compiladores de Pascal.
Lo que dice Bruno es quizás lo que yo quería expresar, que si uno sabe Programar, te da igual el lenguaje, porque la gran mayoría de cosas que cambian son simplemente sintácticas (Los que venimos de Delphi tenemos la ventaja de haber trabajado con la antecesora de la .NET Framework -la VCL- desde hace muuchos años; y nos dimos cuenta de que entre Visual Basic .NET y Object Pascal lo único que cambia son los comandos). Y viéndolo desde ese punto de vista, yo sí creo que el programador "nace" y no "se hace". Es decir, sabemos que hay dos tipos de cerebros, según el hemisferio predominante: el "analítico" y el "creativo"... Pues para ser programador, tu cerebro debe ser preferentemente Analítico (la parte creativa es muy útil, sí, pero si no puedes comprender la base de la programación que es como ya decían la algorítmica -que es algo 100% analítico-, estás perdido). Y sólo en aquellos casos en que la parte Analítica y la Creativa se complementan armoniosamente, podemos saber que esa persona es (o puede llegar a ser) una auténtica bestia de la programación.
En cuanto a lo de "reinventar la rueda" que también comenta Bruno... pues aunque en principio sea algo que parece inútil, si no hubiese habido nadie que primero le hubiese puesto radios a las ruedas en vez de ser toda entera de madera, y luego le pusieran caucho alrededor, y después cambiasen la madera de las llantas por hierro, y después por aluminio, y le pusieran cámara de aire al recubrimiento de caucho, y... pues vete a saber con qué tipos de ruedas irían hoy los más deslumbrantes Mercedes (desde luego si te lo imaginas la imagen es cómica xDD).
PS: Madre mía como me enrollo en los posts que escribo :P
Estoy de acuerdo en muchas cosas, pero ahora te pregunto yo:
¿Que pasa con los que hemos estudiado un módulo de formación profesional y llevamos la informatica en las venas?
Supuestamente no podemos colegiarnos, y mi título "Tecnico Superior en Desarrollo de Aplicaciones Informaticas de Gestión" me acredita que tengo aptitudes para desempeñar dicha tarea la cual realizo desde hace 3 años en este sector y en varias ocasiones mejor que muchos ingenieros informáticos y el porque es fácil:
Por qué amo mi trabajo y cada día que me levanto intento aprender cuantas mas cosas nuevas mejor y a hacerlas de la mejor manera posible y así será mientras pueda.
Un saludo.
Ojo, no confundamos las cosas... Tienes estudiada una formación reglada ;) Hablo de aquellos cuya formación no tiene nada que ver...
¿Pueden modificarse las propiedades de una instancia que se pasa como parámetro por valor? ¿Y por referencia? ¿Existen los punteros constantes que apuntan a algo variable? ¿Existen variables puntero que apuntan a algo constante? MiCarro = new Vehículo() MiCarro.Carga= "Dos sacos de patatas" ... MiCarro = TuCarro2 ¿Dónde estará MiCarro? ¿Y mis dos sacos de patatas? Preguntas existenciales donde las haya, pero más interesantes son las respuestas. Todo para confirmar que estoy 100% de acuerdo con el autor del post.
Pues yo mismo, no tengo esa formación reglada... y soy exactamente igual que "vosotros", me refiero a que también "llevo la informática en las venas", que la he mamado desde que tenía 12 años y con 15 hacía juegos ¡¡en assembler!! para el Z80, con su gestión de interrupciones y todo.
¿Y si, por avatares de la vida, NO he PODIDO acceder a esa formación reglada? La mayoría de la gente puede permitirse, incluso con grandes sacrificios, costearse una carrera (que en este país es una sangrada lo que te hacen. Debería ser como en Noruega, que te PAGAN por estudiar, ya que eres el futuro del país y hay que cuidarte). PERO... "la mayoría" de la gente no es TODA la gente. ¿Debo renunciar a hacer lo que me gusta, lo que hace más de media vida que es mi pasión?
Que haga código de mejor o peor "calidad" (parámetro totalmente subjetivo), y que comprenda mejor o peor qué demonios es un árbol binario... pues bueno, de acuerdo, pero eso TAMBIEN le pasa a los médicos (hay mejores sacamuelas que otros, y cardiólogos, y traumatólogos...), a los arquitectos, a los ingenieros de caminos (esos cráteres en las vias del AVE en Lérida, ejem ejem)... a cualquier profesional y en cualquier oficio o especialidad. Y sí, también a Sus Supremas y Divinas Excelencias, los Ingenieros en Informática.
Qué hartito estoy, de verdad.
PS: UML no sirve para NADA.
Ufff... es indudable que hay un alto nivel de intrusismo en nuestro mundo, y hasta estoy de acuerdo en que, en terminos generales, esto está haciendo bajar la calidad de nuestros productos, pero dudo mucho que esto se arregle con colegios. Para mi, tener el titulo no implica demasíado; conozco muchos, realmente muchos ejemplos de gente con titulo que ha estudiado la carrera solo para tener el papelito, y sin embargo su interés, conocimientos y pasión devuelven un null pointer exception cuando tratás de emplearlos. Por otra parte, y ya no solo en el mundo de la informática, ¿cuanto le debemos a gente sin titulación pero con unas ganas y pasión desmedidas? ¿Sería justo que, con un modelo de colegios, ésta persona fuera deshabilitada para firmar proyectos?
Conozco personalmente a la gente que está lanzando el Colegio de Informática en Oviedo, y puedo deciros que incluso dentro de sus filas hay mucha gente que cree que el modelo de colegios actual no es válido, y siguen adelante porque es 'lo mejor que se puede hacer'. Con estas personas he tenido la ocasion de discutir largo y tendido sobre ello, sobre el modelo de 'listas de qualificación' que se emplea en los US, etc... Es dificil ponerse de acuerdo, pero aunque encontraramos una posición común, sería casi imposible hacer que, a nivel estatal, el modelo cambiara. Lo cierto es que soy bastante pesimista en este asunto; lo único que tenemos son los colegios, pero ¿realmente merecen la pena?...
¿Tan duro sería el establecer una prueba de conocimientos mínimos para demostrar la aptitud para un trabajo? Los médicos tienen su MIR, los farmacéuticos el FIR (si bien es para fines diferentes). Puede pensarse que eso es una p*tada, pero al final, creo que sería en beneficio de todo el sector.
Al final hay que buscar la calidad. Y si esa prueba la pasa un chico de 12 años o no la pasa un ingeniero informático, lo mismo me da... Pues si el ingeniero no vale, pues no vale, que plante lentejas...
No creo que una persona que lo lleva en las venas tenga problemas para poder hacer una prueba de aptitud... Si es apto. Y los exámenes de ese tipo (tipo oposiciones) suelen costar menos que un cucurucho de pipas.
Eso sí, lo que sería complicado sería establecer los conocimientos mínimos necesarios, porque es una materia demasiado extensa.
PS: UML no sirve para NADA si se utiliza MAL. ;)
Hola Pablo A. ;)
"... conozco muchos, realmente muchos ejemplos de gente con titulo que ha estudiado la carrera solo para tener el papelito, y sin embargo su interés, conocimientos y pasión devuelven un null pointer exception cuando tratás de emplearlos. Por otra parte, y ya no solo en el mundo de la informática, ¿cuanto le debemos a gente sin titulación pero con unas ganas y pasión desmedidas? ¿Sería justo que, con un modelo de colegios, ésta persona fuera deshabilitada para firmar proyectos?"
Completamente de acuerdo... Pero estoy convencido de que esas personas sin formación reglada pero con pasión y conocimientos no tendrían ningún problema es pasar una prueba de aptitud. Mira a Einstein lo mal que le fue en el colegio (y no fue el único) ;)
Y de hecho, también conozco a la gente que está en el otro lado, el que se sacó el título porque algo tenía que hacer, y no le ponen ningún tipo de pasión... Eso sí que sería complicado detectarlo mediante ningún tipo de prueba... :(
Entonces, una vez planteado el problema... ¿Cuál podría ser una solución? (soy consciente de que quejarse no arregla las cosas, propongamos soluciones)
Hola, Augusto:
Esa prueba de aptitud, en teoría ya te la hacen pasar cuando vas a una entrevista de trabajo (he pasado unas cuantas). Sin embargo yo opino que esa prueba hoy por hoy es inútil. Me refiero, no sólo a cómo estableces los "conocimientos mínimos", sino a otro tipo de factores como, no tanto *a qué* le llamarías conocimientos mínimos, sino *cómo* los aplicas. Quizás precisamente porque no existe ese Colegio, que establezca un criterio común.
Voy a ver si me explico: Actualmente y como bien has dicho, la informática es demasiado extensa. Vamos a centrarnos pues en la "rama" del desarrollo. Aqui tenemos partidarios y detractores de muchas cosas: de UML -por poner un ejemplo ;) -, de las metodologías ágiles, de la Programacion Extrema, de la Orientacion a Objetos, de la Orientacion a Aspectos, de VB, de C#, de .NET, de Java, de Windows, de Linux, de .........
Con todo este galimatías, ¿cómo se puede pretender establecer un criterio común? ¿y quién sería el designado para establecerlo? Porque está claro que lo que se decidiera, fuese lo que fuese, iba a gustar a unos y disgustar a otros. Y entonces, en mi humilde opinión, la cosa sería peor (habría mucha gente desmotivada).
Sí, la verdad es que sería demasiado complicado. Pero creo que el filtro de las entrevistas es a día de hoy muy poco fiable :( Porque creo que todos los que llevamos cierto tiempo nos hemos encontrado antes o después situaciones similares a las que me han llevado a escribir este post (bueno, eso y el que la polémica crea visitas, y de las conversaciones siempre se puede sacar algo en claro ;))
Pero creo que independientemente del lenguaje, la tecnología o incluso el paradigma de programación a utilizar hay ciertas cosas que son de base.
Así, que se me ocurran a bote pronto:
* Hacer una traza de un algoritmo en pseudocódigo. Es decir, ver qué contienen las variables en cada paso, etc.
* Escribir un algoritmo en pseudocódigo. No tiene por qué ser un algoritmo complicado, pero que indique que sabes partir un problema grande en trozos más pequeños.
* Con la misma finalidad que lo anterior, proponer un pequeño caso práctico y hacer un análisis del mismo a un nivel conceptual (desligado de metodologías, etc.)
* Etc, etc...
Creo que cosas como éstas valdrían sin tener que entrar en temas "religiosos" como tecnología, metodología, ... ;)
Pero sí, es cierto que eso podría desmotivar (aunque creo que no a aquellos que lo llevan en las venas, no?) y el hecho de poner un baremo, y quién lo pone, es un problema sin solución sencilla...
Esto se está convirtiendo en un blog de opinión sobre informática, bien, bien :P. Creo que hay un par de problemas en vuestros razonamientos: 1) No es lo mismo ser informático que ser médico o farmacéutico. En los segundos estamos hablando de la salud de la gente, un mal médico, farmacéutico, sanitario, ... te puede matar, incluso si es un dentista. Está claro que hay ciertos tipos de software que pueden matar, pero eso no significa que haya que para hacer un web, o montar una tienda de informática (eso también es informática) tengas que pedir a alguien 5 años de carrera, 2 de FP superior (o como se llame ahora), o lo que sea. 2) Estamos hablando de un Trabajo, no es una Pasión, aunque haya mucha gente que tenga pasión por la informática. Un Profesional de la informática debería hacer el trabajo tan bien como un apasionado, probablemente mejor, puesto que el apasionado (si no es profesional) se dejará tirar por lo más guay del momento. Yo creo que el problema no se arregla con colegios de informática, sino concienciando a la empresa. Claro que ¿quién va a hacer eso si no es un colegio? Creo que llamarlo asociación sería mucho mejor, no creo que vayan a conseguir que solo puedan hacer informática los colegiados. En cualquier caso, habría que definir qué es hacer informática. En cuanto a porqué tenemos estos problemas, se me ocurren varias razones. La primera es que es una disciplina bastante joven (los médicos llevan ahí desde el inicio de la humanidad, poco más o menos). La segunda es que nos lo tenemos muy creído, a un obrero de la construcción no se le ocurriría poner un colegio de obreros para que no se pudiera meter cualquiera. Ah, claro, que tenemos carrera de informática! que lo mismo da si es más probable que una persona con pasión y autodidacta saque la prueba de aptitud (lo digo completamente en serio). Hace tiempo oí decir que los informáticos eramos los obreros del siglo XXI, se me quedó grabado y solo hay que ver los sueldos de muchos "ingenieros informáticos" para saber que es verdad. Y yo digo, porqué no me dedicaría a la fontanería cuando llegué a los 18 años... en vez de llevar 10 años estudiando
Hola,
Una cosa está clara, hay buenísimos profesionales con estudios reglados y sin ellos, y hay tremendos incompetentes con estudios reglados y sin ellos.
Ahora la cosa está en cómo parar los desmanes del sector, cómo evitar que una consultora plante a alguien sin conocimientos (6 meses en el sector con curso de programación incluido) como arquitecto de software en una empresa (caso verídico). Ya que esto perjudica a todos.
No creo que el Colegio Profesional como sistema gremial sea la solución para esto, ya que aunque es posible que dejases fuera a los incompetentes sin estudios reglados también dejarías fuera a una legión de grandísimos profesionales que no tienen estudios reglados. Y por supuesto, seguiría habiendo incompetentes con título.
Pero si creo que como Ingeniero tengo derecho a tener un Colegio Profesional, y a dignificar mi profesión (y mi sueldo) y no tener que soportar sandeces del tipo "Ah eres Ing. Informático, entonces tienes que saber cómo se hace esto en el Office... configurar el Emule... arreglar el Ordenador... etc"
Ahora bien, ¿Cual es la solución? Yo no la sé... pero un primer paso podría pasar por educar a las empresas, y al mundo en general sobre que es informática. Para luego educar a las empresas del sector y exigirles de alguna forma que no hagan las inumerables chapuzas que hacen. Quizá si existiese alguna forma de reclamar responsabilidad por estas chapuzas podríamos empezar a andar por el buen camino ¿Podría ayudar un Colegio Profesional a esto? a lo mejor, pero seguramente por sí solo no bastaría. Y ya digo que no quiero un colegio como sistema gremial.
Creo que sinceramente el primer paso lo tenemos que dar nosotros, los Profesionales con mayúsculas, titulados o no, asumir nuestro papel y nuestras responsabilidades, y evitar a toda costa vender humo o que lo vendan en nuestro nombre. Aceptar que la informática no es la solución, sino una herramienta para llegar a ella. Y comenzar a tomárnoslo en serio. Sólo así la mentalidad del sector podría empezar a cambiar, obligando a las empresas a hacer lo propio.
Por suerte ya empieza a haber empresas dónde esto es una realidad.
Ahí queda mi reflexión, no me enrollo más.
Siguiendo el razonamiento de Marco:
"Ah eres Ing. Informático, entonces tienes que saber cómo se hace esto en el Office... configurar el Emule... arreglar el Ordenador... etc"
Creo que tiene TODA la razón, si hablamos de medicos, famaceuticos, dentistas, etc. Todo el mundo sabe que es salud, pero a nadie se le ocurre decir:
"Ah eres Dentista, dime porque me duele la cabeza, el estomago y el dedo del pié"
Es algo impensable. En la informática TODOS somos informáticos, sabemos hacer de todo en el PC y sino no eres informático.
Pero nadie sabe que un informático puede ser analista de sistemas, arquitecto, desarrollador, tester, especialista en bases de datos, etc.
No creo que solo sea cuestión solo de cambiar la mentalidad de las empresas. Yo creo que para empezar estamos ante un problema para empezar del "estudiante", la informática tiene muchos caminos, conozco a gente que está especializado en redes y no tiene ni idea de programar (y no le gusta), y en concreto el del desarrollo que es el que se toca en este tema es algo CREATIVO.
Alguién no estudia pintura (técnicas, no historia) si no quiere ser pintor, ¿por qué?, porque el pintor lo tiene en la venas, ¿por qué?, porque es una tarea CREATIVA.
Esto me recuerda el porqué entré en el mundo de la programación. .El caso es que no me entraba en la cabeza como un software desarrollado por "profesionales" (hoy lo pongo en duda) podían hacer una porquería como la que tenía en mis manos.
Para empezar ante la tal cantidad de errores que tenía su software su respuesta era, eso no se puede hacer.
"Una de las cosas, que no sabía en su momento, era que decían que no se podía incluír el símbolo de € en unos reportes de Cristal Reports..."
Para empzar esto me recueda una de las primeras cosas que aprendí, en la programación nada es imposible (hablo de cosas factibles, no de que salgan modedas por tu pantalla:P), sino que tu creatividad e inspiración pondrán los límites de lo que se puede hacer.
Pero bueno me voy del tema.... Yo no puedo hablar ni de Colegios, ni ingenieros, ni nada... Ya que con aún no he empezado a estudiar la carrera ;) Pero espero que estás cosas que "pedis" y "revindicáis" sean reales cuando me toque vivirlo :).
Espero que haya servido de algo todas estás cosas.
Que tema más aburrido y manido, no se como se puede seguir perdiendo el tiempo con lo mismo de siempre una y otra vez, la verdad. Yo soy ingeniero informático con unos 6 años de experiencia y toda la gente más joven que acaba de terminar la carrera siempre está con la misma canción. La diferencia entre un médico y un informático es muy grande y nosotros no somos ni de lejos tan importante como ellos en esta sociedad, eso para empezar. Dejemos de sentirnos el centro del universo. Yo me he encontrado de todo, gente sin carrera mucho más competente que gente con ella y viceversa. Y olvidad ya el puñetero polimorfismo, que todos decís siempre la misma chorrada, por dios. Y la carrera es útil pero no lo es todo. SOLO ES UN VAREMO MÁS. Válido, pero solo eso. Si tengo un proyecto jodido con BizTalk prefiero un profesional del sector con 6 años de experiencia con BizTalk que una persona con una año con BZT pero que es ingeniero. Y ese es el mercado y la experiencia es lo más valorado. Lo demás: certificaciones, etc.... es un valor añadido, que cuenta, pero valor añadido. Y me refiero siempre a trabajos normales en informática de gestión, proyectos donde el ROI es lo más importante. En proyectos de innovación o investigación la cosa es diferente.
Que esto es Geeks.ms no Barrapunto!!! Pero bueno el tema es importante...
Comparto al 100% la posición de Marco. No creo que los colegios solucionen nada.
Sobre lo del intrusismo, no creo que los sistema gremiales y las limitaciones a la libertad para ejercer un trabajo traigan nada bueno.
Creo que solo sirven para crear elites de incopetentes, de funcionarios de colegio mantenidos con tasas por temas tan importantes como poner un sello en un proyecto. Grandes avances en la informática, y en otras ciencias, han venido de la mano de los 'intrusos' quiza por tener una visión más amplia. Lo que se necesita es gente cualificada no sistemas de castas.
Quiza la base de error sea pensar que la informática es una ingeniería cuando esta mucho más cerca de un arte o artesenía (como sostienen la metodologías ágiles).
Yo creo que la solución esta más en la línea que sostiene Marco de cambiar como se hacen las cosas, y el no tragar con ciertas situaciones, de hecho ya lo comente hace tiempo en mi blog: http://geeks.ms/blogs/rcorral/archive/2006/09/07/No-les-vamos-a-volver-a-enga_F100_ar.aspx
P.D.: Sobre lo de que UML no sirve, ya no tengo duda, he visto al mismísimo Ivar Jacobson renegar de el. Lo uses como lo uses en infumable. Incluso los diagrámas que acopañan artículos son mucho mejores usando colorines y demás :P
Rodrigo, entiendo que mucha gente desencantanda con su trabajo, o bien que trabaje con un grupo poco competente aprecie el desarrollo de programas como una artesanía, y quizá más incluso, como un arte obstruso y exótico digno sólo de unos poco elegidos. Mi opinión, es que en un entorno competente (estoy hablando de una mentalidad de grupo ingenieril, tareas y planificación delimitadas) la producción (y digo producción) de software se realiza de forma sistemática, rápida, eficiente y sobre todo predecible (sí, es posible realizar planificaciones reales en un desarrollo de software, pregunten sino a Apple...). Está claro, que los riesgos son bastante más elevados que otros procesos industriales pero para mí la competitibidad y la calidad se basa en establecer una metodología (que puede ser ligera) que otorgue de cierta calidad al producto. Y ojo, calidad no es que sea perfecto, o tenga un funcionamiento aparentemente correcto (Dios me libre si dijera libre de errores) sino que el funcionamiento y rendimiento es equiparable al coste invertido para el mismo. Creo que el sector se autorregulará el día en el que la informática se meta aún más en nuestra vida cotidiana, y el día que se caigan 2 aviones, estalle una planta nuclear y demás.. posiblemente ese día mirarán a esos que creen que esto de programar es un arte, y dirán que se vayan a hacer punto con su abuela. Y sí, la informática es una industria, no sector servicios.
Hay un tema que nadie ha comentado, y es el pésimo nivel de nuestras universidades. Siempre hay honrosas excepciones, pero lo más habitual es dar con gente que con mucha suerte, ha saltado de perforar tarjetas directamente a las aulas, y que su poca experiencia se remonta a los años 70. No me meto en los porqués... bueno, sí, probablemente porque la labor de profesor está infravalorada y malpagada, y porque los pocos que se "quedan" a dar clases son los recién salidos de la facultad, que no han "mamado" la informática y a los que lo único que les ha motivado en su vida es tener un puesto estable. ¿Así qué van a transmitir? ¿Cómo van a motivar?
Por desgracia, con este panorama educativo, el ser ingeniero informático no es garantía de absolutamente nada. Así que además de concienciar a las empresas, hay que modernizar los planes de estudio, señores. Y si los profesores están aletargados y van a una velocidad muy inferior a la de la industria, es la industria la que se tendrá que meter en la universidad (como gracias a Dios lleva años haciendo Microsoft, por más que pese a algunos fundamentalistas).
Conozco tantos ingenieros incompetentes como "no ingenieros" incompetentes, así que el "sistema de castas" de un colegio profesional no es la solución. Por otra parte, tampoco creo en los examenes de capacitación, porque si acaban siendo como los de la universidad, no aseguran nada. Hay muchísimos ingenieros compañeros de promoción míos, que aprobaron los exámenes metiéndose la gran empollada, sin más motivación que meter un pelotazo en la epoca del "boom" de las "punto com".
Por último, hay tanta "morralla programadora" en las empresas porque las empresas sólo quieren pagar "morralla". El día en el que a la empresa le empiece a doler de verdad la no calidad del software... el día en el que un acuerdo de licencia que diga "este programa te puede destruir todos tus datos y no tendrás derecho a quejarte" sea ilegal. El día en el que las empresas estén obligadas a que su software asegure una calidad de servicio, y que tengan una responsabilidad civil si no la cumple... ese día las cosas cambiarán, porque para hacer software de calidad, tendrán que contratar profesionales de calidad.
Espero el día en el que hacer software de baja calidad, no sea rentable. Pero bueno, estoy convencido de que pronto llegará: en la época de mis abuelos también los barberos podían sacar muelas. Seguro que hoy en día nadie iría al barbero a sacarse una muela, por barato que fuese. No porque el barbero no sea un médico colegiado... sino porque el dentista, les saca la muela sin dolor.
Hola John,
Conozco a Rodrigo y a la gente con la que trabaja. Está en el extremo opuesto de lo que puedo considerar "poco competente"...
De hecho... Son una panda de cracks (por lo menos a los que he tenido el gusto de conocer).
Esta muy bueno el codigo, hace mucho tiempo estaba buscando un ejemplo asi, pero si quiero que se coloree un celda que se escoja con el puntero.
Es agradable leer este tipo de post que ayudan a reflexionar.. gracias...
Soy estudiante de INGENIERIA DE SISTEMAS - UNT y aprovecho para expresar algunas cosas que debido a la no existencia de un COLEGIO PARA IFORMATICOS en mi país (Perú) se está llevando acabo algunas irregularidades para pintar una realidad que no corresponde con la preparación respecto a la carrera de informática.
Ese cuento del colegio de informáticos ha hecho que en mi universidad (Nacional de Trujillo - UNT) se investe el titulo de ingeniero informático. Quiero decir, en primer lugar que en este centro de estudios existe la carrera de informática, más no de Ingenieria Informática.
El engaño es que los profesionales informáticos egresados de esta escuela, salen con el titulo de INGENIEROS informáticos, cosa que no existe y es una mentira creada sólo con la finalidad de beneficiarse con el COLEGIO DE INGENIEROS, es decir, debido que no tienen un COLEGIO, estos se dan así mismos los títulos de INGENIEROS para que compartan el pastel del COLEGIO DE INGENIEROS...
Estos profesionales egresados bajo ese título de "INGENIEROS" INFORMATICOS no son más que INFORMÁTICOS así a secas, y no es que menosprecie la carrera de informática (me encanta el mudno informático, es más pienso dedicarme a esto..) pero creo que no es justo y correcto manipular cartones para asociarse a un colegio que no les corresponde.
En realidad esto es un problema que están tratando algunas universidades grandes del país y los cuales están luchando para que este engaño acabe. Especialmente estoy enterado que la UNIVERSIDAD NACIONAL DE INGENIERIA -UNI - LIMA (en compañia de otras universidades) está haciendo las gestiones para que se acabe con esta falacia.
La informática es una carrera muy bonita pero creo que no se deben engañarse de esta manera, ya que de ingenieros no tienen nada, más que un carton que engaña.
PERCY REYES ,MCP .NET, MCTS MSSQL2005
CORRECTO Percy.
PARA PERCY REYES: Me da pena leer ese tipo de comentarios viniendo de un supuesto ingeniero De Sistemas , que cree que Tener el titulo de ingeniero le da algo de fuerza a su carrera , YO ESTUDIO INFORMATICA EN LA UNIVERSIDAD NACIONAL DE TRUJILLO , y dejame decirte que no me da mucho honor tenerr el titulo de "ingeniero", y creo que ser o no ser ingeniero , no le resta categoria a nuestra carrera, mientras que los ingenieros de sistemas que se creen grandes programadores , solo son eso programadores mas no tienen conocimiento de la escencia que hay en CIENCIAS DE LA COMPUTACION , puesto que nosotros somos eso CIENTIFICOS estamos orientados a crearr , mientras que solo los ingenieros de sistemas , se dedican a usar los programas que los INFORMATICOS como nosotros hacemos para que ellos un poco quedados de cerebro los utilicen para su beneficio, asi que mientras ustedes utilicen nuestros programas , no tienen porque quejarse de nuestro trabajo y nuestra carrera.NOSOTROS NUNCA PEDIMOS LLEVAR EL TITULO DE INGENIEROS, es mas espero que se pueda arreglar esa situacion porque nosotros no somos ingenieros SOMOS CIENTIFICOS, como ya te explique ; y otra cosa mas cuando salimos de la universidad salimos con el titulo de BACHILLER EN CIENCIAS DE LA COMPUTACION Y NO DE INGENIERO , creo que debes leer mas antes de opinnar ********** . gracias
Editado por Augusto Ruiz: No entréis en descalificativos personales, por favor. Se puede opinar sin insultar.
Holas amigos,
Antes de responder al comentario del sr. Mendieta debo expresar lo soguiente: Soy estudiante de ing. de sistemas, 8vo ciclo, amo la informática en su expresión más pura, me gusta crear software, y estoy especializándome en esto (claro, de profesión seré ingeniero de Sistemas, pero me gusta pikar código todos los días).
Ahora,
En primer lugar yo no ofendi a alguna persona como sí lo está haciendo el sr. Jorge Mendieta hacia mi persona, sólo quize aclarar un tema que desde mi punto de vista no es correcto, es decir, no existe INGENIERIA INFORMÁTICA, y punto, aquí se acabo todo. Además no entiendo porque los estudiante de informatica no lo toman en serio y luchan contra este engaño, al final ellos son los perdujicados por aceptan mentiras.
Yo nunca fije que la ingeniería sea mejor que la informática, todos tenemos mucho de ingenio, el ser ingeniero no nos da más categoría frente a otros, ps todos conocemos nuestras áreas de accíón y nos realizamos en eso, además creo debe respetarse cada una de ellas, es decir, seamos lo que seamos: contadores, médicos, informáticos, ingenieros, administradores, ...todas las carreras tienen lo suyo, y el ser informático no nos hace los reyes en el mundo, ni tampoco el ser ingenieros.
si bien es cierto la informática es CIENCIA (que bueno que lo sea, yo amo el mundo informático, y hace casi 8 años que me dedico a esto), los profesionales de esta carrera también crean lo suyo como también lo puede hacer un profesional de ingeniería, pero no por esto alguien se puede tomar el derecho de ofender a otra persona simplemente por dar su opinión, como la hice yo.
Me da mucha pena que un profesional de informática se exprese de esta manera, y diga que los ingenieros SOMOS UN POCO QUEDADO DE CEREBROS. No voy a caer en un provocación tonta de alguien que tal vez aún no entiende el sentido de ser un profesional a carta cabal (incluido inteligencia emocional).
El ser estudiante de ingenieria de sistemas no me hace más que el resto ni mucho menos, respeto todas las carreras y creo que tienen una razón de ser en este mundo, al fin y al cabo todas colaboran a la evolución y mejora del mundo.
Es mentira eso de que los ingenieros de sistemas sólo nos dedicamos a usar los programas que los informáticos crean. Déjame decirte que no es necesario estudiar informática para crear un software de calidad, en estos tiempos, ya no hay limites, la información es libre, y cualquiera persona que tenga las ganas y amor por el software puede dedicarse a estudiar estos temas y desarrollar software, como se menciona en este post a historiadores, abogados, etc... es más conozco gente a nivel mundial que desarrolla software de mejor calidad que alguien que haya pasado por las aulas de una carrera de informática, ejemplo: WillyDev. Además tengos amigos ingenieros de sistemas que trabajan desarrollando software en las más grandes empresa limeñas, y no nos creemos los super programadores ;).
Ahora me pregunto: ¿por qué será que un estudiante de informática a veces manda hacer, a un estudiante de 5 ciclo de ing de sistemas, el software que debe sustentar en su tesis?,... y si no les gusta tener el titulo de ingeniero, porque no solucionar esto de una vez, además debo decir que mi amiga me aseguró que su titulo sale como INGENIERO INFORMATICO (claro después de ser aprobada su tesis, cosa que tal vez aún no presentas tú), hablo con fundamento. ok?.
Para terminar debo decir que, un ingeniero de sistemas, tambien está preparado para desarrollar software, nosotros llevamos cursos de ing. del software I y II, arquitecturas de PCS, electrónica digital, ing. web, software de gestion OO, DB I y avanzado, legislacion informática, etc... y así una linea de cursos orientados a prepararnos como desarrolladores, además estamos preparados para desempeñarnos en el mundo BI (inteligencia de negocios), gerencia de empresas, etc... somos profesionales con un visión mucho más amplia que un informático, el cual no podrá desempeñarse como un ingeniero de sistemas, ya que no tiene la preparación para hacerlo. Sin embargo debo dejar muy claro, que EL HABITO NO HACE AL MONJE.
No seas académico hermano, el haber pasado por aulas de informática no te da hace el dueño de esta área, creo que debe leer un poco más, ser más educado.
PERCY REYES,
tio tu que pienzas que para ejercer o ser un ingeniero informatico se necesita mucho menos de lo que ha hecho un "Doctor" pues te digo que estas fuera de lugar y no podrias hacer comparaciones absurdas cada uno se desempeña en lo que le apasiona, hay mucha gente que conosco que programa y ni siquiera es un tecnico ni egresado de un instituto pero tiene la logica y la inteligencia necesaria para poder serlo, soy Ing. de Sistemas de Perú y tengo amistades programadores que hasta exportan software y ellos no han terminado la carrera pero son tan buenos que no necesitan pasarse 9 años para poder ser lo buenos que son ahora. Ten mas tino cuando hagas tus "comparaciones"
Un saludo a toda la gente que estudia y/o se dedica al maravilloso mundo de la informática,soy un estudiante de la UNIVERSIDAD NACIONAL DE TRUJILLO, TRUJILLO-PERU,y quiero comentar que como en muchos paises aca tampoco se cuenta con un colegio de informaticos, por lo que nosotros estamos inmersos dentro del colegio de ingenieros del Perú aunq nustra preparacion no tenga nada que ver con la de los ingenieros. Nosotros , los informaticos , hacemos ciencia, y nuestra preparacion es netamente orientada al campo de la ciencia, tenemos una base muy solida y nuestro conocimiento permite no solo usar herramientas, sino ademas crearlas,por ahi lei que los amigos ingenieros de sistemas crean software y cualquiera que estudie en un instituto puede saber programar, pero la gran diferencia es que ellos no son expertos creando compiladores pes no tienes un conocimiento detallado por ejemplo,y asi por el estilo he estado revisano la curriculade un ing de sistemas y veo que su estudio no es detallado, no se sumergen en los temas de la informatica,entonces¿ si nosotros los informaticos no somos ingenieros, poruqe estamos en un colegio que es de ingenieros? la respuesta es sencilla, todo profesional necesita una colegiatura para poder ejercer su profesion, y teniendo muy en cuenta que esta carrera tiene muy pocos años de creacion es que aun no existe un colegio para nosotros,esa es la unica razon por la cual estamos inmersos dentro de un colegio al que NO pertenecemos. por otro lado no entiendo que tiene que ver un medico con un informatico si ambas carreras son completamente diferentes, ninguna es mas que la otra, me parece que solo se estan dedicando a ver la informatica desde un ambito referido a la porgramacion y la informatica enmarca muchas otras areas como son la domótica, robotica, inteligencia artificial,y otras mas asi que no es cuestion de ponerse a leer un manual de cómo programar y decir que ya uno es informáico, la informatica es una ciencia muy bien definida y no se la puede comparar a otra, tal como no se puede comparar ninguna carrera a otra pues cada una tiene un radio de accion muy bien marcado. Saludos a todos los desarrolladores del conocimiento que se dedican a este maravillosos mundo. Atte:José Valdez "El conocimiento es del mundo y para el mundo"
Buenas a todos, estudio Informática en la Universidad Nacional de Trujillo, soy estudiante del 8vo Ciclo, y IX Promoción. No pense escribir acá, pero te conozco Percy Reyes, no en persona tal ves si de vista, incluso te vi en la última gira que organizo INETA aca en trujillo también, incluso fui un suertudo que conocí a mi también maestro el Guille e incluso de el me gane mis cds y mi paquete orgininal GET READY. con todo el respeto del mundo, no comparto tu opinión, podras ser un MCP .NET un especialista en lo que quieras hasta dueño de la misma Microsoft o no se, elaborar sistemas no es nuestra carrera, no esta enfocado a eso, no se si tu sabrás como está todo organizado en Informática como para que te des cuenta y puedas hablar con mas fundamentos. Está muy bien que también sepan programar porque para nosotros al menos es una poderosa herramienta, a mi en particular me gusta también .NET y hago mis proyectos en esa Framework, pero sabes que es Ciencia de la Computación ?, si eres mas investigador como somos las personas que hacemos ciencia ya hubieras leido el DRAFT que publico la IEEE con la ACM hace unos años atrás, y pues no estamos basados en reutilizar cosas hechas, nosotros las creamos, porque tenemos mucho fundamento y base para hacer eso, ahora segun tu punto de vista "cientifico" no creo que sea, todo lo que has dicho es Ingenieria, seras muy practico, podras aprender mucho de Informatica, porque la palabrita suena a aprender tecnologias y no es asi, sabras mucho de tecnologias de informacion, cosas asi, y yo tambien las sé por cierto, a mi corta edad, conozco mucho de mi carrera y estoy dispuesto a defenderla ante quien sea, ahora dime sabes que es un Problema P, NP o NPC ??? tendras en tu cabeza la nocion de lo que es un Algoritmo Genetico ? un Greedy ?? o Heuristicas ?? habras estudiado procesamiento de Imagenes ?? Redes Neuronales ??, y muchas cosas mas ? derrepente me diras como es tu estilo al parecer que es simple pues eres un "Ingeniero" claro puede ser porque eres metodico ! que facil decirlo asi, cualquiera puede aprenderlo, pero si no sabes que es Teoria de la Complejidad, Teoria de Lenguajes Formales y Automatas y Algoritmos (que tambien he visto que lo llevan) pues te comentare que eso somos, nos dedicamos al analisis, diseño, investigacion y mucho mas que eso... a ver MCP de .NET que seguro eres un experto en lo que es seguridad INFORMATICA! sabes tecnicas de encriptacion y como programarlas ?? has estudiado eso ?? no lo creo. En conclusión ... porque ya no pienso responder y leer nada de tu persona, conozco gente de Sistemas que si saben respetar las demás carreras, talvés no usaré gorrita como tu para programar tus programotas que haces porque eres un INGENIERO, bueno lo que si se es que nuestra carrera tuvo mal enfocada al inicio, las Autoridades por cuestion de marketear la carrera dieron ese titulo pero gracias a Dios tenemos el Bachiller que nos hace ser reconocidos en el extranjero aun y considerados por la IEEE y la ACM, quien sabe talves por mas entes. A mi no me interesa para nada ser INGENIERO, por ultimo no saco mi titulo y punto, si talves eso te haria alegre, pero si hago ciencia, hago cosas nuevas y no me dedico a estar reutilizando cosas ya creadas para elaborar mis sistemas :) sin mas que decir y talves una pregunta ¿QUE ES PARA TI UN SISTEMA? ... a ver que tan buena respuesta te das cuando estes a punto de salir presentando tu tesis, espero que me la des porque hasta ahora ninguna persona que estudia tu carrera me lo ha dicho :) Saludos Nieto del Guille ... Guillermo Vallejo Vargas pdta: Bueno tambien se programar en .NET muchas cosas he hecho, por ejm. Un software utilizando conceptos de bases de datos, para realizar test de Normalizaciones hasta la 3era forma normal y realizaba particionamientos, etc etc etc, no los aburro mas y caso cerrado como diria la Doctora Ana Maria Polo, pero por si acaso " no es MEDICO " ... Bye y Saludos
Hola Jorge Mendieta! Desde Ing. de Sistemas de la U.N.T.: En primer lugar lo que piense una persona, en este caso Percy Reyes, no es la opinión de toda la escuela de Ing. de Sistemas, mucho menos de la U.N.T. Es simplemente su opinión, nada más. En cuanto a lo de la Ing. Informatico, e Ing. de Sistemas, y para todos los nombres que puede haber. Desde que ingresamos todos estamos en la mismo nivel, y en las mismas condiciones, que una persona de una carrera u otra sea mejor, sólo dependerá de ella. Y esto también va para las carreras profesionales de Institutos. Cuando me iniciaba tuve la oportunidad de trabajar con un Ing. Informatico, Carlos Córdova, una persona muy capaz. Hay grandes representantes en Ing. de Informatica como Helkyn Coello e Ivan Mostacero de Ing. de Sistemas. Y el hecho de uno sea de una carrera u otra no los hace menos. Creo que lo mas importante es que somos U.N.T. Ojo, no lo digo por menospreciar a otras Universidades, pero yo, le tengo mucho corazón a mi universidad: UNT. Simplemente juzgar a una persona, por toda una escuela, por toda universidad, o todo un País, no vale la pena. P.D.: En cuanto a los comentarios de que nosotors usamos sus programas, o nos otros hacemos sus programas, u otras sandezes dichas. No vale la pena cometarlo. P.D.2: PARA Augusto Ruiz: debido a que las últimas opiniones se han desviado mucho, creo que ya es hora, de cerrar los comentarios. Saludos,
Hola gente, soy estudiante de Ing de Sistemas VI ciclo. Nuevo en este espacio, sin embrago, da pena lo que este señor Jorge Mendieta estudiante de Ingenieria Informática expresa, los que somos estudiantes de Ingeniería de Sistemas nunca nos hemos dado ínfulas de ser superiores a los estudiantes de ninguna otra ingeniería ni carrera q exista, pues en casi todas conosco gente muy capaz, muy suficiente. El problema con informática de la UNTa sido siempre el complejo de inferioridad q ciertos estudiantes, producto de no se que trauma tienen, no quiero hacer personal este comentario pero creo q a la luz de todos queda ratificado el xq de los calificativos, quien es mas limitado que quien, pero en fin si el modo de saciar de saciar tu vacio es ese, adelante. Por cierto sigue creando programas para que los pueda utilizar, aunque bueno a pesar de mi inclinación por los sistemas blandos, que no tiene que ver con desarrollo neto de software, mas bien se apoya de esta herramienta cada día más necesario y a mediano plazo sera indispensable, hasta ahora te diré con toda franqueza no eh encontrado programas realmente eficientes que hayan sido creados exclusivamente por Ingenieros Informáticos, los que encuentro datan de una conjunción de conocimientos y para que eso suceda primero tenemos que superar nuestros sentimientos de inferioridad y mas bien sugerir innovaciones. PDTA: Conosco a Percy de hace 6 años, cualquier estudiante de Ing. te dará referencias de él, te hablaría de lo que ah conseguido pero en al nivel que has llevado esta situación, más bien parecería presunción y eso es lo que no somos.
Hay cosas más importantes que hacer....!!!, que estar cayendo en este tipo de comparaciones, entre Informáticos, Medicina e Ing. de Sistemas...
Todos tenemos nuestras áreas de acción, y os pido que hagan lo qie saben hacer.... den lo mejor de ustedes, el hábito no hace al monse...
quiere decir MONJE, y no monse :S.. :Oo...
Hola bueno en lo personal considero que ambas carreras tienen un enfoque distinto, soy Informatico y tengo amigos de Ing. de Sistemas tanto de la U.N.T como de otras universidades de Trujillo, y eso me ha permitido ver que cada uno, tanto ellos como yo, tenemos una tendencia distinta, lo cual no es cuestion de ser inferior o no, simplemente es diferente. He visto buenos trabajos de software de estudiantes de Ing. Sistemas y que tienen amplio dominio de software relacionado a los negocios, tienen conocimientos de E-business, Ing. Web y todo lo relacionado al campo comercial, mientras tanto los Informáticos estan en el campo de las Ciencias, en el desarrollo de nuevas soluciones y ver la forma de crear nueva tecnología; trabajos como Reconocimiento de huellas dactilares (en la criminologia) o mejoramiento de imagenes de placas radiograficas (en el campo medico) hechas por Informaticos en nuestra escuela, como tambien desarrollar trabajos sobre Ing. Software. Ahora, la programación en realidad no es un fin, sino un medio para solucionar algun problema, mucho se confunde, lo cual no es cierto, conozco personas que saben programar sin embargo estudian contabilidad, derecho, pero acaso ellos pueden desarrollar el software que hacen los ingenieros de sistemas o informáticos?, yo creo que no. Lo que también creo es que una persona (ing. sistemas o informatico) con mucha dedicación puede lograr abarcar el otro campo (informatica o ing. sistemas), pero eso es cuestion de cada estudiante, sin embargo es posible. Cada estudiante de cada carrera aporta algo a nuestra sociedad, todos contribuimos de alguna manera y creo que no seria apropiado comparar y mucho menos menospreciar el trabajo de otros. Saludos a toda la gente de la U.N.T y espero que podamos ser mejores estudiantes cada día por nuestras escuelas, nuestra sociedad y nuestro país.
Hola: Escribo esta vez para en primer lugarr disculparrme con las personas que ofendi (INGENIEROS DE SITEMAS), pues creo que me pase , pero es que la verdad me dio un poco de indignacion que ustedes esten hablando asi de nuestra carrera Informatica , y si es que nosotros como dicen tenemos problemas con lo del colegio de Informaticos y eso , pues creo que no deben entrometerrse no creen? es algo que nos compete exclusivamente a nosotros los que estudiamos esta carrera profesional, pues bueno corrtando todo este asunto por lo sano , me disculpo con ustedes y les quisiera pedir que ya dejen de hablar mal de nuestros problemas internos, no les gustaria que viniese un desconocido y empiece a hablar de los problemas que aun no solucioonas, se supone que estas trabajando por arreglarlo tu mismo ..., bueno espero que este asunto quede terminado aqui , y pues no hay nada mas que decir ...ACEPTAR LOS ERRORES , es MUY SABIO , y eso trato de hacer.Y BUENO PERCY ESPERO QUE APRENDAS A HACER CRITICAS CONSTRUCTIVAS . gracias
Creo que estamos perdiendo la compostura y dejando de lado el profesionalismo con el cual se manejan estos aspectos, creo q ya dejé aclarado el porque existe ingenieria informatica, asi que me parece que al final todos nos informamos y salimos entendiendo el porque de las cosas. Para jimmy: Hermano quien te habla es un informatico de la misma UNT y me parece que estas dejando de lado la preocupacion por superar y hacer fuerza conjunta para salir adelante con tu comentario algo despreciativo para algunos de mis colegas estudiantiles,la cuestiosn es simple nadie es menos que nadie, y si alguien tiene complejo de superioridad o inferiridad, es cuention de cada persona, siempre y cuando sus opiniones no inmiscuyan a un grupo o a un conjunto de personas. Saludos para todos y preocupemonos por hacer ciencia e ingenio mas que por prestar atencion a comentarios que siempre van a ser muy variados. Atte: José Valdez Estudiante de ciencias de la computacion UNT -Perú
Quiero decir esta vez algo que considero necesario:
Lo que diga Sergio Tarrillo, también es una opinión es una persona, y no de toda la escuela de ingeniería de sistemas de la UNT.
Todo es relativo en este mundo, el título no hace a la persona,
El único que tiene derecho a cerrar los comentarios es el dueño del blog, y nada más que él, además todos tienen derechoa opinar lo que piensen, y como esta vez compararon a Medicina con Informática, también se filtro Ing. de Sistemas vs Informática.
Todo esto no tiene mucho sentido de etsar comparando carreras, cada quien tiene lo propio y es valioso.
Hola a todos,me parece interesante el comentario q se publico en este blog..un amigo me dijo "leelo",te va a interesar como Ing. de Sistemas, y bueno, me tome el trabajo de leer todo, en primer lugar es de mi opinion q existen muchos problemas por la informalidad q ha tomado la carrera de Informatica en España,Argentina, Peru...etc, y se debe a q estos dias no es necesario ir a una universidad para ser bueno en algo,han existido y existen grandes autodidactas...y bueno los q estamos concientes de "por donde va la educacion"sabemos q muy pronto no sera necesario ir a una institucion educativa para aprender...creo yo q todo este revuelo es porq estamos viviendo el transito a esta nueva cosmovision de la educacion. Asi q creo q el problema de la informalidad no se arreglara con un colegio profesional, tampoco soy de la opinion de q estorbe. Conosco muchos profesionales, sin importar el rubro q tienen el titulo de adorno,y no es por falta de colegio profesional , si no por falta de motivacion personal, debido a q?? pues eso depende de cada uno... ademas creo q el autor del blog hizo la comparcion entre un medico y un informatico , como un simpre ejemplo, no le demos mas vueltas a eso porq no tienen nada en comun. Ahora, yo tambien estudio en la UNT de Trujillo, y pues ya sabran todos porq me recomendaron q lea los comentarios... jaja, vaya q los Trujillano eligieron este blog para seguir con la riña Informatica Vs. Sistemas, causada por un comentario totalmente fuera de lugar q hicieron sobre nosotros los Ing. de Sistemas..nos llamaron "faltos de cerebro"...la verdad me causo risa esto porq parece una broma mal hecha. Ya muchos compañeros de Sistemas respondieron con fundamentos, no dire mas sobre el tema. Gracias por la oportunidad de expresarme y pues nada...nadie es mejor q otro,todos tenemos nuestros rubros y solo nos queda hacerlo lo mejor posible :). PD: Percy es un buen amigo mio y doy credito a q aun no siendo desarrollador de profesion es muy bueno en ello. :P
hola tb soy nuevo aqui..estudio Ingeniería de Sistemas en la Universidad Nacional de Trujillo..PERÚ...primero ante todo condeno los agravios de personas que dicen q dicen ser estudiantes universitarios y por lo tanto pretenden ser profesionales..creoq las personas q tenemos algún tipo de formación no debemos caer en esas actitudes aunq no compartamos las mismas ideas..eso es todo con ese punto..y con respecto al punto central realemente considero ilogicas las comparaciones entre especialidades ya que si existe es porq insitituciones brindan su enseñanza para que su aplicacion sea útil en la sociedad y q sentido tendrir formar profesiones con mismos patrones, objetivos o campos de acción ..y considero q cuando algun profesional hace este tipo de comentarios sobre diferencias con otras es porq no conoce a fondo su especialidad..acerca de q si es ingeniera u otra denominación..es consecuente q si una persona no esta de acuerdo con algo dentro de lo cual está y estará inmerso durante toda su vida(claro si es q quiere ejercer su profesión) no va a permitir pues tener un título q no le corresponde(yq es para toda la vida porsupuesto)..como dice Percy el hábito no hace al monje uno es por lo q es y puede llegar hacer y esos comentarios de q yo soy más q tu porq estudio tal carrera están demás...y solo para terminar creo q cuando alguien opina sobre algun tema debe hacerlo con conocimiento de causa..lo digo porq un señor lineas más arriba mencionó que mi especialidad no es detallada..no crees q solo leyendo nombres de cursos de un plan curricular puedes afirmar q una especialidad no es detallada??..seria mas coherente de tu parte que revisaras cada uno de los sílabos de los cursos de nuestra especialidad para que recién emitas algún tipo de comentario sobre la misma..esa es mi humilde opinión..les parezaca o no mi parecer respeto a todas las opiniones alturadas vertidas em este foro.
Muy buenas opiniones de los señores: Rodrigo Corral, Pedro, y Zeitán (mi jedi)..... FELICITACIONES,
ahora queda seguir investigando, y no caer en este tipo de discusiones que ya parecen bastante fuera de lugar.
si un alquien estudió medicina se le debe llamar medico. Es sencillo. si alguien estudió ingeniería se le debe llamar ingeniero. Es solo sentido común. Ya dejen de comparar pues muchachones no perdamos el tiempo. Y si algunos tiene problemas con su carrera pues que lo solucionen ellos. Los demas no tenemos porque meternos. chaufaa.
Cada uno con lo suyo! los medicos estudian 9 años porque la medicina no solo se aprende, se practica y bajo supervisión, con la vida de las personas no se juega.. En cuanto a las carreras orientadas a la computación se aprende y se practica, incluso se puede ser autodidacta, la información es libre!!!
Hola a todos incluido a Jorge Mendieta xD...como supondran correctamente tambien soy estudiante de Ingenieria de Sistemas de la UNT ..y asi como Carmen el mismo amigo me dijo "lee esto" y vaya que me tome la molestia de hacerlo ...y bueno con respecto al tema "La diferencia entre un médico y un informático" dicho al principio (aunque resulta obvio ,lo digo, ya que se habia salido bastante del tema principal propuesto...pero bueno) al clickearle al link "trauma center " ya veo de por donde se vino la idea y el titulo tambien xD... en fin me parece que el problema que se refiere es a la gran frustracion que se debe de sentir el haber estudiado una larga profesion de años para que al final te des cuenta que como dice Augusto: "de que hay gente programando con orientación a objetos que no tiene ni idea de lo que es una interfaz, de qué es la herencia, el polimorfismo, una clase abstracta... ¡Y son muy felices!" (esto en el mundo real) entonces donde quedaron los tantos años estudiados fuera de cursos adicionales y practicas y mas que ya se imaginan y sabran...yo opino y creo que como ya se dijo arriba la solucion marcha por educar a las empresas, y al mundo en general,incluso a nosotros mismo sobre que es informática.. (en el caso de peru definir las diferencias entre informatica e ing.. de sistemas no por algo fue un tema principal tratado en el ultimo congreso)...y bueno para las discusiones que existe en cuanto a "Ing de Sistemas" e "Informatica" yo veo que aqui k el problemas es el mismo (ausente definicion de lo que es informatica ciencias de la computacion o diferencias con ing de sistemas o como se le quiera llamar y despues de esto cada uno a lo que le corresponde que nadie es dueño de todo ni mucho menos indispensable )... y no se diga mas k ya parece que el titulo del tema a tratar fuera "INFORMATICA VS SISTEMAS" <---de la UNT jejeje ....bueno sin nada mas que agregar por el momento me despido ;) bye:) Salu2. a Carmen Y Percy (quien me invito a leer esto jje) Edmario->#
Percy, estoy de acuerdo contigo.
Después de este tema, lo positivo a sacar es que basta con abrir la boca (o teclear), para darme cuenta de lo equivocado que estoy. Os doy las gracias por opinar a aquellos que lo han hecho con corrección, y a aquellos que me han ayudado a abrir los ojos ;)
Así que voy a guardar el troll que llevo dentro, porque como bien decía Rodrigo, esto es Geeks, no Barrapunto. Con lo que estas discusiones quedan bastante fuera de lugar.
Volvamos a lo que nos gusta y nos interesa.
Gracias a todos.
Hola shadow,
Para colorear una celda que se escoja con el puntero (supongo que haciendo click sobre ella) lo que puedes utilizar es lo siguiente:
Añadir un constructor a la clase DataGridColoredTextBoxColumn en el que le pasas el DataGridTableStyle que estás utilizando en el DataGrid:
Private tableStyle As DataGridTableStyle
Public Sub New(ByVal style As DataGridTableStyle)
tableStyle = style
End Sub
Hay que cambiar el método Paint de esta clase, haciendo que el Color que utiliza para levantar los eventos los saque del objeto TableStyle que le pasas al constructor. Para ello, añades estas dos variables en el método:
Dim backColor As Color
Dim foreColor As Color
Y haces lo siguiente al inicio del método:
foreColor = tableStyle.ForeColor
' Es impar?
If (rowNum And 1 = 0) Then
backColor = tableStyle.BackColor
Else
backColor = tableStyle.AlternatingBackColor
End If
En la creación de las instancias de RowColorEventArgs, le pasas los colores backColor y foreColor en vez de utilizar los colores del TextBox:
' Pedimos el color de fondo
evArgs = New RowColorEventArgs(backColor, source, rowNum)
RaiseEvent GetBackColor(Me, evArgs)
Y lo mismo para el evento GetForeColor.
Ahora, en el formulario hemos de hacer lo siguiente:
En el evento Load, al crear los objetos DataGridColoredTextBoxColumn hemos de pasar el DataGridTableStyle que estamos utilizando. Para ello cambiamos la línea de la declaración de la variable por la siguiente:
Dim gridCol As DataGridColoredTextBoxColumn = New DataGridColoredTextBoxColumn(tableStyle)
Añadimos las siguientes variables privadas al formulario:
Dim currentRow As Integer = -1
Dim currentCol As Integer = -1
La gestión del evento GetBackColor sería la siguiente:
Private Sub GetBackColor(ByVal sender As Object, ByVal e As RowColorEventArgs)
Dim data As DataRowView
Dim value As Integer
Dim col As DataGridColoredTextBoxColumn = CType(sender, DataGridColoredTextBoxColumn)
Dim colIndex As Integer
colIndex = DataGrid1.TableStyles(Me.OrdersDataSet1.Orders.TableName).GridColumnStyles.IndexOf(col)
data = CType(e.Source.List.Item(e.RowIndex), DataRowView)
If Not data("EmployeeID") Is System.DBNull.Value Then
value = CInt(data("EmployeeID"))
If value = 5 Then
e.RowColor = Color.Red
If (colIndex = currentCol AndAlso e.RowIndex = currentRow) Then
e.RowColor = Color.Blue
col.TextBox.BackColor = Color.Blue
Y por último, hemos de gestionar el evento MouseDown del DataGrid, para anotar la fila y la columna en la que hemos hecho click con el ratón:
Private Sub DataGrid1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGrid1.MouseDown
Dim htInfo As DataGrid.HitTestInfo = DataGrid1.HitTest(e.Location)
If htInfo.Type = DataGrid.HitTestType.Cell Then
currentRow = htInfo.Row
currentCol = htInfo.Column
Espero que te sirva ;)
He dejado el código modificado aquí:
http://geeks.ms/files/folders/aruiz/entry6251.aspx
Saludos!
Hola Augusto,
Nunca es tarde para corregir, y que bueno que lo hayas hecho, todo esto ayuda, no sólo a ti, sino a todos a saber y reflexionar antes de darle en el botoncito "post"... ;)... Ya sabéis que la gente sólo juzga y una vez que se comete un error, la mayoria está para aprovechar esa oportunidad y embarrarla.
Mantener un blog es muy sacrificado, se requiere de cierto tiempo valioso, y creo sinceramente que tu blog es uno de los buenos, no sólo por estar en los dominios geeks.ms, sino por el contenido (a pesar de este post..) y los debates que has iniciado....
Ya sabéis, a seguir pikando código, y posteando..... felicitaciones
P.D. : ahra sí sería bueno que lean esto: http://geeks.ms/blogs/ozonicco/archive/2006/11/13/Revoluci_26002300_243_3B00_n-de-los-blogs.aspx :P...
saludos
http:///www.ozonicco.info
Jur... cuando he leido lo de que en la version 2.0 de la framework se puede hacer de una manera mucho mas sencilla me estan entrando ganas de cambiar el proyecto.... Pero mejor probare antes la opcion del 1.1, no vaya a ser que la fastidie por completo. Por cierto nene, si pongo una secicon de agradecimientos en el proyecto, te incluire junto con un 10% de los beneficios que saque de la empresa a la que se lo estoy haciendo!!!! (10% de 0€... bueno, algo ya es xDDDDDDD)
Me basta con que te sirva ;)
No sé a qué altura estás del proyecto, pero si quieres puedes hacer una prueba de migración para ver si se te descacharraría del todo.
Bastaría con que hagas una copia de la carpeta donde tienes el proyecto (aunque el wizard de migración pregunta si quieres que haga un backup del proyecto original), y abrir la solución con el Visual Studio 2005. Al finalizar, puedes ver el informe de la migración con los avisos y errores que puedan haber surgido, aunque en general, si el proyecto no es muy complicado, no suele haber ningún problema.
Eso sí, todo depende de la altura a la que estés, de si te merece la pena migrar, si tu tutor está de acuerdo, etc, etc, etc...
Suerte con el proyecto!
Hola! Este artículo tratará de describir las diferentes alternativas que podemos utilizar
Muy bueno Augusto... si cuando dejas al trol en casa te sales !!!
Creo que si quieres llamarte programador,
debes programar en C/C++, sino eres una secretaria administrativa!!!
Buenos días ante todo, como q son casi las 3 de la madrugada y pensaba en ... bueno porq esperar hasta las 8 u 9, soy de Lima Perú, y en verdad a mis compatriotas de todas las UNIS del Perú, q ya se presentaron ... y de q forma jeje, pues calma tios, no se peleen mas, hace mucho time llevo investigando y leyendo mucho el porq estas discuciones de siempre... saben a lo q me refiero...,son las preguntas de 100pr, pero la solución ya esta:
La Ingeniería de Sistemas es muy amplio, esta mal enfocada desde el punto de vista ACADEMICO, incluyendo la curricula... son TODISTAS, si eso es bueno o no es muy debatible, y sin embargo los relacionan con desarrolladores de software, invaden el mercado del desarrollo de software, ¿quien tiene la culpa? ... es disgno de otro hilo...
La Ingeniería Informática : ...
q el traje no hace al profesional es otro royo... porq ? porq LA ACADEMICA forma mal, la INDUSTRIA consume MAL, pero gracias a Dios existe la ACM y IEEE y no hay mas vuelta q darle tios... !, me inquieta mucho el porq no examinaron los documentos q describen la curricula de computacion, de seguro se olvidaron de donde proviene nuestras profesiones por estar discutiendo q yo soy mejor q tu ...
1. DEFINICIONES
INGENIERIA DE COMPUTACION:
Es amplia en la parte inferior porque la ingeniería de la computación cubre el rango desde teoría y principios hasta aplicaciones prácticas de diseño e implementación de productos utilizando hardware y software. Se estrecha al centro en la medida que uno va subiendo porque el interés de los ingenieros en computación se reduce en la medida que nos alejamos del hardware. Cuando nosotros vamos al nivel de desarrollo del software nosotros vemos que el interés de los ingenieros en computación se ha reducido al punto central porque ellos se preocupan solamente del software en la medida
que se necesite para el desarrollo de dispositivos integrados.
(La porción sombreada en la figura 2.3 del PDF a descargar)
CIENCIAS DE LA COMPUTACION
La ciencia de la computación cubre la mayor parte del espacio vertical entre el extremo superior y el
extremo inferior, porque el profesional en ciencias de la computación
generalmente no trabaja "sólo con el hardware" que ejecuta un
software, ni maneja "sólo la organización" que hace uso de la
información que la computación le puede proveer. Como un grupo, los profesionales en ciencias de la computación se ocupan por casi todo lo que está entre estas áreas (hacia abajo tanto como el software que hace trabajar a los dispositivos; hacia arriba tanto como los sistemas de información que ayudan a operar a las organizaciones). Ellos diseñan y desarrollan todo tipo de software, desde infraestructura de sistemas (Sistemas operativos, programas de comunicación, etc) hasta aplicación de tecnologías (navegadores de Internet, bases de datos, motores de búsqueda, etc). Los profesionales en ciencias de la computación crean estas capacidades, pero no administran el desarrollo de las mismas.
Por lo tanto, el área sombreada para ciencias de la computación se
estrecha y finaliza en la medida que nos movamos a la derecha; esto es porque el profesional en ciencias de la computación no ayuda a la gente a seleccionar productos, ni desarrolla productos para necesidades organizacionales, ni aprende usar esos productos.
(La porción sombreada en la figura 2.4 del PDF a descargar)
SISTEMAS DE INFORMACION ... INFORMACION !!!
La región sombreada se extiende a la lo largo del nivel mas alto porque la gente de SI se preocupa de la relación entre los sistemas de información y las organizaciones a los que sirven, extendiéndose desde la teoría y principios hasta la aplicación y desarrollo; muchos profesionales en IS están también involucrados en el desarrollo de sistemas, su configuración y el entrenamiento de usuario. El área cubierta por SI se concentra hacia abajo en el desarrollo de software y la infraestructura de sistemas en la mitad derecha del gráfico. Esto sucede porque los especialistas en SI frecuentemente ajustan tecnologías de aplicaciones (especialmente Bases de datos) de acuerdo a las necesidades de la empresa. Ellos frecuentemente desarrollan sistemas que utilizan otros productos de software para ajustarse a las necesidades de información. (Esta figura no refleja la atención que SI tiene hacia los tópicos relacionados al núcleo del negocio.)
(La porción sombreada en la figura 2.5 del PDF a descargar)
TECNOLOGIAS DE INFORMACION
Su área sombreada se extiende hacia el lado derecho del gráfico debido a que la misma se focaliza en las necesidades de aplicación, desarrollo y configuración de las organizaciones, y la gente involucrada en un amplio espectro. A lo largo de este rango (desde los sistemas de información organizacionales, la aplicación de tecnologías y hacia abajo en dirección de infraestructura de sistemas) su rol tiene alguna sobreposición con IS, pero la gente de TI esta mas orientada a satisfacer las necesidades humanas que surgen de la tecnología computacional. Adicionalmente el área cubierta por TI se extiende hacia la izquierda desde la aplicación hacia la teoría e innovación especialmente en el área de aplicación de tecnologías. Esto sucede debido a que la gente de TI frecuentemente desarrolla productos orientados a tecnologías digitales que las organizaciones usan para una gama de propósitos informativos y esto implica una apropiada base conceptual en los principios y teorías relevantes. Debido que TI es una disciplina muy nueva su foco ha sido orientado a programas educativos que le dan a los estudiantes las bases en conceptos existentes. Muchos en la comunidad de académicos en TI concuerdan en que la investigación en su campo crecerá para poder crear nuevo conocimiento en áreas relevantes, cuando esto suceda, el área cubierta por ella tendrá una cierta extensión hacia la izquierda. Sin embargo esto es una ambición y todavía no es algo concreto, la figura refleja el estado actual de TI.
(La porción sombreada en la figura 2.6 del PDF a descargar)
"INGENIERIA DE SOFTWARE"
Como habíamos visto el área de ingeniería de la computación cubre toda la dimensión horizontal del mas bajo nivel orientado a hardware, Y SI cubre el mas alto nivel orientado a la organización, la ingeniería del software cubre un amplio rango con respecto al desarrollo sistemático de software. Esto es porque la gente de IS cubre un gran rango de necesidades de dominio de proyectos grandes de software. El principal objetivo de IS es desarrollar modelos sistemáticos y técnicas confiables para producir software de alta calidad, y estas preocupaciones amplían el camino de la teoría y principios hacia practica diaria. El dominio de IS también se extiende hacia abajo hasta la infraestructura de sistemas, ya que la gente de IS desarrolla la infraestructura de sistemas que es robusta en las operaciones. Su dominio también se extiende hacia arriba a los sistemas organizacionales porque la gente de IS están interesadas en el diseño y desarrollo de los sistemas de información que son apropiados a la organización cliente.
(La porción sombreada en la figura 2.7 del PDF a descargar)
2. FUENTE
http://www.acm.org/education/curricula.html
http://www.computer.org/portal/site/ieeecs/menuitem.c5efb9b8ade9096b8a9ca0108bcd45f3/index.jsp?&pName=ieeecs_level1&path=ieeecs/education/cc2001&file=index.xml&xsl=generic.xsl&
(casi pongo la version anterior Abril del 2K5)
respecto a lo q menciona el Sr.
Guillermo Vallejo Vargas
"hago cosas nuevas y no me dedico a estar reutilizando cosas ya creadas para elaborar mis sistemas :) "
disculpa pero q frase mas fuera de foco ...hay q leer y saber sobre un tema antes de mencionarlo...
la REUTILIZACION es propia de la INGENIERIA DE SOFTWARE, de aqui la tendencia de INGENIERIA DE SOFTWARE BASADA EN COMPONENTES, sino es tu royo REUTILIZAR pues q bueno pero no confundas las cosas ...
Me indigna cuando alguien q dizque desarrolla software (sea un ING de noseq... o no lo sea) sigue en su mundo tabular de rows and cols ... e ignora por completo la TOO (ADOO y POO), y sin embargo dicen ... pero funciona ... pero no tienen ni idea d lo q es la INGENIERIA DE SOFTWARE de CALIDAD.
(hace falta UML y PATRONES de CRAIG LARMAN)
el objetivo de mi post es APORTAR señores, lean porfavor el PDF de los links y preguntense ¿Donde estamos?
las imagenes del primer link soy muy ciertas y divertidas... y unos links muy buenos:
http://www.roquot.net/
www.ingenierosoftware.com
http://espanol.groups.yahoo.com/group/ingenieriadelsoftware/
http://www.fabricadesoftware.cl/
se dan cuenta q todos quieren desarrollar software?, ...es q es la mas apasionante de las carreras...
bueno tengo sueño.
saludos y a estudiar todos, comparando se aprende...
"Mientras mas profundo en el conocimiento, mayor es la sensacion de no tenerlo"
Jesus Alviño Lescano (Armadar)
armadar_26@hotmail.com
PDA. Cuando se refieran a sistemas ... porfavor si se trata de software mencionemos SISTEMAS SOFTWARE.
Esta muy bueno el aporte, creo que ah mas de uno le ah pasado eso, tampoco tenia conocimiento de este tema.
Aupa!!!
Me alegro de tu interés por las metodologías ágiles!!!
El miito de que las metodologías ágiles no escalan tiene su origen en que cuando surgieron no se emplearón en proyectos grandes. Lógicamente, los 'experimentos' se hacer con proyectos pequeños. Según las metodologías ágiles han ido madurando y se ha ido ganando experiencia se han ido aplicando en proyectos más y más grandes. Hoy por hoy nadie discute que las metodologías ágiles son aplicables a grandes proyectos. Una lectura interesante sobre el tema es Scaling Agile Methods: eXtreme programming work for large projects?(http://www.ddj.com/dept/architect/184411706).
Tanto en Agile Project Management with Scrum de Ken Schwaber (http://geeks.ms/blogs/rcorral/archive/2006/08/09/He-le_ED00_do_3A00_-Agile-Project-Management-with-Scrum-de-Ken-Schwaber.aspx), como en Managing Agile Projects de Sanjiv Augustine (http://geeks.ms/blogs/rcorral/archive/2006/11/13/He-le_ED00_do_3A00_-Managing-Agile-Projects-de-Sanjiv-Augustine.aspx), se describen técnicas para escalar las metodologías ágiles a proyectos grandes.
Sobre UML decir que me parece que el problema esta en que a menudo se sobreutiliza. Es una herramienta más, pero no es una bala de plata. Si un diagrama de estados es la mejor manera de transmitir una determinada información, perfecto. Pero no creo que haya que diagramar por que sí. El mejor lenguaje de comunicación es el lenguaje natural por que es el que todos los interlocutores implicados en un proyecto con seguridad manejan mejor.
Saludos!!!
Hola a todos.
Estoy de acuerdo que para sacar provecho de una metodologia hay que utilizarla. De nada sirve que se hagan diagramas si no se miran antes de meterte con el codigo de otra persona. Yo personamente utiizo dos que para mi son los que mas utilidad me dan: el diagrama de clases y el de colaboracion. Ambos los utilizo cada vez que tengo que meterme con un codigo que no es el mio para destriparlo y saber qué hace exactamente antes de cambiar una sola linea. Me pasa lo mismo cuando reviso un codigo que hace muchos meses que no he tocado; hago los diagramas de la parte que voy a tocar y me sirve para refrescarmelo todo.
Comprensible, lógico, directo, sencillo e IMPRESCINDIBLE. Gracias Augusto una vez mas por llegar a los meollos de la cuestión.
Realmente bueno, gracias!!!
Un Saludo
Aupa titán!!!
¿Sabes que hay un proyecto que traduce los artículos de Joel? No se si el que tu has traducido ya está ahí, pero sino podrias donarlo, es un Wiki.
http://local.joelonsoftware.com/mediawiki/index.php/Espa%C3%B1ol
El artículo excelente como todos los de Joel.
Conclusión: Si quieres un sistema sencillo de usar, cómprate un Mac ;). Son más caros, pero solo tienes que sacarlos de la caja y ya funcionan, nada de tener que llamar a tu sobrino para que te lo instale cada año o dos años.
Genial para los que no se quieren complicar.
Para los que quieren o tienen que saberlo todo deben estar disponibles tantas opciones como se desee.
Yo creo que todo esto se resume en que tanto para ocultar la complejidad como para agruparla los niveles de abstracción tienen su importacia.
Con lo cual yo diría que en cualquier sistema diseñado por y para el hombre en lo referente a abstracción habría que aunar esfuerzos para hacer posible la máxima:
"Sirvase usted mismo de toda la abstracción que necesite"
Si no necesita nada de abstracción (aunque solo sea para aligerar algún proceso y ganar algo de tiempo) enhórabuena, es usted todo un geek.
Paradógicamente el proceso de abstracción y las tecnologías que implementan dicha abstracción a veces son un problema en si mismas. Ejemplo: generadores de informes por ejemplo (que es con lo que estoy yo). Toda la abstracción que hay que montar y que mas tarde un usuario utilizará es harto compleja. Asi que puedo concluir que la abstracción tambiénproduce geeks.
Ok, ya lo he subido... ;)
muy buen articulo, para tomarlo en cuenta y afinar detalles de lo que uno ya sabe.
bien ;)
Colegio de Matemáticos YA!!
... Pero cuando ya estás en el mundo laboral, te das cuenta de que hay gente sumando con calculadora que no tiene ni idea de lo que es un número natural, de qué es la suma, el resultado(y lo más probable es que el que programó la calculadora tampoco lo supiera), ... ¡Y son muy felices! Entonces yo me imagino lo que se me pasaría por la cabeza si me tuviesen que operar y me diese cuenta de que el médico que me operará no tiene ni idea de lo que es un bisturí, o unos forceps, o no sabe anatomía. O ves a licenciados en Historia, en Biología o en Pinta y Colorea trabajando de "matemáticos"(sumando) que no tienen ni idea del sistema axiomático de Peano para la definición del conjunto de los números naturales ni de una definición lógica de la operación suma (2+1 = 3, vale, pero ¿qué es el 2? ¿qué es el 1? ¿qué es 2 + 1? ¿qué es 3?).
La base de toda ciencia es la matemática. Por tanto todo trabajo que implicara una aplicación de la ciencia debería ser desarrollado por matemáticos, aunque no tuvieramos ni idea de lo que se trata.¿no es un poco absurdo?. Bueno, más absurdo aún: la base de la matemática es la lógica. La lógica como ciencia la inventaron los filosófos (Aristóteles, hace ya unos cuantos años), por tanto todo trabajo debería ser desarrollado por filósofos.
Bien, como habreis adivinado soy matemático. Llevo trabajando en desarrollo para banca y seguros nueve años, de los cuales en uno o dos años me enseñé a programar y en el resto estoy aprendiendo negocio, y aún me queda. ¿Algún ingeniero informático recién licenciado sabe leerse un BOE (boletín oficial del estado) con una reforma fiscal, por ejemplo, y a partir de ahí sacar las especificaciones para adaptar el sistema informático de un banco (del cual tampoco tendrá ni idea).
La discusión comenzaba entre cual es la diferencia entre un médico y un informático. Bien, creo que es la siguiente: el médico se dedica a la medicina. El informático, salvo que trabaje en el desarrollo de herramientas de informática pura: sistemas operativos, gestores de bases de datos, mantenimiento de redes(o eso son los telecos).., se dedica a desarrollar en cualquier campo, y de ese campo no tiene ni idea.
La programación (da igual que sea procedural u orientada a objetos) no es más que lógica aplicada a cuatro instrucciones simples, por tanto para poder dedicarte bien a ella sólo es necesario tener una buena capacidad lógica y aprenderte esas cuatro instrucciones ( o cuarenta mil, da igual, no deja de ser una cuestión de memoria o manuales). Y sin ánimo de ofender, para igualdad de capacidad intelectual, en matemáticas la capacidad lógica se desarrolla más que informática.
Como empresa ni se me ocurriría contratar a un actuario para que me montara la arquitectura del sistema informático. En cambio, si aparte del título tiene una buena capacidad intelectual, no dudaría en contratarlo y formarlo en programación si se tratara de desarrollar el sistema de cálculo de primas de vida de una compañía aseguradora (si alguien ha trabajado en eso me entenderá).
Bueno, en resumen, para mí el informático es el que mantiene el sistema informático (no el que lo programa, si no el que da la base para programar, sea quien sea el que tenga que hacerlo. Un buen equipo de técnicos de sistemas sabrá definirlo de tal modo que por muy malo que sea el programador no pueda hacer nada que reviente el rendimiento de la máquina), fuera de ahí es más importante la capacidad de aprendizaje (hoy programo en Cobol para fondos de inversión en un banco, mañana programo en VB para el departamento informático de la policía nacional, pasado...) que la base de estudios que se tenga.
Ah, por cierto, en estudios de informática pasa como en el resto de ingenierías y carreras en general: cualquier parecido entre lo estudiado y el mundo empresarial es pura coincidencia. Y no lo digo por decir: como "hobbie" he estudiado ingeniería técnica en informática de gestión y un Master en Negocio bancario. Me ha sido infinitamete más útil éste último que no la ingienería.
Saludos y suerte a todo el mundo en su camino laboral.
Creo que Joel Spolsky, es todo un i***** ! Y ojalá lea este comentario ! Saben ? Criticar todo después de que está hecho, es muy fácil, cualquiera lo puede hacer y no tiene que ser programador.
Y que quede claro que no tengo nada a favor de Microsoft, es más, el software que producen siempre me ha dejado mucho que desear.
Joel, ¿porqué no haces Vos un sistema operativo entonces? I********. Sin contar con quienes le alaban y lo ven como el super Dios del desarrollo de software. Ja ja ja, no me hagan reír.
Mejor ponganse a construir cosas, a aportar, y a no hablar tanta estupidez.
Editado: No pienso tolerar insultos en los comentarios.
El hecho de que una persona no piense igual que tú no te da derecho a insultarlo. La verdad es que insultar, sea en el foro que sea, no es lo más apropiado... El no dar la cara es aún peor.
Yo no tengo por qué defender a nadie, ni lo pretendo. Te puedo decir que Joel estuvo trabajando años en Microsoft, en el equipo de Office, y que luego se montó su propia compañía de cero.
De las críticas es precisamente de donde se puede aprender algo. Y más cuando la crítica es constructiva. No conozco a nadie que aprenda cuando le dan palmaditas en la espalda.
Mejor póngase usted a construir cosas, a aportar y a no insultar a la gente porque piense diferente.
Es un placer para todos nosotros contar con el crack del Agus.
Un artista de los unos y ceros con una calidad programaderil increible y una calidad humana aun mayor.
:D
un abrazote, Agus!
Anjuel.
Co-webmaster
www.computeremuzone.com
Vale, luego te pago lo que te prometí...
Interesante articulo...
La verdad es que no me había parado a pensar en ello, pero lleva toda la razón del mundo, ¿para que complicarnos la vida?, si lo más simple en la mayoria de las ocasiones es la opción más válida.
En cuanto al Blog, está curraete...
Sigue así, Crack!!!
Una reflexión muy interesante, pero es la pescadilla que se muerde la cola.
Fíjate,
¿qué podemos hacer los estadísticos para combatir el intrusismo en nuestro área? Muy fácil. Programar!
Hoy en día, se da estadística en múltiples carreras, y las consultoras y empresas prefieren a un ingeniero. Y para entrar en los organismos oficiales tela lo que hay que hacer. Te plantas en los treintaitantos sin dar un palo al agua.
Pues a programar, que para eso nos enseñan también.
Ah! y también sabemos UML!
un saludico!
Augusto, eres miembro del equipo de programación, ¡y qué miembro! (me refiero a tí, clato :P)
Gracias por hacer mención nuestra aquí.
10 REM Comentario
20 Los 8 bits que tiempos ...
30 Durante mi trato con ordenadores me he ido deshaciendo de muchos PC's: 386,486,pentiums (1, MMX, 2 y 3), Kseises (1y2) incluso de algún K7 que han pasado por mis manos.
40 Pero mi spectrum (lo que en teoría es mi cacharro mas obsoleto) aún lo guardo como oro en paño junto con algunas casettes.
50 Si lo pensais es muy raro ir a depositar en el punto limpio cacharros mas modernos y potentes habiendo emuladores del Z80.
60 Es como afirmar algo así como que la informática tiene alma.
70 Creo que esto nos pasará a todos los que tuvimos uno de esos y sobre todo si alguna vez nos atrevimos más allá del Load ""
80 Me siento como el abuelo que habla al nieto acerca de su radio Marconi (la primera que hubo en el pueblo). Me estaré haciendo viejo.
90 Un día de estos tendré que redescubrir lo especial que es para mi esa maquinita.
100 GOTO SPECTRUM
Pues si, yo tengo mi MSX guardado con mucho cariño, todavia guardo algunos de los programas que hice con el Basic y esos maravillosos gotos...
Eso si, el Sprite on; on Sprite goto, era autentica programacion orientada a eventos.
Lo voy a dejar, que me pongo sentimental.
Recomendable al 1000 % esta pagina, ademas de tener la suerte de probar las betas, tengo la suerte de estar rodeado de gente estupenda, una pagina de los pesos pesados en el mundo de la escena 8 bitera...
Excelente blog Augusto ;)
Hola a todos! Bueno, después de leer casi la totalidad de lo posteado me he decidido a poner yo también algo :P
SC: Cualquier persona que haya estudiado una Ingeniería en Informática de Sistemas te dirá que aparte de que tus comentarios suenan bastante pretenciosos (con cariño), habrás aprendido muy bien a leer un BOE y a corregir las 4 cositas que diga ese día que hay que cambiar y sabrás programar en VB (Ya ves tu) en Cobol (¿?) y seguramente, con tu inteligencia superdotada y tu lógica preclara 10.000 lenguajes más....pero que no tienes ni idea de lo que ser ingeniero de software significa. Esto no lo supongo, lo afirmo porque lo extraigo de tus mismas palabras:
Dices que los informáticos estamos para mantener el software pero tu estás para diseñarlo....Osea, en el mismo ciclo de vida pones a un tío que la caga al principio y a uno que lo arregla al final o como? Que morro! xD.
Mira, el software no se mantiene sólo...no es llegar, leerse dos páginas, cambiar un int por un float y salvar y ejecutar, es más complicado. De hecho, la mayor parte del esfuerzo de un equipo de desarrollo se centra en la parte de mantener ese software. Si tú haces lo que quieras, aplicando la lógica y todo lo demás y usando los 4 condicionales que tú dices seguramente funcionara los 3 primeros días, pero cuando el sistema reviente (que reventará, seguro) y venga el ingeniero a "mantenerlo" como tu dices, se volverá loco, simplemente por la documentacion caótica del proyecto, de un tío que aplica mucho la lógica y todo eso, pero que de hacer informes y de gestionar proyectos no tiene ni **** idea.
Entonces, que te parece? Porqué no dejas a los informáticos con estudios que hagan esas cosas y a tí te dejamos que piques 1000 líneas de código a la hora, ese si es trabajo para un matemático, ahí puedes aplicar mucho la lógica pitagórica, estate contento x)
"
Cambio de tercio: Estoy hasta las pelotas de los"autodidactas". Siempre igual. Harto de la gente "yosoylahostiaentodo" pero esque no me dio la gana estudiar una carrera y mientras yo estaba con 100 euros en la cartera saliendo por ahí, los pringaos de los ingenieros en casa estudiando estupidas álgebras, cálculos, algoritmos, patrones y demás mierda... Que imbéciles!!! Que sabrán ellos de lo que es el mundo laboral!! Eso no vale para nada!!! Yo eso me lo estudio en las horas libres del curro y ya está (si esque me llegara a hacer falta)...
Bueno, pues nada amigos, quememos los institutos y las universidades que parece ser que no valen para nada, solo para crear epidemias de titulitis y de gente prepotente que se cree que por haber estudiado 5 años ya lo sabe todo...penoso.
SI esta gente se tiene que poner a picar código mañana mismo yo lo aplaudiré, que se jodan, haber estudiado, hay muchas becas y la universidad a nada que te lo curres (y si tan listos son, mejor todavia) te sale la carrera gratis. Han dicho por ahí nosequé de unas pruebas de acceso para el colegio o algo así. Ya las hay: Es la Universidad, y es muy sencillo, tú haces unas cuantas pruebas de esas y te dan un papel estúpido, que dice que tienes una formación en eso sobre lo que te han hecho las preguntas en las pruebas de antes (que tonteria). Y que nadie salte con el rollo malo de que lo que das en la universidad no vale para la empresa, que ya me lo sé. Qué pasa, que lo que das en ingenieria informatica no vale pero lo que das en matematicas, en fisica en estadistica o en modulo si? Pues ya está. Igual que los médicos, la formacion de la carrera no es suficiente, para eso esta el MIR, pero no por eso auxiliares de clínica se meten a hacer el MIR no?
Asique lo dicho, el informático a diseñar sistemas de software, el estadístico a hacer cálculos, el matemático a aplicar la lógica y el fpero a despertarse con mucha ilusión todas las mañanas pero a picar.
Ah! Y si tanto sabéis, no creo que os resulte muy difícil sacaros el título en un momento, pero el de sistemas, no el de gestión, ese no vale para nada.
0vw3, me parece que no me has entendido bien.
En toda empresa un poco grande suele haber dos departamentos, uno de sistemas y otro de desarrollo:
Informáticos, para sistemas. Aquí, aparte de saber aprender, debes tener una buena base formativa en informática. Esto no lo discuto. Por cierto los sueldos son bastantes más altos, y los presupuestos para proyectos son tambíen más elevados, con lo que incluso tienen tiempo para documentar de forma no caótica. Por cierto 2, el mejor administrador de DB2 de mi empresa es físico, los otros tres son informáticos.
Intrusos, para desarrollo. Aquí es dónde veo más importante saber aprender que saber hacer, o al menos tener los conocimientos funcionales de lo que se ha de programar. Y el mantenimiento del software diseñado y programado por estos chapuzas (dentro también incluyo a informáticos, que los hay), también es mantenido por ellos, por lo que si revienta es problema suyo. De momento casi todos los nuevos desarrollos que he efectuado(tanto diseño como parte de la programación) me ha tocado mantenerla, y todavía no ha reventado nada.
Sobre gestión de proyectos, lo dicho cualquier parecido entre lo enseñado en la carrera y la realidad es pura coincidencia. Por ejemplo, a partir de unas especificaciones mínimas por parte del usuario, en las que ni el usuario sabe lo que quiere, te pedirán que estimea el coste, tanto en horas como en plazo de entrega, teniendo en cuenta el resto de proyectos que pudieran haber, tu dedicación y la de tu equipo.... ¿qué ocurre después?:
-Si estimas el coste en n personas de diferentes perfiles y m semanas para la entrega, te darán n/2 personas y m/2 semanas.
-Cuando empieces la fase de diseño funcional, las especificaciones iniciales del usuario las puedes quemar. Entonces a base de reuniones y más reuniones conseguirás hacerte una idea de lo que quiere, y te darás cuenta que son necesarias n*2 personas y m*2 semanas(Ah, en esta fase es donde es fundamental tener los conocimientos funcionales, pues si no sabes de qué te hablan los que tienes enfrente, no conseguirás hacer un diseño funcional coherente, ni aún siendo informático de sistemas, so pretencioso, je je).
¿Qué pasa entonces?, la empresa te dice que te apañes, que como mucho te da una semanica más y un par de personas que tengan alguna hora libre, y te ves obligado a recortar de donde puedes, y ¿cuál es la parte menos imprescindible para que el usuario, que es el que paga, se quede contento?. Pues la documentacíón: como documentación se queda el análisis funcional y los documentos de formación para usuario.
No se, quizás ahora ingeniería informática de sistemas se estudia en la academia de Harry Potter y allí podeis conseguir que n/2 = 2 * n y que m/2 = 2*m, pero la verdad es que todavía no he conocido a nadie que consiga solucionar esto, incluso los no intrusos.
Ah, lo de sacarme el título, en un momento es complicao: mínimo tres años, si es técnica, y 5 si es superior. Cuando salgo del trabajo prefiero emplear mi tiempo con mi familia o en el Bar de Moe que no estudiando una carrera que no me aporta nada (tanto el master como la IT fue una pérdida de tiempo, pero más la IT).
y los ingenieros de sistemas donde quedan??,
Ya te digo.... los pointers ("punteros" dicho en la proxima lengua internacional...) para mi son la revolución de la programación. No tengo ni p**** idea de programacion linear, ni falta q me hace, pero si algo de estructuras y es que es una "lienalidad" con bucles
que facilitan un proceso repetitivo sin necesidad de etiquetas, de hay la idea de "puntero" q apunta a "algo" ... llevo 2 años solo con C , antes empeze por actionscript de flash con sus p*** filosofia de POO y no me salia nada... weno con un poco de analisis de POO y con lo aprendido en C (palos y + palos) hize un texto scroleeado y en 30 min sin analisis, POR ESO SIGO CON C, ES EL PADRE DE LA NUEVA ESCUELA DE LA PROGRAMACION(poo) (ole los wevos de kernigan y ritchie!!!
Un abrazote Augusto. ;-)
Muchas gracias, Jorge :)
Me gusta esa solución, aunque utilizar is/as a mí me parece casi indiferente.
Lo bueno de tu código es que limpia también los textbox de paneles dentro del formulario.
En cualquier caso muy entretenida la discusión ;-)
Esto nos demuestra que, por mucho que creamos que sabemos, y que hacemos las cosas lo "más mejor" y optimizadas que es posible... SIEMPRE habrá alguien que nos haga ver lo poquito que en realidad sabemos, o lo lejos que estamos de esa "optimización perfecta" que creíamos conocer.
Bueno... Más que la optimización perfecta, este es quizá un buen ejemplo de que las cosas no salen perfectas a la primera, pero que las iteraciones ayudan a ir depurando y mejorando... (depurando en el sentido de separar polvo y paja, no de darle al F5...) ;)
Un par de cosas, ya que has hecho un cast a textBox por qué no usas t.Clear() en lugar de t.Text = ""? En principio la segunda forma debería ser un poco más eficiente ya que no estás creando el segundo string por cada asignación, ya que los strings son inmutables.
Por otro lado, y esto lo he medido, es más eficiente en cuanto a velocidad el no hacer el cast y hacer c = "" donde c is Control, que hacer el cast de Control a TextBox y luego llamar a Clear()...
Un saludo,
Alejandro
Perdón, en el comentario anterior me refiero a que en principio parece más eficinete usar Clear() que t.Text = "", y no al revés como he puesto... (es un poco tarde ;-))
Hola Alejandro.
Sobre lo que planteas de que porque no mejor pone un t.Clear( ); en ves de t.Text = "";.
Al menos a mi no me lo permitia, es decir no me aparecia ese metodo al utilizar la Clase "Control" con el "foreach".
Saludos.
Hola Juan Fco.:
Lo que comenta Alejandro es utilizar t.Clear(), es decir, llama al método Clear() usando la referencia de tipo TextBox (t), no la referencia de tipo Control (c), con lo que debería estar disponible.
Muy buenos los comentarios, Alejandro ;)
Si al final estamos usando extreme programming remoto... ;) Y acabaremos con el código más óptimo XD
Hola Augusto! Veo que lo de Chuck Norris ha calado, jejeje ;P
En todo caso, gracias por citarme.
Yo recuerdo otro magnífico libro, la "Guia del Programador para el IBM PC" ( http://i2.ebayimg.com/01/i/000/7f/00/8edc_1.JPG ) de Peter Norton (el Chuck Norris de los PCs) en el que también se describían "con pelos y señales" todos los periféricos y dispositivos hardware del PC (del PC de la época, claro... yo recuerdo que había un capítulo aparte, como de introducción, al "revolucionario" 80286)
Ainss... qué tiempos... :')
Vaya tio, ¡que recuerdos! ¡Lo que pude aprender yo de internals y ensamblador tanto con el PC Interno como de Ciriaco! Los primeros programas TSR, las peleas con la programacion de la Sound Blaster y AdLib a bajo nivel, la gestion de XMS y EMS, drivers VESA... jo, que tiempos :_(
Ayer mismamente estaba preparando un articulo acerca de Geeks.ms para la revista de los clubs .NET, y comenzaba contando como muchas veces conocemos a gente maravillosa, que comparte nuestras mismas aficiones y proyectos, gracias a golpes de suerte e imponderables del destino :) Una de las cosas bonitas de geeks es el cómo facilita que nos conozcamos las personas a los que nos apasionan todas estas cosas y no tengamos que depender tanto de encuentros casuales como el tuyo con Ciriaco en el trabajo...
Por cierto, un abrazote y felices fiestas ;)
Hace unos meses, con un cliente de Valladolid, le hablé de Ciriaco... y mira por dónde, ese cliente era compañero de clase de él. :-)
Estuvimos hablando un rato de cosas como 2M, TSR entre otras... ¡vaya que sí!,... ¡que recuerdos!.
Ojalá hubiera un 2M para CDs o DVDs jejejejeje.
¡¡¡Pero que tiempos!!!
si en España tambien tenemos nuestras "leyendas" en el mundillo (sin ir mas lejos: quien no se acuerda de la edad de oro del videojuego español! con esas cassetes en los kioskos de prensa!)
Por cierto, Augusto, por un casual no sabras que hace Ciriaco hoy en dia, no? Se quedo en la Uni? Monto algo por su cuenta? Trabaja de consultor de la nueva Web 3.11?
Phobeo, pásame tu mail en un privado y te paso lo que sé de Ciri... Pese a que puede que no esté actualizado.
Como siempre estupendo post Augusto.....
Unai
Excelente recordatorio para los que en el año 2002 migrabamos de a poco y reutilizabamos los com de VB6 en WebServices .Net. Una opcion bastante interesante es tratar de desarrollar componentes COM en VB6 que puedan ser instanciados dentro de COM+, sin embargo (como vos bien dijiste) siempre seran Single Thread Apartment (STA) y como decimos por aqui ... a esas plumas no se las quita nadie ...
5* para vos
Saludos desde el sur
El Bruno
Muy buen artículo Augusto a mas de uno le vendrá de perl. La verdad es que ya lo conocía porque lo leí en un número de Dotnetmania (no recuerdo el número) que escribío Luis Miguel Blanco.
Salu2
Hey Augusto ...
q buena data !!! por lo gral no es necesario depurar JavaScript, ya tenemos varias implementaciones que hacen mucho trabajo por nosotros, pero siempre es bueno bajar un poco de nivel y pegarse con las llamadas, con el html document model y con esos juguetitos que tenemos en Javascript
Felicitaciones, porq ademas lo explicas como me gusta a mi, simple y directo :D
Hola Bruno,
Me pareció interesante contarlo, ya que gracias a AJAX, parece que el JavaScript se ha vuelto a poner "de moda"...
Si usamos AJAX en una aplicación, puedes aprovechar para revisar en el cliente lo que te está llegando del servidor ;)
hola hola, me gusto mucho tu blog (disculpa que te tutee pero me senti identificado, espero no molestar) los contenidos son buenos y el diseño muy limpio e interezante, veo que le haz puesto mucha galleta a tu trabajo, te tengo una propuesta, he visto que estas inscrito en los premios 20blogs y la verdad no veo que tengas votos, tal como estoy yo jejeje, asi no tendremos posibilidad, te parece si me das un voto y yo uno a ti?? seria buen intercambio, mucha suerte y que gane el mejor, pasa a mi blog para avisar y para que pueda votarte, vale?? el boton esta aqui en mi blog http://blog.alamedianoche.com o si lo prefieres tambien entra directamente a la direccion http://www.20minutos.es/premios_20_blogs/busqueda/sanshiro/ y te da directo mi blog, tal vez asi tengamos mas posibilidades de ganar, por lo que veo si esta dificil n.n
salud y rock
atte. sanshirow
Hola Sanshirow,
No creo que eso sea ético. Si te gusta el blog y quieres votarlo, vótalo, y si no, no ;)
Augusto.
Este va a ser un microArtículo en el que os voy a comentar cómo depurar componentes en tiempo de diseño.
que intriga ...
csegura
No me parece justo que, el esfuerzo físico y mental que supone mantener un blog, aunque sea modesto, no obtenga como beneficio ni siquiera un sólo voto en los premios 20 blogs. Así que hoy voy a votar a los blogs inscritos que tengan 0 votos, empezando por el final del alfabeto, que son los que menos votos tienen.
Cuando termine con estos, iré a votar a todos los que tengan 1 sólo voto. Y así sucesivamente.
Así demostraré que mi voto, un voto modesto, vale lo mismo que el de cualquiera.
Esta es mi promesa electoral y mi compromiso con los representantes modestos de la blogosfera (como yo) que se han presentado al concurso del 20 minutos con toda la ilusión del mundo.
Un saludo afectuoso.
http://vivazapatero.blogspot.com/
Pues a mi me hara ilusion recibir un voto, aunque vas a tener mucho curro, que hay mucha gente inscrita...
Por mi parte, debo ser de los pocos que no han puesto el enlace a 20blogs, a ver si en un rato un dia de estos.
Ey, ey, que ya estamos a Domingo!!!
Supongo q tendrá que ver con lo q comentaste en navidades. En cualquier caso, q vaya muy bien, majete!!!
Lo del post q tengo q hacer, ejem, uhmmm, cuando tenga un ratito, lo tengo la TDL :P
jeje, q molón :P
No era lo q esperaba, pero mola!
Jejeje mola, está muy bien pintado.
Espero que este sea solo el comienzo.
Se le puede sacar tanta punta al tema...
Je je, esta chulo... veamos como evoluciona la tira.
Yo, por mi parte la seguire ;-)
buenas... interesante la idea. Sabés si el httpwebrequest se peude usar "al revés"?
o sea... tengi una página asp q hace un post a un cgi, no puedo llamar al cgi directamente porq el cgi hace un request del form, asi q si mando parametros por get no los toma.
Hay forma de "engañar" al cgi haciendole creer q el post se lo hizo el asp pero enviarle HTML o algo parecido? (necesito no usar asp, sino llamar al cgi desde el aspx)
Sí, podrías utilizar la propiedad Method de la clase HttpWebRequest, indicandole que es un POST, con lo que debería actuar como si se estuviese enviando un formulario.
Además de eso, tendrás que rellenar las propiedades ContentType y ContentLength, obtener el stream de la petición, y enviar los datos como un array de bytes.
Tienes un ejemplo bastante sencillo aquí:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnethttpwebrequestclassmethodtopic.asp
A mi, en cierta ocasión se me ocurrió intentar hacer un bot para OGame, que hiciera de forma automática o programada ciertas acciones. O de forma más genérica, un bot que pudiera realizar un conjunto de acciones sobre una(s) página(s).
Obviando la dificultad de la estructura de la página, y de localizar en esta los controles que nos pueden interesar, había un tema muy curioso que tiene su dificultad aparte. La sesión. Según entiendo, mecanismos para preservar la sesión hay: Por cookie, por hidden field, y por parámetro en la querystring (parece que ogame utiliza este último). También se me ocurre que estaría el potencial problema de la autenticación.
Se me ocurren estos problemas, que también podrían existir para el crawler que comentas. Claro que podrían quedar como mejoras a implementar en la versión 2.0, ¿verdad?
Hola Tio_Luiso
En principio la estructura de la página no es relevante para mandar un POST siempre y cuando conozcas los IDs de los controles, ya que los datos que envias son utilizando el ID del control como identificador.
En cuanto a la sesión, si sabes cual es el mecanismo, siempre puedes ver en la respuesta qué identificador de sesión se te está asignando y usarlo de forma apropiada (bien sea por cookie, por querystring, o como sea)...
No, si está claro que es posible. Sólamente algo más complicado. En cualquier caso, la parte chunga pienso que sería hacer un crawler / bot genérico. Uno para una aplicación concreta sería más sencillo.
Para un crawler no sería necesario conocer nada más que los links que contiene cada página. La aplicación que yo tenía en mente, también tenía que extraer (vampirizar) contenido de la página. Por ejemplo, si en la página de mensajes tienes un mensaje que dice que el usuario xxxxxx te está atacando, y que llegarán en nosecuantos minutos, saber extraer la información pertinente para poder informar al usuario, o actuar de forma automática. Pero me estoy yendo de madre. En efecto, para un crawler no sería necesario.
Una pregunta. Y si el sitio web tiene AJAX? Cómo podrías hacer crawling?
Buena pregunta ;) Si el sitio web tiene AJAX, en principio se desencadenan las peticiones a raíz de pulsar en enlaces o botones, pero lo que hace es ejecutar javascript. Esto complica un poco las cosas, ya que probablemente tengas que ejecutar dicho javascript, y para ello, probablemente tengas que mantener una instancia de un WebBrowser con el HTML de la petición anterior, en la que "pulsarías" el link, y compararías el contenido del documento HTML antes y después de pulsar para ver las diferencias, para procesarlas.
Vamos, que no sería sencillo, pero tampoco imposible.
Gracias por la información, esta muy interesante
se agradece...
luz.
Felicidades campeón..aunque ya te las di ayer jiji
Felicidades!! A ver si nos vemos un día de estos :)
Solo esos?? Joder. (Yo tengo menos...:-P)
Muchas felicidades!!! Espero que pueda seguir leyendo tus posts mas años...
A mí me dijeron que los 0 a la izquierda no valían nada, que eran de relleno, así que a mí me salen 11101, lo cuál hace un tocho de narices.
Sean los que sean, ¡Muchas Felicidades! y que lo pases estupendamente bien. :-)
Felicidades de nuevo, majete!
A ver si lo celebramos con unas birrillas :P
Felicidades!!!! Jeje "solo" nos llevamos 12 :P
Saludos que sean muchos más.
Augusto!!
Has pensado en como podría escalar esto, un sistema en el que se hicieran muchas peticiciones de este tipo implicaría altísimos costes de memoria, ten en cuenta los costes que tiene levantar un hilo para ese procesado y más teniendo en cuenta que es un entorno ASP y que tienes que jugar ya con el hilo de cada página y un Application Pool de ASP.NET...
Perdón de IIS no ASP.NET
Buenas Unai!!!
La verdad es que la escalabilidad de la solución no me la había planteado. En general, cuando se requiere un procesamiento pesado de este tipo, no sueles tener muchos corriendo a la vez... (por ejemplo el cálculo de un balance, o procesos mensuales, cosas por el estilo)
Pese a todo, creo que tal y como está hecho el ejemplo, en principio los hilos de las páginas (los principales) morirán una vez hayan concluido su ejecución, y el hilo para el procesado es único para cada proceso pesado, de los cuales es probable que no hayan muchos.
Si tenemos un sistema en el que vayamos a tener muchos procesos pesados corriendo concurrentemente, quizá no sea una buena solución el usar una aplicación ASP.NET, y me inclinaría por una aplicación tipo SmartClient, haciendo todo lo posible en el cliente (salvo lo que sea indispensable hacer en el servidor).
¿Cómo lo atacarías tú? ;) (así yo también aprendo!)
El problema es que levantar hilos tiene unos costes de memoria importantes por todo lo que ello requiere y tener muchos request podría afectar demasiado a tu aplicación, por ejemplo sería bastante simple hacerle ataques de denegación de servicio, además de lo que afectas al pool de objetos del Application Domain de IIS.
Una posible solución si no quieres dejar esto sin ASP.NET es hacer el procesamiento asíncrono basándote por ejemplo en mensajería de MSMQ y que sea otro proceso el que capture los mensajes y elementos a procesar. Posteriormente se podría desde una página revisar si ese proceso está terminado o bien aún esta en la cola etc..etc...
P.D:¿que te parece?
Me parece perfecto ;)
Creo que me voy a tener que empollar el CLR via C# para ver las implicaciones de lo que uso tan alegremente (hilos, etc...)
Gracias!
Hola
A ver si me puedes ayudar.
necesito pasar datos desde una aplicacion de escritorio (en C#) a una aplicacion web en asp, necesito pasarle los datos por post.
He estado mirando las clases HTTPWEBREQUEST y HTTPWEBRESPONSE pero no tengo bien claro su uso.
me podrias decir la forma de hacer lo que deseo?
gracias
En principio, lo único que hace falta es:
- Crear el objeto HttpWebRequest (con el método estático Create de la clase WebRequest)
- Establecer la propiedad Method de este objeto a "POST" (por defecto es GET)
- Rellenar los datos del post, usando los nombres de los controles que quieres rellenar. Para eso, tienes que crear un string que contenga una ristra nombreControl=valorControl&nombreControl2=valorControl2&..., obtener los bytes de ese string usando un objeto ASCIIEncoding, y escribir esa ristra en el stream del objeto HttpWebRequest.
- Establecer el valor de la propiedad ContentType del objeto HttpWebRequest a "application/x-www-form-urlencoded"
- Establecer el valor de la propiedad ContentLength del objeto HttpWebRequest a la longitud del string de los datos.
Un código de ejemplo:
string datosPost="nombreControl="+valorControl;
ASCIIEncoding encoding=new ASCIIEncoding();
byte[] bytesDatosPost=encoding.GetBytes(datosPost);
// Establecemos el ContentType
miHttpWebRequest.ContentType="application/x-www-form-urlencoded";
// Set the content length of the string being posted.
miHttpWebRequest.ContentLength=datosPost.Length;
Stream reqStream=myHttpWebRequest.GetRequestStream();
reqStream.Write(bytesDatosPost,0,bytesDatosPost.Length);
Console.WriteLine("El valor de 'ContentLength' después de escribir los datos es {0}",miHttpWebRequest.ContentLength);
// Cerramos el stream.
reqStream.Close();
Espero que te sirva! Saludos!
Pues yo tuve el honor de trabajar en una empresa en la que trabajó Ciri... De esto ya han pasado casi 3 años... Recuerdo que él se marchó de allí poco después que yo, y la verdad es que el tío era muy grande... Recuerdo que algunos compañeros comentaban que Ciri programaba a otro nivel, no tenía nada que ver con lo que ellos conocían... "Si nosotros podemos hacer un programa en 50 lineas... Ciri te lo saca en menos de 30...." xD
29 años ... !! XD....
Felicidades, aunque tarde, pero ahi van !!!,,,,
Percy Reyes.
podéis decirme la URL del ftp del geek.ms ?... yo también ando probando este producto desde inicios de enero, pero no he podido configurar el ftp para otros blogs como el que tengo en 3devnet.com ....
al correo please !! ozonicco@hotmail.com :)
Yo tambien estaría interesado en saber algo de Ciri. Fui compañero suyo tanto en el colegio San Jose como en la Uni y desde que vine a Madrid le he perdido la pista.
Incluso tuve el honor de que fuera a mi casa a echarme una mano en la instalación de un Linux...pero eso son ya batallitas de hace 10 años por lo menos.
Gracias.
Yo se lo preguntaría al superadministrador... (Rodrigo)
De todas formas, no es necesario el ftp para subir imágenes, lo hace a través del interfaz del metablog...
Yo le daría una oportunidad a CodeBlocks. Ojo, no a la versión oficial, sino a las últimas night builds. Van despacio con las oficiales porque parece que quieren pisar sobre seguro.
Después de Dev-CPP, que parece que está congelado de lo poco que avanza, me he pasado a esto, y de lo poco que he tocado, he de decir que me gusta bastante.
Apoyo la moción de El Dan si vas a trabajar fuera del mundo de MS (es decir, OpenGL, etc), pero si vas a quedarte dentro, el Visual Studio es lo suyo.
Respecto a mis críticas/problemas con el C++/CLI son todas en relación a la parte CLI, es decir, la parte C++ que es .NET. El compilador de C++ nativo de MS es de lo mejorcito. Y la mitad de cosas no son temas del C+, sino de la propia plataforma .NET
Que una cosa es hacer chorraditas de bases de datos (que lo son, porque la parte fuerte está en el serividor, aunque sea local), y otra muy diferente hacer cosas de sistemas o, como tu, juegos.
Hola, debo hacer un robot, capaz de ingresar a una pagina, ingresar el usuario y password. Luego debe seleccionar el valor para dos combobox e ingresar un valor a dos textbox mas. Despues de esto, llego a una pagina en la cual debo capturar los datos. Esto último (del combobox en adelante) lo debo hacer millones de veces. Para ser sincero no tengo idea como hacerlo, solo se que debo hacerlo en .NET :S.
Cualquier tipo de ayuda es bienvenida...
Hmmmmm....
Yo lo que haría sería lo siguiente:
Examina bien cómo está hecha esa aplicación. Seguramente el formulario de login y password enviará esos datos a otra página, y o bien genera una sesión, o genera una cookie para identificarte. Por lo tanto, usando el objeto WebRequest puedes utilizar el método POST para enviar los datos a la página que aparezca en el action del formulario de esa página.
Comprueba si hay una cookie o una sesión creada, y para las pantallas siguientes utilizalas. Pero no automatices la selección de los combos y la inserción de los datos. Fíjate dónde los envía, y envíalos directamente a dicha pantalla. Para capturar los datos, supongo que tendrás que examinar el HTML que te devuelve la aplicación después de enviarle los datos, y capturarlos.
Hola anonimoatacante (vaya nick... ;) )
Es el código en C# de un emulador del chip AY. No tiene ningún código de ningún player. Simplemente le pasas los valores de los 14 registros del chip AY y te genera un churro de bytes con los datos del sonido, con la frecuencia y precisión que le indiques. Si luego lo mandas a la tarjeta de sonido con esa frecuencia y precisión (8 o 16 bits), sonará como sonaba el chip AY. :P
Hola Augusto:
Aquí esta mejor estructurado y para descargar el código y el tutorial PDF:
http://www.asp.net/learn/dataaccess/default.aspx?tabid=63
Mejor esta serie de artículos divididos en 3 partes:
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=416
tb recomiendo el libro:
ASP.NET 2.0 Website Programming: Problem - Design - Solution
de la editorial Wrox donde nos guia a través de todo el libro en el desarrollo de una aplicación web, con una serie de modulos, realmente interesante
Me ha llegado una newsletter de marcombo y aparecía el Gran libro del PC Interno como novedad. Después de averiguar un poco he comprobado que ha editado este gran libro como sustitución del PC Interno 5 y lo han actualizado a Win32 con Win XP sin quitar nada de lo esencial de la historia de la informática. Creo q es una gran notícia para todos aquéllos q nos quedamos sin el PC Interno 5 cuando se agotó. Otro clásico entre clásicos: “El gran libro del PC interno”, ya lo vereis.
Un saludo
estas mamadas que endoacultulizate
Hola!
Esta página es genial, gracias por la ayuda.
Tengo una pregunta: ¿Y si lo que quiero es exportar un DataGridView a un archivo excel?
Hola, estoy intendando hacer una especie de xmltv, que recoja los links de una web determinada y lo transforme en xml, podrias darme alguna idea?
Si existe el archivo y tiene el nombre definido, puedes exportarlo a excel haciendo inserts sobre la tabla... Pero si quieres crear uno desde cero, tendrás que utilizar los PIAs de Office (Primary Interop Assemblies). O bien, usando una pequeña argucia, generar un fichero de valores separados por comas y guardarlo como fichero .xls. Excel lo abrirá sin chistar, pero ¡ojo! todas las columnas con valores numéricos te las traducirá a columnas numéricas (perdiendo los ceros que tengas por delante).
No sé exactamente qué es el xmltv... ?
Si quieres recoger los links de una web, eso es exactamente lo que hace el crawler del ejemplo... Y para "transformarlo en xml", eso dependerá del formato de salida del xml.
Aun así, quizá te sea más sencillo hacerte una xsl que transforme los elementos <a> de la página que estás procesando en el xml de salida que te interese para una página dada...
OrdersDataSet? El Visual Studio 2003 y el 2005, no lo reconocen.
El 2003 con Framework 1.1 y el 2005 con Framework 2
Quisiera usar el WLW como cliente de administracion de mi blog, que lo publico en blogger, como este no recibe API, debo buscar un servidor ftp para alojar las fotos, y que pueda configurarse a traves del WLW, para no tener que cargar las fotos, y luego enlazarlas, pues no me parece interesante, es casi igual que hacer el trabajo manualmente, sabes de algun servidor que me permita hacer eso, me recomendaron imageshack.us, pero no encuentro la forma de configurarlo dentro del WLW y no tener que cargar las fotos manualmente.
Tienes alguna sugerencia.
Hola Toni,
OrdersDataSet es un dataset tipado creado a partir de la tabla Orders de la base de datos de ejemplo Northwind (creo recordar que era esa la que usé, pero no estoy seguro al 100%).
En el adjunto debería estar la definición de dicha clase.
Hey Agusto... que bien esta este articulo... realmente me ayudo hacer otra cosa como crear un bindingsource a partir de un objeto (clase)..
Saludos...
Hola, esta bastante bien la logica, pero soy novato en esto y estoy tratando de reiniciar un hilo que esta detenido y no puedo hacerlo. jejeje...
No se si sea correcto pero como puedo reniciarlo, o si no se su pudiese como elimino ese hilo o solo por el hecho de estar detenido no importaria crear nuevo hilo que cumpla lo mismo que el hacia cuando esta corriendo o iniciado
atte. rmarcelo
Lo de la entrevista, "picar código sin pensar, malo, malo" me parece lo más patético que he oído en mi vida. Para alguien con experiencia de años en muchos lenguajes dar la vuelta a una lista es algo tran trivial que no necesita hacer un *** dibujo para que un consultor de mierda crea que es bueno y sigue el *** procedimiento.
hola! encontre a esta chica madrileña que hace musica en 8 bits, quizas te interese
http://www.myspace.com/trufilla
;-) al fin de vuelta
Ejem...
Yo tenía que haber estado, pero desgraciadamente no he podido asistir a la gira, así que alguien me habrá sustituido, digo yo...
(Aunque eso si, estaba en espíritu ;-))
Pues si, Alejandro, ese alguien fui yo.
Aunque no voy a decir que sentia tu espíritu dentro de mi poque suena muy mal };)
Klagges si alguna vez lees esto, te lo dedico.
Metete tus documentaciones de software por el culo, cuando salgas a trabajar te las van a tirar por la cabeza, viejo maricón.
Donde Encuntro el archivo adjunto....
PingBack desde Invocando páginas ASP.NET con procesos pesados y no morir en el intento (y II) - Pika-pika... Chuuuu
Muy bueno el aporte, me sacaste del problema
A donde esta el codigo?! Saludos!
Igual podrian cargar el archivo excel en un objeto de la clase ExcelFileManager y luego tratarlo con alguna clase para obtener los datos deseados de ese archivo. Esta Clase ExcelFileManager permite leer archivos que tienen varias hojas incrustadas.
ExcelFileManager efmgr = new ExcelFileManager();
string filename = "d:\\FormatoExcell.xls";
ExcelBag formato = efmgr.readExcelData(filename);
Como siempre, alguien debe escribir groserías, y no sabe lo que dice, Francisco se ve que eres un tipo que no tiene sentido crítico...
Me parece que eres un medico como todos los que conosco por que estubieron algunos años encerrados "practicando", ya creen que saben y enrealidad solo son unos estudiantitos que nunca realmente estudiaron solo practicaron mucho, yla gente en gneral dice . es un médico, es la salud , es tu vida y demás perogrulladas similares, cualquier persona en su actividad se tiene que actualizar diariamente, o que los coches de hace 2o años tenian ABS, sistemas de inyección por computadora, localización satrelital, sistema de estabilidad contra vuelcos, et.
, por favor dejate de jaladas y acepta que tosdas las actvidades tienen su grado de complejidad aun mayor que las deloosmedicos, que ade´{as no tienenb ninguna responsabilidad en su trabajo, si la operaci{on fall{o, no importa,sime equivovo en el diagnostico, jno importa, no sea payasos,#$$%%&%&/ medicos.
bueno yo no se casi mucho de esO y acaban de pedirme la profe q es UML :) nose si me pudieras ayudar es algo nuevo para mi ya q resien toy q comienso mi msn es niko_acuario@hot bueno es bueno saber tambien sus defectos del UML
descarge el visual c++ express pero no he podido hacer nada. no se que pasa ¿alguien me puede ayudar? rengo experiencia con visual c++6.0 pero con e express no pude
bastante bueno
Felicidades Augusto, muy interesante. :-)
¿Alguien sabe si este cogido seria compatible con el compact framework 2.0?
Gracias por adelantado.
¿Alguien sabe si este "codigo" (mejor asi) seria compatible con el compact framework 2.0?
Gracias ;)
Durante muchísimo tiempo estuve dedicado a migrarle a clientes, un software a versiones superiores del mismo. Nunca, jamás, never estuvieron satisfechos los clientes y la razón es obvia: Si haces un trabajo excepcional lograrás dejarle al cliente exactamente lo mismo que tenia antes de la migración solo que con una nueva tecnología y quizás alguna nueva característica que no siempre te han pedido. Es decir, que solución le aportamos al cliente en estos casos? ninguna, solo un nuevo requerimiento no funcional que es la tecnología. S, la tecnología como requerimiento es un antipatrón propio de esta industria. Ahora, el cliente lo mínimo que espera es que le funciones igual o mejor que antes pero como he dicho, eso es lo máximo que podrás entregarles.
Y ahí tenemos un problema. Personalmente, si yo fuese un cliente y tuviese sobre mi la decisión de negocio de migrar o no y la aplicación ya la tuviese hace rato en producción controlada y estable, y me vienen con que sería bueno migrarla, yo los saco a las patadas. Esto muchas veces (no siempre) responde a que las empresas de soft necesitan actualizar sus productos para seguir en el negocio y los clientes se las comen de arriba. Claro está que no me quedaría con una aplicación en cobol aunque he visto muchísimas que funcionan extraordinariamente bien en la actualidad.
Hoy mismo discutia este tema con Rodrigo Corral, bajo mi punto de vista, creo que a veces es rentable y otras no, creo que las espectativas iniciales nunca se cumplen inicialmente pero si pueden cumplirse en un futuro cercano.
Pero, haceros otra pregunta, porque aprender WCF, WPF, Workflow, etc, etc..., si con las herramientas actuales que dominas podras solucionarlo de una forma seguro mas rápida y efectiva, cuantas veces nos pasa esto?
Creo que la solución es muy simple, hay que poner en una balanza las ventajas (mejora de la productividad, ampliar la funcionalidad, escalabilidad, etc, etc) y los incovenientes (Coste del desarrollo, depuración y puesta a punto, etc, etc), y tomar la decisión en base a estos dos valores, nada mas.
Aunque me hace dudar la frase de Albert Einsten que dice:
Los intelectuales resuelven los problemas, los genios los evitan.
El artículo de Joel brilla por su sentido común (el menos común de los sentidos); es para suscribirlo al 100%. En las universidades debería haber una asignatura de Refactoring.
Me gustaría hacer algunas reflexiones sobre el tan amado-por-algunos HOST, y variar la línea "editorial" para abrir la polémica ;-).
La primera es que es un silo que es difícil de conectar con sistemas externos, en un mundo cada vez más conectado / distribuido / orientado a servicios. Te salva un MQ Series o un FTP que usas con más miedo que vergüenza, por no hablar de esos artilugios que rara vez funcionan como el SOAP "concatenado a pelo contra un WSDL", o esa versión de WAS que corre en CICs y que es como las meigas.
Por otra parte, su soporte de estándares de mercado es muy escaso, lo que dificulta su integración (supongo que porque es más viejo que dichos estándares ;-). También es verdad que eso nos da de comer a más de uno que trabaja en EAI.
And last but not least, lo que no mucha gente sabe es que se suele facturar su uso por picos de MIPS (no por cpu o por cliente), lo que hace que las facturas suban astronomicamente (IBM vive de las rentas). Sé de algún caso de amputación genital por un bug consistente en un bucle infinito... ;-)
Estos requisitos no funcionales abren la puerta a muchas migraciones.
Saludos, y ánimo con el blog.
Emilio
bueno
Yo he encontrado un monton de paginas relacionada a esto.
y esta esta muy buena. pero mi intencion es enviar los datos del datagrid a excel o pdf etc. de esto tambien hay bastante. pero lo que no encuenmtro y no se halla en ninguna pagina es como le paso el formato del datagrid al excel pdf etc. es decir el datagridtablestyle.
Respuestas a las preguntas:
@Pregunta:
El código no es compatible con el framework 2.0 de .NET a no ser que estés utilizando el DataGrid de .NET 1.1. Sin embargo, para el DataGridView de .NET 2.0, el cambio de estilo de las filas es mucho más sencillo, ya que a partir de un DataGridViewRow (que es lo que te devuelve la propiedad Rows, o la propiedad SelectedRows del DataGridView) puedes acceder al estilo de la misma:
miDataGridView.Rows(i).DefaultCellStyle
@Jimmy:
Para pasarle el estilo a Excel no existe un método directo. Por lo tanto, me temo que tendrás que jugar con el modelo de objetos de Excel (y dependerá de la versión contra la que estés trabajando) para poder darle estilo.
Un consejo: Cuando tengas que utilizar el modelo de objetos de Excel y no sepas hacer algo con ello, hay un "truco" muy sencillo: Abre el Excel, graba una macro que haga lo que necesitas hacer, y examina el código que genera. Te servirá de base para implementar esa funcionalidad que se te resiste.
No encuentro ninguna referencia a la clase ExcelFileManager en el Framework. ¿Qué librería implementa esta clase?
Vaya título más amarillo (por no decir verde) para llamar la atención jajajajaja :P
Lo prometido es deuda ;) Muchas gracias por el pdf!
Excelente post...
Parece que WCF sigue con el mismo problema relacionado al polimorfismo que tenia con WS en VS.NET2005 ...
tampoco han corregido el problema en el IDE vs.net 2008 beta 2...
@alguien:
¿En serio? Haz un pequeño ejercicio: Inténtalo sin dibujar, y sin usar google. En papel. Sin depurar (excepto mentalmente, o usando el papel para hacerlo). Y luego me lo cuentas.
Normalmente cuando alguien lleva años programando con muchos lenguajes, no tienen que dar vueltas a listas enlazadas todos los días. Si son buenos, usaron una librería que ya lo implementaba. O lo picaron una vez y lo metieron en una librería propia. O lo picaron una vez y lo copipastearon cada vez que lo necesitaban. O directamente lo copipastearon de Google. :(
Te digo una cosa, si alguien no lo dibuja en papel y lo hace perfecto, no hay problema. No es tema de seguir el procedimiento o no. Hay gente que se hace el esquema en la cabeza, e incluso gente que sobre el papel lo que hace es razonar en alto. Lo importante de la entrevista es ver si esa persona es capaz de superar un reto (vé a una entrevista nervioso, y verás si es o no un reto que te hagan una pregunta que no te esperas), e intentar ver cómo piensa.
Hola a todos! Como ya he comentado en otra ocasión , estoy usando el Visual C++ 2005 Express para desarrollar
¡Gracias!
Muy interesante, y la verdad muy útil, que no sería la primera vez que alguien el día de la "demo" en ese equipo le salta ese error.
En la Express no sé si estará, pero en las de pago hay una carpeta en C:\Program Files\Microsoft Visual Studio 8\VC\redist que contiene las DLL necesarias.
Lo primero es que la licencia no te permite distribuir las bibliotecas DEBUG (que están en la carpeta Debug_NonRedist), por lo que el primer paso es hacer una build Release.
Luego, tan solo tienes que soltar los ficheros que hay en C:\Program Files (x86)\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT junto a tu aplicación y listo.
Y lo mismo en el caso de una compilación debug (C:\Program Files (x86)\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT), pero no está permitido por MS, aunque hacerse se puede hacer.
Hola Rafael,
Completamente cierto, en la versión de pago está esa estructura creada. Pero aún así puede haber alguien que no sepa para qué sirve ;)
El problema aparece en Visual C++ 2005 Express, porque dicha carpeta no existe (cosa que no entiendo, porque te la puedes crear en un pispás). De ahí que la solución pase por primero crearte esa carpeta redist, que sigue la misma estructura que la que tiene en la versión de pago.
En la versión de pago también tienes otras carpetas con las DLL necesarias para MFC, y otras historias...
HOLA EN MY OPINION UML ES LA MAYOR HERRAMIENTA DE LA PROGRAMACION ORINTADA A OBJETOS EL PROPIO VIL GEIS LO AFIRMA PARA EL SIGLO VEINTIUNO SERA NECESARIO DOCUMENTAR TODO SISTEMA DE INFORMACION ANTES DE CODIFICARLO ESA ES MI OPINION......................................
El cliente tiene su código y su funcionalidad. Por un lado no le gusta reconocer que el código se ha hecho bastante insostenible, lo ha pagado y su gente muchas veces está implicada, por lo que los responsables de informática no se van a echar tierra. Por último han hecho un buen trabajo, pero muchas veces no tienen preparación suficiente, por lo que el resultado es funcionalmente correcto y después de retorcarlo el código ha quedado hecho una pena.
Migrar quizás es una forma de refactorización del sistema a lo bestia. Que ventaja tiene??? Pues saber que hace el código realmente y limpiarlo de código basura.
Por último, en ciertas ocasiones que el código sea una basura es el tesoro de muchos porque donde podrían trabajar 10 personas trabajan 100. Quien gana? 90 personas no las consultoras.
Tenemos que ganan las consultoras y que los responsables no quieren asumir riesgos ni culpas entonces tenemos UNA CONCLUSIÓN QUE MIGRE MANOLO EL DE LA MOTO. Todo el mundo gana, menos el cliente, aunque el cree que no pierde, porque por otro lado el gasto desgraba.
Otra cosa es como hacer que todo vuelva a funcionar como antes...
El problema es que en muchas ocasiones no se sabe que hace realmente el código. Alguna vez me han dicho no toques eso, porque lleva ahí no sé cuanto tiempo y nadie se ha quejado... pero si no vale para nada... si es posible pero quien lo prueba.
Es decir, se tiene un código nada documentado y una funcionalida desconocida. En este momento es cuando migrar se pide a gritos, pero es como intentar reanimar a un muerto. Entonces cual es la estrategia para hacerlo??? Pues, encomendarse a dios y tener paciencia.
Para llenarlo de errores siempre hay tiempo y lo que habría que cambiar es la metodología con la cual se han hecho las cosas. Por ejemplo automatizar las pruebas para que la funcionalidad a probar quede recogida en un documento y un programa de pruebas automático.
Vender esto es muy difícil en fin como dijo alguien pocos conductores miran bajo el capo mientras el coche arranque por las mañanas.
¿Que tanto se degrada la performance de las comunicaciones en los escenarios de seguridad mixta?
¿conoces benchmarks que hablen al respecto?
Muy buen artículo sobre el tema. No conocía este control.
disculpa y como accedo a una tabla de sql server 2000 con c#, es decir a un textbox
Hola soy novata muy novata en esto de visual c++ y necesito una pequeña colaboracion, no se donde se programa en el .cpp o en el .h, nunca he programado .NET y necesito un pequeño tutorial o algo les agradeceria.
otra cosa que pena el fichero al que te refieres es un pequeño codigo?
Gracias por su ayuda
Para acceder a una tabla de sql server 2000 tienes muchas opciones... Utilizarías el acceso a datos normal. Y luego lo enlazarías con un textbox, o con el control que desees ;)
Tienes un tutorial disponible aquí:
www.asp.net/.../data-access
Es de ASP.NET, pero el acceso a datos es similar para una aplicación WinForms o SmartClient.
Hola trumile,
En tu caso no es un tema de .NET, sino más bien de C++. En un resumen rápido e incompleto, en el fichero .h deberás poner la declaración de las clases, y en el .cpp la implementación de los métodos.
Echa un vistazo aquí:
www.cplusplus.com/.../tutorial
Es un tutorial de C++... Una vez tengas las bases, ya podrás empezar a aprender cómo usar C++ para utilizar el framework de .NET. Pero las bases de C++ son imprescindibles, me temo.
mi pregunta es donde voy a copiar la serie de instrucciones descritas en el manifest gracias y perdonen la ignorancia
Lo primero, no pidas perdón. No hay preguntas tontas, sino respuestas tontas. ;)
Lo que debes hacer es crear un nuevo fichero de texto, lo abres con el notepad, pegas el texto que aparece arriba en colorines, lo guardas, y lo renombras, poniéndole como nombre:
Microsoft.VC80.CRT.manifest
Ojo, asegúrate de que no te pone una extensión .txt al final, y si se la pone, se la quitas. El icono del fichero debería cambiar.
Este fichero recién creado, lo copias a la carpeta que se indica en el artículo junto con las DLLs. Y cuando quieras distribuir la aplicación (no una versión final, sino una alpha) copias la carpeta que has creado (con sus DLLs y el fichero .manifest):
%PROGRAMFILES%\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT
A la carpeta de tu aplicación que vas a distribuir. (Por ejemplo en un zip).
Eso sí, si tu aplicación la vas a distribuir siendo una versión final, conviene que pongas como prerequisito que estén instaladas esas DLL, y distribuyes también el paquete de instalación del runtime de C++.
Hola, Hace ya poco más de un año, este blog se inauguró con este post . Desde entonces se han recogido
Buenas! En este artículo vamos a crear un formulario que muestre un mensaje de espera, por si tenemos
orale, la verdad, muy interesante tu articulo...
pocos blogs como este!...
Saludos y felicidades!... :P
execelente; bueno quisiera q me recomienden alguna web donde pueda aprender c# desde cero hasta conexion a bd
me gustaria utilizar este programa pero para navegar por todas las páginas de wikipedia. En wikipedia los enlaces internos no van por href sino que entre corchetes ( [[enlace]]).
Como puedo hacerlo? Como puedo hacer también que guarde un registro de el numero de paginas que ha encontrado, la pagina que tiene más enlaces, ...
Muchas gracias.
Prueba con estos tutoriales:
samples.gotdotnet.com/quickstart
Uf... ¿¿¿Para navegar por TODA la wikipedia???
Tal y como está el código, va a recorrer todos los enlaces que encuentre, no solo los que estén en la wikipedia. Si sabes seguro que los artículos se referencian como indicas, basta con que cambies la expresión regular que se utiliza para buscar los enlaces.
Tal cual está el código va anotando el número de veces que pasa por cada página (es decir, el número de enlaces que llegan a ella). Podrías crearte una clase que contenga todos los datos que quieres guardar de cada página, y cambiar la tabla hash que se usa en el código (es para .NET 1.1, sin generics) por un Dictionary<string, TU CLASE>.
Te ha faltado el avioncito volando
Te ha faltado el 380 despegando y aterrizando. !Pa la proxima!
Muy interesante. A ver si me podeis ayudar. Visito regularmente una página que me presenta datos en forma de tabla, pero lo hace a través de scripts de java. El caso es que con .net y htmlelement del control webbrowser he conseguido examinar la página, pero sólo veo líneas como ...writeline(...). Sin embargo en pantalla el control webbrowser si me presenta los datos en forma de tabla. ¿No hay forma de acceder a esos datos para gestionarlos desde mi aplicación?
Hmmm...
Si lo que te está mostrando es un applet de Java, no podrás acceder al contenido. Si es HTML, debería dejarte a través del DOM de la página actual (es decir, el objeto HTMLDocument de System.Windows.Forms).
Si sabes qué estructura tiene la página web, podrías llamar al método GetElementById si el texto se incluye en un elemento que tenga un Id. Si no tiene Id, puedes probar a usar GetElementsByTagName, y de ahí ir buscando el que te convenga.
Si tuvieses un ejemplo de la página podría ayudarte más, pero así es difícil.
Gracias por tu ayuda me ha sido de gran utilidad cualquier inconveniente o aporte les estoy comunicando
muy bueno y claro, me ayudó bastante
Hola soy nuevo con Visual C++ 2005 Express
Intente compilar este codigo, pero me da error cuando presiono F5
Este es el codigo:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World!";
return 0;
}
Me dice lo siguiente "There were build erros.would you like to continue... ?"
Me pueden enviar un codigo que funcione o sino cual es la solucion?
P.D. Cualquier cosa mi correo es "dams540@gmail.com"
Hola... tengo una duda sobre el propertyGrid...
Sabes como puedo hacer para que el tamaño de la columna de las propiedades sea dinámico??? estoy teniendo problemas con eso.
Muy lindo tu articulo
Gracias!!!
Se te olvidó poner el código de ejemplo.-.-.......
Creo que estás mezclando cosas. SOA no tiene nada que ver con la implementación. La "S" de SOA no significa Servicios Web, aunque éstos sean una posible implementación. Se podrían montar servicios SOA sobre MSMQ por ejemplo.
Tienes una discusión interesante aquí:
samgentile.com/.../soa-is-about-business.aspx
Hola Alejandro,
Sé que SOA no tiene que ver con la implementación, sino con la idea de tener una arquitectura que facilite la colaboración entre sistemas, haciendo que los sistemas expongan servicios (no Web Services) que puedan ser consumidos por el resto de sistemas de la arquitectura.
Sin embargo, como comento en el artículo, "SOA no es lo mismo que XML/XSD, pero en el 95% de los casos suelen ir de la mano para la comunicación de datos entre diversos sistemas". Por ejemplo, hay veces (y no pocas) que se utilizan colas MQ (o MSMQ), y los mensajes en dichas colas se envían como XML. De nuevo por la facilidad de "comprender" y utilizar dichos mensajes por parte de los desarrolladores.
Y es que normalmente al implementar SOA se suelen generar Web Services que exponen los diversos servicios, y para la comunicación entre sistemas se suele utilizar XML. De ahí la reflexión...
Cambiaré el título por "XML no es la solución universal" para no llevar a confusiones.
Por cierto, muy interesante el artículo. ¡Gracias!
Hola Augusto!
No puedo estar mas de acuerdo a lo que dice Alejandro. Cuando hablamos de SOA, hablamos de servicios (otra cosa es la implementación de los mismos) que tienen que satisfacer los requerimientos de negocio en los que seguro que va a haber intervención humana...y por debajo como dices tendremos los sistemas informáticos, pero con la premisa de qe son facilitadores y apoyo de los procesos de negocio y por lo tanto tienen que facilitar el intercambio de información para que al final le llegue a un sistema o una persona...al final piensa que se usa XML como formato de intercambio sobre todo por que es un estándar de facto que es entendible por cualquier plataforma o tecnología. Lo mismo pasa con los servicios web, y en concreto con todo lo relativo a WS-* para facilitar el intecambio de información o también RSS...son estándares y por lo tanto encajan dentro de la filosofía de SOA.
JC's
Hola Juan Carlos!
Sí, es cierto que hablar de SOA en este contexto no tiene sentido, ya que en ningún momento estoy hablando del negocio, sino de cuestiones técnicas.
Si bien es cierto que los Web Services es la herramienta más común a utilizar para intentar implementar una arquitectura SOA a partir de lo que ya existe (además de otras cosas, como por ejemplo ESBs), y los Web Services suelen ir de la mano de XML. Así que para enfocar un poco más el tema he cambiado el título para que no lleve a errores ;)
Comentas que "se usa XML como formato de intercambio sobre todo por que es un estándar de facto que es entendible por cualquier plataforma o tecnología". El hecho de que XML es el estándar de facto es innegable, pero... ¿Eso quiere decir que ha de ser inamovible? Creo que no, y de hecho dudo que lo sea en un futuro. Con lo que no estoy de acuerdo es que sea entendible por cualquier plataforma o tecnología.
La estructura del XML sí que lo es, pero "la chicha", el contenido, es lo que no siempre es entendible entre sistemas de tecnologías diversas, ya que con XML sigue fallando el poner de acuerdo a las diversas tecnologías en cuál es el estándar para representar algunos tipos de datos (por ejemplo, las fechas). Y ese sería otro punto a mejorar...
Yo estoy totalmente de acuerdo con el artículo. Si bien es cierto que XML es cómodo para trastear y debuggear, en la práctica, cuando se trabajan en entornos que se necesita intercambiar mucha información hace aguas, por ejemplo los entornos multimedia.
No se ha hablado de una razón muy importante, que es el sobrecoste asociado a parsear los ficheros XML y leerlos, que en ocasiones puede llegar a ser crítico.
Para mí, lo óptimo sería poder trabajar en formato XML en modo de desarrollo, pero que internamente y de forma transparente en pruebas/producción se use un formato binario que sea compacto. Creo que con un poco de reflexión este proceso podría hacerse de forma autómatica y ser estandarizado.. y que sea un bXML (binary XML).
Hola, Augusto!
No es que yo sea un defensor a ultranza de XML ni nada por el estilo, pero en esto mi opinión es diferente:
>> El foco está puesto en el desarrollador, no en los sistemas que tienen que intercambiar los datos entre sí.
Precisamente creo que *ES* en el desarrollador en quien tiene que estar. Me viene a la mente este artículo de Rodrigo:
geeks.ms/.../personas-o-bits.aspx
en el que dice "Lo importante son las personas, no los bits". Aunque él lo decía en relación con otra cosa.
Como yo lo veo, precisamente la historia de las aplicaciones distribuidas partió de sistemas binarios propietarios por razones puramente prácticas, y cada vez se va moviendo más hacia sistemas y herramientas con los que sea más cómodo trabajar y que permitan un mayor nivel de abstracción y una mayor productividad.
Claro, igual cuando nos falle la Ley de Moore y no aparezca ninguna tecnología nueva en el horizonte habrá que aguantarse :-)
Es solo mi opinión personal.
Saludos - Octavio
Un artículo muy interesante .
Esto es serialización serializada, es decir un serializador que "serialice" XML al bXML que nos decía Diego y viceversa. O casi mejor usar el bXML total casi nadie ve XML en el notepad, con lo que para el caso mirar bXML sería lo mismo.
¿Pero cómo sería el bXML?
Estaríamos hablando entonces de logitud fija de campos o en todo caso de "separadores de campo" y "separadores de registro".
Eso es bastante engorroso. No estamos contandos con la flexibilidad que nos da XML para definir todo tipo de estructuras con un numero variable de elementos y campos de longitud variable.
Creo que el hecho de traducir todo esto a un binario mas eficiente pero igualmente versatil produciría un "XMLLite" que sería muy similar al XML pero ahorrandonos bytes representando los datos en binario y minimizando la longitud de los nombres de etiquetas y atributos (Siempre se puede hacer una asociación nombre-símbolo).
Esto para miles de elementos pueden ser muchos bytes.
Como ejemplo de todo esto están las bases de datos, uff no me quiero imaginar la de deserializaciones que nos podemos ahorrar.
Lo que propones es algo que creo todo el mundo ha pensado una vez u otra. Creo que gran parte del éxito en la adopción de este tipo de formatos es, por un lado, la manía actual de documentarlo absolutamente todo, y XML es quizás de lo más parecido en el mundo informático a los sistemas de almacenamiento de datos en jerarquías que utilizan los bibliotécnicos o los documentalistas, y por otra parte también hay una gran culpa de que debido a la tecnología a la que tenemos acceso en la actualidad, prima la facilidad de uso y actualización por encima de otras virtudes que antaño fueron fundamentales en los desarrollos informáticos, como la velocidad o la eficiencia.
La verdad es que podríamos discutir bastante más ampliamente sobre esto, sobre si la banda ancha y los procesadores de chorrocientos núcleos van a crear una nueva generación de informáticos idiotas (me sorprende ver, por ejemplo, que en un gran número de universidades se programa ya únicamente en Java, o que alumnos de segundo de ingeniería ni siquiera conocen la teoría más simple de qué es un fractal).
A mi me parece también una idea estupenda. Dejando de lado el tema de SOA (que creo que no es de lo que va el artículo) el trabajar con XML supone un sobrecoste bastante importante.
Las comunicaciones con XML son muy cómodas a la hora de programar (no digo ya nada a la hora de depurar) pero tener que estar parseando con los dos extremos me parece algo que se podría ahorrar o, al menos, mejorar. Simplemente tendríamos que trasladar ese parseo que se lleva a cabo nuestros sistemas a nuestros aplicaciones de desarrollo con lo que los desarrolladores seguiríamos teniendo todas las ventajas (tan simple como tener una ventana Watch que tradujese, en ambos sentidos, entre este formato y algo entendible, quizá XML).
Sin embargo la tarea más complicada sería poner de acuerdo a todo el mundo para crear un formato estándar (o casi) para comunicación que es lo que realmente, en mi opinión, hace grande al XML. Cada día los procesadores son más potentes y los anchos de banda más grandes lo que mitiga este lastre de usar XML, a pesar de que un nuevo formato podría mejorar el rendimiento (drásticamente en algunas aplicaciones).
Así que pienso que el XML aún nos va a acompañar mucho tiempo y que deberíamos limitar su uso a lo estrictamente necesario (a ver si algunas personas que andan por ahí se dan cuenta de que XML resulta útil pero no es, en absoluto, la panacea). Así como el alcohol: con moderación.
Tengo un problema similar a este pero no se si es el mismo... deberia serlo, lo comento.
Tengo el Visual Studio 2008, hice una aplicacion usando las librerias de SDL, y me funciono sin problemas, se lo pase a una compañera de la facultad que tiene el Visual Studio 2005, le explique como instalar las SDL y crear el proyecto desde 0, lo compilo, pero cuando lo fue a ejecutar le dio el error que aqui mencionan, luego le mande el que yo habia compilado y lo mismo le daba el error. Aqui hablan solo de las version express del 2005, pero puede estar ocurriendo esto tambien con las de pago??? Ademas mencionan que el problema ocurre en equipos sin el Visual C++ express, y ella tiene instalado el visual studio 2005... es el mismo problema? o es un problema similar? Gracias desde ya.
No se porque estan tan contentos con este poster.
La verdad solo de ha declarado la query a usar, la linea que falta despues de:
new OleDbCommand("SELECT * FROM NombreAsignadoEnExcel", objConn);
seria:
OleDbDataReader reader = cmd.ExecuteReader();
y esa linea da ERROR.
Asi que el ejemplo al final no sirve.
Muchas Gracias LhaN
El codigo que me enviaste funciono!!
Hola exceptico, (por aquí decimos escéptico...)
¿Qué error te da?
El ejemplo está siendo usado en un proyecto real, así que _sé_ que funciona... Podría ser que el nombre que has declarado en la consulta no coincide con el nombre que has declarado en el Excel?
Buenas,
Lo que estoy intentando es hacer un webCrawler que tenga como base el GoogleReader. No tengo problemas para insertar la cookie y llegar a la página principal. Sin embargo, a partir de allí, los enlaces no están en modo href sino que los obtiene a través de funciones javascript que supongo estarán alojadas en el servidor.
Cómo puedo solucionar este problema?
Gracias de antemano.
Hola Blas,
Me temo que en tu caso, en el que tienes que ser capaz de interactuar con la página y con el javascript que tienes en ella, tendrás que utilizar un control WebBrowser. El HtmlRequest puede hacer peticiones HTML y obtener la respuesta del servidor (el stream de respuesta), pero no interpreta el HTML ni ejecuta javascripts.
Nada hombre, si esta peña de MS ya se ve que son unos lumbreras xD La verdad es que es bastante curiosa la situación :P
Muy interesante compañero!!
Por casualidad sabes si hay alguna manera de resolver el msimo problema de ejecutar un codigo .net en otra maquina pero para Visaul Basic .Net 2008??
Muchas gracias,
Sí...
Instalar el framework de .NET, la versión que corresponda a tu aplicación ;)
Buen artículo, en pocos sitios se trata este tema...creo que hay otra forma de hacerlo, y no es definiendo la tabla desde excel, sino en la consulta SQL, en vez de poner
SELECT * FROM NombreAsignadoEnExcel
, se pone:
SELECT * FROM [NombreAsignadoALaHojaEnExcel$]
; esta fórmula hasta ahora no me genera ningun error, sé que accede a los datos que quiero; sin embargo, mi inconveniente está en la visualización de estos datos en un objeto DataGridViewer (primera vez que lo utilizo). Si puede ayudarme en esta visualización, se lo agradezco mucho.
Hola, alguien pudiera ayudar, ya que no se compilar un simple codigo en cpp en visual c++ 2005 express,
Con tantos datos va a ser difícil ayudarte... ;)
Para código de C++ tienes que asegurarte de varias cosas:
Tienes configuradas las rutas de los includes de las librerías que usas?
Tienes configuradas las rutas donde están los .lib a los que haces referencia?
Tienes indicadas las librerías que usas? (.lib)
Has pulsado Ctrl + Shift + B?
Hola, estoy tratando de compilar el Turbo Girl en MSVC2005 y me he encontrado con este follón del runtime. Googleo y al caer aquí digo... ¡¡ ¡ Este tío me suena !!!
¡Saludos!
Chema
Es muy bueno el ejemplo, te felicito, ademas es muy practico y sencillo
ya lo probe y funciona y lo enlace con el gridview , lo que hice es sacar todos esos datos y colocarlos en un objeto ( Ej. PersonaVO) con cada registro y lo metia a una coleccion (ArrayList o List) y posteriormente se utiliza un ObjectDataSouurce que le tienes que especificar el cs que donde esta tu metodo asi como el metodo que utlizara y solo bastaria asociar el ObjectDataSource al Grid , si desean solo var algunas columnas tendra que asociar cada columna el vo con su propiedad
bye
el uml es una mierda y soy gay
Hola Harri,
Me alegro que tengas tu orientación sexual clara. Quizá este no sea el sitio más conveniente para salir del armario, pero en fin, tú mismo.
En cuanto a que UML es una mierda... ¿por qué?
hola soy novato kon este lenguaje c++ alguien me puede guiar bueno no tan nobato se mas o menos lo ke pasa ke nesesito ber un programa para guiarme alguien ke tenga un poko de tiempo para ke me guie mi imail es david_fasil@hotmail.com
Como hago para que la sentencia select tenga la opción WHERE en excel.
-- Ademas conesto
select * from
-- carga todas las columnas en la hoja pero si solo quiero algunas
-- en especifico.
-- Supongamos q mi hoja tiene 10 columnas y solo quiero 5
-- entonces le pongo
select columna1, columna2, columna3, etc from
pero da error .. alguien sabe como hacerlo ??.
Como al parecer no hay respuesta de nadie ya lo resolvi.... miren para quien lo valla hacer se hace de la siguiente forma.
SELECT [Columna1], [Columna2], [Etc] FROM [" hoja$]"
y para victor que pidio lo del where seria asi:
SELECT [Columna1], [Columna2], [Etc] FROM [" hoja$]" Where Columna1=" & valor
@Pepe: Siento no haber sido lo suficientemente rápido para contestarte... :(
@Victor: Basta con que la consulta la definas incluyendo la cláusula WHERE que necesites... Eso sí, deberás usar los nombres de las columnas tal y como indica Pepe.
Pues para empezar con C++, prueba con el típico Hola Mundo...
#include <iostream>
int main()
std::cout << "Hello, world!\n";
Compilar y ejecutar. Y a partir de ahí, a donde quieras...
jaja reprobare
otra vez!!
ja y si repruebo 1 reprobare 3 por k la toman komo 3 materias!
te odio c++
nos vemos en el infierno!
Hola a todos,
Necesito trabajar conlas librerías de OpenCV pero no se configurar las rutas de dichas librerias.
Por favor si alguien puede decirme como configurar lo basico para empezar a programar.
Gracias
Hola como puedo aparte de que busca todos los link, me busque un tag o una funcion especifica en el cuepo del html
Carlos U:
Para que te busque un tag tienes que modificar la expresión regular hrefRegEx. Según el tag que quieras buscar tendras que usar expresiones regulares distintas, o bien hacer una expresión regular para todos los tags y decidir en función del nombre del tag qué hacer (esto sería más pesado, mucho más proceso).
También puedes crear varias expresiones regulares, unirlas con un OR y darlas nombre, de manera que para cada token encontrado puedas saber exactamente cual es si tener que examinarlo (a partir del nombre que le has asignado).
cuando busque en google no pensé que llegaría a la solución...
se agradece mucho, me solucionaste un problemon...
saludos ^^
tengo que hacer un reloj en 3D y ni siquiera se como hacer para trabajar con las librerias opengl en VC++ 2005 si alguien me puede ayudar le agradecere mucho
Hola Roberto,
Te recomiendo un clásico para aprender a programar OpenGL. En esta página tienes una serie de tutoriales en los que se explica desde cómo configurar Visual Studio a cómo hacer desde las cosas más sencillas a cosas bastante avanzadas.
http://nehe.gamedev.net/
Muyyy buen articulo amigo... al principio no entendi bien como funcionaba, pero ya con el codigo de ejemplo todo fue mas claro
woow
muy buena pagina
pues yo le se un poco
y nadie a puesto un insert
creo yo
pues aqui les dejo uno de un insert para quien lo desee
string conexion = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\TOYOS!!!\Documents\excelwithsql.xls;Extended Properties=Excel 8.0";
OleDbConnection cnn1 = new OleDbConnection(conexion);
OleDbDataAdapter da = new OleDbDataAdapter();
da.InsertCommand = new OleDbCommand("INSERT INTO [Sheet1$] (id, Nombre,Apellido) VALUES('"+reader[0].ToString()+"','"+reader[1].ToString()+"','"+reader[2].ToString()+"')", cnn1);
da.InsertCommand.Connection = cnn1;
cnn1.Open();
da.InsertCommand.ExecuteNonQuery();
cnn1.Close();
probando hasta que salio
y pues ahi esta
Oye que eres pila no.
Para pepe ... amigo, en donde se debe colocar la hoja de exel ?
Hola, gracias por tu solución. me imagino que se le soluciona a otros.
En mi caso tengo instalado Windows Vista. y Visual Studio 2008 pago.
Me sale el mismo error cuando hago los pasos mencionados pero el computador a donde llevo los archivos tiene Windows XP.
Será que hay solución?
Gracias Alfonso
Hola Alfonso,
Para VIsual Studio 2008, las dlls deberían estar en:
%PROGRAMFILES%\Microsoft Visual Studio 9\VC\redist
O si no, puedes descargar los ficheros aquí:
para 32 bits: www.microsoft.com/.../details.aspx
para 64 bits: www.microsoft.com/.../details.aspx
Totalmente cierto lo que dices, pero si lo que querías era sólo una copia de los datos del stream el metodo ToArray te devuelve ya una copia de la longitud exacta:
msdn.microsoft.com/.../system.io.memorystream.toarray(VS.80).aspx
Me parece interesante las ideas que manejan.. tengo como ingeniero de software aprox. 4 meses ya que akabo de egresar de la escuela... tengo el reto de documentar en mi trabajo un sistema grandisimo con varios aplicativos y que internamente en BD es complejo...
Mi pregunta es como usar UML en un sistema ya hecho?? y de esta magnitud???? por dsonde empiezo :S???
Gracias por su gran aporte me sirvio mucho. Como soy nuevo en esto les pediria el favor de guiarme para que la hubicacion y nombre del archivo sea seleccionado por el usuario y pueda elegirlo desde cualquier.
¡Totalmente cierto!
Muchas gracias ;)
Uml es una cagada, no entiendo nada de los libros...todo eso parece CHINO MANDARÍN!
Esta espectacular pero a mi me da un error
No se ha inicializado la propiedad ConnectionString.
Como puedo solucionar esto
hola, soy de marin san felipe estado yaracuy venezuela, actualmente estudio informatica, me encanta programar c, me parece un lenguaje potente y a la vez lo veo como una especie de gimnasia cerebral antes de indagar en otros lenguejes tales como php o java, no se nada pero los invito a visitar www.conclase.net, alli encontrara material de alto calibre para leer, conocer, practicar y aprender de c para posteriormente usar las nuevas tecnologias del mercado del software, www.ignacio_345@hotmail.com, hagan preguntas, probablente te responda rapido todos los dias reviso mi correo, hasta pronto. the webman.. :-)
como puedo hacerlo en c++, que estructuras usarian?
esta muy suave la pagina pero ami me sale un error y no se pork no me reconoce el objconn
monica Puedes hacer ingenieria Inversa en cualquier programa que decidas utilizar, eso sirve bastante almenos con los diagramas de clases y los de componentes, al mismo tiempo desarrollas los diagramas de caso de Uso, tambien hay varios programas como el magicdraw para hacer ingenieria inversa a los diagramas de secuencia en lo particular son demasiado especificos, prefiero hacerlos generalizados. Claro antes de hacer todo esto analiza bien las BD para que puedas tener clara imagen de la informacion que manejas
SUERTE!!!
Si estoy de acuerdo UML no sirve de mucho pero por lo menos te orienta en el funcionamiento del sistema.
Tengo un problema a la hora de ejecutar un programa en microsoft visual studio 2005, es el mismo problema que me da al ejecutarlo en el VC++ Express 2005.
Pues, lo compilo, y todo bien. Pero no veo el icono de ejecutar por ningun lado, asi que le doy el debug y me dice que no encuentra el ejecutable, el .exe
No tengo idea de lo que pasa
balla libro digital que se ha escrito he podido aprender mucho de este, yo no rengo el placer de conoserlo pero si ustedes lo ven denle mis mas grandes saludos y respetos, buenisimo programa el 2M muy buen codigo desde mexico felizidades
Hola a tod@s!!
Tengo un conjunto de excel, cada uno de ellos tengo que importarlo a una tabla diferente en sql server. Cada uno de los excel únicamente cuenta con una sola hoja. Mi pregunta es, cómo puedo yo extraer el nombre de la hoja para poder realizar la sentencia select?
Este es mi código, ahora mismo funciona correctamente, pero tengo que asignarle un nombre "estático" a la variable sHoja. Y lo que quiero es que coja directamente el nombre que viene en el excel.
// Cadena de conexión al libro de excel
string sCadenaConexionExcel = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=" + sFichero + ";" +
@"Extended Properties=" + '"' + "Excel 8.0;HDR=YES;" + '"';
// Crear y abrir la conexión al libro de excel
OleDbConnection conexionExcel = new OleDbConnection(sCadenaConexionExcel);
string sConsulta;
sConsulta = " SELECT * FROM [" + sHoja + "$]";
conexionExcel.Open();
Lo primero, gracias por el ejemplo. Me está resultando muy muy útil.
Tengo una pregunta, si no conozco el nombre de la hoja, como puedo hacer el select para que lo haga sobre la primera hoja.
Muchas gracias!!
C# 2005 : ( support.microsoft.com/.../306572 )
using System.Data.OleDb;
string conexion = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\RUTA\ARCHIVO.xls;Extended Properties=Excel 8.0";
OleDbConnection objConn = new OleDbConnection(conexion);
// Abrir la conexión con la base de datos.
objConn.Open();
// El código utiliza un comando SQL SELECT para mostrar los datos de la hoja de cálculo.
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM MyTabla", objConn);
// Crear un nuevo OleDbDataAdapter que se usa para generar un DataSet
// basado en la instrucción SQL SELECT anterior.
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
// Pasar el comando Select al adaptador.
objAdapter1.SelectCommand = objCmdSelect;
// Crear el nuevo DataSet para que aloje la información de la hoja de cálculo.
DataSet objDataset1 = new DataSet();
// Llenar el DataSet con la información de la hoja de cálculo.
objAdapter1.Fill (objDataset1, "XLData");
// Enlazar los datos al control DataGrid.
dataGridView1.DataSource = objDataset1.Tables[0].DefaultView;
// Limpiar los objetos.
objConn.Close();
Pro: Fácil y efectivo.
Contra: Hay que definir como MyTable el rango en el archivo de excel... Han usado MSQuery como intermediario?... Es Limitado... pero practico!
Estaba en un error!
Si es posible aceder a los datos sin definir un rango (Insertar, Nombre.. Definir...) desde excel.
Solo hay que cambiar (en mi comment anterior) el MyTabla por [Sheet1$] o [Hoja1$] o el nombre de la hoja.
Esto me es útil cuando exporto bases completas de fox pro u otros BD a Excel!
Que seguridad tendría que estar usando si tengo un servicio WCF el cual va a ser llamado por una aplicación win echa en delphi desde internet?
¿que es un build Release?.
AHHHHHHHHHHHHHHHHHHHH,(léase como suspiro) Los he leído con deteción, y de fijo que lo de los punteros es lo suyo. Vine aquí buscando información sobre punteros, pero leyéndolos hasta que me da un susto, por empezar a programar.
Programar, no es del todo feo, pero, con esto de punteros y recursividad, casi que me devuelvo.
No sé si los volveré a leer, porque no estoy en mi oficina.
Pero si quieren escribirme, para ayudarme, lo agradecería
marsus@gmail.com
pa' mi que to2 estáis droga2, mas quienes afirman que UML es una... >:-<? ""... Particularmente con esta herramienta me gano la vida hace masde un par de lustros y os sostengo con toda firmeza que es buena. Hacedle tíos y tías metédle huevas al asunto.
No lo he mirado aun
Me parece excelente esta manera de trasnformar una imagen a escala de grices, pero luego que esta transformada como se puede obtener esta imagen en escala de grices para trabajarla? Me explico, como la almaceno en otra variable del tipo Bitmap o Image. Gracias de antemano. Saludos
muy bueno tu ejemplo de usar excel como base de datos, pero como se puede saber las hoas que tiene un archivo de excel ??
Gracias ..............
PingBack desde Apaga el ordenador desde la impresora | Todo sobre informatica
Gracias, muy util, saber porque!
pleaseeeeeeeeee ayuda no puedo actualizar celdas de excel que tienen formula y lo necesito urgente pa un trabajo porfa ayuda
Hola Buenos Dias.
Tengo un pequeño problema con el uso del ApartmentState.
Tengo una pagina con un boton el cual manda a ejecutar a una dll la cual abre una ventana. Mi problema es que al utilizar ApartmentState.MTA al dar click en el boton abre la ventana en segundo plano o minimizada y si lo cambio a ApartmentState.STA lo hace bien pero las imagenes no las muestra. De que forma tengo que usar el ApartmentState.MTA para que al dar click en el boton abra la ventana en primer plano para poder trabajar sobre ella.
Saludos y gracias
Hola Ana,
Si es una aplicación Web, tienes que repensar la estructura de la aplicación. Una dll de negocio nunca debería abrir una ventana. Otra cosa es que proporcione la imagen a la capa de presentación, que se encargue de mostrarla al usuario...
Hola a todos!!
Necesito de su ayuda, mi caso es el siguiente:
Se que en mi aplicación web, al leer los datos de un archivo excel, este lee los datos de una estructura ya definida, es decir, los archivos que lee se encuentran desde la primera fila y primera columna.
Entienden???
Ese es el formato que he visto en todos los ejemplos....
Mi pregunta es que cómo hago para que lea los datos de un archivo excel, pero que estos datos se encuentren en otras celdas. Por ejemplo que comience en la celda A7 y no necesariamente en la primera fila.
Estoy utilizando ASP.NET y C#
Espero puedan ayudarme!!!
Para los que quieren saber el nombre de la tabla es facil con
DataTable esquemaTabla = cn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] {null, null,null, "TABLE"});
// donde cn el el objeto OleDbConnection
// y el DataTable esquemaTabla obtiene las propiedades
// de las tablas en cada renglon , ntonces pueden hacer
string nombreTabla ="";
for(int i =0; i< esquemaTabla.Rows.Count; i++){
nombreTabla = esquemaTabla.Rows[i]["TABLE_NAME"].ToString();
// y aqui el codigo de lo que quieran hacer con el nombre de la
// tabla, solo que al nombre le deben de agregar los []
// ya que solo viene como Sheet1$
hola,
antes que nada me gustaría agradecer la amabilidad que usas en tus respuestas sean novatos o expertos.
estoy cn una versión beta de un programa que necesito probar en varios pcs a la vez y justamente como tú dices, no quiero tener que ir creando msi's innecesarios sino una solución rápida y que no deje rastro como la que tú propones.
pero al hacer lo que dices me sigue dando el mismo problema, mi visual studio 2005 del curro ya traía esas carpetas creadas y con sus respectivas dll's... crees que debería regenerarlas por lo que pueda ser o pq motivo no me funciona?
gracias.
Creo q puliendo un poco este codigo esta seria la mejor manera bueno al menos para mi por ese motivo lo comparto con ustedes xq de ustedes mismo son los derechos de autor solo lo he mejorado bueno al menos he probado el tiempo de respuesta....
private void btnLimpiar_Click(object sender, EventArgs e)
limpiarTextBoxes(this);
// Y opcionalmente...
this.textBox1.Focus();
public void LimpiarTextBoxes(Control parent)
foreach (Control c in parent.Controls)
if (c is TextBoxX)
c.Text = "";
c.Tag = "";
if (c.Controls.Count > 0)
LimpiarTextBoxes(c);
En cuanto a la propiedad Tag q tambien la hago = "" no se preocupen pues en mi caso utilizo esa propiedad para almacenar codigos....
Hola rubik,
Tienes que tener cuidado. En función de la compilación que hayas realizado (debug o release) necesitarás unas dlls u otras, pero las dlls en modo debug no se pueden redistribuir.
Por lo tanto, tienes que asegurarte que tu aplicación esté compilada en modo Release, y seguir los pasos que comento en el post.
Y ojo!!!! Asegúrate de incluir en el directorio de tu aplicación las dlls de las librerías que estás utilizando (siempre que no sean DLLs COM. Si son DLLs COM, la cosa se complica un poco más...) Podría ser que en el equipo en el que vas a probar la aplicación no estén las librerías instaladas...
Para usar DLLs COM sin registrar, puedes echar un vistazo aquí (en inglés):
www.devx.com/.../1954
Dejo esta explicación para los que consultaron antes y los que consulten a continuación esta página. Como bien dijo otro lector deben asegurarse de que la configuración de la solución a generar sea en modo "release" para lo cual (en visual studio 2008) van a Generar-->Administrador de configuración y ahí en "Configuración de soluciones activas" eligen "Release" y luego Generan la solución y en la carpeta correspondiente de su proyecto (con nombre "Release" (no debug")) encontraran el ejecutable que pueden distribuir en otros equipos con los archivos que se encuentran en la carpeta muy bien indicada por otro lector con anticipación, o también pueden bajar e instalar (en la otra máquina -donde quieren ejecutar el ejecutable-) la versión redistribuíble del visual studio 2008 del sitio de Microsoft. Si bien también se puede hacer en modo debug, la forma correcta es la que les comento, ya que como muy bien se indicó, no se permite redistriuir los dll de la versión "debug" y el redistribuíble que se puede bajar del sitio de microsoft sólo sirve para la versión "release".
Espero les sirva.
Muchas gracias por la información. Me ha sido muy útil!
Gracias por este post!!
Bueno, aquí estamos, al final me he embarcado en esta aventura que supone todo un reto, y en parte un