Ver por etiquetas

Todas las etiquetas » tips (RSS)
  Os cuento una rápida que seguro os va a solucionar un montón de quebraderos de cabeza y que me ha traído loco un rato hasta que me he dado cuenta del pufo. Todo viene cuando estás usando el patrón MVVM y varías algún dato que se está mostrando en algún componente visual. Todos los tutoriales te dicen que heredes de ObservableCollection y que implementes el método NotifyPropertyChanged() . Y te ponen el típico ejemplo: public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged...
Esto es un “truco” que he encontrado de refilón y lo voy a anotar aquí para que no se me olvide y para goce y disfrute de quien me lea. La idea es utilizar el modelo documento/vista de QT para navegar a través del sistema de ficheros, pero solo a partir de una ruta en concreto. Si lo utilizamos conforme a la documentación, el árbol de ficheros se verá completo, con todas nuestras carpetas y ficheros. Nosotros queremos que la raíz del árbol sea una ruta cualquiera. QFileSystemModel *model= new QFileSystemModel;...
con no comments
Archivado en: ,,
Escenario. Quieres (o ya tienes) aplicaciones virtualizadas en el Dock. Es decir, tu tienes un programa dentro de una máquina virtual vmWare y quieres lanzarla desde el Dock sin más. Para ello, una vez que la máquina virtual está en modo Unity, lanzas la aplicación desde el menú de vmWare y te aparecerá el icono de la misma en el Dock. Ahora sólo tienes que, con el botón derecho del mismo, elegir “Opciones -> Mantener en el Dock”. La próxima vez que quieras lanzarla, con hacer clic sobre dicho...
con no comments
Archivado en: ,,
Os lo juro. Estoy hasta los putísimos cojones de Windows, de MAC y de la madre que los parió a todos. El primero por pensarse que todo le pertenece, incluyendo las particiones HFS+, y el segundo por pensar que todos los usuarios son tontos del culo. No tengo muchas ganas de escribir, así que voy a ser bastante escueto. Escenario: Windows/MAC con Boot Camp y arranque dual. Como Windows asigna las unidades como le sale de los cojones, entro en el Administrador de Discos y las cambio a los valores que...
Sin muchas ganas de escribir una nueva entrada, voy a poner algo interesante que corrige una de las cagadas de OS X Lion: la repetición de las teclas que llevan caracteres especiales. Como os comenté en la entrada anterior, Apple la había cagado a base de bien con el tema de la repetición de teclas. Supongo que para un usuario Ruso o Báltico, la cosa puede resultarle interesante, pero no para la mayoría del resto del mundo. Si la opción fuera configurable no habría problema: se cambia y ya está,...
Justo he empezado a leer The old new thing de Raymond Chen, que es un libro entresacado a partir de las entradas más interesantes del blog del autor . Y me está gustando tanto que lo estoy leyendo como si fuera una novela de aventuras, sección tras sección. En él hay un curioso capítulo que trata de las interioridades de la función de Win32 GetWindowText() que no he podido reprimirme en parafrasearlo aquí. Para aquel que no lo sepa, dicha función devuelve en uno de sus parámetros el título de la...
5 comment(s)
Archivado en: ,,
Sí, pese a lo que dijo sobre su MAC, al final se ha comprado un PC que sin ser lo último de lo último, tiene su cosa. El MAC está bien, pero le echa a faltar muchas cosas, muchos programas y otros temas, así que, al final, en lugar de comprarse un MAC PRO, se ha decidido por un clónico. Si os preguntáis qué le ha pasado con su ordenador viejo, no lo hagáis directamente a él, porque va a coger un cabreo de cojones y posiblemente os deje con la palabra en la boca… si no os suelta alguna fresca. Básicamente...
Si tenéis esta estupenda herramienta de Whole Tomato seguro que os puede pasar lo que a mí. En su WEB tienen bien explicado, y clarito, cómo instalar otros diccionarios aparte del inglés que viene de serie. Los diccionarios sirven para que el programa encuentre errores ortográficos en los comentarios y otras partes. Yo suelo escribirlo todo en inglés cuando pico código (en mi macarrónico, inigualable e increíblemente culto inglés...
con no comments
Archivado en: ,
A veces nos encontramos con que nuestro programa “chorrea” memoria, y hasta hace poco tiempo no había nada tan terrible para un programador como encontrar dónde se producía el problema, máxime cuando se trataba de aplicaciones con múltiples hilos. Hubo una época en la que incluso había herramientas de terceros y analizadores de código para encontrar este tipo de problemas. Pero recientemente (creo que a partir de la versión...
con no comments
Archivado en: ,,
Supongo que le habrá pasado a más de uno, que está haciendo cosas en el editor de diálogos de Visual C++ y de repente se le va la pinza y deja de funcionar como debe, a veces dando un error que no es un error. Esto normalmente se debe a que hay algo mal en el código fuente que impide al parser actuar debidamente. Quizás hemos añadido una entrada mal en el mapa de mensajes, o en el DDX o simplemente el fichero de recursos esté mal. Pero otras...
Seguro que no es la primera vez que te pasa que te dejan una serie de rutinas (generalmente en formato DLL) que reciben cadenas en formato ANSI y tu aplicación está escrita en Unicode, y cuando preguntas si tienen versión Unicode te responden que no y que no la van a tener… Y como no quiero perder mi empleo, voy a parar aquí. Pues bien, existe una forma muy sencilla de pasar cadenas entre ambos formatos sin tener que liarnos con las funciones de conversión...
4 comment(s)
Archivado en: ,,,
Hace poco expliqué cómo obtener el número de versión del propio ejecutable desde C++ Builder utilizando la VCL (su biblioteca de clases) y dejé como pendiente el obtenerla desde Win32 o MFC. Como lo he necesitado, he modificado el código y lo presento aquí: TCHAR appName[MAX_PATH]; GetModuleFileName(AfxGetApp()->m_hInstance,appName,MAX_PATH-1); DWORD handle; DWORD size = GetFileVersionInfoSize(appName, &handle); if(size!=0) { TCHAR *buffer = new TCHAR[size + 1]; GetFileVersionInfo(appName...
Bueno, como podéis ver, aunque me queden un par de entradas sobre el Kindle, el RFOG sigue en la brecha de sus cosas de C++ y demás zarandajas, que fue el origen de este Blog. El que haya escrito poco sobre mis temas últimamente se debe a que he tenido mucho trabajo y he estado enormemente ocupado... ¿Qué? ¿No te lo crees? Pues yo tampoco, para serte sincero. Esto de las ganas de escribir en el blog va y viene, y unas veces hay más y otras menos, y...
Esta es una tarea pendiente que llevaba bastante tiempo detrás de conseguir. Quizás lo que cuente aquí sea evidente para todos menos para mi, pero por si acaso -y para que no se me olvide-, voy a dejar constancia de ello. ¿Qué desarrollador moderno no tiene varias máquinas virtuales para hacer sus experimentos y pruebas? Yo al menos tengo una buena espuerta de ellas, y si bien antes usaba Virtual PC, que no es un mal producto ni de lejos, al carecer de soporte...
Bueno, realmente no lo hemos leído del todo , ya que nos quedan cien de las ochocientas páginas que componen este mamotreto, pero que si no pasa nada caerán esta noche de forma rápida, ya que son varios apéndices. ¿Por dónde empezar? Uf. Es un libro difícil de leer, no por la prosa, sino por el contenido, altamente –muy altamente- técnico. El autor parte de que ya sabes C++, pero no el C++ que puedas aprender en la escuela, sino...
A veces resulta curioso cómo algo tan sencillo como mapear una estructura de C en .NET se puede convertir en un algo muy cercano a una pesadilla dependiendo del lenguaje que hayamos elegido para realizarlo. Partamos de la siguiente estructura de C: typedef struct { BYTE byOut[4]; // Outputs [0..3] BYTE byAux; // Aux output } usbOutput; A simple vista es algo muy elemental: un array de cuatro bytes y uno más después. Esto en una máquina Intel en realidad termina ocupando 8 bytes, 4 para el primer...
Vamos a explicar cómo tomar un ejecutable (o cualquier otro fichero binario), insertarlo dentro de un ejecutable y posteriormente cómo recuperar ese ejecutable embebido, soltarlo a disco y ejecutarlo. El escenario típico es borrar el propio ejecutable que actúa como hospedante, pero seguro que a las mentes calenturientas de mis lectores se les ocurren más aplicaciones. El problema no existía en Windows 95 y siguientes: un programa podía borrar su propio ejecutable y terminar sin ningún problema ...
Ahora que están de moda los antipatrones, voy a explicar un patrón que es muy famoso pero que no me gusta absolutamente nada, no por el diseño del mismo, sino por los efectos laterales no deseados que genera. Por ello también voy a explicar otra forma de construirlo que me gusta más, aunque adolece de otras limitaciones. Singleton es un patrón que nos obliga a tener una sola instancia de una clase, es decir, globalmente sólo podremos disponer de un objeto de ese...
21 comment(s)
Archivado en: ,,,
Hará como una hora que he recibido de Amazon mis últimas adquisiciones, que son los seis libros situados en la parte inferior que se pueden contemplar en la foto que acompaña esta entrada... casi 200 euros en libros, sumados a otros doscientos y pico de varios pedidos anteriores... A los de la foto hay que añadir el "Reverse Engineering" sobre el que he comentado y otro sobre patrones, en los que creo poco, por lo menos tal y como se presentan habitualmente (quizás se deba a que en las...
Introducción Hay un tema que ha aparecido indirectamente en algunos mensajes del grupo de C# relativo al tema de Interop mediante atributos (que es el único que puede hacer C# y VB.NET), y que desde que estoy leyendo dicho grupo nadie ha advertido o ha tenido algún problema con él, o al menos yo no me he dado cuenta de ello. Cuando uno hace una llamada al API de Win32, muchas funciones devuelven un estado de error a través de un handle inválido o simplemente devolviendo FALSE . Es una consecuencia...
con no comments
Archivado en: ,,
Más artículos Página siguiente >