MainMind

True & racing de norte a sur


Errores JavaScript en entornos de prueba locales: Browser Link

En ocasiones es posible obtener errores en entornos de desarrollo, pero una vez en producción no suceden; este puede ser uno de los motivos dependiendo del caso. A partir de la versión Visual Studio 2013 se introdujo una características nueva: Browser Link que permite interceptar las llamadas AJAX mediante SignalR estableciendo una canal intermedio entre Visual Studio y el navegador.

Para tal función se inserta automáticamente código JavaScript en la página generada que puede llegar a interferir, por ejemplo con Bootstrap o controles de terceros, generando el error en tiempo de ejecución del tipo:

La prueba rápida es deshabilitar esta característica desde el propio entorno VS:

En entornos de producción con la compilación fuera del modo debug no se realiza la carga de esta característica, solo sobre localhost.

<system.web>
  <compilation debug="false" targetFramework="4.5" />
</system.web>

 

Mama, de mayor quiero ser estibador

Ni médico, ni bombero, ni futbolista... Antes de nada, hay que dejar claro... si hace poco tiempo, la mayoría no conocíamos el gremio... ¿Qué es la estiba? Hablamos de colocar la carga a bordo de un buque en el mínimo espacio y tiempo posible con seguridad, y viceversa. Con el paso del tiempo y la aplicación de tecnología, no hablamos de cargar en el hombro sacos de alimentos, aunque en ocasiones la Benemérita tuvo que obligar a vagos y maleantes a descargar buques para asegurar el abastecimiento de la población. Mucho ha cambiado desde entonces.

Las pequeñas empresas de la época, tenían problemas para realizar contrataciones (esto si nos suena más) debido a su pequeño tamaño y la irregularidad de la actividad; pasar de descargar un barco en poco tiempo a semanas sin faena, hacía difícil contratar de forma fija a trabajadores. Es aquí cuando confluyen otros hechos históricos.

Finalizando la Segunda Guerra Mundial (1939-1945) con la presión de los Aliados y la caída del frente en Stalingrado, el 10 de octubre se ordena la repatriación escalonada, terminando en la Navidad del 43 (18-12-1943), con la llegada a Madrid de Emilio Esteban Infantes (que había sustituido a Agustín Muñoz Grandes como general de la División Azul) acompañado del último grupo de repatriados. Si en 1941, la partida de los divisionarios había tenido lugar en medio de una despedida entusiasta por parte del gentío movilizado por el régimen, al grito de "¡Rusia es culpable!" el regreso fue muy distinto. Cuando bajaron del tren aquel 18 de diciembre de 1943 se encontraron sin recibimiento alguno: ni honores militares, ni miembro alguno del gobierno, ni siquiera los falangistas acudieron a recibirlos.

José Antonio Girón de Velasco, ministro de trabajo, vio la posibilidad de contentarlos y resolver el problema de los empresarios de la estiba creando la Organización de Trabajadores Portuarios (OTP) actuando como empresa de trabajo temporal de la época. Cuando tienen que descargar un barco solicitan a la OTP mano de obra y corren con los gastos mientras dura la faena, garantizando el servicio sin asumir costes fijos laborales.

¿Cómo se llega de esta solución hasta nuestros días? Todo funciona bien al comienzo, cada convenio colectivo se blindan, pluses, salarios, jubilaciones, control del censo de los estibadores... Los empresarios actúan como intermediarios, si el coste de la estiba sube, ellos suben la parte correspondiente... que acaban pagando todos los cargadores de mercancías... Las juntas de obras de las de dependían las sociedades OTP no actúan, aquellas pequeñas empresas se convierten en grandes sociedades anónimas dueñas de las grúas, carretillas y todo lo necesario para el trabajo.

Entonces empieza el baile de denominaciones, las OTP pasan a ser sociedades de estiba (en cada puerto la suya), los empresarios que quisieran trabajar debían entrar a formar parte de esa sociedad de manera obligatoria, contratando solo al personal de la misma (que curioso). Los trabajadores se dan cuenta entonces del poder que les atribuye la Ley de Puertos y constituyen el sindicado "La coordinadora" mayoritario en el sector, hasta el nombre recuerda a películas de "El padrino"

El siguiente cambio da la puntilla al sector y pasan a ser "asociaciones de empresas" con las mismas atribuciones, pero el Estado abandona el control de las mismas... con lo que si antes la empresa que quería cargar mercancías estaba indefensa ahora no tiene ni posibilidad de negociar costes de escala.

Sabiendo todo esto, solo cabe realizarse ciertas preguntas a uno mismo:

¿Tiene este sector privilegios heredados?
¿Por qué solo es posible contratar estibadores en bloques de 6h?
¿Por qué el salario de 6.000 trabajadores es tan diferente de la media?
¿Por qué algunos partidos defienden a estas sociedades anónimas?
¿Por qué existe diferencia tan abultada entre los costes de estiba en los puertos de España?
¿Tiene que ver en esta diferencia los convenios locales de cada puerto?
¿Qué problema existe en garantizar el acceso por igual a un puesto de trabajo en este sector?

 

Debería realizarse es una adaptación de un sistema heredado obsoleto, buscando ser competitivo a nivel global a medio y largo plazo, no estableciendo políticas de retención ventajosas para el futuro inmediato, el futuro es: competitividad y liberalismo.

 

 

Referencias y otros documentos:

Adaptar nombre de servicio WCF/SVC según cabecera URL de acceso

En ocasiones un servicio web puede ser accedido de diferentes direcciones, configuración de redes, balanceos de carga... es posible especificar en un servicio WCF para que adopte la dirección de cabecera de forma automática en pocas líneas para los metadatos:

    <behaviors>
      <serviceBehaviors>
        <behavior name="customBehaviour">
          <useRequestHeadersForMetadataAddress>
            <defaultPorts>
              <add scheme="https" port="443" />
            </defaultPorts>
          </useRequestHeadersForMetadataAddress>
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

Para realizar manualmente la localización externa:

<serviceMetadata httpGetEnabled="true"  externalMetadataLocation="https://ws.misitio.com/servicio.svc?wsdl"/>

 

 

Actualizar modelo .edmx con los cambios de la base de datos

La realización de cambios en la base de datos debe reflejarse dentro del modelo generado en Visual Studio. Desde un cambio mínimo, por ejemplo un campo de una tabla determinada pasa a admitir valores nulos, a cualquier otro complejo de adición/modificación/eliminación de tablas, referencias, triggers, procedimientos, relaciones...

1.- Abrimos nuestro archivo edmx con el editor predeterminado de Visual Studio: ADO.NET Entity Data Model Designer y pulsamos con el botón derecho sobre una zona libre en la opción "Udate Model from Database"

2.- Una vez que tenemos nuestro modelo reflejado, actualizamos el fichero con extension "IntranetModel.TT" pulsando con el botón derecho sobre ellos y seleccionado "Run custom tool"

3.- Lanzamos "Run custom tool" sobre el fichero "IntranetModel.context.TT"

En el caso de haber cambiado el namespace o el nombre del proyecto, deberemos renombrarlos de nuevo en el archivo CS correspondiente del context de la clase. Tambien es posible realizar cambios parciales en partes concretar del modelado desde "Model browser".

NOTA: Si a pesar de ello, no se reflejan los cambios, podemos eliminar ambos ficheros y volver a añadir "Add code generation item" seleccionando la versiónn correspondient de "EF 6.x DbContext Generator"

Aplicaciones Metro, seguridad y permisos de administrador

En varias ocasiones encuentras mensajes en equipos que no permiten la ejecución de programas por estar utilizando el usuario administrador predeterminado: "No podemos abrir X con la cuenta predeterminada de administrador. Inicia sesión con otra cuenta y prueba de nuevo"

Realmente un usuario de Windows siempre ha podido ejecutar cualquier aplicación pero desde Windows 8, aunque tu nombre de usuario durante la instalación sea otro, crea 2 cuentas adicionales: administrador e invitado.

Estas se utilizan para ejecutar el control de cuentas de usuario UAC, instalación de imágenes, servicios... las implicaciones de seguridad son muchas, como buena práctica general nunca debes ejecutar para tu uso diario bajo la cuenta de permisos de administrador, menos sobre la cuenta de administrador predeterminado.

La razón es sencilla y muy repetida, si existe un problema de seguridad se limitará a la zona que este accesible a esa cuenta. Si conociendo las implicaciones que supone y quieres seguir con ello, también puedes: Directiva de seguridad local -> Directivas Locales -> Opciones de seguridad -> Control de cuentas de usuario: ejecutar todos los administrador en Modo de aprobación de administrador (habilitar)