Te prometo una vida apasionante

Acabo de ver el video de la campaña de la conferencia episcopal y necesito desahogarme un poco. No escribo esto como el ateo que ahora soy, sino como el cristiano que he sido. Por un lado me asusta/preocupa la evidencia de que la vocación actual es la del cura con sotana. Yo lo siento pero a mi me ha tocado vivir la epoca de curas de calle, y los alzacuellos siempre los asocio a Opus y demas…
Pero lo que mas me ha molestado es el mensaje en sí, que empieza por “¿cuantas promesas te han hecho que no se han cumplido?” para despues empezar a prometer cosas que ni el mismisimo Dios, si existiera, podría prometer.

  • “Nunca te faltaran las fuerzas” – ¿no?,¿seguro? ¿me garantizan la fuerza del espiritu santo?¿pero eso no es un dón?¿no hace falta ni pedirlo, me vendrá de serie?
  • “sabrás que has hecho lo correcto” – ¿nadie nunca se ha equivocado al elegir el camino del sacerdocio?
  • “Nunca te arrepentiras” – seguimos con lo mismo… ¿seguro?¿nisiquiera al ver lo terrenales que son las rencillas internas, las luchas por el poder?
  • “tu amor será mas fuerte que el miedo” -¿de verdad,elegir seguir a Dios como sacerdote en vez de padre de familia -por ejemplo-  me dará un plus de amor, o me quitara miedos?
  • “llevaras esperanza”  –  para llevar esperanza, hace falta tenerla, y a veces se pierde, por muy sacerdote que seas…
  • “una vida apasionante”  – La pasión no es intrinseca al sacerdocio. Todos conocemos laicos apasionados y sacerdotes sin sangre ni vocación

Parece que si eres sacerdote Dios no dejará que desfallezcas, ni dudes, ni te arrepientas,ni que el miedo venza al amor, ni te faltara la esperanza y toda tu vida la viviras con pasión. Pues si eso es así:

  • parece que Dios nos esta diciendo que es mejor ser Sacerdote que laico
  • si soy sacerdote no tendre libre albedrío: no puedo dudar,ni arrepentirme, ni…  Dios no me va a dejar  (pues entonces igual mejor ser laico, Dios te servira de muleta cuando caigas, te ayudara a levantarte, pero eres libre de caerte o incluso tirarte si quieres)

y paro ya que habra que seguir trabajando

 

matar un proceso en c#

En realidad este post es continuación de los anteriores, pero como ya aburre hablar del acelerómetro y demas, cambio el enfoque. Recientemente he formateado el ordenador (es lo que tiene jugar con la tabla de particiones sin prestar mucha atención…) y ya puestos he decidido otra aproximación para programar el botón de giro de pantalla. La idea es que ahora uso el botón para pausar o reanudar el giro automático (mediante el acelerómetro) de la pantalla del portatil, es decir, que en modo tablet, la pantalla gira segun la muevo, hasta que le doy al botón, entonces ya no gira hasta que vuelva a darle.
Para ello simplemente, lo que hago es mirar si el proceso esta en memoria. Si está, lo mato, y si no esta lo lanzo. Un codigo muy sencillo y bastante efectivo.
Para ello necesitamos acceso a la clase process , que está en System.Diagnostics, y en concreto 3 de sus metodos ,GetProcessesByNameKill y Start (no hace falta explicarlos mucho,¿ no?)

Así , en nuestro caso, para matar/lanzar el porceso SDTabletPC,  el codigo quedaría:

Process[] pArray = Process.GetProcessesByName("SDtabletPC");
if (pArray.Length == 0)
{
Process.Start("C:\\Program Files (x86)\\STMicroelectronics\\STScreenDetection\\SDTabletPC.exe");
}
else
{
pArray[0].Kill();
}

girar la pantalla en el acer aspire 1825PTZ con el botón programable (II)

Actualización: Mucho mas simple e interesante la nueva aproximación al problema de este otro post : Matar un proceso en C#

Bueno, el cutre script que puse hace unas semanas, funciona,  pero tiene un par de cosas que no me gustan:

- para girar se basa en un valor almacenado, y no en la posición actual

- usa “sendkeys”, luego dependo del driver de intel para que funcione

asi que me puse a buscar si había alguna forma de acceder a la API de video para saber la posición y manipularla, y encontre un ejemplo en C++ y en C# que hacía justo lo que necesitaba (http://msdn.microsoft.com/en-us/library/ms812499.aspx).

Lo unico que no me gusta en este caso es que practicamente es copia y pega (solo he cambiado el sentido de giro, a mi gusto), sin pensarlo ni nada :-)

Aquí va el codigo tal cual para una app de consola de c#:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace RotarPantalla
{
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct DEVMODE
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmDeviceName;
public short dmSpecVersion;
public short dmDriverVersion;
public short dmSize;
public short dmDriverExtra;
public int dmFields;
public int dmPositionX;
public int dmPositionY;
public int dmDisplayOrientation;
public int dmDisplayFixedOutput;
public short dmColor;
public short dmDuplex;
public short dmYResolution;
public short dmTTOption;
public short dmCollate;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmFormName;
public short dmLogPixels;
public short dmBitsPerPel;
public int dmPelsWidth;
public int dmPelsHeight;
public int dmDisplayFlags;
public int dmDisplayFrequency;
public int dmICMMethod;
public int dmICMIntent;
public int dmMediaType;
public int dmDitherType;
public int dmReserved1;
public int dmReserved2;
public int dmPanningWidth;
public int dmPanningHeight;
};
public class NativeMethods
{
// PInvoke declaration for EnumDisplaySettings Win32 API
[DllImport("user32.dll", CharSet = CharSet.Ansi)]
public static extern int EnumDisplaySettings(
string lpszDeviceName,
int iModeNum,
ref DEVMODE lpDevMode);
// PInvoke declaration for ChangeDisplaySettings Win32 API
[DllImport("user32.dll", CharSet=CharSet.Ansi)]
public static extern int ChangeDisplaySettings(
ref DEVMODE lpDevMode,
int dwFlags);
// constants
public const int ENUM_CURRENT_SETTINGS = -1;
public const int DMDO_DEFAULT = 0;
public const int DMDO_90 = 1;
public const int DMDO_180 = 2;
public const int DMDO_270 = 3;
}
class Program
{
static void Main(string[] args)
{
// initialize the DEVMODE structure
DEVMODE dm = new DEVMODE();
dm.dmDeviceName = new string(new char[32]);
dm.dmFormName = new string(new char[32]);
dm.dmSize = (short)Marshal.SizeOf(dm);
if (0 != NativeMethods.EnumDisplaySettings(
null,
NativeMethods.ENUM_CURRENT_SETTINGS,
ref dm))
{
// swap width and height
int temp = dm.dmPelsHeight;
dm.dmPelsHeight = dm.dmPelsWidth;
dm.dmPelsWidth = temp;
// determine new orientation
switch (dm.dmDisplayOrientation)
{
case NativeMethods.DMDO_DEFAULT:
dm.dmDisplayOrientation = NativeMethods.DMDO_90;
break;
case NativeMethods.DMDO_270:
dm.dmDisplay

Orientation = NativeMethods.DMDO_DEFAULT;
break;
case NativeMethods.DMDO_180:
dm.dmDisplayOrientation = NativeMethods.DMDO_270;
break;
case NativeMethods.DMDO_90:
dm.dmDisplayOrientation = NativeMethods.DMDO_180;
break;
default:
// unknown orientation value
// add exception handling here
break;
}
}
}
}
}

PD.- despues de actualizar n veces la entrada para intentar que el codigo quede decente,no hay manera…

girar la pantalla en el acer aspire 1825ptz con el botón programable

Como comentaba, me gusta decidir yo cuando se  gira la pantalla , por eso he desactivado el acelerometro, así con “ctrl-alt” mas las flechas del cursor, puedo decidir el giro de la pantalla,pero en modo tablet usar el teclado no es lo mas comodo del mundo, asi que sería bueno poder girar con el botón “P” (el unico accesible en modo tableta), que puede asociarse mediante el “launch manager” al programa que queramos… luego necesitaremos un programa para girar la pantalla.

Como no quiero complicarme la vida, no usaré ninguna API para la gestión de video, que seguro que la hay, y queda mas elegante, pero, ya que la forma de girar la pantalla con el acelerometro es mandar atajos de teclado al driver de video cada vez que detecta cambio de posición, yo voy a usar ese mismo acercamiento (lo se, es muy cutre, pero funciona). Tampoco quiero crear ninguna aplicación maravillosa, asi que una vez comprobado que vbs tiene sendkeys… decisión tomada.Cutre scrit en visual basic script.

La idea es que la pantalla gire cada vez que demos al botón. Yo he puesto las 4 posiciones posibles de giro. Para saber en q posición estoy (para girar a la siguiente)  guardo (y leo) un valor en el registro. (como digo la idea era no perder tiempo en esto, lo mismo aparte del ancho y alto hay una forma facil de conocer la posición de la pantalla, pero perdía mas tiempo googleando que haciendo esto, asi que…)

el codigo del script es el siguiente: (por supuesto, no me hago responsable de lo que os pase con él…)


Set oReg = CreateObject("Wscript.Shell")
'Definimos las variables necesarias
Dim valorGiro
dim atajo
'leemos (si existe) el ultimo giro realizado
'0 down
'1 right
'2 up
'3 left
on error resume next 'no es el mejor modo pero es VBS...
valorGiro=oReg.RegRead("HKCU\Software\Bingen\girar")
'si no existe la entrada, o algun otro problema de lectura, inicializamos la variable
if err.number <> 0 then
valorGiro=0
end if
'y para hacer el siguiente giro sumamos 1 y le hacemos el mod para que siga de 1 a 4
valorGiro=(valorGiro + 1) mod 4
'y en función del giro, el atajo de teclado que corresponde.Uso los predefinidos
select case valorGiro
case 0
atajo="^%{DOWN}"
case 1
atajo="^%{RIGHT}"
case 2
atajo="^%{UP}"
case 3
atajo="^%{LEFT}"
end select
'Escribimos el nuevo valor de la clave
oReg.RegWrite "HKCU\Software\Bingen\girar", valorGiro, "REG_DWORD"
'enviamos el atajo de teclado para girar la pantalla
oReg.SendKeys atajo
'Destruimos la variable de objeto
Set oReg = Nothing

Si otro día tengo mas tiempo/ganas, lo explico un poco mas y pongo enlaces de referencias y demas, pero, para que no quede en el olvido publico esto y ya veremos (aunque todos sabemos que finalmente quedará así)

Desactivar el acelerometro del acer aspire 1825PTZ

Desde hace un par de días tengo un tabletPc (acer aspire 1825PTZ) que compré a traves de mis amigos de altusnt. Una de las cosas que mas me molesta de él (por lo general estoy -encantado, pero siempre hay “esas pequeñas cositas”) es el acelerometro. Ya se que es muy cool lo de que la pantalla gire segun la muevas, pero supongo que el que invento eso no leía en la cama.

Segun Acer, para desactivar el acelerometro, hay que desactivar los atajos de teclado del driver de la tarjeta grafica. Eso puede ser valido si efectivamente no quieres girar la pantalla nunca, pero yo quiero poder hacerlo manualmente, así que no me vale.

Mirando un poco, veo que el programa que gestiona el acelerometro es el SDTabletPC.EXE, que se  carga al inicio. Así que con abrir msconfig y desmarcar sdtabletpc.exe dentro de los programas de inicio de windows, ya no dará mas problemas.

Ahora el siguiente paso será utilizar la tecla programable “P” del tablet para girar la pantalla a voluntad (en modo tablet los atajos de teclado no son muy comodos) , pero eso será otro post

La capitalización del paro no vale para todos…

Estoy en paro, y seguiré estándolo una temporada mientras no me salga un trabajo por cuenta ajena.

La cuestión es simple. Tras una situación económica nefasta, el último trabajo me permitió ahorrar lo justo para devolver préstamos varios, pero nada más, así q ahora vivimos “al día”. Llegamos a fin de mes, gracias a Dios, pero justo eso.
Así las cosas, me surgió la posibilidad de un trabajo de mantenimiento. Tenía que ser legal, eso sí, así que tendría q darme de alta en autónomos para poder facturar. El problema: que el trabajo solo me iba a aportar unos 100€ al mes como mucho… y si a eso le sumamos autónomos y le quitamos la prestación del paro…

Pero me sonaba que existía la posibilidad de “pago único” así que investigue un poco el tema, y como se puede suponer, a pesar del nombre tan interesante, no me vale. ¿Por qué? Básicamente porque el pago único no es directo, sino que el INEM te paga lo que justifiques que necesitas para comenzar el negocio, pero no sirve para pagarte el sueldo los primeros meses. Y aunque a primera vista puede parecer lógico, el problema es q yo necesito 2 duros para empezar el negocio, con una mesa de ikea me vale, pero en el minuto 1 de empezar a trabajar dejo  de cobrar el paro y mientras consigo clientes y que éstos paguen, la hipoteca no se paga sola… Necesito circulante para los primeros meses, y ademas, el pago unico te obliga a mantenerte en la actividad 3 años, de lo contrario hay que devolver todas las ayuda, asi q tampoco hay tanto pie al fraude, ¿no?

Por lo tanto, parece que estas ayudas solo sirven si no tienes cargas económicas (hipotecas que pagar) o simplemente puedes ir currando sin facturar hasta que tengas suficientes clientes…

Yo por ahora lo tengo claro. Sin trabajar pago la hipoteca. Trabajando, no… Algo falla.

(y por cierto, yo estaría encantado de trabajar, llevo muy mal lo del paro, no creáis que estoy disfrutándolo, pero no está la cosa para hacer experimentos)

sql server 2005 y procesadores triple core

Esta semana he aprendido por las malas que el sql server 2005 no arranca en ordenadores con numero impar de núcleos.
Tenía que impartir un curso sobre SQL 2005, así que tire de maquina virtual, como siempre en esos casos, pero resulta que la maquina, que en mi portátil funcionaba sin problemas, en los ordenadores del aula daba un error en el arranque que casualmente era el servicio del sql server, que no arrancaba.
No acababa de entender el problema, y al día siguiente, mis alumnos, que tenían la mosca detrás de la oreja, porque el procesador amd phenom no les gustaba(yo ni me había fijado en el procesador, como trabajaba con maquina virtual…)me enviaron un enlace a la solución ( http://support.microsoft.com/kb/954835 ) así que aunque al principio no creí que el procesador anfitrión afectara a la maquina virtual, al final lo hice, y mano de santo. Instalé el sp2 en la maquina virtual corriendo sobre mi portátil, y luego a reemplazar los del aula. No mas problemas.


Enlaces en del.icio.us

Fotos en Flickr



patos0028

patos0027

patos0022

Más fotos

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: