• Aviso Legal
  • About

Bienvenidos al Blog de David Rodriguez

Category Archives: Programacion

administrador de paquetes NuGet no funciona para Visual Studio 2013

junio 26, 2020 12:08 pm / 3 Comments / David Rodriguez

Nos hemos encontrado con un problema en junio 2020, y es que debido a una actualización, parece ser que el TLS 1.0/1.1 ha dejado de funcionar. Podemos leer algo aquí.

De repente te encuentras que el administrador de paquetes nuget.org no conecta y se queda intentando conectar sin darte ningún error específico.

Nosotros hemos solucionado esto de la siguiente manera.

Desde el menú Herramientas, vas a Administrador de paquetes Nuget y pinchas en Consola de Administrador de paquetes.

Esto te abre una ventana con una consola de comandos.

Ahí si pones
PM> get-help NuGet
te permite ver los comandos que puedes utilizar desde consola.

Nosotros hemos puesto Find-Package

PM> Find-Package

Y nos ha dado un error porque no teniamos instalado un cliente de nuget. Te dice que si lo quieres actualizar. Si le dices que sí, que es la versión por defecto, ya puedes conectar correctamente desde la pantalla de Administrar paquetes NuGet para la solución…

Posted in: Programacion

Conectar git en mac a traves de clave privada

junio 25, 2020 11:39 am / Leave a Comment / David Rodriguez

Vamos a intentar conectar desde un MAC a un repositorio GIT con clave privada generada en el propio equipo.

Para ello, lo primero es abrir una ventana de terminal y vamos a crearnos una clave pública y clave privada.

$ ssh-keygen -t rsa -b 4096 -C "tuemail@dominio.com"

Y te pregunta el nombre que le vamos a dar a ese par de claves. Esto luego en el fichero de configuración lo tendremos que poner

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/davidrodriguezgarcia/.ssh/id_rsa): 

Te pide unas palabras para encriptar la clave y hacerla más robusta.

Una vez ya tenemos nuestro par de claves, hacemos un fichero config para usar esa clave donde lo necesitamos. En este caso, lo he puesto para todos los servidores.

$ vi ~/.ssh/config

En este archivo vamos a meter la siguiente configuración

Host *
AddKeysToAgent yes
UseKeychain yes
User usuarioconexiongit
IdentityFile ~/.ssh/nombreclavecreada
LogLevel DEBUG

usuarioconexiongit es el usuario con el que vamos a conectar al repositorio git

nombreclavecreada es el nombre que le hemos dado al crear las claves.

LogLevel Debug lo pongo para probar si todo va bien, aunque luego lo podriamos quitar.

Ahora añadimos esta clave al ssh-agen de la siguiente forma:

$ ssh-add -K ~/.ssh/nombreclavecreada

Ahora ya podemos confirmar que se han creado las claves correctamente

$ ls -al ~/.ssh

y podemos ver que tenemos un fichero nombreclavecreada.pub y otro nombreclavecreada. Esta es la clave publica y privada que acabamos de crear.

Ahora debemos dar de alta la clave publica en nuestro repositorio GIT para que tengamos acceso al repositorio.

Se puede comprobar que nos lo está haciendo correctamente con este comando.

$ ssh -T usuarioconexiongit@iprepositorio

Una vez hecho esto, en mi caso vamos a conectar con el programa sourcetree a nuestro repositorio. Creamos un nuevo repositorio y clonamos desde una url.

y añadimos la configuración que nos piden:

Source URL: usuarioconexiongit@ip_repositorio:nombrerepositorio

Destination path: directorio local donde vamos a bajar el repositorio.

Name: nombre del proyecto del repositorio

Con estos datos, ya deberiamos poder bajarnos el proyecto para empezar a trabajar con el.

Posted in: Mac, Programacion, Seguridad, servidores

Script aviso de espacio de disco duro en linux

mayo 26, 2017 11:02 am / 1 Comment / David Rodriguez

He tenido que hacer un script que me avise cuando el disco duro del servidor esté casi lleno y  y borre unos archivos que se generan automaticamente.
El problema nos ha venido porque en Amazon AWS no hay alerta de espacio de disco duro, hay miles de alertas que puedes generarte, de memoria, cpu,etc yo creo que puedes incluso crearte una para cuando no te queda café en tu casa, pero curiosamente, no hay ninguna, o por lo menos no la he encontrado, que te avise cuando al disco duro se llena.
Para ello, me he basado en script shell para que me avise por email y borre unos archivos de un directorio cuando el espacio en disco es mayor que el 85%.

En el apartado devices, teneis que poner el disco o discos  que quereis controlar.
Os dejo aquí el script para que lo utiliceis y modifiqueis si es necesario:

#!/bin/bash

####### Configuración del script #######

# Sistemas de ficheros a chequear
devices[0]=/dev/xvda1
#devices[1]=/dev/sda1
#devices[2]=/dev/sdb1
#devices[3]=/dev/sdd1
#devices[4]=
#….

# Destinatario del correo
destinatario1=»micorreo@correo.com»
destinatario2=»otrocorreo@correo.com»
####### Cuerpo del script ########

# Recorremos el array de dispositivos a monitorizar
for device in ${devices[@]};
do
# Consultamos la ocupación del dispositivo
ocupacion=$(df -H | grep $device | expand | tr -s » » | cut -d » » -f5 | cut -d «%» -f1)
# Si la ocupación es igual o mayor al 85%…
if [ $ocupacion -ge 85 ];
then
# Preparación y envío del correo
correo=$(echo «WARNING, » $device en `hostname` al $ocupacion»% de ocupación!! Se borra la cache.»)
asunto=$(echo «Alerta de espacio en » `hostname` » – » $device)
echo $correo | mail -s «$asunto» $destinatario1
echo $correo | mail -s «$asunto» $destinatario2

#Borrar ficheros automaticamente del directorio que quieras
rm -rf /var/www/tudominio.com/cache/*
fi
done

 

Me he basado en un script que he encontrado en esta página.

 

Una vez que al script le da permisos de ejecución

chmod 777 ./miscript.sh

Ya podemos probar y ejecutar el script y ver que funciona (podemos cambiar el 85% por cualquier otro valor para ver que funciona.)

Ahora solo nos queda meterlo en el crontab y ejecutarlo cada hora para que nos avise en caso de que el disco duro esté a punto de llenarse.

crontab -e

Añadimos esta linea al cron

50 */1 * * * /home/ec2-user/scripts/warning_hdd.sh</span>

De tal forma que cada hora, en el minuto 50, se ejecutará nuestro script y nos avisará por mail, ademas de borrarnos los archivos de la caché.

Posted in: Programacion, servidores

Como evitar el bloquea AdBlock desde programación javascript

septiembre 21, 2016 11:57 am / Leave a Comment / David Rodriguez

Nos encontramos que en nuestros propios desarrollos, el bloqueador AdBlock nos lo bloquea y no nos carga la información que queremos mostrar al usuario en nuestra web.

 

Si tenemos el poder de cambiar el javascript que utilizamos para cargar ese contenido se pueden hacer varias cosas:

  • Instalar un Anti-Adblock en nuestra web. Esto hará que si el usuario tiene adblock instalado, no le deje ver la pagina salvo que lo pause. Esta opción no me gusta nada, que ya la usabilidad del usuario es desastrosa para la web.
  • Si somos los creadores de ese javascript, podemos hacer las siguientes acciones:
    • Evitar palabras que puedan decir al plugin bloqueador Adblock que el contenido que cargas es publicidad. Eliminar las siguienes palabras ad, ads, adserver, etc

Es la mejor forma de eliminar esos famosos ERROR 300

ERR_BLOCKED_BY_CLIENT

Posted in: Programacion

Como añadir y borrar un elemento de un array en javascript

noviembre 13, 2015 6:22 pm / Leave a Comment / David Rodriguez

Para añadir un elemento a un array en javascript podemos utilizar el siguiente codigo:

miarray = new Array();

dato = ‘1000’;

miarray.push(dato);

> console.log(miarray);

Con esto hemos añadido un elemento (1000) en un array. De esta forma podemos insertar en array. Si lo que ahora queremos es eliminar un elemento del array, utilizamos la siguiente sentencia:

 

miarray.splice($.inArray(dato,miarray),1);

 

De esta forma, borramos el elemento que hemos introducido anteriormente del array.

Posted in: Programacion / Tagged: javascript

Desproteger los directorios automaticamente en la url

octubre 3, 2014 9:36 am / Leave a Comment / David Rodriguez

Podemos encontrarnos con urls donde te piden usuario y password en el propio navegador.

http://piensaennaranja.com/david/

En este ejemplo, el usuario es david y la password tambien es david.

Si eres programador, esto lo puedes hacer facilmente a través de .htaccess y .htpasswd, se puede ver esto en muchos enlaces. Te dejo alguno que te pueda servir de guía.

Pero lo que necesitamos, es que no nos pida el usuario y el password cada vez que accedemos a esa url. En este caso, con poner el usuario y la password delante de la url lo tendriamos solucionado, y no tendriamos que meterlo cada vez que entramos en la página.

Es decir, la url final sería la siguiente http://usuario:password@direccionurl.com/posibledirectorio/odirectorios/

En nuestra pagina de ejemplo sería esta url:

http://david:david@piensaennaranja.com/david/

De esta forma, podemos programar alguna funciona para descargarnos toda la informacion protegida etc etc jejeje 🙂

 

Posted in: Programacion, servidores / Tagged: linux, Programacion

Como recoger los parametros en un formulario Contact Form 7 en WordPress

junio 4, 2014 1:02 pm / 11 Comments / David Rodriguez

Con el plugin de Contact Form 7, podemos introducir formularios dentro de nuestro blog wordpress. Pero por defecto, unicamente manda uno o dos emails, pero no hace nada más.

Con la ayuda de otros plugins, podemos guardar esos datos en unas tablas y tener un registro de todos los datos. Para esto, podemos utilizar Flamingo, como nos dicen en la propia web del plugin de Contact Form, o algún otro plugin que tambien se puede utilizar con el mismo propósito como Contact Form DB.

Lo que vamos a explicar, es como hacer una «landing normal», con un formulario, y una pagina de gracias o «thank you page».

Para ello, ademas del plugin contact form 7, debemos instalar algún plugin que nos permita ejecutar codigo php dentro de los posts, paginas, etc. Hay mucho, podemos elegir por ejemplo Short Exec Code.

Generamos nuestro formulario con los datos que necesitamos dentro de la opción Contacto > Formulario de contacto, podemos crear uno nuevo o utilizar el que viene por defecto y modificarlo.

 <p>Su nombre (requerido)<br />
    [text* your-name id:your-name] </p>

<p>Su e-mail (requerido)<br />
    [email* your-email id:your-email] </p>

<p>Asunto<br />
    [text your-subject] </p>

<p>Su mensaje<br />
    [textarea your-message] </p>

<p>[submit «Enviar»]</p>

contactform7

contactform7

A los datos del formulario, le tenemos que añadir la etiqueta id, para que luego podamos recogerla del formulario y mandarla por la url. Esto es sencillo en Contact Form 7, unicamente añadimos

 id:your-name

dentro de la etiqueta, y cambiando «your-name» por el nombre que le queramos dar a cada variable.

Bajamos abajo del todo, y añadimos el siguiente codigo en la sección «Configuración Adicional».

on_sent_ok: «var nombre = document.getElementById(‘your-name’).value; location =’/gracias/?nombre=’+nombre;»

configuracion adicional contact form7

configuracion adicional contact form7

Este código lo que hace es ejecutar las acciones de javascript necesarias cuando el formulario se ha enviado correctamente. Se puede hacer a través de una funcion de javascript, o como en este caso, directamente sobre el codigo. Definimos un parámetro para cada campo del formulario, y hacemos una redirección a la página de gracias, pasandole por la url todos los parámetros recogidos del formulario.

Unicamente hemos añadido aquí el parametro nombre, pero deberiamos mandar todos los campos que tengamos en el formulario.

Ahora nos queda crearnos la pagina de gracias, que lo hacemos desde el propio gestor de wordpress, en «Páginas» > Añadir nueva y creamos una pagina que se llame «gracias» y que tenga la url /gracias/ (obviamente, el nombr y la url se puede poner la que se quiera), pero se debe cambiar entonces tambien el nombre, en el apartado «configuración Adicional» que hemos comentado anteriormente.

Nos vamos a «herramientas» > Shortcode Exex PHP y nos creamos un codigo html para recoger esos parámetros que pasamos por la url.

extract(shortcode_atts(array(‘arg’ => ‘default’), $atts));
print_r($_REQUEST);

shortcodeexecphp

Shortcode exec php

En ese caso unicamente pintamos el array que nos llega por la request, pero realmente ya con este array, podríamos hacer cualquier cosa. Pintar por pantalla los datos del formulario, enviar los mails que necesites y en el formato que se necesite, codigos de conversiones de analytics o cualquier otra herramienta, integraciones por pixel transparente, etc.

Ahora solo nos queda meter ese codigo de ejecución de PHP que hemos creado, en nuestro caso lo hemos llamado «gracias» y lo metemos dentro la pagina de gracias que nos hemos creado anteriormente.

De esta forma, podemos generar landing page en WordPress de una manera sencilla y utilizar todos los metodos de tracking, conversiones, etc para controlar la campaña.

 

 

 

 

 

 

 

Posted in: Internet, marketing, Programacion / Tagged: desarrollo web, javascript, marketing online, Programacion, wordpress

Analizar el log de mysql mysql-slow-querys.log para detectar consultas lentas

diciembre 11, 2013 11:29 am / 2 Comments / David Rodriguez

Si deseamos analizar el fichero de logs de mysql , lo primero que tenemos que tener es activado en el fichero de configuración my.cnf que guarde todas las consultas con un tiempo mayor al que quieras.

> vi /etc/my.cnf

log-slow-queries=/var/log/mysql-slow-queries.log
slow_query_log=1
long_query_time=3
#log-queries-not-using-indexes

Le hemos puesto que escriba todas las consultas que sobrepasen los 3 segundos. Podemos descomentar la ultima linea y también se escribirán las consultas con join de las tablas que no tengan indices declarados o no los tengan bien declarados. Podemos ver una configuración optima de my.cnf

Una vez reiniciemos el servicio de mysql, tendremos en la ruta determinada, el fichero de log a analizar.

> /etc/rc.d/init.d/mysqld restart

Para analizar el fichero de log de MySQL, tenemos el siguiente mysqldumpslow donde podemos saber todas las opciones que podemos sacar del fichero.

mysqldumpslow -s c -t 10 /var/log/mysql-slow-queries.log > /root/slowqueries.txt

En nuestro caso, sacamos las 10 consultas más lentas que tenemos, ordenadas por el numero de veces que se ha producido esta lentitud, y las metemos en un fichero para luego analizarlas. Tambien podriamos sacar esto por pantalla eliminando la ultima parte de la ruta.

 

 

Posted in: Programacion, servidores / Tagged: linux, mysql

Error en Plesk 504 gateway time-out nginx

octubre 4, 2013 11:15 am / 1 Comment / David Rodriguez

Si te aparece un error 504 gateway time-out y estas administrando un servidor con Plesk y ningx tiene facil solución.

Vamos a crear un fichero de configuración

> vi /etc/nginx/conf.d/nombre.conf

y añadimos el siguiente parámetro:

proxy_read_timeout 600;

Guardamos, reiniciamos el servicio de nginx

> /etc/rc.d/init.d/nginx restart

y ya lo tendriamos solucionado.

Si quereis saber que hace exactamente la propiedad proxy_read_timeout podeis verlo en la documentación oficial de nginx

http://wiki.nginx.org/HttpProxyModule

Posted in: Internet, Programacion, servidores

Error en plesk mod_fcgid: read data timeout in 45 seconds

octubre 4, 2013 10:55 am / 1 Comment / David Rodriguez

Si obtenemos el siguiente error en el archivo error.log del dominio y la pagina del navegador te da el siguiente mensaje de contacte con el Administrador,para solucionarlo tenemos que hacer lo siguiente.

Si lo queremos hacer para todos los dominios del servidor, podemos añadir un fichero a la configuración de nginx

> vi /etc/nginx/conf.d/nombre.conf

y añadimos en este fichero

<IfModule mod_fcgid.c>
ProcessLifeTime 7200
IPCCommTimeout 7200
IPCConnectTimeout 300
</IfModule>

 

Guardamos el fichero y reiniciamos el servicio nginx

> service nginx restart

De esta forma ya lo tendriamos solucionado.

Si solo lo queremos hacer para un dominio de todos los que tenemos configurados en el servidor, ya que estamos utilizando plesk, añadimos un fichero al siguiente directorio:

> vi /var/www/vhosts/tudominio.com/conf/vhost.conf

y añadimos lo mismo de antes

<IfModule mod_fcgid.c>
ProcessLifeTime 7200
IPCCommTimeout 7200
IPCConnectTimeout 300
</IfModule>

Guardamos y reconstruimos ese dominio.

/usr/local/psa/admin/bin/httpdmng –reconfigure-domain tudominio.com

Finalmente reiniciamos el apache.

> service httpd restart

 

De esta forma, ya tendriamos este error en plesk solucionado.

Puedes ver que hacen estas opciones en tu servidor mirando la configuración oficial de apache

http://httpd.apache.org/mod_fcgid/

Posted in: Internet, Programacion, servidores / Tagged: apache, plesk, Programacion

Post Navigation

1 2 3 … 6 Siguiente »

Categorias

  • Base de datos
  • Empresas
  • Internet
  • Mac
  • marketing
  • Otros
  • Prensa
  • Programacion
  • Redes Sociales
  • Retos deportivos
  • Seguridad
  • SEO
  • servidores
  • SPAM
  • Uncategorized
© Copyright 2022 - Blog de David Rodriguez