Category ArchiveInformática

excel_2013 buscarv buscarh

Excel: Mostrar hojas que no existen

excel 2013 buscarv buscarh mostrar ocultarEn Excel podemos ocultar o mostrar hojas de un libro haciendo clic con el botón secundario sobre la etiqueta de la hoja y seleccionando Ocultar o Mostrar.

También desde la ficha Inicio, en el grupo Celdas, clic en Formato. Bajo Visibilidad, clic en Ocultar y mostrar. y después en Ocultar o mostrar hoja.

Mostrar todas las hojas del Excel

Para mostrar todas las hojas de excel, incluso las que no existen es necesario ejecutar una función de VBA.

Pulsamos Alt+F11 y escribimos el siguiente código:

 

A la opción de Visible se le puede asignar los siguientes valores:

xlSheetVisible es equivalente a True

xlSheetHidden es equivalente a False

xlSheetVeryHidden para impedir mostrar la hoja con el comando Mostrar.

Si se ocultó con la última opción (xlSheetVeryHidden ) solamente se puede volver a mostrar mediante VBA.

La propiedad xlSheetHidden oculta la hoja, pero cualquier usuario puede hacerla visible mediante la interfaz de usuario de Excel.

Sin embargo, si utiliza la propiedad xlSheetVeryHidden, el usuario no puede hacer que la hoja quede visible mediante la interfaz de usuario de Excel.

mapa_calor_el_debate_decisivo

Twitter y #7dElDebateDecisivo

Twitter se convirtió en una gran herramienta para medir tendencias. No siempre dice la verdad, pero por lo menos será un indicador de la actividad o como afecta un determinado tema a la sociedad (que usa Twitter).

Ayer se celebró el gran sonado #7dElDebateDecisivo que tuvo gran actividad en Twitter, tanto comentarios en contra, como a favor como jocosos.

Yo hice un tuit en #7dElDebateDecisivo. Míralo gracias a @cartodb Clic para tuitear

El grupo Atresmedia hace historia reuniendo a más de 9 millones de espectadores en Antena 3 y laSexta (48.2%) para seguir el debate.

Es cierto que sobre resultados puede dar resultados sesgados en poblaciones de personas o grupos de personas que usan o no twitter. Por ejemplo, si es un tema que afecte a personas mayores, éstas no usan twitter, por lo que su notoriedad en esta red social será escasa. En su lugar, en lo periódicos escritos tendrá más presencia.

De los 4 partidos políticos (por orden alfabético: Ciudadanos, Podemos, PP y PSOE), unos intentan fomentar ésta red social, otros la tienen más interiorizada y otros pasan de ella. Pero como visión de actividad está bien.

Gracias a CartoDB, empresa española, podemos representar la actividad en un mapa de calor de éste trending topic de ayer:

Totalizando los tuits:

Para los más avanzados sería el ejercicio de estudiar la actividad de los tuits en cada momento de cada intervención.

 

 

free-the-mallocs c

PInvokeStackImbalance en Pruebas de Unidad (Unit Test)

free-the-mallocs cA veces es necesario realizar un desarrollo de una librería en .NET  que realiza llamadas a librerías de C/C++,  porque vienen de funcionalidades más antiguas o simplemente porque en C/C++ corre más en las que se necesita hacer cálculo intensivo.

Si es así, al realizar las pruebas de unidad (unit test), te puede aparecer el problema PInvokeStackImbalance:

Una llamada a la función PInvoke ‘MiDll!<Module>::miFuncionC’ impidió la correspondencia de la pila. Es posible que la razón sea que la firma PInvoke administrada no coincida con la firma de destino no administrada. Compruebe que la convención y los parámetros de llamada de la firma PInvoke coinciden con la firma no administrada de destino.

Lo que viene a significar PInvokeStackImbalance es que la firma de la función a la que se llama no es la esperada. En mi caso estaba seguro que la firma de la función era correcta puesto que en el uso de la función, fuera de las pruebas de unidad, funcionaba perfectamente.

Por lo que el problema es como .NET llama a las funciones de código nativo. Desde .NET tenemos estos distintos tipos de convenios de llamadas a través del enumerado CallingConvention:

Members

Member name Description
Cdecl The caller cleans the stack. This enables calling functions with varargs, which makes it appropriate to use for methods that accept a variable number of parameters, such as Printf.
FastCall This calling convention is not supported.
StdCall The callee cleans the stack. This is the default convention for calling unmanaged functions with platform invoke.
ThisCall The first parameter is the this pointer and is stored in register ECX. Other parameters are pushed on the stack. This calling convention is used to call methods on classes exported from an unmanaged DLL.
Winapi Supported by the .NET Compact Framework. This member is not actually a calling convention, but instead uses the default platform calling convention. For example, on Windows the default is StdCall and on Windows CE .NET it is Cdecl.

Más info: https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.callingconvention%28v=vs.71%29.aspx

.NET por defecto usa  StdCall, pero mi librería usa Cdecl.

Evitar PInvokeStackImbalance: Definir convenios de llamadas a funciones

Para especificar el convenido de llamada usaremos los atributos de DllImport.

Si en un inicio tenemos definida nuestra función de esta manera:

[DllImport(“MiDll”, CharSet=CharSet::Ansi)]
extern “C” void *MiFuncionC(int id);

pasamos a especificar el convenio de llamada de esta otra manera:

    [DllImport(“MiDll”, CharSet=CharSet::Ansi,CallingConvention=CallingConvention::Cdecl)]
extern “C” void *MiFuncionC(int id);

De esta manera en las pruebas de unidad se fuerza a usar el convenio Cdecl evitando la excepción PInvokeStackImbalance.

No perder la sesión remota de Linux

xpra-logo-gnuAnteriormente ya hemos aprendido a conectarnos a nuestro servidor Linux con éste post.

Si eres usuario habitual de estas herramientas, cuando nos conectamos a una sesión remota a Linux tenemos el problema que en muchas ocasiones tenemos que desconectar la conexión cuando estamos ejecutando un comando que aun no terminó. Habitualmente el cierre de la conexión mata el proceso que estamos ejecutando, teniendo que empezar de nuevo. Esto es más problemático cuando la conexión al servidor es mucho más inestable (WiFi o conexión móvil).

Con #screen y #xpra podemos mantener la conexión remota siempre activa Clic para tuitear

Tanto si nos conectamos en modo línea de comandos como si nos conectamos a las XWindows, existe la posibilidad de mantenerlas abiertas para futuras conexiones.

No perder la sesión remota de línea de comandos

screen es un gestor de sesiones de consola, que permite lanzar una sesión y recuperarla más adelante, si la conexión se corta o no queremos mantener el equipo conectado y encendido permanentemente.

Su uso es muy sencillo, basta con ejecutar este comando, con lo que se abrirá la sesión existente de haberla, o en caso contrario se creará una nueva:

screen -x -R

Una vez dentro de la sesión, puede controlarse con los siguientes atajos de teclado:

  • Control + A + D : Separarse sin cerrar la sesión (se podrá recuperar más adelante).
  • Control + D : Cerrar la sesión definitivamente.

Esto permite iniciar una sesión en un equipo, conectarse desde otro y recuperarla (interactuando incluso desde ambos equipos al mismo tiempo). O bien cerrar la conexión y recuperar la sesión más tarde.

El problema aparece cuando una aplicación utiliza ventanas gráficas, ya que, aunque se utilice el X11 forwarding combinado con screen, no es posible recuperar las ventanas más adelante tan solo usando screen.

No perder la sesión remota de XWindows remota

xpra puede entenderse como un análogo de screen para ventanas. Es un servidor de X11 que permite conectarse a él desde diferentes lugares (eso sí, no al mismo tiempo) y así recuperar las ventanas de las aplicaciones ejecutándose en remoto.

Si la aplicación es lanzada desde la propia sesión SSH, Xpra no impide que la aplicación se cierre al cortar la conexión SSH, por lo que lo habitual es combinar el uso de Xpra y screen:

xpra start :100

DISPLAY=:100

screen -x -R

A partir de entonces, las aplicaciones lanzadas dentro de la sesión de screen se redirigirán al servidor Xpra, y podrán ser recuperadas en cualquier momento. Para hacerlo dentro de la sesión de screen, se debe especificar el display correcto.

firefox & DISPLAY=:100

xpra attach :100

No es necesario conectarse por SSH previamente para recuperar una ventana, ya que Xpra puede hacerlo directamente con el siguiente comando:

xpra attach ssh:usuario@equipo:100

En la página de manual de Xpra hay mucha más información interesante, ya que permite hacer muchas más cosas.

Twitter cumple 7 años

Twittear ¿cuándo es mejor?

Twitter cumple 7 añosMuchas veces tenemos la posibilidad de escoger la hora de publicar de un tuit para conseguir un mayor impacto o para que sea más viral.

Buffer publicó un estudio de que horas son las mejores para ser más popular y que horas son mejores para que tengan más interaciones.

Twittear tuits populares

Aunque el estudio es a nivel mundial el siguiente gráfico muestra que la mejor hora para twittear tuits populares es de 16.00 a 17.00 a nivel de Europa:

horario twittear

Twittear tuits con interacciones

El siguiente gráfico muestra que la mejor hora para twittear tuits con más intereacciones a nivel mundial: Best Times to Tweet for Engagement

 

XWindows de Linux desde MacOX

x11Veremos como desde nuestro mac nos podemos conectar a las XWindows de Linux a través de SSH.

El Sistema de Ventanas X (en inglés, X Window System) es un software que fue desarrollado a mediados de los años 1980 en el MIT para dotar de una interfaz gráfica a los sistemas Unix. Este protocolo permite la interacción gráfica en red entre un usuario y una o más computadoras haciendo transparente la red para éste. Generalmente se refiere a la versión 11 de este protocolo, X11, el que está en uso actualmente. X es el encargado de mostrar la información gráfica de forma totalmente independiente del sistema operativo.

SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos ejecutando un Servidor X (en sistemas Unix y Windows).

Configuración de XWindows en Linux

Para permitir la ejecución de las XWindows de nuestro Linux deberemos editar los ficheros:

  • /etc/ssh/ssh_config

ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes

  • /etc/ssh/sshd_config

X11Forwarding yes

Reiniciamos el demonio ssh:

/etc/init.d/sshd restart

Configuración de XWindows en MacOX

Debemos de instalar el entorno de X11 XQuartz que lo tenemos disponible en la siguiente dirección:

http://xquartz.macosforge.org/landing/

Si tienes instalado InkScape o aplicación similar es posible que ya lo tengas instalado.

Ya tenemos todo lo necesario para iniciar aplicaciones de nuestro servidor Linux en nuestro MacOX

Ejecución de aplicaciones en las XWindows

Abrimos la aplicación X11, y nos abrirá un terminal, en el que ejecutaremos el ssh para conectarnos con el servidor:

ssh -XC user@server -p port

Una vez abierta la sesión ya podremos ejecutar la aplicación que queramos: firefox, nautilus…

Si estamos en Ubuntu podremos ejecutar el escritorio con:

ubuntu-session
xubuntu-session

En acabado es muy bueno, puesto que las ventanas se integran en nuestro MacOX, no como las máquinas virtuales o similares:

nautilus-x11-ssh