LATEST ARTICLES

noviembre 7th 2018

Como tener un repositorio personalizado no asociado a una entidad en Symfony

Número de lecturas: 158
{lang: 'es-419'}

Acá esta el enlace en español en stackoverflow: https://es.stackoverflow.com/questions/211532/como-tener-un-repositorio-personalizado-no-asociado-a-una-entidad-en-symfony

Esta pregunta la coloque en la versión de ingles de stackoverflow: https://stackoverflow.com/questions/53090535/having-a-custom-repository-not-associated-to-an-entity-in-symfony

Luego de varias preguntas pude tener la respuesta que necesitaba, sobre la misma genere un resumen, espero les sirva: https://stackoverflow.com/a/53176838/2400373

Uso symfony 3.3.x . De esta manera solucione el problema

Archivo service.yml:

//service.yml
services:
     app.queriesmanager:
          class: AppBundle\Services\QueriesManager
          autowire: true

Archivo AppBundle\Services\QueriesManager.php

//AppBundle\Services\QueriesManager.php
<?php
 
namespace AppBundle\Services;
 
use Doctrine\ORM\EntityManagerInterface;
 
class QueriesManager  {
    protected $entityManager;
 
    public function __construct(EntityManagerInterface $entityManager) {
        $this->entityManager = $entityManager;
    }
 
    public function searchAdvance($var,$var1,$var2,$var3)
    {
        $dql1 = "";
        $dql2 = "";
        $dql = "SELECT pl
                      FROM BackendBundle:Products p
                      JOIN BackendBundle:Pricelist pl
                      WITH p.peachitemid =  pl.peachitemid
                      WHERE p.hasimages =  1
                      AND p.active = 'FALSE'
                      AND p.imagesamazon1 = 1
                      AND p.imagesamazon2 = 1
                      AND (p.descriptionforsales like '%$var%' OR p.itemid like '%$var%')";
 
        if ($var1 != "select") {
            $dql1 = " AND p.newcategory='$var1' AND p.newsubcategory='$var2' ";
        }
        if ($var3 == "150") {
            $dql2 = " AND pl.retail < 150";
        }
        if ($var3 == "200") {
            $dql2 = " AND pl.retail > 150 AND pl.retail < 250 ";
        }
        if ($var3 == "250") {
            $dql2 = " AND pl.retail > 250 ";
        }
 
        $dql1 .= $dql2;
        $dql .= $dql1;
        $query=$this->entityManager->createQuery($dql);
        $query = $query->getResult();
        return $query;
 
    }
}

Archivo DefaultController.php

//Use the service in controller
$query=$this->get('app.queriesmanager')->searchAdvance($var,$var1,$var2,$var3);

Espero les pueda ayudar.

octubre 29th 2018

¿Cuánta SWAP debería usarse en GNU/Linux?

Número de lecturas: 190
{lang: 'es-419'}

¿Cuánto debería ser el tamaño del intercambio? ¿El intercambio debe ser el doble del tamaño de la RAM o debería ser la mitad del tamaño de la RAM? ¿Debo cambiar si mi sistema tiene varios GB de RAM?

Quizás estas son las preguntas más frecuentes sobre la elección del tamaño de intercambio durante la instalación de Linux.

No es nada nuevo. Siempre ha habido mucha confusión en cuanto al tamaño del intercambio.

Durante mucho tiempo, el tamaño de intercambio recomendado fue el doble del tamaño de la RAM, pero esa regla de oro ya no se aplica a las computadoras modernas. Tenemos sistemas con tamaños de RAM de hasta 128 GB, muchas computadoras viejas ni siquiera tienen esta cantidad de disco duro.

Pero, ¿qué tamaño de intercambio asignarías a un sistema con 32 GB de RAM? 64 GB? Eso sería una pérdida ridícula de disco duro, ¿no?

Antes de ver cuánto tamaño de intercambio debe tener, primero sabremos rápidamente una o dos cosas sobre la memoria de intercambio. Esto te ayudará a entender por qué se usa el intercambio.

La explicación se ha simplificado para (casi) la comprensión de todos.

Un sistema usa la memoria de acceso aleatorio (también conocida como RAM) cuando ejecuta una aplicación. Cuando hay pocas aplicaciones ejecutándose, tu sistema se administra con la RAM disponible.

Pero si hay demasiadas aplicaciones en ejecución o si las aplicaciones necesitan mucha RAM, entonces el sistema se mete en problemas. Si una aplicación necesita más memoria pero toda la RAM ya está en uso, la aplicación se bloqueará.

El intercambio actúa como un respiro para tu sistema cuando la RAM está agotada. Lo que sucede aquí es que cuando la memoria RAM está agotada,  Linux usa parte de la memoria del disco duro y la asigna a la aplicación en ejecución.

Eso suena genial. Esto significa que si asignas como 50 GB de tamaño de intercambio, tu sistema puede ejecutar cientos o quizás miles de aplicaciones al mismo tiempo? ¡INCORRECTO!

Ya ves, la velocidad importa aquí. Un SSD accede a los datos en microsegundos mientras que, como un disco duro normal, accede a los datos en milisegundos. Esto significa que la memoria RAM es 1000 veces más rápida que la SSD y 100.000 veces más rápida que la unidad de disco duro habitual.

Si una aplicación depende demasiado del intercambio, su rendimiento se degradará ya que no puede acceder a los datos a la misma velocidad que lo haría en la memoria RAM. Entonces, en lugar de tomar 1 segundo para una tarea, puede llevar varios minutos completar la misma tarea. Dejará la aplicación casi inútil. Esto se conoce como thrashing (agitación) en términos informáticos.

En otras palabras, un pequeño intercambio es útil. Mucho de esto no servirá para nada.

¿Por qué es necesario el intercambio?

Hay varias razones por las cuales necesitarías un intercambio.

Si tu sistema tiene memoria RAM de menos de 1 GB, debes usar swap ya que la mayoría de las aplicaciones agotarían la memoria RAM pronto.
Si tu sistema usa aplicaciones de recursos pesados ??como editores de video, sería una buena idea usar algún espacio de intercambio ya que tu RAM puede agotarse aquí.
Si usas hibernación, debes agregar intercambio porque el contenido de la memoria RAM se escribirá en la partición de intercambio. Esto también significa que el tamaño del intercambio debe ser al menos del tamaño de la RAM.

Evita eventos extraños como un programa que se vuelve loco y come RAM.

¿Necesitas cambiar si tienes mucha RAM?Esta es una buena pregunta de hecho. Si tienes 32 GB o 64 GB de RAM, es posible que tu sistema nunca use la RAM completa y, por lo tanto, nunca use la partición swap.

Supongo que si tu sistema tiene 32 GB de RAM, también debería tener un disco duro de 100 GB. Asignar un par de GB de intercambio no hará daño. Proporcionará una capa adicional de ‘estabilidad’ si un programa defectuoso comienza a usar incorrectamente la RAM.

¿Puedes usar Linux sin intercambio?

Sí, puedes, especialmente si tu sistema tiene mucha RAM. Pero como se explicó en la sección anterior, un poco de intercambio siempre es aconsejable.

¿Cuánto debería ser el tamaño del intercambio?

Ahora viene la gran pregunta. ¿Cuál debería ser el espacio de intercambio ideal para una instalación de Linux?

Y el problema aquí es que no hay una respuesta definitiva a esta pregunta sobre el tamaño del intercambio. Solo hay recomendaciones.

Diferentes personas tienen una opinión diferente sobre el tamaño de intercambio ideal. Incluso las principales distribuciones de Linux no tienen la misma pauta de tamaño de intercambio.

Si sigues la sugerencia de Red Hat, recomiendan un tamaño de intercambio del 20% de RAM para los sistemas modernos (es decir, 4 GB o más de RAM).

CentOS tiene una recomendación diferente para el tamaño de la partición de intercambio. Sugiere que el tamaño del intercambio sea:

Dos veces el tamaño de la RAM si la RAM es inferior a 2 GB.
Tamaño de la RAM + 2 GB si el tamaño de la RAM es más de 2 GB, es decir, 5 GB de intercambio para 3 GB de RAM
Ubuntu tiene una perspectiva completamente diferente sobre el tamaño de intercambio ya que toma en cuenta la hibernación. Si necesitas hibernación, se necesita un intercambio del tamaño de RAM para Ubuntu.

De lo contrario, recomienda:

Si la RAM es inferior a 1 GB, el tamaño del intercambio debe ser al menos del tamaño de la RAM y, como máximo, el doble del tamaño de la RAM.
Si la RAM es más de 1 GB, el tamaño del intercambio debe ser al menos igual a la raíz cuadrada del tamaño de la RAM y, como máximo, el doble del tamaño de la RAM.
Si se utiliza la hibernación, el tamaño del intercambio debe ser igual al tamaño de la RAM más la raíz cuadrada del tamaño de la RAM.
¿Confuso? Sé que es confuso. Esta es la razón por la que he creado esta tabla que indicará el tamaño de intercambio recomendado por Ubuntu en función de su tamaño de RAM y la necesidad de hibernación:

Tamaño de RAM Tamaño Swap (sin hibernación)  Tamaño Swap (con hibernación)
 256MB  256MB  512MB
 512MB  512MB  1GB
 1GB  1GB  2GB
 2GB  1GB  3GB
 3GB  2GB  5GB
 4GB  2GB  6GB
 6GB  2GB  8GB
 8GB  3GB  11GB
 12GB  3GB  15GB
 16GB  4GB  20GB
 24GB  5GB  29GB
 32GB  6GB  38GB
 64GB  8GB  72GB
 128GB  11GB  139GB

 

¿Cuánto tamaño de intercambio usas?

La respuesta nunca es simple. Como dije anteriormente, durante mucho tiempo, se recomendó que el intercambio sea del doble del tamaño de la RAM. De hecho, mi edición Dell XPS 13 Ubuntu tiene 16 GB de tamaño de intercambio para una memoria RAM de 8 GB. Entonces, incluso Dell decidió seguir con la regla de oro de swap = 2xRAM.

 

Fuente:

https://maslinux.es

octubre 11th 2018

Crear alias para comandos en consola (Mac OSX)

Número de lecturas: 540
{lang: 'es-419'}

Algo que suelo usar mucho en equipos Linux son los “alias”, de cara a acortar comandos que tecleo muy frecuentemente. Obviamente sólo es necesario cuando trabajamos con la consola / terminal.

Hoy estoy “plataformando” un iMac y quiero hacer lo mismo, y puesto que Mac OSX, o Darwin, está basado en Linux, realmente no difiere en nada de un sistema Linux tradicional (depende de la distribución usada).

Vamos a crear algunos alias de ejemplo. Para ello abriremos una consola de terminal y teclearemos los comandos siguientes:

cd ;
nano .bash_profile

Dentro del archivo .bash_profile (que por defecto no existe y por lo tanto estará vacío) introduciremos tres alias de ejemplo:

alias ll='ls -la'
alias duh='du -sh'
alias rmd='sudo find . -name ".DS_Store" -depth -exec rm {} \;'

Para salir pulsaremos CONTROL+X y confirmaremos los cambios.

Una vez estemos de nuevo en la consola, ejecutaremos el comando “source” para que se lea el archivo editado sin necesidad de reabrir la consola del terminal.

source .bash_profile

A partir de ahora, podemos teclear “ll” en una consola y se ejecutará el comando “ls -la” en su lugar.

Aunque son bastante auto-descriptivos, os comento lo que hace el último de ellos (“rmd”): borrar todos los dichosos .DS_Store de la carpeta en la que esté situado en adelante.

Podéis incluir tantos alias como necesitéis y estarán siempre disponibles cuando abráis una consola del terminal.

octubre 5th 2018

Cómo cambiar el canal de tu WiFi para evitar interferencias y solucionar problemas de velocidad

Número de lecturas: 612
{lang: 'es-419'}

La conexión a Internet, cuando se realiza por cable, tiende a no ser problemática. Te llega una buena velocidad, todo funciona como la seda y no suele haber problemas de interferencias. Sin embargo, con el WiFi cambia.

Son decenas los hogares que hay a tu alrededor, cada uno con su router WiFi emitiendo en las mismas bandas que tú. Eso puede provocar interferencias y caídas de velocidad, aunque ponerle solución es relativamente sencillo.

Entendiendo cómo funcionan los canales del WiFi

Canales Wifi
En la imagen pueden comprobarse cómo los diferentes canales se solapan entre ellos, lo que provoca interferencias.

Los routers WiFi convencionales emiten en la banda de los 2,4 GHz, que va desde los 2.412 MHz hasta los 2.472 MHz. Está banda está divida en 13 canales que se reparten 100 MHz de ancho a una razón de 20 MHz cada uno. Eso se salta la lógica de las matemáticas, ya que 100/13 no son 20, sino 7,69. ¿Qué quiere decir esto? Que los canales se solapan entre ellos. De esa forma, el canal 1 se solapa con el 2, 3, 4 y 5; el 2 con el 1, 3, 4, 5 y 6, y así sucesivamente.

Los únicos que no se solapan entre sí son el 1, el 6 y el 11, motivo por el que muchas personas piensan que todos los routers deberían emitir en estos canales. Eso, sin embargo, es falaz, ya que si todos los dispositivos se conectasen a estos tres anchos de banda se saturarían igualmente y el resultado vendría a ser el mismo.

Así, ¿qué solución hay para los problemas de interferencias? En realidad, viviendo en una gran ciudad rodeado de bloques de pisos, la cosa es complicada. Los routers más nuevos también emiten en la banda de los 5 GHz, que es mucho más amplia, admite más velocidad y tiende a estar menos saturada, pero si no es tu caso, ya sea porque tu router no admite la banda de los 5 GHz o porque tu móvil/ordenador/tablet no es compatible, lo único que puedes hacer es cambiar el canal.

Lo primero: conocer tu alrededor

Wifi Analyzer
En la gráfica de la izquierda pueden verse todas las redes WiFi cercanas y en qué canales emiten.

Antes de cambiar el canal de tu router WiFi es importante conocer tu alrededor, es decir, en qué canales emiten todos los routers WiFi que hay cerca del tuyo. Puedes hacerlo con diferentes herramientas gratuitas como inSSIDer, aunque también hay aplicaciones para Android que sirven para el mismo propósito. Una de las más populares es WiFi Analyzer, que es la que puedes observar en las capturas superiores.

Con WiFi Analyzer (o cualquier herramienta que uses) podrás conocer los canales en los que emiten el resto de routers. De esa forma, podrás comprobar cuáles están menos saturados y elegir en consecuencia. WiFi Analyzer tiene un apartado interesante que te muestra cuáles son los canales que más te interesan, aunque no es nada que no puedas ver tú en la gráfica.

Cambiando el canal accediendo al router

Acceso router

Hecho esto, y sabiendo el canal que más te interesa, toca modificar la configuración de nuestro router. Para ello hay que acceder a él. ¿Cómo? Escribiendo en el buscador de tu navegador la dirección 192.168.1.1. Accede con tus credenciales y, una vez dentro, localiza la sección “Canal” o “Channel” (varía de un dispositivo a otro).

Ahora elige el que más te convenga y cámbialo. Guarda la configuración y cierra la ventana. No tienes que hacer nada más. Es posible que notes un pequeño corte en la conexión, pero cuando la recuperes notarás un aumento en la velocidad y una mayor estabilidad de la red.

Cambiar Canales

Si tu router es compatible con la red 5 GHz y tienes una antena WiFi compatible en tu PC, o tu móvil la admite, intenta siempre conectarte a ella. Es más rápida, tiene mayor estabilidad y la contraseña por defecto suele ser la misma. Si cambiando el canal no se solucionan las interferencias (algo que puede ocurrir en grandes ciudades si se usan routers que solo emiten en la red 2,4 GHz), tendrás que apostar por la conexión Ethernet.

Fuente:

genbeta.com