Help
RSS
API
Feed
Maltego
Contact
Domain > chuano.dev
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-10-21
87.98.231.19
(
ClassC
)
Port 80
HTTP/1.1 200 OKdate: Mon, 21 Oct 2024 10:28:56 GMTcontent-type: text/htmltransfer-encoding: chunkedserver: Apacheaccept-ranges: bytesvary: Accept-Encodingx-iplb-request-id: 3428EA69:058B_5762E713:0050_67162CE8_3DA00:5226x-iplb-instance: 51814 !DOCTYPE html>html langen data-astro-cid-sckkx6r4>head>meta charsetUTF-8>meta namedescription contentWeb personal de Chuano, desarrollador PHP/Js para entornos web.>meta nameviewport contentwidthdevice-width>link relicon typeimage/x-icon href/favicon.ico>link relstylesheet typetext/css href/style.css>link relsitemap href/sitemap-index.xml>title>Chuano Puchol Marchuet, desarrollador web./title>style>pdata-astro-cid-bbe6dxrz{line-height:1.5rem}sectiondata-astro-cid-bbe6dxrz{margin:90px 0 60px;padding-top:20px;display:flex;flex-direction:row-reverse;justify-content:space-between}.wrapperdata-astro-cid-bbe6dxrz{font-size:1.1rem;padding:10px 0}.importantdata-astro-cid-bbe6dxrz{font-weight:700;font-size:1.4rem}imgdata-astro-cid-bbe6dxrz{border-radius:50%;width:150px;height:150px;margin-left:30px;margin-top:30px}@media (max-width: 600px){sectiondata-astro-cid-bbe6dxrz{margin:90px 0 0;flex-direction:column}imgdata-astro-cid-bbe6dxrz{margin:-20px auto 0;width:100px;height:100px}}maindata-astro-cid-sckkx6r4{margin-top:70px}spandata-astro-cid-aiynvo7x{display:inline-block;padding:2px 8px 3px;border-radius:3px;margin-right:5px;vertical-align:middle;font-size:.9rem;border:1px solid transparent}spandata-astro-cid-aiynvo7x:last-child{margin-right:0}.tech-typescriptdata-astro-cid-aiynvo7x{background-color:#00aeff;color:#000}.tech-expressdata-astro-cid-aiynvo7x{background-color:#ff9100;color:#000}.tech-phpdata-astro-cid-aiynvo7x{background-color:#b384ff;color:#000}.tech-symfonydata-astro-cid-aiynvo7x{background-color:#ff84c2;color:#000}.tech-vuedata-astro-cid-aiynvo7x{background-color:#00ff8c;color:#000}.tech-javascriptdata-astro-cid-aiynvo7x{background-color:#ffd900;color:#000}.link-carddata-astro-cid-mspuyifq{list-style:none;display:flex;padding:1px;background-image:none;background-size:400%;border-radius:7px;background-position:100%;transition:background-position .6s cubic-bezier(.22,1,.36,1);box-shadow:inset 0 0 0 1px #ffffff1a}.link-carddata-astro-cid-mspuyifq>adata-astro-cid-mspuyifq{width:100%;text-decoration:none;padding:calc(1.5rem - 1px);border-radius:8px;color:#fff;background-color:#14171dad;transition:all .3s}h3data-astro-cid-mspuyifq{margin:0 0 16px;font-size:1.25rem;color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}pdata-astro-cid-mspuyifq{margin-top:.5rem;margin-bottom:0}.link-carddata-astro-cid-mspuyifq:is(:hover,:focus-within){background-position:0;background-image:var(--accent-gradient)}.subtitledata-astro-cid-mspuyifq{margin-bottom:16px;text-align:center}.imgdata-astro-cid-mspuyifq{border-radius:5px;width:75%;aspect-ratio:16 / 9;background-position:left top;background-repeat:no-repeat;background-size:cover;margin:auto;opacity:.8;transition:all .5s}adata-astro-cid-mspuyifq:hover .imgdata-astro-cid-mspuyifq{opacity:1;transition:all .3s}.link-carddata-astro-cid-mspuyifq>adata-astro-cid-mspuyifq:hover{background-color:#14171d3b;transition:all .3s}.techdata-astro-cid-mspuyifq{border-top:1px solid rgba(255,255,255,.1);padding-top:16px}.techdata-astro-cid-mspuyifq>spandata-astro-cid-mspuyifq{font-family:monospace;text-transform:uppercase;font-size:.8rem}.wrapperdata-astro-cid-amng4zvp{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px}.headerdata-astro-cid-amng4zvp{display:flex;justify-content:space-between;align-items:center}.headerdata-astro-cid-amng4zvp adata-astro-cid-amng4zvp svgdata-astro-cid-amng4zvp{vertical-align:bottom}@media (max-width: 900px){.wrapperdata-astro-cid-amng4zvp{grid-template-columns:1fr}.moredata-astro-cid-amng4zvp{display:none}}spandata-astro-cid-6hmpvt3m{display:inline-block;margin:0 5px 5px 0;padding:4px 5px 3px;border-radius:3px;background-color:#ffffff3a;font-size:.8rem}adata-astro-cid-paxawxfl{text-decoration:none;color:#fffc}articledata-astro-cid-paxawxfl{padding:16px;background-color:#14171dad;border-radius:7px;transition:all .3ms;box-shadow:inset 0 0 0 1px #ffffff1a;margin-bottom:16px;transition:all .3s;display:flex}adata-astro-cid-paxawxfl:hover articledata-astro-cid-paxawxfl{background-color:#14171d3b;transition:all .3s}.wrapperdata-astro-cid-paxawxfl{display:flex;flex-direction:column;flex-basis:100%}.headerdata-astro-cid-paxawxfl{display:flex;justify-content:space-between}h3data-astro-cid-paxawxfl{margin-top:0;margin-bottom:1rem;color:#fff}.datedata-astro-cid-paxawxfl{font-size:.8rem}pdata-astro-cid-paxawxfl{margin:0;font-size:.9rem}imgdata-astro-cid-paxawxfl{width:40px;height:40px;border-radius:7px;margin-right:16px}.tagsdata-astro-cid-paxawxfl{padding-top:16px}@media (max-width: 600px){imgdata-astro-cid-paxawxfl{display:none}.headerdata-astro-cid-paxawxfl{flex-direction:column}.datedata-astro-cid-paxawxfl{margin-bottom:1rem}h3data-astro-cid-paxawxfl{margin-bottom:8px}}footerdata-astro-cid-sz7xmlte{margin-top:16px;background-color:#14171dad;line-height:60px;display:flex;justify-content:space-evenly}footerdata-astro-cid-sz7xmlte adata-astro-cid-sz7xmlte{color:#fff;text-decoration:none;vertical-align:middle}footerdata-astro-cid-sz7xmlte adata-astro-cid-sz7xmlte svgdata-astro-cid-sz7xmlte{vertical-align:-2px;margin-right:5px}@media (max-width: 600px){footerdata-astro-cid-sz7xmlte{flex-direction:column;justify-content:center;text-align:center}}navdata-astro-cid-5blmo7yk{position:fixed;top:0;left:0;width:100%;display:flex;justify-content:center;background-color:#14171dad;backdrop-filter:blur(10px);z-index:1000}.wrapperdata-astro-cid-5blmo7yk{display:flex;justify-content:space-between;align-items:center;height:60px;width:990px;padding:0 16px}.wrapperdata-astro-cid-5blmo7yk uldata-astro-cid-5blmo7yk{display:flex;list-style:none;margin:0;padding:0}.wrapperdata-astro-cid-5blmo7yk uldata-astro-cid-5blmo7yk lidata-astro-cid-5blmo7yk:last-child adata-astro-cid-5blmo7yk{padding:0 0 0 10px}.wrapperdata-astro-cid-5blmo7yk uldata-astro-cid-5blmo7yk lidata-astro-cid-5blmo7yk adata-astro-cid-5blmo7yk{padding:0 10px;color:#fffc;text-decoration:none;font-size:1.1rem}.wrapperdata-astro-cid-5blmo7yk uldata-astro-cid-5blmo7yk lidata-astro-cid-5blmo7yk adata-astro-cid-5blmo7yk:hover{color:#fff}.branddata-astro-cid-5blmo7yk{color:#fff;font-size:2rem;text-decoration:none;padding:0;margin:0;font-family:JetBrains Mono,monospace}.bluedata-astro-cid-5blmo7yk{color:#13b0ea}adata-astro-cid-5blmo7yk svgdata-astro-cid-5blmo7yk{opacity:.8}adata-astro-cid-5blmo7yk:hover svgdata-astro-cid-5blmo7yk{opacity:1}.socialdata-astro-cid-5blmo7yk{display:flex;justify-content:flex-end}#menuinputdata-astro-cid-5blmo7yk,labeldata-astro-cid-5blmo7yk{display:none}@media (max-width: 600px){.branddata-astro-cid-5blmo7yk{font-size:1.5rem}.wrapperdata-astro-cid-5blmo7yk .menudata-astro-cid-5blmo7yk{display:none}labeldata-astro-cid-5blmo7yk{display:block;padding-bottom:5px}labeldata-astro-cid-5blmo7yk svgdata-astro-cid-5blmo7yk{fill:#fffc}#menuinputdata-astro-cid-5blmo7yk{display:none}#menuinputdata-astro-cid-5blmo7yk:checked~.menudata-astro-cid-5blmo7yk{display:block;position:absolute;top:60px;left:0;width:100%;height:calc(100vh - 60px);background-color:#14171d;z-index:1001;text-align:center;padding-top:10px;z-index:1000}#menuinputdata-astro-cid-5blmo7yk:checked~.menudata-astro-cid-5blmo7yk lidata-astro-cid-5blmo7yk adata-astro-cid-5blmo7yk{display:block;padding:10px;border-bottom:1px solid #ffffff36}#menuinputdata-astro-cid-5blmo7yk:checked~labeldata-astro-cid-5blmo7yk .opendata-astro-cid-5blmo7yk{display:none}#menuinputdata-astro-cid-5blmo7yk:checked~labeldata-astro-cid-5blmo7yk .closedata-astro-cid-5blmo7yk{display:block}labeldata-astro-cid-5blmo7yk .opendata-astro-cid-5blmo7yk{display:block}labeldata-astro-cid-5blmo7yk .closedata-astro-cid-5blmo7yk{display:none}}divdata-astro-cid-u3ok7hvv{background-color:#ffffff15;padding:8px;margin-top:16px;border-radius:5px}divdata-astro-cid-u3ok7hvv adata-astro-cid-u3ok7hvv{display:flex;justify-content:center;align-items:center}divdata-astro-cid-u3ok7hvv adata-astro-cid-u3ok7hvv svgdata-astro-cid-u3ok7hvv{margin-right:10px}@media (max-width: 600px){divdata-astro-cid-u3ok7hvv adata-astro-cid-u3ok7hvv{flex-direction:column;text-align:center}}.wrapperdata-astro-cid-2q5oecfc{display:flex;flex-direction:column}maindata-astro-cid-2q5oecfc{margin-top:70px}asidedata-astro-cid-2q5oecfc{padding:0 16px 16px;margin-top:10px;background-color:#14171dad;border-radius:7px}asidedata-astro-cid-2q5oecfc .labeldata-astro-cid-2q5oecfc{font-weight:700;margin-bottom:0}.metadata-astro-cid-2q5oecfc{display:flex;justify-content:space-between}.rightdata-astro-cid-2q5oecfc{text-align:right}.datedata-astro-cid-2q5oecfc{font-size:.8rem}@media (max-width: 600px){maindata-astro-cid-2q5oecfc{margin-top:60px;flex-basis:auto;width:100%}}/style>/head>body data-astro-cid-sckkx6r4>nav data-astro-cid-5blmo7yk>div classwrapper data-astro-cid-5blmo7yk>a href/ classbrand data-astro-cid-5blmo7yk>Chuanospan classblue data-astro-cid-5blmo7yk>.dev/span>/a>ul classsocial data-astro-cid-5blmo7yk>li data-astro-cid-5blmo7yk>a hrefmailto:chuanodev@gmail.com titleE-mail de contacto aria-labelE-mail de contacto data-astro-cid-5blmo7yk>svg xmlnshttp://www.w3.org/2000/svg height1.25em viewBox0 0 448 512 data-astro-cid-5blmo7yk>!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->style>svg{fill:#ffffff}/style>path dM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z data-astro-cid-5blmo7yk>/path>/svg>/a>/li>li data-astro-cid-5blmo7yk>a hrefhttps://www.linkedin.com/in/jpuchol/ titleLinkedIn aria-labelEnlace a mi LinkedIn data-astro-cid-5blmo7yk>svg xmlnshttp://www.w3.org/2000/svg height1.25em viewBox0 0 448 512 data-astro-cid-5blmo7yk>style> svg { fill: #ffffff; } /style>path dM416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z data-astro-cid-5blmo7yk>/path>/svg>/a>/li>li data-astro-cid-5blmo7yk>a hrefhttps://github.com/chuano titleGithub aria-labelEnlace a mi perfil de Github data-astro-cid-5blmo7yk>svg xmlnshttp://www.w3.org/2000/svg height1.25em viewBox0 0 496 512 data-astro-cid-5blmo7yk>style> svg { fill: #ffffff; } /style>path dM165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z data-astro-cid-5blmo7yk>/path>/svg>/a>/li>/ul>input typecheckbox namemenu idmenuinput data-astro-cid-5blmo7yk>label formenuinput data-astro-cid-5blmo7yk>svg xmlnshttp://www.w3.org/2000/svg height1.25em viewBox0 0 448 512 classopen data-astro-cid-5blmo7yk>!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->style>svg{fill:#ffffff}/style>path dM0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z data-astro-cid-5blmo7yk>/path>/svg>svg xmlnshttp://www.w3.org/2000/svg height1.5em viewBox0 0 384 512 classclose data-astro-cid-5blmo7yk>!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->style>svg{fill:#ffffff}/style>path dM342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z data-astro-cid-5blmo7yk>/path>/svg>/label>ul classmenu data-astro-cid-5blmo7yk>li data-astro-cid-5blmo7yk>a href/ data-astro-cid-5blmo7yk>Inicio/a>/li>li data-astro-cid-5blmo7yk>a href/blog/page/1 data-astro-cid-5blmo7yk>Blog/a>/li>li data-astro-cid-5blmo7yk>a href/proyectos data-astro-cid-5blmo7yk>Proyectos/a>/li>/ul>/div>/nav>div classcontainer data-astro-cid-sckkx6r4>main data-astro-cid-sckkx6r4>section aria-labelAcerca de mí data-astro-cid-bbe6dxrz>img srchttps://chuano.dev/img/avatar.png altMi foto pixelada data-astro-cid-bbe6dxrz>div classwrapper data-astro-cid-bbe6dxrz>h1 classimportant data-astro-cid-bbe6dxrz>Desarrollador backend que toca cosas de frontend./h1>p data-astro-cid-bbe6dxrz>Especializado en PHP y Symfony, cuento con 10 años de experiencia programando./p>p data-astro-cid-bbe6dxrz>Aunque estoy especializado en PHP y Symfony, también tengo sólidos conocimientos de Typescript y Javascript, así como de Java./p>/div>/section>section aria-labelÚltimos posts>h2>Últimos posts/h2>a href/blog/la-importancia-de-encapsular-librerias-de-terceros data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/buenas-practicas.svg altIcono de buenas prácticas data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>La importancia de encapsular las librerías de terceros/h3>span classdate data-astro-cid-paxawxfl>9/6/2023/span>/div>p data-astro-cid-paxawxfl>Hace poco comenzamos a migrar una aplicación de Vue 2 a Vue 3, y uno de los problemas que nos encontramos que lalibrería vue-resource(https://github.com/pagekit/vue-resource) había quedado obsoleta y debíamos sustituirla por fetch. Entonces vimos que se utilizaba en un *gritón* de sitios y la API de fetch no es ni parecida./p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>buenas prácticas/span>span data-astro-cid-6hmpvt3m>javascript/span>/div>/div>/article>/a>a href/blog/descomponiendo-los-casos-de-uso data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/domain-events.svg altIcono de domain events data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>Descomponiendo los casos de uso/h3>span classdate data-astro-cid-paxawxfl>10/9/2022/span>/div>p data-astro-cid-paxawxfl>¿No os ha pasado nunca que un caso de uso va creciendo y creciendo con acciones derivadas de la principal? Que si guardaun log, que si manda un e-mail, que si añade un registro en la base de datos, que si es la visita que hace mil le sumessaldo.../p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>domain events/span>span data-astro-cid-6hmpvt3m>php/span>/div>/div>/article>/a>a href/blog/y-dale-con-los-value-objects data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/value-objects.svg altIcono de value objects data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>Y dale con los Value Objects/h3>span classdate data-astro-cid-paxawxfl>10/6/2022/span>/div>p data-astro-cid-paxawxfl>Estamos cansados de oir que si Value Objects por aquí, Value Objects por allá, pero ¿cual es realmente el atractivo deusar Value Objects y en qué nos puede ayudar?A continuación veremos brevemente qué son los Value Object, qué nos aportan y un caso práctico en el que nos resultenútiles y toda esta complicación extra tenga alguna razón de ser./p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>value objects/span>span data-astro-cid-6hmpvt3m>php/span>/div>/div>/article>/a>a href/blog/template-method-pattern-in-php data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/patrones.svg altIcono de patrones data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>Patrón template method en PHP/h3>span classdate data-astro-cid-paxawxfl>11/1/2021/span>/div>p data-astro-cid-paxawxfl>El patrón template method nos permite implementar un proceso en el que hay partes que pueden cambiar, implementando en cada caso únicamente las partes que cambian, pero como siempre, veamos un ejemplo./p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>patrones/span>span data-astro-cid-6hmpvt3m>php/span>/div>/div>/article>/a>a href/blog/patron-composite-en-php data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/patrones.svg altIcono de patrones data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>Patrón composite en PHP/h3>span classdate data-astro-cid-paxawxfl>9/10/2021/span>/div>p data-astro-cid-paxawxfl>El patrón composite es un patrón de diseño que permite implementar algoritmos compuestos, pudiendo utilizar varios de ellos bajo una interface unificada. Pero veamos un ejemplo./p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>patrones/span>span data-astro-cid-6hmpvt3m>php/span>/div>/div>/article>/a>/section>section aria-labelProyectos data-astro-cid-amng4zvp>div classheader data-astro-cid-amng4zvp>h2 data-astro-cid-amng4zvp>Proyectos destacados/h2>/div>div classwrapper data-astro-cid-amng4zvp>div classcol data-astro-cid-amng4zvp>li classlink-card data-astro-cid-mspuyifq>a hrefhttps://vendite.es target_blank data-astro-cid-mspuyifq>h3 data-astro-cid-mspuyifq>Vendite/h3>p classsubtitle data-astro-cid-mspuyifq>Búsqueda de información financiera de empresas./p>div classimg stylebackground-image: url(/projects/vendite.jpg) data-astro-cid-mspuyifq>/div>p data-astro-cid-mspuyifq>p data-astro-cid-amng4zvp>Permite obtener la facturación y los datos básicos de la empresa de forma rápida y sencilla. Además puedes crear colecciones y guardar tus anotaciones en cada empresa./p>/p>div classtech data-astro-cid-mspuyifq>span classtech-typescript data-astro-cid-aiynvo7x>typescript/span>span classtech-express data-astro-cid-aiynvo7x>express/span>span classtech-vue data-astro-cid-aiynvo7x>vue/span>span classtech-javascript data-astro-cid-aiynvo7x>javascript/span>/div>/a>/li>/div>div classcol data-astro-cid-amng4zvp>li classlink-card data-astro-cid-mspuyifq>a hrefhttps://doculector.com target_blank data-astro-cid-mspuyifq>h3 data-astro-cid-mspuyifq>Doculector/h3>p classsubtitle data-astro-cid-mspuyifq>Solicitud y clasificación de documentos de clientes./p>div classimg stylebackground-image: url(/projects/doculector.jpg) data-astro-cid-mspuyifq>/div>p data-astro-cid-mspuyifq>p data-astro-cid-amng4zvp>Organizador de documentos enfocado a la recopilación de datos de un expediente por parte del cliente, quien puede ir adjuntado archivos paulatinamente./p>/p>div classtech data-astro-cid-mspuyifq>span classtech-php data-astro-cid-aiynvo7x>php/span>span classtech-symfony data-astro-cid-aiynvo7x>symfony/span>span classtech-vue data-astro-cid-aiynvo7x>vue/span>span classtech-javascript data-astro-cid-aiynvo7x>javascript/span>/div>/a>/li>/div>div classcol data-astro-cid-amng4zvp>li classlink-card data-astro-cid-mspuyifq>a hrefhttps://github.com/chuano/spain-document-generator target_blank data-astro-cid-mspuyifq>h3 data-astro-cid-mspuyifq>Generador NIF/NIE/CIF/h3>p classsubtitle data-astro-cid-mspuyifq>Librería en PHP para generar NIF/NIE/CIF aleatorios./p>div classimg stylebackground-image: url(/projects/nif-generator.jpg) data-astro-cid-mspuyifq>/div>p data-astro-cid-mspuyifq>p data-astro-cid-amng4zvp>Pequeña librería que genera números de DNI/NIE/NIF aleatorios sin tener que cargar librerías más completas como Faker./p>/p>div classtech data-astro-cid-mspuyifq>span classtech-php data-astro-cid-aiynvo7x>php/span>/div>/a>/li>/div>div classcol data-astro-cid-amng4zvp>li classlink-card data-astro-cid-mspuyifq>a hrefhttps://chmod.online target data-astro-cid-mspuyifq>h3 data-astro-cid-mspuyifq>Calculadora de permisos Linux/Mac/h3>p classsubtitle data-astro-cid-mspuyifq>Calculadora visual de permisos numéricos tipo UNIX./p>div classimg stylebackground-image: url(/projects/unix-permissions.webp) data-astro-cid-mspuyifq>/div>p data-astro-cid-mspuyifq>p data-astro-cid-amng4zvp>Utilidad para calcular los permisos numéricos de los archivos en sistemas tipo Linux/mac. Seleciona los permisos y devuelve la instrucción para la línea de comandos./p>/p>div classtech data-astro-cid-mspuyifq>span classtech-vue data-astro-cid-aiynvo7x>vue/span>span classtech-javascript data-astro-cid-aiynvo7x>javascript/span>/div>/a>/li>/div>/div>/section>/main>/div>footer data-astro-cid-sz7xmlte>div data-astro-cid-sz7xmlte>a hrefmailto:chuanodev@gmail.com data-astro-cid-sz7xmlte>svg xmlnshttp://www.w3.org/2000/svg height1em viewBox0 0 448 512 data-astro-cid-sz7xmlte>!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->style>svg{fill:#ffffff}/style>path dM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z data-astro-cid-sz7xmlte>/path>/svg>chuanodev@gmail.com/a>/div>div data-astro-cid-sz7xmlte>a hrefhttps://chmod.online data-astro-cid-sz7xmlte>Chmod permissions calculator/a>/div>/footer>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Mon, 21 Oct 2024 10:28:57 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: ApacheAccept-Ranges: bytesVary: Accept-Encoding !DOCTYPE html>html langen data-astro-cid-sckkx6r4>head>meta charsetUTF-8>meta namedescription contentWeb personal de Chuano, desarrollador PHP/Js para entornos web.>meta nameviewport contentwidthdevice-width>link relicon typeimage/x-icon href/favicon.ico>link relstylesheet typetext/css href/style.css>link relsitemap href/sitemap-index.xml>title>Chuano Puchol Marchuet, desarrollador web./title>style>pdata-astro-cid-bbe6dxrz{line-height:1.5rem}sectiondata-astro-cid-bbe6dxrz{margin:90px 0 60px;padding-top:20px;display:flex;flex-direction:row-reverse;justify-content:space-between}.wrapperdata-astro-cid-bbe6dxrz{font-size:1.1rem;padding:10px 0}.importantdata-astro-cid-bbe6dxrz{font-weight:700;font-size:1.4rem}imgdata-astro-cid-bbe6dxrz{border-radius:50%;width:150px;height:150px;margin-left:30px;margin-top:30px}@media (max-width: 600px){sectiondata-astro-cid-bbe6dxrz{margin:90px 0 0;flex-direction:column}imgdata-astro-cid-bbe6dxrz{margin:-20px auto 0;width:100px;height:100px}}maindata-astro-cid-sckkx6r4{margin-top:70px}spandata-astro-cid-aiynvo7x{display:inline-block;padding:2px 8px 3px;border-radius:3px;margin-right:5px;vertical-align:middle;font-size:.9rem;border:1px solid transparent}spandata-astro-cid-aiynvo7x:last-child{margin-right:0}.tech-typescriptdata-astro-cid-aiynvo7x{background-color:#00aeff;color:#000}.tech-expressdata-astro-cid-aiynvo7x{background-color:#ff9100;color:#000}.tech-phpdata-astro-cid-aiynvo7x{background-color:#b384ff;color:#000}.tech-symfonydata-astro-cid-aiynvo7x{background-color:#ff84c2;color:#000}.tech-vuedata-astro-cid-aiynvo7x{background-color:#00ff8c;color:#000}.tech-javascriptdata-astro-cid-aiynvo7x{background-color:#ffd900;color:#000}.link-carddata-astro-cid-mspuyifq{list-style:none;display:flex;padding:1px;background-image:none;background-size:400%;border-radius:7px;background-position:100%;transition:background-position .6s cubic-bezier(.22,1,.36,1);box-shadow:inset 0 0 0 1px #ffffff1a}.link-carddata-astro-cid-mspuyifq>adata-astro-cid-mspuyifq{width:100%;text-decoration:none;padding:calc(1.5rem - 1px);border-radius:8px;color:#fff;background-color:#14171dad;transition:all .3s}h3data-astro-cid-mspuyifq{margin:0 0 16px;font-size:1.25rem;color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}pdata-astro-cid-mspuyifq{margin-top:.5rem;margin-bottom:0}.link-carddata-astro-cid-mspuyifq:is(:hover,:focus-within){background-position:0;background-image:var(--accent-gradient)}.subtitledata-astro-cid-mspuyifq{margin-bottom:16px;text-align:center}.imgdata-astro-cid-mspuyifq{border-radius:5px;width:75%;aspect-ratio:16 / 9;background-position:left top;background-repeat:no-repeat;background-size:cover;margin:auto;opacity:.8;transition:all .5s}adata-astro-cid-mspuyifq:hover .imgdata-astro-cid-mspuyifq{opacity:1;transition:all .3s}.link-carddata-astro-cid-mspuyifq>adata-astro-cid-mspuyifq:hover{background-color:#14171d3b;transition:all .3s}.techdata-astro-cid-mspuyifq{border-top:1px solid rgba(255,255,255,.1);padding-top:16px}.techdata-astro-cid-mspuyifq>spandata-astro-cid-mspuyifq{font-family:monospace;text-transform:uppercase;font-size:.8rem}.wrapperdata-astro-cid-amng4zvp{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px}.headerdata-astro-cid-amng4zvp{display:flex;justify-content:space-between;align-items:center}.headerdata-astro-cid-amng4zvp adata-astro-cid-amng4zvp svgdata-astro-cid-amng4zvp{vertical-align:bottom}@media (max-width: 900px){.wrapperdata-astro-cid-amng4zvp{grid-template-columns:1fr}.moredata-astro-cid-amng4zvp{display:none}}spandata-astro-cid-6hmpvt3m{display:inline-block;margin:0 5px 5px 0;padding:4px 5px 3px;border-radius:3px;background-color:#ffffff3a;font-size:.8rem}adata-astro-cid-paxawxfl{text-decoration:none;color:#fffc}articledata-astro-cid-paxawxfl{padding:16px;background-color:#14171dad;border-radius:7px;transition:all .3ms;box-shadow:inset 0 0 0 1px #ffffff1a;margin-bottom:16px;transition:all .3s;display:flex}adata-astro-cid-paxawxfl:hover articledata-astro-cid-paxawxfl{background-color:#14171d3b;transition:all .3s}.wrapperdata-astro-cid-paxawxfl{display:flex;flex-direction:column;flex-basis:100%}.headerdata-astro-cid-paxawxfl{display:flex;justify-content:space-between}h3data-astro-cid-paxawxfl{margin-top:0;margin-bottom:1rem;color:#fff}.datedata-astro-cid-paxawxfl{font-size:.8rem}pdata-astro-cid-paxawxfl{margin:0;font-size:.9rem}imgdata-astro-cid-paxawxfl{width:40px;height:40px;border-radius:7px;margin-right:16px}.tagsdata-astro-cid-paxawxfl{padding-top:16px}@media (max-width: 600px){imgdata-astro-cid-paxawxfl{display:none}.headerdata-astro-cid-paxawxfl{flex-direction:column}.datedata-astro-cid-paxawxfl{margin-bottom:1rem}h3data-astro-cid-paxawxfl{margin-bottom:8px}}footerdata-astro-cid-sz7xmlte{margin-top:16px;background-color:#14171dad;line-height:60px;display:flex;justify-content:space-evenly}footerdata-astro-cid-sz7xmlte adata-astro-cid-sz7xmlte{color:#fff;text-decoration:none;vertical-align:middle}footerdata-astro-cid-sz7xmlte adata-astro-cid-sz7xmlte svgdata-astro-cid-sz7xmlte{vertical-align:-2px;margin-right:5px}@media (max-width: 600px){footerdata-astro-cid-sz7xmlte{flex-direction:column;justify-content:center;text-align:center}}navdata-astro-cid-5blmo7yk{position:fixed;top:0;left:0;width:100%;display:flex;justify-content:center;background-color:#14171dad;backdrop-filter:blur(10px);z-index:1000}.wrapperdata-astro-cid-5blmo7yk{display:flex;justify-content:space-between;align-items:center;height:60px;width:990px;padding:0 16px}.wrapperdata-astro-cid-5blmo7yk uldata-astro-cid-5blmo7yk{display:flex;list-style:none;margin:0;padding:0}.wrapperdata-astro-cid-5blmo7yk uldata-astro-cid-5blmo7yk lidata-astro-cid-5blmo7yk:last-child adata-astro-cid-5blmo7yk{padding:0 0 0 10px}.wrapperdata-astro-cid-5blmo7yk uldata-astro-cid-5blmo7yk lidata-astro-cid-5blmo7yk adata-astro-cid-5blmo7yk{padding:0 10px;color:#fffc;text-decoration:none;font-size:1.1rem}.wrapperdata-astro-cid-5blmo7yk uldata-astro-cid-5blmo7yk lidata-astro-cid-5blmo7yk adata-astro-cid-5blmo7yk:hover{color:#fff}.branddata-astro-cid-5blmo7yk{color:#fff;font-size:2rem;text-decoration:none;padding:0;margin:0;font-family:JetBrains Mono,monospace}.bluedata-astro-cid-5blmo7yk{color:#13b0ea}adata-astro-cid-5blmo7yk svgdata-astro-cid-5blmo7yk{opacity:.8}adata-astro-cid-5blmo7yk:hover svgdata-astro-cid-5blmo7yk{opacity:1}.socialdata-astro-cid-5blmo7yk{display:flex;justify-content:flex-end}#menuinputdata-astro-cid-5blmo7yk,labeldata-astro-cid-5blmo7yk{display:none}@media (max-width: 600px){.branddata-astro-cid-5blmo7yk{font-size:1.5rem}.wrapperdata-astro-cid-5blmo7yk .menudata-astro-cid-5blmo7yk{display:none}labeldata-astro-cid-5blmo7yk{display:block;padding-bottom:5px}labeldata-astro-cid-5blmo7yk svgdata-astro-cid-5blmo7yk{fill:#fffc}#menuinputdata-astro-cid-5blmo7yk{display:none}#menuinputdata-astro-cid-5blmo7yk:checked~.menudata-astro-cid-5blmo7yk{display:block;position:absolute;top:60px;left:0;width:100%;height:calc(100vh - 60px);background-color:#14171d;z-index:1001;text-align:center;padding-top:10px;z-index:1000}#menuinputdata-astro-cid-5blmo7yk:checked~.menudata-astro-cid-5blmo7yk lidata-astro-cid-5blmo7yk adata-astro-cid-5blmo7yk{display:block;padding:10px;border-bottom:1px solid #ffffff36}#menuinputdata-astro-cid-5blmo7yk:checked~labeldata-astro-cid-5blmo7yk .opendata-astro-cid-5blmo7yk{display:none}#menuinputdata-astro-cid-5blmo7yk:checked~labeldata-astro-cid-5blmo7yk .closedata-astro-cid-5blmo7yk{display:block}labeldata-astro-cid-5blmo7yk .opendata-astro-cid-5blmo7yk{display:block}labeldata-astro-cid-5blmo7yk .closedata-astro-cid-5blmo7yk{display:none}}divdata-astro-cid-u3ok7hvv{background-color:#ffffff15;padding:8px;margin-top:16px;border-radius:5px}divdata-astro-cid-u3ok7hvv adata-astro-cid-u3ok7hvv{display:flex;justify-content:center;align-items:center}divdata-astro-cid-u3ok7hvv adata-astro-cid-u3ok7hvv svgdata-astro-cid-u3ok7hvv{margin-right:10px}@media (max-width: 600px){divdata-astro-cid-u3ok7hvv adata-astro-cid-u3ok7hvv{flex-direction:column;text-align:center}}.wrapperdata-astro-cid-2q5oecfc{display:flex;flex-direction:column}maindata-astro-cid-2q5oecfc{margin-top:70px}asidedata-astro-cid-2q5oecfc{padding:0 16px 16px;margin-top:10px;background-color:#14171dad;border-radius:7px}asidedata-astro-cid-2q5oecfc .labeldata-astro-cid-2q5oecfc{font-weight:700;margin-bottom:0}.metadata-astro-cid-2q5oecfc{display:flex;justify-content:space-between}.rightdata-astro-cid-2q5oecfc{text-align:right}.datedata-astro-cid-2q5oecfc{font-size:.8rem}@media (max-width: 600px){maindata-astro-cid-2q5oecfc{margin-top:60px;flex-basis:auto;width:100%}}/style>/head>body data-astro-cid-sckkx6r4>nav data-astro-cid-5blmo7yk>div classwrapper data-astro-cid-5blmo7yk>a href/ classbrand data-astro-cid-5blmo7yk>Chuanospan classblue data-astro-cid-5blmo7yk>.dev/span>/a>ul classsocial data-astro-cid-5blmo7yk>li data-astro-cid-5blmo7yk>a hrefmailto:chuanodev@gmail.com titleE-mail de contacto aria-labelE-mail de contacto data-astro-cid-5blmo7yk>svg xmlnshttp://www.w3.org/2000/svg height1.25em viewBox0 0 448 512 data-astro-cid-5blmo7yk>!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->style>svg{fill:#ffffff}/style>path dM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z data-astro-cid-5blmo7yk>/path>/svg>/a>/li>li data-astro-cid-5blmo7yk>a hrefhttps://www.linkedin.com/in/jpuchol/ titleLinkedIn aria-labelEnlace a mi LinkedIn data-astro-cid-5blmo7yk>svg xmlnshttp://www.w3.org/2000/svg height1.25em viewBox0 0 448 512 data-astro-cid-5blmo7yk>style> svg { fill: #ffffff; } /style>path dM416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z data-astro-cid-5blmo7yk>/path>/svg>/a>/li>li data-astro-cid-5blmo7yk>a hrefhttps://github.com/chuano titleGithub aria-labelEnlace a mi perfil de Github data-astro-cid-5blmo7yk>svg xmlnshttp://www.w3.org/2000/svg height1.25em viewBox0 0 496 512 data-astro-cid-5blmo7yk>style> svg { fill: #ffffff; } /style>path dM165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z data-astro-cid-5blmo7yk>/path>/svg>/a>/li>/ul>input typecheckbox namemenu idmenuinput data-astro-cid-5blmo7yk>label formenuinput data-astro-cid-5blmo7yk>svg xmlnshttp://www.w3.org/2000/svg height1.25em viewBox0 0 448 512 classopen data-astro-cid-5blmo7yk>!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->style>svg{fill:#ffffff}/style>path dM0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z data-astro-cid-5blmo7yk>/path>/svg>svg xmlnshttp://www.w3.org/2000/svg height1.5em viewBox0 0 384 512 classclose data-astro-cid-5blmo7yk>!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->style>svg{fill:#ffffff}/style>path dM342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z data-astro-cid-5blmo7yk>/path>/svg>/label>ul classmenu data-astro-cid-5blmo7yk>li data-astro-cid-5blmo7yk>a href/ data-astro-cid-5blmo7yk>Inicio/a>/li>li data-astro-cid-5blmo7yk>a href/blog/page/1 data-astro-cid-5blmo7yk>Blog/a>/li>li data-astro-cid-5blmo7yk>a href/proyectos data-astro-cid-5blmo7yk>Proyectos/a>/li>/ul>/div>/nav>div classcontainer data-astro-cid-sckkx6r4>main data-astro-cid-sckkx6r4>section aria-labelAcerca de mí data-astro-cid-bbe6dxrz>img srchttps://chuano.dev/img/avatar.png altMi foto pixelada data-astro-cid-bbe6dxrz>div classwrapper data-astro-cid-bbe6dxrz>h1 classimportant data-astro-cid-bbe6dxrz>Desarrollador backend que toca cosas de frontend./h1>p data-astro-cid-bbe6dxrz>Especializado en PHP y Symfony, cuento con 10 años de experiencia programando./p>p data-astro-cid-bbe6dxrz>Aunque estoy especializado en PHP y Symfony, también tengo sólidos conocimientos de Typescript y Javascript, así como de Java./p>/div>/section>section aria-labelÚltimos posts>h2>Últimos posts/h2>a href/blog/la-importancia-de-encapsular-librerias-de-terceros data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/buenas-practicas.svg altIcono de buenas prácticas data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>La importancia de encapsular las librerías de terceros/h3>span classdate data-astro-cid-paxawxfl>9/6/2023/span>/div>p data-astro-cid-paxawxfl>Hace poco comenzamos a migrar una aplicación de Vue 2 a Vue 3, y uno de los problemas que nos encontramos que lalibrería vue-resource(https://github.com/pagekit/vue-resource) había quedado obsoleta y debíamos sustituirla por fetch. Entonces vimos que se utilizaba en un *gritón* de sitios y la API de fetch no es ni parecida./p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>buenas prácticas/span>span data-astro-cid-6hmpvt3m>javascript/span>/div>/div>/article>/a>a href/blog/descomponiendo-los-casos-de-uso data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/domain-events.svg altIcono de domain events data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>Descomponiendo los casos de uso/h3>span classdate data-astro-cid-paxawxfl>10/9/2022/span>/div>p data-astro-cid-paxawxfl>¿No os ha pasado nunca que un caso de uso va creciendo y creciendo con acciones derivadas de la principal? Que si guardaun log, que si manda un e-mail, que si añade un registro en la base de datos, que si es la visita que hace mil le sumessaldo.../p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>domain events/span>span data-astro-cid-6hmpvt3m>php/span>/div>/div>/article>/a>a href/blog/y-dale-con-los-value-objects data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/value-objects.svg altIcono de value objects data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>Y dale con los Value Objects/h3>span classdate data-astro-cid-paxawxfl>10/6/2022/span>/div>p data-astro-cid-paxawxfl>Estamos cansados de oir que si Value Objects por aquí, Value Objects por allá, pero ¿cual es realmente el atractivo deusar Value Objects y en qué nos puede ayudar?A continuación veremos brevemente qué son los Value Object, qué nos aportan y un caso práctico en el que nos resultenútiles y toda esta complicación extra tenga alguna razón de ser./p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>value objects/span>span data-astro-cid-6hmpvt3m>php/span>/div>/div>/article>/a>a href/blog/template-method-pattern-in-php data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/patrones.svg altIcono de patrones data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>Patrón template method en PHP/h3>span classdate data-astro-cid-paxawxfl>11/1/2021/span>/div>p data-astro-cid-paxawxfl>El patrón template method nos permite implementar un proceso en el que hay partes que pueden cambiar, implementando en cada caso únicamente las partes que cambian, pero como siempre, veamos un ejemplo./p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>patrones/span>span data-astro-cid-6hmpvt3m>php/span>/div>/div>/article>/a>a href/blog/patron-composite-en-php data-astro-cid-paxawxfl>article data-astro-cid-paxawxfl>img src/img/tags/patrones.svg altIcono de patrones data-astro-cid-paxawxfl>div classwrapper data-astro-cid-paxawxfl>div classheader data-astro-cid-paxawxfl>h3 data-astro-cid-paxawxfl>Patrón composite en PHP/h3>span classdate data-astro-cid-paxawxfl>9/10/2021/span>/div>p data-astro-cid-paxawxfl>El patrón composite es un patrón de diseño que permite implementar algoritmos compuestos, pudiendo utilizar varios de ellos bajo una interface unificada. Pero veamos un ejemplo./p>div classtags data-astro-cid-paxawxfl>span data-astro-cid-6hmpvt3m>patrones/span>span data-astro-cid-6hmpvt3m>php/span>/div>/div>/article>/a>/section>section aria-labelProyectos data-astro-cid-amng4zvp>div classheader data-astro-cid-amng4zvp>h2 data-astro-cid-amng4zvp>Proyectos destacados/h2>/div>div classwrapper data-astro-cid-amng4zvp>div classcol data-astro-cid-amng4zvp>li classlink-card data-astro-cid-mspuyifq>a hrefhttps://vendite.es target_blank data-astro-cid-mspuyifq>h3 data-astro-cid-mspuyifq>Vendite/h3>p classsubtitle data-astro-cid-mspuyifq>Búsqueda de información financiera de empresas./p>div classimg stylebackground-image: url(/projects/vendite.jpg) data-astro-cid-mspuyifq>/div>p data-astro-cid-mspuyifq>p data-astro-cid-amng4zvp>Permite obtener la facturación y los datos básicos de la empresa de forma rápida y sencilla. Además puedes crear colecciones y guardar tus anotaciones en cada empresa./p>/p>div classtech data-astro-cid-mspuyifq>span classtech-typescript data-astro-cid-aiynvo7x>typescript/span>span classtech-express data-astro-cid-aiynvo7x>express/span>span classtech-vue data-astro-cid-aiynvo7x>vue/span>span classtech-javascript data-astro-cid-aiynvo7x>javascript/span>/div>/a>/li>/div>div classcol data-astro-cid-amng4zvp>li classlink-card data-astro-cid-mspuyifq>a hrefhttps://doculector.com target_blank data-astro-cid-mspuyifq>h3 data-astro-cid-mspuyifq>Doculector/h3>p classsubtitle data-astro-cid-mspuyifq>Solicitud y clasificación de documentos de clientes./p>div classimg stylebackground-image: url(/projects/doculector.jpg) data-astro-cid-mspuyifq>/div>p data-astro-cid-mspuyifq>p data-astro-cid-amng4zvp>Organizador de documentos enfocado a la recopilación de datos de un expediente por parte del cliente, quien puede ir adjuntado archivos paulatinamente./p>/p>div classtech data-astro-cid-mspuyifq>span classtech-php data-astro-cid-aiynvo7x>php/span>span classtech-symfony data-astro-cid-aiynvo7x>symfony/span>span classtech-vue data-astro-cid-aiynvo7x>vue/span>span classtech-javascript data-astro-cid-aiynvo7x>javascript/span>/div>/a>/li>/div>div classcol data-astro-cid-amng4zvp>li classlink-card data-astro-cid-mspuyifq>a hrefhttps://github.com/chuano/spain-document-generator target_blank data-astro-cid-mspuyifq>h3 data-astro-cid-mspuyifq>Generador NIF/NIE/CIF/h3>p classsubtitle data-astro-cid-mspuyifq>Librería en PHP para generar NIF/NIE/CIF aleatorios./p>div classimg stylebackground-image: url(/projects/nif-generator.jpg) data-astro-cid-mspuyifq>/div>p data-astro-cid-mspuyifq>p data-astro-cid-amng4zvp>Pequeña librería que genera números de DNI/NIE/NIF aleatorios sin tener que cargar librerías más completas como Faker./p>/p>div classtech data-astro-cid-mspuyifq>span classtech-php data-astro-cid-aiynvo7x>php/span>/div>/a>/li>/div>div classcol data-astro-cid-amng4zvp>li classlink-card data-astro-cid-mspuyifq>a hrefhttps://chmod.online target data-astro-cid-mspuyifq>h3 data-astro-cid-mspuyifq>Calculadora de permisos Linux/Mac/h3>p classsubtitle data-astro-cid-mspuyifq>Calculadora visual de permisos numéricos tipo UNIX./p>div classimg stylebackground-image: url(/projects/unix-permissions.webp) data-astro-cid-mspuyifq>/div>p data-astro-cid-mspuyifq>p data-astro-cid-amng4zvp>Utilidad para calcular los permisos numéricos de los archivos en sistemas tipo Linux/mac. Seleciona los permisos y devuelve la instrucción para la línea de comandos./p>/p>div classtech data-astro-cid-mspuyifq>span classtech-vue data-astro-cid-aiynvo7x>vue/span>span classtech-javascript data-astro-cid-aiynvo7x>javascript/span>/div>/a>/li>/div>/div>/section>/main>/div>footer data-astro-cid-sz7xmlte>div data-astro-cid-sz7xmlte>a hrefmailto:chuanodev@gmail.com data-astro-cid-sz7xmlte>svg xmlnshttp://www.w3.org/2000/svg height1em viewBox0 0 448 512 data-astro-cid-sz7xmlte>!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->style>svg{fill:#ffffff}/style>path dM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z data-astro-cid-sz7xmlte>/path>/svg>chuanodev@gmail.com/a>/div>div data-astro-cid-sz7xmlte>a hrefhttps://chmod.online data-astro-cid-sz7xmlte>Chmod permissions calculator/a>/div>/footer>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]