Mikel
(64 comentarios, 196 entradas)
Este usuario no ha compartido ninguna información de perfil
Entradas de Mikel
Cómo citar una página de internet en formato APA
0En la era digital, la información está a solo unos clics de distancia. Ya sea que estés realizando un trabajo académico, un informe profesional o simplemente buscando información para enriquecer tus conocimientos, es fundamental saber cómo citar correctamente las fuentes en tus textos. En este artículo, nos enfocaremos en cómo citar una página de internet en formato APA, el estándar ampliamente utilizado en el ámbito académico y científico.
¿Por qué es importante citar correctamente?
Citar correctamente las fuentes no solo es una cuestión de ética académica, sino también de dar crédito a los autores originales y permitir que los lectores accedan a la información de manera verificable. Además, citar adecuadamente fortalece la credibilidad de tu propio trabajo al respaldar tus afirmaciones con fuentes confiables.
Formato APA para citar una página web
Cuando cites una página web en formato APA, es crucial incluir la información necesaria para que otros puedan localizar la fuente con facilidad. Aquí está la estructura básica para citar una página web:
Apellido, Inicial del nombre. (Año). Título de la página. Recuperado de URL
Vamos a desglosar cada elemento:
- Apellido, Inicial del nombre: Comienza la cita con el apellido del autor, seguido de su inicial. Si no hay autor identificable, puedes omitir este elemento o usar el nombre de la organización responsable del contenido.
- Año: Indica el año en que la página fue publicada o la última fecha de actualización. Si no hay fecha de publicación, puedes usar la abreviatura «s.f.» (sin fecha).
- Título de la página: Incluye el título de la página web. Si no hay título específico, puedes utilizar una descripción breve pero precisa del contenido.
- Recuperado de URL: Finaliza la cita con la URL completa de la página. Asegúrate de que la URL sea precisa y esté activa para que otros puedan acceder a la fuente fácilmente.
Ejemplo de cita en formato APA
A continuación, se presenta un ejemplo de cómo citar una página web utilizando el formato APA:
Smith, J. (2023). Importancia de la conservación del medio ambiente. Recuperado de https://www.ejemplo.com/medioambiente
En este ejemplo:
- Smith, J. es el autor (o el responsable del contenido).
- (2023) indica el año de publicación.
- Importancia de la conservación del medio ambiente es el título de la página web.
- Recuperado de https://www.ejemplo.com/medioambiente es la URL de la página.
Conclusión
Saber cómo citar una página web en formato APA es esencial para respaldar tus argumentos con fuentes confiables y dar crédito adecuado a los autores originales. Recuerda seguir la estructura proporcionada y prestar atención a los detalles, como la ortografía correcta de los nombres y la precisión de las URL. Al citar correctamente, contribuyes a la integridad académica y profesional, y construyes una base sólida para tus propias investigaciones y trabajos.
Dominando el comando SCP en Linux para transferir archivos: Una guía para usuarios iniciados
0En el vasto mundo de la administración de sistemas y la transferencia de archivos, el comando «scp"
(Secure Copy Protocol) emerge como una herramienta fundamental. Si eres nuevo en el mundo de la administración de sistemas o simplemente estás comenzando tu viaje en el mundo de la línea de comandos, «scp"
es una herramienta que pronto se convertirá en tu mejor aliado. En este artículo, exploraremos qué es «scp
«, cómo funciona y cómo puedes empezar a usarlo para transferir archivos de forma segura entre sistemas remotos.
¿Qué es SCP?
«scp
» es un comando utilizado en sistemas basados en Unix y Unix-like que permite la transferencia segura de archivos entre sistemas locales y remotos a través de SSH (Secure Shell). Utiliza el mismo protocolo de autenticación y encriptación que SSH, lo que garantiza que tus datos se transfieran de manera segura a través de redes inseguras como Internet.
Sintaxis Básica de SCP
La sintaxis básica de «scp"
es bastante sencilla. La estructura general del comando es la siguiente:
scp [opciones] origen destino
origen
: Especifica la ubicación del archivo o directorio que deseas transferir. Puede ser un archivo local o remoto.destino
: Especifica la ubicación a la que deseas transferir el archivo o directorio. Al igual que el origen, puede ser una ubicación local o remota.
Ejemplos Prácticos
Copiar un Archivo Local a un Servidor Remoto
Para copiar un archivo desde tu sistema local a un servidor remoto, puedes usar el siguiente comando:
scp archivo.txt usuario@servidor:/ruta/destino
Esto copiará el archivo «archivo.txt"
al servidor remoto especificado en la ruta «/ruta/destino
«, autenticándote con el nombre de usuario usuario
.
Copiar un Archivo Remoto a tu Sistema Local
Si deseas copiar un archivo desde un servidor remoto a tu sistema local, simplemente invierte el orden del origen y el destino:
scp usuario@servidor:/ruta/archivo_remoto.txt /ruta/destino_local
Esto copiará el archivo «archivo_remoto.txt"
del servidor remoto a la ruta local «/ruta/destino_local
«.
Opciones Útiles de SCP
scp
ofrece una variedad de opciones que puedes utilizar para personalizar tu experiencia de transferencia de archivos. Algunas de las opciones más útiles incluyen:
-r
: Permite la copia recursiva de directorios y sus contenidos.-P puerto
: Especifica el puerto SSH a utilizar en lugar del puerto estándar (22).-v
: Habilita el modo verboso, lo que proporciona una salida detallada para depurar problemas.-C
: Habilita la compresión durante la transferencia para mejorar el rendimiento en conexiones lentas.
Conclusiones
«scp"
es una herramienta poderosa y fácil de usar para transferir archivos de forma segura entre sistemas remotos y locales. Con su integración con SSH, puedes estar seguro de que tus datos se transfieren de manera segura en todo momento. A medida que te familiarices más con la línea de comandos y la administración de sistemas, «scp
» se convertirá en una herramienta indispensable en tu caja de herramientas.
Cómo copiar y restaurar un repositorio Subversion en Linux
0Subversion es un software de control de versiones que precedió a Git, y que en su momento disponía del monopolio de este tipo de software.
Debido a que aun quedan algunos repositorios en Subversion (el mismo WordPress aun lo usa), es posible que puedas verte en la situación de disponer de código legado que aun use este CVS.
Si has llegado hasta aquí, bien porque el repositorio de Subversion te ha dado un error y quieres restaurar un backup de tu repositorio, o bien porque estás moviendo el repositorio a una nueva máquina, o simplemente porque quieres asegurarte de no perder los datos, te voy a indicar cómo realizar una copia o backup de tu repositorio de Subversion y restaurarlo donde lo necesites.
Realizar una copia de respaldo (backup) de un repositorio Subversion usando «svnadmin dump»
El comando «svnadmin dump» es el que realizará el trabajo por nosotros. creará un fichero de los datos del repositorio.
svnadmin dump [ruta_del_repositorio] > [nombre_del_fichero_de_respaldo]
Por ejemplo, para realizar un backup del repositorio localizado en la ruta /var/repos/mi_repo habría que ejecutar el siguiente comando:
svnadmin dump /var/repos/mi_repo > backup_mi_repo.dump
Restaurar una copia de respaldo (backup) desde un fichero usando «svnadmin load»
El funcionamiento del comando «svnadmin load» es igual de simple:
svnadmin load [ruta_del_repositorio] < [nombre_del_fichero_de_respaldo]
Por ejemplo, si quisieramos restaurar la copia del repositorio en el fichero anterior al nuevo repositorio que se encuentra en /var/repos/mi_nuevo_repo:
svnadmin load /var/repos/mi_nuevo_repo < backup_mi_repo.dump
Este ejemplo considera que el directorio en el que se restaura la copia es un repositorio nuevo, creado con el comando:
svnadmin create /var/repos/mi_nuevo_repo
Realizar una copia de respaldo (backup) incremental usando «svnadmin dump»
Si realizas backups frecuentes es posible que solo te interesen los cambios realizados desde la última vez que realizaste el backup, para ello la mejor forma es usar el parámetro «–incremental» y especificar la revisión desde la que comenzar (y terminar) usando «-r»:
svnadmin dump [ruta_del_repositorio] --incremental -r [revision_inicio]:[revision_final] > [nombre_del_fichero_de_respaldo]
El parámetro «-r» puede tener como valor solo la revisión de inicio, o bien usar «HEAD» para la revisión final:
svnadmin dump /var/repos/mi_repo --incremental -r 10:HEAD > backup_mi_repo_incremental.dump
Restaurando una copia de respaldo (backup) usando «svnadmin load»
No es diferente a la restauración de la copia de respaldo normal:
svnadmin load /var/repos/mi_nuevo_repo < backup_mi_repo_incremental.dump
Comprimir el fichero de la copia de respaldo
Esto se puede hacer fácilmente con «gzip»:
gzip backup_mi_repo.dump
Este comando generará un fichero con extensión «.gz» y un tamaño mucho más reducido respecto al fichero original, que fácilmente pueden ser cientos de gigabytes.
Para descomprimir el fichero hay que utilizar «gunzip»:
gunzip backup_mi_repo.dump.gz
Cassandra 2.x y PHP para desarrolladores SQL: El modelo de datos
0Si has trabajado con una base de datos relacional tal vez te resulte algo confuso al principio comprender el modelo de datos que usa Cassandra, intentaré ser lo más claro posible, pero si te surgen preguntas no dudes en dejarlas en los comentarios.
Columns
El elemento más básico de la base de datos Cassandra es la columna, se compone de tres elementos: nombre de la columna, valor y timestamp. Os muestro un ejemplo como un array:
array( "nombre" => "email", "valor" => "webmaster@localhost.com", "timestamp" => time(), );
Cassandra añade el timestamp automáticamente, con lo que otra forma de representarlo es como un conjunto clave:valor:
nombre_columna:valor
Super columnas (En desuso) y Columnas Compuestas
Las super columnas son un conjunto de columnas con sus correspondientes valores:
array( "nombre_superColumna" => array( "usuario1" => array( "nombre" => "email", "valor" => "webmaster@localhost.com", "timestamp" => time() ), "usuario2" => array( "nombre" => "email", "valor" => "email@email.com", "timestamp" => time() ), "usuario3" => array( "nombre" => "email", "valor" => "otroemail@otroemail.com", "timestamp" => time() ), ), )
Las super columnas tienen algunos problemas de rendimiento, sobre todo al ordenarlas. Para solucionarlo se crearon las columnas compuestas que se benefician de los comparadores compuestos, y sobretodo, de CQL 3 (Cassandra Query Language).
Familia de columnas
Es el conjunto de columnas o super columnas. Me explico:
Las column Family o familia de columnas se puede configurar de dos maneras: como Super o como Standard. Si se elige la opción Standard, en la column family solo se podrán guardar columnas, no super columnas. En cambio si la column family está configurada como Super podrá guardar, además de las columnas, las super columnas. Esta flexibilidad permite jugar con la base de datos y adaptarla a nuestras necesidades.
Ejemplo:
array( "name" => "ColumnFamily", array( "name" => "SuperColumn", array( "colums" ) ), )
Keyspace
El keyspace es nuestra base de datos, donde alojaremos todas las columFamilies que necesitemos.
Ejemplo:
array( "name" => "keyspace", array("name" => "columnFamily", array( [...] ), ), )
Solución: Error en NetBeans al conectar con un repositorio Subversion: handshake_failure
0Hace unos días me encontré con este problema. Fue después de actualizar Java a su versión más actual. Al ir a realizar un commit desde NetBeans 8.1 a un repositorio Subversion me devolvió este error, y claro, no pude realizar el commit.
Después de mucho indagar en el problema encontré que el JDK 1.8 ha abandonado el cifrado RC4 por inseguro, que es el cifrado que utilizaba el servidor donde tengo el repositorio. Así que como no tengo acceso al servidor, lo más adecuado es instalar la versión 1.7 de JDK y modificar NetBeans para que utilice esa versión.
Para indicarle a NetBeans la versión de JDK que debe usar debemos buscar un archivo llamado netbeans.conf, que habitualmente estará en el siguiente directorio:
C:\Program Files\NetBeans 8.x\etc\netbeans.conf
En ese archivo hay que buscar la variable netbeans_jdkhome y añadir la ruta de la versión del JDK:
netbeans_jdkhome="C:\Program Files\Java\jdk1.7xxxxx"
En mi caso ya tenía instalada la versión 1.7 de JDK, si tu no la tuvieras tendrás que instalarla primero
Guardamos el archivo, abrimos NetBeans y volvemos a hacer ese commit que se resistía.
Cassandra 2.x y PHP para desarrolladores SQL: Instalación
0La base de datos No-SQL Cassandra fue creada por Facebook a causa de la necesidad de disponer de una base de datos distribuida de alto rendimiento, flexible, tolerante a fallos, escalable y que fuese capaz de procesar grandes cantidades de datos. Más tarde fue liberada bajo licencia Apache y actualmente es utilizada principalmente por empresas de internet con proyectos con un alto uso de base de datos como Twitter.
En esta serie de artículos iré desgranando la instalación, funcionamiento y desarrollo de aplicaciones en PHP con Cassandra, comparando las sentencias utilizadas para insertar, actualizar, etc de SQL con los métodos a utilizar en Cassandra. Por desgracia al ser algo completamente distinto a cualquier base de datos SQL tendré que añadir algo de teoría, pero intentaré que os resulte lo más ameno posible.
Al toro.
REQUISITOS
Para la realización de esta guía se utilizará Debian 8 Jessie como sistema operativo.
Doy por hecho que ya se dispone de un servidor web Apache con PHP instalado en la máquina de testeo que se esté usando. Las aplicaciones que se van a instalar han sido probadas en una máquina virtual Debian 8 Jessie utilizando como aplicación de virtualización VirtualBox, instalado en un host Debian 8 Jessie.
En un servidor de producción recomiendo que tenga bastante RAM (por encima de 1GB, ya veremos más adelante el porqué. En la máquina virtual que uso de testeo dispone de 700 MB y funciona bien, pero en producción no es lo recomendable).
Instalaremos la base de datos Cassandra y PHP-Driver que nos dará la extensión para PHP y una abstracción de la base de datos donde tenemos los métodos básicos para trabajar con Cassandra: insertar, actualizar, borrar, crear, etc.
PREPARANDO EL SISTEMA
Antes de empezar a instalar debemos actualizar el sistema operativo de la forma habitual:
apt-get update apt-get upgrade
Una vez actualizado el sistema empezamos a instalar.
INSTALANDO CASSANDRA
Lo primero que necesitamos hacer para instalar Cassandra es editar los repositorios de Debian:
nano /etc/apt/sources.list
Una vez que se abra el editor añadimos las siguientes lineas:
deb http://www.apache.org/dist/cassandra/debian/ 21x main deb-src http://www.apache.org/dist/cassandra/debian/ 21x main
Como podrás observar después de la ruta del repositorio se ha añadido «21x» esto indica el número de versión a obtener, en este caso es la versión actual de cassandra al crear este post. No se indica el número de parche, es decir, actualmente se puede descargar Cassandra 2.1.
Si dentro de unos meses sale la versión «2.2» solo tendrás que cambiar el uno por el dos.
Volvemos a consola y actualizamos los repositorios.
apt-get update
Nos dará un error en las claves gpg. Procedemos a actualizarlas con las siguientes instrucciones:
gpg --keyserver pgp.mit.edu --recv-keys F758CE318D77295D gpg --export --armor F758CE318D77295D | sudo apt-key add -
Ojo con el guión del final, hay que añadirlo, sino dará error.
Con el paquete 0.7.5 nos da otro error de clave gpg así que también instalamos esta de la misma manera:
gpg --keyserver pgp.mit.edu --recv-keys 2B5C1B00 gpg --export --armor 2B5C1B00 | sudo apt-key add -
También necesitarás añadir la siguiente clave:
gpg --keyserver pgp.mit.edu --recv-keys 0353B12C gpg --export --armor 0353B12C | sudo apt-key add -
Verificamos que tenemos el sistema actualizado.
apt-get update apt-get upgrade
Actualizamos todos los paquetes que aparezcan.
Procedemos a instalar el paquete de la base de datos NoSQL Cassandra:
apt-get install cassandra
Cassandra necesita Java para funcionar. Debian 8 ya dispone de OpenJDK en su versión 7, y aunque desde los desarrolladores de Cassandra no recomiendan su uso, para los ejemplos que vamos a desarrollar nos sirve.
En producción, o si vas a desarrollar un proyecto con Cassandra tendrás que instalar la última versión de Java de Oracle.
Por último, ejecutamos el siguiente comando para construir las dependencias:
dpkg-buildpackage -uc -us
Si el sistema no te reconoce el comando es porque te falta el paquete dpkg-dev. Instálalo de la forma habitual, y vuelve a intentarlo:
apt-get install dpkg-dev
INSTALANDO DATASTAX PHP-DRIVER PARA CASSANDRA
Datastax PHP driver, es el controlador y abstracción de base de datos que utilizaremos para conectar con Cassandra desde PHP. Este controlador nos da la posibilidad de trabajar tanto con CQL (Cassandra Query Language. Parecido a SQL) y/o el protocolo binario de Cassandra.
Aunque en la página del repositorio nos indican varias formas de instalar el controlador (https://github.com/datastax/php-driver/blob/master/ext/README.md), el único que me ha funcionado correctamente ha sido el de descargar las fuentes y compilarlo. Tú puedes probar los otros métodos, pero el que te voy a indicar funciona en Debian 8.
Las siguientes instrucciones deberías ejecutarlas en el ordenador de desarrollo y no en el servidor o máquina virtual donde tengas instalada la base de datos. (A no ser que la hayas instalado en el ordenador de desarrollo).
Instalamos algunos paquetes necesarios para realizar la compilación:
apt-get install g++ make cmake libuv-dev libssl-dev libgmp-dev php5 php5-dev openssl libpcre3-dev git
Primero necesitamos descargar las fuentes desde GitHub, utiliza el directorio que prefieras:
git clone https://github.com/datastax/php-driver.git cd php-driver git submodule update --init cd ext ./install.sh
Estos comandos nos ha creado un archivo llamado cassandra.so en /usr/lib/php5/20131226/ (el número del directorio puede variar en tu instalación. Revísalo).
Ahora creamos un archivo .ini para la extensión de PHP:
nano /etc/php5/mods-available/cassandra.ini
Dentro de ese archivo añadimos las siguientes líneas:
; configuration for PHP driver Cassandra extension=cassandra.so
Guardamos.
Le indicamos a PHP que nos active la extensión
php5enmod cassandra
Y reiniciamos Apache:
/etc/init.d/apache2 restart
Ahora si ejecutamos el siguiente comando para mostrar los módulos de PHP debería aparecernos Cassandra, si no es así es que algo a fallado:
php -m
INICIANDO CASSANDRA POR PRIMERA VEZ
Ahora que ya tenemos todo instalado es el momento de arrancar Cassandra. Esto es algo muy sencillo, solo tienes que ejecutar el siguiente comando:
cassandra -f
También tienes otras maneras de iniciar Cassandra. Por ejemplo como servicio:
service cassandra start
Si al iniciar Cassandra te da un error de memoria, haz lo siguiente:
Accede a /etc/cassandra y edita el archivo cassandra-env.sh:
cd /etc/cassandra nano cassandra-env.sh
Busca las siguientes dos líneas:
#MAX_HEAP_SIZE="4G" #HEAP_NEWSIZE="800M"
Descomenta las dos líneas, y sustituye los valores por unos más bajos. En mi caso he bajado MAX_HEAP_SIZE a 2G y HEAP_NEWSIZE lo he dejado como está.
Estas dos líneas permiten configurar la cantidad de memoria RAM que Cassandra utilizará.
Ahora vamos a utilizar el código de ejemplo que hay en el repositorio de PHP-Driver para probar que todo funciona correctamente.
Crea un archivo PHP con el siguiente contenido:
[codesyntax lang=»php»]
<?php $cluster = Cassandra::cluster() // connects to localhost by default ->build(); $keyspace = 'system'; $session = $cluster->connect($keyspace); // create session, optionally scoped to a keyspace $statement = new Cassandra\SimpleStatement( // also supports prepared and batch statements 'SELECT keyspace_name, columnfamily_name FROM schema_columnfamilies' ); $future = $session->executeAsync($statement); // fully asynchronous and easy parallel execution $result = $future->get(); // wait for the result, with an optional timeout foreach ($result as $row) { // results and rows implement Iterator, Countable and ArrayAccess printf("The keyspace %s has a table called %s\n", $row['keyspace_name'], $row['columnfamily_name']); }
[/codesyntax]
Este código devuelve las tablas que contiene el Keyspace «system» (Más adelante explicaré que es eso). Si te da error como este: «No hosts available for the control connection», puede ser por dos razones, o bien no está funcionando Cassandra, con lo que tendrás que iniciarla con uno de los comandos anteriores, o bien no la tienes en localhost sino en un servidor externo o máquina virtual.
Para resolverlo tendrás que sustituir las siguientes líneas:
[codesyntax lang=»php»]
<?php $cluster = Cassandra::cluster() // connects to localhost by default ->build();
[/codesyntax]
Por estas otras:
[codesyntax lang=»php»]
<?php $cluster = Cassandra::cluster() ->withContactPoints('127.0.0.1') ->build();
[/codesyntax]
Sí, solo añadimos «->withContactPoints(‘127.0.0.1’)», con este método le estamos indicando la ip de nuestro servidor. En tu caso es posible que tengas que sustituir «127.0.0.1» por la ip de tu servidor o máquina virtual. Más adelante explicaré cada método, pero para verificar que está funcionando todo correctamente es suficiente.
Con esto finalizamos la instalación de Cassandra para que pueda ser utilizada por PHP.
Subversion y Apache, corregir el error 413 Request Entity Too Large
0Algunas veces, cuando realizamos commits con muchos archivos, Subversion no es capaz de procesar el commit y nos devuelve el error «413 Request Entity Too Large». Este error se produce porque el commit que estás realizando tiene un tamaño superior al que tiene configurado Subversion al hacer la petición.
Para corregirlo hay que añadir los siguientes parámetros al virtual host del servidor de Subversion:
[codesyntax lang=»apache»]
LimitXMLRequestBody 0 LimitRequestBody 0
[/codesyntax]
Con estos dos parámetros eliminarás el límite impuesto por Subversion.
Si lo deseas, en vez de eliminar el límite puedes aumentarlo a 64MB,256MB, etc.