Skip to content

Instantly share code, notes, and snippets.

View alejandrofloresm's full-sized avatar

Alejandro Flores alejandrofloresm

View GitHub Profile

Revisión de estilo automática

Github Actions

name: PSR-12 validation

on:
  push:

jobs:
@alejandrofloresm
alejandrofloresm / ejemplo-02.md
Created March 10, 2023 02:41
Ejemplo de principio DRY

Supongamos que tenemos una aplicación Laravel que tiene varios controladores y vistas. En algunas de estas vistas, necesitamos mostrar un formulario para que el usuario ingrese su información de contacto. En lugar de escribir el código HTML para el formulario en cada vista, podemos crear una plantilla Blade que contenga el formulario y reutilizarla en todas las vistas que necesiten mostrar el formulario. De esta manera, estamos siguiendo el principio DRY, ya que estamos evitando la duplicación de código.

Aquí está el código para la plantilla Blade que contiene el formulario:

<!-- resources/views/partials/contact-form.blade.php -->
<form action="{{ route('contact.store') }}" method="POST">
    @csrf

    <div class="form-group">
@alejandrofloresm
alejandrofloresm / example-01.md
Created March 10, 2023 02:38
Ejemplo SRD para Laravel

A continuación te mostraré un ejemplo de cómo aplicar el principio SOLID en Laravel utilizando bloques de código. En este ejemplo, utilizaremos el principio de responsabilidad única (SRP) para separar la lógica de negocio de los controladores.

Supongamos que tenemos un controlador que maneja la creación de un nuevo usuario en nuestra aplicación. En este controlador, se está manejando la validación de los datos, la creación del usuario y el envío de un correo electrónico de bienvenida. Esto viola el principio SRP ya que el controlador está asumiendo demasiadas responsabilidades.

Para solucionar este problema, podemos crear una clase separada para manejar la creación de usuarios y otra clase para manejar el envío de correos electrónicos de bienvenida. Aquí está el código para las nuevas clases:

// UserCreator.php
class UserCreator
{
@alejandrofloresm
alejandrofloresm / RndLatLng.vb
Created November 5, 2020 03:47
Random Longitude and Latitude for a VBA function
' Based on https://gis.stackexchange.com/questions/334297/generate-coordinates-with-minimum-maximum-distance-from-given-coordinates
Public Function RandLatLng(latitude As Double, longitude As Double, maxMeters As Long, minMeters As Long)
Dim EarthRadius As Integer
Dim Degree As Double
Dim P_i As Double
Dim MaxKm As Long
Dim MinKm As Long
Dim The_R As Double
Dim The_Theta As Double
@alejandrofloresm
alejandrofloresm / Abbreviations.ahk
Created October 23, 2020 03:04
Abbreviations.ahk
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#Hotstring EndChars :
#Hotstring O
:::today::
Send, %A_DD%/%A_MM%/%A_YYYY%
return
{
"order": {
"id": 52,
"order_number": 52,
"order_key": "order_5836d85314887",
"created_at": "2016-11-24T12:08:00Z",
"updated_at": "2016-11-24T12:08:51Z",
"completed_at": "2016-11-24T12:08:51Z",
"status": "pending",
"currency": "EUR",
@alejandrofloresm
alejandrofloresm / media-player.ahk
Created September 6, 2020 16:44
Media related hotkeys
; Next song
NumpadRight::Send {Media_Next}
return
; Previous song
NumpadLeft::Send {Media_Prev}
return
; Set volume
@alejandrofloresm
alejandrofloresm / audio-switcher.ahk
Created September 6, 2020 16:32
Audio Switcher
; Reference: https://www.autohotkey.com/boards/viewtopic.php?t=49980
; http://www.daveamenta.com/2011-05/programmatically-or-command-line-change-the-default-sound-playback-device-in-windows-7/
Devices := {}
IMMDeviceEnumerator := ComObjCreate("{BCDE0395-E52F-467C-8E3D-C4579291692E}", "{A95664D2-9614-4F35-A746-DE8DB63617E6}")
; IMMDeviceEnumerator::EnumAudioEndpoints
; eRender = 0, eCapture, eAll
; 0x1 = DEVICE_STATE_ACTIVE
DllCall(NumGet(NumGet(IMMDeviceEnumerator+0)+3*A_PtrSize), "UPtr", IMMDeviceEnumerator, "UInt", 0, "UInt", 0x1, "UPtrP", IMMDeviceCollection, "UInt")
ObjRelease(IMMDeviceEnumerator)
@alejandrofloresm
alejandrofloresm / ffmpeg-notes.md
Created September 6, 2020 14:53
FFMPEG Notes

FFMPEG notes

Cortar un video

El comando corta el video {input} desde {from} con la duración {length} y lo almacena en {output}. Este método no garantiza que se vaya a cortar el video en el momento exacto. Sin embargo es muy rápido.

# comando 
ffmpeg -ss {from} -i {input} -to {length} -c copy {output}

# ejemplo
@alejandrofloresm
alejandrofloresm / ResourcesController.php
Created August 23, 2020 02:50
Resource Controller for Laravel
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller as BaseController;
class ResourcesController extends BaseController
{
/**