lunes, 24 de agosto de 2015

¿Qué son los Servicios de Windows?



Artículo para: Todo tipo de usuarios

A estas alturas de la película aún hay gente que no conoce qué es un Servicio de Windows. En el sistema operativo Linux se suelen llamar Demonios (Daemons). Un servicio de Windows es una aplicación (como las que ya conocéis normalmente, por ejemplo el Word), pero con la particularidad que su objetivo es dar servicio (valga la redundancia) a algún objetivo concreto y que directamente no tendrás visibilidad (trabajan en segundo plano).

A diferencia de las aplicaciones convencionales, los servicios de Windows no tienen interfaz gráfica. Si hiciera falta una interfaz gráfica adicional para su control o para su configuración se nos facilitaría, pero normalmente se manipularán desde las interfaces gráficas que nos provee Windows.

Hubo un tiempo en el que los servicios de Windows se creaban por doquier... cualquier aplicación patatera instalaba adicionalmente un servicio de Windows para permanecer actualizada (¡qué util! Mucho mejor que actualizarse al iniciar, ¡dónde va a parar!). Es por ello por lo que recomiendo el siguiente artículo para optimizar el arranque de tu Windows que escribí hace ya algún tiempo ¿Tu Windows funciona anormalmente lento?

Estas aplicaciones tienen funcionalidades diversas: desde espiar tus pulsaciones del teclado (keyloggers, que son ilegales), hasta mantener la cola de las impresoras en línea. Es muy conveniente revisar para qué sirven y hacer limpieza de ellas cuando sean prescindibles. Podrías ganar velocidad en tu ordernador considerablemente y no te llevará mucho tiempo.

Mi recomendación es una buena revisión de éstos, desactivando de aquellos que sospechemos. Si al desactivarlos comprobamos que se trata de algo necesario, siempre podemos volver a activarlos de nuevo.

Si tenéis cualquier duda, acepto comentarios e intentaré ayudaros...
Windows

domingo, 23 de agosto de 2015

Pooductive, ¡haz amigos cagando!


 Artículo para: Aquel que desee leerlo

PooductiveSí, sí, ya sé que suena a guarrada... y ¡de hecho lo es! Pero me ha hecho mucha gracia comprobar que en el mundo hay gente aún más loca que yo capaces de hacer algo tan carente de sentido como curioso. Gracias Paco, por descubrirme esta mier...

Damas y caballeros, bienvenidos a Pooductive, la nueva red social que te hará hacer amigos mientras usas el cuarto de baño.

Tras un intento fallido por financiarse en kickstarter, un par de estudiantes cafres han decidido hacer realidad este sueño de todo guarrete buscando financiación por otros medios. En su web te permiten donar dinero para su causa. Si bien es cierto que el cuarto de baño es el lugar dónde la gente más usa el móvil, principalmente por aburrimiento, no lo es menos que es una actividad que unirá a mucha gente a la hora de hacer sus necesidades.

Pooductive appHasta el nombre es curioso: Pooductive. Para los que no entienden inglés Poo es caca y ductive viene a querer decir "productivo" (del inglés productive), es decir, sería algo así como Caca Productiva en Español. Aquí tiene menos gracia porque se trata de un juego de palabras.

¿Cómo funciona? Si lo he entendido bien, estableces un radio de búsqueda a tu alrededor para que te filtre un número de usuarios (porque claro, tendrán muchos) y entonces te aparecerá en ese radio seleccionado los usuarios disponibles. Eliges al o a los que quieres y hablas con ellos. Tan simple, como absurdo.

Otra gran cagada de esta maravilla es que solo está disponible para iOS, vamos, que los usuarios de Android o Windows nos tendremos que fastidiar... ¡Esperemos que ésto cambie pronto!

Bueno, pues eso, que ahí os dejo el enlace para que lo disfrutéis! http://www.pooductive.com/
Frikadas

lunes, 10 de agosto de 2015

Trusty, el robot


 Artículo para: Aquel que desee leerlo



No sé muy bien por dónde empezar a redactar el presente artículo. Había pensado en realizar un artículo totalmente técnico, pero creo que no tiene mucho sentido, dado que lo que la gente quiere saber es qué es este curioso chisme.



Trusty es un proyecto que se me nos ha propuesto realizar en mi actual trabajo en Trust International B.V. Ha planteado un curioso reto para todo el equipo de trabajo de mi empresa, ya que se trata de algo bastante novedoso; muy puntero y algo que seguramente en España no se entienda muy bien dada nuestra particular forma de ver las cosas.

Se trata de un robot asistencial, si no me equivoco o bien el primero, o bien uno de los primeros en toda Europa. El cometido de este robot es el ayudar a los clientes de Media Markt en Rotterdam a localizar sus artículos por medio de una interfaz sencilla e intuitiva.

Trusty Robot
Aunque de aspecto más bien grimoso (emula una mujer muy poco estilizada), y con su metro y sesenta centímetros de alto; ha conseguido atraer la atención de los compradores holandeses. 

El robot en cuestión habla y entiende Inglés, un idioma que en los paises civilizados de la vieja Europa se utiliza con la misma fluidez que el idioma nativo (sí, sí, incluso las personas de avanzada edad). Además, dispone de una pantalla táctil que combina publicidad de Media Markt (videos e imágenes, es bastante interactivo) en Holandés. Dicha interfaz brinda a los usuarios una serie de opciones desde dónde localizar en la tienda ciertas gamas de productos hasta incluso hacerse una foto para ver cómo quedaría su cara en la cara del propio robot. Esta última función es una chorrada por sí misma, pero no nos olvidemos del efecto reclamo que este tipo de cosas hacen a los clientes.

Además de dar la bienvenida a todos y cada uno de los clientes del centro comercial, Trusty se encarga incluso de llevarlos de "la mano" hasta el producto en cuestión (práctica que hoy en día se ha perdido un poco en los comercios españoles, todo hay que decirlo). Lo hace sin descanso desde la apertura hasta el cierre del centro, momento en que se ponen a recargar sus baterías.

De cara a las personas que trabajan en estos centros, decirles que no se trata ni mucho menos de un conato de sustituto para ellos: estamos aún muy lejos de llegar al día en que una creación de este tipo pueda sustituirlos en todas sus funciones... pero insisto en el enfoque comercial de este tipo de novedades tecnológicas, el efecto llamada que produce en los clientes ha sido muy sonado y hace cada día ir más gente a Media Markt solo por el hecho de verlo.



Como desarrollador experimentado en temas de seguridad, en este proyecto me ha correspondido generar parte del sistema software de seguridad que evitaría que los usuarios malintencionados "metieran la mano" en partes del sistema operativo de nuestro querido Trusty. Dado que Trusty está expuesto al público en general, la posibilidad que alguien tratase de realizar operativas no deseadas dentro de el era muy alta, por lo que había que bloquear la inmensa mayoría de las funciones del mismo, pero permitiendo por medio de una aplicación el desbloqueo de las mismas.

Como os he comentado al principio, no voy a entrar mucho en detalles técnicos (ni debo, ni creo que proceda), pero podéis ver que usa Kinect para reconocimiento de personas y caras.

Ha sido todo un reto, del cual me siento particularmente orgulloso, y agradezco tanto a Trust, como a su propietario Mr. Perridon y por supuesto a mi jefa más directa, Cynthia, la confianza depositada en mi para la realización de este proyecto tan particular que sin duda ha marcado un antes y un después en mi carrera profesional.


Así mismo, aprovecho para dar la enhorabuena a mis todos mis compañeros: a Julio y a Peter por su obra de arte en la interfaz gráfica de Trusty, a Eduardo y a Maarten por su colaboración en temas de seguridad y manejo además de una mención especial a Cynthia y Wouter por dar la cara en el proyecto, aportando ideas y haciéndolo realidad.


Este proyecto ha supuesto a mi empresa el hecho de ser pioneros, por lo menos en Holanda (y como he dicho, no sé si en toda Europa), de este tipo de tecnologías; hasta el punto de salir en las noticias nacionales Holandesas: http://www.rtlnieuws.nl/nieuws/binnenland/robot-als-winkelmedewerker-rotterdam-0 


La web oficial de este maravilloso engendro es: http://www.trustyrobot.nl por si queréis ampliar información. Por supuesto, también podéis comentar en el blog y responderé a vuestras preguntas en medida que me sea posible.
Mundo TI

miércoles, 6 de mayo de 2015

La disparidad del mercado laboral en TI

Artículo para: Aquel que desee leerlo

No cabe duda alguna que el mercado laboral en los últimos años ha caído en picado y las oportunidades laborales que antes había se desvanecen como el humo al aire libre. Llevo casi 10 años en ésto y es terrible hacia dónde pretenden que vayamos.

Dentro de un entorno en un país como España, con una galopante crisis económica de la cual nuestros estimados gobernantes o aspirantes a serlo nos quieren o querrán ocultar (sin éxito alguno, la gente apenas tiene para comer) nos encontramos con un mercado laboral totalmente bizarro, como es el mío: el tecnológico.

Aún recuerdo a mis profesores del instituto diciéndome: -¿Quieres estudiar informática? ¡Eso tiene mucho futuro! - ¡Jeje! Ahora preferiría ser funcionario como ellos, no me cabe la menor duda...

Ya que os he puesto en contexto os voy a comentar algunas de mis experiencias (recientes o pasadas) en este mercado que de alguna manera me han dejado marcado seriamente. No voy a dar nombres en este artículo (ni personas, ni empresas) porque no procede. Lo pasado, pasado está y lo mismo da, pero pretendo remover conciencias.

Tras estar mega-quemado en un puesto de trabajo donde mi jefe me hacía trabajar un promedio de 12 horas diarias (noches incluídas y fines de semana), sin ningún tipo de criterio ni sentido; facturando una burrada a un cliente más que bueno, decido marchar en busca de un puesto en el cual pueda ver a mi hijo (¡qué pretensión la mía!). ¡Ah!, y pagando parte del sueldo digamos que... de mala manera (a la española). No me fui por dinero, sino por poder ver a mi hijo (lo de este país es muy triste).

Ni que decir tiene que, mi experiencia más nefasta y negativa fue el estar tres meses en paro manteniendo a una familia (pagando alquiler, suministros y otros menesteres). Fue curioso aquel momento, porque fue el punto de partida para ver el baile de ofertas increíblemente dispar que he tenido. Estuve en paro no porque hiciera mal mi trabajo, no; acabé allí porque alguien por encima mío la cagó pero bien y al final las familias de unas 200 personas, quizá más, se fueron a la puta calle con un proyecto de varios (muchos) millones de euros. 


De pronto, me vuelvo a ver inmerso en el fantástico mundo de la consultoría IT donde, si bien es cierto que mal pagado del todo no estaba... me encuentro con cosas como: de nuevo horarios infernales sin ningún criterio ni razón. Allí aprendí que la culpa siempre es del trabajador, nunca de las pésimas planificaciones realizadas por personas que llevan 20 años sin tirar una línea de código y siempre basadas en los ardientes deseos del cliente por echar a la consultora, porque somos muy caros. 

Otra de las cosas que más me queman de la consultoría es el nulo criterio de contratación (gente con un año de experiencia, vendidos al cliente como expertos en algo... ¿en qué? con mis casi diez años no me considero ni de lejos experto en casi nada) y en las que basan el sueldo a la necesidad del momento, quemando al personal que allí está involucrado. Yo he vivido la situación de tener gente a mi cargo ganando más que yo. No me enfado con ellos, me impacta el hecho que teniendo el triple de responsabilidad, cobre yo menos porque yo llegué antes en una situación de menor necesidad para la empresa que me contrataba.

Aún así, lo peor de la consultoría no es nada de lo dicho, es que volví a ver a mi hijo en foto; fue el factor determinante para abandonar aquel barco también.

Tiempo ha pasado ya de todo aquello y parece un recuerdo lejano, pero sigo con la escopeta cargada porque a diario y dada mi amplia experiencia en la plataforma de Microsoft .NET recibo ofertas de trabajo que pretenden sacarme de mi actual empresa holandesa, donde estoy viviendo prácticamente un sueño. Sin entrar mucho en detalles, mi sueldo está acorde a mi experiencia, aparco el coche en una plaza propia en el mismo edificio donde curro, tengo un horario de trabajo europeo que me permite disfrutar de mi familia... suena idílico, ¿verdad? Pues es cierto como la vida misma.

Donde quiero llegar con todo ésto es a esta misma tarde. Una señorita de recursos humanos muy maja me ha hecho una oferta que no puedo rechazar... ¡Por los cojones! No le culpo ni mucho menos a ella, será lo que le manden y probablemente de las tecnologías que empleo tendrá menos idea que yo de física cuántica (si es que se escribe así). Pero la cuestión es que para un perfil como el mío (podéis verlo en LinkedIn, es público) me proponen la friolera de 22.000 € brutos anuales. Para los profanos de mi mundo esto vienen siendo quizá con el nuevo IRPF unos 1.000€ al mes, lo cual está fenomenal cuando reponía bolígrafos o cuando cargaba cajas en camiones (no quiero ofender, tenía 17 años y ninguna responsabilidad, al igual que ningún estudio); incluso recuerdo fue mi primer sueldo currando de ésto.

Habrá quién piense que soy un gilipoyas o un prepotentente por decir esto debido a la que está cayendo fuera: pero han de tener muy en cuenta que mi profesión está muy valorada internacionalmente y que cualquier otro país viene pagando un promedio de unas 4 veces lo que me ofertaron, incluso para gente con menos experiencia que yo. 

¿El resultado? La mayoría de la gente realmente buena que conozco en ésto emigra y aquí quedan dos perfiles: los totalmente inexpertos y a los que no nos queda más remedio por circunstancias personales. La lectura de todo esto es: - Os estáis cargando el país, lo váis a lamentar -.

Sinceramente, no es la primera oferta estúpida que recibo por aquello de -"A ver si cuela..."-, pero lamentándolo mucho por la gente que aquí quedamos intentando malvivir de esta profesión yo ya me he puesto serio y a estas ofertas gilipoyas contesto con la realidad (sin faltar al respeto, pero siendo totalmente sincero), para que espabilen, porque de verdad, dan auténtica pena y van a conseguir que la gente siga emigrando hasta que no quede nadie.

Dado que no tenemos un sindicato, ni un colegio que nos proteja, os recomiendo a los que aquí estáis informaros de lo que realmente valéis para que de nuevo nuestros sueldos vuelvan al sitio de donde nunca tuvieron que moverse.

Es el momento de hacernos notar y que esta profesión se valore como es debido; tenemos el control de prácticamente el mundo entero: no debemos olvidarlo.

Por favor, compartid vuestras experiencias en los comentarios, publicaré todo lo que tenga sentido, incluso si contradice mi artículo o mis vivencias.
Mundo TI

viernes, 1 de mayo de 2015

Windows 8 (u 8.1) y el problema del disco duro al 100%

Artículo para: Todo tipo de usuarios

He vuelto a instalar mi flamante Windows 8.1 en mi portátil (un pedazo de i7 con 12 GB de RAM) y llevo un par de días usándolo sorprendido porque, abriendo el administrador de tareas cuando el PC se supone que no hace nada, me encuentro que el disco duro está permanentemente al 100%.



Tras una investigación por internet y aplicar diversos parches, he encontrado el "santo grial" de las soluciones (la misma en diversos sitios) y, como podéis ver en la imágen superior, mi administrador de tareas está muy tranquilito.

Solución, al tema:

Hacemos clic sobre el Menú Inicio y escribimos "Ver servicios locales", para abrir la ventana que gestiona los servicios de Windows.:


Nos aparecerá la siguiente ventana de servicios locales:

Ahora buscamos los dos servicios que están dando guerra, el primero "Superfetch":


Abriremos el administrador de tareas y comprobaremos que, efectivamente, nuestro disco duro ya no está sufriendo el azote de Windows.

Si queremos detenerlo permanentemente, tendremos que abrir las "Propiedades":

Selecionaremos el Tipo de Inicio "Manual" y haremos clic en "Manual".

Con esto, ya tenemos todo hecho. ¡Suerte!





Windows

lunes, 13 de abril de 2015

Factores para que un proyecto software se retrase o fracase

Artículo para: Project Managers y aquel que pueda interesar

A lo largo y ancho de mi carrera profesional he estado ya por algunas empresas con diversos distintos proyectos. Algunos han sido un éxito brutal; otros un fracaso estrepitoso.

Este es un artículo puramente de opinión y como es mi opinión es totalmente discutible. Es por ello que someto a debate (podéis añadir vuestros comentarios, los publicaré).

Es muy duro afirmar ésto, pero lo cierto es que muchos proyectos software fracasan incluso disponiendo de los medios, las personas y el tiempo necesario para realizarlos. Todos estos factores influyen, pero no son los únicos.

En mi opinión las siguientes han sido las razones principales por la que algunos de los proyectos en los que he estado han caído en picado:


  • Empezar con retraso: casi en el 100% de los proyectos en los que he trabajado hemos empezado con retraso, incluso habiendo entrado desde el minuto cero de los mismos. Es decir, que ya cuando entras, alguien asume que llegamos tarde, pone metas imposibles de cumplir y el proyecto va en picado. La moral se derrumba y la gente que empezó al principio empieza a abandonar el barco hasta que no queda nadie del equipo original.


  • Exceso de tiempo: en contraposición al anterior punto (y aunque esto no es muy habitual), me he encontrado un caso particular de un proyecto en el que el tiempo no era problema... todo el mundo investigaba, se hacía I+D, se documentaba todo perfectamente, no había metas claras, ... Utópico, ¿verdad? Pues no lo fue. Un día, la mano que nos daba a todos de comer (a unos mejor que a otros, claro) decidió ver el estado del proyecto y... ¡BAM! A tomar por c**o más de 100 personas con sus correspondientes familias.
  • Falta de medios: he visto ocasiones en las que incluso teniendo un "dream team" de desarrolladores, debido a una mediocre gestión económica, ese equipo se ve obligado a trabajar con máquinas con 10 años de antigüedad. No me malinterpretéis pero, un gran desarrollador con un core duo y 4 GB de RAM (ah, y un Windows con 32 bits; es decir, con 2,7 GB reales) usando sistemas modernos como WPF... es un equipo que para una secretaria que usa Outlook y Chrome es fantástico pero... Esto ralentiza los proyectos, obliga a la gente a trabajar 12 horas al día porque la máquina funciona más lento que su cerebro y finalmente todo llega con retraso.
  • Equipo mediocre: hoy en IT está a la orden del día. Se contrata un tipo que curra como un asno y una cuadrilla de calientasillas. Resultado: el asno se pira normalmente por una oferta mejor y los proyectos caen debido a la mediocridad de la caterva que ahí queda. Real como la vida misma.
  • Dirección mediocre: la dirección de estos proyectos en ocasiones viene de gente que lleva sin picar dos líneas de código en los últimos 30 años (en algunos casos ni ésto). No son mala gente ni tengo nada personal en contra de ellos pero esto significa que, ni reconocen las nuevas técnicas de programación, ni reconocen las nuevas tecnologías, ni les interesa reconocerlas. Resultado: escuchas chorradas mayúsculas y finalmente te vas cansado porque en lugar de fluir la comunicación y mejorar las necesidades del cliente, tu propio jefe frena tu desarrollo y el de tu empresa... te acabas yendo aburrido.
  • Dirección mediocre II: esta la llamo "El jefe tirano". Este es el caso en el que el jefe considera que su puesto consiste en dar latigazos constantes. La labor de un "jefe" (llamémoslo Project Manager, Director de Proyectos, o como queramos) no consiste en amargar a la gente debido a sus problemas personales. En mi modesta opinión, un "jefe" debe escuchar al cliente y a los empleados y conseguir metas dentro de un proyecto. Si una empresa se basa en que los trabajadores pasen jornadas de 24 horas en la oficina (por falta de medios, de dirección y de tiempo), el proyecto caerá a plomo.
  • Metas imposibles: estas provienen de dos fuentes: los empleados y los Project Managers. Son igual de malas ambas, porque crean expectativas o bien en el Project Manager (las que vienen de los empleados), o bien en el cliente (de ambos intervinientes); totalmente falsas que decepcionarán enormemente a aquellos que las reciben. Aunque en ocasiones sea lo que las personas quieren oir, evitad al máximo crearlas para que el proyecto no falle.






En conclusión: esta es una pequeña lista de las cosas que yo he visto han hecho fallar diversos proyectos (o retrasarlos indebidamente), pero hay muchos más. Espero vuestra réplica y espero que nadie se ofenda...
Mundo TI

martes, 18 de noviembre de 2014

Model View - View Model (MVVM) una explicación sencilla Parte I

Artículo para: Programadores de C# de cualquier nivel

Llevo algún tiempo ya en esto del WPF (unos 4 años) y veo cada vez más malos ejemplos de cómo se programa en esta maravillosa tecnología de Microsoft, que nos lleva a otro nivel en cuanto a interfaces gráficas se refiere.

En lo que a este tema se refiere, Microsoft da unas pautas MUY CLARAS de cómo operar y cómo realizar los desarrollos en esta tecnología, pero parece ser que la gente que viene de Windows Forms no desea adaptarse. Es por ello por lo que escribo este artículo, en pro de ayudar a quien quiera escucharme y siempre buscando un consenso en cuanto a desarrollo de aplicaciones de escritorio y aunque el futuro de Silverlight es muy oscuro, espero que aquellos que programéis aún en esta plataforma os sea también de ayuda.

Este artículo está dividido en 5 partes, porque el modelo MVVM no es trivial y bien requiere de un poco de tiempo para digerirlo correctamente. Si vienes de Windows Forms y estás pensando que puedes hacer lo que siempre has hecho (trabajar por eventos), estás en lo cierto, pero la estás cagando considerablemente. Si haces una aplicación WPF por eventos que tenga más de dos vistas, demuestras que no sabes del tema demasiado; tómate un tiempo para comprender y para ponerte al día, que de verdad, no cuesta nada.

El axioma para todo esto: LOS EVENTOS SON MALOS, no los uses como siempre lo has hecho. Esta tecnología no está pensada para el click de un botón o para el text_changed de un cuadro de texto, cambia tu mentalidad y empieza a pensar un poco más allá.

Y ahora el "quid" de la cuestión: ¿Cómo funciona ésto? La tecnología Windows Presentation Foundation de Microsoft tiene un "modus operandi" muy curioso, que nos permitirá explotar al máximo la capacidad de nuestras tarjetas gráficas modernas. No siendo aplicaciones de tipo videojuegos, las aplicaciones WPF pueden ser tan preciosas y tan bien diseñadas que nos sintamos como jugando con ellas; como programadores este tiene que ser nuestro objetivo final: el usuario se ha de sentir MUY cómodo usando nuestras herramientas de software.

El patrón MVVM consiste en unas buenas prácticas que yo, como experimentado programador de esta tecnología definiría de la siguiente manera (aunque como todo, es discutible):

  • Separar la vista de la funcionalidad que da soporte a la misma (a esto lo llamamos View)
  • Crear una capa que sea la interlocutora entre el negocio y la vista (que se llama View Model)
  • Por último, hacer una capa de negocio que NO TENGA NADA QUE VER con la vista (lo has adivinado, el Model).

MVVM conceptualmente
Enlaces prohibidos: desde el Model está TERMINANTEMENTE PROHIBIDO conectar con la View.

Entonces, ¿Cómo se comunican las distintas entidades en este modelo? Es muy sencillo:

  • El usuario comunica directamente SOLO con la View.
  • La View comunica directamente SOLO con el View Model.
  • El View Model hace de interlocutor entre la View y el Model.
Para ello, desde Visual Studio crearemos una solución en blanco y haremos lo siguiente:
  • Crearemos una nueva solución en blanco en Visual Studio:

  • Crearemos un nuevo proyecto de WPF, el cual será la View.



  • Crearemos un nuevo proyecto de Librería de Clases, el cual será el View Model.



  • Crearemos uno o más proyectos (normalmente son varios), de tipo Librería de Clases, los cuales en su conjunto crearán el Model.



Después de toda la operativa, nos debería quedar de la siguiente manera el árbol de proyectos:


¿Cómo relacionarlos?

  • El proyecto View referenciará al View Model. Nunca tendrá referencias al Model.
  • El proyecto View Model referenciará a uno o varios proyectos del Model. Nunca tendrá referencias al View (o tendríamos el problema de la referencia circular).
  • Los proyectos del Model NUNCA referenciarán ni a la View, ni al View Model.

Con las relaciones definidas, la comunicación solo se produce en un solo sentido:
Sentido de la comunicación por referencias a proyectos
Si bien esta comunicación es muy buena, no es suficiente porque necesitamos mecanismos para poder informar al resto de componentes en el otro sentido. En un próximo artículo os explicaré los eventos personalizados y un sencillo sistema gestor de Weak Events.

Pero antes de abordar temas más complejos, en el siguiente artículo os explicaré los XAML's y los bindings, que es algo vital en todo este asunto.

Espero que os haya gustado esta pequeña introducción y también espero sinceramente vuestros comentarios, que serán bienvenidos y de los cuales se aplicarán las correcciones que considere oportunas.


C# y Programación

miércoles, 5 de noviembre de 2014

La importancia de NO reinventar la rueda... Reto de programación #2

Artículo para: Programadores de C# de cualquier nivel




Hace unos días me encontré con un código muy similar al que arriba podéis ver... Supongo que sería por el agotamiento del que últimamente sufro, o porque no esperaba semejante maquiavélica creación, pero el hecho es que tardé unos segundos (de hecho bastantes) en entender qué demonios hacía esto.

Tras un concienzudo análisis deduje que el objetivo final que perseguía su creador no era más que hacer que un objeto DateTime que provenía de la fecha actual traída con el utilísimo DateTime.Now se convirtiera en un string para pintarlo en pantalla.

No entro a debatir de la calidad profesional de la persona que inventó semejante monstruosidad, no me interesa quejarme de gratis máxime teniendo en cuenta que TODOS (yo el primero) la cagamos alguna vez en esta profesión; pero lo que sí quiero decir es que si navegamos 3 segundos por internet nos damos cuenta que esta no es ni de lejos la manera más óptima. 

Mis razones, aunque habrá millones más son las siguientes:
  1. Cada llamada a DateTime.Now tiene un sobrecoste totalmente inútil y absurdo, además, de la primera llamada a la última aunque sea pequeña, habrá una diferencia horaria por motivos obvios (en cada llamada la foto es diferente aunque difiera en milisegundos, solo hay que conocer la propiedad Now).
  2. El operador de concatenación ("+") es brutalmente lento y desaconsejable para una concatenación tan extensa, para eso existe StringBuilder (uno de los consejos del curso oficial de Microsoft que recientemente he hecho).
  3. Este código no es para nada legible. Insisto, mi experiencia de más de 9 años no me ha permitido entenderlo hasta un análisis concienzudo, así que imagino un chavalejo que se encuentre por primera vez luchando con un dragón como éste. Nuestro código ha de ser lo más entendible posible.


La mejor manera es la siguiente sin duda, aunque muchos ya habréis llegado a ella hace un buen rato:


Nótese que ambas hacen EXACTAMENTE LO MISMO, pero la segunda es infinitamente más rápida que la primera. Esto significa que en una aplicación de alto rendimiento, si no tenemos en cuenta cosas tan básicas como ésta, es muy posible que los tiempos de respuesta sean penalizados terriblemente.

Por eso insisto, no reinventemos la rueda que no es necesario. El principio del programador vago, que explicaré en otro artículo posterior, tiene que ser lo que rija nuestro día a día... si hacemos "ciencia" o más bien, "brujería" como ésta lo más probable es que alguien pase con la excavadora y elimine nuestro código.

Quisiera comentarios y otras vivencias similares vuestras...

C# y Programación

miércoles, 28 de mayo de 2014

Soporte póstumo para Windows XP

Artículo para: Todo tipo de usuarios


Windows XP ha pasado a la historia de los sistemas operativos como, quizá, el mejor aceptado por todo el mundo. Su sencillez, pulcritud, y buen funcionamiento con respecto a sus predecesores (todos recordamos Millenium Edition con asco...) hicieron de él el sistema operativo para uso oficial y doméstico más extendido.

Un reciente asunto que ha hecho sangrar a sus usuarios domésticos es que Microsoft anunció oficialmente el pasado 8 de Abril que finalizaba el soporte para el sistema operativo, es decir, que a partir de esa fecha los usuarios de casa que usaran este sistema operativo se quedarían con el "culo al aire". La decisión es más que entendible: vio la luz el 25 de octubre de 2001, han pasado 13 años y Microsoft ha dado un arduo soporte del mismo; era hora de que la gente se actualizase...

Las empresas continuarán recibiendo soporte (si lo pagan), y existe una versión de Windows XP que continuará recibiendo soporte y cuyas actualizaciones presumiblemente serán de compatibles con el resto de versiones. Como siempre, hay alguien que ha descubierto un truco para continuar recibiendo soporte, la fuente de mi descubrimiento es una web a la que soy asiduo: NeoTeo (artículo del truco).

Basándome en el conocimiento de la misma, aquí os podéis descargar un fichero .reg que os servirá para actualizar ese valor del registro y poder seguir actualizando Windows XP sin necesidad de conocimientos avanzados: Windows XP ampliador de período de soporte

Como siempre, antes de empezar hay que tener en cuenta:
  • La solución es totalmente gratis y no puedes ni pagar ni cobrar por ella
  • Puedes ponerla en cualquier web siempre que no olvides poner una reseña a este blog y al post y no cambies el contenido del fichero reg que hay en mi web
  • Lo usas BAJO TU PROPIA RESPONSABILIDAD 
  • Me eximo de toda responsabilidad de cualquier problema que puedas tener: ni virus que te hayan adjuntado en los ejecutables, ni errores de la propia aplicación, ni errores humanos utilizándola: NADA!
  • Cabe la posibilidad que Microsoft corte este asunto de algún modo, o bien que alguna de las actualizaciones dañe tu PC: en ningún caso soy responsable de lo que suceda.
Si no estás de acuerdo con lo dicho antes, no la bajes ni la utilices. Soy claro: no es mi problema. Te hago un regalo que me cuesta esfuerzo y trabajo; y te lo entrego "AS IS" (como está). Por supuesto, siempre trataré que la aplicación esté libre de fallos, pero como todos sabemos la programación tiene fallos históricos que han hecho millones de dólares en daños a grandes compañías; así que es evidente que una aplicación gratuita podrá tener fallos (es más que seguro). Si detectas fallos y quieres reportarlos por favor, comenta.

Para utilizarlo basta con que lo descargues a tu PC y hagas doble clic en el fichero. Te preguntará si quieres añadir al registro las entradas, le dices que sí y reinicias el PC. Supuestamente con eso sería suficiente para que empezaras a recibir de nuevo las actualizaciones automáticas.

!Espero que os sea de utilidad!
Windows

 

Webs amigas:

  • Copyright © Los vericuetos .NET 2015
    Distributed By My Blogger Themes | Designed By Templateism