Todo el mundo deberia saber programar

Video subtitulado de http://www.code.org/ en el cual se explica por que todo el mundo debería saber programar

Anuncios

Obtener Nombre del día de la Semana

Ismael García. ( @tuxisma )

Si quieres obtener el nombre del día de la semana en php fácil y sencillo:

date_default_timezone_set(‘America/Mexico_City’); //Asignas la zona horaria de tu país.
setlocale(LC_TIME, ‘spanish’); //Fijamos el tiempo local
$diaSemana=strftime(“%A”); // Guardamos el Nombre del día de la semana.
echo “Hoy es:”.$diaSemana; //Imprimimos El día.

Ver la entrada original

Restringir el acceso con contraseña a sitios web – Apache Tips

Si queremos que a un directorio de nuestra web o a un sitio, poner una contraseña para poder acceder, de una manera rapida y sin tener que programar nada, si el servidor web que estamos usando es Apache podemos hacerlo de una manera sencilla con el fichero .htaccess

Antes de crear el fichero tenemos que crear los usuarios que podrán acceder, para hacerlo utilizaremos el comando htpasswd


htpasswd -c /ruta/completa/ficheroUsuarios usuario

A continuación de lanzar el comando nos pedira dos veces que pongamos la contraseña del usuario.

Con la opción -c creamos el fichero, si este fichero ya existe y solo queremos agregar un nuevo usuario usaremos el comando pero sin la opción -c

Una vez tenemos creado el fichero de contraseñas y ya tenemos un usuario creamos, si no tenemos el fichero, o editamos el fichero .htaccess y ponemos lo siguiente.


En este caso estoy estableciendo una autentificación basica basada en fichero y se require un usuario valido para poder acceder al sitio.
Mas información http://httpd.apache.org/docs/2.2/howto/auth.html

Contar elementos que cumplan una condición o varias – Spreadsheets Tips

Contar los que cumplan un solo criterio

Supongamos la siguiente situación. Tenemos una tabla con datos y en una de las columnas tenemos 2 posibles valores, si o no, y queremos contar cuantas veces esta el valor si y cuantas esta el valor no. Ademas queremos que este total se actualize según se introduzcan datos en esa columna.

Para realizar este calculo en Excel o Numbers o LibreOffice Calc utilizaremos la función CONTAR.SI

= CONTAR.SI(rango;valor)

Si por ejemplo queremos saber cuantas veces se ha escrito el valor ‘Si’ en la columna A escribiremos:

= CONTAR.SI(A:A; "Si")

En LibreOffice Calc la función es la misma, con una salvedad, la cual puede resultar un poco incomoda, no podemos seleccionar la columna entera y tenemos que definir el rango. Por lo demás la formula es igual.

En Numbers la función es tambien igual pero en el rango si seleccionamos la columna A solo hace falta poner A.

Importante: Hay que tener en cuenta las dobles comillas para encerrar textos literales y el ‘;’ para separar los parámetros.

En el caso que estemos utilizando Google Spreadsheets, hay que tener en cuenta que las formulas no han sido traducidas al castellano, por lo tanto tenemos que usarlo como si estuviéramos usando el Excel en Ingles y usaríamos la función COUNTIF

= COUNTIF(rango, valor)

Para saber cuantas veces se ha escrito el valor ‘Si’ en la columna A

= COUNTIF(A:A, "Si")

Una de las diferencias entre las versiones de los programas de hojas de calculo en Español o en ingles es que en las versiones inglesas usan la coma (,) como separador de parámetros en la función.

 

Contar los que cumplan mas de un criterio

La función anterior solo nos permite buscar en una columna un criterio, pero ¿y si necesitamos contar los que cumplan dos criterios? En ese caso si estamos utilizando Excel, Numbers o Libreoffice Calc utilizaremos la función: CONTAR.SI.CONJUNTO()

= CONTAR.SI.CONJUNTO(rango1;criterio1;rango2;criterio2;...)

Si tenemos la columna A con valores Si o No y la columna B con valores Si o No y queremos saber cuantas veces si el valor de la A es Si el valor de la B es Si

= CONTAR.SI.CONJUNTO(A:A;"Si";B:B;"Si")

En el caso de Google Spreadsheets no existe una función equivalente y para obtener el resultado tenemos que utilizar la función ARRAYFORMULA con el COUNTIF anidado.

= ARRAYFORMULA( COUNTIF(rango1&rango2&..., criterio1&criterio2&...) )

De tal manera que para obtener nuestro resultado tendríamos que hacer lo siguiente

= ARRAYFORMULA( countif(A:A&B:B, "Si"&"Si") )

 

Inauguramos la sección de hojas de calculo – Spreadsheets Tips

Con esta entrada inauguramos una nueva sección en la cual voy a contar trucos y funciones para usar en los programas de hojas de calculo, y digo hojas de calculo y no Excel, ya que hoy en dia no solo se usa el Excel, sino que se pueden usar otras alternativas comerciales como Numbers para Mac, o alternativas gratuitas como LibreOffice o Google Spreadsheet, y no todas tienen las mismas funcionalidades, aunque el trabajo basico es bastante parecido, por no decir igual.

Soy consciente que la categoria principal en la cual voy a ubicar estas entradas (Programación) apriori no seria la categoria mas adecuada para estas, pero si nos paramos a pensar un momento, estos programas tienen funciones propias y tienes que cumplir una estructura para poder realizar los cálculos, por no hablar de la programación con la cual funcionan las macros.

Aunque la mayoría de las entradas estarán relacionadas con Excel, intentare realizar las mismas funciones tanto para LibreOffice, Google Spreadsheet y Numbers.

Espero que sean de utilidad para todos.

Selección de datos entre fechas – MySQL Tips

MySQLUna de las consultas mas frecuentes que solemos realizar es la de devolver datos entre fechas. La manera mas sencilla de realizar es utilizar el operador de comparación ‘BETWEEN’. Por ejemplo si queremos ver los datos entre dos fechas lo haremos de la siguiente manera. En este ejemplo la fecha mas baja es ‘fechaMin’ y la alta ‘fechaMax’, y hay que tener en cuenta que todos los argumentos tienen que ser del mismo tipo.


SELECT * FROM `miTabla` WHERE `miCampoFecha` BETWEEN 'fechaMin'  AND 'fechaMax';

Si el valor de `micampoFecha` es mayor o igual que ‘fechaMin’ y menor o igual que ‘fechaMax’  ‘BETWEEN’ devolvera 1 si no devolvera 0. Esto es lo mismo que hacer lo siguiente.


SELECT * FROM `miTabla` WHERE ('fechaMin' <= `miCampoFecha` AND `miCampoFecha` <= 'fechaMax')

Si lo que queremos es mostrar las fechas que no esten comprendidas dentro de este rango añadiremos ‘NOT’  delante de ‘BETWEEN’


SELECT * FROM `miTabla` WHERE `miCampoFecha` NOT BETWEEN 'fechaMin'  AND 'fechaMax';

Para mas información acerca de los operadores de comparación en MySQL hacer clic aquí

Indicador del tiempo en Ubuntu 13.04

Después de un tiempo usando la Ubuntu 12.04 lts, he decidido actualizarla a la versión actual (la 13.04) y no esperar a la siguiente lts.  Decir que me encontrado algún que otro problema al realizar la actualización, sobre todo con la tarjeta gráfica, lo cual tratare algún día aquí, ya que en esta entrada voy a hablar de algo que he echado en falta, que aunque puede parecer una tontería pero a mi me gusta tenerlo, que es el indicador del tiempo. En la versión 12.14 se podía instalar normalmente y este se ponía al lado del reloj y cambiaba según el tiempo. Mi sorpresa ha sido que en esta nueva versión ha desaparecido, además lo mas extraño es que si accedes al centro de software Ubuntu y buscas weather te aparece pero no te da opción de instalarlo, y además las opciones que me sugerían no me acababan de convencer, asi que Googleando un poco descubrí My-Weather-Indicator el cual esta muy bien, y su instalación no es nada complicada.

Abrimos una terminal (Ctrl + Alt + t) y tecleamos lo siguiente

sudo add-apt-repository ppa:atareao/atareao

Una vez agregado el repositorio actualizamos la base de datos de paquetes

sudo apt-get update

Y finalmente instalamos el my-weather-indicator

sudo apt-get install my-weather-indicator

Una vez instalado buscamos la aplicación en ‘buscar en su equipo o en linea’ y teclemaos my-weather-indicator, el cual nos aparecerá y hacemos clic para abrirlo, lo configuramos como queramos y listo, ya tenemos nuestro indicador del tiempo.