tag:blogger.com,1999:blog-60901068084518329912024-03-05T12:18:41.307-03:00Biblia del ProgramadorAprender puede puede ser Gratis!!!Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comBlogger379125tag:blogger.com,1999:blog-6090106808451832991.post-23069481118550078382021-03-04T21:31:00.002-03:002021-03-04T21:31:15.931-03:00Anonymous – El Manual Super Secreto<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxW0IhGKEqvkkCwHqBckEuGyO9VHmBLynBSJD_JUO0m9a1SZeSq8liUhjTOxZO2BASF26QR27LzP3N7rNoJ760BhNiGpyMNxiTumSFw2hAj3NKTdjJ6E1kf4OQfCNW0Z02pTAtlfqj5JU/s599/libro+anonymus.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="598" data-original-width="599" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxW0IhGKEqvkkCwHqBckEuGyO9VHmBLynBSJD_JUO0m9a1SZeSq8liUhjTOxZO2BASF26QR27LzP3N7rNoJ760BhNiGpyMNxiTumSFw2hAj3NKTdjJ6E1kf4OQfCNW0Z02pTAtlfqj5JU/s320/libro+anonymus.png" width="320" /></a></div>El manual supersecreto de Anonymous es la traducción del Uber Sikrit Handbook, originalmente lanzado a finales del año 2010. Contiene varias secciones dedicadas a explicar cómo tomar medidas de seguridad tanto dentro como fuera de la Red. Desde marzo del 2011, Anonymous Iberoamérica se ha dado a la tarea de traducir estos documentos de gran importancia, y uno de ellos es precisamente este, que es el resultado de varios meses de trabajo por un equipo de voluntarios. Hemos colocado la versión 0.2.2 (la más reciente) para leerse online (via Scribd en HTML5) y el link de descarga para aquellos navegadores que no soporten el HTML5.<p></p><p>Este documento es de lectura prioritaria para todo aquel que desee involucrarse con Anonymous, y sus instrucciones deben ser seguidas al pie de la letra a fin de evitar contratiempos y afectaciones personales. Por favor leerlo, comentarlo y fomentar su difusión. Es una de las armas más poderosas de que se dispone para protección personal.</p><p>Activistas políticos, disidentes e incluso espectadores sin afiliación atrapados en situaciones de inestabilidad social temen con frecuencia por su protección y la de sus familias. En estas situaciones, los ciudadanos quizás enfrenten la oposición ruda y aun violenta de las autoridades y fuerzas de seguridad. Esta guía está diseñada para introducir al lector a la mentalidad requerida para mantenerse seguro durante disturbios y protestas tanto en línea como en el mundo físico. Además, intenta ayudar a establecer una comunicación continua en momentos en que Internet y las líneas telefónicas sean restringidas.</p><span><a name='more'></a></span><p><b>Índice [ind2]</b></p><p></p><ul style="text-align: left;"><li>Introducción [int3]</li><li>Protección Personal [prs4]</li><ul><li>Protección Física [fis5]</li><li>Protección en Internet [int6]</li></ul><li>Seguridad en Internet [isc7]</li><ul><li>VPNs [vpn8]</li><li>I2P [i2p9]</li><li>Proxies [prx0]</li><li>TOR Onion Router [tor1] Comunicaciones [cmm2]</li></ul><li>Información Adicional [add3]</li><ul><li>Emails Temporales [eml4]</li><li>Plugins para Firefox [ffx5]</li><li>Paquete de Protección Anonymous [pkg6]</li></ul></ul><p></p><p>Para ir a una sección de esta guía, use la opción de búsqueda de su computador [Windows: Ctrl+B / Macintosh: Command+F] e introduzca el código de cuatro caracteres que aparece junto a la sección en el índice. Por ejemplo, en Windows, para ir al prólogo, presione Ctrl+B y teclee "pro1" [sin las comillas].</p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/13PmkCef4URx5w0z2QoSEHqt76Uluz3Ez/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (209 Kb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=13PmkCef4URx5w0z2QoSEHqt76Uluz3Ez"><img alt="Anonymous – El Manual Super-Secreto" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /><br /></a><br /><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-77502957362707622912021-03-04T13:01:00.006-03:002021-03-04T13:02:14.388-03:00Excel ahora es un Lenguaje de Programación gracias a LAMBDA<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpggaL54t6cqnYGYZTs_vnoE9qQwMFBleyzr1IcJPgdkfqQmm8p5mUqFsDWjTDQiFTORDP6Nn7bkVpX4sT1G3YEkCZIal2PiJyRUz3iaUUSbTLw-S8K2JYqygJ-avyymBWFenxo4dsbBw/s1366/1366_2000.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="572" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpggaL54t6cqnYGYZTs_vnoE9qQwMFBleyzr1IcJPgdkfqQmm8p5mUqFsDWjTDQiFTORDP6Nn7bkVpX4sT1G3YEkCZIal2PiJyRUz3iaUUSbTLw-S8K2JYqygJ-avyymBWFenxo4dsbBw/s320/1366_2000.jpg" width="320" /></a></div>“Ya es posible, en principio, escribir cualquier cálculo en el lenguaje de fórmulas de Excel“, explica Microsoft. Esto significa que Excel puede ser considerado oficialmente un lenguaje de programación, uno que según la empresa ya es “Turing completo”, y es todo gracias a un proyecto llamado LAMBDA.<p></p><p></p><p>La cantidad de cosas que se pueden hacer en Excel da para días y días de conversación. Hemos visto hojas de cálculo que nunca creerías demostrando lo poderosa que puede ser la herramienta de Microsoft cuando la usa alguien con mucha habilidad. Pero ahora todo va más allá, pues el equipo de Excel ha logrado acabar con las limitaciones que evitaban que se pudiesen transformar las fórmulas de las hojas de cálculo en un lenguaje de programación completo.</p><h3 style="text-align: left;">Excel tiene más usuarios que C, C++, C#, Java y Python combinados</h3><p>Millones de personas en el mundo usan Excel para organizar, analizar y visualizar datos. Eso es más gente de la que programa en los cinco lenguajes de programación más usados, por lo que Microsoft no ha dudado en abrazar esa idea de que Excel es ahora el lenguaje de programación más usado de todos.</p><p>Pero todo no es tan simple, y “programar en Excel” puede ser considerado bastante complejo, especialmente para un usuario y no un entusiasta de la programación o matemático.</p><p>Hasta ahora Excel tenía dos limitaciones fundamentales que evitaban que pudiese ser considerado como un lenguaje de programación completo:</p><p></p><ul style="text-align: left;"><li>Excel solo admitía valores escalares: números, cadenas y booleanos.</li><li>No dejaba que los usuarios definiesen nuevas funciones.</li></ul><p></p><p>Esto ha cambiado gracias a LAMBDA, “la función definitiva de Excel”. Esta función básicamente permite que los usuarios puedan definir nuevas funciones escritas en el propio lenguaje de formulas de Excel, y gracias a LAMBDA, Excel ahora es “Turing completo”.</p><p>Ser “Turing completo”, según la informática teórica, significa que un lenguaje de programación puede implementar cualquier algoritmo posible. Esto nos habla de lo potente que es un lenguaje de programación, no de rendimiento o de capacidad de mantenimiento o de lo rico que es su ecosistema.</p><p>Además de esto Excel ya no está limitado a texto y números, sino que ahora se permite que las celdas contengan registros de primera clase, incluyendo entidades vinculadas a datos externos, y las matrices dinámicas permiten que las fórmulas ordinarias computen matrices enteras que se extienden a las celdas adyacentes.</p><p>Microsoft explica en bastante detalle en su blog y en vídeo cómo funciona exactamente esto y las matemáticas detrás del avance. Está claro que se requiere cierto nivel de habilidad para crear algo con LAMBDA, pero en la empresa no dudan que la comunidad alrededor reciba los cambios con mucho entusiasmo.</p><p>De hecho, han dicho que con este proyecto están lanzando un experimento a escala global sobre la programación a nivel de usuario con funciones de alto nivel. Para usar LAMBDA de momento es necesario ser un miembro del programa Insider de Office.</p><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-71719571817581680902021-03-04T12:50:00.006-03:002021-03-04T12:50:53.699-03:00Cracking Wifi [Completo]<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcGznEvTPxqVau7PX9cgU-P7GeeL5uk_fSOVvaq6-YeotBSk1BlL_re_XgMhIKPq6_RBEwadTn-au6cdm6V7_k7Jsn492xQjOjDteJamti4Vhfp8IZJIMv8XWzgAXXfnBhizCro85nD_U/s1280/How-to-Hack-Wifi-on-Android1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcGznEvTPxqVau7PX9cgU-P7GeeL5uk_fSOVvaq6-YeotBSk1BlL_re_XgMhIKPq6_RBEwadTn-au6cdm6V7_k7Jsn492xQjOjDteJamti4Vhfp8IZJIMv8XWzgAXXfnBhizCro85nD_U/s320/How-to-Hack-Wifi-on-Android1.jpg" width="320" /></a></div>¿Deseas comprobar si la red WiFi que tienes montada en tu casa es realmente segura? ¿En tu escuela saben que eres un hacha en esto de la informática y te han pedido que realices una auditoría de su red inalámbrica? ¿O simplemente no puedes costearte una conexión ADSL puesto que tus recursos son limitados y tienes la suerte de tener a tu alcance la red wireless que tu vecino ha instalado hace apenas unos meses?<p></p><p>Cualquiera que sea tu situación, el objetivo de este artículo es la recopilación de todos los métodos conocidos hasta la actualidad para lograr descubrir la contraseña de todas aquellas redes wifi que puedes alcanzar con tu tarjeta inalámbrica. Si lo que haces es legal o no, es responsabilidad tuya.</p><p><b>Introducción</b></p><p>¿Qué tiene este artículo que lo diferencia con cualquier otro que puedas encontrar en la red? Fácil. Casi todos los artículos o reseñas que puedas encontrar a lo largo de Internet sólo se centran en un método para hacer cierta tarea y casi siempre se resume a lo siguiente:</p><p></p><ul style="text-align: left;"><li>Utiliza airodump(-ng) para capturar paquetes.</li><li>Utiliza aircrack(-ng) para romper la clave.</li></ul><p></p><p>Quizás con un posible: Utiliza aireplay(-ng) para inyectar paquetes. ¿Pero qué pasa cuando te encuentras en una situación en que no todo sale como debería? Cuando una red apenas produce paquetes, cuando no tiene clientes conectados o un sin fin de inconvenientes que limitan tus armas…</p><p>Pues aquí te mostraremos diversas formas de seguir consiguiendo contraseñas aun a pesar de enfrentarte a todas estas dificultades. Aquí reuniremos todo aquello que se puede encontrar en los foros más dispersos de la telaraña global, y agregaremos todos los links necesarios a cualquier herramienta que sea mencionada.</p><p>Este artículo se centra sobre el sistema operativo Linux, aunque haremos referencias en su momento al resto. Normalmente todos los programas o scripts presentados, salvo contadas excepciones, pueden ser ejecutados en ambos sistemas. Recuerda que un ejecutable de Windows puede correr bajo Linux por medio de Wine.</p><span><a name='more'></a></span><p><br /></p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/19Ufp0S_lDsXaJkVg2VwD3i48MiyeMwO7/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (907 Kb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=19Ufp0S_lDsXaJkVg2VwD3i48MiyeMwO7"><img alt="Cracking Wifi" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /><br /></a><br /><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-15145431445905015782021-03-03T22:16:00.006-03:002021-03-03T22:16:50.684-03:00Hacking y Seguridad en Internet - 2da Edición [Editorial RAMA]<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMS8AJEyVYOs3-h7NQOplQ4gRmTTXZ82XeZPxpeyAwyw1umbSfK1o9eLcCxUoATQ6-2FtdEsAoHyl24P8habJnHiiAEdfpMebTPl1TGqgTxH-0fczQ8QhjRm1LjFMo7zkcaeTxnt5FN3s/s2048/Hacking.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1424" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMS8AJEyVYOs3-h7NQOplQ4gRmTTXZ82XeZPxpeyAwyw1umbSfK1o9eLcCxUoATQ6-2FtdEsAoHyl24P8habJnHiiAEdfpMebTPl1TGqgTxH-0fczQ8QhjRm1LjFMo7zkcaeTxnt5FN3s/s320/Hacking.jpg" /></a></div>La pretensión de este libro es la de introducir a los lectores en el mundo de la seguridad de TI, desde el punto de vista del atacante o hacker y del que tiene la responsabilidad de implementar las políticas de seguridad y así intentar reducir las vulnerabilidades de sus sistemas de redes. En un primer bloque se describen los protocolos necesarios para entender cómo se comunican los sistemas y las aplicaciones que se ejecutan en ellos, además, se detallan las técnicas que se utilizan para identificar sistemas que pueden ser susceptibles de ser atacados, así como el conocimiento de las vulnerabilidades que pueden ser explotadas en un tanque, en este mismo bloque se desarrolla la metodología, paso a paso, que se utiliza para ejecutar un ataque a sistemas ya identificados como potenciales víctimas. En el segundo bloque se describen y desarrollan de un modo práctico diversos tipos de ataques a sistemas operativos Windows y Linux, también hay un capítulo especial dedicado a ataques a base de datos, donde se describen en detalle ataques SQL Injection. En el último bloque se abordan en profundidad las aplicaciones que pueden proteger a los sistemas de potenciales ataques a éstos y a las redes donde se encuentran, en el bloque se describen, instalan, configuran y se desarrollan las posibilidades de administración de aplicaciones que, por ejemplo, pueden ayudar en el análisis de las comunicaciones entre sistemas, como son los sniffers, y otras que se implementan para la protección perimetral de sistemas y redes, como son los Firewalls y los IDS. Otra técnica que se desarrolla en este bloque es la de encriptación, todos y cada uno de los capítulos comienza con una descripción de las técnicas y aplicaciones que se van a manejar a lo largo del capítulo, para, a continuación, explicar los procesos de instalación, configuración y administración de los mismos, con ejemplos prácticos.<p></p><span><a name='more'></a></span><p><b>Contenido</b></p><p></p><ul style="text-align: left;"><li>Introducción</li><li>Conceptos imprescindibles y protocolo TCP/IP</li><li>Buscar un vector de ataque</li><li>Técnicas de Hacking contra los sistemas y contramedidas</li><li>Hacking en sistema Windows</li><li>Hacking en sistemas Linux</li><li>Ataques SQL injection a bases de datos</li><li>Sniffers</li><li>Firewalls</li><li>IDS- detectores de intrusos</li><li>Encriptación</li></ul><div><br /></div><p></p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1NEPiIS9-fJvB-qGrwNMbBBEXDz7Yyrnn/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (40 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1NEPiIS9-fJvB-qGrwNMbBBEXDz7Yyrnn"><img alt="Hacking y Seguridad en Internet - 2da Edición" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /><br /></a><br /><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-19825656800919074202021-02-28T13:58:00.002-03:002021-02-28T13:58:16.222-03:00Empezando con Swift - Creado por Stack OverFlow<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVDjQ7Ux08RymQHfJxZbpc94_bLutXQqWdXRT5AQa5a-1uz29oR5hLqSEiADdeLlpjXgmLZEiAmtdCMbWuTCUoSHtMCgEKhdkVEwjnvFOpiB3KtE66VrKUwRiM0nIR_7hH_PHgjKbOJ2E/s842/32-aprende-lenguaje-swift.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="842" data-original-width="595" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVDjQ7Ux08RymQHfJxZbpc94_bLutXQqWdXRT5AQa5a-1uz29oR5hLqSEiADdeLlpjXgmLZEiAmtdCMbWuTCUoSHtMCgEKhdkVEwjnvFOpiB3KtE66VrKUwRiM0nIR_7hH_PHgjKbOJ2E/s320/32-aprende-lenguaje-swift.jpg" /></a></div><br />Este tutorial ha sido preparado para que los principiantes los ayuden a comprender Swift Programación. Después de completar este tutorial, se encontrará con un nivel moderado de experiencia en Swift desde donde puede pasar a los siguientes niveles.<p></p><h3 style="text-align: left;">¿Qué es el lenguaje de programación Swift?</h3><p>Swift es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y macOS. Fue presentado en la WWDC 2014 y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch; puede usar cualquier biblioteca programada en Objective-C y llamar a funciones de C. También es posible desarrollar código en Swift compatible con Objective-C bajo ciertas condiciones. Swift tiene la intención de ser un lenguaje seguro, de desarrollo rápido y conciso. Usa el compilador LLVM incluido en Xcode 6. Fue presentado como un lenguaje propietario, pero en el año 2015, con la versión 2.2, pasó a ser de código abierto8 con la Licencia Apache 2.0.</p><p>Chris Lattner comenzó su desarrollo en el 2010, eventualmente obtuvo colaboración de otros programadores. Swift se benefició de la experiencia de muchos lenguajes tomando ideas de Objective-C, Haskell, Rust, Ruby, Python, C#, CLU entre otros.</p><span><a name='more'></a></span><h4 style="text-align: left;">Tabla de contenido</h4><p><b>Acerca de 1</b></p><p><b>Capítulo 1: Empezando con Swift Language 2</b></p><p>Observaciones 2</p><p>Otros recursos 2</p><p>Versiones 2</p><p>Examples 3</p><p>Tu primer programa Swift 3</p><p>Instalación de Swift 4</p><p>Tu primer programa en Swift en una Mac (usando un área de juegos) 5</p><p>Tu primer programa en la aplicación Swift Playgrounds para iPad 9</p><p>Valor opcional y enumeración opcional 12</p><p><b>Capítulo 2: (Inseguro) punteros de búfer 14</b></p><p>Introducción 14</p><p>Observaciones 14</p><p>Examples 14</p><p>UnsafeMutablePointer 15</p><p>Práctico caso de uso para punteros de búfer 16</p><p><b>Capítulo 3: Actuación 17</b></p><p>Examples 17</p><p>Asignación de rendimiento 17</p><p>Advertencia sobre estructuras con cadenas y propiedades que son clases 17</p><p><b>Capítulo 4: Algoritmos con Swift 19</b></p><p>Introducción 19</p><p>Examples 19</p><p>Tipo de inserción 19</p><p>Clasificación 20</p><p>Selección de selección 23</p><p>Análisis asintótico 23</p><p>Ordenación rápida: tiempo de complejidad O (n log n) 24</p><p>Gráfico, trie, pila 25</p><p>Grafico 25</p><p>Trie 33</p><p>Apilar 36</p><p><b>Capítulo 5: Almacenamiento en caché en el espacio en disco 39</b></p><p>Introducción 39</p><p>Examples 39</p><p>Ahorro 39</p><p>Leyendo 39</p><p><b>Capítulo 6: Arrays 40</b></p><p>Introducción 40</p><p>Sintaxis 40</p><p>Observaciones 40</p><p>Examples 40</p><p>Semántica de valor 40</p><p>Conceptos básicos de matrices 40</p><p>Arreglos vacíos 41</p><p>Literales array 41</p><p>Arreglos con valores repetidos. 41</p><p>Creando arrays desde otras secuencias. 41</p><p>Matrices multidimensionales 42</p><p>Acceso a valores de matriz 42</p><p>Metodos utiles 43</p><p>Modificar valores en una matriz 43</p><p>Ordenar una matriz 44</p><p>Creando una nueva matriz ordenada 44</p><p>Ordenar una matriz existente en su lugar 44</p><p>Ordenar una matriz con un orden personalizado 44</p><p>Transformando los elementos de un Array con mapa (_ :) 45</p><p>Extraer valores de un tipo dado de un Array con flatMap (_ :) 46</p><p>Filtrando una matriz 46</p><p>Filtrado nil de una transformación de Array con flatMap (_ :) 47</p><p>Suscribiendo una matriz con un rango 47</p><p>Agrupar valores de matriz 48</p><p>Aplanar el resultado de una transformación de Array con flatMap (_ :) 48</p><p>Combinando los caracteres en una serie de cadenas. 49</p><p>Aplanando una matriz multidimensional 49</p><p>Ordenar una matriz de cuerdas 50</p><p>Lácilmente aplanando una matriz multidimensional con aplanar () 51</p><p>Combinando los elementos de un Array con reduce (_: combine :) 51</p><p>Eliminar elemento de una matriz sin saber su índice 52</p><p>Swift3 52</p><p>Encontrar el elemento mínimo o máximo de un Array 52</p><p>Encontrar el elemento mínimo o máximo con un pedido personalizado. 53</p><p>Acceder a los índices de forma segura. 53</p><p>Comparando 2 matrices con zip 54</p><p><b>Capítulo 7: Bloques 55</b></p><p>Introducción 55</p><p>Examples 55</p><p>Cierre sin escape 55</p><p>Cierre de escape 55</p><p><b>Capítulo 8: Booleanos 57</b></p><p>Examples 57</p><p>¿Qué es Bool? 57</p><p>Niega un Bool con el prefijo! operador 57</p><p>Operadores lógicos booleanos 57</p><p>Booleanos y condicionales en línea 58</p><p><b>Capítulo 9: Bucles 60</b></p><p>Sintaxis 60</p><p>Examples 60</p><p>Bucle de entrada 60</p><p>Iterando sobre un rango 60</p><p>Iterando sobre una matriz o conjunto 60</p><p>Iterando sobre un diccionario 61Iterando a la inversa 61</p><p>Iterando sobre rangos con zancada personalizada 62</p><p>Bucle de repetición 63</p><p>mientras bucle 63</p><p>Tipo de secuencia para cada bloque 63</p><p>Bucle de entrada con filtrado. 64</p><p>Rompiendo un bucle 65</p><p><b>Capítulo 10: Cambiar 66</b></p><p>Parámetros 66</p><p>Observaciones 66</p><p>Examples 66</p><p>Uso básico 66</p><p>Coincidencia de valores múltiples 67</p><p>Haciendo juego un rango 67</p><p>Usando la instrucción where en un switch 67</p><p>Satisfacer una de las múltiples restricciones usando el interruptor 68</p><p>Emparejamiento parcial 68</p><p>Cambiar fracasos 69</p><p>Interruptor y Enums 70</p><p>Interruptor y Opcionales 70</p><p>Interruptores y tuplas 70</p><p>Coincidencia basada en clase - ideal para prepareForSegue 71</p><p><b>Capítulo 11: Cierres 73</b></p><p>Sintaxis 73</p><p>Observaciones 73</p><p>Examples 73</p><p>Fundamentos de cierre 73</p><p>Variaciones de sintaxis 74</p><p>Pasando cierres a funciones 75</p><p>Sintaxis de cierre de seguimiento 75</p><p>Parámetros de @noescape 75</p><p>Nota de Swift 3: 76throws y rethrows 76</p><p>Capturas, referencias fuertes / débiles y ciclos de retención. 77</p><p>Retener ciclos 78</p><p>Utilización de cierres para codificación asíncrona. 78</p><p>Cierres y alias de tipo 79</p><p><b>Capítulo 12: Cifrado AES 81</b></p><p>Examples 81</p><p>Cifrado AES en modo CBC con un IV aleatorio (Swift 3.0) 81</p><p>Cifrado AES en modo CBC con un IV aleatorio (Swift 2.3) 84</p><p>Cifrado AES en modo ECB con relleno PKCS7 85</p><p><b>Capítulo 13: Comenzando con la Programación Orientada al Protocolo 87</b></p><p>Observaciones 87</p><p>Examples 87</p><p>Aprovechamiento de la programación orientada al protocolo para pruebas unitarias 87</p><p>Usando protocolos como tipos de primera clase. 88</p><p><b>Capítulo 14: Concurrencia 93</b></p><p>Sintaxis 93</p><p>Examples 93</p><p>Obtención de una cola de Grand Central Dispatch (GCD) 93</p><p>Ejecución de tareas en una cola de Grand Central Dispatch (GCD) 95</p><p>Loops concurrentes 96</p><p>Ejecutar tareas en un OperationQueue 97</p><p>Creación de operaciones de alto nivel 99</p><p><b>Capítulo 15: Condicionales 102</b></p><p>Introducción 102</p><p>Observaciones 102</p><p>Examples 102</p><p>Usando guardia 102</p><p>Condicionales básicos: declaraciones if 103</p><p>El operador lógico AND 103</p><p>El operador lógico O 104</p><p>El operador lógico NO 104</p><p>Encuadernación opcional y cláusulas "donde". 104</p><p>Operador ternario 105</p><p>Operador sin coalescencia 106</p><p><b>Capítulo 16: Conjuntos 107</b></p><p>Examples 107</p><p>Declarar Conjuntos 107</p><p>Modificar valores en un conjunto. 107</p><p>Comprobando si un conjunto contiene un valor 107</p><p>Realización de operaciones en sets. 107</p><p>Agregando valores de mi propio tipo a un conjunto 108</p><p>CountedSet 108</p><p><b>Capítulo 17: Control de acceso 110</b></p><p>Sintaxis 110</p><p>Observaciones 110</p><p>Examples 110</p><p>Ejemplo básico usando un Struct 110</p><p>Car.make (público) 111</p><p>Car.model (interno) 111</p><p>Car.otherName (fileprivate) 111</p><p>Car.fullName (privado) 111</p><p>Ejemplo de subclasificación 111</p><p>Getters and Setters Ejemplo 112</p><p><b>Capítulo 18: Controlador de finalización 113</b></p><p>Introducción 113</p><p>Examples 113</p><p>Controlador de finalización sin argumento de entrada 113</p><p>Controlador de finalización con argumento de entrada 113</p><p><b>Capítulo 19: Convenciones de estilo 115</b></p><p>Observaciones 115</p><p>Examples 115</p><p>Claro uso 115</p><p>Evitar la ambigüedad 115</p><p>Evitar la redundancia 115</p><p>Nombrando variables de acuerdo a su rol. 115</p><p>Alto acoplamiento entre nombre de protocolo y nombres de variable 116</p><p>Proporcionar detalles adicionales cuando se utilizan parámetros de tipo débil 116</p><p>Uso fluido 116</p><p>Usando lenguaje natural 116</p><p>Métodos de fábrica de nombres 116</p><p>Nombrando Parámetros en Inicializadores y Métodos de Fábrica 116</p><p>Nombrar de acuerdo a los efectos secundarios 117</p><p>Funciones o variables booleanas 117</p><p>Protocolos de denominación 117</p><p>Tipos y propiedades 117</p><p>Capitalización 118</p><p>Tipos y Protocolos 118</p><p>Todo lo demas... 118</p><p>El caso de Carmel: 118</p><p>Abreviaturas 118</p><p><b>Capítulo 20: Cuerdas y personajes 120</b></p><p>Sintaxis 120</p><p>Observaciones 120</p><p>Examples 120</p><p>Literales de cuerdas y personajes 120</p><p>Interpolación de cuerdas 120</p><p>Caracteres especiales 121</p><p>Cuerdas de concatenación 121</p><p>Examina y compara cuerdas 122</p><p>Codificación y descomposición de cadenas 123</p><p>Cuerdas en descomposición 123</p><p>Longitud de la cuerda y la iteración 123</p><p>Unicode 123</p><p>Estableciendo valores 123</p><p>Conversiones 124</p><p>Cuerdas de inversión 124</p><p>Cadenas mayúsculas y minúsculas 125</p><p>Compruebe si la cadena contiene caracteres de un conjunto definido 125</p><p>Contar las ocurrencias de un personaje en una cadena 126</p><p>Eliminar caracteres de una cadena no definida en Set 127</p><p>Formato de cadenas 127</p><p>Ceros a la izquierda 127</p><p>Números después de decimal 127</p><p>Decimal a hexadecimal 127</p><p>Decimal a un número con radix arbitrario 127</p><p>Convertir una cadena Swift a un tipo de número 128</p><p>Iteración de cuerdas 128</p><p>Eliminar WhiteSpace y NewLine iniciales y finales 130</p><p>Convertir cadena a / desde datos / NSData 130</p><p>Dividir una cadena en una matriz 131</p><p><b>Capítulo 21: Derivación de clave PBKDF2 133</b></p><p>Examples 133</p><p>Clave basada en contraseña Derivación 2 (Swift 3) 133</p><p>Clave basada en contraseña Derivación 2 (Swift 2.3) 134</p><p>Calibración de derivación de clave basada en contraseña (Swift 2.3) 135</p><p>Calibración de derivación de clave basada en contraseña (Swift 3) 135</p><p><b>Capítulo 22: Entrar en Swift 137</b></p><p>Observaciones 137</p><p>Examples 137</p><p>Imprimir Debug 137</p><p>Actualización de una clase de depuración e impresión de valores. 137</p><p>tugurio 138</p><p>imprimir () vs dump () 139</p><p>imprimir vs NSLog 139</p><p><b>Capítulo 23: Enums 141</b></p><p>Observaciones 141</p><p>Examples 141</p><p>Enumeraciones basicas 141</p><p>Enums con valores asociados. 142</p><p>Cabida indirecta 143</p><p>Valores crudos y hash 143</p><p>Inicializadores 144</p><p>Las enumeraciones comparten muchas características con clases y estructuras 145</p><p>Enumeraciones anidadas 146</p><p><b>Capítulo 24: Estructuras 147</b></p><p>Examples 147</p><p>Fundamentos de Estructuras 147</p><p>Las estructuras son tipos de valor 147</p><p>Mutando un Struct 147</p><p>Cuando puedes usar métodos de mutación 148</p><p>Cuando NO puedes usar métodos de mutación 148</p><p>Las estructuras no pueden heredar 148</p><p>Accediendo miembros de struct 148</p><p><b>Capítulo 25: Extensiones 150</b></p><p>Observaciones 150</p><p>Examples 150</p><p>Variables y funciones 150</p><p>Inicializadores en extensiones 150</p><p>¿Qué son las extensiones? 151</p><p>Extensiones de protocolo 151</p><p>Restricciones 151</p><p>Qué son las extensiones y cuándo usarlas. 152</p><p>Subíndices 152</p><p><b>Capítulo 26: Funcionar como ciudadanos de primera clase en Swift 154</b></p><p>Introducción 154</p><p>Examples 154Asignando función a una variable 154</p><p>Pasar la función como un argumento a otra función, creando así una función de orden superi 155</p><p>Función como tipo de retorno de otra función. 155</p><p><b>Capítulo 27: Funciones 156</b></p><p>Examples 156</p><p>Uso básico 156</p><p>Funciones con parámetros 156</p><p>Valores de retorno 157</p><p>Errores de lanzamiento 157</p><p>Métodos 158</p><p>Métodos de instancia 158</p><p>Métodos de tipo 158</p><p>Parámetros de entrada 158</p><p>Sintaxis de cierre de seguimiento 159</p><p>Los operadores son funciones 159</p><p>Parámetros variables 159</p><p>Subíndices 160</p><p>Opciones de subíndices: 161</p><p>Funciones con cierres 161</p><p>Funciones de paso y retorno. 162</p><p>Tipos de funciones 162</p><p><b>Capítulo 28: Funciones Swift Advance 164</b></p><p>Introducción 164</p><p>Examples 164</p><p>Introducción con funciones avanzadas. 164</p><p>Aplanar matriz multidimensional 165</p><p><b>Capítulo 29: Generar UIImage de Iniciales desde String 166</b></p><p>Introducción 166</p><p>Examples 166</p><p>InicialesImageFactory 166</p><p><b>Capítulo 30: Genéricos 167</b></p><p>Observaciones 167</p><p>Examples 167</p><p>Restricción de tipos genéricos de marcadores de posición 167</p><p>Los fundamentos de los genéricos 168</p><p>Funciones genéricas 168</p><p>Tipos genéricos 168</p><p>Pasando por tipos genéricos 169</p><p>Nombre genérico de marcador de posición 169</p><p>Ejemplos genéricos de clase 169</p><p>Herencia genérica de clase 170</p><p>Usando Genéricos para Simplificar las Funciones de Arreglos 171</p><p>Use genéricos para mejorar la seguridad de tipo 171</p><p>Restricciones de tipo avanzado 172</p><p><b>Capítulo 31: Gestión de la memoria 174</b></p><p>Introducción 174</p><p>Observaciones 174</p><p>Cuándo usar la palabra clave débil: 174</p><p>Cuándo usar la palabra clave sin dueño: 174</p><p>Escollos 174</p><p>Examples 174</p><p>Ciclos de referencia y referencias débiles 175</p><p>Referencias débiles 175</p><p>Gestión de memoria manual 176</p><p><b>Capítulo 32: Gestor de paquetes Swift 177</b></p><p>Examples 177</p><p>Creación y uso de un simple paquete Swift 177</p><p><b>Capítulo 33: Hash criptográfico 179</b></p><p>Examples 179</p><p>MD2, MD4, MD5, SHA1, SHA224, SHA256, SHA384, SHA512 (Swift 3) 179</p><p>HMAC con MD5, SHA1, SHA224, SHA256, SHA384, SHA512 (Swift 3) 180</p><p><b>Capítulo 34: Inicializadores 183</b></p><p>Examples 183</p><p>Establecer valores de propiedad predeterminados 183</p><p>Personalización de inicialización con paramatizadores. 183</p><p>Conveniencia inic 184</p><p>Inicializador designado 186</p><p>Inicia conveniencia () 186</p><p>Convenience init (otherString: String) 186</p><p>Inicializador designado (llamará al inicializador designado de superclase) 186</p><p>Inicia conveniencia () 187</p><p>Iniciador Throwable 187</p><p><b>Capítulo 35: Inyección de dependencia 188</b></p><p>Examples 188</p><p>Inyección de dependencia con controladores de vista 188</p><p>Introducción a la inyección dependiente 188</p><p>Ejemplo sin DI 188</p><p>Ejemplo con inyección de dependencia 189</p><p>Tipos de inyección de dependencia 191</p><p>Ejemplo de configuración sin DI 192</p><p>Inyección de dependencia del inicializador 192</p><p>Propiedades Dependencia Inyección 193</p><p>Método de inyección de dependencia 193</p><p><b>Capítulo 36: La declaración diferida 194</b></p><p>Examples 194</p><p>Cuándo usar una declaración diferida 194</p><p>Cuando NO usar una declaración diferida 194</p><p><b>Capítulo 37: Las clases 196</b></p><p>Observaciones 196</p><p>Examples 196</p><p>Definiendo una clase 196</p><p>Semántica de referencia 196</p><p>Propiedades y metodos 197</p><p>Clases y herencia múltiple 198deinit 198</p><p><b>Capítulo 38: Lectura y escritura JSON 199</b></p><p>Sintaxis 199</p><p>Examples 199</p><p>Serialización, codificación y decodificación JSON con Apple Foundation y Swift Standard Li 199</p><p>Leer json 199</p><p>Escribir json 199</p><p>Codificar y decodificar automáticamente 200</p><p>Codificar a datos JSON 201</p><p>Decodificar a partir de datos JSON 201</p><p>Codificación o decodificación exclusiva 201</p><p>Usando Nombres Clave Personalizados 201</p><p>SwiftyJSON 202</p><p>Freddy 203</p><p>Ejemplo de datos JSON 203</p><p>Deserialización de datos sin procesar 204</p><p>Deserializando modelos directamente 205</p><p>Serialización de datos en bruto 205</p><p>Serialización de modelos directamente 205</p><p>Flecha 205</p><p>JSON simple de análisis en objetos personalizados 207</p><p>JSON analizando Swift 3 208</p><p><b>Capítulo 39: Los diccionarios 211</b></p><p>Observaciones 211</p><p>Examples 211</p><p>Declarar Diccionarios 211</p><p>Modificar los diccionarios 211</p><p>Valores de acceso 212</p><p>Cambiar el valor del diccionario usando la clave 212</p><p>Obtener todas las claves en el diccionario 213</p><p>Fusionar dos diccionarios 213</p><p><b>Capítulo 40: Manejo de errores 214</b></p><p>Observaciones 214</p><p>Examples 214</p><p>Fundamentos de manejo de errores 214</p><p>Capturando diferentes tipos de error 215</p><p>Patrón de captura y cambio para el manejo explícito de errores 216</p><p>Deshabilitando la propagación de errores 217</p><p>Crear error personalizado con descripción localizada 217</p><p><b>Capítulo 41: Marca de documentación 219</b></p><p>Examples 219</p><p>Documentación de la clase 219</p><p>Estilos de documentación 219</p><p><b>Capítulo 42: Método Swizzling 224</b></p><p>Observaciones 224</p><p>Campo de golf 224</p><p>Examples 224</p><p>Ampliando UIViewController y Swizzling viewDidLoad 224</p><p>Fundamentos de Swift Swiftling 225</p><p>Fundamentos de Swizzling - Objective-C 226</p><p><b>Capítulo 43: NSRegularExpression en Swift 227</b></p><p>Observaciones 227</p><p>Examples 227</p><p>Extendiendo String para hacer patrones simples 227</p><p>Uso básico 228</p><p>Sustitución de subcadenas 228</p><p>Caracteres especiales 229</p><p>Validación 229</p><p>NSRegularExpression para validación de correo 230</p><p><b>Capítulo 44: Números 231</b></p><p>Examples 231</p><p>Tipos de números y literales. 231</p><p>Literales 231</p><p>Sintaxis literal entera 231</p><p>Sintaxis literal de punto flotante 231</p><p>Convertir un tipo numérico a otro 232</p><p>Convertir números a / desde cadenas 232</p><p>Redondeo 233</p><p>redondo 233</p><p>hacer techo 233</p><p>piso 233</p><p>En t 234</p><p>Notas 234</p><p>Generación de números aleatorios 234</p><p>Notas 234</p><p>Exposiciónción 235</p><p><b>Capítulo 45: Objetos asociados 236</b></p><p>Examples 236</p><p>Propiedad, en una extensión de protocolo, lograda utilizando objeto asociado. 236</p><p><b>Capítulo 46: Opcionales 239</b></p><p>Introducción 239</p><p>Sintaxis 239</p><p>Observaciones 239</p><p>Examples 239</p><p>Tipos de opcionales 239</p><p>Desenvolviendo un opcional 240</p><p>Operador Coalescente Nil 241</p><p>Encadenamiento opcional 241</p><p>Descripción general - ¿Por qué Optionals? 242</p><p><b>Capítulo 47: Operadores Avanzados 244</b></p><p>Examples 244</p><p>Operadores personalizados 244</p><p>Sobrecarga + para Diccionarios 245</p><p>Operadores conmutativos 245</p><p>Operadores de Bitwise 246Operadores de desbordamiento 247</p><p>Precedencia de los operadores Swift estándar. 247</p><p><b>Capítulo 48: OptionSet 249</b></p><p>Examples 249</p><p>Protocolo OptionSet 249</p><p><b>Capítulo 49: Patrones de diseño - Creacionales 250</b></p><p>Introducción 250</p><p>Examples 250</p><p>Semifallo 250</p><p>Método de fábrica 250</p><p>Observador 251</p><p>Cadena de responsabilidad 252</p><p>Iterador 253</p><p>Patrón de constructor 254</p><p>Ejemplo: 255</p><p>Llevarlo mas alla: 257</p><p><b>Capítulo 50: Patrones de diseño - Estructurales 261</b></p><p>Introducción 261</p><p>Examples 261</p><p>Adaptador 261</p><p>Fachada 261</p><p><b>Capítulo 51: Programación Funcional en Swift 263</b></p><p>Examples 263</p><p>Extraer una lista de nombres de una lista de personas 263</p><p>Atravesando 263</p><p>Saliente 263</p><p>Filtración 264</p><p>Usando Filtro con Estructuras 265</p><p><b>Capítulo 52: Protocolos 267</b></p><p>Introducción 267</p><p>Observaciones 267</p><p>Examples 267</p><p>Conceptos básicos del protocolo 267</p><p>Acerca de los protocolos 267</p><p>Requisitos de tipo asociado 269</p><p>Patrón de delegado 271</p><p>Ampliación del protocolo para una clase específica conforme 272</p><p>Usando el protocolo RawRepresentable (Extensible Enum) 273</p><p>Protocolos de clase solamente 273</p><p>Semántica de referencia de protocolos de clase solamente. 274</p><p>Variables débiles del tipo de protocolo. 275</p><p>Implementando el protocolo Hashable 275</p><p><b>Capítulo 53: Reflexión 277</b></p><p>Sintaxis 277</p><p>Observaciones 277</p><p>Examples 277</p><p>Uso básico para espejo 277</p><p>Obtención de tipos y nombres de propiedades para una clase sin tener que instanciarla 278</p><p><b>Capítulo 54: RxSwift 281</b></p><p>Examples 281</p><p>Conceptos básicos de RxSwift 281</p><p>Creando observables 281</p><p>Desechando 282</p><p>Fijaciones 283</p><p>RxCocoa y ControlEvents 283</p><p><b>Capítulo 55: Servidor HTTP Swift de Kitura 286</b></p><p>Introducción 286</p><p>Examples 286</p><p>Hola aplicación mundial 286</p><p><b>Capítulo 56: Tipo de fundición 290</b></p><p>Sintaxis 290</p><p>Examples 290</p><p>Downcasting 290</p><p>Casting con interruptor 290</p><p>Upcasting 291</p><p>Ejemplo de uso de un downcast en un parámetro de función que involucra subclases 291</p><p>Tipo casting en Swift Language 291</p><p>Tipo de fundición 291</p><p>Downcasting 292</p><p>Conversión de cadena a Int & Float: - 292</p><p>Conversión de flotar a cadena 292</p><p>Entero a valor de cadena 292</p><p>Flotante a valor de cadena 293</p><p>Valor flotante opcional a la cadena 293</p><p>Cadena opcional a valor de Int 293</p><p>Disminuyendo los valores de JSON 293</p><p>Disminución de valores desde JSON opcional 293</p><p>Gestionar JSON Response con condiciones. 293</p><p>Gestionar respuesta nula con condición 294</p><p>Salida: Empty Dictionary 294</p><p><b>Capítulo 57: Tipografías 295</b></p><p>Examples 295</p><p>Tipografías para cierres con parámetros. 295</p><p>Tipografías para cierres vacíos. 295</p><p>tipografías para otros tipos 295</p><p><b>Capítulo 58: Trabajando con C y Objective-C 296</b></p><p>Observaciones 296</p><p>Examples 296</p><p>Usando clases Swift desde el código Objective-C 296</p><p>En el mismo modulo 296</p><p>En otro modulo 297</p><p>Usando las clases de Objective-C del código Swift 297</p><p>Puente de encabezados 297</p><p>Interfaz generada 298</p><p>Especifique un encabezado de puente para swiftc 299</p><p>Usa un mapa de módulo para importar encabezados C 299</p><p>Interoperación de grano fino entre Objective-C y Swift 300</p><p>Usa la biblioteca estándar de C 301</p><p><b>Capítulo 59: Tuplas 302</b></p><p>Introducción 302</p><p>Observaciones 302</p><p>Examples 302</p><p>¿Qué son las tuplas? 302</p><p>La descomposición en variables individuales. 303</p><p>Tuplas como el valor de retorno de las funciones 303</p><p>Usando una tipografía para nombrar tu tipo de tupla 303</p><p>Intercambiando valores 304</p><p>Ejemplo con 2 variables 304</p><p>Ejemplo con 4 variables 304</p><p>Tuplas como caso en el interruptor 304</p><p><b>Capítulo 60: Variables y propiedades 306</b></p><p>Observaciones 306</p><p>Examples 306</p><p>Creando una Variable 306</p><p>Conceptos básicos de propiedad 306</p><p>Propiedades almacenadas perezosas 307</p><p>Propiedades calculadas 307</p><p>Variables locales y globales 308</p><p>Tipo de propiedades 308</p><p>Observadores de la propiedad 309</p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1Q95__CJbTR8Tc5v3LktwSsLX9gih98pI/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (3 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1Q95__CJbTR8Tc5v3LktwSsLX9gih98pI"><img alt="Empezando con Swift - Creado por Stack OverFlow" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /><br /></a><br /><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-18938582974920262412021-02-26T14:56:00.004-03:002021-02-26T14:56:56.644-03:00Kali Linux Network Scanning Cookbook<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5mXwd4UmdTTLVHRNAd-vIQu-JJqPh7DytWt1P0L83bVKTuw8Sizu5v1-YkjnsY7pGW31lBHjGH1m8DRscbYA1B4F6kNHlTrqBybJAH-b3hLlYAcPBtmSz9yIzNCHRcXs8HE_l-RL5p2s/s1360/kali_linux_network_scanning_cookbook.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1360" data-original-width="1103" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5mXwd4UmdTTLVHRNAd-vIQu-JJqPh7DytWt1P0L83bVKTuw8Sizu5v1-YkjnsY7pGW31lBHjGH1m8DRscbYA1B4F6kNHlTrqBybJAH-b3hLlYAcPBtmSz9yIzNCHRcXs8HE_l-RL5p2s/s320/kali_linux_network_scanning_cookbook.jpg" /></a></div>El rostro de la piratería y el ciberdelito se ha transformado drásticamente en las últimas dos décadas. A finales del siglo XX, mucha gente no tenía idea de qué era el ciberdelito. Esas personas pensaban que los piratas informáticos eran genios matemáticos malévolos que se escondían en los sótanos poco iluminados y hablaban en binario. Pero últimamente, hemos visto el surgimiento de una nueva marca de piratas informáticos. Debido a la disponibilidad pública de software y herramientas de piratería, el pirata informático de la nueva era podría ser fácilmente su vecino de al lado, el asistente de la gasolinera local o incluso su hijo de 12 años. Se han utilizado herramientas de script para niños como Low Orbit Ion Cannon (LOIC) para lanzar ataques masivos de denegación de servicio distribuido (DDoS) contra grandes corporaciones y organizaciones. Esta descarga gratuita de Windows simplemente requiere que ingrese una URL de destino, y también tiene una interfaz gráfica que tiene un parecido sorprendente con un videojuego de la era espacial. En un mundo donde la piratería se ha vuelto tan fácil que un niño puede hacerlo, es absolutamente esencial que las organizaciones verifiquen su propio nivel de protección haciendo que sus redes se prueben utilizando las mismas herramientas que los ciberdelincuentes usan contra ellos. Sin embargo, el uso básico de estas herramientas no es suficiente conocimiento para ser un profesional de seguridad de la información eficaz. Es absolutamente crítico que los profesionales de la seguridad de la información comprendan las técnicas que están siendo empleadas por estas herramientas y por qué estas técnicas pueden explotar diversas vulnerabilidades en una red o sistema. El conocimiento de los principios básicos subyacentes que explican cómo funcionan estas herramientas de ataque comunes le permite a uno usarlas de manera efectiva, pero lo que es más importante, también contribuye a la capacidad de uno para identificar eficazmente dichos ataques y defenderse de ellos. La intención de este libro es enumerar y explicar el uso de herramientas de ataque comunes que están disponibles en la plataforma Kali Linux, pero lo que es más importante, este libro también tiene como objetivo abordar los principios subyacentes que definen por qué funcionan estas herramientas. Además de abordar las herramientas altamente funcionales integradas en Kali Linux, también crearemos una gran cantidad de scripts de Python y bash que se pueden usar para realizar funciones similares y / o optimizar las herramientas existentes. En última instancia, la intención de este libro es ayudar a forjar profesionales de la seguridad más sólidos a través de una mejor comprensión de su adversario.<p></p><h3 style="text-align: left;">Que cubre este libro?</h3><p>El Capítulo 1, Introducción, presenta los principios y conceptos subyacentes que se utilizarán en el resto del libro.</p><p>El Capítulo 2, Exploración de descubrimiento, cubre técnicas y herramientas de exploración que se pueden utilizar para identificar sistemas activos en una red de destino, mediante la realización de descubrimiento de capa 2, capa 3 y capa 4.</p><p>El Capítulo 3, Exploración de puertos, incluye técnicas y herramientas de exploración que se pueden utilizar para enumerar la ejecución de servicios UDP y TCP en un sistema de destino.</p><p>El Capítulo 4, Toma de huellas dactilares, explica las técnicas y herramientas de escaneo que se pueden usar para identificar el sistema operativo y los servicios que se ejecutan en un sistema de destino.</p><p>El Capítulo 5, Análisis de vulnerabilidades, cubre técnicas y herramientas de análisis que se pueden utilizar para identificar y enumerar vulnerabilidades potenciales en un sistema de destino.</p><p>El Capítulo 6, Denegación de servicio, presenta técnicas y herramientas de ataque que se pueden utilizar para aprovechar las vulnerabilidades de denegación de servicio identificadas en un sistema objetivo.</p><p>El Capítulo 7, Análisis de aplicaciones web, proporciona técnicas y herramientas que se pueden utilizar para identificar y aprovechar las vulnerabilidades de las aplicaciones web en un sistema de destino.</p><p>El Capítulo 8, Automatización de las herramientas de Kali, presenta técnicas de creación de scripts que se pueden utilizar para optimizar y automatizar el uso de las herramientas existentes en Kali Linux.</p><h3 style="text-align: left;">Que necesitas para este libro?</h3><p>Para seguir los ejercicios que se tratan en este libro o para explorar más por su cuenta, necesitará los siguientes componentes:</p><p></p><ul style="text-align: left;"><li>Una sola computadora personal (Mac, Windows o Linux) con recursos suficientes que se pueden compartir entre múltiples máquinas virtuales. Como mínimo, debe tener 2 GB de RAM. Se recomienda que para un rendimiento óptimo, utilice un sistema con 8 a 16 GB de RAM. También se recomiendan varios procesadores y / o núcleos de procesador.</li><ul><li>Si está ejecutando un sistema con recursos limitados, intente minimizar la cantidad de máquinas virtuales que se ejecutan simultáneamente al completar los ejercicios.</li></ul><li>Un software de virtualización para ejecutar su entorno de laboratorio de seguridad. Algunas de las opciones disponibles incluyen las siguientes:</li><ul><li>VMware Fusion (Mac OS X)</li><li>VMware Player (Windows)</li><li>Oracle VirtualBox (Windows, Mac OS X o Linux)</li></ul><li>Múltiples sistemas operativos para ejecutar en el entorno del laboratorio de seguridad. La adquisición e instalación de cada uno de estos se discutirá en detalle en el Capítulo 1, Introducción. Los sistemas operativos necesarios incluyen los siguientes:</li><ul><li>Kali Linux</li><li>Metasploitable2</li><li>Un servidor Ubuntu</li><li>Sistema operativo Windows (se recomienda Windows XP SP2)</li></ul></ul><p></p><h3 style="text-align: left;">Para quien es este libro?</h3><p>Este libro está destinado a los siguientes usuarios:</p><p></p><ul style="text-align: left;"><li>Profesionales de tecnología de la información</li><li>Profesionales de seguridad de la información</li><li>Entusiastas casuales de la seguridad o la tecnología</li></ul><p></p><p>El libro asume que el lector tiene poca o ninguna familiaridad con las pruebas de penetración, Linux, secuencias de comandos y redes TCP / IP. Cada sección de este libro aborda inicialmente los principios subyacentes, antes de discutir las técnicas que los emplean.<span><br /></span></p><span><a name='more'></a></span><h4 style="text-align: left;"><b>Table of Contents</b></h4><p><b>Preface 1</b></p><p><b>Chapter 1: Getting Started 7</b></p><p>Configuring a security lab with VMware Player (Windows) 7</p><p>Configuring a security lab with VMware Fusion (Mac OS X) 13</p><p>Installing Ubuntu Server 16</p><p>Installing Metasploitable2 20</p><p>Installing Windows Server 22</p><p>Increasing the Windows attack surface 24</p><p>Installing Kali Linux 27</p><p>Configuring and using SSH 31</p><p>Installing Nessus on Kali Linux 35</p><p>Configuring Burp Suite on Kali Linux 39</p><p>Using text editors (VIM and Nano) 42</p><p><b>Chapter 2: Discovery Scanning 45</b></p><p>Using Scapy to perform layer 2 discovery 49</p><p>Using ARPing to perform layer 2 discovery 58</p><p>Using Nmap to perform layer 2 discovery 63</p><p>Using NetDiscover to perform layer 2 discovery 66</p><p>Using Metasploit to perform layer 2 discovery 69</p><p>Using ICMP ping to perform layer 3 discovery 73</p><p>Using Scapy to perform layer 3 discovery 78</p><p>Using Nmap to perform layer 3 discovery 87</p><p>Using fping to perform layer 3 discovery 90</p><p>Using hping3 to perform layer 3 discovery 94</p><p>Using Scapy to perform layer 4 discovery 100</p><p>Using Nmap to perform layer 4 discovery 111</p><p>Using hping3 to perform layer 4 discovery 115</p><p><b>Chapter 3: Port Scanning 125</b></p><p>UDP port scanning 126</p><p>TCP port scanning 126</p><p>UDP scanning with Scapy 129</p><p>UDP scanning with Nmap 136</p><p>UDP scanning with Metasploit 140</p><p>Stealth scanning with Scapy 145</p><p>Stealth scanning with Nmap 153</p><p>Stealth scanning with Metasploit 160</p><p>Stealth scanning with hping3 167</p><p>Connect scanning with Scapy 170</p><p>Connect scanning with Nmap 178</p><p>Connect scanning with Metasploit 184</p><p>Connect scanning with Dmitry 192</p><p>TCP port scanning with Netcat 195</p><p>Zombie scanning with Scapy 199</p><p>Zombie scanning with Nmap 204</p><p><b>Chapter 4: Fingerprinting 209</b></p><p>Banner grabbing with Netcat 211</p><p>Banner grabbing with Python sockets 213</p><p>Banner grabbing with Dmitry 217</p><p>Banner grabbing with Nmap NSE 220</p><p>Banner grabbing with Amap 221</p><p>Service identification with Nmap 224</p><p>Service identification with Amap 226</p><p>Operating system identification with Scapy 230</p><p>Operating system identification with Nmap 237</p><p>Operating system identification with xProbe2 238</p><p>Passive operating system identification with p0f 241</p><p>SNMP analysis with Onesixtyone 244</p><p>SNMP analysis with SNMPwalk 245</p><p>Firewall identification with Scapy 247</p><p>Firewall identification with Nmap 262</p><p>Firewall identification with Metasploit 264</p><p><b>Chapter 5: Vulnerability Scanning 269</b></p><p>Vulnerability scanning with Nmap Scripting Engine 270</p><p>Vulnerability scanning with MSF auxiliary modules 276</p><p>Creating scan policies with Nessus 280</p><p>Vulnerability scanning with Nessus 283</p><p>Command-line scanning with Nessuscmd 288</p><p>Validating vulnerabilities with HTTP interaction 291</p><p>Validating vulnerabilities with ICMP interaction 293</p><p><b>Chapter 6: Denial of Service 297</b></p><p>Fuzz testing to identify buffer overflows 298</p><p>Remote FTP service buffer overflow DoS 302</p><p>Smurf DoS attack 305</p><p>DNS amplification DoS attack 309</p><p>SNMP amplification DoS attack 320</p><p>NTP amplification DoS attack 330</p><p>SYN flood DoS attack 332</p><p>Sock stress DoS attack 339</p><p>DoS attacks with Nmap NSE 344</p><p>DoS attacks with Metasploit 348</p><p>DoS attacks with the exploit database 354</p><p><b>Chapter 7: Web Application Scanning 359</b></p><p>Web application scanning with Nikto 360</p><p>SSL/TLS scanning with SSLScan 363</p><p>SSL/TLS scanning with SSLyze 366</p><p>Defining a web application target with Burp Suite 369</p><p>Using Burp Suite Spider 371</p><p>Using Burp Suite engagement tools 373</p><p>Using Burp Suite Proxy 375</p><p>Using the Burp Suite web application scanner 376</p><p>Using Burp Suite Intruder 378</p><p>Using Burp Suite Comparer 381</p><p>Using Burp Suite Repeater 382</p><p>Using Burp Suite Decoder 386</p><p>Using Burp Suite Sequencer 387</p><p>GET method SQL injection with sqlmap 390</p><p>POST method SQL injection with sqlmap 394</p><p>Requesting a capture SQL injection with sqlmap 397</p><p>Automating CSRF testing 399</p><p>Validating command injection vulnerabilities with HTTP traffic 402</p><p>Validating command injection vulnerabilities with ICMP traffic 404</p><p><b>Chapter 8: Automating Kali Tools 407</b></p><p>Nmap greppable output analysis 407</p><p>Nmap port scanning with targeted NSE script execution 410</p><p>Nmap NSE vulnerability scanning with MSF exploitation 413</p><p>Nessuscmd vulnerability scanning with MSF exploitation 416</p><p>Multithreaded MSF exploitation with reverse shell payload 419</p><p>Multithreaded MSF exploitation with backdoor executable 422</p><p>Multithreaded MSF exploitation with ICMP verification 424</p><p>Multithreaded MSF exploitation with admin account creation 426</p><p><br /></p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1D9Z_gB1C6Uey17HtVRq6psgdqKAoi8bQ/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Inglés<br />
<b>Peso</b>: (5 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1D9Z_gB1C6Uey17HtVRq6psgdqKAoi8bQ"><img alt="Kali Linux Network Scanning Cookbook" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /><br /></a><br /><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-29562032191646200952021-02-25T17:43:00.004-03:002021-02-25T17:43:49.312-03:00Empezando con Kotlin - Creado por Stack OverFlow<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiof6A57kralk46oRmQ9P9Wd0gzS4ujiacV7Cw7p3ir_KIvRRY8PkO4Y3y_R_MLrTfruzWiE7dC3ikQSL9XppngaHT9naIbwkdea7VdgNunoZOPzSnPUvbz6KlNUrOA2OhvEhlkHJ-4hY/s842/34-empezando-kotlin.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="842" data-original-width="595" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiof6A57kralk46oRmQ9P9Wd0gzS4ujiacV7Cw7p3ir_KIvRRY8PkO4Y3y_R_MLrTfruzWiE7dC3ikQSL9XppngaHT9naIbwkdea7VdgNunoZOPzSnPUvbz6KlNUrOA2OhvEhlkHJ-4hY/s320/34-empezando-kotlin.jpg" /></a></div>Este tutorial ha sido preparado para que los principiantes los ayuden a comprender Kotlin Programación. Después de completar este tutorial, se encontrará con un nivel moderado de experiencia en Kotlin desde donde puede pasar a los siguientes niveles.<h3 style="text-align: left;">¿Qúe es el lenguaje de programación Kotlin?</h3><div><div>Kotlin es un lenguaje de programación de tipado estático que corre sobre la máquina virtual de Java y que también puede ser compilado a código fuente de JavaScript. Es desarrollado principalmente por JetBrains en sus oficinas de San Petersburgo (Rusia). El nombre proviene de la isla de Kotlin, situada cerca de San Petersburgo.</div><div><br /></div><div>Kotlin fue nombrado lenguaje del mes por la revista Dr. Dobb' Journal en su edición de enero de 2016. Aunque no tiene una sintaxis compatible con Java, Kotlin está diseñado para interoperar con código Java y es dependiente del código Java de su biblioteca de clases, tal como pueda ser el entorno de colecciones de Java (Java collections framework).</div></div><span><a name='more'></a></span><div><h3 style="text-align: left;">Tabla de contenido</h3><div>Acerca de 1</div><div><b>Capítulo 1: Empezando con Kotlin 2</b></div><div>Observaciones 2</div><div>Compilando kotlin 2</div><div>Versiones 2</div><div>Examples 3</div><div>Hola Mundo 3</div><div>Hola mundo usando una declaración de objeto 4</div><div>Hola mundo usando un objeto compañero 4</div><div>Principales métodos utilizando varargs. 5</div><div>Compilar y ejecutar el código Kotlin en la línea de comandos 5</div><div>Lectura de entrada desde la línea de comandos 5</div><div><b>Capítulo 2: Advertencias de Kotlin 7</b></div><div>Examples 7</div><div>Llamando a un toString () en un tipo anulable 7</div><div><b>Capítulo 3: Anotaciones 8</b></div><div>Examples 8</div><div>Declarar una anotación 8</div><div>Meta-anotaciones 8</div><div><b>Capítulo 4: Arrays 10</b></div><div>Examples 10</div><div>Arreglos Genéricos 10</div><div>Arreglos de primitivos 10</div><div>Extensiones 11</div><div>Iterar Array 11</div><div>Crear una matriz 11</div><div>Crear una matriz utilizando un cierre 11</div><div>Crear una matriz sin inicializar 12</div><div><b>Capítulo 5: Bucles en Kotlin 13</b></div><div>Observaciones 13</div><div>Examples 13</div><div>Repetir una acción x veces. 13</div><div>Bucle sobre iterables 13</div><div>Mientras bucles 14</div><div>Romper y continuar 14</div><div>Iterando sobre un mapa en Kotlin 14</div><div>Recursion 15</div><div>Construcciones funcionales para iteración. 15</div><div><b>Capítulo 6: Colecciones 16</b></div><div>Introducción 16</div><div>Sintaxis 16</div><div>Examples 16</div><div>Usando la lista 16</div><div>Usando el mapa 16</div><div>Usando set 16</div><div><b>Capítulo 7: Configurando la compilación de Kotlin 17</b></div><div>Examples 17</div><div>Configuracion gradle 17</div><div>JVM de orientación 17</div><div>Apuntando a android 17</div><div>Apuntando a js 17</div><div>Utilizando Android Studio 18</div><div>Instalar el complemento 18</div><div>Configurar un proyecto 18</div><div>Convertir Java 18</div><div>Migración de Gradle usando el script Groovy al script Kotlin 19</div><div><b>Capítulo 8: coroutines 21</b></div><div>Introducción 21</div><div>Examples 21</div><div>Coroutine simple que demora 1 segundo pero no bloquea. 21</div><div><b>Capítulo 9: Declaraciones condicionales 22</b></div><div>Observaciones 22</div><div>Examples 22</div><div>Declaración if estándar 22</div><div>Declaración-if como una expresión 22</div><div>When-statement en lugar de if-else-if chains 23</div><div>Cuando coinciden argumentos de declaración 23</div><div>Cuando-declaración como expresión 24</div><div>Cuando-declaración con enumeraciones 24</div><div><b>Capítulo 10: Delegación de clase 26</b></div><div>Introducción 26</div><div>Examples 26</div><div>Delegar un método a otra clase. 26</div><div><b>Capítulo 11: Edificio DSL 27</b></div><div>Introducción 27</div><div>Examples 27</div><div>Infix enfoque para construir DSL 27</div><div>Anulando el método de invocación para construir DSL 27</div><div>Utilizando operadores con lambdas. 27</div><div>Usando extensiones con lambdas. 28</div><div><b>Capítulo 12: Enumerar 29</b></div><div>Observaciones 29</div><div>Examples 29</div><div>Inicialización 29</div><div>Funciones y propiedades en enumeraciones 29</div><div>Enumeración simple 30</div><div>Mutabilidad 30</div><div><b>Capítulo 13: Equivalentes de flujo de Java 8 31</b></div><div>Introducción 31</div><div>Observaciones 31</div><div>Sobre la pereza 31</div><div>¿Por qué no hay tipos? 31</div><div>Reutilizando corrientes 32</div><div>Ver también: 32</div><div>Examples 33</div><div>Acumular nombres en una lista 33</div><div>Convertir elementos en cadenas y concatenarlos, separados por comas. 33</div><div>Calcular la suma de los salarios de los empleados 33</div><div>Grupo de empleados por departamento. 33</div><div>Calcular la suma de los salarios por departamento 33</div><div>Partición de los estudiantes en pasar y fallando 34</div><div>Nombres de miembros masculinos 34</div><div>Grupo de nombres de miembros en la lista por género 34</div><div>Filtrar una lista a otra lista 34</div><div>Encontrando la cadena más corta de una lista 35</div><div>Diferentes tipos de transmisiones # 2: usar perezosamente el primer elemento si existe 35</div><div>Diferentes tipos de transmisiones # 3: iterar un rango de enteros 35</div><div>Diferentes tipos de transmisiones # 4: iterar una matriz, mapear los valores, calcular el 35</div><div>Diferentes tipos de flujos n. ° 5: iterar perezosamente una lista de cadenas, mapear los v 35</div><div>Diferentes tipos de flujos n. ° 6: iteren perezosamente un flujo de Ints, mapee los valore 36</div><div>Diferentes tipos de transmisiones # 7: iteraciones perezosas dobles, mapa a Int, mapa a Ca 36</div><div>Contando elementos en una lista después de aplicar el filtro 36</div><div>Cómo funcionan las secuencias - filtre, mayúsculas, luego ordene una lista 37</div><div>Diferentes tipos de transmisiones # 1: ansiosos por usar el primer elemento si existe 37</div><div>Recopile el ejemplo # 5: encuentre personas mayores de edad, una cadena con formato de sal 37</div><div>Reúna el ejemplo # 6: agrupe a las personas por edad, edad de impresión y nombres juntos 38</div><div>Recopile el ejemplo # 7a - Asigne nombres, únase junto con delimitador 39</div><div>Ejemplo de recopilación # 7b: recopilación con SummarizingInt 40</div><div><b>Capítulo 14: Excepciones 42</b></div><div>Examples 42</div><div>Cogiendo la excepción con try-catch-finally 42</div><div><b>Capítulo 15: Extensiones Kotlin para Android 43</b></div><div>Introducción 43</div><div>Examples 43</div><div>Configuración 43</div><div>Usando vistas 43</div><div>Sabores del producto 44</div><div>Un entusiasta oyente por llamar la atención, cuando la vista está completamente dibujada a 45</div><div><b>Capítulo 16: Funciones 46</b></div><div>Sintaxis 46</div><div>Parámetros 46</div><div>Examples 46</div><div>Funciones que toman otras funciones 46</div><div>Funciones Lambda 47</div><div>Referencias de funciones 48</div><div>Funciones básicas 49</div><div>Funciones abreviadas 49</div><div>Funciones en línea 50</div><div>Funciones del operador 50</div><div><b>Capítulo 17: Fundamentos de Kotlin 51</b></div><div>Introducción 51</div><div>Observaciones 51</div><div>Examples 51</div><div>Ejemplos básicos 51</div><div><b>Capítulo 18: Gamas 53</b></div><div>Introducción 53</div><div>Examples 53</div><div>Tipos de rangos integrales 53</div><div>función downTo () 53</div><div>función de paso 53</div><div>hasta la función 53</div><div><b>Capítulo 19: Genéricos 54</b></div><div>Introducción 54</div><div>Sintaxis 54</div><div>Parámetros 54</div><div>Observaciones 54</div><div>El límite superior implícito es anulable 54</div><div>Examples 55</div><div>Variación del sitio de la declaración 55</div><div>Varianza del sitio de uso 55</div><div><b>Capítulo 20: Herencia de clase 57</b></div><div>Introducción 57</div><div>Sintaxis 57</div><div>Parámetros 57</div><div>Examples 57</div><div>Conceptos básicos: la palabra clave 'abrir' 57</div><div>Heredando campos de una clase 58</div><div>Definiendo la clase base: 58</div><div>Definiendo la clase derivada: 58</div><div>Usando la subclase: 58</div><div>Heredando métodos de una clase. 58</div><div>Definiendo la clase base: 58</div><div>Definiendo la clase derivada: 58</div><div>El Ninja tiene acceso a todos los métodos en persona 59</div><div>Anulando propiedades y métodos 59</div><div>Propiedades de reemplazo (tanto de solo lectura como mutables): 59</div><div>Métodos de anulación: 59</div><div><b>Capítulo 21: Instrumentos de cuerda 60</b></div><div>Examples 60</div><div>Elementos de cuerda 60</div><div>Literales de cuerda 60</div><div>Plantillas de cadena 61</div><div>Igualdad de cuerdas 61</div><div><b>Capítulo 22: Interfaces 63</b></div><div>Observaciones 63</div><div>Examples 63</div><div>Interfaz básica 63</div><div>Interfaz con implementaciones por defecto. 63</div><div>Propiedades 63</div><div>Implementaciones multiples 64</div><div>Propiedades en interfaces 64</div><div>Conflictos al implementar múltiples interfaces con implementaciones predeterminadas 65</div><div>súper palabra clave 65</div><div><b>Capítulo 23: JUIT 67</b></div><div>Examples 67</div><div>Reglas 67</div><div><b>Capítulo 24: Kotlin para desarrolladores de Java 68</b></div><div>Introducción 68</div><div>Examples 68</div><div>Declarando variables 68</div><div>Hechos rápidos 68</div><div>Igualdad e identidad 69</div><div>SI, TRY y otros son expresiones, no declaraciones 69</div><div><b>Capítulo 25: Lambdas básicas 70</b></div><div>Sintaxis 70</div><div>Observaciones 70</div><div>Examples 71</div><div>Lambda como parámetro para filtrar la función. 71</div><div>Lambda pasó como una variable 71</div><div>Lambda para benchmarking una función llamada 71</div><div><b>Capítulo 26: loguearse en kotlin 72</b></div><div>Observaciones 72</div><div>Examples 72</div><div>kotlin.logging 72</div><div><b>Capítulo 27: Métodos de extensión 73</b></div><div>Sintaxis 73</div><div>Observaciones 73</div><div>Examples 73</div><div>Extensiones de nivel superior 73</div><div>Posible trampa: las extensiones se resuelven de forma estática 73</div><div>Muestra que se extiende por mucho tiempo para representar una cadena humana legible 74</div><div>Ejemplo de extensión de Java 7+ clase de ruta 74</div><div>Usando funciones de extensión para mejorar la legibilidad 75</div><div>Ejemplo de extensión de clases temporales de Java 8 para representar una cadena con format 75</div><div>Funciones de extensión a objetos complementarios (apariencia de funciones estáticas) 75</div><div>Solución perezosa de la propiedad de la extensión 76</div><div>Extensiones para una referencia más fácil Vista desde el código 76</div><div>Extensiones 77</div><div>Uso 77</div><div><b>Capítulo 28: Modificadores de visibilidad 78</b></div><div>Introducción 78</div><div>Sintaxis 78</div><div>Examples 78</div><div>Ejemplo de código 78</div><div><b>Capítulo 29: Modismos 79</b></div><div>Examples 79</div><div>Creación de DTO (POJOs / POCOs) 79</div><div>Filtrando una lista 79</div><div>Delegado a una clase sin aportarlo en el constructor público. 79</div><div>Serializable y serialVersionUid en Kotlin 80</div><div>Métodos fluidos en Kotlin 80</div><div>Utilice let o también para simplificar el trabajo con objetos anulables. 81</div><div>Utilice aplicar para inicializar objetos o para lograr el encadenamiento de métodos. 81</div><div><b>Capítulo 30: Objetos singleton 83</b></div><div>Introducción 83</div><div>Examples 83</div><div>Utilizar como repalcement de métodos estáticos / campos de java 83</div><div>Utilizar como un singleton 83</div><div><b>Capítulo 31: Parámetros Vararg en Funciones 85</b></div><div>Sintaxis 85</div><div>Examples 85</div><div>Conceptos básicos: Uso de la palabra clave vararg 85</div><div>Operador de propagación: pasar matrices a funciones vararg 85</div><div><b>Capítulo 32: Propiedades delegadas 87</b></div><div>Introducción 87</div><div>Examples 87</div><div>Inicialización perezosa 87</div><div>Propiedades observables 87</div><div>Propiedades respaldadas por el mapa 87</div><div>Delegación personalizada 87</div><div>Delegado Se puede usar como una capa para reducir la placa de caldera 88</div><div><b>Capítulo 33: RecyclerView en Kotlin 90</b></div><div>Introducción 90</div><div>Examples 90</div><div>Clase principal y adaptador 90</div><div><b>Capítulo 34: Reflexión 92</b></div><div>Introducción 92</div><div>Observaciones 92</div><div>Examples 92</div><div>Hacer referencia a una clase 92</div><div>Haciendo referencia a una función 92</div><div>Interoperación con la reflexión de Java. 92</div><div>Obtención de valores de todas las propiedades de una clase. 93</div><div>Establecer valores de todas las propiedades de una clase 93</div><div><b>Capítulo 35: Regex 96</b></div><div>Examples 96</div><div>Modismos para la concordancia de expresiones regulares en cuando la expresión 96</div><div>Usando locales inmutables: 96</div><div>Usando temporarios anónimos: 96</div><div>Usando el patrón de visitante: 96</div><div>Introducción a las expresiones regulares en Kotlin. 97</div><div>La clase RegEx 97</div><div>Seguridad nula con expresiones regulares. 97</div><div>Cuerdas crudas en patrones regex 98</div><div>find (entrada: CharSequence, startIndex: Int): MatchResult? 98</div><div>findAll (input: CharSequence, startIndex: Int): secuencia 98</div><div>matchEntire (input: CharSequence): MatchResult? 99</div><div>partidos (entrada: CharSequence): booleano 99</div><div>contieneMatchIn (entrada: CharSequence): Boolean 99</div><div>split (entrada: CharSequence, limit: Int): Lista 100</div><div>reemplazar (entrada: CharSequence, reemplazo: cadena): cadena 100</div><div><b>Capítulo 36: Seguridad nula 101</b></div><div>Examples 101</div><div>Tipos anulables y no anulables 101</div><div>Operador de llamada segura 101</div><div>Idioma: llamar a múltiples métodos en el mismo objeto sin verificar 101</div><div>Moldes inteligentes 102</div><div>Elimina los nulos de un iterable y un array 102</div><div>Null Coalescing / Elvis Operator 102</div><div>Afirmación 103</div><div>Operador Elvis (? :) 103</div><div><b>Capítulo 37: Tipo de alias 104</b></div><div>Introducción 104</div><div>Sintaxis 104</div><div>Observaciones 104</div><div>Examples 104</div><div>Tipo de función 104</div><div>Tipo genérico 104</div><div><b>Capítulo 38: Tipo de constructores seguros 105</b></div><div>Observaciones 105</div><div>Una estructura típica de un constructor de tipo seguro 105</div><div>Constructores seguros en las bibliotecas de Kotlin 105</div><div>Examples 105</div><div>Generador de estructura de árbol de tipo seguro 105</div></div>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1tnNZj1hHktGCxsmSm6ekVLfuy1Byxmxs/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (1 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1tnNZj1hHktGCxsmSm6ekVLfuy1Byxmxs"><img alt="Empezando con Kotlin - Creado por Stack OverFlow" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-20530870084904080522021-02-24T18:51:00.003-03:002021-02-24T18:53:50.519-03:00Algoritmo de Búsqueda DFS: DEPTH FIRST SEARCH<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUr3MkBnbnWxv-xHSyVqvHvTj5-Co1VsT-3p4-fp4hcS8HMVNH4gm7fu3PrCY56URjCmZWeLQpbILEMw_mFYEYBoX0UIsyzmnVGiHsSGDoR5IwJOybZw3NDZI5GlxGPP5GDwxsC2wL0vQ/s350/dfs.gif" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="350" data-original-width="350" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUr3MkBnbnWxv-xHSyVqvHvTj5-Co1VsT-3p4-fp4hcS8HMVNH4gm7fu3PrCY56URjCmZWeLQpbILEMw_mFYEYBoX0UIsyzmnVGiHsSGDoR5IwJOybZw3NDZI5GlxGPP5GDwxsC2wL0vQ/s320/dfs.gif" /></a></div>El algoritmo de búsqueda que se explicará a continuación es Depth First Search ( DFS ) se explicará el algoritmo de manera similar a como se hizo BFS, proponiendo problemas y otorgando códigos del algoritmo en si.<p></p><h4 style="text-align: left;">Descripción</h4><p>El algoritmo DFS posee varias aplicaciones la mas importante es para problemas de conectividad, si un grafo es conexo, detectar ciclos en un grafo, numero de componentes conexas, etc y es bastante útil en otro algoritmos como para hallar las componentes fuertemente conexas en un grafo ( Algoritmo de Kosaraju, Algoritmo de Tarjan), para hallar puntos de articulación o componentes biconexas ( puentes ), para recorrido en un circuito o camino euleriano, topological sort, flood fill y otras aplicaciones.</p><h4 style="text-align: left;">Como trabaja?</h4><p>DFS va formando un árbol al igual que BFS pero lo hace a profundidad. Existen dos formas de hacer el recorrido una es usando una Pila y otra de manera recursiva:</p><div style="text-align: left;"><b>Usando Stack</b></div><p>El concepto es el mismo que BFS solo que se cambia la Cola por una Pila, el proceso es como sigue: visitar el nodo inicial y ponerlo en la pila, ahora para ver los siguientes nodos a visitar sacamos el nodo tope de la pila y vemos sus adyacentes, los que no han sido visitados los insertamos en la pila. El proceso se repite hasta que la pila se encuentre vacía ( se han visitado todos los nodos ).</p><div style="text-align: left;"><b>Algoritmo en pseudocódigo:</b></div><p></p><blockquote><p>1 método DFS( origen):</p><p>2 creamos una pila S</p><p>3 agregamos origen a la pila S</p><p>4 marcamos origen como visitado</p><p>5 mientras S no este vacío:</p><p>6 sacamos un elemento de la pila S llamado v</p><p>7 para cada vertice w adyacente a v en el Grafo: </p><p>8 si w no ah sido visitado:</p><p>9 marcamos como visitado w</p><p>10 insertamos w dentro de la pila </p></blockquote><div style="text-align: left;"><b>Usando Recursión</b></div><p>Usar la recursión es mucho mas fácil y ademas muy útil, es la forma mas usada en la solución de problemas con este algoritmo.</p><div style="text-align: left;"><b>Algoritmo en pseudocódigo: </b></div><div><div></div><blockquote><div>1 método DFS( origen):</div><div>2 marcamos origen como visitado </div><div>3 para cada vertice v adyacente a origen en el Grafo: </div><div>4 si v no ah sido visitado:</div><div>5 marcamos como visitado v</div><div>6 llamamos recursivamente DFS( v ) </div></blockquote><p>Tomemos como ejemplo el siguiente grafo no dirigido: </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUSSIFXepdnPIu3ec6uYN9K4Cs1gdNRukWCALhbTaS857XyyIQ2A5rFw11hKnZaY1ATchmEN3arpmDh_WXXNuRbeEZejcJXjZkOzQfg6RzF43T34Lu5v3JqR8EUnikCg1SQrBfzH-guVY/s576/grafo.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="393" data-original-width="576" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUSSIFXepdnPIu3ec6uYN9K4Cs1gdNRukWCALhbTaS857XyyIQ2A5rFw11hKnZaY1ATchmEN3arpmDh_WXXNuRbeEZejcJXjZkOzQfg6RzF43T34Lu5v3JqR8EUnikCg1SQrBfzH-guVY/w400-h272/grafo.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;">Al igual que con la pila requerimos un nodo inicial, de manera recursiva llamamos a los adyacentes del nodo inicial, de esta forma se puede ver si llamamos inicialmente a “1”:</div><p></p><p>Inicial “1”: marcamos “1” como visitado, sus adyacentes son “2”, “3” y “5”.</p><p><b>Visitados:</b> 1.</p><p><b>Adyacentes de 1:</b> 2 , 3 , 5</p><p>En la llamada recursiva ira el primero insertado en la lista de adyacencia, en este caso “2”, marcamos como visitado. Ahora el inicial es “2”, sus adyacentes son “1” , “4” y “5”.</p><p><b>Visitados: </b>1 , 2</p><p><b>Adyacentes de 2:</b> 1, 4 , 5</p><p>Evaluamos el 1ero de la lista que es “1” pero ya fue visitado por lo tanto sigo con el siguiente, en este caso “4” , marcamos como visitado. Ahora inicial es “4”, sus adyacentes son “2”.</p><p><b>Visitados:</b> 1 , 2 , 4</p><p><b>Adyacentes de 4:</b> 2</p><p>Tocaria el nodo 2 pero ya fue visitado termina la recursion por ese lado. El siguiente adyacente de “2” es “5”. Ahora inicial es “5”, marcamos como visitado, sus adyacentes son “1” y “2”.</p><p><b>Visitados: </b>1 , 2 , 4 , 5</p><p><b>Adyacentes de 5:</b> 1 , 2</p><p>Igual que con nodo “4” sus adyacentes han sido visitados por lo tanto terminamos la recursion por el nodo “2”.</p><p>El nodo actual es “1”, sus adyacentes eran “2”, “5” y “3”, estabamos evaluando por “2” pero ya terminamos el siguiente es “5” el cual ya fue visitado, continuamos con “3” este no fue visitado, marcamos como visitado, vemos sus adyacentes “1”.</p><p><b>Visitados:</b> 1 , 2 , 4 , 5 , 3</p><p><b>Adyacentes de 3:</b> 1</p><p>Como nodo “1” ya fue visitado entonces termina la recursión y termina el recorrido DFS. Como se puede observar el orden en que fueron visitados los nodos es el recorrido DFS del grafo.</p><h4 style="text-align: left;">Posibles Paths en un grafo</h4><p>Otra ayuda importantisima del algoritmo recursivo es que nos permite hallar todos los posibles paths( rutas) de un nodo inicial a otro final, ello lo conseguiremos usando backtracking dentro del algoritmo:</p><p><b>Algoritmo en pseudocódigo:</b></p><p></p><blockquote><p>1 método DFS( origen,final):</p><p>2 marcamos origen como visitado </p><p>3 recuperar el path si se llego a final</p><p>4 para cada vertice v adyacente a origen en el Grafo: </p><p>5 si v no ah sido visitado:</p><p>6 marcamos como visitado v</p><p>7 llamamos recursivamente DFS( v )</p><p>8 marcamos origen como no visitado</p></blockquote><p><b>Ejemplo Aplicativo:</b></p><p>Tengamos un juego de dominos donde si hago caer uno domino, todos los demas dominos que siguen a este caerán. Dado el numero de dominos “n”, el estado del juego en la forma “x y” ( si domino “x” cae entonces domino “y” tambien caerá) , la cantidad de consultas a realizar, cada consulta sera el numero del domino el cual yo impulsaré. El problema me pide hallar cuantos dominos caeran a partir del domino que yo impulsé.</p><p><b>Supongamos la entrada:</b></p><p>8 6 3 ( 8 dominos, 6 enlaces de dominos y 3 consultas )</p><p>1 2</p><p>2 5</p><p>5 3</p><p>4 3</p><p>6 7</p><p>7 8</p><p>1</p><p>4</p><p>6</p><p><b>Solución</b></p><p>Declaremos nuestras variables globales: </p><blockquote><i>vector<int> ady[ MAX ]; //lista de adyacencia<br />int total; //la cantidad total de dominos que caerán<br />bool visitado[ MAX ]; //arreglo de dominos caídos</i></blockquote><p>Modelemos el problema como un grado dirigido:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8RSc9u5BNnR5a7Hy_s27ah32L753IaLZNFeoIWi7njSChEJlA6bq5zI-CVbqsywW7c1W-QsgtSC6dVtrSwGzhbS_leAN1zunGe3VoveQZcn2vA0xvw9eNQ5tVQuPc9unoBcnnSzUnMFw/s503/ejemplo_domino.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="218" data-original-width="503" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8RSc9u5BNnR5a7Hy_s27ah32L753IaLZNFeoIWi7njSChEJlA6bq5zI-CVbqsywW7c1W-QsgtSC6dVtrSwGzhbS_leAN1zunGe3VoveQZcn2vA0xvw9eNQ5tVQuPc9unoBcnnSzUnMFw/w400-h174/ejemplo_domino.jpg" width="400" /></a></div><div>Ahora vemos cada consulta, la primera nos indica que impulsaré el domino numero 1, entonces al hacer ello los dominos que caerán serán 1 -> 2 -> 5 ->3, debo retornar 4 la cantidad de dominos caídos. Para la segunda consulta caéran solamente 4->3, y finalmente para 6 caerán 6->7->8</div><div><br /></div><div><b>La solución lo realizaremos con un DFS como sigue:</b></div><blockquote><div><i>void dfs( int u ){ //domino origen</i></div><div><i> total++; //aumento en mi respuesta la caida de un domino</i></div><div><i> visitado[ u ] = true; //domino "u" cayo</i></div><div><i> for( int v = 0 ; v < ady[ u ].size(); ++v ){ //verifico los demas posibles domino que caeran si impulso "u"</i></div><div><i> if( !visitado[ ady[ u ][ v ] ] ){ //si el domino adyacente no cayó entonces es el siguiente a evaluar</i></div><div><i> dfs( ady[ u ][ v ] ); //recursivamente veo que dominos caeran a partir del adyacente de "u"</i></div><div><i> }</i></div><div><i> }</i></div><div><i>}</i></div></blockquote><div><i></i></div></div><div><p></p><div></div></div><div><h4 style="text-align: left;">Componentes Conexas</h4><div>Algún problema puede ser que nos pida hallar la cantidad de componentes conexas, supongamos el siguiente grafo no dirigido:</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsWNIUMGqMQV3d5fmY8-5_Bu-hRnoALCHsV874uvIxhO-ADA1k8NaYwjon6Ld1NOrDdLVGEKqTTPkKpKFsXI_OxmcOFyKXBCAzhZYAFFLJiAP_3rXul568MGIPoG1J803PMruMrep3wcs/s224/conectividad.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="224" data-original-width="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsWNIUMGqMQV3d5fmY8-5_Bu-hRnoALCHsV874uvIxhO-ADA1k8NaYwjon6Ld1NOrDdLVGEKqTTPkKpKFsXI_OxmcOFyKXBCAzhZYAFFLJiAP_3rXul568MGIPoG1J803PMruMrep3wcs/s16000/conectividad.gif" /></a></div><br /><div><div>La cantidad de componentes conexas es 2. El problema puede ser resuelto de la siguiente manera:</div><div><br /></div><div>Evaluamos todos los vertices posibles y los tomamos como origen aquellos no visitados:</div></div><div><blockquote><div><i>for( int i = 1 ; i <= V ; ++i ){ //recorremos todos los posibles vertices</i></div><div><i> if( !visitado[ i ] ){ //si alguno no fue visitado tenemos una componente a partir de ese nodo</i></div><div><i> dfs( i ); //recorremos a partir de nodo i todo el grafo que se forma</i></div><div><i> total++; //incrementamos cantidad de componentes</i></div><div><i> }</i></div><div><i>}</i></div></blockquote><div><i></i></div></div><div><i><br /></i></div><div>Usamos el algoritmo estándar DFS para cada recorrido:</div><div><blockquote><div><i>void dfs( int u ){</i></div><div><i> visitado[ u ] = true;</i></div><div><i> for( int v = 0 ; v < ady[ u ].size(); ++v ){</i></div><div><i> if( !visitado[ ady[ u ][ v ] ] ){</i></div><div><i> dfs( ady[ u ][ v ] );</i></div><div><i> }</i></div><div><i> }</i></div><div><i>}</i></div></blockquote><div><i></i></div></div><p></p><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-76282666558846577622021-02-24T01:14:00.003-03:002021-02-24T01:14:51.998-03:00Empezando con Objetive-C - Creado por Stack OverFlow<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfMQtKCmi_W-t2bEJNY7rRDKvg2ZAoAoAfRPUKrvnPJusIF3VKmUqe5XG5hIh6_eNaL4nLD2eIlU0q-M0E2s4pAX-l4Tbc0KXr4iOhsQHr1fg8ONpgtUkn5dEK8TtZSgtLQ7R6wrZxAW4/s842/33-comenzando-el-lenguaje-objective-c.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="842" data-original-width="595" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfMQtKCmi_W-t2bEJNY7rRDKvg2ZAoAoAfRPUKrvnPJusIF3VKmUqe5XG5hIh6_eNaL4nLD2eIlU0q-M0E2s4pAX-l4Tbc0KXr4iOhsQHr1fg8ONpgtUkn5dEK8TtZSgtLQ7R6wrZxAW4/s320/33-comenzando-el-lenguaje-objective-c.jpg" /></a></div>Este tutorial ha sido preparado para que los principiantes los ayuden a comprender lenguaje Objective-C Programación. Después de completar este tutorial, se encontrará con un nivel moderado de experiencia en lenguaje Objective-C desde donde puede pasar a los siguientes niveles.<p></p><h3 style="text-align: left;">¿Cómo nació el lenguaje de programación Objetive-C y para que se utiliza?</h3><div>Objective-C es un lenguaje de programación orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk. Originalmente fue creado por Brad Cox y la corporación StepStone en 1980. En 1988 fue adoptado como lenguaje de programación de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC. Actualmente se usa como un lenguaje principal de programación para Mac OS X, iOS y GNUstep, además de Swift.</div><div><br /></div><div><div>Tras adquirir NeXT en 1996, Apple empleó OpenStep en su nuevo sistema operativo, Mac OS X. Este incluía Objective-C y la herramienta de desarrollo basada en Objective-C de NeXT, Project Builder (que luego se ha expandido y ahora se conoce por Xcode), así como la herramienta de diseño de interfaz, Interface Builder. La mayoría de la actual Cocoa API de Apple está basada en objetos de interfaz de OneStep, y es el entorno de desarrollo de Objective-C más usado para desarrollo activo.</div><div><br /></div><div>En la WWDC de 2014, Apple anunció planes para reemplazar a Objective-C en el desarrollo de Cocoa por el nuevo lenguaje Swift, que es llamado "Objective-C sin la C".</div></div><span><a name='more'></a></span><h4 style="text-align: left;">Tabla de contenido</h4><div><div>Acerca de 1</div><div><b>Capítulo 1: Comenzando con el lenguaje Objective-C 2</b></div><div>Versiones 2</div><div>Examples 2</div><div>Hola Mundo 2</div><div>Compilando el programa 3</div><div><b>Capítulo 2: Análisis XML 4</b></div><div>Examples 4</div><div>Análisis XML 4</div><div><b>Capítulo 3: Bloques 6</b></div><div>Sintaxis 6</div><div>Observaciones 6</div><div>Examples 6</div><div>Bloques como parámetros del método 6</div><div>Definiendo y Asignando 7</div><div>Bloques como propiedades 7</div><div>Bloquear Typedefs 7</div><div>Bloques como variables locales. 8</div><div><b>Capítulo 4: BOOL / bool / Boolean / NSCFBoolean 9</b></div><div>Examples 9</div><div>BOOL / Boolean / bool / NSCFBoolean 9</div><div>BOOL VS Boolean 9</div><div><b>Capítulo 5: Categorías 11</b></div><div>Sintaxis 11</div><div>Observaciones 11</div><div>Examples 11</div><div>Categoría simple 11</div><div>Declarar un método de clase 12</div><div>Añadiendo una propiedad con una categoría 12</div><div>De conformidad con el protocolo. 12</div><div>Crear una categoría en XCode 13</div><div><b>Capítulo 6: Clases y objetos 17</b></div><div>Sintaxis 17</div><div>Examples 17</div><div>Creación de clases con valores de inicialización. 17</div><div>Clase Singleton 17</div><div>El tipo de retorno "instancetype" 19</div><div>Especificando genéricos 19</div><div>Diferencia entre asignación e inicialización. 20</div><div><b>Capítulo 7: Codificación de valor clave / Observación de valor clave 21</b></div><div>Examples 21</div><div>Ejemplo más común de codificación de valor clave de la vida real 21</div><div>Valor clave observando 21</div><div>Consulta de datos KVC 23</div><div>Operadores de cobro 23</div><div><b>Capítulo 8: Continuar y romper! 28</b></div><div>Examples 28</div><div>Continuar y romper declaración 28</div><div><b>Capítulo 9: Declare el método de clase y el método de instancia 30</b></div><div>Introducción 30</div><div>Sintaxis 30</div><div>Examples 30</div><div>Cómo declarar método de clase y método de instancia. 30</div><div><b>Capítulo 10: Entero aleatorio 32</b></div><div>Examples 32</div><div>Entero aleatorio básico 32</div><div>Entero aleatorio dentro de un rango 32</div><div><b>Capítulo 11: Entorno de tiempo de ejecución de bajo nivel 33</b></div><div>Observaciones 33</div><div>Examples 33</div><div>Adjuntar objeto a otro objeto existente (asociación) 33</div><div>Métodos de aumento utilizando el método Swizzling 33</div><div>Métodos de llamada directamente 35</div><div><b>Capítulo 12: Enumeración rápida 37</b></div><div>Examples 37</div><div>Enumeración rápida de un NSArray 37</div><div>Enumeración rápida de una NSArray con índice. 37</div><div><b>Capítulo 13: Enums 39</b></div><div>Sintaxis 39</div><div>Examples 39</div><div>Definiendo una enumeración 39</div><div>Declaración de enumeración typedef en Objective-C 39</div><div>Convertir C ++ std :: vector a una matriz Objective-C 40</div><div><b>Capítulo 14: Especificadores de formato 42</b></div><div>Introducción 42</div><div>Sintaxis 42</div><div>Observaciones 42</div><div>Examples 43</div><div>Ejemplo de entero -% i 43</div><div><b>Capítulo 15: Estructuras 44</b></div><div>Sintaxis 44</div><div>Observaciones 44</div><div>Examples 44</div><div>CGPoint 44</div><div>Definición de una estructura y acceso a los miembros de la estructura 45</div><div><b>Capítulo 16: Explotación florestal 47</b></div><div>Sintaxis 47</div><div>Observaciones 47</div><div>Examples 47</div><div>Explotación florestal 47</div><div>NSLog vs printf 47</div><div>Formato de salida NSLog 48</div><div>Registro de valores variables 48</div><div>El mensaje vacío no se imprime 49</div><div>Eliminar declaraciones de registro de versiones de lanzamiento 49</div><div>Usando __FUNCION __ 49</div><div>Tipo NSLog y BOOL 50</div><div>Registro de metadatos NSLog 50</div><div>Iniciar sesión agregando a un archivo 50</div><div><b>Capítulo 17: Gestión de la memoria 52</b></div><div>Examples 52</div><div>Conteo automático de referencias 52</div><div>Referencias fuertes y débiles. 53</div><div>Gestión de memoria manual 53</div><div>Reglas de gestión de memoria cuando se utiliza el conteo manual de referencias. 54</div><div><b>Capítulo 18: Grand Central Dispatch 57</b></div><div>Introducción 57</div><div>Examples 57</div><div>Qué es Grand Central Dispatch. 57</div><div><b>Capítulo 19: Herencia 58</b></div><div>Sintaxis 58</div><div>Examples 58</div><div>El coche se hereda del vehículo. 58</div><div><b>Capítulo 20: Macros predefinidas 60</b></div><div>Introducción 60</div><div>Sintaxis 60</div><div>Examples 60</div><div>Macros predefinidas 60</div><div><b>Capítulo 21: Manejo de errores 61</b></div><div>Sintaxis 61</div><div>Examples 61</div><div>Afirmando 61</div><div>Manejo de errores y excepciones con el bloque try catch 61</div><div><b>Capítulo 22: Métodos 63</b></div><div>Sintaxis 63</div><div>Examples 63</div><div>Parámetros del método 63</div><div>Crea un método básico. 63</div><div>Valores de retorno 64</div><div>Métodos de clase 64</div><div>Métodos de llamada 64</div><div>Métodos de instancia 65</div><div>Pase por el paso del parámetro valor 65</div><div>Pase por parámetro de referencia pasando 66</div><div><b>Capítulo 23: Multihilo 68</b></div><div>Examples 68</div><div>Creando un hilo simple 68</div><div>Crear hilo más complejo. 68</div><div>Almacenamiento de hilo local 69</div><div><b>Capítulo 24: NSArray 70</b></div><div>Sintaxis 70</div><div>Examples 70</div><div>Creando Arrays 70</div><div>Averiguar el número de elementos en una matriz 70</div><div>Elementos de acceso 70</div><div>Obtener un solo artículo 70</div><div>Primer y último artículo 71</div><div>Filtrado de matrices con predicados 71</div><div>Convertir NSArray a NSMutableArray para permitir modificaciones 71</div><div>Ordenando matriz con objetos personalizados 72</div><div>Método de comparación 72</div><div>NSSortDescriptor 72</div><div>Bloques 72</div><div>Actuación 72</div><div>Conversión entre conjuntos y matrices 72</div><div>Revertir una matriz 73</div><div>En bucle 73</div><div>Usando Genéricos 73</div><div>Enumerar utilizando bloques 73</div><div>Comparando arrays 74</div><div>Añadir objetos a NSArray 74</div><div><b>Capítulo 25: NSArray 75</b></div><div>Examples 75</div><div>Creando instancias de NSArray 75</div><div>Ordenando matrices 75</div><div>Filtro NSArray y NSMutableArray 75</div><div><b>Capítulo 26: NSAttributedString 77</b></div><div>Examples 77</div><div>Creación de una cadena que tiene kerning personalizado (espacio entre letras) 77</div><div>Crear una cadena con texto golpeado a través 77</div><div>Uso de Enumerar sobre los atributos en una cadena y subrayar parte de la cadena 77</div><div>Cómo crear una cadena de tres colores atribuida. 78</div><div><b>Capítulo 27: NSCache 79</b></div><div>Examples 79</div><div>NSCache 79</div><div><b>Capítulo 28: NSCalendar 80</b></div><div>Examples 80</div><div>Información local del sistema 80</div><div>Inicializando un calendario 80</div><div>Cálculos Calendarios 81</div><div><b>Capítulo 29: NSData 82</b></div><div>Examples 82</div><div>Crear 82</div><div>Obtener NSData longitud 82</div><div>Codificación y decodificación de una cadena usando NSData Base64 82</div><div>NSData y cadena hexadecimal 83</div><div><b>Capítulo 30: NSDate 85</b></div><div>Observaciones 85</div><div>Examples 85</div><div>Creando un NSDate 85</div><div>Comparación de fechas 85</div><div>Convierta NSDate que se compone de hora y minuto (solo) a un NSDate completo 86</div><div>Convertir NSDate a NSString 87</div><div><b>Capítulo 31: NSDiccionario 88</b></div><div>Examples 88</div><div>Crear 88</div><div>NSDictionary to NSArray 88</div><div>NSDictionary a NSData 88</div><div>NSDictionary a JSON 89</div><div>Enumeración basada en bloques 89</div><div>Enumeración rápida 89</div><div><b>Capítulo 32: NSDiccionario 90</b></div><div>Sintaxis 90</div><div>Observaciones 90</div><div>Examples 90</div><div>Creando utilizando literales. 90</div><div>Creación utilizando dictionaryWithObjectsAndKeys: 90</div><div>Creando utilizando plistas 91</div><div>Estableciendo un valor en NSDictionary 91</div><div>Estándar 91</div><div>Taquigrafía 91</div><div>Obtener un valor de NSDictionary 91</div><div>Estándar 92</div><div>Taquigrafía 92</div><div>Compruebe si NSDictionary ya tiene una clave o no 92</div><div><b>Capítulo 33: NSJSONSerialización 93</b></div><div>Sintaxis 93</div><div>Parámetros 93</div><div>Observaciones 93</div><div>Examples 93</div><div>Análisis JSON utilizando NSJSONSerialization Objective c 93</div><div><b>Capítulo 34: NSMutableArray 95Examples 95</b></div><div>Añadiendo elementos 95</div><div>Insertar elementos 95</div><div>Borrando elementos 95</div><div>Ordenando matrices 96</div><div>Mueve el objeto a otro índice 96</div><div>Filtrado de contenido de matriz con Predicado 96</div><div>Creando un NSMutableArray 96</div><div><b>Capítulo 35: NSMutableDictionary 98</b></div><div>Parámetros 98</div><div>Examples 98</div><div>Ejemplo de NSMutableDictionary 98</div><div>Eliminar entradas de un diccionario mutable 99</div><div><b>Capítulo 36: NSObject 101</b></div><div>Introducción 101</div><div>Sintaxis 101</div><div>Examples 101</div><div>NSObject 101</div><div><b>Capítulo 37: NSPredicate 103</b></div><div>Sintaxis 103</div><div>Observaciones 103</div><div>Examples 103</div><div>Filtrar por nombre 103</div><div>Buscar películas, excepto los identificadores dados 104</div><div>Encuentra todos los objetos de tipo película. 105</div><div>Encuentra identificadores de objetos distintos de la matriz 105</div><div>Encuentra películas con identificadores específicos 105</div><div>Comparación entre mayúsculas y minúsculas con el título exacto 105</div><div>Caso sensible con coincidencia de título exacto 105</div><div>Comparación entre mayúsculas y minúsculas con subconjunto coincidente 105</div><div><b>Capítulo 38: NSRegularExpression 106</b></div><div>Sintaxis 106</div><div>Examples 106</div><div>Encuentra todos los números en una cadena 106</div><div>Compruebe si una cadena coincide con un patrón 106</div><div><b>Capítulo 39: NSSortDescriptor 108</b></div><div>Examples 108</div><div>Ordenado por combinaciones de NSSortDescriptor 108</div><div><b>Capítulo 40: NSString 109</b></div><div>Introducción 109</div><div>Observaciones 109</div><div>Examples 109</div><div>Creación 109</div><div>Longitud de la cuerda 110</div><div>Caso cambiante 110</div><div>Comparando cuerdas 111</div><div>Unirse a una matriz de cuerdas 111</div><div>Codificación y decodificación 112</div><div>Terrible 112</div><div>Buscando una subcadena 113</div><div>Trabajar con cuerdas C 113</div><div>Eliminar espacios en blanco iniciales y finales 114</div><div>Formateo 114</div><div>Invirtiendo un Objective-C de NSString 114</div><div><b>Capítulo 41: NSTextEnganche 116</b></div><div>Sintaxis 116</div><div>Observaciones 116</div><div>Examples 116</div><div>Ejemplo NSTextAttachment 116</div><div><b>Capítulo 42: NSTimer 117</b></div><div>Examples 117</div><div>Creando un temporizador 117</div><div>Invalidando un temporizador 117</div><div>Manualmente disparando un temporizador 117</div><div>Almacenando información en el temporizador 118</div><div><b>Capítulo 43: NSURL 119</b></div><div>Examples 119</div><div>Crear 119</div><div>Compara NSURL 119</div><div>Modificación y conversión de una URL de archivo con la eliminación y la adición de la ruta 119</div><div><b>Capítulo 44: NSUrl enviar una solicitud de publicación 121</b></div><div>Examples 121</div><div>Solicitud POST simple 121</div><div>Solicitud de publicación simple con tiempo de espera 121</div><div><b>Capítulo 45: NSUserDefaults 122</b></div><div>Examples 122</div><div>Ejemplo simple 122</div><div>Borrar NSUserDefaults 122</div><div><b>Capítulo 46: Objetivo moderno-C 123</b></div><div>Examples 123</div><div>Literales 123</div><div>NSNumber 123</div><div>NSArray 123</div><div>NSDiccionario 123</div><div>Suscripción de contenedores 124</div><div><b>Capítulo 47: Propiedades 125</b></div><div>Sintaxis 125</div><div>Parámetros 125</div><div>Examples 126</div><div>¿Qué son las propiedades? 126</div><div>Capturadores personalizados y setters 127</div><div>Propiedades que causan actualizaciones 128</div><div><b>Capítulo 48: Protocolos 131</b></div><div>Examples 131</div><div>Definición de protocolo básico 131</div><div>Métodos opcionales y requeridos. 131</div><div>Conforme a los Protocolos 132</div><div>Declaraciones Forward 132</div><div>Comprobando la existencia de implementaciones de métodos opcionales. 132</div><div>Verifica el protocolo de conformidad 133</div><div><b>Capítulo 49: Protocolos y Delegados. 134</b></div><div>Observaciones 134</div><div>Examples 134</div><div>Implementación de Protocolos y mecanismo de Delegación. 134</div><div><b>Capítulo 50: Pruebas unitarias utilizando Xcode 136</b></div><div>Observaciones 136</div><div>Examples 137</div><div>Probando un bloque de código o algún método: 137</div><div>Alimente los datos ficticios al método bajo prueba si es necesario y luego compare los res 137</div><div>Prueba de bloque asíncrono de código: 137</div><div>Medición del rendimiento de un bloque de código: 137</div><div>Ejecución de trajes de prueba: 138</div><div>Nota: 138</div><div><b>Capítulo 51: Singletons 140</b></div><div>Introducción 140</div><div>Examples 140</div><div>Usando Grand Central Dispatch (GCD) 140</div><div>Crear una clase Singleton y también evitar que tenga múltiples instancias usando alloc / i 140</div><div>Creando Singleton y también evitando que tenga múltiples instancias usando alloc / init, n 141</div><div><b>Capítulo 52: Suscripción 143</b></div><div>Examples 143</div><div>Subíndices con NSArray 143</div><div>Subíndices con NSDictionary 143</div><div>Suscripción personalizada 144</div><div><b>Capítulo 53: Tipos de datos básicos 145</b></div><div>Sintaxis 145</div><div>Examples 145</div><div>BOOL 145</div><div>Carné de identidad 145</div><div>SEL 146</div><div>IMP (puntero de implementación) 147</div><div>NSInteger y NSUInteger 148</div></div>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1ZQ-ngyIB9UqOcLkRv70ZgaENfx2krU4X/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (2 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1ZQ-ngyIB9UqOcLkRv70ZgaENfx2krU4X"><img alt="Empezando con Objetive-C - Creado por Stack OverFlow" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-86792457653367020322021-02-23T01:38:00.005-03:002021-02-23T01:39:45.549-03:00Empezando con GO - Creado por Stack OverFlow<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg463E-dA6SujxKQ3OAzwsONsInUJD562qgXHTJBC_SgHIyjJWucIDj5UWNePw2-VLQdtbLpYsUxbInaVtuobAubpja_FEfLgQGjGl5XxjYyUrg0ocH8MjoQdrfjA7pm55JHggp3rbknZ4/s842/24-aprende-lenguaje-go.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="842" data-original-width="595" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg463E-dA6SujxKQ3OAzwsONsInUJD562qgXHTJBC_SgHIyjJWucIDj5UWNePw2-VLQdtbLpYsUxbInaVtuobAubpja_FEfLgQGjGl5XxjYyUrg0ocH8MjoQdrfjA7pm55JHggp3rbknZ4/s320/24-aprende-lenguaje-go.jpg" /></a></div>Este tutorial ha sido preparado para que los principiantes los ayuden a comprender lenguaje GO Programación. Después de completar este tutorial, se encontrará con un nivel moderado de experiencia en lenguaje GO desde donde puede pasar a los siguientes niveles.<p></p><h3 style="text-align: left;">¿Qué es el lenguaje de programación GO y para que se utiliza?</h3><div>Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C, que intenta ser dinámico como Python y con el rendimiento de C o C++. Ha sido desarrollado por Google y sus diseñadores iniciales fueron Robert Griesemer, Rob Pike y Ken Thompson. Actualmente está disponible en formato binario para los sistemas operativos Windows, GNU/Linux, FreeBSD y Mac OS X, pudiendo también ser instalado en estos y en otros sistemas mediante el código fuente.</div><div>Go es un lenguaje de programación compilado, concurrente, imperativo, estructurado, orientado a objetos y con recolector de basura que de momento es soportado en diferentes tipos de sistemas UNIX, incluidos Linux, FreeBSD, Mac OS X y Plan 9 (puesto que parte del compilador está basado en un trabajo previo sobre el sistema operativo Inferno). Las arquitecturas soportadas son i386, amd64 y ARM.</div><div>Actualmente GO se utiliza mucho es creaciones de API Rest de forma fácil y ágil.</div><div><br /></div><div><h3 style="text-align: left;">Características del lenguaje de programación GO</h3><div><ul style="text-align: left;"><li>Go es un proyecto opensource.</li><li>Go usa una sintaxis similar a C.</li><li>Go usa tipado estático (statically typed ).</li><li>Go es un lenguaje compilado, al igual que C y C++.</li><li>Provee de un recolector de basura , reflexión y algunas otras capacidades de lenguajes de alto nivel.</li><li>El binario de Go tiene la característica de compilación cruzada de manera nativa.</li><li>Go admite el paradigma de programación orientada a objetos, pero a diferencia de otros lenguajes de programación no dispone de herencia de tipos y tampoco de palabras clave que denoten claramente que soporta este paradigma.</li><li>En Go, la definición de un tipo ("clase") se realiza por medio de declaraciones separadas (interfaces, structs, embedded values).</li><li>Go permite el uso de delegación (a través de embedded values) y polimorfismo (por medio de interfaces).</li><li>Go utiliza la concurrencia a través de las gorutinas.</li><li>Go esta orientado a aprovechar sistemas con múltiples procesadores y procesamiento en red.</li><li>Go admite la tipificación dinámica de datos también conocida como duck Typing.</li><li>Un struct puede implementar una interfaz de forma automática.</li></ul><div><h3 style="text-align: left;">Manejo de las Excepciones</h3><div>Go no utiliza excepciones.Los creadores del lenguaje han dado varios motivos para que esto sea así. La principal es que añadir una capa de excepciones agrega una complejidad innecesaria al lenguaje y al entorno de ejecución. Por definición las excepciones deberían ser excepcionales pero al final se acaban usando como controladores del flujo de la aplicación y dejan de tener la finalidad de excepcionalidad. Según los creadores, las excepciones tienen que ser realmente excepcionales y el uso que se le da mayoritariamente no justifica su existencia.</div></div></div></div><span><a name='more'></a></span><h4 style="text-align: left;">Tabla de contenido</h4><div><div>Acerca de 1</div><div><b>Capítulo 1: Empezando con Go 2</b></div><div>Observaciones 2</div><div>Versiones 2</div><div>La última versión de la versión principal está en negrita a continuación. Historial de lan 2</div><div>Examples 2</div><div>¡Hola Mundo! 2</div><div>Salida: 3</div><div>FizzBuzz 3</div><div>Listado de variables de entorno de Go 4</div><div>Configurando el medio ambiente 4</div><div>GOPATH 5</div><div>GOBIN 5</div><div>GOROOT 5</div><div>Acceso a la documentación fuera de línea 5</div><div>Running Go en línea 6</div><div>El patio de juegos Go 6</div><div>Compartiendo tu codigo 6</div><div>En acción 6</div><div><b>Capítulo 2: Agrupación de memoria 8</b></div><div>Introducción 8</div><div>Examples 8</div><div>sync.Pool 8</div><div><b>Capítulo 3: Análisis de archivos CSV 10</b></div><div>Sintaxis 10</div><div>Examples 10</div><div>CSV simple de análisis 10</div><div><b>Capítulo 4: Análisis de argumentos de línea de comando y banderas 11</b></div><div>Examples 11</div><div>Argumentos de línea de comando 11Banderas 11</div><div><b>Capítulo 5: Aplazar 13</b></div><div>Introducción 13</div><div>Sintaxis 13</div><div>Observaciones 13</div><div>Examples 13</div><div>Diferir lo básico 13</div><div>Llamadas de función diferida 15</div><div><b>Capítulo 6: Archivo I / O 17</b></div><div>Sintaxis 17</div><div>Parámetros 17</div><div>Examples 18</div><div>Leer y escribir en un archivo usando ioutil. 18</div><div>Listado de todos los archivos y carpetas en el directorio actual. 18</div><div>Listado de todas las carpetas en el directorio actual 19</div><div><b>Capítulo 7: Arrays 20</b></div><div>Introducción 20</div><div>Sintaxis 20</div><div>Examples 20</div><div>Creando matrices 20</div><div>Array Multidimensional 21</div><div>Índices de matriz 22</div><div><b>Capítulo 8: Autorización JWT en Go 24</b></div><div>Introducción 24</div><div>Observaciones 24</div><div>Examples 24</div><div>Analizar y validar un token utilizando el método de firma HMAC 24</div><div>Creación de un token utilizando un tipo de notificaciones personalizado 25</div><div>Creación, firma y codificación de un token JWT utilizando el método de firma HMAC 25</div><div>Usando el tipo StandardClaims por sí mismo para analizar un token 26</div><div>Analizar los tipos de error usando cheques de campo de bits 26</div><div>Obteniendo el token del encabezado de autorización HTTP 27</div><div><b>Capítulo 9: Bucles 28</b></div><div>Introducción 28</div><div>Examples 28</div><div>Lazo basico 28</div><div>Romper y continuar 28</div><div>Bucle condicional 29</div><div>Diferentes formas de For Loop 29</div><div>Bucle temporizado 32</div><div><b>Capítulo 10: Buenas prácticas en la estructura del proyecto. 34</b></div><div>Examples 34</div><div>Proyectos Restfull API con Gin 34</div><div>controladores 34</div><div>núcleo 35</div><div>libs 35</div><div>middlewares 35</div><div>público 36</div><div>h21 36</div><div>enrutadores 36</div><div>servicios 38</div><div>main.go 38</div><div><b>Capítulo 11: cgo 40</b></div><div>Examples 40</div><div>Cgo: tutorial de primeros pasos. 40</div><div>Qué 40</div><div>Cómo 40</div><div>El ejemplo 40</div><div>Hola Mundo! 41</div><div>Suma de ints 42</div><div>Generando un binario 43</div><div><b>Capítulo 12: cgo 45</b></div><div>Examples 45</div><div>Llamando a la función C desde Go 45</div><div>Cable C y Go en todas las direcciones. 46</div><div><b>Capítulo 13: Cierres 49</b></div><div>Examples 49</div><div>Fundamentos de cierre 49</div><div><b>Capítulo 14: Cliente HTTP 51</b></div><div>Sintaxis 51</div><div>Parámetros 51</div><div>Observaciones 51</div><div>Examples 51</div><div>GET básico 51</div><div>GET con parámetros de URL y una respuesta JSON 52</div><div>Tiempo de espera de solicitud con un contexto 53</div><div>1.7+ 53</div><div>Antes de 1.7 53</div><div>Otras lecturas 54</div><div>PUT solicitud de objeto JSON 54</div><div><b>Capítulo 15: Codificación Base64 56</b></div><div>Sintaxis 56</div><div>Observaciones 56</div><div>Examples 56</div><div>Codificación 56</div><div>Codificación a una cadena 56</div><div>Descodificación 56</div><div>Decodificar una cadena 57</div><div><b>Capítulo 16: Comandos de ejecución 58</b></div><div>Examples 58</div><div>Tiempo de espera con interrupción y luego matar 58</div><div>Ejecución de comando simple 58</div><div>Ejecutando un Comando luego Continuar y Esperar 58</div><div>Ejecutando un comando dos veces 59</div><div><b>Capítulo 17: Comenzando con el uso de Go Atom 60</b></div><div>Introducción 60</div><div>Examples 60</div><div>Obtener, instalar y configurar Atom & Gulp 60</div><div>Crear $ GO_PATH / gulpfile.js 62</div><div>Crear $ GO_PATH / mypackage / source.go 63</div><div>Creando $ GO_PATH / main.go 63</div><div><b>Capítulo 18: Compilación cruzada 67</b></div><div>Introducción 67</div><div>Sintaxis 67</div><div>Observaciones 67</div><div>Examples 68</div><div>Compila todas las arquitecturas usando un Makefile 68</div><div>Recopilación cruzada simple con go build 69</div><div>Compilación cruzada utilizando gox 70</div><div>Instalación 70</div><div>Uso 70</div><div>Ejemplo simple: compilar helloworld.go para la arquitectura de brazo en una máquina Linux 70</div><div><b>Capítulo 19: Concurrencia 71</b></div><div>Introducción 71</div><div>Sintaxis 71</div><div>Observaciones 71</div><div>Examples 71</div><div>Creando goroutines 71</div><div>Hola mundo goroutine 72</div><div>Esperando goroutines 72</div><div>Usando cierres con goroutines en un bucle. 73</div><div>Detener goroutines 74</div><div>Ping pong con dos goroutines. 74</div><div><b>Capítulo 20: Constantes 76</b></div><div>Observaciones 76</div><div>Examples 76</div><div>Declarando una constante 76Declaración de constantes múltiples 77</div><div>Constantes mecanografiadas vs. no tipificadas 77</div><div><b>Capítulo 21: Construir restricciones 79</b></div><div>Sintaxis 79</div><div>Observaciones 79</div><div>Examples 79</div><div>Pruebas de integración separadas 79</div><div>Optimizar implementaciones basadas en arquitectura. 80</div><div><b>Capítulo 22: Contexto 81</b></div><div>Sintaxis 81</div><div>Observaciones 81</div><div>Otras lecturas 81</div><div>Examples 82</div><div>Árbol de contexto representado como un gráfico dirigido 82</div><div>Usando un contexto para cancelar el trabajo 83</div><div><b>Capítulo 23: Criptografía 84</b></div><div>Introducción 84</div><div>Examples 84</div><div>Cifrado y descifrado 84</div><div>Prefacio 84</div><div>Cifrado 84</div><div>Introducción y datos 84</div><div>Paso 1 85</div><div>Paso 2 85</div><div>Paso 3 85</div><div>Etapa 4 85</div><div>Paso 5 86</div><div>Paso 6 86</div><div>Paso 7 86</div><div>Paso 8 86</div><div>Paso 9 86Paso 10 87</div><div>Descifrado 87</div><div>Introducción y datos 87</div><div>Paso 1 87</div><div>Paso 2 87</div><div>Paso 3 87</div><div>Etapa 4 88</div><div>Paso 5 88</div><div>Paso 6 88</div><div>Paso 7 88</div><div>Paso 8 88</div><div>Paso 9 88</div><div>Paso 10 88</div><div><b>Capítulo 24: Cuerda 90</b></div><div>Introducción 90</div><div>Sintaxis 90</div><div>Examples 90</div><div>Tipo de cadena 90</div><div>Formato de texto 91</div><div>paquete de cuerdas 92</div><div><b>Capítulo 25: Derivación 94</b></div><div>Examples 94</div><div>Cambiar declaraciones 94</div><div>Si las declaraciones 95</div><div>Tipo de cambio de instrucciones 96</div><div>Goto declaraciones 97</div><div>Declaraciones de ruptura de continuar 97</div><div><b>Capítulo 26: Desarrollando para múltiples plataformas con compilación condicional 99</b></div><div>Introducción 99</div><div>Sintaxis 99</div><div>Observaciones 99</div><div>Examples 100</div><div>Crear etiquetas 100</div><div>Sufijo de archivo 100</div><div>Definiendo comportamientos separados en diferentes plataformas. 100</div><div><b>Capítulo 27: E / S de consola 102</b></div><div>Examples 102</div><div>Leer entrada desde consola 102</div><div><b>Capítulo 28: El comando go 104</b></div><div>Introducción 104</div><div>Examples 104</div><div>Corre 104</div><div>Ejecutar varios archivos en el paquete 104</div><div>Ir a construir 104</div><div>Especifique el sistema operativo o la arquitectura en la construcción: 105</div><div>Construir múltiples archivos 105</div><div>Construyendo un paquete 105</div><div>Ir limpio 105</div><div>Ir fmt 105</div><div>Ir a buscar 106</div><div>Ve env 107</div><div><b>Capítulo 29: Enchufar 109</b></div><div>Introducción 109</div><div>Examples 109</div><div>Definir y usar un plugin. 109</div><div><b>Capítulo 30: Enviar / recibir correos electrónicos 110</b></div><div>Sintaxis 110</div><div>Examples 110</div><div>Enviando correo electrónico con smtp.SendMail () 110</div><div><b>Capítulo 31: Estructuras 112</b></div><div>Introducción 112</div><div>Examples 112</div><div>Declaración Básica 112</div><div>Campos exportados frente a no exportados (privado frente a público) 112</div><div>Composición e incrustación 113</div><div>Incrustación 113</div><div>Métodos 114</div><div>Estructura anónima 115</div><div>Etiquetas 116</div><div>Haciendo copias struct. 116</div><div>Literales de Struct 118</div><div>Estructura vacía 118</div><div><b>Capítulo 32: Expansión en línea 120</b></div><div>Observaciones 120</div><div>Examples 120</div><div>Deshabilitando la expansión en línea 120</div><div><b>Capítulo 33: Explotación florestal 123</b></div><div>Examples 123</div><div>Impresión básica 123</div><div>Iniciar sesión para archivar 123</div><div>Iniciar sesión en syslog 124</div><div><b>Capítulo 34: Fmt 125</b></div><div>Examples 125</div><div>Larguero 125</div><div>Fundamento básico 125</div><div>Funciones de formato 125</div><div>Impresión 126</div><div>Sprint 126</div><div>Huella 126</div><div>Escanear 126</div><div>Interfaz de largueros 126</div><div><b>Capítulo 35: Funciones 127</b></div><div>Introducción 127</div><div>Sintaxis 127</div><div>Examples 127</div><div>Declaración Básica 127</div><div>Parámetros 127</div><div>Valores de retorno 127</div><div>Valores de retorno nombrados 128</div><div>Funciones y cierres literales 129</div><div>Funciones variables 130</div><div><b>Capítulo 36: Goroutines 131</b></div><div>Introducción 131</div><div>Examples 131</div><div>Programa Básico Goroutines 131</div><div><b>Capítulo 37: Hora 133</b></div><div>Introducción 133</div><div>Sintaxis 133</div><div>Examples 133</div><div>Tiempo de retorno. Tiempo cero valor cuando la función tiene un error 133</div><div>Análisis de tiempo 133</div><div>Comparando el tiempo 134</div><div><b>Capítulo 38: Imágenes 136</b></div><div>Introducción 136</div><div>Examples 136</div><div>Conceptos básicos 136</div><div>Imagen relacionada con el tipo 137</div><div>Accediendo a la dimensión de la imagen y píxel. 137</div><div>Cargando y guardando imagen 138</div><div>Guardar en PNG 139</div><div>Guardar en JPEG 139</div><div>Guardar en GIF 140</div><div>Recortar imagen 140</div><div>Convertir imagen en color a escala de grises 141</div><div><b>Capítulo 39: Instalación 144</b></div><div>Examples 144Instalar en Linux o Ubuntu 144</div><div><b>Capítulo 40: Instalación 145</b></div><div>Observaciones 145</div><div>Descargando go 145</div><div>Extraer los archivos descargados. 145</div><div>Mac y Windows 145</div><div>Linux 145</div><div>Configuración de variables de entorno 146</div><div>Windows 146</div><div>Mac 146</div><div>Linux 146</div><div>¡Terminado! 147</div><div>Examples 147</div><div>Ejemplo .profile o .bash_profile 147</div><div><b>Capítulo 41: Interfaces 148</b></div><div>Observaciones 148</div><div>Examples 148</div><div>Interfaz simple 148</div><div>Determinación del tipo subyacente desde la interfaz 150</div><div>Verificación en tiempo de compilación si un tipo satisface una interfaz 150</div><div>Tipo de interruptor 151</div><div>Aserción de tipo 151</div><div>Ir interfaces de un aspecto matemático 152</div><div><b>Capítulo 42: Iota 154</b></div><div>Introducción 154</div><div>Observaciones 154</div><div>Examples 154</div><div>Uso simple de iota 154</div><div>Usando iota en una expresión 154</div><div>Valores de salto 155</div><div>Uso de iota en una lista de expresiones. 155</div><div>Uso de iota en una máscara de bits. 155</div><div>Uso de iota en const. 156</div><div><b>Capítulo 43: JSON 157</b></div><div>Sintaxis 157</div><div>Observaciones 157</div><div>Examples 157</div><div>Codificación JSON básica 157</div><div>Decodificación JSON básica 158</div><div>Decodificación de datos JSON de un archivo 159</div><div>Usando estructuras anónimas para decodificar 160</div><div>Configurando campos de estructura JSON 161</div><div>Ocultar / Omitir ciertos campos 162</div><div>Ignorar los campos vacíos 162</div><div>Estructuras de cálculo con campos privados. 162</div><div>Codificación / Decodificación utilizando Go structs 163</div><div>Codificación 163</div><div>Descodificación 164</div><div><b>Capítulo 44: Lectores 165</b></div><div>Examples 165</div><div>Usando bytes.Lector para leer desde una cadena 165</div><div><b>Capítulo 45: Los canales 166</b></div><div>Introducción 166</div><div>Sintaxis 166</div><div>Observaciones 166</div><div>Examples 166</div><div>Utilizando rango 166</div><div>Tiempos de espera 167</div><div>Coordinadores goroutines 167</div><div>Buffer vs vs no buffer 168</div><div>Bloqueo y desbloqueo de canales. 169</div><div>Esperando que el trabajo termine 170</div><div><b>Capítulo 46: Manejo de errores 171</b></div><div>Introducción 171</div><div>Observaciones 171</div><div>Examples 171</div><div>Creando un valor de error 171</div><div>Creando un tipo de error personalizado 172</div><div>Devolviendo un error 173</div><div>Manejando un error 174</div><div>Recuperándose del pánico 175</div><div><b>Capítulo 47: Mapas 177</b></div><div>Introducción 177</div><div>Sintaxis 177</div><div>Observaciones 177</div><div>Examples 177</div><div>Declarar e inicializar un mapa 177</div><div>Creando un mapa 179</div><div>Valor cero de un mapa 180</div><div>Iterando los elementos de un mapa. 181</div><div>Iterando las teclas de un mapa. 181</div><div>Eliminar un elemento del mapa 181</div><div>Contando elementos del mapa 182</div><div>Acceso concurrente de mapas 182</div><div>Creación de mapas con cortes como valores. 183</div><div>Verificar elemento en un mapa 184</div><div>Iterando los valores de un mapa. 184</div><div>Copiar un mapa 184</div><div>Usando un mapa como conjunto 185</div><div><b>Capítulo 48: Métodos 186</b></div><div>Sintaxis 186</div><div>Examples 186</div><div>Metodos basicos 186</div><div>Métodos de encadenamiento 187</div><div>Operadores de incremento-decremento como argumentos en los métodos 187</div><div><b>Capítulo 49: mgo 189</b></div><div>Introducción 189</div><div>Observaciones 189</div><div>Examples 189</div><div>Ejemplo 189</div><div><b>Capítulo 50: Middleware 191</b></div><div>Introducción 191</div><div>Observaciones 191</div><div>Examples 191</div><div>Función normal del manejador 191</div><div>Middleware Calcular el tiempo requerido para que handlerFunc se ejecute 191</div><div>CORS Middleware 192</div><div>Auth Middleware 192</div><div>Controlador de recuperación para evitar que el servidor se bloquee 192</div><div><b>Capítulo 51: Mutex 193</b></div><div>Examples 193</div><div>Bloqueo mutex 193</div><div><b>Capítulo 52: Pánico y Recuperación 194</b></div><div>Observaciones 194</div><div>Examples 194</div><div>Pánico 194</div><div>Recuperar 195</div><div><b>Capítulo 53: Paquetes 196</b></div><div>Examples 196</div><div>Inicialización de paquetes 196</div><div>Gestionando dependencias de paquetes. 196</div><div>Usando diferentes paquetes y nombres de carpetas 196</div><div>¿Para qué sirve esto? 197</div><div>Importando paquetes 197</div><div><b>Capítulo 54: Perfilado usando la herramienta go pprof 200</b></div><div>Observaciones 200</div><div>Examples 200</div><div>Perfil básico de cpu y memoria. 200</div><div>Memoria básica de perfiles 200</div><div>Establecer la tasa de perfil de CPU / bloque 201</div><div>Uso de puntos de referencia para crear perfil 201</div><div>Accediendo al archivo de perfil 201</div><div><b>Capítulo 55: Piscinas de trabajadores 203</b></div><div>Examples 203</div><div>Grupo de trabajadores simple 203</div><div>Cola de trabajos con grupo de trabajadores 204</div><div><b>Capítulo 56: Plantillas 207</b></div><div>Sintaxis 207</div><div>Observaciones 207</div><div>Examples 207</div><div>Los valores de salida de la estructura de la estructura a la salida estándar utilizando un 207</div><div>Definiendo funciones para llamar desde plantilla 208</div><div><b>Capítulo 57: Programación orientada a objetos 209</b></div><div>Observaciones 209</div><div>Examples 209</div><div>Estructuras 209</div><div>Estructuras embebidas 209</div><div>Métodos 210</div><div>Puntero Vs Valor receptor 211</div><div>Interfaz y polimorfismo 212</div><div><b>Capítulo 58: Protobuf en Go 214</b></div><div>Introducción 214</div><div>Observaciones 214</div><div>Examples 214</div><div>Usando Protobuf con Go 214</div><div><b>Capítulo 59: Pruebas 216</b></div><div>Introducción 216</div><div>Examples 216</div><div>Prueba basica 216</div><div>Pruebas de referencia 217</div><div>Pruebas unitarias de mesa 218</div><div>Pruebas de ejemplo (auto documentar pruebas) 219</div><div>Pruebas de solicitudes HTTP 221</div><div>Establecer / restablecer la función simulada en las pruebas 221</div><div>Pruebas usando la función setUp y tearDown 221</div><div>Ver cobertura de código en formato HTML 223</div><div><b>Capítulo 60: Punteros 224</b></div><div>Sintaxis 224</div><div>Examples 224</div><div>Punteros básicos 224</div><div>Puntero v. Métodos de valor 225</div><div>Métodos de puntero 225</div><div>Métodos de valor 225</div><div>Desreferenciación de punteros 227</div><div>Las rebanadas son punteros a segmentos de matriz 227</div><div>Punteros simples 228</div><div><b>Capítulo 61: Rebanadas 229</b></div><div>Introducción 229</div><div>Sintaxis 229</div><div>Examples 229</div><div>Anexando a rebanar 229</div><div>Sumando dos rebanadas juntas 229</div><div>Eliminando elementos / "rebanando" rodajas 229</div><div>Longitud y capacidad 231</div><div>Copiando contenidos de una rebanada a otra rebanada 232</div><div>Creando Rebanadas 232</div><div>Filtrando una rebanada 233</div><div>Valor cero de la rebanada 234</div><div><b>Capítulo 62: Reflexión 235</b></div><div>Observaciones 235</div><div>Examples 235</div><div>Básico reflejar.Valor de uso 235</div><div>Estructuras 235</div><div>Rebanadas 236</div><div>reflect.Value.Elem () 236</div><div>Tipo de valor - paquete "reflejar" 236</div><div><b>Capítulo 63: Seleccione y Canales 238</b></div><div>Introducción 238</div><div>Sintaxis 238</div><div>Examples 238</div><div>Simple Seleccione Trabajar con Canales 238</div><div>Usando seleccionar con tiempos de espera 239</div><div><b>Capítulo 64: Señales OS 241</b></div><div>Sintaxis 241</div><div>Parámetros 241</div><div>Examples 241</div><div>Asignar señales a un canal 241</div><div><b>Capítulo 65: Servidor HTTP 243</b></div><div>Observaciones 243</div><div>Examples 243</div><div>HTTP Hello World con servidor personalizado y mux 243</div><div>Hola Mundo 243</div><div>Usando una función de manejador 244</div><div>Crear un servidor HTTPS 246</div><div>Generar un certificado 246</div><div>El código Go necesario 247</div><div>Respondiendo a una solicitud HTTP usando plantillas 247</div><div>Sirviendo contenido usando ServeMux 249</div><div>Manejo del método http, acceso a cadenas de consulta y cuerpo de solicitud 249</div><div><b>Capítulo 66: SQL 252</b></div><div>Observaciones 252</div><div>Examples 252</div><div>Preguntando 252</div><div>MySQL 252</div><div>Abriendo una base de datos 253</div><div>MongoDB: conectar y insertar y eliminar y actualizar y consultar 253</div><div><b>Capítulo 67: Texto + HTML Plantillas 256</b></div><div>Examples 256</div><div>Plantilla de elemento único 256</div><div>Plantilla de elemento múltiple 256</div><div>Plantillas con lógica personalizada. 257</div><div>Plantillas con estructuras 258</div><div>Plantillas HTML 259</div><div>Cómo las plantillas HTML evitan la inyección de código malicioso 260</div><div><b>Capítulo 68: Tipo de conversiones 263</b></div><div>Examples 263</div><div>Conversión de tipo básico 263</div><div>Implementación de la interfaz de prueba 263</div><div>Implementar un sistema de unidades con tipos 263</div><div><b>Capítulo 69: trozo 265</b></div><div>Introducción 265</div><div>Examples 265</div><div>¿Cómo codificar los datos y escribir en un archivo con gob? 265</div><div>¿Cómo leer datos de archivo y decodificar con go? 265</div><div>¿Cómo codificar una interfaz con gob? 266</div><div>¿Cómo decodificar una interfaz con gob? 267</div><div><b>Capítulo 70: Valores cero 269</b></div><div>Observaciones 269</div><div>Examples 269</div><div>Valores básicos de cero 269</div><div>Valores de cero más complejos 269</div><div>Valores cero de Struct 270</div><div>Valores Cero Arreglos 270</div><div><b>Capítulo 71: Valores cero 271</b></div><div>Examples 271</div><div>Explicación 271</div><div><b>Capítulo 72: Variables 273</b></div><div>Sintaxis 273</div><div>Examples 273</div><div>Declaración Variable Básica 273</div><div>Asignación de variables múltiples 273</div><div>Identificador en blanco 274</div><div>Comprobando el tipo de una variable 274</div><div><b>Capítulo 73: Venta 276</b></div><div>Observaciones 276</div><div>Examples 276</div><div>Use govendor para agregar paquetes externos 276</div><div>Uso de basura para gestionar ./vendor 277</div><div>Usar golang / dep 278</div><div>Uso 278</div><div>vendor.json utilizando la herramienta Govendor 278</div><div><b>Capítulo 74: XML 280</b></div><div>Observaciones 280</div><div>Examples 280</div><div>Descodificación / no básica de elementos anidados con datos. 280</div><div><b>Capítulo 75: YAML 282</b></div><div>Examples 282</div><div>Creando un archivo de configuración en formato YAML 282</div></div>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1xVqlsr47O4sHyaXv2JhasfVBSqNfBacs/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (2 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1xVqlsr47O4sHyaXv2JhasfVBSqNfBacs"><img alt="Empezando con GO - Creado por Stack OverFlow" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-91013004356745283332021-02-22T03:07:00.004-03:002021-02-22T03:08:27.102-03:00Las 23 métricas más importantes en Marketing Digital<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhGuC_9pLBRvYX8LDt4xYTklO534b8HVa7HDqvgDXd5DTVXpEqw3KGKQa7g7BHWMPrhl4LAqlNkretriSChUz1TLQBq2obg1EPSkrseKBm2YGmkfTqZDriB5yKgIpTvIZYKpSbvfEd_qk/s900/Las+23+metricas+mas+importantes+en+marketing+digital.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="470" data-original-width="900" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhGuC_9pLBRvYX8LDt4xYTklO534b8HVa7HDqvgDXd5DTVXpEqw3KGKQa7g7BHWMPrhl4LAqlNkretriSChUz1TLQBq2obg1EPSkrseKBm2YGmkfTqZDriB5yKgIpTvIZYKpSbvfEd_qk/s320/Las+23+metricas+mas+importantes+en+marketing+digital.jpg" width="320" /></a></div>¿Cuántas métricas son realmente necesarias para evaluar la salud de nuestro marketing digital y saber qué acciones están funcionando? La respuesta dependerá de los canales que vayamos a emplear y de los objetivos que nos hayamos propuesto, pero casi siempre es "menos de las que crees".<p></p><p></p><p>Y es que en el mundo de la analítica digital, cantidad no equivale a calidad. En lugar de hacer informes prolijos acumulando datos sin ton ni son, vale más tener muy claro cuáles son las cifras que realmente nos interesan y cómo se calculan. Y para echarte un cable, he recopilado las métricas más importantes para cada tipo de campaña de marketing digital. ¿Listo para empezar?</p><h2 style="text-align: left;">Métricas de Marketing Digital: indicadores generales</h2><h3 style="text-align: left;">1) Valor de tiempo de vida del cliente ("lifetime value o LTV")</h3><div><div>El valor de tiempo de vida del cliente es el total de beneficios que nos va a generar durante toda su relación con la marca. Para calcularlo, debemos multiplicar el importe medio de cada compra por el número de compras repetidas.</div><div><br /></div><div>Si detectamos que el LTV global es muy bajo, eso indica que debemos trabajar o bien en las ventas cruzadas y adicionales (para incrementar el valor medio de cada compra) o bien en la fidelización (para estimular las compras repetidas). También puede ser interesante comparar este dato entre clientes que nos hayan llegado a través de diferentes fuentes y ver si hay diferencias entre ellos.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBluoah1I-1BWS-xgxTf01MxXmoAzUWHZkM1zBKqAUGghmGfnXe3RqlLbiMpqKbR52mPzoktpkB6nJ1J7zbz6ZU341Uv5v-gm-mdSQ7C3N9NmSgtf8Q_aiOKiCAqwCSvnZpydSpcpjJcg/s595/Customerlife+time+value.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="58" data-original-width="595" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBluoah1I-1BWS-xgxTf01MxXmoAzUWHZkM1zBKqAUGghmGfnXe3RqlLbiMpqKbR52mPzoktpkB6nJ1J7zbz6ZU341Uv5v-gm-mdSQ7C3N9NmSgtf8Q_aiOKiCAqwCSvnZpydSpcpjJcg/w640-h62/Customerlife+time+value.webp" width="640" /></a></div><br /><div><h3 style="text-align: left;">2) Tasa de rebote (bounce rate)</h3><div>La tasa de rebote es el porcentaje de personas que han visitado la página web o landing page de tu marca pero la han abandonado justo después, sin completar ninguna acción. Se calcula dividiendo el número de abandonos entre el número total de visitas y multiplicando por 100.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD544aJyyDYeczf_S4qmXa-iwmxcg08-cfeIE72PGWCzNfcB7oceeb1EXyw4JGV5yWXGvrPT0IfDenLzPZzXsVKYEx_U3nGAxupbsCugL_thVluj4fUGWTGxQIG2Ip6D3l3LwD1pYcGNA/s972/tasa+de+rebote+2.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="444" data-original-width="972" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD544aJyyDYeczf_S4qmXa-iwmxcg08-cfeIE72PGWCzNfcB7oceeb1EXyw4JGV5yWXGvrPT0IfDenLzPZzXsVKYEx_U3nGAxupbsCugL_thVluj4fUGWTGxQIG2Ip6D3l3LwD1pYcGNA/w640-h292/tasa+de+rebote+2.webp" width="640" /></a></div><div><br /></div><div>Una tasa de rebote alta nos indica que tenemos algún problema serio con nuestro marketing digital, ya que nuestro contenido no responde a las expectativas de los visitantes. El problema puede estar en la propia web (p. ej., un diseño poco atractivo o un tiempo de carga demasiado largo) o bien en los mensajes que usamos para atraer a los usuarios a ella, ya que les crean expectativas que luego no se cumplen.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilv7PRXyZfx-ea7UUr81PEW-_7iWeIxx3JidVhAwUFXxvBE6pCu0S5HaiBlK31mvaMPK74gX4SqCzj5y1dNKbCrCQbqqz3hcuPAZIUkvSRGJEGM72FUqNtA8XQ3VbSYrxzbwZ1-6UZEIE/s598/Tasa+de+rebote.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="231" data-original-width="598" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilv7PRXyZfx-ea7UUr81PEW-_7iWeIxx3JidVhAwUFXxvBE6pCu0S5HaiBlK31mvaMPK74gX4SqCzj5y1dNKbCrCQbqqz3hcuPAZIUkvSRGJEGM72FUqNtA8XQ3VbSYrxzbwZ1-6UZEIE/w400-h155/Tasa+de+rebote.webp" width="400" /></a></div><span><a name='more'></a></span><h3 style="text-align: left;">3) Búsquedas de la marca (branded search)</h3><div><div>Esta métrica es sencillamente el número de búsquedas de la marca en Google y otros motores de búsqueda y nos sirve para evaluar si las campañas de reconocimiento de marca y notoriedad están teniendo efecto. Lo deseable es que esta cifra vaya en aumento a medida que la marca se da a conocer. Puedes consultarlo vinculando tu dominio con Google Console.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFTOwh-1qqvSJkSRGXHC1vO26oCz9hBbPWi-YQNTecyNbuZ3Asfu5E-JSFk4lR0DMJFusYiFbir1HZvPXVfBR_TZZ7fvPTRkwhc3R4ivhNFNe8dpPhkvJEKzWlohZJ8mVsYZwg6AtRl-M/s900/Busqueda-de-la-marca.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="675" data-original-width="900" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFTOwh-1qqvSJkSRGXHC1vO26oCz9hBbPWi-YQNTecyNbuZ3Asfu5E-JSFk4lR0DMJFusYiFbir1HZvPXVfBR_TZZ7fvPTRkwhc3R4ivhNFNe8dpPhkvJEKzWlohZJ8mVsYZwg6AtRl-M/w640-h480/Busqueda-de-la-marca.webp" width="640" /></a></div><br /><div><h2 style="text-align: left;">Métricas de marketing digital: redes sociales </h2><h3 style="text-align: left;">4) Engagement</h3><div>El engagement es la métrica de redes sociales más codiciada, pero no siempre se entiende bien lo que significa.</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRQHmB_d7pAdA_HHFSt63n00xb3khFl-NlKKMrnZdvT3ybJCqjAK66JCDhosy2si_55N4Sx-gjMQwPgYU0rMnC-qI9X8el4dEs5bOtF_hMCIvmERGCLkIcG-0YoGFck-cEQO2ql1Ys_0U/s596/Formula+engagement.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="147" data-original-width="596" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRQHmB_d7pAdA_HHFSt63n00xb3khFl-NlKKMrnZdvT3ybJCqjAK66JCDhosy2si_55N4Sx-gjMQwPgYU0rMnC-qI9X8el4dEs5bOtF_hMCIvmERGCLkIcG-0YoGFck-cEQO2ql1Ys_0U/w640-h158/Formula+engagement.webp" width="640" /></a></div><br /><div><div>El engagement se puede calcular por publicación o por periodo de tiempo. Así mismo, podemos calcular el de una publicación o periodo concretos, o bien obtener una media que nos sirva como referencia.</div><div><br /></div><div>Para calcular el engagement de una publicación, dividimos el total de interacciones con la publicación ("me gusta", comentarios, compartidos, etc.) entre el número de seguidores del canal en que se publica y multiplicamos por 100. Para calcular el engagement durante un periodo concreto, dividimos el total de interacciones durante ese periodo entre el número de seguidores y multiplicamos por 100.</div><div><br /></div><div>En cualquiera de los casos, lo que estamos obteniendo es un porcentaje que refleja cómo de activos son los seguidores de una marca en una red social. Si es muy bajo, quiere decir que las publicaciones no son atractivas o que no están llegando a los seguidores (un problema común en el caso de Facebook).</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi35NEClk9Hw11OIeV5J88KNy1gJaqSMuWOLdqG0M4GTlE-f8W0STAWau3zOHnjB0NqOfTcTQtkhe-wTwBDSxWWsufx7k_tYYTeabYgsnV05YxMQOD7gXdyFA-4yiVYE_frYy61H6al1sQ/s899/Facebook+estadi%25CC%2581sticas.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="490" data-original-width="899" height="348" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi35NEClk9Hw11OIeV5J88KNy1gJaqSMuWOLdqG0M4GTlE-f8W0STAWau3zOHnjB0NqOfTcTQtkhe-wTwBDSxWWsufx7k_tYYTeabYgsnV05YxMQOD7gXdyFA-4yiVYE_frYy61H6al1sQ/w640-h348/Facebook+estadi%25CC%2581sticas.webp" width="640" /></a></div><br /><div><h3 style="text-align: left;">5) Tráfico de referencia de redes sociales (Social media referral traffic)</h3><div>Esta métrica se refiere a la cantidad de visitas que llegan a nuestra web procedentes de las redes sociales, tanto de manera aislada como en porcentaje del total de visitas.</div><div><br /></div><div>Podemos usar el tráfico de referencia como indicador de la efectividad de nuestra presencia en las redes y también para vincularla a conversiones y otras acciones en nuestra web.</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcA2KpAxdQAVKcAhMegHgq7yo8qcU5vTIciYQPExGxVj4LpCIvL3EY1AEE3ffoQW9InzZx_dDnwOnaxtfK3sKSUL43eBax4P32s1wURwSi3kC29xXrvn8mIeXVmosQiQrMDmeRpB_PwAU/s900/Trafico+desde+las+redes+sociales.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="721" data-original-width="900" height="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcA2KpAxdQAVKcAhMegHgq7yo8qcU5vTIciYQPExGxVj4LpCIvL3EY1AEE3ffoQW9InzZx_dDnwOnaxtfK3sKSUL43eBax4P32s1wURwSi3kC29xXrvn8mIeXVmosQiQrMDmeRpB_PwAU/w640-h512/Trafico+desde+las+redes+sociales.webp" width="640" /></a></div><br /><div><h2 style="text-align: left;">Métricas de marketing digital: vídeo</h2><h3 style="text-align: left;">6) Ratio de reproducción (play rate)</h3><div>Esta métrica no es otra cosa que el porcentaje de reproducciones de un vídeo con respecto al número de visitas a la página en la que se aloja. Para calcularlo, dividimos reproducciones entre visitas y multiplicamos por 100.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj83hWQgfE6MHB8nS8as-_iCoQIcF6xuKWLbr3HIhrkgGM-yfekiTTRnWdIC8TI8n5x38wi17d9BbGJ7vD2Lvp4R3WMxdWlBfr7EZke060DKTUgqFuv-OozGo-Q8uJCBZqy4k0xZ2vJBw/s597/play+rate+calculation.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="138" data-original-width="597" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj83hWQgfE6MHB8nS8as-_iCoQIcF6xuKWLbr3HIhrkgGM-yfekiTTRnWdIC8TI8n5x38wi17d9BbGJ7vD2Lvp4R3WMxdWlBfr7EZke060DKTUgqFuv-OozGo-Q8uJCBZqy4k0xZ2vJBw/w640-h148/play+rate+calculation.webp" width="640" /></a></div><div>El ratio de reproducción depende fundamentalmente de lo atractiva que sea la presentación del vídeo (imagen en miniatura, título, descripción, etc.) y de su adecuación al contexto que hemos creado alrededor de él.</div><h3 style="text-align: left;">7) Porcentaje de vídeo visualizado (video percentage watched)</h3><div>Esto es, qué porcentaje de vídeo miran los usuarios por término medio antes de abandonar (25%, 50%...). Una métrica alternativa a considerar sería el porcentaje de permanencia, esto es, el porcentaje de usuarios que ven el vídeo completo.</div><div><br /></div><div>Si el porcentaje de vídeo visualizado o de permanencia son demasiado bajos, es probable que estemos impactando a la audiencia equivocada, tengamos problemas de calidad de vídeo o bien simplemente el vídeo sea demasiado largo.</div><div><br /></div><div>Aquí hay un ejemplo de vídeo de nuestro canal de Youtube, la última columna indica el porcentaje de vídeo visualizado.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQcaQO-t6gquaS1KfcBGcyXGENA-ORJ8J0HdLjUVIHUdC7KfULO90A0tT8IDN7Y0-bTvZ1fSgesULXw2YzXpi7cloLKGVTiXFurJerzodZ8GGL5LSQMF29lR4uf16kKdvSZnyDJX6bIlw/s899/Porcentaje+medio+de+reproduccion.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="462" data-original-width="899" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQcaQO-t6gquaS1KfcBGcyXGENA-ORJ8J0HdLjUVIHUdC7KfULO90A0tT8IDN7Y0-bTvZ1fSgesULXw2YzXpi7cloLKGVTiXFurJerzodZ8GGL5LSQMF29lR4uf16kKdvSZnyDJX6bIlw/w640-h328/Porcentaje+medio+de+reproduccion.webp" width="640" /></a></div><div><h3 style="text-align: left;"><br />8) Coste por reproducción (cost per view)</h3><div>El coste por reproducción indica cuánto cuesta que tu vídeo se visualice una única vez, por tanto, se aplica en los casos en que estamos usando publicidad de pago para conseguir que los usuarios vean un vídeo.</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibMcgXzRvDKj3f4FAOumMecJsPw00chW9TugAo_8ELT56E7UEFnInXcJmXgXZ4daMgmjLaDGvFJK64NwAtem5jZsTFAO3UZJoarsiLim6wZbkoNXPc3WQ950GbbvJTqGQCVLOVS2_fSEE/s598/Cost+per+view.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="288" data-original-width="598" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibMcgXzRvDKj3f4FAOumMecJsPw00chW9TugAo_8ELT56E7UEFnInXcJmXgXZ4daMgmjLaDGvFJK64NwAtem5jZsTFAO3UZJoarsiLim6wZbkoNXPc3WQ950GbbvJTqGQCVLOVS2_fSEE/w640-h308/Cost+per+view.webp" width="640" /></a></div><br /><div><div>Para calcularlo, simplemente tenemos que dividir el coste total de los anuncios dirigidos al vídeo entre el número de reproducciones del mismo.</div><div><br /></div><div>Para sacar todo el partido a esta métrica, necesitamos saber cuál es el valor que estamos obteniendo del vídeo y expresarlo en términos económicos. Solo así podremos ver si el coste por reproducción nos compensa o si es demasiado alto.</div><div><br /></div><h2 style="text-align: left;">Métricas de marketing digital: emailing</h2><h3 style="text-align: left;">9) Porcentaje de bajas (unsibscribed rate)</h3><div>El porcentaje de bajas es el ratio de usuarios que deciden dejar de formar parte de tu lista de correo tras un envío determinado. Se calcula dividiendo el número de usuarios que se dan de baja entre el total de personas a las que se ha enviado el email y multiplicando por 100.</div><div><br /></div><div>Como regla general, el porcentaje de bajas no debería superar el 1%. Si hay algún envío que exceda este porcentaje, tenemos que ver qué es lo que está fallando, ya sea en el contenido del email, en su adecuación a la audiencia o en la frecuencia de envíos.</div><div><br /></div><div>En este ejemplo de Hubspot de un envío nuestro se puede ver que la tasa de bajas es del 0,2%. Un buen indicador.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ93PNqz32rIQDTAss_8kCgr8jneSOlFQ0YEiitqQdDGBRfLq_KfiMqAuryqbexbmtbsBWkNyc8R1kBHcvZWceOqI6CExXUk7BUnajEkobApcDBi3glFB4wIVhekTharOxFa7HPoLLwYQ/s898/unsibcribed+rate.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="428" data-original-width="898" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ93PNqz32rIQDTAss_8kCgr8jneSOlFQ0YEiitqQdDGBRfLq_KfiMqAuryqbexbmtbsBWkNyc8R1kBHcvZWceOqI6CExXUk7BUnajEkobApcDBi3glFB4wIVhekTharOxFa7HPoLLwYQ/w640-h306/unsibcribed+rate.webp" width="640" /></a></div><br /><div><h3 style="text-align: left;">10) Índice de crecimiento de suscriptores (contact growth rate)</h3><div>Esta métrica sirve para tener controlada la evolución de nuestra base de datos de emailing. Lo ideal es que vaya aumentando de manera constante, pero sobre todo tenemos que tener presente que la calidad de los suscriptores es lo más importante: deben ser personas que encajen en nuestro perfil de cliente ideal y que realmente estén interesadas en los contenidos que vamos a ofrecerles.</div><div><br /></div><div>Ejemplo de suscriptores de Hubspot, se compara con el mes pasado y te dice si creces respecto el mismo periodo anterior. Aquí el crecimiento neto es de 1564 contactos, un 13,25% más que el mismo periodo de un mes antes.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3zlVStSIgA67SDgiIPZA-MN329_k-HmWWkJS1t6uFFp39dBLlwZzUM4xDxSCSci_9GbCM4RsUvZw1Tf2RzRk5W7GlPbgZ_QWxoYrT8UkBLckd2-wnLw7EQhrdBvmEn43flqVb7K4_qW8/s599/Crecimiento+de+suscriptores.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="133" data-original-width="599" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3zlVStSIgA67SDgiIPZA-MN329_k-HmWWkJS1t6uFFp39dBLlwZzUM4xDxSCSci_9GbCM4RsUvZw1Tf2RzRk5W7GlPbgZ_QWxoYrT8UkBLckd2-wnLw7EQhrdBvmEn43flqVb7K4_qW8/w640-h142/Crecimiento+de+suscriptores.webp" width="640" /></a></div><br /><div><h3 style="text-align: left;">11) Ingresos por email (revenue per email)</h3><div>Esto es, cuánto has ganado por cada email enviado. Se aplica a envíos orientados a la conversión y se obtiene dividiendo el total de ingresos entre el número de emails enviando (menos los rebotados).</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWPPDLxycjQkYuwYsMApGyKQaMX7i8ZTpYxiAblDhqzwU0HK7PJ43yCjI6B8sJTbjyHSN4n8l2GrZS-pZsc1QMeKTnO_8R3H5juTrfrUpnzh5rKHWHItps-Pim9CrCIwDGUvnq_Mw_5gs/s598/revenue+per+email.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="62" data-original-width="598" height="66" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWPPDLxycjQkYuwYsMApGyKQaMX7i8ZTpYxiAblDhqzwU0HK7PJ43yCjI6B8sJTbjyHSN4n8l2GrZS-pZsc1QMeKTnO_8R3H5juTrfrUpnzh5rKHWHItps-Pim9CrCIwDGUvnq_Mw_5gs/w640-h66/revenue+per+email.webp" width="640" /></a></div><div><div>Si combinamos esta métrica con el coste por email (calculado de la misma manera), podremos saber rápidamente si nuestras campañas están teniendo un ROI positivo.</div><div><br /></div><h2 style="text-align: left;">Métricas de marketing digital: mobile </h2><h3 style="text-align: left;">12) Número de descargas</h3><div>Como su nombre indica, esta métrica se refiere al número de personas que se descargan tu app desde un origen en concreto. Por tanto, puede resultar muy útil para comprar diferentes canales y ver cuáles están dando los mejores resultados.</div><div><br /></div><div>Ejemplo de número de descargas de la app de Instagram en Google Play.</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4Kslrwerl5SPtwjSnmxfZ2Kw6VYhB0UUHsO2lWQ-yIKJg1bWSQ_90UgcLm48MCHWWA61Qy8Nu6FcEqQ4wm92ryy5ZEG8ktpTJz6dp3kG3BpP-iMJjrpsdIO5S2F4wgU6FxeSVKSt1VI8/s597/numero+de+descargas+de+la+app.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="196" data-original-width="597" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4Kslrwerl5SPtwjSnmxfZ2Kw6VYhB0UUHsO2lWQ-yIKJg1bWSQ_90UgcLm48MCHWWA61Qy8Nu6FcEqQ4wm92ryy5ZEG8ktpTJz6dp3kG3BpP-iMJjrpsdIO5S2F4wgU6FxeSVKSt1VI8/w640-h210/numero+de+descargas+de+la+app.webp" width="640" /></a></div><br /><div><h3 style="text-align: left;">13) Tiempo en la aplicación (time spent)</h3><div>Descargarse una app es solo el comienzo del proceso. Para evaluar el éxito real de tu mobile marketing, tienes que medir la interacción de los usuarios con la aplicación. Una métrica muy útil para ello es el tiempo que pasan los usuarios en la app, ya sea cada mes, cada semana o a diario. Otra opción interesante es dividir el tiempo total entre el número de sesiones para saber cuál es el tiempo medio en cada sesión. Si los resultados de esta métrica no son satisfactorios, probablemente tengamos que revisar la usabilidad de la app.</div><div><br /></div><h3 style="text-align: left;">14) Coste por instalación (CPI)</h3><div>O en otras palabras, cuánto nos cuesta captar a un nuevo usuario. Esta métrica se obtiene dividiendo el coste total por el número de instalaciones. Para evaluar si el dato es satisfactorio o no, debemos considerar los beneficios que esperamos obtener por cada instalación.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5mEojTLQN4Kciam35EZew6GBLm0PpZhCC9Yz4LYpr3nka50RUejqnY334FVm7a8wfxgeDNqSp0DKfDqeE3C0KK-7uPLr_31LfDZCLYpa55QjLsNO1RTMC3GIa2JhCf9IBsKIQJAvrN9w/s600/coste+por+instalacion.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="134" data-original-width="600" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5mEojTLQN4Kciam35EZew6GBLm0PpZhCC9Yz4LYpr3nka50RUejqnY334FVm7a8wfxgeDNqSp0DKfDqeE3C0KK-7uPLr_31LfDZCLYpa55QjLsNO1RTMC3GIa2JhCf9IBsKIQJAvrN9w/w640-h142/coste+por+instalacion.webp" width="640" /></a></div><div><h2 style="text-align: left;">Métricas de marketing digital: SEM</h2><h3 style="text-align: left;">15) Nivel de calidad (Quality Score)</h3><div>Probablemente sea la métrica más importante de todas las que incluye tu cuenta de Google Ads.</div><div><br /></div><div>El nivel de calidad mide cómo de buena es la experiencia de los usuarios con tus anuncios. Cuanto mayor sea el nivel de calidad de un anuncio, más facilidades te pondrá Google y más fácil te resultará obtener un coste por clic económico.</div><div>Aquí tienes una explicación de qué es el quality score</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSc5ZE8ag45dfHjHTrYEVgr3-ajC9vWvk1wY6kgvhUqXcrVUctLFv_0XJJeraApmF1lahEBJ3n6quoMBtsdmLmnsfXQ4efuy_EeknubfIkuoMYWDm3jTOjm2xG-Vs8Q6DkkB5TvcWnctY/s899/quality+score.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="411" data-original-width="899" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSc5ZE8ag45dfHjHTrYEVgr3-ajC9vWvk1wY6kgvhUqXcrVUctLFv_0XJJeraApmF1lahEBJ3n6quoMBtsdmLmnsfXQ4efuy_EeknubfIkuoMYWDm3jTOjm2xG-Vs8Q6DkkB5TvcWnctY/w640-h292/quality+score.webp" width="640" /></a></div><br /><div><h3 style="text-align: left;">16) Cuota de impresiones (Impression share)</h3><div>Esta métrica te ayuda a saber si tus anuncios se están viendo lo suficiente. La cuota de impresiones es el porcentaje de impresiones que reciben tus anuncios en comparación con el número total que podrían conseguir y se calcula dividiendo las impresiones entre el total de impresiones aptas.</div><div><br /></div><div>En caso de que la cuota de impresiones sea baja, en la mayoría de los casos podemos remediarlo fácilmente aumentando las pujas por clic o el presupuesto de la campaña.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvpHG1i3nDg5Z5XL7NkxkOYhh9CLJtoxdm7ZU4EcoEtK_uUZkNhTZkqqb-67QJMDT4Vo-6xQJt15kK_0uZIB7BwtlyPMkzENoqFRjYGurH7J7fdzcNi6o5a_2dU67aqIUfmL7MncxpQi8/s899/impression+share.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="246" data-original-width="899" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvpHG1i3nDg5Z5XL7NkxkOYhh9CLJtoxdm7ZU4EcoEtK_uUZkNhTZkqqb-67QJMDT4Vo-6xQJt15kK_0uZIB7BwtlyPMkzENoqFRjYGurH7J7fdzcNi6o5a_2dU67aqIUfmL7MncxpQi8/w640-h176/impression+share.webp" width="640" /></a></div><div><br /></div><h3 style="text-align: left;"><b>17) Número de conversiones</b></h3><div>El número de conversiones te ayuda a medir el éxito de tus anuncios, ya que indica cuántas ventas has conseguido gracias a ellos. Por supuesto, esto es solo parte de la historia, ya que para calcular el ROI de tu campaña en Google Ads también necesitas saber cuál ha sido el valor de cada conversión.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWZcU_DqrBnzOvzAJwJc8WqWpqpcZcQla0R3dopaoq7b5JR0ZIYTiMH9CwqpTFJlHwNgDWIUiuAbOxl1bVIwZ-rJL9hQqfNJh_L00U1pJAer3cnZvgBdn3wBDPEi2o0JC9MWmaMGBKLZk/s897/Tasa+de+cnonversion.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="173" data-original-width="897" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWZcU_DqrBnzOvzAJwJc8WqWpqpcZcQla0R3dopaoq7b5JR0ZIYTiMH9CwqpTFJlHwNgDWIUiuAbOxl1bVIwZ-rJL9hQqfNJh_L00U1pJAer3cnZvgBdn3wBDPEi2o0JC9MWmaMGBKLZk/w640-h124/Tasa+de+cnonversion.webp" width="640" /></a></div><br /><div><h2 style="text-align: left;">Métricas de marketing digital: ecommerce</h2><h3 style="text-align: left;">18) Valor medio de cada pedido (average order value)</h3><div>Aquí lo que estamos midiendo es cuánto se gastan los clientes en cada compra. Si es demasiado bajo, podemos pensar en estrategias para vender productos adicionales.</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0_SHyry8G6IUAld7i8q-AdMS1qL5M64rvlY7tkY3xBeFPMnN4TMfk2jANXRKLVR5bQf6ASZljVv8RsgvhNPDnp3c_bHe2y9H6dds49DP0aCVzXvfDugNxuX3cv0BURFeD2_JrqlCWFNU/s597/Average+order+value.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="131" data-original-width="597" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0_SHyry8G6IUAld7i8q-AdMS1qL5M64rvlY7tkY3xBeFPMnN4TMfk2jANXRKLVR5bQf6ASZljVv8RsgvhNPDnp3c_bHe2y9H6dds49DP0aCVzXvfDugNxuX3cv0BURFeD2_JrqlCWFNU/w640-h140/Average+order+value.webp" width="640" /></a></div><div>Esta métrica está relacionada con el valor de tiempo de vida del cliente. Para obtenerlo, solo tenemos que multiplicar el valor medio de cada pedido por el número de pedidos realizados por el cliente a lo largo de toda su historia.</div><div><br /></div><h3 style="text-align: left;">19) Tasa de abandono de carrito</h3><div>Se refiere al porcentaje de personas que han iniciado un proceso de compra introduciendo productos en el carrito, pero después no lo han completado. Para calcularlo, dividimos el número de carritos abandonados por el total de compras iniciadas y multiplicamos por 100.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi17W59u5ejqmSBXBfZ2DPTHndC11mKL93I9lqTOXHhsh9tiCWhRBJbhngEe7DSH55zzRfNMXhGzTNh9dUb0eXlZ4Jdjcm-Wvy5yFsXiMxWi0t_gh7dwbwPYhl0UM_RzoJnruHbHmt-Tes/s898/tasa+de+abandono+del+carrito.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="361" data-original-width="898" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi17W59u5ejqmSBXBfZ2DPTHndC11mKL93I9lqTOXHhsh9tiCWhRBJbhngEe7DSH55zzRfNMXhGzTNh9dUb0eXlZ4Jdjcm-Wvy5yFsXiMxWi0t_gh7dwbwPYhl0UM_RzoJnruHbHmt-Tes/w640-h258/tasa+de+abandono+del+carrito.webp" width="640" /></a></div><br /><div><div>Si la tasa de abandono de carrito es demasiado alta, es señal de que necesitamos lanzar una campaña de remarketing para captar a los usuarios que han dejado la compra a medias. Pero para que realmente funcione, primero necesitamos identificar cuál es la razón de los abandonos.</div><div><br /></div><h3 style="text-align: left;">20) Tasa de visita de producto (to view product)</h3><div>Es decir, la cantidad de personas que acaban visitando un producto de tu web con respecto al total de visitas. Si la cifra es demasiado baja, es posible que la web tenga un problema de usabilidad.</div><div><br /></div><h2 style="text-align: left;">Métricas de marketing digital: SEO</h2><h3 style="text-align: left;">21) Palabras clave en el top 3</h3><div>Las 3 primeras posiciones de Google se llevan casi el 85% de los clics, así que situar tu web ahí es fundamental para tu estrategia SEO. Esta métrica te indica si lo estás consiguiendo y cuáles son las palabras con las que has logrado posicionar.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwYkJOwPUquRXueA1gfPA1mNYfDgEWFt6YEN5qmCCoaVxDfOgNhHm3zCWNwCRjjBPDRrp89etpzIHje3hyzRT45LUceKJP5pUwlinfctCNqYpXjoGQhq_eTaDdYqp5TBAIVf1K4N5DmAc/s800/top+3+de+google.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="666" data-original-width="800" height="532" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwYkJOwPUquRXueA1gfPA1mNYfDgEWFt6YEN5qmCCoaVxDfOgNhHm3zCWNwCRjjBPDRrp89etpzIHje3hyzRT45LUceKJP5pUwlinfctCNqYpXjoGQhq_eTaDdYqp5TBAIVf1K4N5DmAc/w640-h532/top+3+de+google.webp" width="640" /></a></div><h3 style="text-align: left;">22) Total de tráfico SEO (SEO traffic)</h3><div>El número total de visitas y de usuarios únicos que han llegado a tu sitio web de manera orgánica, es decir, a través de buscadores como Google. Podemos ver esta métrica como una cifra absoluta o bien como un porcentaje respecto del total de visitas. En el primer caso, se considera que un aumento del 10% mensual es indicador de buena salud SEO.</div><div><br /></div><div>Tráfico SEO analizado con la herramienta de Hubspot...</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjCBkx39XV9nZOW2Jl0XwwKCoxN9I1pfaHNffhoYvmfVrjSVZ-J1f9QsTlaYvYYX_hIDNKNRy91hG326GPUmW9koZCEDvBfbuG5YDszDIoFNEgD341FnLGXmBleiZfqsuL4sVOxU3EeCc/s599/tra%25CC%2581fico+seo.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="142" data-original-width="599" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjCBkx39XV9nZOW2Jl0XwwKCoxN9I1pfaHNffhoYvmfVrjSVZ-J1f9QsTlaYvYYX_hIDNKNRy91hG326GPUmW9koZCEDvBfbuG5YDszDIoFNEgD341FnLGXmBleiZfqsuL4sVOxU3EeCc/w640-h152/tra%25CC%2581fico+seo.webp" width="640" /></a></div><br /><div>También se puede analizar la misma información con Google Analitycs.</div><div><br /></div><div><h3 style="text-align: left;">23) Tiempo de carga del sitio</h3><div>Aunque a primera vista nos pueda parecer que no está directamente relacionado con los resultados de nuestro marketing digital, el tiempo de carga de la web es una métrica muy importante y debemos revisarlo regularmente.</div><div><br /></div><div>Ejemplo sobre los tiempos de carga de cada página, visto con Google Analytics.</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYx1qa_nDYCEOraU_7x37eek5syYphJV1s6guFepX9Sew7J83Tqz3ES_yKLLVZFU4uhBYB0ZGcTwHobroSfbpOIjpePDb2f6OtOz2HGEJDVpTrtPQL_hARHyR0JWBUUI76qcpjrVJpj34/s599/tiempo+de+carga+con+Google+Analytics+2.webp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="477" data-original-width="599" height="510" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYx1qa_nDYCEOraU_7x37eek5syYphJV1s6guFepX9Sew7J83Tqz3ES_yKLLVZFU4uhBYB0ZGcTwHobroSfbpOIjpePDb2f6OtOz2HGEJDVpTrtPQL_hARHyR0JWBUUI76qcpjrVJpj34/w640-h510/tiempo+de+carga+con+Google+Analytics+2.webp" width="640" /></a></div><br /><div><div>El motivo de esta importancia es que el tiempo de carga es uno de los factores más importantes a la hora de decidir si un usuario permanece en la página. Si el sitio tarda en cargar, los usuarios se frustrarán y tendremos un porcentaje de rebote demasiado alto.</div></div><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-90094492664923749662021-02-22T00:34:00.004-03:002021-02-22T00:34:37.982-03:00Métricas de Proceso y Mejoras del Proceso de Software<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgiijq7Tz82CrCJHHPD_1RRW1XitL1t_YiNlM15Tvy_Chk62QEF28YoZfmYbGirKP-rkdxqAjn9Y_jWMIR_eTxnqcV_4djZSJaMcWbS7hdt6EARZJLm2XfESeLeQh25TRDrMAd_xior4/s424/process-2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="283" data-original-width="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgiijq7Tz82CrCJHHPD_1RRW1XitL1t_YiNlM15Tvy_Chk62QEF28YoZfmYbGirKP-rkdxqAjn9Y_jWMIR_eTxnqcV_4djZSJaMcWbS7hdt6EARZJLm2XfESeLeQh25TRDrMAd_xior4/s320/process-2.jpg" width="320" /></a></div>Son medidas cuantitativas que permiten a los ingenieros de software obtener una visión de la eficacia del proceso de software y los proyectos que llevan a cabo utilizando el proceso como marco de trabajo.<p></p><p>Se comienza definiendo un conjunto limitado de medidas del proceso que puedan recopilarse con facilidad, se normaliza empleando métricas orientadas al tamaño o la función.</p><p>Para mejorar el proceso, se miden sus atributos específicos .Hay que destacar que el proceso es sólo uno de varios factores controlables en la mejora de la calidad del software y el desempeño organizacional.</p><p>La eficacia de un proceso de software se mide indirectamente. Los resultados incluyen medidas de errores descubiertos antes de liberar el software.</p><p></p><ul style="text-align: left;"><li>Los defectos que detectan y reportan los usuarios finales.</li><li>Los productos de trabajo entregados (productividad).</li><li>El esfuerzo humano gastado.</li><li>El tiempo de la planificación consumido.</li><li>Concordancia con la planificación y otras medidas.</li></ul><div>Las métricas del proceso de software ofrecen beneficios significativos conforme una organización trabaja en mejorar su grado de madurez del proceso. Sin embargo como todas las métricas éstas pueden emplearse mal y crear más problemas de los que solucionan.</div><p></p><h3 style="text-align: left;">Métricas del proceso</h3><p style="text-align: left;"></p><ul style="text-align: left;"><li>Se recopilan en el transcurso de todos los proyectos y durante largos períodos.</li><li>Su objetivo es proporcionar un conjunto de indicadores que conduzcan a la mejora del proceso.</li></ul><p></p><div><h3 style="text-align: left;">Medición del proceso de software</h3><div><ul style="text-align: left;"><li>Enfocar el proceso de generación de productos y servicios.</li><li>Asegurar que los procesos están apropiadamente apoyados.</li><li>Administrar procesos inmaduros enfocando el proceso y no culpando las personas.</li><li>Reconocer la existencia de variaciones como oportunidad de mejora.</li><li>Considerar las variaciones en la evaluación del proceso de tomada de decisión.</li></ul></div><h3 style="text-align: left;">Medir el proceso</h3><div>Objetivos Recoger datos que midan el desempeño de cada proceso</div><div><ul style="text-align: left;"><li>Analizar el desempeño</li><li>Guardar y utilizar los datos – para evaluar la estabilidad y la capacidad del proceso – para interpretar los resultados de observaciones y análisis – para estimar coste y desempeño futuros – para proveer baselines y benchmarks – para establecer tendencias – para identificar oportunidades de mejora.</li></ul></div><h3 style="text-align: left;">Proceso de mejora de Software: Constituyen una alternativa para elevar la Calidad del Software</h3><div>Un proceso implica el uso de los recursos de una organización, para obtener algo de valor. Así, ningún producto puede fabricarse y ningún servicio puede suministrarse sin un proceso, y ningún proceso puede existir sin un producto o servicio”.</div><div><br /></div><div>Se puede definir como un “conjunto coordinado de actividades que proporcionan un valor añadido al cliente (ciudadano o usuario interno), entregándole un resultado (el producto o servicio que se trate) que le satisfaga, partiendo de una serie de entradas al proceso y con la utilización de una serie de recursos.</div></div><div><br /></div><div><div>Al iniciar un proceso de Mejora del Proceso Software, es necesario tener en cuenta los siguientes objetivos principales de la mejora de procesos: Comprender el estado actual de las prácticas de gestión y de ingeniería de software en la empresa. Seleccionar las áreas de mejora donde los cambios puedan producir los máximos a medio y largo plazo. Sentarse en añadir el valor al negocio, no en alcanzar la “utopía del mejor proceso posible”. Combinar procesos eficaces con personas con habilidades, motivadas y creativas.<span><a name='more'></a></span></div><h3 style="text-align: left;">CMMI como modelo para la Mejora de Procesos</h3><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6Rjwt4DbOO-_7QF4WOpXw7F3KxzVN3a0QFYaqRvePwSp0d-ugzBh3otb0kl0YqsD75sfTy_JGUBqPZLVm3ZY37ibp7NZp1gX6xqNiG6pj90gAlmWyZApUX4Zs34h5jRmFpHgTF6ThGT4/s214/5fca12d20f5198b.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="190" data-original-width="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6Rjwt4DbOO-_7QF4WOpXw7F3KxzVN3a0QFYaqRvePwSp0d-ugzBh3otb0kl0YqsD75sfTy_JGUBqPZLVm3ZY37ibp7NZp1gX6xqNiG6pj90gAlmWyZApUX4Zs34h5jRmFpHgTF6ThGT4/s0/5fca12d20f5198b.png" /></a></div>Uno de los modelos de mejora de procesos más usados en las organizaciones es el CMMI.</div><div><br /></div><div>El CMMI, es un modelo que ayuda a: integrar las funciones de la organización, conducir la mejora de los procesos, proporciona una guía de calidad de los procesos y puntos de referencia para la evaluación de estos. El propósito del modelo es proveer una guía para mejorar los procesos de la organización y la capacidad para gestionar el desarrollo, la adquisición y el mantenimiento de productos y servicios.</div><div><br /></div><div>Este modelo consta de cinco niveles de madurez que clasifican a la organización, estos niveles sirven para conocer la madurez de los procesos que se realizan para producir software.</div><div>Los niveles de madurez de una organización en CMMI son :</div><div><ol style="text-align: left;"><li>Inicial.</li><li>Gestionado.</li><li>Definido.</li><li>Gestionado cuantitativamente.</li><li>Optimizado.</li></ol></div><div>Cada nivel comprende un conjunto de áreas de proceso estas cubren desde el desarrollo de los productos y de los servicios hasta el mantenimiento de los mismos. Independientemente de la disciplina a cual esté enfocada la organización, las áreas de proceso se subdividen en grupos distintos los cuales dependen de cada representación ya sea la continua o por etapas.</div><div>Al implantar un Proceso de Mejora usando CMMI como modelo existen riesgos que pueden afectar el desarrollo del proceso, de ahí la importancia de conocerlos y aplicar medidas para mitigarlos.</div></div><div><h3 style="text-align: left;">Riesgos en la implantación de Proceso de Mejora de Software</h3><div>Los procesos de mejora en el desarrollo de Software, trae cambios muy profundos en las organizaciones que desean implementar estos modelos, los administradores o jefes de proyectos deben asumir estas transformaciones oportunamente, para evitar catástrofes que incluso pueden llevar a la frustración en la implementación de modelos de mejora.</div><div><br /></div><div>Para que un Proceso de Mejora de desarrollo del software tenga éxito, se requiere que los encargados de llevarlo a cabo estén dispuestos y preparados para asumir los cambios que estos modelos traen para las organizaciones.</div></div><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-84481390492059011082021-02-21T21:20:00.006-03:002021-02-21T21:20:53.944-03:00Empezando con C++ - Creado por Stack OverFlow<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoJBbsXR1y0-wsNriT5w69IA0HRrfuIxwMnjuHf4mFFFUHrrIMOWBoCfUleZgufb8rG_Zh_3tunIatHJBrVhiBtJlvN3xonoFeQbhWLTjXqDDck4-SPyNeGlPMwzSDxTj74VgojXQymXg/s842/6-empezando-cpp.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="842" data-original-width="595" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoJBbsXR1y0-wsNriT5w69IA0HRrfuIxwMnjuHf4mFFFUHrrIMOWBoCfUleZgufb8rG_Zh_3tunIatHJBrVhiBtJlvN3xonoFeQbhWLTjXqDDck4-SPyNeGlPMwzSDxTj74VgojXQymXg/s320/6-empezando-cpp.jpg" /></a></div>Este tutorial ha sido preparado para que los principiantes los ayuden a comprender lenguaje C++ Programación. Después de completar este tutorial, se encontrará con un nivel moderado de experiencia en lenguaje C++ desde donde puede pasar a los siguientes niveles.<p></p><p>Es un libro electrónico de C ++ no oficial y gratuito creado con fines educativos. Se extrae todo el contenido de la documentación de Stack Overflow, que está escrita por muchas personas trabajadoras en Stack Overflow.</p><h3 style="text-align: left;">Un poco de Historia</h3><p>C++ es un lenguaje de programación diseñado en 1979 por Bjarne Stroustrup. La intención de su creación fue extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, C++ es un lenguaje híbrido.</p><p>Posteriormente se añadieron facilidades de programación genérica, que se sumaron a los paradigmas de programación estructurada y programación orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.</p><p>Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT.</p><p>El nombre "C++" fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.</p><span><a name='more'></a></span><p><b>Tabla de contenido</b></p><p>Acerca de 1</p><p><b>Capítulo 1: Empezando con C ++ 2</b></p><p>Observaciones 2</p><p>Versiones 2</p><p>Examples 2</p><p>Hola Mundo 2</p><p>Análisis 2</p><p>Comentarios 4</p><p>Comentarios de una sola línea 4</p><p>C-Style / Block Comentarios 4</p><p>Importancia de los comentarios 5</p><p>Marcadores de comentario utilizados para deshabilitar el código 6</p><p>Función 6</p><p>Declaración de funciones 6</p><p>Llamada de función 7</p><p>Definición de la función 8</p><p>Sobrecarga de funciones 8</p><p>Parámetros predeterminados 8</p><p>Llamadas de Funciones Especiales - Operadores 9</p><p>Visibilidad de prototipos y declaraciones de funciones. 10</p><p>El proceso de compilación estándar de C ++. 11</p><p>Preprocesador 12</p><p><b>Capítulo 2: Administracion de recursos 14</b></p><p>Introducción 14</p><p>Examples 14</p><p>Adquisición de recursos es la inicialización 14</p><p>Mutexes y seguridad de rosca 15</p><p><b>Capítulo 3: Alcances 17</b></p><p>Examples 17Alcance de bloque simple 17</p><p>Variables globales 17</p><p><b>Capítulo 4: Algoritmos de la biblioteca estándar 19</b></p><p>Examples 19</p><p>std :: for_each 19</p><p>std :: next_permutation 19</p><p>std :: acumular 20</p><p>std :: encontrar 22</p><p>std :: cuenta 23</p><p>std :: count_if 24</p><p>std :: find_if 26</p><p>std :: min_element 27</p><p>Usando std :: nth_element para encontrar la mediana (u otros cuantiles) 29</p><p><b>Capítulo 5: Alineación 30</b></p><p>Introducción 30</p><p>Observaciones 30</p><p>Examples 30</p><p>Consultar la alineación de un tipo. 30</p><p>Controlando la alineación 31</p><p><b>Capítulo 6: Archivo I / O 32</b></p><p>Introducción 32</p><p>Examples 32</p><p>Abriendo un archivo 32</p><p>Leyendo de un archivo 33</p><p>Escribiendo en un archivo 35</p><p>Modos de apertura 36</p><p>Cerrando un archivo 37</p><p>Flushing un arroyo 38</p><p>Leyendo un archivo ASCII en un std :: string 38</p><p>Leyendo un archivo en un contenedor 39</p><p>Leyendo un `struct` desde un archivo de texto formateado. 40</p><p>Copiando un archivo 41¿Revisar el final del archivo dentro de una condición de bucle, mala práctica? 42</p><p>Escribir archivos con configuraciones locales no estándar 42</p><p><b>Capítulo 7: Archivos de encabezado 45</b></p><p>Observaciones 45</p><p>Examples 45</p><p>Ejemplo básico 45</p><p>Archivos fuente 45</p><p>El proceso de compilación 47</p><p>Plantillas en archivos de encabezado 47</p><p><b>Capítulo 8: Aritmética de punto flotante 49</b></p><p>Examples 49</p><p>Los números de punto flotante son raros 49</p><p><b>Capítulo 9: Arrays 51</b></p><p>Introducción 51</p><p>Examples 51</p><p>Tamaño de matriz: tipo seguro en tiempo de compilación. 51</p><p>Matriz en bruto de tamaño dinámico 52</p><p>Expandiendo la matriz de tamaño dinámico usando std :: vector. 53</p><p>Una matriz de matriz sin formato de tamaño fijo (es decir, una matriz sin formato 2D). 54</p><p>Una matriz de tamaño dinámico utilizando std :: vector para almacenamiento. 55</p><p>Inicialización de matriz 57</p><p><b>Capítulo 10: Atributos 59</b></p><p>Sintaxis 59</p><p>Examples 59</p><p>[[sin retorno]] 59</p><p>[[caer a través]] 60</p><p>[[obsoleto]] y [[obsoleto ("motivo")]] 61</p><p>[[nodiscard]] 62</p><p>[[maybe_unused]] 62</p><p><b>Capítulo 11: auto 64</b></p><p>Observaciones 64</p><p>Examples 64Muestra auto básica 64</p><p>Plantillas de auto y expresión 65</p><p>auto, const, y referencias 65</p><p>Tipo de retorno final 66</p><p>Lambda genérica (C ++ 14) 66</p><p>objetos de auto y proxy 67</p><p><b>Capítulo 12: Bucles 68</b></p><p>Introducción 68</p><p>Sintaxis 68</p><p>Observaciones 68</p><p>Examples 68</p><p>Basado en rango para 68</p><p>En bucle 71</p><p>Mientras bucle 73</p><p>Declaración de variables en condiciones. 74</p><p>Bucle Do-while 75</p><p>Declaraciones de control de bucle: romper y continuar 76</p><p>Rango-para sobre un sub-rango 77</p><p><b>Capítulo 13: Búsqueda de nombre dependiente del argumento 79</b></p><p>Examples 79</p><p>Que funciones se encuentran 79</p><p><b>Capítulo 14: C ++ Streams 81</b></p><p>Observaciones 81</p><p>Examples 81</p><p>Corrientes de cuerda 81</p><p>Leyendo un archivo hasta el final. 82</p><p>Leyendo un archivo de texto línea por línea 82</p><p>Líneas sin caracteres de espacios en blanco. 82</p><p>Líneas con caracteres de espacio en blanco. 82</p><p>Leyendo un archivo en un búfer a la vez 83</p><p>Copiando arroyos 83</p><p>Arrays 84</p><p>Imprimiendo colecciones con iostream 84</p><p>Impresión básica 84</p><p>Tipo implícito de reparto 84</p><p>Generación y transformación. 85</p><p>Arrays 85</p><p>Análisis de archivos 86</p><p>Análisis de archivos en contenedores STL 86</p><p>Análisis de tablas de texto heterogéneas 86</p><p>Transformación 87</p><p><b>Capítulo 15: Campos de bits 88</b></p><p>Introducción 88</p><p>Observaciones 88</p><p>Examples 89</p><p>Declaración y uso 89</p><p><b>Capítulo 16: Categorías de valor 91</b></p><p>Examples 91</p><p>Significados de la categoría de valor 91</p><p>prvalue 91</p><p>xvalor 92</p><p>valor 92</p><p>glvalue 93</p><p>valor 93</p><p><b>Capítulo 17: Clases / Estructuras 95</b></p><p>Sintaxis 95</p><p>Observaciones 95</p><p>Examples 95</p><p>Conceptos básicos de clase 95</p><p>Especificadores de acceso 96</p><p>Herencia 97</p><p>Herencia virtual 99</p><p>Herencia múltiple 101</p><p>Acceso a los miembros de la clase 102</p><p>Fondo 103</p><p>Herencia privada: restringiendo la interfaz de clase base 103</p><p>Clases finales y estructuras. 104</p><p>Amistad 105</p><p>Clases / Estructuras Anidadas 106</p><p>Tipos de miembros y alias 111</p><p>Miembros de la clase estatica 114</p><p>Funciones miembro no estáticas 119</p><p>Estructura / clase sin nombre 121</p><p><b>Capítulo 18: Clasificación 123</b></p><p>Observaciones 123</p><p>Examples 123</p><p>Clasificación de contenedores de secuencia con orden específico 123</p><p>Clasificación de contenedores de secuencia por sobrecargado menos operador 123</p><p>Clasificación de contenedores de secuencia utilizando la función de comparación 124</p><p>Ordenando los contenedores de secuencias usando expresiones lambda (C ++ 11) 125</p><p>Clasificación y secuenciación de contenedores. 126</p><p>clasificación con std :: map (ascendente y descendente) 127</p><p>Clasificación de matrices incorporadas 129</p><p><b>Capítulo 19: Comparaciones lado a lado de ejemplos clásicos de C ++ resueltos a través de 130</b></p><p>Examples 130</p><p>Buceando a través de un contenedor 130</p><p><b>Capítulo 20: Compilando y construyendo 132</b></p><p>Introducción 132</p><p>Observaciones 132</p><p>Examples 132</p><p>Compilando con GCC 132</p><p>Vinculación con bibliotecas: 134</p><p>Compilando con Visual C ++ (Línea de Comando) 134</p><p>Compilación con Visual Studio (interfaz gráfica) - Hello World 138</p><p>Compilando con Clang 145Compiladores en linea 146</p><p>El proceso de compilación de C ++. 147</p><p>Compilando con Code :: Blocks (interfaz gráfica) 149</p><p><b>Capítulo 21: Comportamiento definido por la implementación 155</b></p><p>Examples 155</p><p>Char puede estar sin firmar o firmado 155</p><p>Tamaño de los tipos integrales. 155</p><p>Tamaño de char 155</p><p>Tamaño de los tipos enteros con signo y sin signo 155</p><p>Tamaño de char16_t y char32_t 157</p><p>Tamaño de bool 157</p><p>Tamaño de wchar_t 158</p><p>Modelos de datos 158</p><p>Número de bits en un byte 159</p><p>Valor numérico de un puntero 159</p><p>Rangos de tipos numéricos 160</p><p>Representación del valor de los tipos de punto flotante 161</p><p>Desbordamiento al convertir de entero a entero con signo 162</p><p>Tipo subyacente (y, por tanto, tamaño) de una enumeración 162</p><p><b>Capítulo 22: Comportamiento indefinido 163</b></p><p>Introducción 163</p><p>Observaciones 163</p><p>Examples 164</p><p>Leer o escribir a través de un puntero nulo. 164</p><p>No hay declaración de retorno para una función con un tipo de retorno no nulo 164</p><p>Modificar un literal de cadena 165</p><p>Accediendo a un índice fuera de límites 165</p><p>División entera por cero 166</p><p>Desbordamiento de enteros firmado 166</p><p>Usando una variable local sin inicializar 167</p><p>Múltiples definiciones no idénticas (la regla de una definición) 168Emparejamiento incorrecto de la asignación de memoria y desasignación 169</p><p>Accediendo a un objeto como el tipo equivocado 169</p><p>Desbordamiento de punto flotante 170</p><p>Llamando (Puro) a los Miembros Virtuales del Constructor o Destructor 170</p><p>Eliminar un objeto derivado a través de un puntero a una clase base que no tiene un destru 171</p><p>Accediendo a una referencia colgante 171</p><p>Extendiendo el espacio de nombres `std` o` posix` 172</p><p>Desbordamiento durante la conversión hacia o desde el tipo de punto flotante 173</p><p>Conversión estática de base a derivada no válida 173</p><p>Función de llamada a través del tipo de puntero de función no coincidente 173</p><p>Modificar un objeto const 173</p><p>Acceso a miembro inexistente a través de puntero a miembro 174</p><p>Conversión derivada a base no válida para punteros a miembros 175</p><p>Aritmética de puntero no válido 175</p><p>Desplazando por un número de posiciones no válido 176</p><p>Volviendo de una función [[noreturn]] 176</p><p>Destruyendo un objeto que ya ha sido destruido. 176</p><p>Recursión de plantilla infinita 177</p><p><b>Capítulo 23: Comportamiento no especificado 178</b></p><p>Observaciones 178</p><p>Examples 178</p><p>Orden de inicialización de globales a través de TU 178</p><p>Valor de una enumeración fuera de rango 179</p><p>Reparto estático a partir de un valor falso * 179</p><p>Resultado de algunas conversiones reinterpret_cast 180</p><p>Resultado de algunas comparaciones de punteros 180</p><p>Espacio ocupado por una referencia. 181</p><p>Orden de evaluacion de argumentos de funcion. 181</p><p>Estado movido de la mayoría de las clases de biblioteca estándar 183</p><p><b>Capítulo 24: Concurrencia con OpenMP 184</b></p><p>Introducción 184</p><p>Observaciones 184</p><p>Examples 184</p><p>OpenMP: Secciones paralelas 184</p><p>OpenMP: Secciones paralelas 185</p><p>OpenMP: Parallel For Loop 186</p><p>OpenMP: Recopilación paralela / Reducción 186</p><p><b>Capítulo 25: Const Correccion 188</b></p><p>Sintaxis 188</p><p>Observaciones 188</p><p>Examples 188</p><p>Los básicos 188</p><p>Diseño correcto de la clase de Const 189</p><p>Constar los parámetros de función correcta 191</p><p>Constancia de la corrección como documentación 193</p><p>Funciones de miembros calificados para CV const : 193</p><p>Parámetros de la función const : 195</p><p><b>Capítulo 26: constexpr 198</b></p><p>Introducción 198</p><p>Observaciones 198</p><p>Examples 198</p><p>variables constexpr 198</p><p>funciones constexpr 200</p><p>Estática si declaración 202</p><p><b>Capítulo 27: Construir sistemas 204</b></p><p>Introducción 204</p><p>Observaciones 204</p><p>Examples 204</p><p>Generando entorno de construcción con CMake 204</p><p>Compilando con GNU make 205</p><p>Introducción 205</p><p>Reglas básicas 205</p><p>Construcciones incrementales 207</p><p>Documentación 207</p><p>Construyendo con scons 208</p><p>Ninja 208</p><p>Introducción 208</p><p>NMAKE (Utilidad de mantenimiento de programas de Microsoft) 209</p><p>Introducción 209</p><p>Autotools (GNU) 209</p><p>Introducción 209</p><p><b>Capítulo 28: Contenedores C ++ 211</b></p><p>Introducción 211</p><p>Examples 211</p><p>Diagrama de flujo de contenedores C ++ 211</p><p><b>Capítulo 29: Control de flujo 214</b></p><p>Observaciones 214</p><p>Examples 214</p><p>caso 214</p><p>cambiar 214</p><p>captura 215</p><p>defecto 215</p><p>Si 216</p><p>más 216</p><p>ir 216</p><p>regreso 217</p><p>lanzar 217</p><p>tratar 218</p><p>Estructuras condicionales: if, if..else 219</p><p>Saltar declaraciones: romper, continuar, goto, salir. 220</p><p><b>Capítulo 30: Conversiones de tipo explícito 224</b></p><p>Introducción 224</p><p>Sintaxis 224</p><p>Observaciones 224</p><p>Examples 225</p><p>Base a conversión derivada 225Arrojando constness 226</p><p>Tipo de conversión de punning 226</p><p>Conversión entre puntero y entero 227</p><p>Conversión por constructor explícito o función de conversión explícita 228</p><p>Conversión implícita 228</p><p>Enum las conversiones 229</p><p>Derivado a conversión base para punteros a miembros 230</p><p>nulo * a T * 230</p><p>Casting estilo c 231</p><p><b>Capítulo 31: Copia elision 232</b></p><p>Examples 232</p><p>Propósito de la copia elision 232</p><p>Copia garantizada elision 233</p><p>Valor de retorno elision 234</p><p>Parámetro elision 235</p><p>Valor de retorno con nombre elision 235</p><p>Copia inicializacion elision 236</p><p><b>Capítulo 32: Copiando vs Asignación 237</b></p><p>Sintaxis 237</p><p>Parámetros 237</p><p>Observaciones 237</p><p>Examples 237</p><p>Operador de Asignación 238</p><p>Copia Constructor 238</p><p>Copiar constructor vs Asignación de constructor 239</p><p><b>Capítulo 33: decltype 241</b></p><p>Introducción 241</p><p>Examples 241</p><p>Ejemplo básico 241</p><p>Otro ejemplo 241</p><p><b>Capítulo 34: deducción de tipo 243</b></p><p>Observaciones 243</p><p>Examples 243</p><p>Deducción de parámetros de plantilla para constructores. 243</p><p>Tipo de plantilla Deducción 243</p><p>Deducción de tipo automático 244</p><p><b>Capítulo 35: Devolviendo varios valores de una función 247</b></p><p>Introducción 247</p><p>Examples 247</p><p>Uso de parámetros de salida 247</p><p>Usando std :: tuple 248</p><p>Usando std :: array 249</p><p>Usando std :: pair 249</p><p>Usando struct 250</p><p>Encuadernaciones Estructuradas 251</p><p>Usando un consumidor de objetos de función 252</p><p>Usando std :: vector 253</p><p>Usando el iterador de salida 254</p><p><b>Capítulo 36: Diseño de tipos de objetos 255</b></p><p>Observaciones 255</p><p>Examples 255</p><p>Tipos de clase 255</p><p>Tipos aritméticos 258</p><p>Tipos de caracteres estrechos 258</p><p>Tipos enteros 258</p><p>Tipos de punto flotante 258</p><p>Arrays 259</p><p><b>Capítulo 37: Ejemplos de servidor cliente 260</b></p><p>Examples 260</p><p>Hola servidor TCP 260</p><p>Hola cliente TCP 263</p><p><b>Capítulo 38: El estándar ISO C ++ 265</b></p><p>Introducción 265</p><p>Observaciones 265</p><p>Examples 266</p><p>Borradores de trabajo actuales 266</p><p>C ++ 11 266</p><p>Extensiones de lenguaje 266</p><p>Características generales 266</p><p>Las clases 267</p><p>Otros tipos 267</p><p>Plantillas 267</p><p>Concurrencia 267</p><p>Características de varios idiomas 267</p><p>Extensiones de biblioteca 268</p><p>General 268</p><p>Contenedores y algoritmos 268</p><p>Concurrencia 268</p><p>C ++ 14 269</p><p>Extensiones de lenguaje 269</p><p>Extensiones de biblioteca 269</p><p>En desuso / Eliminado 269</p><p>C ++ 17 269</p><p>Extensiones de lenguaje 269</p><p>Extensiones de biblioteca 270</p><p>C ++ 03 270</p><p>Extensiones de lenguaje 270</p><p>C ++ 98 270</p><p>Extensiones de lenguaje (con respecto a C89 / C90) 270</p><p>Extensiones de biblioteca 271</p><p>C ++ 20 271</p><p>Extensiones de lenguaje 271</p><p>Extensiones de biblioteca 271</p><p><b>Capítulo 39: El puntero este 272</b></p><p>Observaciones 272</p><p>Examples 272</p><p>este puntero 272</p><p>Uso de este puntero para acceder a datos de miembros 274</p><p>Uso de este puntero para diferenciar entre datos de miembros y parámetros 275</p><p>este puntero CV-calificadores 276</p><p>este puntero ref-calificadores 279</p><p><b>Capítulo 40: Enhebrado 281</b></p><p>Sintaxis 281</p><p>Parámetros 281</p><p>Observaciones 281</p><p>Examples 281</p><p>Operaciones de hilo 281</p><p>Pasando una referencia a un hilo 282</p><p>Creando un std :: thread 282</p><p>Operaciones en el hilo actual 284</p><p>Usando std :: async en lugar de std :: thread 286</p><p>Asincrónicamente llamando a una función 286</p><p>Errores comunes 286</p><p>Asegurando un hilo siempre está unido 286</p><p>Reasignando objetos de hilo 287</p><p>Sincronizacion basica 288</p><p>Uso de variables de condición 288</p><p>Crear un grupo de subprocesos simple 290</p><p>Almacenamiento de hilo local 292</p><p><b>Capítulo 41: Entrada / salida básica en c ++ 294</b></p><p>Observaciones 294</p><p>Examples 294</p><p>entrada de usuario y salida estándar 294</p><p><b>Capítulo 42: Enumeración 296</b></p><p>Examples 296</p><p>Declaración de enumeración básica 296Enumeración en declaraciones de cambio 297</p><p>Iteración sobre una enumeración 297</p><p>Enumerados con alcance 298</p><p>Enumerar la declaración hacia adelante en C ++ 11 299</p><p><b>Capítulo 43: Errores comunes de compilación / enlazador (GCC) 301</b></p><p>Examples 301</p><p>error: '***' no fue declarado en este alcance 301</p><p>Variables 301</p><p>Funciones 301</p><p>referencia indefinida a `*** ' 302</p><p>error fatal: ***: No existe tal archivo o directorio 303</p><p><b>Capítulo 44: Escriba palabras clave 304</b></p><p>Examples 304</p><p>clase 304</p><p>estructura 305</p><p>enumerar 305</p><p>Unión 307</p><p><b>Capítulo 45: Espacios de nombres 308</b></p><p>Introducción 308</p><p>Sintaxis 308</p><p>Observaciones 308</p><p>Examples 309</p><p>¿Qué son los espacios de nombres? 309</p><p>Haciendo espacios de nombres 310</p><p>Extendiendo espacios de nombres 311</p><p>Usando directiva 311</p><p>Búsqueda dependiente del argumento 312</p><p>¿Cuándo no se produce ADL? 313</p><p>Espacio de nombres en línea 313</p><p>Sin nombre / espacios de nombres anónimos 315</p><p>Espacios de nombres anidados compactos 316</p><p>Aliasing un espacio de nombres largo 316</p><p>Alcance de la Declaración de Alias 317</p><p>Alias del espacio de nombres 317</p><p><b>Capítulo 46: Especificaciones de vinculación 319</b></p><p>Introducción 319</p><p>Sintaxis 319</p><p>Observaciones 319</p><p>Examples 319</p><p>Controlador de señal para sistema operativo similar a Unix 319</p><p>Hacer un encabezado de biblioteca C compatible con C ++ 319</p><p><b>Capítulo 47: Especificadores de clase de almacenamiento 321</b></p><p>Introducción 321</p><p>Observaciones 321</p><p>Examples 321</p><p>mudable 321</p><p>registro 322</p><p>estático 322</p><p>auto 323</p><p>externo 324</p><p><b>Capítulo 48: Estructuras de datos en C ++ 326</b></p><p>Examples 326</p><p>Implementación de listas enlazadas en C ++ 326</p><p><b>Capítulo 49: Estructuras de sincronización de hilos. 329</b></p><p>Introducción 329</p><p>Examples 329</p><p>std :: shared_lock 329</p><p>std :: call_once, std :: once_flag 329</p><p>Bloqueo de objetos para un acceso eficiente. 330</p><p>std :: condition_variable_any, std :: cv_status 331</p><p><b>Capítulo 50: Excepciones 332</b></p><p>Examples 332</p><p>Atrapando excepciones 332</p><p>Excepción de recirculación (propagación) 333Función Try Blocks En constructor 334</p><p>Función Try Block para la función regular 334</p><p>Función Try Blocks En Destructor 335</p><p>Mejores prácticas: tirar por valor, atrapar por referencia constante 335</p><p>La excepción jerarquizada 336</p><p>std :: uncaught_exceptions 338</p><p>Excepción personalizada 340</p><p><b>Capítulo 51: Expresiones Fold 343</b></p><p>Observaciones 343</p><p>Examples 343</p><p>Pliegues Unarios 343</p><p>Pliegues binarios 344</p><p>Doblando sobre una coma 344</p><p><b>Capítulo 52: Expresiones regulares 346</b></p><p>Introducción 346</p><p>Sintaxis 346</p><p>Parámetros 346</p><p>Examples 347</p><p>Ejemplos básicos de regex_match y regex_search 347</p><p>Ejemplo de regex_replace 347</p><p>regex_token_iterator Ejemplo 348</p><p>Ejemplo de regex_iterator 348</p><p>Dividiendo una cuerda 349</p><p>Cuantificadores 349</p><p>Anclas 351</p><p><b>Capítulo 53: Fecha y hora usando encabezamiento 352</b></p><p>Examples 352</p><p>Tiempo de medición utilizando 352</p><p>Encuentra el número de días entre dos fechas 352</p><p><b>Capítulo 54: Función de C ++ "llamada por valor" vs. "llamada por referencia" 354</b></p><p>Introducción 354</p><p>Examples 354Llamar por valor 354</p><p><b>Capítulo 55: Función de sobrecarga de plantillas 356</b></p><p>Observaciones 356</p><p>Examples 356</p><p>¿Qué es una sobrecarga de plantilla de función válida? 356</p><p><b>Capítulo 56: Funciones de miembro de clase constante 358</b></p><p>Observaciones 358</p><p>Examples 358</p><p>función miembro constante 358</p><p><b>Capítulo 57: Funciones de miembro virtual 360</b></p><p>Sintaxis 360</p><p>Observaciones 360</p><p>Examples 360</p><p>Usando override con virtual en C ++ 11 y versiones posteriores 360</p><p>Funciones de miembro virtual vs no virtual 361</p><p>Funciones virtuales finales 362</p><p>Comportamiento de funciones virtuales en constructores y destructores. 363</p><p>Funciones virtuales puras 364</p><p><b>Capítulo 58: Funciones en linea 367</b></p><p>Introducción 367</p><p>Sintaxis 367</p><p>Observaciones 367</p><p>Inline como directiva de vinculación 367</p><p>Preguntas frecuentes 367</p><p>Ver también 368</p><p>Examples 368</p><p>Declaración de función en línea no miembro 368</p><p>Definición de función en línea no miembro 368</p><p>Funciones en línea miembro 368</p><p>¿Qué es la función en línea? 369</p><p><b>Capítulo 59: Funciones especiales para miembros 370</b></p><p>Examples 370</p><p>Destructores virtuales y protegidos. 370</p><p>Movimiento implícito y copia 371</p><p>Copiar e intercambiar 371</p><p>Constructor predeterminado 373</p><p>Incinerador de basuras 375</p><p><b>Capítulo 60: Funciones miembro no estáticas 378</b></p><p>Sintaxis 378</p><p>Observaciones 378</p><p>Examples 378</p><p>Funciones miembro no estáticas 378</p><p>Encapsulacion 379</p><p>Nombre ocultar e importar 380</p><p>Funciones de miembro virtual 382</p><p>Const Correccion 384</p><p><b>Capítulo 61: Futuros y Promesas 387</b></p><p>Introducción 387</p><p>Examples 387</p><p>std :: futuro y std :: promesa 387</p><p>Ejemplo de asíncrono diferido 387</p><p>std :: packaged_task y std :: futuro 388</p><p>std :: future_error y std :: future_errc 388</p><p>std :: futuro y std :: async 389</p><p>Clases de operaciones asincrónicas 391</p><p><b>Capítulo 62: Generación de números aleatorios 392</b></p><p>Observaciones 392</p><p>Examples 392</p><p>Generador de valor aleatorio verdadero 392</p><p>Generando un número pseudoaleatorio 393</p><p>Uso del generador para múltiples distribuciones. 393</p><p><b>Capítulo 63: Gestión de la memoria 395</b></p><p>Sintaxis 395</p><p>Observaciones 395</p><p>Examples 395</p><p>Apilar 395</p><p>Almacenamiento gratuito (Heap, asignación dinámica ...) 396</p><p>Colocación nueva 397</p><p><b>Capítulo 64: Herramientas y Técnicas de Depuración y Prevención de Depuración de C ++ 400</b></p><p>Introducción 400</p><p>Observaciones 400</p><p>Examples 400</p><p>Mi programa de C ++ termina con segfault - valgrind 400</p><p>Análisis de Segfault con GDB 402</p><p>Código limpio 403</p><p>El uso de funciones separadas para acciones separadas. 404</p><p>Usando formateo / construcciones consistentes 405</p><p>Señala la atención a las partes importantes de tu código. 405</p><p>Conclusión 405</p><p>Análisis estático 405</p><p>Advertencias del compilador 406</p><p>Herramientas externas 406</p><p>Otras herramientas 407</p><p>Conclusión 407</p><p>Apilamiento seguro (corrupciones de la pila) 407</p><p>¿Qué partes de la pila se mueven? 407</p><p>¿Para qué se usa realmente? 407</p><p>¿Cómo habilitarlo? 408</p><p>Conclusión 408</p><p><b>Capítulo 65: Idioma Pimpl 409</b></p><p>Observaciones 409</p><p>Examples 409</p><p>Lenguaje básico de Pimpl 409</p><p><b>Capítulo 66: Implementación de patrones de diseño en C ++ 411</b></p><p>Introducción 411</p><p>Observaciones 411</p><p>Examples 411</p><p>Patrón observador 411</p><p>Patrón de adaptador 414</p><p>Patrón de fábrica 416</p><p>Patrón de constructor con API fluida 417</p><p>Pasar el constructor alrededor 419</p><p>Variante de diseño: objeto mutable 420</p><p><b>Capítulo 67: Incompatibilidades C 421</b></p><p>Introducción 421</p><p>Examples 421</p><p>Palabras clave reservadas 421</p><p>Punteros débilmente escritos 421</p><p>goto o cambiar 421</p><p><b>Capítulo 68: Inferencia de tipos 422</b></p><p>Introducción 422</p><p>Observaciones 422</p><p>Examples 422</p><p>Tipo de datos: Auto 422</p><p>Lambda auto 422</p><p>Bucles y auto 423</p><p><b>Capítulo 69: Internacionalización en C ++ 424</b></p><p>Observaciones 424</p><p>Examples 424</p><p>Entendiendo las características de la cadena C ++ 424</p><p><b>Capítulo 70: Iteración 426</b></p><p>Examples 426</p><p>descanso 426</p><p>continuar 426</p><p>hacer 426</p><p>para 426</p><p>mientras 427</p><p>rango basado en bucle 427</p><p><b>Capítulo 71: Iteradores 428</b></p><p>Examples 428</p><p>Iteradores C (Punteros) 428</p><p>Rompiendolo 428</p><p>Visión general 429</p><p>Los iteradores son posiciones 429</p><p>De los iteradores a los valores 429</p><p>Iteradores inválidos 431</p><p>Navegando con iteradores 431</p><p>Conceptos de iterador 432</p><p>Rasgos del iterador 432</p><p>Iteradores inversos 433</p><p>Iterador de vectores 434</p><p>Iterador de mapas 434</p><p>Iteradores de corriente 435</p><p>Escribe tu propio iterador respaldado por generador 435</p><p><b>Capítulo 72: La Regla De Tres, Cinco Y Cero 437</b></p><p>Examples 437</p><p>Regla de cinco 437</p><p>Regla de cero 438</p><p>Regla de tres 439</p><p>Protección de autoasignación 441</p><p><b>Capítulo 73: Lambdas 443</b></p><p>Sintaxis 443</p><p>Parámetros 443</p><p>Observaciones 444</p><p>Examples 444</p><p>¿Qué es una expresión lambda? 444</p><p>Especificando el tipo de retorno 447</p><p>Captura por valor 448</p><p>Captura generalizada 449</p><p>Captura por referencia 450</p><p>Captura por defecto 451</p><p>Lambdas genericas 451</p><p>Conversión a puntero de función. 453</p><p>Clase lambdas y captura de esta. 453</p><p>Portar funciones lambda a C ++ 03 usando functores 455</p><p>Lambdas recursivas 456</p><p>Usa std::function 456</p><p>Utilizando dos punteros inteligentes: 457</p><p>Usa un combinador en Y 457</p><p>Usando lambdas para desempaquetar paquetes de parámetros en línea 458</p><p><b>Capítulo 74: Literales 461</b></p><p>Introducción 461</p><p>Examples 461</p><p>cierto 461</p><p>falso 461</p><p>nullptr 461</p><p>esta 462</p><p>Literal entero 462</p><p><b>Capítulo 75: Literales definidos por el usuario 465</b></p><p>Examples 465</p><p>Literales definidos por el usuario con valores dobles largos. 465</p><p>Literales estándar definidos por el usuario para la duración 465</p><p>Literales estándar definidos por el usuario para cuerdas. 466</p><p>Literales estándar definidos por el usuario para complejos. 466</p><p>Literales auto-hechos definidos por el usuario para binarios 467</p><p><b>Capítulo 76: Manipulación de bits 469</b></p><p>Observaciones 469</p><p>Examples 469</p><p>Poniendo un poco 469</p><p>Manipulación de bits estilo C 469</p><p>Usando std :: bitset 469</p><p>Despejando un poco 469</p><p>Manipulación de bits estilo C 469</p><p>Usando std :: bitset 470</p><p>Toggling un poco 470</p><p>Manipulación de bits estilo C 470</p><p>Usando std :: bitset 470</p><p>Revisando un poco 470</p><p>Manipulación de bits estilo C 470</p><p>Usando std :: bitset 471</p><p>Cambiando el nth bit a x 471</p><p>Manipulación de bits estilo C 471</p><p>Usando std :: bitset 471</p><p>Establecer todos los bits 471</p><p>Manipulación de bits estilo C 471</p><p>Usando std :: bitset 471</p><p>Eliminar el bit de ajuste más a la derecha 471</p><p>Manipulación de bits estilo C 471</p><p>Set de bits de conteo 472</p><p>Compruebe si un entero es una potencia de 2 473</p><p>Aplicación de manipulación de bits: letra pequeña a mayúscula 473</p><p><b>Capítulo 77: Manipuladores de corriente 475</b></p><p>Introducción 475</p><p>Observaciones 475</p><p>Examples 476</p><p>Manipuladores de corriente 477</p><p>Manipuladores de flujo de salida 483</p><p>Manipuladores de flujo de entrada 484</p><p><b>Capítulo 78: Más comportamientos indefinidos en C ++ 486</b></p><p>Introducción 486</p><p>Examples 486</p><p>Refiriéndose a los miembros no estáticos en las listas de inicializadores 486</p><p>Capítulo 79: Mejoramiento 487</p><p>Introducción 487</p><p>Examples 487</p><p>Expansión en línea / en línea 487</p><p>Optimización de la base vacía 487</p><p><b>Capítulo 80: Metaprogramación 489</b></p><p>Introducción 489</p><p>Observaciones 489</p><p>Examples 489</p><p>Cálculo de factoriales 489</p><p>Iterando sobre un paquete de parámetros 492</p><p>Iterando con std :: integer_sequence 493</p><p>Despacho de etiquetas 494</p><p>Detectar si la expresión es válida 495</p><p>Cálculo de la potencia con C ++ 11 (y superior) 496</p><p>Distinción manual de los tipos cuando se da cualquier tipo T 497</p><p>Si-entonces-de lo contrario 498</p><p>Generic Min / Max con cuenta de argumento variable 498</p><p><b>Capítulo 81: Metaprogramacion aritmica 500</b></p><p>Introducción 500</p><p>Examples 500</p><p>Cálculo de la potencia en O (log n) 500</p><p><b>Capítulo 82: Modelo de memoria C ++ 11 502</b></p><p>Observaciones 502</p><p>Operaciones atómicas 502</p><p>Consistencia secuencial 503</p><p>Pedidos relajados 503</p><p>Liberar-Adquirir pedidos 503</p><p>Orden de liberación de consumo 504Vallas 504</p><p>Examples 504</p><p>Necesidad de modelo de memoria 504</p><p>Ejemplo de valla 506</p><p><b>Capítulo 83: Mover la semantica 508</b></p><p>Examples 508</p><p>Mover la semántica 508</p><p>Mover constructor 508</p><p>Mover la tarea 510</p><p>Usando std :: move para reducir la complejidad de O (n²) a O (n) 511</p><p>Uso de semántica de movimiento en contenedores 514</p><p>Reutilizar un objeto movido 515</p><p><b>Capítulo 84: Mutex recursivo 516</b></p><p>Examples 516</p><p>std :: recursive_mutex 516</p><p><b>Capítulo 85: Mutexes 517</b></p><p>Observaciones 517</p><p>Es mejor usar std :: shared_mutex que std :: shared_timed_mutex . 517</p><p>El siguiente código es la implementación de MSVC14.1 de std :: shared_mutex. 517</p><p>El siguiente código es la implementación de MSVC14.1 de std :: shared_timed_mutex. 519</p><p>std :: shared_mutex procesó lectura / escritura más de 2 veces más que std :: shared_timed 522</p><p>Examples 525</p><p>std :: unique_lock, std :: shared_lock, std :: lock_guard 525</p><p>Estrategias para clases de bloqueo: std :: try_to_lock, std :: adopt_lock, std :: defer_lo 526</p><p>std :: mutex 527</p><p>std :: scoped_lock (C ++ 17) 528</p><p>Tipos mutex 528</p><p>std :: bloqueo 528</p><p><b>Capítulo 86: Objetos callables 529</b></p><p>Introducción 529</p><p>Observaciones 529</p><p>Examples 529</p><p>Punteros a funciones 529</p><p>Clases con operador () (Functors) 530</p><p><b>Capítulo 87: Operadores de Bits 531</b></p><p>Observaciones 531</p><p>Examples 531</p><p>& - a nivel de bit y 531</p><p>| - en modo bit o 532</p><p>^ - XOR bitwise (OR exclusivo) 532</p><p>~ - bitwise NOT (complemento único) 534</p><p><< - desplazamiento a la izquierda 535</p><p>>> - cambio a la derecha 536</p><p><b>Capítulo 88: Optimización en C ++ 537</b></p><p>Examples 537</p><p>Optimización de clase base vacía 537</p><p>Introducción al rendimiento 537</p><p>Optimizando ejecutando menos código. 538</p><p>Eliminando código inútil 538</p><p>Haciendo código solo una vez 538</p><p>Evitar la reasignación inútil y copiar / mover 539</p><p>Usando contenedores eficientes 540</p><p>Optimización de objetos pequeños 540</p><p>Ejemplo 540</p><p>¿Cuándo usar? 542</p><p><b>Capítulo 89: Palabra clave amigo 543</b></p><p>Introducción 543</p><p>Examples 543</p><p>Función de amigo 543</p><p>Método de amigo 544</p><p>Clase de amigo 544</p><p><b>Capítulo 90: palabra clave const 546</b></p><p>Sintaxis 546</p><p>Observaciones 546</p><p>Examples 546</p><p>Variables locales const 546</p><p>Punteros const 547</p><p>Funciones de miembro const 547</p><p>Evitar la duplicación de código en los métodos const y non-const getter. 547</p><p><b>Capítulo 91: palabra clave mutable 550</b></p><p>Examples 550</p><p>modificador de miembro de clase no estático 550</p><p>lambdas mutables 550</p><p><b>Capítulo 92: Palabras clave 552</b></p><p>Introducción 552</p><p>Sintaxis 552</p><p>Observaciones 552</p><p>Examples 554</p><p>asm 554</p><p>explícito 555</p><p>noexcept 555</p><p>escribe un nombre 557</p><p>tamaño de 557</p><p>Diferentes palabras clave 558</p><p><b>Capítulo 93: Palabras clave de la declaración variable 563</b></p><p>Examples 563</p><p>const 563</p><p>decltype 563</p><p>firmado 564</p><p>no firmado 564</p><p>volátil 565</p><p><b>Capítulo 94: Palabras clave de tipo básico 566</b></p><p>Examples 566</p><p>En t 566</p><p>bool 566</p><p>carbonizarse 566char16_t 566</p><p>char32_t 567</p><p>flotador 567</p><p>doble 567</p><p>largo 567</p><p>corto 568</p><p>vacío 568</p><p>wchar_t 568</p><p><b>Capítulo 95: Paquetes de parámetros 570</b></p><p>Examples 570</p><p>Una plantilla con un paquete de parámetros. 570</p><p>Expansión de un paquete de parámetros. 570</p><p><b>Capítulo 96: Patrón de diseño Singleton 571</b></p><p>Observaciones 571</p><p>Examples 571</p><p>Inicialización perezosa 571</p><p>Subclases 572</p><p>Hilo seguro Singeton 573</p><p>Desinticialización estática segura de singleton. 574</p><p><b>Capítulo 97: Patrón de Plantilla Curiosamente Recurrente (CRTP) 575</b></p><p>Introducción 575</p><p>Examples 575</p><p>El patrón de plantilla curiosamente recurrente (CRTP) 575</p><p>CRTP para evitar la duplicación de código 577</p><p><b>Capítulo 98: Perfilado 579</b></p><p>Examples 579</p><p>Perfilando con gcc y gprof 579</p><p>Generando diagramas de callgraph con gperf2dot 580</p><p>Perfilando el uso de la CPU con gcc y Google Perf Tools 581</p><p><b>Capítulo 99: Plantillas 584</b></p><p>Introducción 584</p><p>Sintaxis 584</p><p>Observaciones 584</p><p>Examples 586</p><p>Plantillas de funciones 586</p><p>Reenvío de argumentos 587</p><p>Plantilla de clase básica 588</p><p>Especialización en plantillas 589</p><p>Especialización en plantillas parciales. 589</p><p>Valor predeterminado del parámetro de la plantilla 591</p><p>Plantilla alias 592</p><p>Plantilla plantilla parámetros 592</p><p>Declaración de argumentos de plantilla no tipo con auto 593</p><p>Borrador personalizado vacío para unique_ptr 593</p><p>Parámetro de plantilla sin tipo 594</p><p>Estructuras de datos de plantillas variables 595</p><p>Instanciación explícita 598</p><p><b>Capítulo 100: Plantillas de expresiones 600</b></p><p>Examples 600</p><p>Plantillas de expresiones básicas en expresiones algebraicas de elementos 600</p><p>Archivo vec.hh: wrapper para std :: vector, utilizado para mostrar el registro cuando se l 602</p><p>Archivo expr.hh: implementación de plantillas de expresión para operaciones de elementos ( 603</p><p>Archivo main.cc: test src file 607</p><p>Un ejemplo básico que ilustra plantillas de expresiones. 609</p><p><b>Capítulo 101: Polimorfismo 614</b></p><p>Examples 614</p><p>Definir clases polimórficas. 614</p><p>Descenso seguro 615</p><p>Polimorfismo y Destructores 617</p><p><b>Capítulo 102: precedencia del operador 618</b></p><p>Observaciones 618</p><p>Examples 618</p><p>Operadores aritméticos 619</p><p>Operadores lógicos AND y OR 619</p><p>Lógica && y || operadores: cortocircuito 619</p><p>Operadores Unarios 620</p><p>Capítulo 103: Preprocesador 622</p><p>Introducción 622</p><p>Observaciones 622</p><p>Examples 622</p><p>Incluir guardias 622</p><p>Lógica condicional y manejo multiplataforma. 623</p><p>Macros 625</p><p>Mensajes de error del preprocesador 629</p><p>Macros predefinidas 629</p><p>Macros x 631</p><p>#pragma una vez 633</p><p>Operadores de preprocesador 633</p><p><b>Capítulo 104: Pruebas unitarias en C ++ 635</b></p><p>Introducción 635</p><p>Examples 635</p><p>Prueba de google 635</p><p>Ejemplo mínimo 635</p><p>Captura 635</p><p><b>Capítulo 105: Punteros 637</b></p><p>Introducción 637</p><p>Sintaxis 637</p><p>Observaciones 637</p><p>Examples 637</p><p>Fundamentos de puntero 637</p><p>Creando una variable de puntero 637</p><p>Tomando la dirección de otra variable 638</p><p>Accediendo al contenido de un puntero. 639</p><p>Desreferenciación de punteros inválidos 639</p><p>Operaciones de puntero 640</p><p>Aritmética de puntero 641</p><p>Incremento / Decremento 641</p><p>Suma resta 641</p><p>Diferencia de puntero 641</p><p><b>Capítulo 106: Punteros a los miembros 643</b></p><p>Sintaxis 643</p><p>Examples 643</p><p>Punteros a funciones miembro estáticas 643</p><p>Punteros a funciones miembro 644</p><p>Punteros a variables miembro 644</p><p>Punteros a variables miembro estáticas 645</p><p><b>Capítulo 107: Punteros inteligentes 647</b></p><p>Sintaxis 647</p><p>Observaciones 647</p><p>Examples 647</p><p>Compartir propiedad (std :: shared_ptr) 647</p><p>Compartir con propiedad temporal (std :: weak_ptr) 650</p><p>Propiedad única (std :: unique_ptr) 651</p><p>Uso de eliminaciones personalizadas para crear una envoltura para una interfaz C 654</p><p>Propiedad única sin semántica de movimiento (auto_ptr) 655</p><p>Consiguiendo un share_ptr refiriéndose a esto 657</p><p>Casting std :: shared_ptr pointers 658</p><p>Escribiendo un puntero inteligente: value_ptr 658</p><p><b>Capítulo 108: RAII: la adquisición de recursos es la inicialización 661</b></p><p>Observaciones 661</p><p>Examples 661</p><p>Cierre 661</p><p>Finalmente / ScopeExit 662</p><p>ScopeSuccess (c ++ 17) 663</p><p>ScopeFail (c ++ 17) 664</p><p><b>Capítulo 109: Recursion en C ++ 667</b></p><p>Examples 667</p><p>Uso de la recursión de la cola y la recursión del estilo de Fibonnaci para resolver la sec 667</p><p>Recursion con memoizacion. 667</p><p><b>Capítulo 110: Reenvío perfecto 669</b></p><p>Observaciones 669</p><p>Examples 669</p><p>Funciones de fábrica 669</p><p><b>Capítulo 111: Referencias 671</b></p><p>Examples 671</p><p>Definiendo una referencia 671</p><p>Las referencias de C ++ son alias de variables existentes 671</p><p><b>Capítulo 112: Regla de una definición (ODR) 673</b></p><p>Examples 673</p><p>Función multiplicada definida 673</p><p>Funciones en linea 673</p><p>Violación ODR a través de la resolución de sobrecarga 675</p><p><b>Capítulo 113: Resolución de sobrecarga 676</b></p><p>Observaciones 676</p><p>Examples 676</p><p>Coincidencia exacta 676</p><p>Categorización de argumento a costo de parámetro 677</p><p>Búsqueda de nombres y verificación de acceso 678</p><p>Sobrecarga en la referencia de reenvío 678</p><p>Pasos de resolución de sobrecarga 679</p><p>Promociones y conversiones aritméticas. 681</p><p>Sobrecarga dentro de una jerarquía de clases 682</p><p>Sobrecarga en constness y volatilidad. 683</p><p><b>Capítulo 114: RTTI: Información de tipo de tiempo de ejecución 685</b></p><p>Examples 685</p><p>Nombre de un tipo 685</p><p>dynamic_cast 685</p><p>La palabra clave typeid 685</p><p>Cuándo usar el que está en c ++ 686</p><p><b>Capítulo 115: Semáforo 687</b></p><p>Introducción 687</p><p>Examples 687</p><p>Semáforo C ++ 11 687</p><p>Clase de semáforo en acción. 687</p><p><b>Capítulo 116: Separadores de dígitos 689</b></p><p>Examples 689</p><p>Separador de dígitos 689</p><p><b>Capítulo 117: SFINAE (el fallo de sustitución no es un error) 690</b></p><p>Examples 690</p><p>enable_if 690</p><p>Cuando usarlo 690</p><p>void_t 692</p><p>arrastrando decltype en plantillas de funciones 693</p><p>Que es el SFINAE 694</p><p>enable_if_all / enable_if_any 695</p><p>is_detected 697</p><p>Resolución de sobrecarga con un gran número de opciones. 698</p><p><b>Capítulo 118: Sobrecarga de funciones 700</b></p><p>Introducción 700</p><p>Observaciones 700</p><p>Examples 700</p><p>¿Qué es la sobrecarga de funciones? 700</p><p>Tipo de retorno en la sobrecarga de funciones 702</p><p>Función de miembro cv-qualifier Sobrecarga 702</p><p><b>Capítulo 119: Sobrecarga del operador 705</b></p><p>Introducción 705</p><p>Observaciones 705</p><p>Examples 705</p><p>Operadores aritméticos 705</p><p>Operadores unarios 707</p><p>Operadores de comparación 708</p><p>Operadores de conversión 709</p><p>Operador de subíndice de matriz 710</p><p>Operador de llamada de función 711</p><p>Operador de asignación 712</p><p>Operador NO bit a bit 712</p><p>Operadores de cambio de bit para E / S 713</p><p>Números complejos revisados 714</p><p>Operadores nombrados 718</p><p><b>Capítulo 120: static_assert 721</b></p><p>Sintaxis 721</p><p>Parámetros 721</p><p>Observaciones 721</p><p>Examples 721</p><p>static_assert 721</p><p><b>Capítulo 121: std :: array 723</b></p><p>Parámetros 723</p><p>Observaciones 723</p><p>Examples 723</p><p>Inicializando un std :: array 723</p><p>Acceso a elementos 724</p><p>Comprobando el tamaño de la matriz 726</p><p>Iterando a través de la matriz 727</p><p>Cambiando todos los elementos de la matriz a la vez 727</p><p><b>Capítulo 122: std :: atómica 728</b></p><p>Examples 728</p><p>tipos atómicos 728</p><p><b>Capítulo 123: std :: cualquiera 731</b></p><p>Observaciones 731</p><p>Examples 731</p><p>Uso básico 731</p><p><b>Capítulo 124: std :: forward_list 732</b></p><p>Introducción 732</p><p>Observaciones 732</p><p>Examples 732</p><p>Ejemplo 732</p><p>Métodos 733</p><p><b>Capítulo 125: std :: function: Para envolver cualquier elemento que sea llamable 735</b></p><p>Examples 735</p><p>Uso simple 735</p><p>std :: función utilizada con std :: bind 735</p><p>std :: función con lambda y std :: bind 736</p><p>`function` sobrecarga 737</p><p>Enlace std :: función a diferentes tipos de llamada 738</p><p>Almacenando argumentos de funciones en std :: tuple 740</p><p><b>Capítulo 126: std :: integer_sequence 742</b></p><p>Introducción 742</p><p>Examples 742</p><p>Gire un std :: tuple en parámetros de función 742</p><p>Crear un paquete de parámetros que consiste en enteros. 743</p><p>Convertir una secuencia de índices en copias de un elemento. 743</p><p><b>Capítulo 127: std :: iomanip 745</b></p><p>Examples 745</p><p>std :: setw 745</p><p>std :: setprecision 745</p><p>std :: setfill 746</p><p>std :: setiosflags 746</p><p><b>Capítulo 128: std :: map 749</b></p><p>Observaciones 749</p><p>Examples 749</p><p>Elementos de acceso 749</p><p>Inicializando un std :: map o std :: multimap 750</p><p>Borrando elementos 751</p><p>Insertando elementos 752Iterando sobre std :: map o std :: multimap 754</p><p>Buscando en std :: map o en std :: multimap 754</p><p>Comprobando el número de elementos 755</p><p>Tipos de mapas 755</p><p>Mapa regular 755</p><p>Multi-Mapa 756</p><p>Hash-Map (Mapa desordenado) 756</p><p>Creando std :: map con tipos definidos por el usuario como clave 756</p><p>Ordenamiento estricto y débil 757</p><p><b>Capítulo 129: std :: opcional 758</b></p><p>Examples 758</p><p>Introducción 758</p><p>Otros enfoques opcionales 758</p><p>Opcional vs puntero 758</p><p>Opcional vs Sentinel 758</p><p>Opcional vs std::pair<bool, T> 758</p><p>Usando opcionales para representar la ausencia de un valor. 758</p><p>Usando opcionales para representar el fallo de una función. 759</p><p>opcional como valor de retorno 760</p><p>valor_o 761</p><p><b>Capítulo 130: std :: par 762</b></p><p>Examples 762</p><p>Creando un par y accediendo a los elementos. 762</p><p>Comparar operadores 762</p><p><b>Capítulo 131: std :: set y std :: multiset 764</b></p><p>Introducción 764</p><p>Observaciones 764</p><p>Examples 764</p><p>Insertando valores en un conjunto 764</p><p>Insertar valores en un multiset 765</p><p>Cambiar el tipo predeterminado de un conjunto 766</p><p>Orden predeterminado 767</p><p>Orden personalizado 767</p><p>Tipo lambda 768</p><p>Otras opciones de clasificación 768</p><p>Buscando valores en set y multiset 768</p><p>Eliminar valores de un conjunto 769</p><p><b>Capítulo 132: std :: string 771</b></p><p>Introducción 771</p><p>Sintaxis 771</p><p>Observaciones 772</p><p>Examples 772</p><p>Terrible 772</p><p>Reemplazo de cuerdas 773</p><p>Reemplazar por posición 773</p><p>Reemplazar las ocurrencias de una cadena con otra cadena 773</p><p>Concatenación 774</p><p>Accediendo a un personaje 775</p><p>operador [] (n) 775</p><p>en (n) 775</p><p>frente() 775</p><p>atrás() 776</p><p>Tokenizar 776</p><p>Conversión a (const) char * 777</p><p>Encontrar caracteres en una cadena 778</p><p>Recorte de caracteres al inicio / final 778</p><p>Comparacion lexicografica 780</p><p>Conversión a std :: wstring 781</p><p>Usando la clase std :: string_view 782</p><p>Recorriendo cada personaje 783</p><p>Conversión a enteros / tipos de punto flotante 783</p><p>Convertir entre codificaciones de caracteres. 784</p><p>Comprobando si una cadena es un prefijo de otra 785Convertir a std :: string 786</p><p><b>Capítulo 133: std :: variante 788</b></p><p>Observaciones 788</p><p>Examples 788</p><p>Basic std :: uso variante 788</p><p>Crear punteros pseudo-método 789</p><p>Construyendo un `std :: variant` 790</p><p><b>Capítulo 134: std :: vector 791</b></p><p>Introducción 791</p><p>Observaciones 791</p><p>Examples 791</p><p>Inicializando un std :: vector 791</p><p>Insertando Elementos 792</p><p>Iterando Sobre std :: vector 794</p><p>Iterando en la dirección hacia adelante 794</p><p>Iterando en la dirección inversa 794</p><p>Hacer cumplir elementos const 795</p><p>Una nota sobre la eficiencia 796</p><p>Elementos de acceso 796</p><p>Acceso basado en índices: 796</p><p>Iteradores 799</p><p>Usando std :: vector como una matriz C 800</p><p>Iterador / Invalidación de puntero 800</p><p>Borrando elementos 801</p><p>Eliminando el último elemento: 801</p><p>Eliminando todos los elementos: 801</p><p>Eliminando elemento por índice: 802</p><p>Borrar todos los elementos en un rango: 802</p><p>Eliminando elementos por valor: 802</p><p>Eliminando elementos por condición: 802</p><p>Eliminar elementos por lambda, sin crear una función de predicado adicional 802</p><p>Borrar elementos por condición de un bucle: 803</p><p>Eliminar elementos por condición de un bucle inverso: 803</p><p>Encontrando un Elemento en std :: vector 804</p><p>Convertir una matriz a std :: vector 805</p><p>vector : La excepción a tantas, tantas reglas 806</p><p>Tamaño y capacidad del vector 807</p><p>Vectores de concatenacion 809</p><p>Reduciendo la capacidad de un vector 810</p><p>Uso de un vector ordenado para la búsqueda rápida de elementos 810</p><p>Funciones que devuelven grandes vectores 812</p><p>Encuentre el elemento máximo y mínimo y el índice respectivo en un vector 813</p><p>Matrices usando vectores 814</p><p><b>Capítulo 135: Técnicas de refactorización 816</b></p><p>Introducción 816</p><p>Examples 816</p><p>Recorrer la refactorización 816</p><p>Ir a la limpieza 818</p><p><b>Capítulo 136: Tipo de borrado 820</b></p><p>Introducción 820</p><p>Examples 820</p><p>Mecanismo basico 820</p><p>Borrado a un tipo regular con vtable manual 821</p><p>Una función `std :: function` solo para movimiento 824</p><p>Borrado hasta un búfer contiguo de T 826</p><p>Borrado de tipos Borrado de tipos con std :: any 828</p><p><b>Capítulo 137: Tipo de Devolución Covarianza 834</b></p><p>Observaciones 834</p><p>Examples 834</p><p>1. Ejemplo de base sin devoluciones covariantes, muestra por qué son deseables 834</p><p>2. Versión de resultado covariante del ejemplo base, comprobación de tipos estática. 8353. Resultado del puntero inteligente covariante (limpieza automatizada). 836</p><p><b>Capítulo 138: Tipo de rasgos 838</b></p><p>Observaciones 838</p><p>Examples 838</p><p>Rasgos de tipo estándar 838</p><p>Constantes 838</p><p>Funciones 838</p><p>Los tipos 839</p><p>Escribe relaciones con std :: is_same 839</p><p>Rasgos fundamentales de tipo 840</p><p>Tipo de propiedades 841</p><p><b>Capítulo 139: Tipo de retorno final 843</b></p><p>Sintaxis 843</p><p>Observaciones 843</p><p>Examples 843</p><p>Evite calificar un nombre de tipo anidado 843</p><p>Expresiones lambda 843</p><p><b>Capítulo 140: Tipos atómicos 845</b></p><p>Sintaxis 845</p><p>Observaciones 845</p><p>Examples 845</p><p>Acceso multihilo 845</p><p><b>Capítulo 141: Tipos sin nombre 847</b></p><p>Examples 847</p><p>Clases sin nombre 847</p><p>Miembros anónimos 847</p><p>Como un alias de tipo 848</p><p>Anonima union 848</p><p><b>Capítulo 142: Typedef y alias de tipo 849</b></p><p>Introducción 849</p><p>Sintaxis 849</p><p>Examples 849</p><p>Sintaxis básica de typedef 849</p><p>Usos más complejos de typedef. 849</p><p>Declarando múltiples tipos con typedef 850</p><p>Declaración de alias con "utilizando" 850</p><p><b>Capítulo 143: Uniones 852</b></p><p>Observaciones 852</p><p>Examples 852</p><p>Características básicas de la unión 852</p><p>Uso típico 852</p><p>Comportamiento indefinido 853</p><p><b>Capítulo 144: Usando std :: unordered_map 854</b></p><p>Introducción 854</p><p>Observaciones 854</p><p>Examples 854</p><p>Declaración y uso 854</p><p>Algunas funciones básicas 854</p><p><b>Capítulo 145: Utilizando declaración 856</b></p><p>Introducción 856</p><p>Sintaxis 856</p><p>Observaciones 856</p><p>Examples 856</p><p>Importando nombres individualmente desde un espacio de nombres 856</p><p>Volver a declarar miembros de una clase base para evitar ocultar el nombre 856</p><p>Heredando constructores 857</p><p><b>Capítulo 146: Valor y semántica de referencia 858</b></p><p>Examples 858</p><p>Copia profunda y soporte de movimiento. 858</p><p>Definiciones 860</p><p><b>Capítulo 147: Variables en linea 862</b></p><p>Introducción 862</p><p>Examples 862</p><p>Definición de un miembro de datos estáticos en la definición de clase 862</p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1gVkt2QRsyqlE3pau6nFdvF_2_CjPYw1Q/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (5 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1gVkt2QRsyqlE3pau6nFdvF_2_CjPYw1Q"><img alt="Empezando con C++ - Creado por Stack OverFlow" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-34441384725286283582021-02-19T01:45:00.004-03:002021-02-19T01:45:21.754-03:00Empezando con .NET Framework - Creado por Stack OverFlow<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE2pqkKtKfRdIcVhCmByWv8DElPhc7B3AUNdWDymvisYdHMCpXJshTnjnkOWvsLYGVVfmug9n0DNUbgZxsSioaYaJWcBPXNTQt5WxVOgKl01mmKnsiWiB7pRwhPDhLmkSV2LZN2scSVSA/s842/4-empezando-net-framework.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="842" data-original-width="595" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE2pqkKtKfRdIcVhCmByWv8DElPhc7B3AUNdWDymvisYdHMCpXJshTnjnkOWvsLYGVVfmug9n0DNUbgZxsSioaYaJWcBPXNTQt5WxVOgKl01mmKnsiWiB7pRwhPDhLmkSV2LZN2scSVSA/s320/4-empezando-net-framework.jpg" /></a></div>Este tutorial ha sido preparado para que los principiantes los ayuden a comprender .NET Framework Programación. Después de completar este tutorial, se encontrará con un nivel moderado de experiencia en .NET Framework desde donde puede pasar a los siguientes niveles.<p></p><p>.NET Framework es un conjunto de bibliotecas y un tiempo de ejecución, diseñado originalmente por Microsoft. Todos los programas .NET se compilan en un código de bytes llamado Microsoft Intermediate Language (MSIL). MSIL se ejecuta mediante Common Language Runtime (CLR). A continuación puede encontrar varios ejemplos de "Hello World" en varios idiomas que son compatibles con .NET Framework. "Hello World" es un programa que muestra "Hello World" en el dispositivo de pantalla. Se utiliza para ilustrar la sintaxis básica para construir un programa de trabajo. También se puede usar como prueba de cordura para asegurarse de que el compilador de un idioma, el entorno de desarrollo y el entorno de ejecución estén funcionando correctamente.</p><span><a name='more'></a></span><h3 style="text-align: left;"><b>Tabla de contenido</b></h3><p>Acerca de 1</p><p><b>Capítulo 1: Empezando con .NET Framework</b> 2</p><p>Observaciones 2</p><p>Versiones 2</p><p>.RED 2</p><p>Marco Compacto 3</p><p>Micro marco 3</p><p>Examples 3</p><p>Hola mundo en c # 3</p><p>Hola mundo en Visual Basic .NET 4</p><p>Hola mundo en F # 4</p><p>Hola Mundo en C ++ / CLI 4</p><p>Hola mundo en PowerShell 4</p><p>Hola Mundo en Nemerle 4</p><p>Hola Mundo en Oxygene 5</p><p>Hola mundo en boo 5</p><p>Hola Mundo en Python (IronPython) 5</p><p>Hola Mundo en IL 5</p><p><b>Capítulo 2: .NET Core</b> 7</p><p>Introducción 7</p><p>Observaciones 7</p><p>Examples 7</p><p>Aplicación de consola básica 7</p><p><b>Capítulo 3: Acrónimo de glosario</b> 9</p><p>Examples 9</p><p>.Net acrónimos relacionados 9</p><p><b>Capítulo 4: ADO.NET</b> 10</p><p>Introducción 10</p><p>Observaciones 10</p><p>Examples 10Ejecutando sentencias SQL como un comando 10</p><p>Buenas prácticas - Ejecución de sentencias SQL 11</p><p>Mejores prácticas para trabajar con ADO.NET 12</p><p>Usando interfaces comunes para abstraer clases específicas 13</p><p><b>Capítulo 5: Ajustes </b>14</p><p>Examples 14</p><p>AppSettings de ConfigurationSettings en .NET 1.x 14</p><p>Uso en desuso 14</p><p>Leyendo AppSettings desde ConfigurationManager en .NET 2.0 y versiones posteriores 14</p><p>Introducción al soporte de configuración de usuario y aplicación fuertemente tipado de Vis 15</p><p>Lectura de configuraciones fuertemente tipadas de la sección personalizada del archivo de 16</p><p>Debajo de las sábanas 18</p><p><b>Capítulo 6: Análisis DateTime</b> 19</p><p>Examples 19</p><p>ParseExact 19</p><p>TryParse 20</p><p>TryParseExact 22</p><p><b>Capítulo 7: Apilar y Montar</b> 23</p><p>Observaciones 23</p><p>Examples 23</p><p>Tipos de valor en uso 23</p><p>Tipos de referencia en uso 24</p><p><b>Capítulo 8: Arboles de expresion</b> 26</p><p>Observaciones 26</p><p>Examples 26</p><p>Árbol de expresión simple generado por el compilador de C # 26</p><p>construyendo un predicado de campo de formulario == valor 27</p><p>Expresión para recuperar un campo estático 27</p><p>Clase de expresión de invocación 28</p><p><b>Capítulo 9: Archivo de entrada / salida</b> 31</p><p>Parámetros 31</p><p>Observaciones 31</p><p>Examples 31</p><p>VB WriteAllText 31</p><p>VB StreamWriter 31</p><p>C # StreamWriter 31</p><p>C # WriteAllText () 31</p><p>C # File.Exists () 32</p><p><b>Capítulo 10: Biblioteca paralela de tareas (TPL)</b> 33</p><p>Observaciones 33</p><p>Propósito y casos de uso 33</p><p>Examples 33</p><p>Bucle básico productor-consumidor (BlockingCollection) 33</p><p>Tarea: instanciación básica y espera. 34</p><p>Tarea: WaitAll y captura de variables. 35</p><p>Tarea: WaitAny 35</p><p>Tarea: manejo de excepciones (usando espera) 35</p><p>Tarea: manejo de excepciones (sin usar Espera) 36</p><p>Tarea: cancelar usando CancelToken 36</p><p>Tarea.cuando 37</p><p>Tarea.Cuando 37</p><p>Paralelo.Invocar 38</p><p>Paralelo.para cada 38</p><p>Paralelo.para 38</p><p>Contexto de ejecución fluida con AsyncLocal 39</p><p>Parallel.ForEach en VB.NET 39</p><p>Tarea: Devolver un valor 40</p><p><b>Capítulo 11: Cargar archivo y datos POST al servidor web</b> 41</p><p>Examples 41</p><p>Subir archivo con WebRequest 41</p><p><b>Capítulo 12: Clase System.IO.File </b>43</p><p>Sintaxis 43</p><p>Parámetros 43</p><p>Examples 43</p><p>Borrar un archivo 43</p><p>Eliminar líneas no deseadas de un archivo de texto 45</p><p>Convertir codificación de archivos de texto 45</p><p>"Toque" una gran cantidad de archivos (para actualizar el último tiempo de escritura) 45</p><p>Enumerar archivos anteriores a una cantidad especificada 46</p><p>Mueve un archivo de una ubicación a otra 46</p><p>Archivo.Mover 46</p><p><b>Capítulo 13: Clientes HTTP</b> 48</p><p>Observaciones 48</p><p>Examples 48</p><p>Leyendo la respuesta GET como una cadena usando System.Net.HttpWebRequest 48</p><p>Leyendo la respuesta GET como una cadena usando System.Net.WebClient 49</p><p>Leyendo la respuesta GET como una cadena usando System.Net.HttpClient 49</p><p>Enviar una solicitud POST con una carga útil de cadena utilizando System.Net.HttpWebReques 49</p><p>Enviar una solicitud POST con una carga útil de cadena utilizando System.Net.WebClient 49</p><p>Enviar una solicitud POST con una carga útil de cadena utilizando System.Net.HttpClient 50</p><p>Descargador HTTP básico utilizando System.Net.Http.HttpClient 50</p><p><b>Capítulo 14: CLR</b> 52</p><p>Examples 52</p><p>Una introducción a Common Language Runtime 52</p><p><b>Capítulo 15: Colecciones</b> 53</p><p>Observaciones 53</p><p>Examples 53</p><p>Creando una lista inicializada con tipos personalizados 53</p><p>Cola 54</p><p>Apilar 56</p><p>Usando inicializadores de colección 57</p><p><b>Capítulo 16: Compilador JIT</b> 59</p><p>Introducción 59</p><p>Observaciones 59</p><p>Examples 59</p><p>Muestra de compilación de IL 59</p><p><b>Capítulo 17: Contextos de sincronización</b> 62</p><p>Observaciones 62</p><p>Examples 62</p><p>Ejecutar código en el hilo de la interfaz de usuario después de realizar un trabajo en seg 62</p><p><b>Capítulo 18: Contratos de código</b> 64</p><p>Observaciones 64</p><p>Examples 64</p><p>Precondiciones 64</p><p>Postcondiciones 64</p><p>Contratos para interfaces 65</p><p>Instalación y habilitación de contratos de código 65</p><p><b>Capítulo 19: Descripción general de la API de la biblioteca paralela de tareas (TPL)</b> 68</p><p>Observaciones 68</p><p>Examples 68</p><p>Realice el trabajo en respuesta a un clic del botón y actualice la interfaz de usuario 68</p><p><b>Capítulo 20: Diagnostico del sistema</b> 69</p><p>Examples 69</p><p>Cronógrafo 69</p><p>Ejecutar comandos de shell 69</p><p>Enviar comando a CMD y recibir salida 70</p><p><b>Capítulo 21: Encriptación / Criptografía</b> 72</p><p>Observaciones 72</p><p>Examples 72</p><p>RijndaelManaged 72</p><p>Cifrar y descifrar datos usando AES (en C #) 73</p><p>Crear una clave a partir de una contraseña / SALT aleatoria (en C #) 76</p><p>Cifrado y descifrado mediante criptografía (AES) 78</p><p><b>Capítulo 22: Enhebrado</b> 81</p><p>Examples 81</p><p>Accediendo a los controles de formulario desde otros hilos. 81</p><p><b>Capítulo 23: Escribir y leer desde StdErr stream</b> 83</p><p>Examples 83</p><p>Escribir en la salida de error estándar utilizando la consola 83</p><p>Leer de error estándar de proceso hijo 83</p><p><b>Capítulo 24: Examen de la unidad</b> 84</p><p>Examples 84</p><p>Agregar el proyecto de prueba de unidad MSTest a una solución existente 84</p><p>Creación de un método de prueba de muestra 84</p><p><b>Capítulo 25: Excepciones</b> 85</p><p>Observaciones 85</p><p>Examples 85</p><p>Atrapando una excepción 85</p><p>Usando un bloque Finalmente 86</p><p>Atrapar y volver a captar excepciones. 86</p><p>Filtros de excepción 87</p><p>Recorriendo una excepción dentro de un bloque catch 88</p><p>Lanzar una excepción a partir de un método diferente y preservar su información. 88</p><p><b>Capítulo 26: Expresiones regulares (System.Text.RegularExpressions)</b> 90</p><p>Examples 90</p><p>Compruebe si el patrón coincide con la entrada 90</p><p>Opciones de paso 90</p><p>Sencilla combinación y reemplazo 90</p><p>Partido en grupos 90</p><p>Eliminar caracteres no alfanuméricos de la cadena 91</p><p>Encontrar todos los partidos 91</p><p>Utilizando 91</p><p>Código 91</p><p>Salida 91</p><p><b>Capítulo 27: Flujo de datos TPL</b> 92</p><p>Observaciones 92</p><p>Bibliotecas utilizadas en ejemplos 92</p><p>Diferencia entre Post y SendAsync 92Examples 92</p><p>Publicar en un ActionBlock y esperar a que se complete 92</p><p>Enlace de bloques para crear una tubería. 92</p><p>Productor / Consumidor Sincrónico con BufferBlock 93</p><p>Productor asíncrono consumidor con un bloqueo de búfer acotado 94</p><p><b>Capítulo 28: Formas VB</b> 95</p><p>Examples 95</p><p>Hola Mundo en Formas VB.NET 95</p><p>Para principiantes 95</p><p>Temporizador de formularios 96</p><p><b>Capítulo 29: Gestión de la memoria</b> 99</p><p>Observaciones 99</p><p>Examples 99</p><p>Recursos no gestionados 99</p><p>Utilice SafeHandle cuando ajuste recursos no administrados 100</p><p><b>Capítulo 30: Globalización en ASP.NET MVC utilizando la internacionalización inteligente p</b> 101</p><p>Observaciones 101</p><p>Examples 101</p><p>Configuración básica y configuración 101</p><p><b>Capítulo 31: Instrumentos de cuerda</b> 103</p><p>Observaciones 103</p><p>Examples 104</p><p>Contar personajes distintos 104</p><p>Contar personajes 104</p><p>Contar las ocurrencias de un personaje. 105</p><p>Dividir la cadena en bloques de longitud fija 105</p><p>Convertir cadena a / desde otra codificación 106</p><p>Ejemplos: 106</p><p>Convertir una cadena a UTF-8 106</p><p>Convertir datos UTF-8 a una cadena 106</p><p>Cambiar la codificación de un archivo de texto existente 106</p><p>Object.ToString () método virtual 106Inmutabilidad de las cuerdas. 107</p><p>Cuerdas 107</p><p><b>Capítulo 32: Invocación de plataforma </b>109</p><p>Sintaxis 109</p><p>Examples 109</p><p>Llamando a una función dll Win32 109</p><p>Usando la API de Windows 109</p><p>Arreglando matrices 109</p><p>Estructuras de cálculo 110</p><p>Uniendo las uniones 112</p><p><b>Capítulo 33: Inyección de dependencia</b> 114</p><p>Observaciones 114</p><p>Examples 115</p><p>Inyección de dependencia - Ejemplo simple 115</p><p>Cómo la inyección de dependencia hace que las pruebas unitarias sean más fáciles 116</p><p>Por qué usamos contenedores de inyección de dependencia (contenedores IoC) 117</p><p><b>Capítulo 34: JSON en .NET con Newtonsoft.Json</b> 120</p><p>Introducción 120</p><p>Examples 120</p><p>Serializar objeto en JSON 120</p><p>Deserializar un objeto desde texto JSON 120</p><p><b>Capítulo 35: Leer y escribir archivos zip</b> 121</p><p>Introducción 121</p><p>Observaciones 121</p><p>Examples 121</p><p>Listado de contenidos ZIP 121</p><p>Extraer archivos de archivos ZIP 122</p><p>Actualizando un archivo ZIP 122</p><p><b>Capítulo 36: LINQ</b> 124</p><p>Introducción 124</p><p>Sintaxis 124</p><p>Observaciones 131Evaluación perezosa 132</p><p>ToArray() o ToList() ? 132</p><p>Examples 132</p><p>Seleccione (mapa) 132</p><p>Donde (filtro) 133</p><p>Orden por 133</p><p>OrderByDescending 133</p><p>Contiene 134</p><p>Excepto 134</p><p>Intersecarse 134</p><p>Concat 134</p><p>Primero (encontrar) 134</p><p>Soltero 135</p><p>Último 135</p><p>LastOrDefault 135</p><p>SingleOrDefault 136</p><p>FirstOrDefault 136</p><p>Alguna 137</p><p>Todos 137</p><p>SelectMany (mapa plano) 137</p><p>Suma 138</p><p>Omitir 139</p><p>Tomar 139</p><p>SecuenciaEqual 139</p><p>Marcha atrás 139</p><p>De tipo 140</p><p>Max 140</p><p>Min 140</p><p>Promedio 140</p><p>Cremallera 141</p><p>Distinto 141</p><p>Agrupar por 141</p><p>Al diccionario 142Unión 143</p><p>ToArray 143</p><p>Listar 143</p><p>Contar 144</p><p>Elemento 144</p><p>ElementAtOrDefault 144</p><p>SkipWhile 144</p><p>TakeWhile 145</p><p>DefaultIfEmpty 145</p><p>Agregado (pliegue) 145</p><p>Para buscar 146</p><p>Unirse 146</p><p>Grupo unirse a 147</p><p>Emitir 148</p><p>Vacío 149</p><p>Entonces por 149</p><p>Distancia 149</p><p>Izquierda combinación externa 150</p><p>Repetir 150</p><p><b>Capítulo 37: Los diccionarios</b> 152</p><p>Examples 152</p><p>Enumerar un diccionario 152</p><p>Inicializando un diccionario con un inicializador de colección 152</p><p>Agregando a un diccionario 153</p><p>Obtener un valor de un diccionario 153</p><p>Hacer un diccionario Con llaves Case-Insensivitve. 154</p><p>Diccionario concurrente (desde .NET 4.0) 154</p><p>Creando una instancia 154</p><p>Agregando o Actualizando 154</p><p>Obteniendo valor 155</p><p>Obtener o agregar un valor 155</p><p>IEnumerable al diccionario ( .NET 3.5) 155</p><p>Eliminar de un diccionario 156ContainsKey (TKey) 156</p><p>Diccionario a la lista 157</p><p>El diccionario simultáneo aumentado con Lazy'1 reduce el cómputo duplicado 157</p><p>Problema 157</p><p>Solución 157</p><p><b>Capítulo 38: Marco de Extensibilidad Gestionado</b> 159</p><p>Observaciones 159</p><p>Examples 159</p><p>Exportando un Tipo (Básico) 159</p><p>Importando (Básico) 160</p><p>Conectando (Básico) 160</p><p><b>Capítulo 39: Para cada</b> 162</p><p>Observaciones 162</p><p>Examples 162</p><p>Llamar a un método en un objeto en una lista 162</p><p>Método de extensión para IEnumerable 162</p><p><b>Capítulo 40: Procesamiento paralelo utilizando .Net framework</b> 164</p><p>Introducción 164</p><p>Examples 164</p><p>Extensiones paralelas 164</p><p><b>Capítulo 41: Proceso y ajuste de afinidad del hilo</b> 165</p><p>Parámetros 165</p><p>Observaciones 165</p><p>Examples 165</p><p>Obtener máscara de afinidad de proceso 165</p><p>Establecer máscara de afinidad de proceso 166</p><p><b>Capítulo 42: Puertos seriales</b> 167</p><p>Examples 167</p><p>Operación básica 167</p><p>Lista de nombres de puertos disponibles 167</p><p>Lectura asíncrona 167</p><p>Servicio de eco de texto síncrono. 167Receptor asíncrono de mensajes. 168</p><p><b>Capítulo 43: ReadOnlyCollections</b> 171</p><p>Observaciones 171</p><p>ReadOnlyCollections vs ImmutableCollection 171</p><p>Examples 171</p><p>Creando una colección ReadOnly 171</p><p>Usando el constructor 171</p><p>Usando LINQ 171</p><p>Nota 172</p><p>Actualizando una ReadOnlyCollection 172</p><p>Advertencia: los elementos de ReadOnlyCollection no son inherentemente de solo lectura 172</p><p><b>Capítulo 44: Recolección de basura</b> 174</p><p>Introducción 174</p><p>Observaciones 174</p><p>Examples 174</p><p>Un ejemplo básico de recolección (basura) 174</p><p>Objetos vivos y objetos muertos - lo básico 175</p><p>Múltiples objetos muertos 176</p><p>Referencias débiles 176</p><p>Eliminar () vs. finalizadores 177</p><p>La correcta disposición y finalización de los objetos. 178</p><p><b>Capítulo 45: Redes</b> 180</p><p>Observaciones 180</p><p>Examples 180</p><p>Chat TCP básico (TcpListener, TcpClient, NetworkStream) 180</p><p>Cliente SNTP básico (UdpClient) 181</p><p><b>Capítulo 46: Reflexión</b> 183</p><p>Examples 183</p><p>¿Qué es una asamblea? 183</p><p>Cómo crear un objeto de T utilizando la reflexión. 183</p><p>Creación de objetos y configuración de propiedades utilizando la reflexión. 184</p><p>Obtención de un atributo de una enumeración con reflexión (y almacenamiento en caché) 184</p><p>Compara dos objetos con la reflexión. 185</p><p><b>Capítulo 47: Serialización JSON</b> 186</p><p>Observaciones 186</p><p>Examples 186</p><p>Deserialización utilizando System.Web.Script.Serialization.JavaScriptSerializer 186</p><p>Deserialización utilizando Json.NET 186</p><p>Serialización utilizando Json.NET 187</p><p>Serialización-Deserialización utilizando Newtonsoft.Json 188</p><p>Vinculación dinámica 188</p><p>Serialización utilizando Json.NET con JsonSerializerSettings 188</p><p><b>Capítulo 48: Servidores HTTP</b> 190</p><p>Examples 190</p><p>Servidor de archivos HTTP básico de solo lectura (HttpListener) 190</p><p>Servidor de archivos HTTP básico de solo lectura (ASP.NET Core) 192</p><p><b>Capítulo 49: Sistema de envasado NuGet</b> 194</p><p>Observaciones 194</p><p>Examples 194</p><p>Instalación del Gestor de paquetes NuGet 194</p><p>Gestión de paquetes a través de la interfaz de usuario 195</p><p>Gestionando paquetes a través de la consola. 196</p><p>Actualizando un paquete 196</p><p>Desinstalar un paquete 197</p><p>Desinstalar un paquete de un proyecto en una solución 197</p><p>Instalando una versión específica de un paquete 197</p><p>Agregando un feed fuente de paquete (MyGet, Klondike, ect) 197</p><p>Usando diferentes fuentes de paquetes Nuget (locales) usando la interfaz de usuario 197</p><p>desinstalar una versión específica del paquete 199</p><p><b>Capítulo 50: SpeechRecognitionEngine clase para reconocer el habla</b> 200</p><p>Sintaxis 200</p><p>Parámetros 200</p><p>Observaciones 201</p><p>Examples 201</p><p>Reconocimiento asíncrono de voz para dictado de texto libre. 201</p><p>Reconocimiento asíncrono del habla basado en un conjunto restringido de frases 201</p><p><b>Capítulo 51: System.IO</b> 202</p><p>Examples 202</p><p>Leyendo un archivo de texto usando StreamReader 202</p><p>Lectura / escritura de datos usando System.IO.File 202</p><p>Puertos serie utilizando System.IO.SerialPorts 203</p><p>Iterando sobre puertos seriales conectados 203</p><p>Creación de una instancia de un objeto System.IO.SerialPort 203</p><p>Lectura / escritura de datos sobre el SerialPort 203</p><p><b>Capítulo 52: System.Net.Mail </b>205</p><p>Observaciones 205</p><p>Examples 205</p><p>MailMessage 205</p><p>Correo con archivo adjunto 206</p><p><b>Capítulo 53: System.Reflection.Emit namespace</b> 207</p><p>Examples 207</p><p>Creando un ensamblaje dinámicamente. 207</p><p><b>Capítulo 54: System.Runtime.Caching.MemoryCache (ObjectCache)</b> 210</p><p>Examples 210</p><p>Agregar elemento a caché (conjunto) 210</p><p>System.Runtime.Caching.MemoryCache (ObjectCache) 210</p><p><b>Capítulo 55: Tipos personalizados</b> 212</p><p>Observaciones 212</p><p>Examples 212</p><p>Definición de Struct 212</p><p>Las estructuras heredan de System.ValueType, son tipos de valor y viven en la pila. Cuando 212</p><p>Definición de clase 213</p><p>Las clases heredadas de System.Object, son tipos de referencia y viven en el montón. Cuand 213</p><p>Definición de enumeración 213</p><p>Un enum es un tipo especial de clase. La palabra clave enum le dice al compilador que esta 213</p><p><b>Capítulo 56: Trabajar con SHA1 en C #</b> 216</p><p>Introducción 216</p><p>Examples 216</p><p>#Generar suma de comprobación SHA1 de una función de archivo 216</p><p><b>Capítulo 57: Trabajar con SHA1 en C #</b> 217</p><p>Introducción 217</p><p>Examples 217</p><p>#Generar la suma de comprobación SHA1 de un archivo 217</p><p>#Generar hash de un texto 217</p><p><b>Capítulo 58: Usando el progreso e IProgress</b> 218</p><p>Examples 218</p><p>Informe de progreso simple 218</p><p>Utilizando IProgress 218</p><p><b>Capítulo 59: XmlSerializer</b> 220</p><p>Observaciones 220</p><p>Examples 220</p><p>Serializar objeto 220</p><p>Deserializar objeto 220</p><p>Comportamiento: Asignar nombre de elemento a propiedad 220</p><p>Comportamiento: asignar el nombre de la matriz a la propiedad (XmlArray) 220</p><p>Formato: Formato de fecha y hora personalizado 221</p><p>Creación eficiente de varios serializadores con tipos derivados especificados dinámicament 221</p><p>De donde venimos 221</p><p>Qué podemos hacer 221</p><p>Haciéndolo eficientemente 222</p><p>¿Qué hay en la salida? 224</p><p>Creditos 225</p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1rmtrTW-V_fSUw1K0qVgXVMkDVCkJDP4n/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (1.97 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1rmtrTW-V_fSUw1K0qVgXVMkDVCkJDP4n"><img alt="Empezando con .NET Framework - Creado por Stack OverFlow" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-34380020454485315482021-02-18T00:43:00.002-03:002021-02-19T01:31:57.983-03:00Empezando con Algoritmo - Creado por Stack OverFlow<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBpp0gKc29jhylbiY0lbmjf_MpSyf7M4XmRt0TcKKE3gquUvE2RVz2jQTXgwydUknFOTImswlZNOGlZpoc4dpofGX8cpqh2XOL-1boT1Gf2Hv6UtPpv9oYQS43Z8EgIzY4ngAEGqa2-2g/s842/25-empezando-el-algoritmo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="842" data-original-width="595" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBpp0gKc29jhylbiY0lbmjf_MpSyf7M4XmRt0TcKKE3gquUvE2RVz2jQTXgwydUknFOTImswlZNOGlZpoc4dpofGX8cpqh2XOL-1boT1Gf2Hv6UtPpv9oYQS43Z8EgIzY4ngAEGqa2-2g/s320/25-empezando-el-algoritmo.jpg" /></a></div>Este tutorial ha sido preparado para que los principiantes los ayuden a comprender algoritmo Programación. Después de completar este tutorial, se encontrará con un nivel moderado de experiencia en algoritmo desde donde puede pasar a los siguientes niveles.<p></p><p>Es un ebook algoritmo gratuito creado para principiantes. El contenido se extrae de la plataforma Stack Overflow, escrita por muchos desarrolladores y colaboradores de algoritmo.</p><h2 style="text-align: left;">¿Que es exactamente un algoritmo?</h2><p>Algoritmo es la palabra tecnológica de moda: los algoritmos hacen esto y aquello, conocen nuestras pasiones más íntimas, van a copar nuestros trabajos, se disponen a destruir la sociedad y el mundo... En el lenguaje cotidiano se hace referencia a ellos como si fueran genios malvados, demiurgos traviesos o el espinazo de megacorporaciones sin escrúpulos. En realidad, un algoritmo es algo más sencillo, un mecanismo ciego y sin voluntad, pero que, como veremos, sí está cambiando el mundo de forma definitiva y merece la máxima atención, no se nos vaya a ir el asunto de las manos.</p><p>¿Qué es un algoritmo? Simplemente una serie de instrucciones sencillas que se llevan a cabo para solventar un problema. La regla de multiplicar que aprendimos en el colegio y que permite sacar el producto de dos números de varias cifras, con papel y lápiz, es un sencillo algoritmo. Pero podemos dar una definición algo más rigurosa:</p><p>“Conjunto de reglas que, aplicada sistemáticamente a unos datos de entrada apropiados, resuelven un problema en un numero finito de pasos elementales”, según enuncia el profesor de la Facultad de Informática de la Universidad Complutense Ricardo Peña Marí, autor a la sazón del libro De Euclides a Java, la historia de los algoritmos y de los lenguajes de programación (Nívola). “Es importante notar que el algoritmo tiene que ser finito y que ejecuta las instrucciones de manera sistemática, es decir, que es ciego ante lo que está haciendo, y que los pasos con los que opera son elementales”, comenta el profesor.</p><p>Así, un algoritmo podría ser una receta de cocina o las instrucciones para fabricar un avión de papel a partir de un folio. Los algoritmos tienen una entrada (input) y una salida (output), entre ambas están las instrucciones: la entrada podría ser la carne picada, el tomate, las láminas de pasta y la salida la lasaña perfectamente gratinada. “Aunque en estas tareas muchas veces influye la habilidad de las personas que las realizan: no es lo mismo una receta de cocina preparada por un gran chef, que incluso puede mejorarla, que por un principiante”, matiza Miguel Toro, catedrático del Departamento de Lenguajes y Sistemas Informáticos de la Universidad de Sevilla. En realidad, los algoritmos recogen operaciones tan sencillas que pueden ser realizadas con éxito por cualquiera. Incluso por las máquinas. He aquí el quid de la cuestión.</p><span><a name='more'></a></span><p><br /></p><p style="background-color: white; border: 0px none; color: #333333; font-family: Tahoma, Arial, Verdana, sans-serif; font-size: 16px; list-style: none; margin: 0px; outline: none; padding: 0px 0px 1em;"><span style="border: 0px none; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration-line: underline;"><b>Tabla de contenido</b></span></p><ul style="background-color: white; border: 0px none; color: #333333; font-family: Tahoma, Arial, Verdana, sans-serif; font-size: 16px; list-style: none; margin: 0px; outline: none; padding: 0px;"><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Acerca de</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Capítulo 1: Empezando con el algoritmo</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Observaciones</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Introducción a los algoritmos</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Examples</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Un problema algorítmico de muestra.</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Comenzando con el algoritmo de zumbido simple de Fizz en Swift</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Capítulo 2: A * Algoritmo de búsqueda de rutas</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Introducción</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Examples</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Ejemplo simple de A * Pathfinding: un laberinto sin obstáculos</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Capítulo 3: A * Pathfinding</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Examples</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Introducción a A *</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Resolviendo un problema de 8 rompecabezas usando el algoritmo A *</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">A * Recorrer un laberinto sin obstáculos.</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Capítulo 4: Algo: - Imprimir matriz am * n en forma de cuadrado</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Introducción</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Examples</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Ejemplo de muestra</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Escribe el código genérico</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Capítulo 5: Algoritmo de Bellman-Ford</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Observaciones</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Examples</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmo de ruta más corta de una sola fuente (dado que hay un ciclo negativo en una gráf</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">¿Por qué necesitamos relajar todos los bordes como máximo (V-1) veces?</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Detectando ciclo negativo en una gráfica</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Capítulo 6: Algoritmo de Floyd-Warshall</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Examples</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmo de ruta más corta de todos los pares</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">A * Algoritmo de búsqueda de rutas</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algo: - Imprimir matriz am * n en forma de cuadrado</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmo de Floyd-Warshall</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmo de linea</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmo de Prim</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmo de suma de ruta máxima</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmo delimitado por tiempo polinómico para la cobertura mínima de vértices</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmos codiciosos</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Algoritmos multihilo</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Aplicaciones de Programación Dinámica.</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Árboles binarios de búsqueda</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Búsqueda de amplitud</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Clasificación</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Complejidad de algoritmos</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Compruebe si un árbol es BST o no</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">El algoritmo de Dijkstra</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">El algoritmo de Kruskal</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">El ancestro común más bajo de un árbol binario</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">El problema más corto de la supersecuencia</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Exposición de matrices</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Funciones hash</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Grafico</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Gráficos de travesías</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Heap Sort</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">La subsecuencia cada vez mayor</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">La subsecuencia común más larga</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Notación Big-O</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Orden de conteo</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Ordenación rápida</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Ordenamiento de burbuja</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Primera búsqueda de profundidad</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Problema de mochila</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Programación dinámica</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Pseudocódigo</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Radix Sort</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Resolución de ecuaciones</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Selección de selección</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Shell Sort</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Time Warping dinámico</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Tipo de casillero</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Tipo de ciclo</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Tipo de cubo</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Tipo de inserción</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Tipo de panqueque</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Tipo impar-par</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Transformada rápida de Fourier</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Travesías de árboles binarios</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Triángulo de Pascal</li><li style="border: 0px none; list-style: outside none disc; margin: 0px 0px 5px 30px; outline: none; padding: 0px;">Vendedor ambulante</li></ul>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1wW5Ix1r-j05oMoSl_KHsnFq1xHL1wQFg/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (3.65 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1wW5Ix1r-j05oMoSl_KHsnFq1xHL1wQFg"><img alt="Empezando con el algoritmo - Creado por Stack OverFlow" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-58667736779401190112021-02-16T01:29:00.001-03:002021-02-16T01:29:14.349-03:00Debian Hackers - Elementals<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY9vGoYKAmmhCUQNJOaOWGx-UKAns9R1swLwugEnABnz_PqHBt0ffL2RCtJ5trrjnSuOlnUxly7tH2RedB5Dyw78IP09Q8PpV5uEcb2tmsrQ2tVxsrr23pHJJ91o6OggwAwZ7i3Pn_WH8/s500/Debian+Hackers.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="500" data-original-width="354" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY9vGoYKAmmhCUQNJOaOWGx-UKAns9R1swLwugEnABnz_PqHBt0ffL2RCtJ5trrjnSuOlnUxly7tH2RedB5Dyw78IP09Q8PpV5uEcb2tmsrQ2tVxsrr23pHJJ91o6OggwAwZ7i3Pn_WH8/s320/Debian+Hackers.png" /></a></div>En Debian Hackers estamos de celebración.Ya son cuatro años desde que a Dabo y Diego les dió por abrir una web en la que contar sus fechorías a mandos de la espiral rosada; más de dos desde que nos unimos Euge y un servidor. Y esto sigue con la misma fuerza de siempre.<p></p><p>Supongo que el secreto está en esa especie de ciberanarquía reinante que hace que publiquemos nuestra particular celebración una semana y pico después del aniversario. Cuando y como surja, sin presiones, sin obligaciones. Cualquier otra cosa sería contraria a la naturaleza del sitio, al espíritu con el que nació Debian Hackers. Pero mentiría si dijera que ese es el único secreto. Porque la verdad es que el motor de todo esto son ustedes. Sí, ustedes, que nos leen, que nos escriben, que nos ayudan a dar forma a esta pequeña comunidad debianita. Es por ustedes que nos metimos en este tema y hemos cargado cincuenta y tantas páginas de ilusión, ganas y conocimiento libre. Hablo en nombre de los cuatro cuando digo que es un verdadero orgullo publicar el Elementals y que confiamos en que lo disfruten al menos tanto como hemos disfrutado nosotros preparándolo.</p><span><a name='more'></a></span><p><br /></p><p><b>Índice de contenidos</b></p><p>De puertos y firewalls ..........................................................................................................................................4</p><p>Nmap: escáner de puertos ...................................................................................................................................8</p><p>Entendiendo la multiarquitectura en Debian GNU/Linux con Citrix ......................................................12</p><p>Instalar Skype en debian multiarquitectura ..................................................................................................15</p><p>S.M.A.R.T monitoring o como evitar lágrimas y sudores con tus discos duros .......................................18</p><p>Para programar, primero entiende a tu ordenador ......................................................................................22</p><p>Entendiendo los lenguajes de programación .................................................................................................28</p><p>Cómo crear backups cifrados e incrementales en Debian y derivados con Déjà Dup ...........................34</p><p>Seguridad y optimización de servidores GLAMP ........................................................................................40</p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1JBce7ZmlEgIrFkpChkKsBiKym5qNI9A6/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (2 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1JBce7ZmlEgIrFkpChkKsBiKym5qNI9A6"><img alt="Debian Hackers - Elementals" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-46609934278699109622021-02-13T19:19:00.004-03:002021-02-13T19:25:57.396-03:00Seguridad en IP con el Protocolo IPSEC para IPV6<h1 style="text-align: left;">Conexiones de red seguras con IPsec</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6mVEiG1R8wWtzdyVzrVK6DZrdxyZefnTZuPdb6ZRRAE_UvQ3i6zXy94Ypjpj2RfycjHDGJ04PzhcgpeQ41l_aP5v4o24tLDRKFOYPWoU7HG04BiXHS8MQHnGVkarSvNWnTEQUETlaHXw/s844/IPsec-teoria-apertura.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="663" data-original-width="844" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6mVEiG1R8wWtzdyVzrVK6DZrdxyZefnTZuPdb6ZRRAE_UvQ3i6zXy94Ypjpj2RfycjHDGJ04PzhcgpeQ41l_aP5v4o24tLDRKFOYPWoU7HG04BiXHS8MQHnGVkarSvNWnTEQUETlaHXw/s320/IPsec-teoria-apertura.jpg" width="320" /></a></div>Los paquetes IP son los elementos básicos de la comunicación de datos en Internet y están compuestos por dos elementos: los datos, como lenguaje, texto o imágenes, y la cabecera, a la que pertenecen, entre otros, los datos del emisor y el receptor. El gran problema de los paquetes de datos que pasan por diferentes routers durante su ruta hacia el destinatario es que el Protocolo de Internet en sí no tiene mecanismos propios de cifrado y autenticación. En otras palabras, el proceso de transferencia de datos entre router y router puede ser interceptado y manipulado en cualquier momento, con lo que no se estarían garantizando los tres pilares de la seguridad informática: confidencialidad, autenticidad e integridad.<br /><br />El conjunto de protocolos Internet Protocol Security (IPsec) se desarrolló para ampliar la gama de funciones de seguridad existentes. Cuando se combinan, proporcionan a la transmisión de paquetes de datos a través de redes públicas una seguridad muy fiable. Es por esto que IPsec se ha convertido en un componente imprescindible para muchas conexiones VPN (Virtual Private Network).<h2 style="text-align: left;">¿Qué es IPsec?</h2><p>IPsec es una familia de protocolos, cuya arquitectura ha sido propuesta como estándar por el Grupo de Trabajo de Ingeniería de Internet (IETF por sus siglas en inglés), una organización dedicada al desarrollo técnico de Internet. IPsec está a disposición de los usuarios desde la última versión del Protocolo de Internet (IPv6) y fue desarrollado posteriormente para IPv4, dividiéndose principalmente en los tres siguientes grupos:</p><p></p><ul style="text-align: left;"><li>Protocolos de transferencia: Authentication Header (AH), Encapsulating Security Payload (ESP)</li><li>Gestión de claves: Internet Security Association and Key Management Protocol (ISAKMP), Internet Key Exchange (IKE)</li><li>Bases de datos: Security Association Database (SAD), Security Policy Database (SPD)</li></ul><p></p><p>Con la ayuda de los protocolos de transferencia AH y ESP, IPsec garantiza la autenticidad e integridad de los datos enviados, asegurando que su contenido no haya sufrido cambios desde que fue enviado por su emisor y que llegará intacto a su destinatario. Para este fin, AH ofrece una extensión de la cabecera del paquete, concentrándose, por un lado, en la autenticación, y, por el otro, en evitar que los paquetes sean manipulados durante el proceso de transmisión. Adicionalmente, el protocolo AH añade un número de secuencia a la cabecera, impidiendo repeticiones en la transmisión de los paquetes.</p><p>Además de la comprobación de la integridad y de la identidad, el protocolo ESP cifra los datos enviados. Sin embargo, la autenticación ESP difiere del protocolo AH en la medida en que no tiene en cuenta la cabecera IP exterior, por lo que no es considerada del todo exhaustiva. Sin embargo, con la ayuda de un proceso de encapsulamiento adicional y de la traducción de direcciones de red (NAT), como sucede comúnmente en las conexiones DSL privadas, se pueden entregar correctamente los contenidos ESP.</p><p>El protocolo IKE es el principal responsable de la gestión del cifrado ESP. Para garantizar estas medidas de seguridad (Security Associations) entre emisor y receptor, utiliza el método Diffie Hellman para un intercambio seguro de claves, estableciendo las definiciones técnicas del framework ISAKMP.</p><p>La información necesaria para el envío de paquetes basado en IPsec es almacenada en dos bases de datos locales: SPD y SAD. Las entradas en la Security Policy Database (SPD) determinan, por ejemplo, qué protocolos de seguridad (AH, ESP o ambos) se utilizarán para establecer una conexión segura. El SAD gestiona los registros específicos de Security Association que han sido creados por el protocolo IKE, entregándole al emisario los métodos de cifrado (incluyendo la clave) y al receptor los métodos de descifrado.</p><h3 style="text-align: left;">Los dos modos de IPsec: túnel y transporte</h3><p>Existen dos modos de transferencia para establecer conexiones seguras con IPsec: el modo transporte, en el que los dos puntos finales están conectados directamente y el modo túnel, en donde se crea una conexión entre dos redes IP.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtTBDcLLGMgnerLLtSszAALSP1zZdsXuJ3QcP9UQLEE7GttQ_VJxm1zFmh6wPhkg1bhcwaPqp9N67D6jNOFQBYYxo-MSo7uscLF30KIoUtcDe-aUrBINsYW8NeSBUPmYs70PfRBiYfipQ/s505/IPsecTunnel-S11.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Seguridad en IP con el Protocolo IPSEC para IPV6" border="0" data-original-height="248" data-original-width="505" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtTBDcLLGMgnerLLtSszAALSP1zZdsXuJ3QcP9UQLEE7GttQ_VJxm1zFmh6wPhkg1bhcwaPqp9N67D6jNOFQBYYxo-MSo7uscLF30KIoUtcDe-aUrBINsYW8NeSBUPmYs70PfRBiYfipQ/w640-h314/IPsecTunnel-S11.png" title="Seguridad en IP con el Protocolo IPSEC para IPV6" width="640" /></a></div><br /><h3 style="text-align: left;">Modo transporte</h3><p>Si se utiliza IPsec en el modo transporte, el header del protocolo de transferencia se inserta entre la cabecera IP del paquete de datos, que se mantiene sin cambios, y los datos. El proceso de encriptación se inicia en el equipo de origen y se mantiene durante toda la transferencia, hasta que el paquete de datos haya sido entregado al equipo de destino. Solo después de que el paquete haya sido recibido, se descomprime y se pone a disposición del receptor. De esta forma, los puntos finales de cifrado y de comunicación son idénticos. La gran ventaja del modo transporte es el bajo tiempo de procesamiento, aunque solo garantiza la seguridad de los datos, dejando desprotegidas a las direcciones de origen y destino. Normalmente, este modo se usa para comunicaciones de host a host o de router a router, por ejemplo, para la gestión de la red.</p><h3 style="text-align: left;">Modo túnel</h3><p>En el modo túnel los paquetes de datos obtienen una nueva cabecera IP, en la que la dirección de origen y de destino están ocultas. De la misma forma que en el modo transporte, aquí también se implementa la cabecera del correspondiente protocolo de seguridad. Es por esto que se habla del encapsulamiento del paquete original. La nueva cabecera IP exterior define los puntos encriptados de destino, que no son los mismos puntos de comunicación definidos en la cabecera IP interna. El paquete se descomprime únicamente cuando ha alcanzado los puntos finales de cifrado, proceso que también se conoce como “pasar la puerta de seguridad”, y se envía al destinatario. Por defecto, la transmisión de datos en modo túnel se lleva a cabo entre puerto y puerto, pero también es posible que tenga lugar de host a puerto y en conexiones de host a host.</p><h3 style="text-align: left;">IPsec: ventajas y desventajas</h3><p>A la hora de implementar conexiones VPN, las cuales representan el mayor sector donde encuentra aplicación este conjunto de protocolos, IPsec tiene una ventaja decisiva en comparación con alternativas como SSL: por defecto, al nivel de red, IPsec puede ser implementado sin depender de ninguna aplicación. Una vez establecida la conexión, pueden tener lugar todo tipo de formas de tráfico de datos, correo electrónico, transferencia de archivos o telefonía IP, sin necesidad de instalar herramientas adicionales de aplicación. Esto convierte a IPsec en la solución más rentable para conexiones VPN. Sin embargo, el uso de IPsec por acceso remoto requiere un software especial que debe ser instalado, configurado y mantenido en cada cliente. Además, esta independencia de las aplicaciones puede convertirse rápidamente en un problema cuando estas no son bloqueadas automáticamente por un cortafuegos central, poniendo no solo a una, sino a todas las aplicaciones en peligro.</p><p>Sin lugar a dudas, los mayores beneficios de IPsec son la fiabilidad y el rendimiento: en caso de que se presenten problemas, un sistema clúster puede ser rescatado fácilmente por otro puerto mientras se continúa con la transferencia de paquetes de datos a miles de usuarios. Finalmente, gracias al gran número de garantías en seguridad que ofrece, IPsec es la solución ideal para la transferencia de datos confidenciales y para el tráfico interno de empresas que no permitan el acceso de usuarios anónimos.</p><span><a name='more'></a></span><p><br /></p><p><b>INDICE</b></p><p><b>1. SEGURIDAD Y PROTOCOLOS DE SEGURIDAD</b> 1</p><p>1.1 Seguridad de la información 1</p><p>1.2 Factores que intervienen en la Seguridad Informática. 5</p><p>1.2.1 Amenazas 6</p><p>1.2.2 Vulnerabilidades 9</p><p>1.2.3 Ataques 9</p><p>1.2.3.1 Activos 9</p><p>1.2.3.2 Pasivos 10</p><p>1.2.4 Contramedidas 11</p><p>1.3 Modelo OSI y Seguridad por Capas 13</p><p>1.3.1 Modelo OSI 13</p><p>1.3.2 Capa física 17</p><p>1.3.3 Capa de enlace 18</p><p>1.3.4 Capa de red 20</p><p>1.3.5 Capa de transporte 23</p><p>1.3.6 Capa de sesión 25</p><p>1.3.7 Capa de aplicación 27</p><p>1.4 Criptología 28</p><p>1.4.1 Criptosistemas 30</p><p>1.4.1.1 Simétricos 31</p><p>1.4.1.2 Asimétrico 33</p><p>1.5 Protocolos de seguridad 34</p><p>1.5.1 Secure Socket Layer (SSL) 35</p><p>1.5.2 Transport Layer Security (TLS) 39</p><p>1.5.3 Authentication Header AH, Encapsulating Security Payload (ESP) 40</p><p><b>2. SEGURIDAD IP</b> 43</p><p>2.1 Protocolo TCP/IP 44</p><p>2.1.1 Capa de aplicación 46</p><p>2.1.2 Capa de transporte 46</p><p>2.1.3 Capa de acceso a la red 47</p><p>2.1.4 Capa física 52</p><p>2.2 IPV6 52</p><p>2.1.1 Seguridad y autenticación 53</p><p>2.3 IPSec 55</p><p>2.3.1 Componentes 58</p><p>2.4.2 Asociación de seguridad 59</p><p>2.3.2.1 Funcionalidad 65</p><p>2.3.2.2 Combinación 66</p><p>2.3.2.3 Base de datos 69</p><p>2.3.2.4 Parámetros 71</p><p>2.3.3 Servicios 73</p><p><b>3. FUNCIONAMIENTO IPSEC</b> 77</p><p>3.1 Beneficios 79</p><p>3.2 Infraestructura de clave pública PKI 81</p><p>3.3 Integración de IPSec con una PKI 84</p><p>3.4 Modos de uso y ejemplos de aplicación 87</p><p>3.4.1 Intranet 87</p><p>3.4.3 Extranet 93</p><p><b>4. ANÁLISIS DE SEGURIDAD IPSEC EN IPV6</b> 95</p><p>4.1 Funcionamiento de IPSec en IPV6 95</p><p>4.2 Métodos de Trabajo 102</p><p>4.3 Vulnerabilidades 106</p><p>4.4 Ventajas y Desventajas 111</p><p>4.5 Recomendaciones sobre el uso de IPSec en IPV6 115</p><p><b>CONCLUSIONES</b> 121</p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1GhEtqfeIhrmF1Yxxzx3P7RFI6tDI8EFi/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (2 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1GhEtqfeIhrmF1Yxxzx3P7RFI6tDI8EFi"><img alt="Seguridad en IP con el Protocolo IPSEC para IPV6" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-50879055065710527362021-02-13T00:49:00.003-03:002021-02-13T00:49:17.963-03:000xWord - Pentesting con Powershell [COMPLETO]<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZZd0TOngfLkl060LtgasQpEwDr0MJNsogEmVza8hydY1wz2icFJ12LInazc_cyW4lfB3vZMFuas0gJnAIc0i2SrLoQqtcpcJUZTnUuRAfzxH52DObeEO4vMS5E9o8SZNkYGSmXYOwLNI/s520/Pentesting+con+Powershell.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="520" data-original-width="401" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZZd0TOngfLkl060LtgasQpEwDr0MJNsogEmVza8hydY1wz2icFJ12LInazc_cyW4lfB3vZMFuas0gJnAIc0i2SrLoQqtcpcJUZTnUuRAfzxH52DObeEO4vMS5E9o8SZNkYGSmXYOwLNI/s320/Pentesting+con+Powershell.png" /></a></div>Powershell ha aumentado exponencialmente su uso en los test de intrusión del sector profesional de la Seguridad de la Información. El motivo por el que Powershell es más utilizado en los test de intrusión es debido a todo el potencial que la línea de comandos ofrece, sobre todo, en la etapa de post-explotación.<p></p><p>Investigadores de todo el mundo han utilizado Powershell para mejorar la experiencia en los test de intrusión. Los trabajos más importantes son el desarrollo de frameworks como Powersploit, PowerUp, Nishang, PowerView o Posh-SecMod los cuales son presentados al detalle en el presente libro. Powershell puede utilizarse también en las fases de gathering y explotación, sin estar limitado a la fase de postexplotación, dónde se saca su mejor provecho. El enfoque práctico del libro guiará al pentester en el desarrollo de scripts y uso de frameworks y herramientas para mejorar su experiencia en los test de intrusión.</p><p>Existen escenarios en el mundo real dónde el auditor puede encontrarse con mecanismos que eviten que se pueda lanzar herramientas de auditoria sobre ciertos equipos de una red. La posibilidad de ejecutar ciertas herramientas o scripts directamente en memoria, hacen de Powershell un punto a favor en la auditoria.</p><span><a name='more'></a></span><br /><p><b>INDICE</b></p><p>Introducción ...............................................................................................13</p><p><b>Capítulo I</b></p><p>Conceptos básicos de PowerShell .............................................................15</p><p>1. ¿Qué es y qué engloba a PowerShell?......................................................................15</p><p>2.Instalación de una PowerShell .................................................................................16</p><p>Los requisitos............................................................................................................................ 16</p><p>3. ¿Cómo puede ayudar en un pentest?.......................................................................18</p><p>4.Versiones.....................................................................................................................19</p><p>PowerShell 1.0 .......................................................................................................................... 19</p><p>PowerShell 2.0 .......................................................................................................................... 19</p><p>PowerShell 3.0 .......................................................................................................................... 20</p><p>PowerShell 4.0 .......................................................................................................................... 20</p><p>5.Lo más básico: Comenzando....................................................................................20</p><p>Cmdlet....................................................................................................................................... 20</p><p>Alias.......................................................................................................................................... 21</p><p>Comandos *NIX y CMD en PowerShell .................................................................................. 22</p><p>Provider..................................................................................................................................... 22</p><p>Parámetros................................................................................................................................. 24</p><p>Archivos.................................................................................................................................... 24</p><p>Pipe y pipeline........................................................................................................................... 25</p><p>Módulos..................................................................................................................................... 25</p><p>6.La ayuda en PowerShell al detalle ...........................................................................26</p><p>¿Help o get-help? ...................................................................................................................... 27</p><p>Categorías.................................................................................................................................. 27</p><p>Atajos de teclado....................................................................................................................... 27</p><p>7.Seguridad en PowerShell..........................................................................................28</p><p>Políticas de ejecución de PowerShell........................................................................................ 29</p><p>Ámbitos..................................................................................................................................... 29</p><p>Bypass a la política de ejecución de PowerShell ...................................................................... 30</p><p>La ejecución remota y cómo comunicarse................................................................................ 31</p><p>Creación y configuración de una sesión remota .................................................................... 31</p><p>Las ejecuciones remotas........................................................................................................ 33</p><p>Utilidades remotas................................................................................................................. 34</p><p>Fortificar la información en la línea de comandos.................................................................... 35</p><p>Creación de una cadena segura ................................................................................................. 35</p><p>Leyendo las cadenas seguras..................................................................................................... 36</p><p>Las credenciales tratadas por PowerShell................................................................................. 37</p><p>Scripts firmados digitalmente.................................................................................................... 38</p><p>Los requisitos............................................................................................................................ 38</p><p>Certificados ............................................................................................................................... 39</p><p>Firma tu script ........................................................................................................................... 41</p><p><b>Capítulo II</b></p><p>Scripting en PowerShell ............................................................................43</p><p>1.Interactuando con la shell.........................................................................................43</p><p>Personalización del entorno ...................................................................................................... 44</p><p>Modificación del entorno .......................................................................................................... 44</p><p>Perfiles....................................................................................................................................... 46</p><p>2.Entorno de Scripting: PowerShell ISE....................................................................47</p><p>3.Variables.....................................................................................................................50</p><p>Variables necesarias en el desarrollo......................................................................................... 51</p><p>4.Operadores.................................................................................................................52</p><p>Operadores aritméticos.............................................................................................................. 52</p><p>Operadores de comparación...................................................................................................... 52</p><p>Operadores lógicos.................................................................................................................... 53</p><p>Operadores de tipo .................................................................................................................... 54</p><p>Operadores de intervalo ............................................................................................................ 54</p><p>5.Arrays y hash tables..................................................................................................54</p><p>Las dimensiones de los arrays................................................................................................... 55</p><p>Tratamiento de datos ................................................................................................................ 55</p><p>Tablas hash................................................................................................................................ 56</p><p>6.Los cmdlet de salida ..................................................................................................57</p><p>7.Condicionales.............................................................................................................57</p><p>La sentencia If........................................................................................................................... 58</p><p>El condicional de selección: Switch.......................................................................................... 58</p><p>PoC: CheckVBox...................................................................................................................... 59</p><p>8.Bucles..........................................................................................................................60</p><p>For............................................................................................................................................. 61</p><p>Foreach...................................................................................................................................... 61</p><p>Do-While................................................................................................................................... 62</p><p>While......................................................................................................................................... 62</p><p>PoC: Encontrando servicios vulnerables................................................................................... 63</p><p>9.Creación de objetos .NET.........................................................................................64</p><p>New-Object ............................................................................................................................... 64</p><p>Creación de objetos COM ........................................................................................................ 65</p><p>Filtros........................................................................................................................................ 66</p><p>10.Utilización de clases y métodos de .NET ...............................................................67</p><p>11.Funciones..................................................................................................................69</p><p>El provider de las funciones...................................................................................................... 69</p><p>Crear funciones......................................................................................................................... 69</p><p>12.Administración y recopilación de información.....................................................72</p><p>Recopilando información sobre el software de la máquina ...................................................... 74</p><p>13.WMI..........................................................................................................................75</p><p>Clases e instancias..................................................................................................................... 76</p><p>Ejemplo 1: Capacidad de disco................................................................................................. 77</p><p>Ejemplo 2: Estado de los servicios............................................................................................ 77</p><p>Monitorización de recursos....................................................................................................... 78</p><p>14.Un exploit con PowerShell......................................................................................79</p><p>PoC: Explotando Shellshock desde PowerShell ....................................................................... 80</p><p>15.Un bot en PowerShell para pentesting ..................................................................84</p><p>16. Workflows.................................................................................................................88</p><p>El flujo....................................................................................................................................... 89</p><p>17.Otros productos.......................................................................................................92</p><p>Directorio activo, ¿Por qué?...................................................................................................... 93</p><p>ADSI: La API para equipos locales .......................................................................................... 93</p><p>Ejemplo 1: Listado de usuarios.............................................................................................. 94</p><p>Ejemplo2: Listado de usuarios remotos................................................................................. 95</p><p>Ejemplo 3: Crear usuario....................................................................................................... 95</p><p>Ejemplo 4: Eliminar usuario.................................................................................................. 95</p><p>ADSI: La API para Active Directory ........................................................................................ 96</p><p>Conexión al AD ..................................................................................................................... 96</p><p>Buscar objetos en el AD ........................................................................................................ 97</p><p>Ejemplo 1: Listar equipos...................................................................................................... 97</p><p>Ejemplo 2: Listar usuarios y grupos...................................................................................... 97</p><p>Administración ...................................................................................................................... 98</p><p>Ejemplo 3: Crear objetos....................................................................................................... 98</p><p>Ejemplo 4: Mover objetos ..................................................................................................... 98</p><p>Cmdlets desde Windows 2008 R2............................................................................................. 99</p><p>El proveedor de Active Directory.......................................................................................... 99</p><p>Ejemplo 1: Crear objetos..................................................................................................... 100</p><p>Ejemplo 2: Buscar objetos con filtros.................................................................................. 101</p><p>Ejemplo 3: Adición / Eliminación de miembros a un grupo ............................................... 102</p><p>Internet Information Services.................................................................................................. 102</p><p>El proveedor de IIS.............................................................................................................. 104</p><p>Gestión de sitios................................................................................................................... 105</p><p>18.Wannacry File Restorer escrito en Powershell...................................................107</p><p>Ejecución del script en un dominio Microsoft a través de Powershell ................................... 110</p><p><b>Capítulo III</b></p><p>PowerShell puro: El arte del pentesting ................................................113</p><p>1.Introducción............................................................................................................. 113</p><p>2.Powercat: la navaja suiza ....................................................................................... 114</p><p>Conexión simple...................................................................................................................... 116</p><p>Dar y recibir shells.................................................................................................................. 117</p><p>Transferencia de archivos........................................................................................................ 117</p><p>Escanear puertos TCP con Powercat....................................................................................... 118</p><p>PoC: Descarga y ejecución de Shellcodes desde Powercat..................................................... 118</p><p>3.Veil-Framework.......................................................................................................120</p><p>PowerUp.................................................................................................................................. 121</p><p>PoC: Configuraciones erróneas en servicios que permiten escalada de privilegio.............. 125</p><p>PoC: Configuración errónea en el registro que permite la obtención de privilegio............. 128</p><p>PowerView.............................................................................................................................. 129</p><p>PoC: Resumen de PowerView............................................................................................. 135</p><p>4.Posh-SecMod............................................................................................................137</p><p>Módulos para comenzar.......................................................................................................... 138</p><p>Discovery ................................................................................................................................ 141</p><p>PoC: Tipos de escaneos ....................................................................................................... 142</p><p>Post-Explotación con Posh-SecMod....................................................................................... 145</p><p>PoC: Base64, compresión, descargas y ejecución ............................................................... 146</p><p>PoC: Shell inversa, SAM y NTDS con Posh-SecMod ........................................................ 149</p><p>Servicios externos................................................................................................................... 152</p><p>PoC: Shodan y VirusTotal en tu PowerShell ....................................................................... 155</p><p>5.PowerSploit..............................................................................................................158</p><p>Code Execution ....................................................................................................................... 159</p><p>Script Modification.................................................................................................................. 160</p><p>Persistence............................................................................................................................... 160</p><p>Exfiltration............................................................................................................................... 161</p><p>Otros: Mayhem, Recon y AV Bypass...................................................................................... 162</p><p>PowerShell Arsenal: Disassembly........................................................................................... 163</p><p>PowerShell Arsenal: Malware Analysis.................................................................................. 163</p><p>PowerShell Arsenal: Memory Tools ....................................................................................... 163</p><p>PowerShell Arsenal: Parsers ................................................................................................... 164</p><p>PowerShell Arsenal: Windows Internals................................................................................. 164</p><p>PowerShell Arsenal: Misc....................................................................................................... 165</p><p>PoC: Code Execution + Recon................................................................................................ 165</p><p>PoC: Post-Exploitation con Exfiltration + Persistence ........................................................... 170</p><p>6.Nishang.....................................................................................................................174</p><p>Prasadhak, Scan, Escalation y Antak ...................................................................................... 175</p><p>Backdoors................................................................................................................................ 176</p><p>Client....................................................................................................................................... 177</p><p>Execution................................................................................................................................. 178</p><p>Gather...................................................................................................................................... 179</p><p>Pivot ........................................................................................................................................ 180</p><p>Shells....................................................................................................................................... 181</p><p>Utility ...................................................................................................................................... 182</p><p>PoC: Backdoors, jugando con DNS y Wireless...................................................................... 182</p><p>PoC: Client-Side Attack con Nishang..................................................................................... 185</p><p>PoC: Shells.............................................................................................................................. 186</p><p>7.Powershell Empire ..................................................................................................187</p><p>PoC: Conectando el agente y el listener.................................................................................. 188</p><p>PoC: Bypass a UAC, inyección en proceso y ejecución con Powershell Empire................... 192</p><p>8.Otros scripts en acción............................................................................................197</p><p>PoC: Sniffing y Spoofing de protocolos con PowerShell........................................................ 197</p><p>PESecurity............................................................................................................................... 198</p><p>Respuesta ante incidentes........................................................................................................ 198</p><p>Kansa ................................................................................................................................... 199</p><p>Voyeur.................................................................................................................................. 199</p><p>Find-MsfPSExec.................................................................................................................. 199</p><p>Poc: Tater y la escalada de privilegios.................................................................................... 201</p><p>PoC: La escalada de privilegios con ms16-135 ...................................................................... 204</p><p><b>Capítulo IV</b></p><p>PowerShell y otras herramientas: Pentesting sin límites .....................207</p><p>1.La post-explotación con PowerShell......................................................................207</p><p>2.PowerShell: Ejecución de payloads.......................................................................208</p><p>3.PowerShell Shellcode Injection con Python..........................................................210</p><p>4.Payloads de PowerShell en Metasploit.................................................................. 211</p><p>5.Posh-Metasploit.......................................................................................................214</p><p>Console.................................................................................................................................... 215</p><p>Db............................................................................................................................................ 216</p><p>Jobs.......................................................................................................................................... 218</p><p>Module .................................................................................................................................... 219</p><p>Plugin ...................................................................................................................................... 221</p><p>Posh......................................................................................................................................... 221</p><p>Session..................................................................................................................................... 222</p><p>Variables.................................................................................................................................. 224</p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1QecUUCGUdC2XnnoKrG1QdjaFrNmZlg1J/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (13 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1QecUUCGUdC2XnnoKrG1QdjaFrNmZlg1J"><img alt="0xWord - Pentesting con Powershell" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-15052706802357965122021-02-12T00:50:00.002-03:002021-02-12T00:51:43.232-03:000xWord - Python para Pentesters<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBnm431SKWMsTCVE55BceVBgWNDN3Zo6dlGNO3go38lmSIoUr0lhYd2pFQWSX4Cb92POjp_mc1VhDKRXGIKJyvBcRtbfD-JIKN1E8ugO-momAmbniHItuQ4a_sAIIxQRjykHnKCvQHu30/s494/python+para+pentesters.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="494" data-original-width="374" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBnm431SKWMsTCVE55BceVBgWNDN3Zo6dlGNO3go38lmSIoUr0lhYd2pFQWSX4Cb92POjp_mc1VhDKRXGIKJyvBcRtbfD-JIKN1E8ugO-momAmbniHItuQ4a_sAIIxQRjykHnKCvQHu30/s320/python+para+pentesters.png" /></a></div><br />En este documento no solamente vas a encontrar contenido relacionado con las librerías y herramientas disponibles en Python para ejecutar actividades de pentesting, sino que también se habla sobre conceptos y técnicas de hacking en entornos de red, elevación de privilegios en sistemas Windows y Linux, herramientas para análisis forense, técnicas para recolección de información, técnicas y herramientas para la evasión de antivirus e incluso, uso y configuración avanzada de redes anónimas tales como I2P y TOR. Es un libro escrito especialmente para profesionales y entusiastas de la seguridad informática que se sienten a gusto programando y afinando sus conocimientos. Es una guía para personas que les gusta saber cómo funcionan las cosas y que se encuentran en un proceso continuo de aprendizaje.<p></p><p>Además de lo anterior, es un documento que responde a una clara necesidad que cada vez se hace más evidente en entornos tan hostiles y poco fiables como Internet: Aprender a pensar como un atacante, comprender sus motivaciones y asimilar las técnicas que utiliza para atacar a sus víctimas. Se trata de un enfoque muy potente que le permite a un pentester profesional adelantarse a posibles amenazas, es un enfoque preventivo que desde luego, resulta mucho más eficaz que aplicar el enfoque correctivo tradicional. Pensar como un atacante e intentar anticiparse a sus acciones, es la clave para mantener la integridad y la confidencialidad de la información.</p><span><a name='more'></a></span><br /><p><b>INDICE</b></p><p>Introducción ............................................................................................... 11</p><p><b>Capítulo I</b></p><p>Recolección de Información y Escaneo....................................................15</p><p>1.1 La información es la base en el mundo del hacking ............................................15</p><p>1.2 Definición del sistema objetivo ...............................................................................15</p><p>1.3 Recolección de Información con Python...............................................................16</p><p>1.3.1 Extraer información en servidores DNS utilizando DNSPython ..................................... 16</p><p>1.3.2 Ejecutar consultas WHOIS con pythonwhois.................................................................. 18</p><p>1.3.3 GeoLocalizacion del objetivo con PyGeoIP .................................................................... 20</p><p>1.4 Utilizar motores de búsqueda para recolectar información sobre un objetivo ........................22</p><p>1.4.1 Google Hacking ............................................................................................................... 22</p><p>1.4.2 Shodan Hacking ............................................................................................................... 24</p><p>1.5 Ingeniería Social......................................................................................................29</p><p>1.5.1 Social Engineering Framework........................................................................................ 29</p><p>1.5.2 Maltego ............................................................................................................................ 36</p><p>1.6 Análisis de Metadatos con Python.........................................................................43</p><p>1.6.1 Análisis de metadatos en documentos PDF con PyPDF2 ................................................ 44</p><p>1.6.2 Análisis de metadatos EXIF con PIL (Python Imaging Library)..................................... 45</p><p><b>Capítulo II</b></p><p>Escaneo, enumeración y detección de vulnerabilidades.........................47</p><p>2.1 Reconocimiento y enumeración con Scapy...........................................................47</p><p>2.1.1 TCP Connect Scan............................................................................................................ 47</p><p>2.1.2 TCP Stealth Scan.............................................................................................................. 48</p><p>2.1.3 Escaneo UDP.................................................................................................................... 49</p><p>2.1.4 ACK Scan......................................................................................................................... 50</p><p>2.1.5 XMAS Scan ..................................................................................................................... 51</p><p>2.1.6 FIN Scan........................................................................................................................... 52</p><p>2.1.7 NULL Scan ...................................................................................................................... 53</p><p>2.1.8 Window Scan ................................................................................................................... 53</p><p>2.2 Utilizando NMAP desde Python ............................................................................54</p><p>2.2.1 Script Engine.................................................................................................................... 54</p><p>2.2.2 Idle Scanning.................................................................................................................... 58</p><p>2.2.3 Timing Scanning .............................................................................................................. 59</p><p>2.2.4 Evasión de IDS/IPS.......................................................................................................... 60</p><p>2.2.5 Uso de la librería python-nmap........................................................................................ 63</p><p>2.3 Banner Grabbing para detección servicios vulnerables......................................67</p><p>2.4 Integración de Nessus y Python.............................................................................68</p><p>2.4.1 PyNessus-rest para consultar la API REST de Nessus..................................................... 69</p><p>2.5 Integración de Metasploit Framework y Python.................................................72</p><p>2.5.1 Uso de python-msfrpc y el plugin NeXpose desde Python ........................ 73</p><p>2.6 Integración de NeXpose y Python .........................................................................78</p><p>2.6.1 Pynexpose para utilizar NeXpose desde Python.............................................................. 78</p><p>2.7 Integración de Latch y Python ..............................................................................81</p><p>2.8 Conceptos básicos sobre el protocolo SNMP........................................................84</p><p>2.8.1. Atacando servicios SNMP con PySNMP........................................................................ 85</p><p>2.9. Conceptos básicos sobre el protocolo SMB .........................................................87</p><p>2.9.1. Aprovechando Sesiones SMB Nulas............................................................................... 88</p><p>2.9.2. Atacando servicios SMB con PySMB............................................................................. 90</p><p>2.10 Identificación de vulnerabilidades en aplicaciones web ....................................92</p><p>2.10.1 Uso de librerías en Python para entornos web ............................................................... 92</p><p>2.10.2 OWASP TOP 10 ........................................................................................................... 100</p><p>2.10.3 W3AF para identificar vulnerabilidades en aplicación web ..................................... 126</p><p>2.11 Vulnerabilidades en servidores HTTP...............................................................133</p><p>2.11.1 Ataques comunes contra arquitecturas web ................................................................. 133</p><p>2.11.2 Nikto para auditorias de servidores web ...................................................................... 136</p><p>2.12 Identificación y Ataques de versiones vulnerables de OpenSSL ......................140</p><p>2.12.2 SSLv2 Malformed Client Key Remote Buffer Overflow Vulnerability ...................... 140</p><p>2.12.2 Predictable PRNG (Pseudo Random Number Generator) ........................................... 142</p><p>2.12.3 TLS Hearbet Extension - Memory Disclousure (HeartBleed Vulnerability) .............. 147</p><p>2.13 Conceptos básicos sobre el protocolo FTP........................................................152</p><p>2.13.1 Implementaciones vulnerables de FTP ........................................................................ 153</p><p>2.13.2 Encontrando servidores FTP mal configurados ........................................................... 157</p><p>2.14 Conceptos básicos sobre el protocolo SSH........................................................158</p><p>2.14.1. Atacando servicios SSH con Paramiko....................................................................... 159</p><p>2.14.2. Creación de una Botnet SSH utilizando Fabric........................................................... 162</p><p>2.15. Conceptos básicos sobre el protocolo SMTP...................................................165</p><p>2.15.1 Enumerando usuarios en servidores SMTP mal configurados ..................................... 166</p><p><b>Capítulo III</b></p><p>Elevación de privilegios y Garantizando el acceso................................169</p><p>3.1 Enumeración y recolección de información .......................................................169</p><p>3.1.1 Enumeración en sistemas Windows............................................................................... 170</p><p>3.1.2 Enumeración en sistemas Linux..................................................................................... 197</p><p>3.2 Control Remoto y puertas traseras.....................................................................224</p><p>3.2.1 Implementación de consolas bind e inversas ................................................................. 224</p><p>3.2.2 Implementación de una consola inversa utilizando un tunel SSH cifrado ..................... 227</p><p>3.2.3 Scripts en Metasploit Framework para crear puertas traseras........................................ 230</p><p><b>Capítulo IV.</b></p><p>Ataques en el segmento de red local.......................................................233</p><p>4.1 Python y Scapy para creación de paquetes y análisis de la red........................233</p><p>4.1.1 Fingerprint pasivo con p0f y Scapy ............................................................................... 239</p><p>4.1.2 Uso práctico de Scapy para ejecutar y detectar ataques en redes de datos locales........ 243</p><p>4.2 Expandir el ataque en la red local de la víctima ................................................245</p><p>4.2.1 Identificando el segmento de red y las maquinas accesibles .......................................... 246</p><p>4.2.2 Redirección de Puertos y Forwarding de conexiones con SSH ..................................... 247</p><p>4.3 Usando Twisted en el segmento de red local.......................................................249</p><p>4.4 Ataques de Hombre en medio (MITM) con Scapy y Python ............................257</p><p>4.5 Ataques de DNS Spoofing con Scapy y Pyhton ..................................................259</p><p>4.6 Conceptos básicos y ataques en redes de datos IPv6 .........................................265</p><p>4.6.1 Enumeración de redes IPv6............................................................................................ 266</p><p>4.6.2 Ataque Neigbor Spoofing y MITM sobre IPv6............................................................ 267</p><p>4.6.3 Router Falso sobre IPv6................................................................................................. 269</p><p>4.6.4 Problemas de redirección ............................................................................................... 270</p><p>4.7 Conceptos básicos y ataques en redes inalámbricas..........................................272</p><p>4.7.1 Sniffing en redes inalámbricas ....................................................................................... 273</p><p>4.7.2 Estructura de los paquetes en un entorno de red inalámbrica ........................................ 274</p><p>4.7.3 Autenticación y asociación entre un cliente y un punto de acceso ................................ 278</p><p>4.7.4 Ataques en redes inalámbricas....................................................................................... 286</p>
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1CytL22C-Drvq8WaO82lajQOdCZ8Imi5H/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (13 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1CytL22C-Drvq8WaO82lajQOdCZ8Imi5H"><img alt="0xWord - Python para Pentesters" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-77349138602460106952021-02-11T00:32:00.001-03:002021-02-11T00:44:43.090-03:000xWord - Malware en Android: Discovering, Reversing & Forensics<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWilQOZpvJeUoVBDzUmGC92f-7SA9H-JYdkSMRxhMYLiTcQqZmzsOyZaXHH6B-6b7FVIfGfiugGbnZF66VRN55RhxlGWlaz69fFIoKttox0IonFhBVoZUbZKh4OCoQNttMr-KPqXhcU7D1/s554/Malware+en+Android.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="554" data-original-width="428" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWilQOZpvJeUoVBDzUmGC92f-7SA9H-JYdkSMRxhMYLiTcQqZmzsOyZaXHH6B-6b7FVIfGfiugGbnZF66VRN55RhxlGWlaz69fFIoKttox0IonFhBVoZUbZKh4OCoQNttMr-KPqXhcU7D1/s320/Malware+en+Android.png" /></a></div>Es una realidad que no se puede negar, los dispositivos móviles se han declarado protagonistas de lo cotidiano abarcando tanto el ámbito personal como el profesional, y siendo el origen de conceptos cada vez más extendidos como el BYOD y el IoT. Esta expansión imparable no ha pasado desapercibida a los delincuentes informáticos, los cuales han encontrado en las plataformas móviles un mercado de lo más prolífico para el desarrollo de malware, siendo este un negocio que a día de hoy se encuentra más que establecido e incluso industrializado, comercializándose a través de mercados poco legítimos en los que todo tipo de malware acaba encontrando su potencial cliente en personas, empresas o estados.<p></p><p>Esta oportunidad de negocio ilegal sumada al planteamiento abierto del sistema operativo Android hacen de esta plataforma un objetivo perfecto para el malware, exponiendo a su comunidad de usuarios a este tipo de amenazas y suponiendo así un riesgo para el dispositivo y la información que en él se contenga.</p><p>El libro plantea al lector mediante un enfoque práctico una metodología de análisis que le servirá para introducirse y perfeccionar las habilidades necesarias en el análisis de malware, explorando técnicas y herramientas que le ayudarán y guiarán en el proceso de recolección de información y en la consecución de resultados al realizar los análisis estático y dinámico sobre muestras reales y pruebas de conceptos diseñadas para su estudio.</p><span><a name='more'></a></span><p><b>INDICE</b></p><p>Introducción ...............................................................................................13</p><p>1.Para quién es este libro .............................................................................................13</p><p>2.Requisitos previos......................................................................................................13</p><p>3.Metodología de análisis.............................................................................................14</p><p>4.Contenido de una aplicación Android .....................................................................16</p><p>5.AndroidManifest.xml ................................................................................................17</p><p>Permisos.................................................................................................................................... 18</p><p>Requisitos software y hardware ................................................................................................ 21</p><p>Componentes de una aplicación................................................................................................ 22</p><p>Otras etiquetas en <application>............................................................................................... 29</p><p>6.Código nativo .............................................................................................................29</p><p>7.Instalación de aplicaciones .......................................................................................30</p><p>Market oficial ............................................................................................................................ 30</p><p>Orígenes desconocidos.............................................................................................................. 31</p><p>Firma de aplicaciones................................................................................................................ 32</p><p>Resultado del proceso de instalación ........................................................................................ 33</p><p><b>Capítulo I</b></p><p>Preparando el entorno de análisis............................................................35</p><p>1.Presentación de comandos........................................................................................36</p><p>2. Configurando la máquina virtual Android .............................................................36</p><p>3. Configurando la máquina virtual de análisis..........................................................39</p><p>Preparativos en VirtualBox ....................................................................................................... 39</p><p>Servicio DHCP.......................................................................................................................... 40</p><p>Enrutado de paquetes................................................................................................................ 41</p><p>Sniffing del tráfico de red.......................................................................................................... 42</p><p>Automatizando el arranque del entorno .................................................................................... 44</p><p>Android Studio, SDK y NDK ................................................................................................... 44</p><p>Repositorio de muestras y herramientas ................................................................................... 49</p><p>Herramientas adicionales.......................................................................................................... 49</p><p>Ajustes finales e interacción con Android................................................................................. 51</p><p>4.Gestión de instantáneas ............................................................................................53</p><p>5.Interacción con la máquina virtual Android ..........................................................54</p><p>Instalación de muestras............................................................................................................. 54</p><p>Atajos........................................................................................................................................ 55</p><p><b>Capítulo II</b></p><p>Reuniendo información .............................................................................57</p><p>1.Muestra de malware: Servicio SMS premium........................................................57</p><p>2.Obteniendo el APK....................................................................................................59</p><p>3. Examinando el fichero AndroidManifest.xml.........................................................60</p><p>Métodos para obtener el AndroidManifest.xml ........................................................................ 60</p><p>Interpretando la información..................................................................................................... 63</p><p>4.Analizando el contenido del APK.............................................................................65</p><p>Datos del certificado.................................................................................................................. 65</p><p>Ficheros almacenados en assets................................................................................................ 66</p><p>Ficheros de recursos almacenados en res.................................................................................. 67</p><p>Librerías nativas........................................................................................................................ 67</p><p>Otros ficheros............................................................................................................................ 68</p><p>Cadenas de texto ....................................................................................................................... 71</p><p>Construyendo una línea temporal.............................................................................................. 75</p><p>5.SDK Tools...................................................................................................................76</p><p>adb............................................................................................................................................. 76</p><p>aapt............................................................................................................................................ 77</p><p>6.Resumen de muestra Servicio SMS Premium ........................................................78</p><p>7.Automatizando la recuperación de información ....................................................78</p><p><b>Capítulo III</b></p><p>Análisis estático ..........................................................................................81</p><p>1.Iniciando el análisis...................................................................................................81</p><p>2.Código Java................................................................................................................82</p><p>Herramientas............................................................................................................................. 83</p><p>3.Código incluido en los assets ...................................................................................89</p><p>4.Código nativo .............................................................................................................91</p><p>Herramientas............................................................................................................................. 91</p><p>5.Código smali...............................................................................................................97</p><p>Herramientas............................................................................................................................. 98</p><p>Sintaxis básica........................................................................................................................... 98</p><p>6.Código Jasmin .........................................................................................................108</p><p>Herramientas........................................................................................................................... 108</p><p>Sintaxis básica......................................................................................................................... 109</p><p>7.Opcodes.................................................................................................................... 113</p><p>Herramientas........................................................................................................................... 114</p><p>8.Ofuscación................................................................................................................ 115</p><p>Herramientas........................................................................................................................... 118</p><p>9.Completando el arsenal...........................................................................................130</p><p>Enjarify.................................................................................................................................... 131</p><p>Dare......................................................................................................................................... 132</p><p>Dedexer................................................................................................................................... 132</p><p>10.Extracción automatizada de código.....................................................................133</p><p><b>Capítulo IV</b></p><p>Análisis dinámico .....................................................................................137</p><p>1.Consideraciones iniciales........................................................................................138</p><p>Conexión con el dispositivo Android...................................................................................... 138</p><p>Instalación de aplicaciones en el dispositivo Android ............................................................ 138</p><p>Acceder a la shell del dispositivo Android de forma remota .................................................. 139</p><p>Obteniendo ficheros del dispositivo Android.......................................................................... 141</p><p>Ejecución de comandos en shell ............................................................................................. 141</p><p>Restauración de la máquina virtual Android........................................................................... 141</p><p>2.Observando la ejecución.........................................................................................142</p><p>Logcat...................................................................................................................................... 142</p><p>Captura de tráfico de red ......................................................................................................... 144</p><p>Inspección de cambios en el sistema de ficheros.................................................................... 148</p><p>Volcado de información del sistema ....................................................................................... 150</p><p>Ejecución externa de código ................................................................................................... 150</p><p>3.Alterando la ejecución en nuestro favor................................................................152</p><p>Técnicas y herramientas.......................................................................................................... 152</p><p>Activity manager..................................................................................................................... 154</p><p>Modificación de código........................................................................................................... 158</p><p>App hooking............................................................................................................................ 162</p><p>System hooking....................................................................................................................... 168</p><p>4. Monitorización aplicando hooking con android-hooker......................................171</p><p>5.Técnicas basadas en depuración ............................................................................176</p><p>Código Java............................................................................................................................. 176</p><p>Código nativo.......................................................................................................................... 182</p><p>6.Sandboxing ..............................................................................................................187</p><p>Droidbox ................................................................................................................................. 188</p><p>Automatizando la interacción ................................................................................................. 193</p><p><b>Capítulo V</b></p><p>Tipos y muestras de malware..................................................................195</p><p>1.Persistencia...............................................................................................................195</p><p>Ocultación ............................................................................................................................... 195</p><p>Denegación de servicio ........................................................................................................... 197</p><p>2.Adware......................................................................................................................199</p><p>Características......................................................................................................................... 199</p><p>3. Phishing ....................................................................................................................202</p><p>Características......................................................................................................................... 202</p><p>4.Spyware ....................................................................................................................205</p><p>Características......................................................................................................................... 205</p><p>5.RAT........................................................................................................................... 211</p><p>Características......................................................................................................................... 212</p><p>6.Keyloggers................................................................................................................216</p><p>Características......................................................................................................................... 216</p><p>7. Tap-jacking ..............................................................................................................219</p><p>Características......................................................................................................................... 219</p><p>8. Clickers.....................................................................................................................222</p><p>Características......................................................................................................................... 222</p><p>9.Ransomware.............................................................................................................225</p><p>Características......................................................................................................................... 226</p><p>10.Servicios de pago ...................................................................................................230</p><p>Características......................................................................................................................... 231</p><p>11.Laboratorio de pruebas ........................................................................................234</p><p>Cuestiones............................................................................................................................... 234</p><p>Respuestas............................................................................................................................... 235</p><p><b>Capítulo VI</b></p><p>Investigación con Tacyt............................................................................241</p><p>1. Localización de aplicaciones sospechosas .............................................................241</p><p>2.Malware y técnicas OSINT: Fobus........................................................................246</p><p><br /></p><p><br /></p>
<br />
<iframe height="500" src="https://drive.google.com/file/d/1YDeJVUU8w30F6KhlsLBZgHMtKAtdSpY-/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (59 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1YDeJVUU8w30F6KhlsLBZgHMtKAtdSpY-"><img alt="0xWord - Malware en Android: Discovering, Reversing & Forensics" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Ridelsyhttp://www.blogger.com/profile/14269501583991431464noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-63306812493307376532020-11-09T00:16:00.007-03:002020-11-09T00:23:08.504-03:00Estrategia de marketing ( Quinta Edición) - O. C. Ferrell<p></p><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD3XBIjPV4cYfLGi3LPPLSG5OdnAcC8QoTK2Kz-MN7aYJfHSxZdyLOotAHdMWE8H3ED5GcQfp8ttJYtmqz0kob57mDrywVS5Srd5Rmy6xIgMqex4GlNBffqiSM1dZCTGl09zSsesNABr0/s525/page_1.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Estrategia de marketing ( Quinta Edición) - O. C. Ferrell" border="0" data-original-height="525" data-original-width="406" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD3XBIjPV4cYfLGi3LPPLSG5OdnAcC8QoTK2Kz-MN7aYJfHSxZdyLOotAHdMWE8H3ED5GcQfp8ttJYtmqz0kob57mDrywVS5Srd5Rmy6xIgMqex4GlNBffqiSM1dZCTGl09zSsesNABr0/s16000/page_1.jpg" /></a></div>Bienvenido a uno de los temas más interesantes, desafiantes e importantes en su formación de negocios. ¿Se pregunta qué hace que la estrategia de marketing tenga estas tres características? Para empezar, es interesante porque: 1) está inherentemente orientada a las personas, y 2) nunca es estática. Mezcla distinta de arte y ciencia, la estrategia de marketing trata de personas (dentro de una organización) que encuentran formas de entregar un valor excepcional para satisfacer las necesidades y deseos de otras personas (clientes, accionistas, socios de negocios, sociedad en general) y de la organización misma. La estrategia de marketing se fundamenta en la psicología, la sociología y la economía para entender mejor las necesidades y motivaciones básicas de estas personas, ya sea que se trate de los clientes de la organización (por lo general considerados los más críticos), sus empleados o sus grupos de interés. En resumen, la estrategia de marketing trata de personas que atienden a personas.<p></p><p>Por esta razón también es interesante, porque nunca es estática. El hecho simple es que las personas cambian. Una estrategia que funciona hoy podría resultar obsoleta mañana. Los productos que hoy son populares se olvidan a la siguiente semana. Estas obviedades son importantes porque entender realmente la estrategia de marketing significa aceptar el hecho de que existen pocas reglas concretas para desarrollar e implementar las actividades que le son propias. Dado el estado constante de variación en el entorno de marketing, es prácticamente imposible decir que dada “esta necesidad del cliente”, “estos competidores” y “este nivel de regulación gubernamental”, el producto A, el precio B, la promoción C y la distribución D producirán los mejores resultados. Marketing simplemente no funciona de esta forma. La falta de reglas concretas y los panoramas económico, sociocultural, competitivo, tecnológico, político y legal siempre cambiantes hacen de la estrategia de marketing un tema realmente fascinante.</p><p>Ahora que usted sabe por qué una estrategia de marketing es tan interesante, debe serle fácil visualizar por qué es tan desafiante. Una estrategia de marketing perfecta que se ejecuta sin fallas puede incluso fracasar. En ocasiones las organizaciones tienen suerte y son exitosas a pesar de una estrategia o ejecución decepcionantes. La naturaleza del marketing puede hacer que la planeación resulte bastante frustrante.</p><p>Finalmente, la importancia de la estrategia de marketing es innegable. Ninguna otra función de negocios se centra en desarrollar las relaciones con los clientes, el alma de todas las organizaciones (incluso de aquellas sin fines de lucro). Esta afirmación no menoscaba la importancia de todas las demás funciones de negocios, ya que todas son necesarias para que una organización sea exitosa. De hecho, la coordinación con otras funciones es crucial para el éxito de marketing. No obstante, también es un hecho que ninguna empresa puede sobrevivir sin clientes y programas de marketing para cultivar las relaciones con éstos.</p><h3 style="text-align: left;">Nuestro enfoque</h3><p>Dado el panorama descrito, Estrategia de marketing, 5a. ed. proporciona un enfoque práctico y directo para analizar, planear e implementar las estrategias de marketing. Nuestro enfoque se basa en el proceso creativo requerido para aplicar el conocimiento y los conceptos de marketing al desarrollo e implementación de dicha estrategia. La meta estriba en alentar a los estudiantes de la disciplina a pensar y actuar como mercadólogos. Al analizar los conceptos clave y las herramientas de la estrategia de marketing, nuestro énfasis en el pensamiento crítico, tanto analítico como creativo, permite a los estudiantes entender la esencia de cómo se conjuntan las decisiones de marketing para crear una estrategia congruente.</p><p>El enfoque de este libro también se fundamenta en el desarrollo y ejecución del plan de marketing. A lo largo de sus páginas proporcionamos un marco de referencia de planeación diligente basado en la realización de una profunda investigación de antecedentes, desarrollo de capacidades de mercado y ventajas competitivas, diseño de programas de marketing integrados y administración de las relaciones con el cliente a largo plazo. También destacamos la necesidad de ejercer una conducta de integridad en el proceso de planeación estratégica, así como de diseñar programas de marketing éticos y socialmente responsables. Del mismo modo, enfatizamos la importancia de integrar y coordinar las decisiones de marketing con otras decisiones de negocios funcionales como la clave para alcanzar la misión y visión generales de una organización. A lo largo del texto ofrecemos ejemplos de planeación e implementación exitosas para ilustrar la forma en que las empresas enfrentan los desafíos de la estrategia de marketing en la economía actual.</p><h3 style="text-align: left;">Propósito</h3><p>Visualizamos la planeación estratégica de marketing no sólo como un proceso para el logro de las metas organizacionales, sino también como un medio para construir relaciones a largo plazo con los clientes. Crear una orientación al cliente requiere imaginación, visión y esfuerzo, en especial en los entornos económico y tecnológico actuales sometidos a un vertiginoso cambio. Para responder a estos desafíos, en el texto enfocamos la estrategia de marketing considerando tanto las prácticas “tradicionales” como las “ultramodernas”. Cubrimos temas como la segmentación, la creación de ventajas competitivas, el desarrollo del programa de marketing y el proceso de implementación con un sólido cimiento en el marketing tradicional pero también con la mirada puesta en las prácticas emergentes. Las lecciones aprendidas del ascenso, caída y resurgimiento del sector punto com, los escándalos corporativos y la recesión económica más recientes ilustran la importancia de equilibrar las prácticas tradicionales con las emergentes en la estrategia de marketing. En el texto nunca perdemos de vista este equilibrio.</p><p>Aunque nuestro enfoque considera investigaciones y procesos de toma de decisiones sofisticados, hemos adoptado una perspectiva práctica que permite a los gerentes de marketing de una organización de cualquier tamaño desarrollar e implementar el plan de marketing. Evitamos material esotérico, abstracto y altamente académico que no se relaciona con las decisiones típicas de la estrategia de marketing adoptadas en la mayoría de las organizaciones. El marco de referencia del plan de marketing utilizado en todo el texto ha sido manejado por diversas organizaciones para planear con éxito sus estrategias de marketing. Muchas empresas reportan un gran éxito en el uso de nuestro enfoque debido en parte a la facilidad con que éste comunica el plan a todas las áreas funcionales de la organización.</p><h3 style="text-align: left;">Público meta</h3><p>El libro es pertinente para diversos ámbitos educativos, incluidos los universitarios, de licenciatura y posgrado, y los cursos de capacitación corporativa. A nivel licenciatura el texto es apropiado para materias básicas o para algún curso integrador de nivel superior, como administración de marketing, estrategia de marketing o política de marketing. En este grado proporciona un excelente marco de referencia dado que incluye tanto casos basados en el texto, como de clientes en vivo y simulación por computadora. A nivel posgrado el libro es apropiado para cátedras que abordan la planeación estratégica de marketing y las estrategias competitivas de marketing, o como complemento para un curso basado en simulación. Un segmento creciente del mercado, la formación corporativa, puede utilizar la obra cuando los profesionales en el negocio de la educación están interesados en desarrollar planes de marketing propios o interpretarlos e implementarlos para terceros.</p><p>Cada uno de los 20 casos incluidos en el libro describe situaciones estratégicas de organizaciones identificables en el mundo real. Como se exponen situaciones concretas, los instructores tienen la opción de utilizar el material del caso como está publicado o dar a los estudiantes la oportunidad de investigar para actualizar la información y acopiar datos más recientes. Muchos recursos adicionales para estudiantes y profesores pueden encontrarse en el sitio web de esta obra en <a href="http://latinoamerica.cengage.com/ferrell" rel="nofollow" target="_blank">http://latinoamerica.cengage.com/ferrell.</a></p>
<br />
<a name='more'></a>
<h3 style="text-align: left;">Indice</h3><h4 style="text-align: left;"><b>Parte 1 Preparando el escenario para la estrategia de marketing</b></h4><div><b>Capítulo 1</b></div><div>El marketing en la economía actual 1</div><div><b>Capítulo 2</b></div><div>Planeación estratégica de marketing 30</div><div><b>Capítulo 3</b></div><div>Ética y responsabilidad social en la planeación estratégica de marketing 60</div><div><br /></div><h4 style="text-align: left;"><b>Parte 2 Descubriendo las oportunidades del mercado</b></h4><div><b>Capítulo 4</b></div><div>Recolección y análisis de la información de marketing 87</div><div><b>Capítulo 5</b></div><div>Desarrollo de la ventaja competitiva y el enfoque estratégico 120</div><h4 style="text-align: left;">Parte 3 Desarrollando la estrategia de marketing</h4><div><b>Capítulo 6</b></div><div>Clientes, segmentación y mercados meta 152</div><div><b>Capítulo 7</b></div><div>Estrategia de producto 191</div><div><b>Capítulo 8</b></div><div>Estrategia de fijación de precios 229</div><div><b>Capítulo 9</b></div><div>Administración de la distribución y de la cadena de suministro 263</div><div><b>Capítulo 10</b></div><div>Comunicaciones integradas de marketing 291</div><h4 style="text-align: left;">Parte 4 Poniendo la estrategia en acción</h4><div><b>Capítulo 11</b></div><div>Implementación y control del marketing 323</div><div><b>Capítulo 12</b></div><div>Desarrollo y mantenimiento de relaciones a largo plazo con los clientes 354C O N T E N I D O B R E V E v</div><h4 style="text-align: left;">Parte 5 Casos</h4><div>Caso 1 Gillette: innovación de producto y marketing 387</div><div>Caso 2 Monsanto equilibra las necesidades e inquietudes de múltiples grupos de interés 401</div><div>Caso 3 nascar: un éxito de branding 414</div><div>Caso 4 Indy Racing League (irl) compite por el primer lugar 428</div><div>Caso 5 Blockbuster se esfuerza por sobrevivir ante la intensa competencia 436</div><div>Caso 6 Sigma Marketing: innovación en un entorno cambiante 447</div><div>Caso 7 Mattel: superando los retos de marketing y de manufactura 457</div><div>Caso 8 New Belgium Brewing (A): la responsabilidad social como ventaja competitiva 470</div><div>Caso 9 New Belgium Brewing (B): desarrollo de una personalidad de la marca 481</div><div>Caso 10 ikea busca ampliar su penetración en el mercado de Estados Unidos 491</div><div>Caso 11 USA Today: innovación y evolución en una industria atribulada 501</div><div>Caso 12 Hottie Hawg’s Smokin’ bbq acepta su futuro 518</div><div>Caso 13 FedEx: construcción de una potencia de distribución global 528</div><div>Caso 14 Mistine: venta directa en el mercado tailandés de cosméticos 541</div><div>Caso 15 bp se enfoca en la sustentabilidad para reconstruir su reputación 549</div><div>Caso 16 eHarmony (Harvard) 559</div><div>Caso 17 The Home Depot, Inc. (Harvard) 581</div><div>Caso 18 Molson Canadá: marketing en medios sociales (Ivey) 602</div><div>Caso 19 imax: más grande que la vida (Ivey) 615</div><div>Caso 20 Best Buy Inc.-branding dual en China (Ivey) 633</div><h4 style="text-align: left;">Parte 6 Herramientas para desarrollar el plan de marketing</h4>
<br />
<iframe height="500" src="https://drive.google.com/file/d/1hBHS9ZithTtPz8_MZrdnUsBNAcFaGS4S/preview" width="100%"></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (6 Mb)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1hBHS9ZithTtPz8_MZrdnUsBNAcFaGS4S"><img alt="Estrategia de marketing ( Quinta Edición) - O. C. Ferrell" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a>
<div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-88512341467007036242020-11-07T12:43:00.006-03:002020-11-07T12:51:05.836-03:00Mejor Hosting 2020 - WebEmpresa: ¿Tan bueno como dicen?<h2 style="text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmXnUBuzqp_5CH5oD03pBvyqvkTMrGtP12l7HboDynhXzCXkTqSDG02tKf1I10-rbgWQKa74lg9mknLT5-gH5DVAN5F-ydrBSq5zAFfVIcrbuMYFpUyCOappXCGGssLULGpcmYoVlWbO0/s416/unnamed.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="199" data-original-width="416" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmXnUBuzqp_5CH5oD03pBvyqvkTMrGtP12l7HboDynhXzCXkTqSDG02tKf1I10-rbgWQKa74lg9mknLT5-gH5DVAN5F-ydrBSq5zAFfVIcrbuMYFpUyCOappXCGGssLULGpcmYoVlWbO0/s16000/unnamed.jpg" /></a></div>Quienes son WebEmpresa?</h2><div>WebEmpresa es un hosting español que empezó su andadura hace más de 20 años. Con el tiempo se han convertido es uno de los referentes del sector y ahora da servicio a más de 60.000 usuarios.
Según su sitio web uno de sus puntos fuertes es la atención al usuario: prometen un tiempo de respuesta menor a 30 minutos y dicen actuar de inmediato si tu página web “se cae” de la red. El hosting de Webempresa tiene un equipo de ayuda y soporte online disponible las 24 horas del día durante todo el año.
Dicen ser expertos en los sistemas de WordPress, WooCommerce y Joomla por lo que si piensas usar alguno de estos, Webempresa es una de las opciones a tener en cuenta.
Webempresa tiene fama de ser uno de los hostings de más calidad, ¿pero puedes confiar en esta reputación? Conoce nuestras opiniones de Webempresa, y échale un ojo a nuestros test. Así te aseguras que Webempresa es el proveedor de hosting ideal para tu proyecto y no te encontrarás con sorpresas desagradables.</div><div><div class="separator" style="clear: both;"><a href="https://clientes.webempresa.com/america/gestion/aff.php?aff=2943&landing=hosting_wordpress" style="display: block; margin-left: 1em; margin-right: 1em; padding: 1em 10px; text-align: center;"><img alt="servidores wordpress" border="0" height="333" src="https://afiliados.webempresa.eu/wordpress_300x250_pruebagratis.gif" title="Hosting web" width="400" /></a></div></div><div><h2 style="text-align: left;">Web Empresa Hosting Características</h2><div>En este apartado analizaremos las principales características de WebEmpresa con respecto a los aspectos que se toman en cuenta dentro de los servicios brindados:</div><div><br /></div><h3 style="text-align: left;">Autogestión</h3><div>En muchas ocasiones, sucede que no tienes el conocimiento suficiente o el tiempo para configurar manualmente toda la parte técnica que se involucra en la creación de los sitios web. Es por ello que WebEmpresa Hosting pone a tu disposición paquetes automáticos de instalación para que utilices los gestores de contenidos más eficaces como por ejemplo WordPress.</div><div><br /></div><h3 style="text-align: left;">WebEmpresas y Seguridad</h3><div>Sin duda los sistemas de seguridad de una empresa de hosting son realmente importantes para un funcionamiento sin problemas. Si este aspecto se encuentra por debajo de los estándares, todos tus sitios se volverán vulnerables frente al spam, hackeo o robo de información. Es por ello que en esta era de Web Empresa 2.0, se han tomado medidas de excelencia, como por ejemplo:</div><div><br /></div><div>Actualizaciones diarias de los servidores utilizados de WordPress, Joomla y Prestashop.</div><div>CloudLinux: Sistema que mantiene a todas las cuentas de hosting aisladas.</div><div>Sistema Anti Hack: Dispone de un equipo completo de profesionales combinados con las últimas tecnologías en materia de seguridad que previene los hackeos.</div><div>Copias de Seguridad: Con el objetivo de evitar pérdidas totales de información de los sitios, los servidores de WebEmpresa realizan backups aproximadamente cada 4 horas.</div><div><br /></div><a href="https://clientes.webempresa.com/america/gestion/aff.php?aff=2943&landing=ciberprotector"><img src="https://afiliados.webempresa.eu/banner_cp_afiliados_728x90.png" width="728" height="90" border="0" alt="ciberprotector"></a><h3 style="text-align: left;">Velocidad del Hosting WebEmpresa</h3><div>Decididamente, la velocidad es otro de los factores importantes, ya que hará que los sitios que posees carguen rápido o lento. En el caso de Web Empresa España, se incorporan diferentes herramientas para aumentar al máximo la velocidad disponible, entre otros:</div><div><br /></div><div>Discos SSD.</div><div>Sistema de imágenes optimizadas.</div><div>Servidores optimizados.</div><div>99,9% de disponibilidad online.</div><div>Web Empresa Español: Soporte Técnico y Atención al Cliente</div><div><br /></div><div>Uno de los cuestionamientos que podemos ver en los hosting principales es con respecto al idioma del soporte personalizado y especializado, gran parte de las empresas del mercado no disponen de atención en español, sin embargo y para tranquilidad de los clientes, con esta empresa puedes comunicarte las 24 horas del día, los 7 día de la semana con el soporte en español. Además si quieres sacarte dudas básicas o hacer consultas puedes participar del foro Web Empresa.</div></div><div><br /></div><h2 style="text-align: left;">Resumen y Conclusiones sobre WebEmpresa</h2><div>Es mejor Hosting y más barato que encontré, realmente nunca tuve un problema.</div><div>Tienen tutoriales, un sistema automático que te hace un chequeo completo, un excelente soporte y ticketera.</div><div>Si estas montando un web o ecommerce en wordpress, prestashop, joomla, entre otros, realmente lo recomiendo, dentro del paquete tenes 1 dominio free!.</div><div>Dejo un enlace con una prueba gratuita de 30 días para que lo prueben.</div><div><br /></div><div style="text-align: center;"><b><a href="https://clientes.webempresa.com/america/gestion/aff.php?aff=2943&landing=hosting_wordpress" rel="nofollow" target="_blank"><span style="font-size: large;">Prueba el hosting de WebEmpresa sin compromiso durante 30 días</span></a></b></div><div style="text-align: center;"><span style="font-size: medium;"><br /></span></div>
<a href="https://clientes.webempresa.com/america/gestion/aff.php?aff=2943&landing=hosting_wordpress"><img alt="alojamiento wordpress" border="0" height="90" src="https://afiliados.webempresa.eu/wordpress_728x90_pruebagratis.gif" title="Hosting 100% Wordpress" width="728" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-30660095076058282102020-11-05T09:18:00.003-03:002020-11-07T12:52:46.227-03:00OXFORD - Test de Admisión para la Universidad de OXFORD<h2 style="text-align: center;">
Test de Admisión para la Universidad de OXFORD
</h2>
<div><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs2IlnABy_3Drl2KVl7SAc9Rh3KKDqiZPsro12KLeHW38xAc_ZYRF-p2gOOCM1rHnYkkCntkJV9-JPFC6HNIq0ZYYSgTB5gsm1gUTLRHlcrOo9OAo4Js1vjvU_ke6f24cv5Z8pRmVGux0/s1280/maxresdefault.jpg"
imageanchor="1"
style="margin-left: 1em; margin-right: 1em;"
><img
border="0"
data-original-height="720"
data-original-width="1280"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs2IlnABy_3Drl2KVl7SAc9Rh3KKDqiZPsro12KLeHW38xAc_ZYRF-p2gOOCM1rHnYkkCntkJV9-JPFC6HNIq0ZYYSgTB5gsm1gUTLRHlcrOo9OAo4Js1vjvU_ke6f24cv5Z8pRmVGux0/s320/maxresdefault.jpg"
width="320"
/></a>
</div>
<div class="separator" style="clear: both; text-align: center;"><br /></div>
<div class="separator" style="clear: both; text-align: left;">
Les traemos el examen de admisión que tienen que realizar todos los
ingresantes a la universidad de OXFORD.
</div>
<div class="separator" style="clear: both; text-align: left;"><br /></div>
<div class="separator" style="clear: both; text-align: left;">
El documento se encuentra en 100% en ingles.
</div>
<div class="separator" style="clear: both; text-align: left;"><br /></div>
<div class="separator" style="clear: both; text-align: left;">
Se tienen que aplicar conocimientos de Matemática, Estadística, Ciencia de la
Computación, Matemática + Ciencia de la Computación y Matemática y Filosofía.
</div>
<div class="separator" style="clear: both; text-align: left;"><br /></div>
<div class="separator" style="clear: both; text-align: left;">
Tienen 2 horas y media para completar un total de 7 preguntas (con subpuntos,
"por su puesto") que abarcan todos los temas mencionadas anteriormente.
</div>
<div class="separator" style="clear: both; text-align: left;"><br /></div>
<div class="separator" style="clear: both; text-align: left;">
Te animas a realizarlo???
</div>
<div><br /></div>
<a name='more'></a>
<br />
<br />
<iframe
height="500"
src="https://drive.google.com/file/d/1e6m_uIk3YPKipbcm9qGA2LQijDZpiqlc/preview"
width="100%"
></iframe>
<br />
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Ingles<br />
<b>Peso</b>: (170 KB)<br />
<br />
<a
href="https://docs.google.com/uc?export=download&id=1e6m_uIk3YPKipbcm9qGA2LQijDZpiqlc"
><img
alt="Test de Admisión para la Universidad de OXFORD"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png"
style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;"
/></a>
<div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-6887732103500805072019-10-13T15:43:00.002-03:002019-10-13T15:43:58.546-03:00HIBERNATE - Persistencia relacional para Java idiomático<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpOwhiSJyRKhi65btZJp1uq-YSWLh8UrkUSP_NIX-3VeUiBIPtCHKMqttP4Eg8fIukoTakidTT53sHouDVjI0fdLu4-PehvTTOYvlZeQmSkVO3OFMSKGcjDKBQwBNjF53GTK-0UrrHX78/s1600/Sin+t%25C3%25ADtulo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="416" data-original-width="427" height="311" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpOwhiSJyRKhi65btZJp1uq-YSWLh8UrkUSP_NIX-3VeUiBIPtCHKMqttP4Eg8fIukoTakidTT53sHouDVjI0fdLu4-PehvTTOYvlZeQmSkVO3OFMSKGcjDKBQwBNjF53GTK-0UrrHX78/s320/Sin+t%25C3%25ADtulo.png" width="320" /></a></div>
Dirigido a los nuevos usuarios, este capítulo brinda una introducción a Hibernate paso por paso, empezando con una aplicación simple usando una base de datos en memoria. Este tutorial se basa en un tutorial anterior que Michael Gloegl desarrolló<br />
<br />
Este tutorial se basa en que el usuario tenga conocimiento de Java y SQL. Si tiene un conocimiento muy limitado de JAVA o SQL, le aconsejamos que empiece con una buena introducción a esta tecnología antes de tratar de aprender sobre Hibernate.<br />
<div>
<br /></div>
<br /><br /><br />
<iframe height="500" src="https://drive.google.com/file/d/1m2YSWi6uD5-AAs-3aXCL8HLfXYrgT18u/preview" width="100%"></iframe>
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (2.11 MB)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1m2YSWi6uD5-AAs-3aXCL8HLfXYrgT18u"><img alt="HIBERNATE - Persistencia relacional para Java idiomático" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a>
<div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.comtag:blogger.com,1999:blog-6090106808451832991.post-74659601026912838072019-07-27T23:57:00.003-03:002019-07-27T23:57:21.548-03:00Hacking Kali Linux - Curso Virtual por C. Alonso<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt5OkNJw_loQMU68arZj7Tt2EmLDTQf5b6IQgcoVnMqMjhBu0K2BGUMEkltjO0k1aYFNwqlBBu_qN9gxCYMfMcc3vFG3XLAxcugCC9KtBkf_pM-aRNd7FTFdpZSlBMyIxgptMtvmahtA8/s1600/1495198093_Kali_Linux_v2_ReYDeS.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1122" data-original-width="793" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt5OkNJw_loQMU68arZj7Tt2EmLDTQf5b6IQgcoVnMqMjhBu0K2BGUMEkltjO0k1aYFNwqlBBu_qN9gxCYMfMcc3vFG3XLAxcugCC9KtBkf_pM-aRNd7FTFdpZSlBMyIxgptMtvmahtA8/s320/1495198093_Kali_Linux_v2_ReYDeS.jpg" width="226" /></a></div>
<b>“KALI LINUX ™ is a trademark of Offensive Security.”</b><br />
<br />
<b>Sobre el Instructor</b><br />
<br />
Alonso Eduardo Caballero Quezada es Brainbench Certified Network Security (Master), Computer Forensics (U.S.) & Linux Administration (General), IT Masters Certificate of Achievement en Network Security Administrator, Hacking Countermeasures, Cisco CCNA Security, Information Security Incident Handling y Miembro de Open Web Application Security Project (OWASP). Ha sido Instructor en el OWASP LATAM Tour Lima, Perú del año 2014, y Conferencista en PERUHACK 2014. Cuenta con más de doce años de experiencia en el área y desde hace ocho años labora como Consultor e Instructor Independiente en las áreas de Hacking Ético & Informática Forense. Perteneció por muchos años al grupo internacional de Seguridad RareGaZz e integra actualmente el Grupo Peruano de Seguridad PeruSEC. Ha dictado cursos en Perú y Ecuador, presentándose también constantemente en exposiciones enfocadas a, Hacking Ético, Informática Forense, GNU/Linux y Software Libre. Su correo electrónico es ReYDeS@gmail.com y su página personal está en: <a href="http://www.reydes.com%20/">http://www.ReYDeS.com </a><br />
<br />
<br />
<b>Temario</b><br />
<br />
Material Necesario ................................................................................................................................ 4<br />
<br />
1. Metodología de una Prueba de Penetración ..................................................................................... 5<br />
<br />
2. Máquinas Vulnerables ....................................................................................................................... 7<br />
<br />
3. Introducción a Kali Linux ................................................................................................................... 9<br />
<br />
4. Shell Scripting .................................................................................................................................. 12<br />
<br />
5. Capturar Información ....................................................................................................................... 13<br />
<br />
6. Descubrir el Objetivo ....................................................................................................................... 23<br />
<br />
7. Enumerar el Objetivo ....................................................................................................................... 29<br />
<br />
8. Mapear Vulnerabilidades ................................................................................................................. 39<br />
<br />
9. Explotar el Objetivo ......................................................................................................................... 44<br />
<br />
10. Atacar Contraseñas ....................................................................................................................... 65<br />
<br />
11. Demostración de Explotación & Post Explotación ......................................................................... 71<br />
<br />
<br />
<b>Material Necesario</b><br />
<br />
Para desarrollar adecuadamente el presente Curso, se sugiere al participante instalar y configurar las<br />
máquinas virtuales de Kali Linux y Metasploitable 2 con VMware Player, u otro software de<br />
virtualización.<br />
<br />
• <b><i>Máquina virtual de Kali Linux 1.1.0c</i></b><br />
<br />
<i>Link de Descarga:</i> <a href="http://images.kali.org/Kali-Linux-1.1.0c-vm-486.7z">http://images.kali.org/Kali-Linux-1.1.0c-vm-486.7z</a><br />
<br />
Nombre del Archivo: Kali-Linux-1.1.0c-vm-486.7z<br />
<br />
• <b><i>Metasploitable 2.</i></b><br />
<br />
<b>Link de Descarga:</b> <a href="http://sourceforge.net/projects/metasploitable/files/Metasploitable2/">http://sourceforge.net/projects/metasploitable/files/Metasploitable2/</a><br />
<br />
Nombre del Archivo: metasploitable-linux-2.0.0.zip<br />
<br />
• <b><i>Software de Virtualización</i></b><br />
<br />
VMware Player<br />
<br />
<i>Link de Descarga:</i> <a href="https://my.vmware.com/web/vmware/downloads">https://my.vmware.com/web/vmware/downloads</a><br />
<br />
Nombre del Archivo: VMware-player-7.1.2-2780323.exe<br />
<br />
<br />
<b>1. Metodología de una Prueba de Penetración</b><br />
<br />
Una Prueba de Penetración es el proceso utilizado para realizar una evaluación o auditoría de<br />
seguridad de alto nivel. Una metodología define un conjunto de reglas, prácticas, procedimientos y<br />
métodos a seguir e implementar durante la realización de cualquier programa de auditoría en<br />
seguridad de la información. Una metodología de pruebas de penetración define una hoja de ruta con<br />
ideas útiles y prácticas comprobadas, las cuales deben ser manejadas cuidadosamente para poder<br />
evaluar correctamente los sistemas de seguridad.<br />
<br />
<b>1.1 Tipos de Pruebas de Penetración:</b><br />
<br />
Existen diferentes tipos de Pruebas de Penetración, las más comunes y aceptadas son las Pruebas<br />
de Penetración de Caja Negra (Black-Box), las Pruebas de Penetración de Caja Blanca (White-Box) y<br />
las Pruebas de Penetración de Caja Gris (Grey-Box)<br />
<br />
<b><i>• Prueba de Caja Negra. </i></b><br />
<br />
No se tienen ningún tipo de conocimiento anticipado sobre la red de la organización. Un<br />
ejemplo de este escenario es cuando se realiza una prueba externa a nivel web, y está es<br />
realizada solo con el detalle de una URL o dirección IP proporcionado al equipo de pruebas.<br />
Este escenario simula el rol de intentar irrumpir en el sitio web o red de la organización. Así<br />
mismo simula un ataque externo realizado por un atacante malicioso.<br />
<br />
<b><i>• Prueba de Caja Blanca.</i></b><br />
<br />
El equipo de pruebas cuenta con acceso para evaluar las redes y ha sido dotado de<br />
diagramas de la red y detalles sobre el hardware, sistemas operativos, aplicaciones, entre otra<br />
información antes de realizar las pruebas. Esto no iguala a una prueba sin conocimiento, pero<br />
puede acelerar el proceso en gran magnitud con el propósito de obtener resultados más<br />
precisos. La cantidad de conocimiento previo conduce a realizar las pruebas contra sistemas<br />
operativos específicos, aplicaciones y dispositivos de red que residen en la red, en lugar de<br />
invertir tiempo enumerando lo que podría posiblemente estar en la red. Este tipo de prueba<br />
equipara una situación donde el atacante puede tener conocimiento completo de la red<br />
interna.<br />
<br />
<b><i>• Prueba de Caja Gris</i></b><br />
<br />
El equipo de pruebas simula un ataque realizado por un miembro de la organización<br />
inconforme o descontento. El equipo de pruebas debe ser dotado con los privilegios<br />
adecuados a nivel de usuario y una cuenta de usuario, además de permitirle acceso a la red<br />
interna.<br />
<br />
<b>1.2 Evaluación de Vulnerabilidades y Prueba de Penetración.</b><br />
<br />
Una evaluación de vulnerabilidades es el proceso de evaluar los controles de seguridad interna y<br />
externa para identificar las amenazas que planteen una seria exposición para los activos de la<br />
organización.<br />
<br />
La principal diferencia entre una evaluación de vulnerabilidades y una prueba de penetración, radica<br />
en que las pruebas de penetración van más allá del nivel de únicamente identificar vulnerabilidades, y<br />
van hacia el proceso de su explotación, escalar privilegios, y mantener el acceso en el sistema<br />
objetivo. Mientras que la evaluación de vulnerabilidades proporciona una amplia visión de las fallas<br />
existentes en los sistemas, pero sin medir el impacto real de estas para los sistemas en<br />
consideración.<br />
<br />
<b>1.3 Metodologías de Pruebas de Seguridad</b><br />
<br />
Existen diversas metodologías open source que tratan de conducir o guiar los requerimientos de las<br />
evaluaciones en seguridad. La idea principal de utilizar una metodología durante la evaluación, es<br />
ejecutar diferentes tipos de pruebas paso a paso para poder juzgar con mucha precisión la seguridad<br />
de un sistema. Entre estas metodologías se enumeran las siguientes:<br />
<br />
•<b><i> Open Source Security Testing Methodology Manual (OSSTMM) </i></b><br />
<a href="http://www.isecom.org/research/">http://www.isecom.org/research/</a><br />
<br />
• <b><i>The Penetration Testing Execution Standard (PTES)</i></b><br />
<a href="http://www.pentest-standard.org/">http://www.pentest-standard.org/</a><br />
<br />
• <b><i>Penetration Testing Framework</i></b><br />
<a href="http://www.vulnerabilityassessment.co.uk/Penetration%20Test.html">http://www.vulnerabilityassessment.co.uk/Penetration%20Test.html</a><br />
<br />
• <b><i>OWASP Testing Guide</i></b><br />
<a href="https://www.owasp.org/index.php/Category:OWASP_Testing_Project">https://www.owasp.org/index.php/Category:OWASP_Testing_Project</a><br />
<br />
• <i><b>Technical Guide to Information Security Testing and Assessment (SP 800-115)</b></i><br />
<a href="http://csrc.nist.gov/publications/PubsSPs.html">http://csrc.nist.gov/publications/PubsSPs.html</a><br />
<br />
•<b><i> Information Systems Security Assessment Framework (ISSAF) [No disponible]</i></b><br />
<a href="http://www.oissg.org/issaf">http://www.oissg.org/issaf</a><br />
<br />
<b>2. Máquinas Vulnerables</b><br />
<b>2.1 Maquinas Virtuales Vulnerables</b><br />
<br />
Nada mejor que tener un laboratorio para practicar los conocimientos adquiridos sobre Pruebas de<br />
Penetración. Esto aunado a la facilidad proporciona por el software de virtualización, hace bastante<br />
sencillo crear una máquina virtual vulnerable personalizada o descargar desde Internet una máquina<br />
virtual vulnerable.<br />
<br />
A continuación se detalla un breve listado de algunas máquinas virtuales creadas especialmente con<br />
vulnerabilidades, las cuales pueden ser utilizadas para propósitos de entrenamiento y aprendizaje en<br />
temas relacionados a la seguridad, hacking ético, pruebas de penetración, análisis de<br />
vulnerabilidades, informática forense, etc.<br />
<br />
<b><i>• Metasploitable</i></b><br />
<i>Link de Descarga:</i><br />
<i><a href="http://sourceforge.net/projects/virtualhacking/files/os/metasploitable/Metasploitable-05-">http://sourceforge.net/projects/virtualhacking/files/os/metasploitable/Metasploitable-05-</a></i><br />
<i><a href="http://2010.zip/download">2010.zip/download</a></i><br />
<br />
<b><i>• Metasploitable2</i></b><br />
<i>Link de Descarga: </i><br />
<a href="http://sourceforge.net/projects/metasploitable/files/Metasploitable2/metasploitable-linux-">http://sourceforge.net/projects/metasploitable/files/Metasploitable2/metasploitable-linux-</a><br />
<a href="http://2.0.0.zip/download">2.0.0.zip/download</a><br />
<br />
<b><i>• Kioptrix Level 1</i></b><br />
<i>Link de Descarga: </i><a href="http://www.kioptrix.com/dlvm/Kioptrix_Level_1.rar">http://www.kioptrix.com/dlvm/Kioptrix_Level_1.rar</a><br />
<br />
<br />
<br />
<iframe height="500" src="https://drive.google.com/file/d/1jTWvybFW1_KAlPdsoaN6BywTfin4yXOr/preview" width="100%"></iframe>
<br />
<b>Hosting</b>: Drive (Descarga Directa Para Desktop y Mobile)<br />
<b>Archivo</b>: Pdf<br />
<b>Idioma</b>: Español<br />
<b>Peso</b>: (3.17 MB)<br />
<br />
<a href="https://docs.google.com/uc?export=download&id=1jTWvybFW1_KAlPdsoaN6BywTfin4yXOr"><img alt="Hacking Kali Linux - Curso Virtual por C. Alonso" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RqsHJTw_jJXc_TBtyfCphENkNrGdxleWozV8B2XmEdciyxVu_1QOffKFJzH_0ht3neDKz_PDFeKO6NbV5LelHv9t3-IpRUOdJcucSypDQ9s6Q3gHy_HnVTbIqDDkoscc-cFS1B-bq9o/s200/descargar1.png" style="background-color: transparent; border-style: none; margin: 0px; padding: 0px;" /></a><div class="blogger-post-footer">Fuente: https://www.bibliadelprogramador.com/</div>Adminhttp://www.blogger.com/profile/01300165215172339017noreply@blogger.com