Filezilla no guarda las contraseñas

Si vas a crear un nuevo sitio en Filezilla, y quieres guardar la contraseña para que cada vez que te conectes no te la pida, quizás te aparezca el siguiente mensaje:

“Has desactivado la opción de guardar la contraseña. ‘Normal’ and ‘Account’ logontypes are not available. Your entry has been changed to ‘Ask for password'”

Esto es un poco latoso porque te pide la contraseña siempre para acceder. Si queremos evitar esto, tendremos que ir a las opciones de Filezilla en Edición -> Opciones, luego pinchar en Interfaz y en las opciones de la derecha desmarcar en la zona de comportamiento la casilla de No guardar contraseñas.

Con esto ya tendríamos nuestro problema resuelto.

Servidor casero con direccion ip dinámica

Hace poco recibí un correo de Ángel a través del contacto de esta página preguntando lo siguiente:

Leí que estar en servidor casero montado por ti. yo monte uno también pero tuve que usar no-ip free porque mi dirección es dinámica. como tu lo hiciste en el tullo y que utilizaste? quiero aprender y resolver mi problema.
gracias

Como me pareció un tema bastante interesante he decido crear un post para explicar los métodos que utilizo yo, para solventar este problema.

Yo tengo montado un servidor en casa, precisamente donde está alojada esta página, entre otras. Actualmente tengo una dirección ip dinámica y esto ocasiona problemas de vez en cuando, puesto que si te cambia la dirección ip tu dominio, que está apuntando a la dirección ip de tu servidor, dejará de funcionar correctamente.

El cambio de dirección ip, aunque se tenga dinámica, depende de la configuración de nuestro proveedor de internet. En algunos casos cambia muy muy poco y en otros algo más a menudo. Lo normal es que si no se apaga el router la dirección ip no cambie por lo que normalmente tendremos que realizar pocos cambios.

¿Que ocurre si cambia?, si cambia nuestra ip de casa (o donde tengamos nuestro servidor), tendremos que meternos en los datos DNS de nuestro dominio y anotar la ip nueva.

En mi caso, tengo un programa creado por mí en .NET, que comprueba la dirección ip pública cada 15 minutos y si ha cambiado me manda un correo electrónico con la nueva dirección ip, por lo que lo antes posible procedo a actualizar la dirección ip en mi proveedor de dominios.

Aunque espero mejorar el programa y publicarlo para que lo pueda usar todo el mundo, la alternativa que uso con algunos clientes es http://www.noip.com/ con el que instalando un programita en el servidor siempre podrás acceder a él mediante una dirección (p.j. midirecciondecasa.no-ip.info).

Si tu ip ha cambiado, haciendo un ping a la dirección que tenemos registrada en noip.com, sabremos cuál es nuestra nueva dirección y procederemos a actualizarla en nuestro proveedor de dominios lo antes posible.

 

Guardar y recuperar la fecha en objective-c con Xcode

Programando para nuestro dispositivo Apple, iphone por ejemplo, con objective-c y con e el Xcode, es posible que queramos almacenar la fecha de forma persistente, es decir, que no se borre cuando cerramos la aplicación.

Para ello utilizaremos las variables de preferencia de nuestra aplicación, o sea, NSUserDefaults y guardaremos la fecha actual (es un tipo NSDate)

Utilizaremos este código para guardar, por ejemplo, la fecha y la hora de hoy:

//Instanciamos la variable de las preferencias de la aplicación
NSUserDefaults *defaults = [NSUSerDefaults standardUserDefaults];
//Guardamos la fecha actual en la variable hoy
NSDate *hoy = [NSDate date];
//Guardamos el valor de hoy en las variables de preferencias de la aplicación
[defaults setObject:hoy forKey:@"ValorHoy"];
//Forzamos la sincronización para que guarde el valor ya
[defaults synchronize];

Y con este otro código la recuperamos:

//Instanciamos la variable de las preferencias de la aplicación si no la habíamos utilizado ya
//en caso de haberla instanciado ya, no haría falta este paso
NSUserDefaults *defaults = [NSUSerDefaults standardUserDefaults];
//Cargamos la fecha actual en la variable hoy
NSDate *fechaGuardada = (NSDate*)[defaults objectForKey:@"ValorHoy"];

Y ya tendríamos la fecha recuperada que guardamos anteriormente en la variable fechaGuardada.

Comparar NSString con null en objective-c y xcode

Saber si una cadena (NSString) es null en objective-c puede parecer algo trivial y muy intuitivo pero si estás empezando es algo que puede venir bien.

En este fragmento de código, que ejecutamos en XCode vemos como intentamos cargar una variable, que está almacenada en los datos de usuario de nuestra aplicación, y que compararemos para saber si es null, en cuyo caso le asignaremos un valor por defecto.

//Cargo la ciudad
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *ciudad;
ciudad = [defaults stringForKey:@"Ciudad"];

//Comparar si NSString es null
if(ciudad == nil)
{
[defaults setValue:@"Madrid" forKey:@"Ciudad"];
[defaults synchronize];
}

Solución al Error sfc_os.dll con Winlogon.exe

Si nos ha salido el error sfc_os.dll al iniciar Windows, aparecerá un mensaje así: “winlogon.exe no puede encontrar el archivo sfc_os.dll

Para solucionar el error tenemos que seguir estos pasos:

  1. Buscar el cd de Windows y localizar dentro de la carpeta I386 el archivo “sfc_os.dl_“. Ahora lo copiamos a C:\
  2. Reiniciemos el ordenador y pulsando la tecla “F8” entramos en “Modo seguro sólo símbolo de sistema”
  3. Al terminar de arrancar todos los procesos nos aparecerá una consola de comandos e introduciremos lo siguiente: “expand c:\sfc_os.dl_ c:\windows\system32\sfc_os.dll”
  4. Reiniciamos y ya tendremos nuestro ordenador listo sin el mensaje de error de winlogon.exe.

Problema resuelto.

Como ejecutar un script en Linux Ubuntu

Si,ya se que ejecutar un script en Linux es un comando bastante trivial, pero yo lo uso muy muy de vez en cuando y casi siempre lo tengo que buscar en internet, así que me voy a preparar esta chuleta para buscarlo directamente la próxima vez.

Es tan simple como ejecutar el comando “sh

En mi Ubuntu Server ejecuto lo siguiente:  sudo sh miscript

En mi última búsqueda vi en los comentarios lo siguiente que creo que también puede ser de utilidad:

Tabien puedes ejecutar shell scripts poninendo la shell que quieres que lo ejecute como primera linea del script (por ejemplo: #/bin/bash), dandole permisos de ejecución (chmod +x “nombre-del-archivo”) i llamandolo desde consola (./”nombre-del-archivo”).

Mostrar un CollapsiblePanel expandido al inicio

aps.net collapsible panel ajax

El control CollapsiblePanel es un control AJAX que permite expandir y contraer paneles con un efecto “slide”  en nuestras páginas de ASP.NET.

Tal vez nos interese que al iniciar nuestra aplicación Web, este panel aparezca ya expandido. Esto lo podríamos hacer por código, pero el control CollapsiblePanel tiene una propiedad que si se la inicializamos a false, nos aparecerá ya el control expandido.

Esta propiedad es Collapse=”False” que la pondríamos más o menos como viene en el ejemplo acontinuación:

<cc1:CollapsiblePanelExtender ID=”CollapsiblePanelExtender1″ runat=”server” TargetControlID=”pBody” CollapseControlID=”pHeader” ExpandControlID=”pHeader”                Collapsed=”false” TextLabelID=”lblText” CollapsedText=”Control sin expandir” ExpandedText=”Texto Expandido”   CollapsedSize=”0″ ImageControlID=”ImgBttnTitle” CollapsedImage=”../images/flecha-abajo.png” ExpandedImage=”../images/flecha-arriba.png” SuppressPostBack=”true”></cc1:CollapsiblePanelExtender>


Brother HL 2040 la luz del toner se queda encendida

Error impresor brother hl 2040

En la impresora Brother HL 2040, cuando el toner está agotándose,  aparece una luz de color amarillo donde poner toner. Normalmente al cambiar el toner está luz desaparece y la impresora imprime con normalidad.

Nos puede surgir un problema o error en la Brother HL 2040,  si tras cambiar el toner por uno nuevo, esta luz sigue quedándose encendida. En este caso lo que debemos hacer es “reiniciar” esta luz, con estos pasos:

1.- Apagamos la impresora

2.- Abrimos la tapa frontal donde se cambia el toner. (este debe de estar introducido, simplemente abrimos la tapa).

3.- Encendemos la impresora mientras que mantenemos apretado el botón de “GO” hasta que todas las luces estén encendidas.

4.- Pulsamos el botón “GO” 2 veces.

5.- Esperamos unos segundos.

6.- Pulsamos el botón “GO” 5 veces.

7.- La luz del toner debería apagarse y la luz del papel debería encenderse.

8.- Cerramos la tapa y la luz de “ready” debería quedarse encendida.

Con estos pasos el reset de la luz debería de estar completo y la impresora funcionando.

Uso y diferencias con TRUNCATE y DELETE en SQL Server

Parar borrar el contenido de una tabla podemos utilizar las sentencias TRUNCATE Table o DELETE. Una de las principales diferencias entre estas dos sentencias es que TRUNCATE es más rápida y deja un log más limpio por lo que si tenemos que borrar muchos datos está es la opción más recomendada. Otra gran diferencia es que DELETE es selectivo, es decir, puedes borrar todo o parte del contenido de la tabla mientras que TRUNCATE borraría todo el contenido.

Para poder utilizar la sentencia TRUNCATE el usuario necesitará tener uno de estos roles , sysadmin,, db_owner,  db_ddladmin. El más recomendado sería el último que sirve para ejecutar cualquier comando del lenguaje de definición de datos (DDL) en una base de datos y sería más restrictivo que los otros.

Sin ninguno de estos roles SQL nos reportaría un error de tipo “No se encuentra el objeto XXX o no tiene permisos”.

Ejemplos de consultas JOINS para SQL

Para las personas que no tienen claros los conceptos de JOINS en SQL, y como bien dice el dicho; más vale una imagen que mil palabras, aquí hay un documento que explica gráficamente cual es el uso de cada consulta JOIN SQL.

Hay ejemplos de LEFT y RIGTH, INNER, OUTER Y FULL.

Ejemplo de consultas sql con Joins