cd /var/www/ng-klaus.es/
find * -type d -print0 | xargs -0 chmod 0755
find . -type f -print0 | xargs -0 chmod 0644
sudo chown -R $USER:$USER /var/www/ng-klaus.es
cd /var/www/ng-klaus.es/
find * -type d -print0 | xargs -0 chmod 0755
find . -type f -print0 | xargs -0 chmod 0644
sudo chown -R $USER:$USER /var/www/ng-klaus.es
Para trabajar con maquinas virtuales necesitamos un paquete de software de virualización. Los más conocidos y utilizados son VMWare y Virtualbox, pero si queremos probar con una solución 100% software libre la elección más recomendable es KVM. Para empezar instalamos los paquetes necesarios.
sudo apt-get install qemu-kvm libvirt-bin virtinst kvm virt-manager virt-viewer
Una ver realizada la instalación damos acceso a nuestro usuario al grupo kvm
sudo adduser mi-usuario kvm
y lanzamos el demonio.
libvirtd
con esto ya deberiamos de ser capaces de abrir el gestor de maquinas virtuales mediante el siguiente comando
virt-manager
Una vez abierto creamos una nueva conexión del tipo QEMU/KVM. Si tienes problemas para iniciar la conexión por primera vez prueba a reiniciar el equipo.
La creación o importación de maquinas virtuales se realiza de manera sencilla siguiendo los pasos del asistente.
Un saludo,
El proceso que hay que realizar para formatear un disco en Ubuntu desde la terminal es el siguiente. Primero localizamos donde esta montado el dispositivo
$ fdisk -l
Buscamos nuestra unidad entre todas las que aparezcan y vamos a suponer que esta en /dev/sdd
$ umount /dev/sdd $ sudo fdisk /dev/sdd
Lo primero desmontamos la unidad si estuviera montada y ejecutamos fdisk para dicha unidad. Una vez abierto el programa fdisk podemos ver información del disco pulsando la tecla ‘p’, borrar particiones con la tecla ‘d’ seguido del número de la partición, crear nuevas particiones con ‘n’, modificar el tipo de una partición pulsando ‘t’ + el número de partición y más tareas que podemos encontrar si revisamos el listado de comandos disponibles pulsando la tecla ‘m’.
Para realizar el formateo vamos a eliminar todas las particiones y una vez hayamos hecho esto, creamos una nueva respondiendo las preguntas del asistente. Finalmente guardamos los cambios con ‘w’.
Ahora solo queda dar formato al disco mediante el comando mkfs.
$ mkfs.ext4 /dev/sdd1
Donde ext4 se corresponde con el tipo de la partición y /dev/sdd1 para formatear la partición 1 del disco.
Ya solo nos queda crear un directorio para montar nuestro disco recién formateado ( es muy recomendable crear dicho directorio en dentro de la carpeta media), y montarlo allí.
$ mkdir /media/midisco $ mount /dev/sdd1 /media/midisco
El objetivo de esta modificación, es agilizar el proceso de compra de un producto de nuestro catálogo, añadiendo a la vista del listado de productos un selector de cantidad y otro de combinaciones. De este modo, el usuario no necesitará entrar a la pagina del producto, para configurarlo y realizar la compra, sino que desde el propio listado de productos podrá añadir al carro los productos ya configurados.
Para ello editamos los siguientes ficheros:
/* myprestashop/htdocs/controller/front/CategoryController.php */ public function initContent(){ // dentro de initContent() añadimos estas lineas... $products = $this->category->getProducts($this->context->language->id, (int)$this->p, (int)$this->n, $this->orderBy, $this->orderWay); $combinations = $this->getProductAttributeCombinations($products); $this->context->smarty->assign('combinations', $combinations); } public function getProductAttributeCombinations($products) { $combinations = array(); foreach($products as $product) { $product = new Product ($product['id_product'], $this->context->language->id); $combinations[$product->id] = $product->getAttributeCombinations($this->context->language->id); } return $combinations; }
Con esto ya tenemos un objeto que contiene las diferentes combinaciones de cada producto del listado.
<!-- myprestahop/htdocs/themes/mytheme/product-list.tpl {foreach from=$combinations key=k item=comb} {if $k == $product.id_product && isset($comb[0].group_name) } <label class="comb_title">{$comb[0].group_name} </label> <select id="attribute_wanted_{$product.id_product|intval}"> {foreach from=$comb item=attr} <option value="{$attr.id_product_attribute}">{$attr.attribute_name} {if ($attr.price > 0)}--- precio: {($attr.price + $product.price_tax_exc)|string_format:"%.2f"} €{/if}</option> {/foreach} </select> {/if} {/foreach} <label>{l s='Cantidad :'}</label> <input style="width: 40px;text-align: right;" type="number" name="ajax_qty_to_add_to_cart[{$product.id_product|intval}]" id="quantity_wanted_{$product.id_product|intval}" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" /><br> <a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart', true, NULL, $smarty.capture.default, false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product-attribute="{$product.id_product_attribute|intval}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{if isset($product.product_attribute_minimal_quantity) && $product.product_attribute_minimal_quantity >= 1}{$product.product_attribute_minimal_quantity|intval}{else}{$product.minimal_quantity|intval}{/if}"> <span>{l s='Add to cart'}</span> </a>
Editamos la vista añadiendo los dos selectores justo encima del botón de añadir al carrito.
/* myprestashop/htdocs/themes/mytheme/js/modules/blockcart/ajax-cart.js */ //for every 'add' buttons... $(document).off('click', '.ajax_add_to_cart_button').on('click', '.ajax_add_to_cart_button', function(e){ e.preventDefault(); var idProduct = parseInt($(this).data('id-product')); var idProductAttribute = parseInt($(this).data('id-product-attribute')); var minimalQuantity = parseInt($(this).data('minimal_quantity')); if (!minimalQuantity) minimalQuantity = 1; if ($(this).prop('disabled') != 'disabled') // Modificamos la siguiente linea que // invoca a la función ajaxCart.add() // pasandole por parametro los nuevos datos // de que disponemos. ajaxCart.add(idProduct, $('#attribute_wanted_'+idProduct).val() || idProductAttribute, false, this, $('#quantity_wanted_'+idProduct).val() || minimalQuantity); }); //for product page 'add' button... if ($('.cart_block').length) { $(document).off('click', '#add_to_cart button').on('click', '#add_to_cart button', function(e){ e.preventDefault(); ajaxCart.add($('#product_page_product_id').val(), $('#idCombination').val(), true, null, $('#quantity_wanted').val(), null); }); }
Y por último pasamos los nuevos parametros a la funcion ajaxCart.add() para que se agregue al carro la selección del producto incluyendo la cantidad y la combinación seleccionada.
Un saludo,
Si queremos montar un disco duro adicional en Ubuntu y configurarlo para que se monte automáticamente al arrancar el sistema, tenemos que seguir los siguientes pasos.
Conectamos el disco duro al equipo y buscamos la partición asignada
$ fdisk -l
Si por ejemplo la unidad esta en la partición /dev/sde1 y la queremos montar en /media/mydisk creamos el directorio y lo montamos
$ mkdir /media/mydisk $ mount /dev/sde1 /media/mydisk
Una vez montado podemos acceder al contenido de nuestro disco, pero si deseamos que se monte solo la próxima vez que reiniciemos el equipo tenemos que editar el fichero fstab.
$ nano /etc/fstab
y le añadimos la siguiente linea.
UUID=MY_UUID /media/mydisk TYPE defaults,nofail 0 0
Donde MY_UUID y TYPE son dos variables que podemos obtener fácilmente mediante el comando blkid
$ blkid /dev/sde1
Un saludo,
El proceso para instalar o actualizar Plex en Ubuntu es bien sencillo. Tan solo tenemos que descargar el paquete aqui https://www.plex.tv/downloads/ o bien si conocemos la versión podemos descargarlo directamente desde la terminal
$ wget https://downloads.plex.tv/plex-media-server/1.3.4.3285-b46e0ea/plexmediaserver_1.3.4.3285-b46e0ea_amd64.deb
y lo instalamos
$ sudo dpkg -i plexmediaserver_1.3.4.3285-b46e0ea_amd64.deb
Un saludo,
Si durante la instalación de Ubuntu en VirtualBox, la pantalla de la máquina virtual se pixela, impidiendo que puedas seleccionar las opciones de instalación, no se debe sino a un bug… pero tiene una sencilla solución.
Necesitaras refrescar la GUI (interfaz gráfica), ya que no se ha detectado correctamente. Para ello solo hay que salirse de la GUI al modo TTY (Terminal), haciendo CTRL+ALT+F1, y volver nuevamente al modo GUI, con CTRL+ALT+F7. Facil.
Un saludo,
El proceso de instalación es muy sencillo.
$ sudo atp-get update $ sudo apt-get install mongodb
Ahora creamos el directorio donde alojaremos nuestra base de datos. Como MongoDB busca por defecto en /data/db/ vamos a crear las carpetas en esa ruta.
$ sudo mkdir /data $ sudo mkdir /data/db
Finalmente arrancamos MongoDB, pasandole como parametros el puerto y la ruta de la base de datos.
$ sudo mongod --port 8001 --dbpath /data/db/ --fork --logpath /data/mongodb1.log
Para detener el proceso tenemos varias opciones.
1.- O bien entrar en la shell de mongo,
$ mongo --port 8001
y ejecutar los siguientes comandos.
> use admin > db.shutdownServer() > exit
2.- O bien podemos matar el proceso buscando su pid
$ ps -A | grep mongod
y despues matarlo.
$ sudo mongod --port 8001 --shutdown
3.- O más facil.
$ sudo mongod --port 8001 --shutdown
Un saludo.
Para este tutorial necesitamos nodejs. Aqui te muestro como instalar node.js si no lo tienes aún.
Crea un directorio para alojar el servidor y entra en él.
$ mkdir express-app $ cd express-app
con el siguiente comando creamos el fichero package.json de configuracion de nuestro proyecto.
$ npm init
Configuramos el fichero respondiendo a las preguntas que se nos presentan y prestamos especial atencion a la que hace referencia al entry point.
entry point: (index.js)
Aqui vamos a llamarla app.js, aunque cualquier nombre de fichero sería válido.
Siempre dentro del directorio del proyecto instalamos Express.
$ npm install express --save
Ahora solo nos queda programar nuestro servidor por lo que creamos el fichero app.js con el siguiente contenido.
var express = require('express') var app = express() app.get('/', function (req, res) { res.send('Hello World!') }) app.listen(3000, function () { console.log('Example app listening on port 3000!') })
Para iniciarlo solo tenemos que ejecutar el siguiente comando.
$ node app.js
Y abrir nuestro navegador en la direccion http://localhost:3000
Para ver un ejemplo más completo de un servidor express, sobre el que empezar a trabajar en nuestro propio proyecto, podemos utilizar Express Generator.
$ npm install express-generator -g $ express express-generator-app $ cd express-generator-app && npm install
con esto instalamos el generador en la primera linea, creamos los pilares de nuestro proyecto en la segunda e instalamos las dependencias necesarias en la tercera con lo que ya estaría listo para arrancar.
$ DEBUG=express-generator-app:* npm start
Abrimos el navegador en la direccion http://localhost:3000 para ver el resultado.
Un saludo,
Para realizar la instalación de la version LTS de node vía gestor de paquetes, en una rapsberry que corra Ubuntu/Debian, tenemos que instalar curl previamente:
$ sudo apt-get install curl
Ahora con estas dos instrucciones instalamos nodejs:
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - $ sudo apt-get install -y nodejs
Y por último, opcionalmente instalamos el paquete build-essential ,que podriamos necesitar para compilar algunos paquetes de npm en el futuro:
$ sudo apt-get install -y build-essential
Un saludo,