Bobinas P4G
  • Login
  • Public

    • Public
    • Groups
    • Popular
    • People

Notices by ale (ale@gnusocial.hatthieves.es)

  1. ale (ale@gnusocial.hatthieves.es)'s status on Sunday, 26-Jan-2020 01:09:32 UTC ale ale
    #GNUSocial ActivityPub plugin error

    Deleting...PHP Fatal error: Uncaught Exception: An unknown error occurred. in /gnusocial/plugins/ActivityPub/lib/postman.php:158
    Stack trace:
    #0 /gnusocial/plugins/ActivityPub/ActivityPubPlugin.php(831): Activitypub_postman->undo_follow() #1 /gnusocial/lib/util/event.php(89): ActivityPubPlugin->onStartUnsubscribe(Object(Profile), Object(Activitypub_profile))
    #2 /gnusocial/classes/Subscription.php(219): Event::handle('StartUnsubscrib...', Array)
    #3 /gnusocial/classes/Profile.php(1049): Subscription::cancel(Object(Profile), Object(Profile))
    #4 /gnusocial/classes/Profile.php(975): Profile->_deleteSubscriptions() #5 /gnusocial/scripts/deleteprofile.php(78): Profile->delete()
    #6 {main}
    thrown in /gnusocial/plugins/ActivityPub/lib/postman.php on line 158
    In conversation Sunday, 26-Jan-2020 01:09:32 UTC from gnusocial.hatthieves.es permalink
  2. ale (ale@www.hatthieves.es@www.hatthieves.es)'s status on Thursday, 23-Jan-2020 16:09:24 UTC ale ale

    Después de una larga ausencia en el blog, vamos a explicar una configuración para la base de datos PostgreSQL que pueda soportar altas cargas y aumentar la disponibilidad del servicio, comentaremos sus opciones y justificaremos los valores que decidimos aplicar en función de los recursos de la máquina. Nuestra máquina es una servidor cloud que tiene 4 núcleos y 8G de memoria RAM, la máquina actualmente está compartida con contenedores docker de otros servicios por lo que en este contenedor vamos a consumir como máximo 3G de RAM y un pool de 250 conexiones, ya que el software que la usa (Elixir en este caso) es muy rápido y necesita de una alta disponibilidad, así mismo precisa de un alto número de conexiones concurrentes para no saturarla. Opciones de configuración Estas opciones las hemos sacado de la página https://pgtune.leopard.in.ua que nos ayudará a afinar la configuración en función de los valores de versión, núcleos, memoria y conexiones que necesitemos, hemos decidido usar el perfil online transaction processing system para nuestro caso. # DB Version: 12 # OS Type: linux # DB Type: oltp # Total Memory (RAM): 3 GB # CPUs num: 4 # Connections num: 250 max_connections = 250 # máximo número de conexiones concurrentes shared_buffers = 768MB # cantidad de memoria dedicada a datos en caché effective_cache_size = 2304MB # cantidad de memoria disponible para memoria intermedia en el disco maintenance_work_mem = 192MB # cantidad de memoria usada para operaciones de mantenimiento checkpoint_completion_target = 0.9 # permite escribir lentamente en la instancia: checkpoint_completion_target * checkpoint_timeout (5min) wal_buffers = 16MB # pequeña memoria que sincroniza los datos, aumentándola se permiten inserciones más grandes default_statistics_target = 100 # recolecta estadísticas de cada una de las tablas para decidir como se ejecutarán las consultas sobre ellas random_page_cost = 1.1 # sugiere al optimizador cuanto tiempo le llevará al disco encontrar una página aleatoria de disco effective_io_concurrency = 200 # número de operaciones de disco I/O concurrentes work_mem = 1572kB # para operaciones complejas realiza ordenamientos más distendidos en memoria min_wal_size = 2GB # cantidad mínima de la memoria usada para integridad de los datos max_wal_size = 4GB # cantidad máxima de la memoria usada para integridad de los datos max_worker_processes = 4 # cantidad máxima de procesos max_parallel_workers_per_gather = 2 # cantidad máxima de subprocesos en paralelo por nodo, no puede exceder a max_parallel_workers max_parallel_workers = 4 # cantidad máxima de …

    Continuar leyendo “”

    https://www.hatthieves.es/2020/01/23/tuneando-postgresql/

    In conversation Thursday, 23-Jan-2020 16:09:24 UTC from hatthieves.es permalink Repeated by ale

    Attachments

    1. No result found on File_thumbnail lookup.
      PGTune - calculate configuration for PostgreSQL based on the maximum performance for a given hardware configuration
      from /humans.txt
      PgTune - Tuning PostgreSQL config by your hardware
    2. Tuneando PostgreSQL
      from ale
      Después de una larga ausencia en el blog, vamos a explicar una configuración para la base de datos PostgreSQL que pueda soportar altas cargas y aumentar la disponibilidad del servicio, comentaremos sus opciones y justificaremos los valores que decidimos aplicar en función de los recursos de la máquina.
  3. ale (ale@gnusocial.hatthieves.es)'s status on Sunday, 19-Jan-2020 13:34:12 UTC ale ale
    • sαη∂εя✨
    @snder you are wrong, you have a crowd in the instance that do not respect the users of the fediverse and you ban us, you should control a little more the cane that is being registered
    In conversation Sunday, 19-Jan-2020 13:34:12 UTC from gnusocial.hatthieves.es permalink
  4. ale (ale@gnusocial.hatthieves.es)'s status on Sunday, 19-Jan-2020 10:52:23 UTC ale ale
    @ale #test
    In conversation Sunday, 19-Jan-2020 10:52:23 UTC from gnusocial.hatthieves.es permalink
  5. ale (ale@www.hatthieves.es@www.hatthieves.es)'s status on Friday, 20-Sep-2019 16:32:53 UTC ale ale

    En esta entrada vamos a presentar un poco el framework SpringBoot2 para Java, es un software que como objetivo tiende a sustituir y eliminar los tediosos archivos XML del framework de Spring por las anotaciones, que básicamente son clases programadas que modifican el comportamiento de las clases, métodos y parámetros sobre los que están puestos, y se distinguen en el código por tener una @ delante del nombre de la anotación. Tenemos decenas de anotaciones en el framework que nos van a ayudar a la hora de implementar un proyecto de forma muy rápida sin tener que reescribir el código necesario para que todo funcione, parece magia ya que todo es transparente para el programador, aunque nos obliga a formarnos, tiene una curva de aprendizaje muy rápida y sus funcionalidades pueden ayudarnos a la hora de integrar la lógica de la aplicación. @anotaciones @Autowired // Instancia una variable y sus @Beans @Bean // Crea una instancia singleton @SpringBootApplication // Instancia una aplicación SpringBoot2 @Controller // Clase controlador @Service // Clase servicio @Repository // Clase repositorio @SpringBootTest // Instancia una bateria de pruebas @RequesMapping // Prepara un método para un endpoint @GetMapping // Mismo que el anterior HTTP GET @PostMapping // Mismo que el anterior HTTP POST @Async // Clase asíncrona @EnableAsync // Instancia una aplicación asíncrona Las anotaciones son muy potentes, nos permiten añadir funcionalidad al código sin tener que implementarla, podemos pasar parámetros de entrada en la anotación entre paréntesis () o varios entre llaves ({}) eso dependerá según para lo que esté programada la anotación. @GetMapping({ “/”, “/index” }) // dos parámetros @PostMapping(“/new”) // un parámetro @GetMapping(“/{id}/edit”) // podemos especificar parámetros enlazados con variables de entrada Como vemos con estas herramientas fácilmente podríamos implementar una aplicación con el patrón MVC y añadir las funcionalidades necesarias como un simple CRUD Spring Initializr para SpringBoot2 Para iniciar una aplicación en SpringBoot2 vamos a la web start.spring.io y seleccionamos el tipo de proyecto que vamos a desplegar y las librerías que vamos a utilizar Una vez terminamos nos descargamos el proyecto y lo descomprimimos en el workspace para empezar a trabajar con el IDE que más os guste Espero haber animado a usar este framework que cada día se utiliza más en aplicaciones, y ofrece características como la asincronía o la programación reactiva que no deja indiferente a la hora de poner aplicaciones en producción con altas cargas de peticiones. Aquí …

    Continuar leyendo “”

    https://www.hatthieves.es/2019/09/20/java-con-un-poco-de-springboot2/

    In conversation Friday, 20-Sep-2019 16:32:53 UTC from hatthieves.es permalink Repeated by ale

    Attachments


  6. ale (ale@www.hatthieves.es@www.hatthieves.es)'s status on Wednesday, 04-Sep-2019 01:56:41 UTC ale ale

    ¿Qué es Docker?

    Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos.

    Docker utiliza características de aislamiento de recursos del kernel Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que “contenedores” independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales.

    ¿Qué NO es Docker?

    Docker no es como otros sistemas de virtualización completa de un sistema operativo, no emula el hardware necesario para arrancarlo, utiliza el de la máquina anfitriona compartiendo los recursos de la misma entre los contenedores.

    En resumen Docker es una herramienta que nos da la capacidad de trabajar con contenedores (máquinas virtuales) que comparten un mismo Kernel.

    Vamos a ver un poco las partes básicas de Docker para hacer funcionar un sistema, y luego explicaremos como podemos automatizarlo con docker-compose.

    Contenedores

    Es el espacio donde se almacenan los datos de la máquina virtual, contiene todos los archivos necesarios para funcionar independientemente del sistema anfitrión. Un contenedor es una instancia de una imagen.

    Imagen

    Es un prototipo de un contenedor, así como una clase es el prototipo de un objeto y este una instancia de la misma, un contenedor es una instancia de una imagen. Varios contenedores pueden compartir una imagen, pero una imagen solo se corresponde con un contenedor.

    Volumen

    Es un espacio de almacenamiento que comparte el contenedor con la máquina anfitriona para tener persistencia de los datos, los volúmenes pueden ser de varios tipos como los internos (que los gestiona Docker) o pueden usarse mayormente carpetas compartidas.

    Red

    Las interfaces de red pueden configurarse según se necesite, tenemos varias como host, que comparte con la máquina anfitriona, el bridge que genera un puente de red o null que no tiene red.

    Automatizar Docker con docker-compose

    Docker compose es una herramienta creada por Docker, que permite crear una pila de contenedores intercomunicados, partiendo de distintas imágenes.

    Docker compose se basa en un fichero con extensión yml donde vamos a indicar que imagen queremos desplegar, cómo se va a configurar y de qué depende.

    version: '3' services:   web:     build: .     ports:     - "80:80"     volumes:     - ./html:/var/www/html     networks:       net:  networks:   net:

    En el anterior ejemplo vemos como se crea un contenedor que compila un Dockerfile de la carpeta local, que comparte el volumen de la carpeta local html y también crea la configuración de red.

    Conclusión

    Las principales ventajas de la virtualización basada en contenedores son:

    • Menos recursos, ahorro en costes. En un misma máquina pueden desplegarse más contenedores que máquinas virtuales tradicionales. Las exigencias en el proceso de inicio y espacio en disco son menores y más rápidas.
    • Gestión TI más fácil, aumento de la productividad TI. La creación de contenedores permite estandarizar los despliegues ya que son entornos repetibles para tareas de desarrollo, prueba y producción. La compatibilidad con todos los sistemas de implantación elimina un valioso tiempo de configuración. Son elementos totalmente portables. Con Docker la implementación se realiza en segundos.
    • Múltiples aplicaciones independientes en un mismo host. Cada aplicación se ejecuta en su contenedor o clúster de contenedores de forma independiente, sin entrar en conflicto con el resto de aplicaciones que aloje el host que ejecutarán mediante sus propios contenedores. Esto garantiza un entorno seguro y eficiente.

    Cuando una aplicación ya no es necesaria, simplemente se elimina su contenedor sin dejar huella en el sistema donde se ejecutaba.

    La entrada Empezando con Docker se publicó primero en HatThieves.

    In conversation Wednesday, 04-Sep-2019 01:56:41 UTC from hatthieves.es permalink Repeated by ale
  7. ale (ale@www.hatthieves.es@www.hatthieves.es)'s status on Thursday, 29-Aug-2019 23:25:52 UTC ale ale

    Hola, en esta entrada vamos a explicar un poco los métodos nativos map, filter y reduce, que encontramos en los objetos Arrays de JavaScript y como pueden ayudar a hacer más eficiente la implementación, ya que son más rápidos que los bucles tradicionales. map([🌽, 🐮, 🐔], cook) => [🍿, 🍔, 🍳]filter([🍿, 🍔, 🍳], isVegetarian) => [🍿, 🍳]reduce([🍿, 🍳], eat) => 💩 Map El método map() devuelve un nuevo Array como resultado de la función que se está aplicando a cada elemento del Array. Esto significa que cada elemento del Array va a ser devuelto en la misma posición del Array resultante pasando por la función del método map(), como lo haría un iterador. // Declaramos un Array > var a = new Array(1, 2, 3) || [1, 2, 3] // Mapeamos el Array con una función para elevar al cuadrado el contenido > var resultado = a.map(elemento => Math.pow(elemento, 2)) // Se imprime el resultado > console.log(resultado) > [1, 4, 9] Finalmente el método map() devuelve un nuevo Array de la misma dimensión que el original pero modificando cada elemento por el de la salida de la función que estemos aplicando, por lo que no se modifica el Array original. Filter El método filter() del objeto Array, como su nombre indica se utiliza para filtrar los elementos del Array con las condiciones lógicas que se tenga en la función que implementa, si la condición no pasa el filtro este elemento no es devuelto en el Array resultante, quedando una dimensión menor que el original. // Declaramos un Array > var a = new Array(1, 2, 3) || [1, 2, 3] // Filtramos el Array con una función para obviar el número 2 > var resultado = a.filter(elemento => elemento !== 2) // Se imprime el resultado > console.log(resultado) > [1, 3] Vemos como el filtro ignora el número 2 ya que la condición es que sea distinto del número 2, por lo que este número si se encuentra en el Array no es devuelto en el resultante y su posición se obvia, tampoco se modifica el Array original. Reduce El método reduce() del objeto Array, este método reduce el Array a un único elemento, ejecuta la función que tiene el método en cada uno de los elementos del Array y el resultado de cada elemento se almacena en un acumulador que será el resultado total. // Declaramos un Array > …

    Continuar leyendo «»

    https://www.hatthieves.es/2019/08/29/map-filter-y-reduce-javascript/

    In conversation Thursday, 29-Aug-2019 23:25:52 UTC from hatthieves.es permalink Repeated by ale

    Attachments


  8. ale (ale@gnusocial.hatthieves.es)'s status on Thursday, 29-Aug-2019 19:33:14 UTC ale ale
    @ale testing #wordpress federation
    In conversation Thursday, 29-Aug-2019 19:33:14 UTC from gnusocial.hatthieves.es permalink
  9. ale (ale@gnusocial.hatthieves.es)'s status on Sunday, 25-Aug-2019 12:17:29 UTC ale ale
    La #humildad es una virtud de la que carecen muchos programadores, con su código, luego está todo lleno de errores de sonar, y al final ni le echan cuenta a las métricas cuando deberían aprender de ellas y ser un poco más humildes
    In conversation Sunday, 25-Aug-2019 12:17:29 UTC from gnusocial.hatthieves.es permalink
  10. ale (ale@gnusocial.hatthieves.es)'s status on Saturday, 24-Aug-2019 11:54:23 UTC ale ale
    La gente se deja guiar por los criterios de los demás en vez de tener el suyo propio
    In conversation Saturday, 24-Aug-2019 11:54:23 UTC from gnusocial.hatthieves.es permalink
  11. ale (ale@gnusocial.hatthieves.es)'s status on Friday, 16-Aug-2019 09:35:57 UTC ale ale
    in reply to
    • fanta
    eso no es lo que dicen los #developers que están evolucionando #gnusocial

    buenos días :)
    In conversation Friday, 16-Aug-2019 09:35:57 UTC from gnusocial.hatthieves.es permalink
  12. ale (ale@gnusocial.hatthieves.es)'s status on Friday, 16-Aug-2019 09:33:56 UTC ale ale
    in reply to
    • Xiku Francesc
    Cada mensaje tiene un id que va relacionado con el id de la otra respuesta, deberían salir en orden al menos en este nodo va bien, saludos
    In conversation Friday, 16-Aug-2019 09:33:56 UTC from gnusocial.hatthieves.es permalink
  13. aab (aab@khp.ignorelist.com)'s status on Wednesday, 14-Aug-2019 15:43:02 UTC aab aab
    • tarteka :pleroma:
    Buenas! ¿Puedes ver esto?
    In conversation Wednesday, 14-Aug-2019 15:43:02 UTC from khp.ignorelist.com permalink Repeated by ale
  14. ale (ale@gnusocial.hatthieves.es)'s status on Wednesday, 14-Aug-2019 16:16:54 UTC ale ale
    in reply to
    • aab
    llega a #gnusocial
    In conversation Wednesday, 14-Aug-2019 16:16:54 UTC from gnusocial.hatthieves.es permalink
  15. ale (ale@gnusocial.hatthieves.es)'s status on Tuesday, 13-Aug-2019 22:21:41 UTC ale ale
    • DalmeGNU
    se me olvidó decirte que, ahora que tienes controlado el nodo, deberías lanzar el script del plugin #OStatus para que vuelvan a federar las cuentas de los nodos #gnusocial.

    /gnusocial/plugins/OStatus/scripts# php update_ostatus_profiles.php -a

    Saludos :)
    In conversation Tuesday, 13-Aug-2019 22:21:41 UTC from gnusocial.hatthieves.es permalink
  16. ale (ale@gnusocial.hatthieves.es)'s status on Monday, 12-Aug-2019 19:48:12 UTC ale ale
    https://www.youtube.com/watch?v=BOwVCYSQ9-o #personajes
    In conversation Monday, 12-Aug-2019 19:48:12 UTC from gnusocial.hatthieves.es permalink
  17. ale (ale@gnusocial.hatthieves.es)'s status on Monday, 12-Aug-2019 14:58:55 UTC ale ale
    in reply to
    • ziggys
    #Pong
    In conversation Monday, 12-Aug-2019 14:58:55 UTC from gnusocial.hatthieves.es permalink
  18. ale (ale@gnusocial.hatthieves.es)'s status on Sunday, 11-Aug-2019 14:11:17 UTC ale ale

    ¿Cuál es tu plataforma ActivityPub favorita?

    Pleroma   0
    Mastodon   0
    GNUSocial   0
    Hubzilla   0
    Misskey   0
    In conversation Sunday, 11-Aug-2019 14:11:17 UTC from gnusocial.hatthieves.es permalink
  19. ale (ale@gnusocial.hatthieves.es)'s status on Sunday, 11-Aug-2019 14:03:29 UTC ale ale
    #jalapeñeadas https://gnusocial.hatthieves.es/attachment/59
    In conversation Sunday, 11-Aug-2019 14:03:29 UTC from gnusocial.hatthieves.es permalink

    Attachments


    1. https://gnusocial.hatthieves.es/attachment/0a3d76d19c38ae8056b1d1e1681f03d6a8ff693c6e74007867aa1798669e2404/view
  20. ale (ale@gnusocial.hatthieves.es)'s status on Sunday, 11-Aug-2019 13:57:38 UTC ale ale
    • Sr. Conejo
    @HailinSun hola
    In conversation Sunday, 11-Aug-2019 13:57:38 UTC from gnusocial.hatthieves.es permalink
  • Before

User actions

    ale

    ale

    Tags
    • (None)
    WebSub
    Inactive
    ActivityPub
    Remote Profile

    Following 1

    • ziggys

    Followers 1

    • ziggys

    Groups 0

      Statistics

      User ID
      21077
      Member since
      10 Aug 2019
      Notices
      21
      Daily average
      0

      Feeds

      • Atom
      • Help
      • About
      • FAQ
      • Privacy
      • Source
      • Version
      • Contact

      Bobinas P4G is a social network. It runs on GNU social, version 2.0.1-beta0, available under the GNU Affero General Public License.

      Creative Commons Attribution 3.0 All Bobinas P4G content and data are available under the Creative Commons Attribution 3.0 license.