Este paquete de laravel nos permite publicar en varias redes sociales de forma automatica, acutalmente estan soportadas

  • Telegram Channel (‌Based on Telegram Bot API)
  • Twitter
  • Facebook

La instalación es muy sencilla

$ composer require toolkito/larasap

Y luego

$ php artisan vendor:publish --tag=larasap

? Quick examples:

⭐ Telegram examples:

? Send text message to Telegram:

 SendTo::Telegram('Hello, I\'m testing Laravel social auto posting');

? Send photo to Telegram:

  SendTo::Telegram(
      'Hello, I\'m testing Laravel social auto posting', // Photo caption (Optional)
      [
          'type' => 'photo', // Message type (Required)
          'file' => 'https://i.imgur.com/j6bzKQc.jpg' // Image url (Required)
      ],
      '' // Inline keyboard (Optional)
  );

? Send audio to Telegram:

SendTo::Telegram(
   'Hello, I\'m testing Laravel social auto posting', // Audio caption (Optional)
   [
       'type' => 'audio', // Message type (Required)
       'file' => 'http://example.com/let-me-be-your-lover.mp3', // Audio url (Required) 
       'duration' => 208, // Duration of the audio in seconds (Optional)
       'performer' => 'Enrique Iglesias', // Performer (Optional)
       'title' => 'Let Me Be Your Lover' // Track name (Optional)
   ],
  '' // Inline keyboard (Optional)
);

? Send document to Telegram:

SendTo::Telegram(
    'Hello, I\'m testing Laravel social auto posting', // Document caption
    [
        'type' => 'document', // Message type (Required)
        'file' => 'http://example.com/larasap.pdf', // Document url (Required)
    ],
   '' // Inline keyboard (Optional)
);

? Send video to Telegram:

SendTo::Telegram(
   'Hello, I\'m testing Laravel social auto posting', // Video caption (Optional)
   [
       'type' => 'video', // Message type (Required)
       'file' => 'http://example.com/let-me-be-your-lover.mp4', // Audio url (Required) 
       'duration' => 273, // Duration of sent video in seconds (Optional)
       'width' => 1920, // Video width (Optional)
       'height' => 1080 // Video height (Optional)
   ],
  '' // Inline keyboard (Optional)
);

? Send voice to Telegram:

SendTo::Telegram(
   'Hello, I\'m testing Laravel social auto posting', // Voice message caption (Optional)
   [
       'type' => 'voice', // Message type (Required)
       'file' => 'https://upload.wikimedia.org/wikipedia/en/9/9f/Sample_of_%22Another_Day_in_Paradise%22.ogg', // Audio url (Required) 
       'duration' => 28 // Duration of the voice message in seconds (Optional)
   ],
  '' // Inline keyboard (Optional)
);

? Send media group to Telegram:

SendTo::Telegram(
    null,
    [
        'type' => 'media_group', // Message type (Required)
        'files' => // Array describing photos and videos to be sent, must include 2–10 items
        [
            [
                'type' => 'photo', // Media type (Required)
                'media' => 'https://i.imgur.com/j6bzKQc.jpg', // Media url (Required)
                'caption' => 'Laravel sccial auto posting' // Media caption (Optional)
            ],
            [
                'type' => 'video', // Media type (Required)
                'media' => 'http://example.com/let-me-be-your-lover.mp4', // Media url (Required)
                'caption' => 'Let me be your lover' // Media caption (Optional)
            ]
        ]
    ]
);

? Send point on the map to Telegram:

SendTo::Telegram(
    null,
    [
        'type' => 'location', // Message type (Required)
        'latitude' => 36.1664345, // Latitude of the location (Required)
        'longitude' => 58.8209904, // Longitude of the location (Required)
        'live_period' => 86400, // Period in seconds for which the location will be updated (Optional)
        '' // Inline keyboard (Optional)
);

? Send information about a venue to Telegram:

SendTo::Telegram(
    null,
    [
        'type' => 'venue', // Message type (Required)
        'latitude' => 36.166048, // Latitude of the location (Required)
        'longitude' => 58.822121, // Longitude of the location (Required)
        'title' => 'Khayyam', // Name of the venue (Required)
        'address' => 'Neyshabur, Razavi Khorasan Province, Iran', // Address of the venue (Required)
        'foursquare_id' => '', // Foursquare identifier of the venue (Optional)
        '' // Inline keyboard (Optional)
);

? Send phone contacts to Telegram:

SendTo::Telegram(
    null,
    [
        'type' => 'contact', // Message type (Required)
        'phone_number' => '+12025550149', // Contact's phone number (Required)
        'first_name' => 'John', // Contact's first name (Required)
        'last_name' => 'Doe', // Contact's last name (Optional)
        '' // Inline keyboard (Optional)
    ]
);

? Send message with inline button to Telegram:

SendTo::Telegram(
    'Laravel social auto posting',
    '',
    [
        [
            [
                'text' => 'Github',
                'url' => 'https://github.com/toolkito/laravel-social-auto-posting'
            ]
        ],
        [
            [
                'text' => 'Download',
                'url' => 'https://github.com/toolkito/laravel-social-auto-posting/archive/master.zip'
            ],
        ]
    ]
);

Or

SendTo::Telegram(
    'Laravel social auto posting',
    '',
    [
        [
            [
                'text' => 'Github',
                'url' => 'https://github.com/toolkito/laravel-social-auto-posting'
            ],
            [
                'text' => 'Download',
                'url' => 'https://github.com/toolkito/laravel-social-auto-posting/archive/master.zip'
            ],
        ]
    ]
);

⭐ Twitter examples:

✨ Text tweet:

SendTo::Twitter('Hello, I\'m testing Laravel social auto posting');

✨ Tweet with media:

SendTo::Twitter(
    'Hello, I\'m testing Laravel social auto posting',
    [
        public_path('photo-1.jpg'),
        public_path('photo-2.jpg')
    ]
);

⭐ Facebook examples:

? Send link to Facebook page:

SendTo::Facebook(
    'link',
    [
        'link' => 'https://github.com/toolkito/laravel-social-auto-posting',
        'message' => 'Laravel social auto posting'
    ]
);

? Send photo to Facebook page:

SendTo::Facebook(
    'photo',
    [
        'photo' => public_path('img/1.jpg'),
        'message' => 'Laravel social auto posting'
    ]
);

? Send video to Facebook page:

SendTo::Facebook(
    'video',
    [
        'video' => public_path('upload/1.mp4'),
        'title' => 'Let Me Be Your Lover',
        'description' => 'Let Me Be Your Lover - Enrique Iglesias'
    ]
);

¿Qué hace que una campaña de mailing sea la mejor? ¿Qué pasos debes tener en cuenta para que sea un éxito?

El marketing por email además de ser una de las herramientas clásicas, se esta convirtiendo en una herramienta más de fidelización del usuario.

De seguro eres de los que piensa que por el hecho de que el email llegó a una bandeja de entrada implica que éste vaya a ser efectivo al 100%.

Pues lamentablemente no es así, para lograr que sea un éxito hay que cuidar aspectos como

  • Nuestra base de datos
  • Hablar a nuestros usuarios de tú a tú
  • Medir la frecuencia de envío
  • Cuidar el mensaje (ortografía)

Estos son los pasos más esenciales para aumentar la apertura del email para conseguir nuestro objetivo con éxito:

Dar a conocer nuestro mensaje y amplificarlo.

Las ventajas del marketing por email

El marketing por email, nos permite llegar a nuestros usuarios o clientes de forma más directa y exitosa. Existen múltiples razones por las que crear una campaña de emailing es una muy buena idea:

  • Es eficaz
  • Permite segmentar o personalizar a tus clientes o usuarios
  • Es medible
  • Flexibilidad de formatos
  • Fidelidad
  • Es un medio no intrusivo
  • De bajo costo

No se trata de hacer SPAM

Día a día recibimos decenas, o hasta cientos de correos basura, con las más diversas ofertas, los cuales la mayoría de las veces son eliminados por filtros de seguridad.

Usualmente podemos tener una lista de spam como la siguiente:

  • Ofertas de capacitación.
  • Venta de propiedades.
  • Sitios de apuestas en línea.

Que un usuario/cliente te dé su email no implica que te conviertas en un robot sin alma. Al contrario, ese gesto de confianza que ha tenido contigo deberías pagárselo ofreciéndole aún mejor contenido. Y como no, también contenido vip: información a la que solo puedan acceder los suscriptores.

¿Cómo lograr un marketing por email Efectivo?

  • Construyendo una base de datos de clientes y potenciales clientes que deseen recibir información por correo electrónico, de nuestra empresa, y sus productos y servicios. La lista de destinatarios es uno de los activos más importantes para una campaña de marketing por email.

Es un error comprar o vender bases de datos, o abusar de ellas, pues solo logramos jugar contra nuestros propios intereses.

  • El Email debe entregar un valor agregado a nuestros clientes. Queremos ofrecerles algo que haga una diferencia para sus vidas, y no simplemente conseguir que hagan click en un link para aumentar el tráfico de nuestro sitio web. Luego nos preocupamos de recuperar el valor.

Queremos un cliente fiel, que participe activamente con nuestro negocio, y no una gran masa de visitas que no duran más de 5 segundos en nuestro sitio.

  • Midiendo el impacto de la campaña, con distintas herramientas de seguimiento. Nos interesa saber cuántos de nuestra lista abrieron realmente el correo que le enviamos, y cuantos ni siquiera lo recibieron. Para ello, existen distintas herramientas que podemos implementar. Algunas de ellas son gratuitas y otras pagadas, y nos entregan distinta información que puede sernos de mucha utilidad para extender las acciones de marketing en Internet al largo plazo.

  • El marketing por email puede potenciarse en combinación con el Social Marketing a través de redes sociales como Facebook o Twitter, apuntando a un crecimiento orgánico de las bases de datos, y una propagación extensiva de nuestro mensaje.

Cada vez más personas están interesadas en ganar dinero de manera remota desde la comodidad de su hogar, utilizando las herramientas online que permite hacer trabajos freelance a través de una conexión a internet, como por ejemplo http://www.comoganardinero.pro/.

Los motivos para desear este tipo de trabajos son diversos, algunas personas son amas de casa y desean tener una entrada de dinero extra que les permita mejorar su calidad de vida, otros tienen trabajos fijos pero el sueldo no es suficiente para cubrir sus necesidades. Incluso los hay los que simplemente les gusta trabajar cómodos y en pijamas desde su hogar.

Sea cual sea el motivo, la realidad es que cada vez se ve mayor cantidad de personas que buscan información sobre cómo ganar dinero por internet. Y de igual manera, cada vez se encuentran mas y mas páginas web que explican cómo lograrlo, desde cosas sencillas como hacer click en publicidad y recibir el dinero por paypal.

En este caso nos vamos a centrar en la manera de ganar de dinero por internet como programador freelance tanto por la importancia que supone ganar dinero remotamente desde casa, como para estimular el cerebro enseñándolo a trabajar de manera lógica y estructurada.

Primero lo primero, el mundo moderno necesita programadores. Por todos lados consigues ofertas de trabajo para backend y frontend, y en la mayoría de los países es muy bien remunerado este tipo trabajo. Todos necesitan o quieren montar una web, un sistema de facturación, o por lo menos un mini gestor de asistencia. Y para eso es necesario programadores.

Los programadores son los prestidigitadores que van a hacer realidad que cuando un usuario se siente en la computadora, o abra una aplicación en su celular, todo funcione como debe ser. Por lo tanto, mientras mejor preparados estén, mas cotizados serán.

Lo más común es recibir ofertas de trabajo para programadores freelance en el área de desarrollo web, y esto es fantástico ya que hay muchísimos tutoriales gratuitos y videos en youtube que te enseñan a programar en los lenguajes apropiados y mas solicitados.

Veamos los términos frontend y backend.

El desarrollador frontend es el programador que se encarga de escribir el código que representa la interfaz a la que va a acceder directamente el usuario cuando se conecte al sistema. Estos programas se ejecutan directamente en el equipo del cliente, al ser interpretado por el navegador y mostrado inmediatamente en la pantalla. Usualmente cuando solicitan un programador con este tipo de habilidades se refieren a que domine los siguientes lenguajes: HTML5, CSS Y JavaScript. Por lo que recomendamos a aquel que desee empezar a programar desde cero, iniciarse con estos lenguajes por su facilidad de aprendizaje y la ventaja que supone poder rápidamente ofrecer sus servicios como freelance.

El programador backend es aquel que debe codificar los algoritmos que van a permitir la manipulación de la data, las interacciones con las bases de datos, las consultas del lado del servidor, y las respuestas en el formato adecuado que se envían al navegador, entre otros.

La variedad de lenguajes de programación y bases de datos que se utilizan en este tipo de desarrollo permiten un amplio abanico de especializaciones, y abundantes ofertas de trabajo. Mas adelante profundizaremos en este tema.

La abstracción que ofrece MJML permite estar siempre al corriente del standar y mejores prácticas de la industria, ya que se actualiza constantemente en base a los cambios en las especificaciones de los clientes de correo, y esto nos garantiza que siempre generará código HTML válido y optimizado.

Instalación

En tu terminal debes escribir:

$ npm i -g mjml

Crear una plantilla

Debes crear una plantilla con la extension .mjml y debe contener algo como esto:

<mj-section>
    <mj-column>
        <mj-text align="left">HEADER TEXT</mj-text>
    </mj-column>
    <mj-column>
        <mj-text align="right">
            <a href="email-permalink"> Lorem ipsum </a>
        </mj-text>
    </mj-column>
</mj-section>
<mj-section background-url="/assets/img/background-url.jpg">
    <mj-column>
        <mj-image src="/assets/img/mj-image.jpeg"></mj-image>
        <mj-text align="center"> Lorem ipsum </mj-text>
        <mj-button> Discover </mj-button>
    </mj-column>
</mj-section>

Para convertir el archivo .mjml a un archivo .html hay que escribir esto en la terminal:

$ mjml input.mjml -o my-email.html

Para mayor informacion visitar la web del proyecto: https://mjml.io.

Hay muchos editores de texto enriquecido que con una consulta en google se pueden encontrar. Muchos de los mejores editores de texto enriquecido actualmente en el mercado son gratuitos.

En este articulo hare un pequeño listado de editores de texto enriquecido:

¿Cuál es tu favorito? ¿Utilizas actualmente alguno de estos editores de texto enriquecido? ¿Usas uno que no está en la lista? Comparte tus experiencias en los comentarios.

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Traducción por juliabis.

Flash hizo llegar vídeo, animación, sitios interactivos y, sí, anuncios a miles de millones de usuarios durante más de una década, pero ahora se se está marchando. Adobe dejará de soportar Flash para el año 2020. Firefox ya no lo soporta “fuera de la caja”, y Chrome tampoco. ¿Qué es lo siguiente? Hay toneladas de estándares abiertos que pueden hacer lo que Flash hace, y aun más.

Multimedia verdaderamente abierta

Flash prometió ofrecer una plataforma unificadora para construir y distribuir sitios web multimedia interactivos. Y, en su mayor parte, lo hizo. Pero la tecnología nunca fue realmente abierta y accesible, y Flash Player era demasiado voraz para los recursos de los dispositivos móviles. Ahora las alternativas de código abierto pueden hacer todo lo que Flash hace, y más. Éstas son las tecnologías que debes aprender si realmente quieres construir la web interactiva de mañana, ya sea que se haciendo animaciones web, juegos o vídeos.

Animación web

CSS

La animación CSS es relativamente nueva, pero es la forma más fácil de comenzar con la animación web. CSS está hecho para diseñar sitios web con reglas básicas que dictan diseño, tipografía, colores y más. Con el lanzamiento de CSS3, las animaciones ahora son parte del estándar, y como desarrollador, depende de ti indicarle al navegador cómo debe hacer la animación. CSS es legible por humanos, lo que significa que básicamente hace lo que dice el comando. Por ejemplo, la propiedad “animation-direction” hace exactamente eso: especifica la dirección de la animación.

Ahora mismo puedes crear animaciones sin problemas con CSS. Es simple crear keyframes (cuadros clave), ajustar el tiempo, animar la opacidad y más. Y todas las animaciones funcionan con cualquier objeto que haz diseñado normalmente con CSS: texto, imágenes, contenedores, etc.

Se pueden hacer animaciones con CSS, incluso no estando familiarizado con los lenguajes de programación. Al igual que muchos proyectos de código abierto, el código está disponible en la web para que juegues con él. Mozilla también ha creado (y mantiene) exhaustiva documentación sobre animación CSS. La mayoría de los desarrolladores recomiendan usar animación CSS para proyectos simples y JavaScript para sitios más complejos.

JavaScript

Los desarrolladores han estado animando con JavaScript desde los primeros días. Scripts básicos de mouseover (eventos de puntero) han existido por más de dos décadas. Hoy, JavaScript junto con elementos <canvas> de HTML5 pueden hacer cosas sorprendentes. Incluso scripts sencillos pueden producir grandes resultados. Con JavaScript, puedes dibujar figuras, cambiar colores, mover y cambiar imágenes, y animar transparencia. La animación JavaScript usa el formato SVG (gráficos de vector escalables) para las animaciones, lo cual significa que el arte se dibuja en vivo basado en reglas matemáticas en vez de ser cargada y pintada. Esto significa que se mantiene bien definido en cualquier escala (a esto se debe el nombre) y puede ser controlado completamente. SVG ofrece pintado sin aliasing, rellenos de patrón y gradientes, efectos de filtro sofisticados, recorte basado en líneas arbitrarias, texto y animaciones. Y, por supuesto, es una recomendación de estándar abierto de la W3c en vez de un binario cerrado. Utilizando SVG, JavaScript, y CSS3, los desarrolladores pueden crear animaciones interactivas impresionantes que no requieren formatos o reproductores especializados.

La animación JavaScript puede ser muy refinada, incluyendo rebotes, detención, pausa, rebobinación, or cambio de velocidad. También es interactiva y puede ser programada para responder a clicks o movimientos del puntero. La nueva API Web Animations, construida con JavaScript, te permite refinar animaciones con más control sobre los keyframes y elementos, pero todavía está en una fase experimental temprana y algunas características pueden no tener soporte en todos los navegadores.

Adicionalmente, las animaciones JavaScript pueden ser programadas para responder a campos de formulario, envío de formularios, y pulsaciones de teclas. Y eso lo hace perfecto para la creación de juegos web.

Juegos web

Por un tiempo, Flash dominaba los juegos web. Era fácil de aprender, usar y distribuir. También era robusto, capaz de ofrecer juegos masivos multijugador en línea a millones. Pero hoy es posible ofrecer la misma experiencia – si no incluso mejor – utilizando JavaScript, HTML5, WebGL y WebAssembly. Con los navegadores modernos y los marcos (frameworks) de código abierto, es posible crear juegos de disparos en 3D, juegos de rol (RPG), juegos de aventura y mucho más. De hecho, ahora incluso se pueden crear experiencias de realidad virtual totalmente inmersivas para la web con tecnologías como WebVR y A-Frame.

Los juegos web dependen de un ecosistema de frameworks y plataformas de código abierto para funcionar. Cada uno juega un papel importante: de visuales hasta controles, desde el audio a las redes. Mozilla Developer Network tiene una lista completa de las tecnologías que están actualmente en uso. Estas son solo algunas de ellas y para qué se usan:

WebGL

Permite crear gráficos 3D (y 2D) acelerados por hardware y de alto rendimiento a partir del contenido web. Esta es una implementación soportada por la web de OpenGL ES 2.0. WebGL 2 va incluso más allá, posibilitando el nivel de soporte de OpenGL ES 3.0 en los navegadores.

JavaScript

JavaScript, el lenguaje de programación de la Web, funciona bien en los navegadores y continuamente se está haciendo cada vez más rápido. Se ha usado ya para crear miles de juegos, y constantemente se están desarrollando nuevos frameworks.

Audio HTML

El elemento <audio> permite reproducir fácilmente efectos de sonido simples y música. Si lo que necesitas es más complicado, ¡consulta la API de Web Audio para conocer el procesamiento de audio real!

API Web Audio

Esta API diseñada para controlar la reproducción, síntesis y manipulación de audio a partir de código JavaScript, permite crear efectos de sonido impresionantes, tanto como reproducir y manipular música en tiempo real.

WebSockets

La API de WebSockets te permite conectar tu aplicación o sitio a un servidor para transmitir datos en tiempo real. Lo que la hace perfecta para juegos multijugador, ya sean basados ​​en turnos o en eventos, servicios de chat y más.

WebRTC

WebRTC es una API ultrarrápida que puede ser utilizada en video-chat, llamadas de voz y aplicaciones web para compartir archivos en modo P2P. Se puede usar también para juegos multijugador en tiempo real que requieran baja latencia.

WebAssembly

Los motores de juego HTML5/JavaScript son ahora mejores que nunca, pero aún así todavía no pueden igualar el rendimiento de las aplicaciones nativas. WebAssembly promete ofrecer un rendimiento casi nativo a las aplicaciones web. La tecnología permite a los navegadores ejecutar código compilado C/C++, incluyendo a juegos creados con motores como Unity y Unreal.

Con WebAssembly, los juegos web podrán aprovechar la ejecución multihilo (multithreading). Los desarrolladores podrán producir juegos 3D avanzados para la web que se ejecuten casi a la misma velocidad que el código nativo, y sin comprometer la seguridad. Es un enorme avance para los juegos, y para la web abierta. Significa que los desarrolladores podrán construir juegos para cualquier computadora o sistema que pueda acceder a la web. Y debido a que se ejecutarán en navegadores, será fácil integrar los modos multijugador en línea.

Además, hay muchos motores de juegos HTML5/JavaScript. Estos motores se encargan de los aspectos básicos, tales como física y controles, y les brindan a los desarrolladores un marco / mundo sobre el que construir. Van desde ligeros y rápidos, como los motores 2D Atom y Quick, hasta motores 3D completos como WhitestormJS y Gladius. Hay docenas para elegir, cada uno con sus propias ventajas y desventajas para los desarrolladores. Pero al final, todos ellos producen juegos que se pueden jugar en navegadores web modernos sin plug-ins. Y la mayoría de esos juegos pueden ejecutarse en un hardware no tan potente, lo que significa que puede llegar a más usuarios. De hecho, los juegos escritos para la web pueden ejecutarse en tabletas, teléfonos inteligentes e incluso televisores inteligentes.

MDN tiene una amplia documentación sobre construcción de juegos web y varios tutoriales sobre construcción de juegos utilizando JavaScript puro y el framework de juego Phaser. Es un excelente lugar para comenzar el desarrollo de juegos web.

Vídeo

La mayoría de los servicios de vídeo ya han cambiado a la transmisión basada en HTML5 utilizando tecnologías web y codecs abiertos; pero otros se han apegado a los codecs FLV o FV4 basados ​​en Flash. Como se dijo anteriormente, los formatos de vídeo Flash se basan en una forma de operar a través del software que puede recargar los recursos de los navegadores web y las plataformas móviles. Los codecs de video modernos pueden usar el procesamiento de hardware para la reproducción de vídeo, aumentando enormemente la capacidad de respuesta y la eficiencia. Lamentablemente, solo hay una forma de cambiar de Flash a HTML5: volviendo a codificar el vídeo. Eso significa convertir el material de origen en formatos compatibles con HTML5 a través de un convertidor gratuito como FFmpeg y Handbrake.

Mozilla está ayudando activamente a construir y mejorar el formato de vídeo HTML5 de código abierto WebM. Este desarrollo se basa en el contenedor Matroska y utiliza los codecs de video VP8 y VP9 y los codecs Vorbis u Opus.

Una vez que el contenido se haya convertido a un formato compatible con HTML5, se podrán volver a publicar los vídeos. HTML5 tiene controles de medios incorporados, por lo que no es necesario instalar ningún reproductor. Es extremadamente fácil; sólo es necesario usar una sola línea de HTML:

<video src="videofile.webm" controls></video>

Es preciso tener en cuenta que los controles nativos pueden ser inconsistentes entre los navegadores. Sin embargo, como están hechos con HTML5, es posible personalizarlos con CSS y vincularlos a su vídeo con JavaScript. Eso significa que puede crear accesibilidad, agregar tu marca y mantener el aspecto y la coherencia entre los navegadores.

HTML5 también puede manejar transmisión (streaming) adaptable, mediante Media Source Extensions (MSEs). Aunque pueden ser difíciles de configurar por sí solos, puedes usar reproductores preempaquetados como Shaka Player y JW Player, los cuales pueden manejar los detalles.

Los desarrolladores de MDN han creado una guía en profundidad sobre como convertir vídeo Flash a vídeo HTML5, que da muchos más detalles acerca de este proceso. Afortunadamente, no es tan difícil como parece.

Flash: lo que viene

El futuro de la web está abierto (eso esperamos) y Flash, a pesar de ser una gran herramienta para la creatividad, no ha sido lo suficientemente abierto. Afortunadamente, muchas herramientas de código abierto pueden hacer lo que Flash hace, y aun más. Pero estamos todavía en las primeras etapas, y la creación de animaciones, sitios web interactivos y juegos web requiere cierto conocimiento de codificación. Todo lo que necesitas saber ya está ahí, sólo esperando que lo aprendas.

Las tecnologías web abiertas prometen ser mejores de lo Flash ha sido, y serán accesibles para toda persona que tenga una conexión a Internet.

Cuando utilizamos maquinas virtuales con discos dinámicos estos inevitablemente crecen y aunque eliminemos archivos dentro de ellas este espacio se mantendrá marcado como ocupado y a la hora de manipular las imágenes de disco este espacio adicional puede causar algunos inconvenientes.

Para reclamar dicho espacio debemos hacer lo siguiente:

  • Iniciamos la maquina virtual con Windows y eliminamos todos los archivos innecesarios, también se debe vaciar la papelera de reciclaje, eliminar temporales, limpiar cache del navegador, así como también desinstalamos cualquier programa innecesario.
  • Luego se desfragmenta el disco mediante la aplicación incluida en el sistema operativo.
  • Se procede a limpiar el espacio marcado como libre; Windows no incluye una aplicación para esto así que es necesario descargar una desde aquí.

Luego de descargar el programa y extraerlo se ejecuta de la siguiente manera:

C:\> sdelete c: -z
  • Al terminar el proceso que puede durar varias horas apague la maquina virtual.
  • Luego abra un terminal y vaya al directorio donde se encuentra el archivo .vdi correspondiente a la maquina virtual.
  • Para finalizar ejecute el siguiente comando:
VBoxManage modifyhd --compact nombredeldisco.vdi

Al finalizar podemos comprobar que las imágenes de disco son mas pequeñas que antes y se nos hará mas fácil realizar algunas tareas como respaldar, copia vía ssh, etc.

Espero que esta información les sea útil, saludos…

 

Laravel Tinx es paquete interesante que permite trabajar de forma más fluida cuando estas usando tinker. Por ejemplo si hacemos una modificacion en alguno de los modelos mientras tenemos una sesion de tinker es necesario salir de ella y volver a ingresar.

La existencia de Laravel Tinx es precisamente para evitar este comportamiento.

Veamos un ejemplo

Laravel Tinx

Instalación

$ composer require ajthinking/tinx

Uso

Desde la linea de comandos, en vez de escribir php artisan tinker hay que escribir:

php artisan tinx

Reiniciar la sesion de tinker

Para reiniciar la sesion solo hay que escribir

re()

Esto permite acceder inmediatamente a los cambios efectuados en los models

Aliases:

  • reboot()
  • reload()
  • restart()

Modelos magicos

Tinx revisa todos los modelos y prepara los siguientes atajos:

Example Shortcut Equals
$u App\User::first()
$u_ App\User::latest()->first()
$c App\Models\Car::first()
u(3) App\User::find(3)
u("gmail") Where "%gmail%" is found in any column.
u("mail", "jon@snow.com") App\User::where("mail", "jon@snow.com")->get()
u("id", ">", 0) App\User::where("id", ">", 0)->get()
u() "App\User"
u()::whereRaw(...) App\User::whereRaw(...) // Note: >= PHP 7.0 only

Si te interesa conocer más sobre este paquete puedes hacer clic aquí

Ya con Daniel en nuestro poder, el momento de buscar Padrinos para su próximo bautizo llego, y como tiene una mamá diseñadora que mejor forma que hacer unas pequeñas tarjetas de petición de padrinos? En este caso le hemos pedido a dos grandes amigos que fuesen los padrinos de BabyMazinger, y posiblemente hay alguien en la web que necesite algo similar. En fin, les dejo los png’s y los svg’s y si los usan, no olviden comentar su experiencia!

Modelo de tarjeta para Petición de Padrinos (Link)

 

Petición de Madrina: “Las mejores amigas son promovidas a Madrinas”

Petición de Padrino: “Los mejores amigos son promovidos a Padrinos”


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Los fabricantes de software muchas veces evitan mecanismos automáticos de regulación del mercado, imponiendo elevados precios a sus clientes, debido al monopolio que manejan. De esta manera, en la última década ha estado floreciendo un nuevo modelo de negocio que se dedica al comercio de las licencias usadas de software, a un precio accesible.

Adquirir licencias para el uso de un software acredita a un usuario o empresa para el uso de éste, asimismo en caso de una falla o error de compatibilidad por parte del fabricante, debe de brindar el soporte o la asesoría necesaria para su solución.

Los fabricantes liberan constantemente actualizaciones de una misma versión de software para asegurar el buen funcionamiento conforme cambian los sistemas operativos, equipos y dispositivos. Usar un esquema de licenciamiento brinda acceso inmediato a las actualizaciones asegurando el máximo rendimiento de la inversión inicial.

Un buen servicio de licenciamiento aporta asesoramiento y recomendación sobre la licencia adecuada según la tipología de empresa, necesidades funcionales y de consumo, y exigencias legales del fabricante.

De igual manera se debe guiar al cliente en la escogencia del producto y versión correcta para sus necesidades, así como los beneficios, asesoramiento comercial, distribuidores, caducidad y promociones.

Por último, el servicio debe aconsejar sobre las características de hardware apropiadas para la correcta instalación y funcionamiento del sistema, así como la diferencia entre versiones y ediciones que se encuentran en el mercado, enfocándose en las funcionalidades y limitaciones.

Anteriormente, cuando uno compraba un programa, ya fuera un juego, un sistema operativo, un paquete de gestión o una suite ofimática, era suyo y podía hacer lo que quisiera con él. Desde instalarlo en múltiples ordenadores de su propiedad a venderlo en mercados de segunda mano.

Luego la venta de programas evolucionó hacia la venta de licencias de uso, por lo que algunas empresas que se dedicaron a la compra-venta de licencias de programas antiguos para luego revenderlas, lo cual creo problemas con los fabricantes, que consideraban que esa práctica vulneraba sus derechos de autoría, porque no reciben ningún tipo de remuneración económica por esa reventa.

Luego de juicios y denuncias, el Tribunal de Justicia de la Unión Europea confirmó que la reventa de software es totalmente legal independientemente de si dicho software fue adquirido en primera instancia mediante descarga digital o en formato físico. Una sentencia gracias a la que principalmente las empresas podrán verse beneficiadas al tener la posibilidad de deshacerse de licencias antiguas e innecesarias, así como adquirir otras usadas a menor precio que las originales.

Por último, la instalación y el uso de estas licencias es sencillo, dado que el propio instalador nos guiará de forma automática a través de los pasos que debemos dar y nos indicará en qué momento añadir la clave alfanumérica que forma nuestra licencia, de manera que una vez termine el proceso de instalación, ya podremos disfrutar de nuestro programa.

Uno de los portales que más está dando de que hablar en los últimos meses por su calidad de servicio y garantías es La Tienda de las Licencias donde se consiguen licencias para Windows 10 a un precio insuperable.