lunes, mayo 05, 2025

Método sencillo de cálculo de subredes y máscaras IPv4


Está Escrito:

 No entres en la senda de los impíos, ni vayas por el camino de los malvados. (Proverbios 4:14)

Visión general creada por IA

Para calcular la cantidad de subredes en una red IP, necesitas determinar cuántos bits de la dirección IP se están utilizando para identificar la subred. Luego, puedes usar la fórmula 2^n, donde n es el número de bits de subred, para calcular el número total de subredes posibles. 

Pasos para calcular la cantidad de subredes:

  1. 1. Identifica la máscara de subred:
    La máscara de subred indica cuántos bits de la dirección IP se utilizan para la red y la subred. Por ejemplo, una máscara de subred /24 significa que 24 bits de la dirección IP se utilizan para la red y los 8 bits restantes se utilizan para el host. 

  2. 2. Determina los bits de subred:
    Si vas a crear subredes, vas a "robar" bits de la parte del host de la máscara de subred y usarlos para la subred. Por ejemplo, si empiezas con una máscara /24 y quieres crear subredes, podrías "robar" 1 bit para tener una máscara /25. En este caso, 1 bit es el número de bits de subred.  

  3. 3. Utiliza la fórmula 2^n:
    Una vez que conoces el número de bits de subred (n), puedes calcular el número total de subredes posibles utilizando la fórmula 2^n. 
    • Por ejemplo, si tienes 1 bit de subred (n=1), el número de subredes posibles sería 2^1 = 2. 
    • Si tienes 2 bits de subred (n=2), el número de subredes posibles sería 2^2 = 4. 
Ejemplo:
Supongamos que tienes una red IP con la dirección 192.168.1.0/24. 
  1. 1. Máscara de subred:
    /24, lo que significa que 24 bits se utilizan para la red y 8 bits se utilizan para el host.
  2. 2. Bits de subred:
    Si quieres crear subredes, puedes "robar" 1 bit de la parte del host y convertir la máscara a /25. En este caso, 1 bit es el número de bits de subred.
  3. 3. Fórmula:
    Utilizando la fórmula 2^n, donde n = 1, el número total de subredes posibles sería 2^1 = 2. Esto significa que puedes crear 2 subredes con la máscara /25.
En resumen: Para calcular la cantidad de subredes, determina cuántos bits de la dirección IP se están utilizando para la subred y luego usa la fórmula 2^n. 

Tomado de: interlir
En el ámbito de la ingeniería y la administración de redes, es fundamental saber cómo subdividir eficazmente las redes IP en segmentos más pequeños y manejables, lo que se conoce como subredes. Con la llegada del espacio de direcciones limitado de IPv4, la creación de subredes se ha convertido en una habilidad esencial para optimizar el uso de las direcciones IP.

Conceptos básicos de la creación de subredes IPv4

Las direcciones IPv4 constan de 32 bits, normalmente representados en formato decimal como cuatro octetos separados por puntos (por ejemplo, 192.168.1.1). La división en subredes consiste en dividir una red en redes más pequeñas (subredes) para mejorar la gestión y la seguridad de la red. Esta división se consigue mediante la máscara de subred, que determina cuántos bits se utilizan para la parte de red y cuántos para la parte de host de una dirección.

El sencillo método de subredes en 6 pasos

Para simplificar la creación de subredes, siga este sencillo método de seis pasos, que puede aplicarse a cualquier dirección IPv4:

Paso 1: Buscar el número de subred

  1. Resta el número del prefijo de /32: por ejemplo, para un prefijo /29, es 32 – 29 = 3.
  2. Calcular la máscara de subred: Convierte los bits restantes a binario y súmalos para hallar la máscara de subred.

Paso 2: Determinar el tamaño de la subred

  1. Calcula el tamaño de la subred: Utiliza la fórmula 2^n (donde n es el número de bits de host) para saber cuántas direcciones hay en cada subred.

Paso 3: Identificar la dirección de difusión

  1. Reste 1 al tamaño de la subred: Esto le da la dirección de difusión de la subred.

Paso 4: Localizar la subred de la dirección IP

  1. Identifica en qué bloque de subred se encuentra la dirección IP: Esto determina el rango de direcciones host válidas.

Paso 5: Calcular los hosts válidos

  1. Determine el número de hosts válidos por subred: Restar 2 al tamaño de la subred (para las direcciones de red y de difusión).

Ejemplo

Siguiendo este método, los detalles de la subred para la dirección IP 10.20.4.13 con un prefijo /29 son los siguientes:

  1. Dirección de subred: 10.20.4.8/29
  2. Primera dirección de host válida: 10.20.4.9
  3. Última dirección de host válida: 10.20.4.14
  4. Dirección de difusión: 10.20.4.15
  5. Máscara de subred: 255.255.255.248

Tabla de máscaras de subred de longitud variable (VLSM)

Una máscara de subred de longitud variable (VLSM, Variable Length Subnet Mask) permite utilizar máscaras de subred de longitud variable dentro de la misma red, lo que proporciona más flexibilidad y eficacia en la asignación de direcciones IP. He aquí un breve resumen:

Tamaño del prefijoMáscara de redHosts utilizables por subred
/1128.0.0.02,147,483,646
/2192.0.0.01,073,741,822
/3224.0.0.0536,870,910
/4240.0.0.0268,435,454
/5248.0.0.0134,217,726
/6252.0.0.067,108,862
/7254.0.0.033,554,430
Clase A
/8255.0.0.016,777,214
/9255.128.0.08,388,606
/10255.192.0.04,194,302
/11255.224.0.02,097,150
/12255.240.0.01,048,574
/13255.248.0.0524,286
/14255.252.0.0262,142
/15255.254.0.0131,070
Clase B
/16255.255.0.065,534
/17255.255.128.032,766
/18255.255.192.016,382
/19255.255.224.08,190
/20255.255.240.04,094
/21255.255.248.02,046
/22255.255.252.01,022
/23255.255.254.0510
Clase C
/24255.255.255.0254
/25255.255.255.128126
/26255.255.255.19262
/27255.255.255.22430
/28255.255.255.24014
/29255.255.255.2486
/30255.255.255.2522
/31255.255.255.2540 (uso especial)
/32255.255.255.2550 (host único)

Conclusión

La creación de subredes es una habilidad crítica en el diseño y gestión de redes, ya que permite un uso eficiente de las direcciones IP y una mayor seguridad de la red. Dominando el sencillo método de seis pasos descrito anteriormente, los administradores e ingenieros de red pueden simplificar el proceso de creación de subredes. Recuerde que la práctica es la clave para dominar el cálculo de subredes y máscaras. Con estas herramientas y métodos, navegar por las complejidades de las redes IPv4 se convierte en una tarea más manejable y sencilla.

martes, marzo 25, 2025

He dejado de instalar ROMs personalizadas. La razón: Android es mejor sistema que nunca

 Está Escrito:

De tus preceptos recibo entendimiento, por tanto aborrezco todo camino de mentira. (Salmos 119:104)

Tomado de: xataka

Me sigue encantando el mundillo de las ROMs personalizadas. Pero cada vez estoy más fuera de ellas, Hubo un tiempo en el que prácticamente en cuanto sacaba un móvil de la caja, le cambiaba la ROM. A veces no era posible, ya que el dispositivo era muy nuevo y no tenía apenas comunidad detrás. Pero, en la mayoría de ocasiones, abrir HTCmania o XDA era un paraíso de opciones para personalizar el sistema operativo de mi teléfono.

Eran otros tiempos. Android ha tenido una evolución sencillamente espectacular en los últimos años. No solo a nivel de hardware, sino en todo lo relativo al sistema operativo. Hablar de MIUI, EMUI o TouchWiz hace diez años me da ciertos escalofríos: eran sistemas terribles, comparando con lo que tenemos a día de hoy.

La comunidad estaba mucho más viva. La época de CyanogenMOD, Paranoid Android y demás ROMs se vivió con bastante furor desde dentro. ROMs más actualizadas que las del propio fabricante, esa limpieza que nos alejaba de las pesadísimas ROMs que había por aquel entonces...

Cambiar la ROM era ganar en actualizaciones, fluidez e incluso funcionalidades -personalización, apps propias de las ROMS-, en la inmensa mayoría de casos.

No había tantas trabas con el bootloader. Cambiar la ROM tiene una importante barrera de acceso: desbloquear el bootloader. Hace unos años, salvando casos particulares como el de Samsung con su programa ODIN, la mayoría de teléfonos podían desbloquearse de forma sencilla. Algunos, incluso con un par de comandos.

A día de hoy, la cosa ha cambiado. Por ejemplo, para cambiar la ROM a un Xiaomi tenemos que esperar la friolera de 168h, una semana completa tan solo para poder desbloquear el bootloader.

Fabricantes como Google empiezan a poner trabas, capando funciones de IA en el caso de que desbloqueemos el bootloader -un problema si queremos hacer root, pero no cambiar la ROM- y, en general, todo es mucho más difícil que antes.

Las ROMs, cada vez más completas. Quien me iba a decir hace unos años que la ROM de Samsung iba a ser una de mis preferidas. Este es tan solo un ejemplo de cómo ha cambiado el software con el paso de los años, vitaminándose con funciones de IA y aplicaciones nativas de cada vez mayor calidad.

oid en un Pixel, se me empiezan a acabar las razones -lo cual no significa que no siga habiendo- para destinar el tiempo que requiere a cambiar la ROM.

En mi caso particular. Por pura nostalgia, sigo con varios teléfonos que tienen ROMs. Un POCO F3 con Pixel Experience y hasta arriba de módulos de Xposed, un Pixel 6 con GrapheneOS... Pero, más allá de la curiosidad, cada vez me cuesta más animarme a instalar una Custom ROM en mi móvil personal.

Te invitamos a contarnos tu historia y actual relación con las ROMs, un mundillo en el que hay menos interés que hace unos años, pero que se resiste a morir.

De Interes... Links xdaforums, sourceforge, Archive


Así revive el Samsung Galaxy S5 con LineageOS: la importancia de las ROMs en móviles desactualizados

¿Cómo revivir un teléfono que quedó en Android 6 y que lleva varios años sin recibir actualizaciones de seguridad? Instalar una ROM cocinada es la única opción, como he hecho con mi Samsung Galaxy S5. Tras analizar el teléfono tal y cómo quedó en su momento, he decidido refrescarlo con LineageOS y Android 9 Pie. El experimento ha resultado ser mejor de lo esperado.

Ser un enfermo de la tecnología suele despertar el ansia de renovar el teléfono móvil más a menudo de lo necesario. Es lo que me lleva ocurriendo desde que empecé a ganar dinero por mí mismo: me sería imposible decir de memoria todos los móviles que han pasado por mis manos. La mayoría los he ido vendiendo, otros los regalé a mi familia y amigos. Unos pocos quedaron en el cajón a la espera de tener una nueva vida, como es el caso del Samsung Galaxy S5, un smartphone que, como suele a ocurrirle a las viejas glorias, quedó completamente desactualizado. Por suerte, resulta posible salvar el abismo temporal con ayuda de los desarrolladores. En mi caso, gracias a LineageOS.

El Samsung Galaxy S5 actualizado a Android 9 Pie

Samsung Galaxy S5 Lineageos

Aún hoy sigue siendo un móvil potente por más que muchos smartphones de gama media actuales (y nuevos) le sobrepasen en prestaciones. Y la experiencia con LineageOS oficial en su versión 16 (Android 9 Nightly) ha resultado ser muy buena: no he echado de menos nada. El aspecto de la interfaz es de stock (¿quién querría tener aún TouchWiz?), el funcionamiento es fluido a pesar de algunas ralentizaciones en la configuración y no me he topado con errores reseñables. En definitiva: sorprende lo bien que sigue funcionando un teléfono desactualizado cuando se le instala un software reciente que se adapta a sus necesidades. Eso sí, no hay que olvidar que en su época era un gama alta, por eso ha envejecido más o menos bien.

Con Android 6 y TouchWiz el Samsung Galaxy S5 no iba mal, pero el aspecto del teléfono se notaba terriblemente antiguo. Además, la enorme cantidad de apps y servicios de Samsung ralentizaban el teléfono, se quedó sin parches de seguridad y en una versión de Android de hace más de cuatro años. Flashearle LineageOS 16 (Nightly) ha supuesto un gran refresco, mayor velocidad, seguridad y la garantía de que puedo seguir instalando aplicaciones a pesar de que el teléfono tenga 6 años. Que se dice pronto.

Samsung Galaxy S5 LineageosEl Samsung Galaxy S5 con su software original: TouchWiz

A nivel general las mejoras son notables, tanto en rendimiento como en velocidad, también en consumo de energía (es lo que más acusa el teléfono tras estar años sin usarse). Eso sí, hay un problema que no puede solucionarse: pese a que el software que aporta LineageOS 16 es reciente, y que Android 9 Pie no cierra la puerta a las apps y juegos actuales, el Snapdragon 801 es un procesador de 32 bits, una arquitectura ya vetusta que impide la instalación de algunas aplicaciones. Por ejemplo, no he encontrado una cámara de Google que funcione, ni siquiera una Gcam que estaba adaptada específicamente para procesadores de 32 bits. Fortnite no es compatible, por ejemplo, tampoco benchmarks como Geekbench. No es un grave problema teniendo en cuenta el logro de llevar Android 9 Pie a un móvil de 2014, pero sí un inconveniente notorio.

ROMs, el único recurso cuando el fabricante falla

Samsung Galaxy S5 LineageosCapturas de LineageOS en el Samsung Galaxy S5

No recomendaría la instalación de ROMs cocinadas en móviles actuales ya que, por lo general, el software que traen de serie suele ser lo suficientemente bueno como para abrir la puerta a la mejor experiencia Android (siempre hay excepciones, como es lógico), pero sí resulta recomendable en aquellos teléfonos que se quedaron sin soporte y sin las actualizaciones de seguridad. El caso del Samsung Galaxy S5 es un ejemplo claro: LineageOS ha revivido por completo el teléfono, tanto en aspecto como en posibilidades. Ofrece un estilo Pixel stock gracias a las Gapps que le instalé, el funcionamiento es muy fluido, el consumo con la pantalla apagada es mínimo (nada que ver con el TouchWiz original) y LineageOS 16, con la última Nightly, ha actualizado el parche de seguridad a marzo de 2020. Esto sería inviable de seguir con el firmare original de Samsung: se quedó en agosto de 2017.

Ha cambiado tanto el teléfono que nadie diría que tiene casi seis años, una auténtica brutalidad para un smartphone. Pero ahí está: con Android 9 Pie, con todas las funciones extra de LineageOS (multitud de modos de pantalla, efectos de sonido, apps propias de cámara y archivos...) y sin que corra el riesgo de que aplicaciones tan importantes como WhatsApp dejen de funcionar debido a la antigüedad de la versión de Android. Vale la pena revivir un teléfono de esa categoría para seguir usándolo a diario, aunque sea en tareas menores. Como utilizarlo para aplicaciones que merezcan el acceso ROOT, como servidor multimedia o un punto de acceso WiFi con el que aprovechar todos esos GB gratis que están ofreciendo las operadoras.

Samsung Galaxy S5 Lineageos

Pensé que mi Samsung Galaxy S5 se quedaría como objeto de coleccionista, pero no: aún tiene mucha vida que ofrecer. Y todo gracias a los desarrolladores que dedican sus esfuerzos a que los móviles no mueran por falta de software actualizado: larga vida a las ROMs cocinadas.




martes, febrero 18, 2025

La IA nos está volviendo más tontos y dependientes

Está Escrito:

Porque los hombres juran por uno mayor que ellos mismos , y para ellos un juramento dado como confirmación es el fin de toda discusión.… (Hebreos 6:16-18)

Tomado de: Muycomputer


El uso de la IA se ha disparado en los últimos años. Esta tecnología ha dejado de ser algo exclusivo de grandes empresas y profesionales, y se ha democratizado hasta tal punto que cualquiera con un PC o un dispositivo móvil puede acceder a ella.

Esto tiene un lado positivo, porque democratizar el uso de la IA se traduce en una mayor igualdad de oportunidades y en un mayor acceso a una tecnología que, al fin y al cabo, puede hacernos la vida mucho más fácil.


Sin embargo, también tiene un lado negativo, y es que puede acabar generando una gran dependencia que además puede afectar a nuestro pensamiento crítico, hasta tal punto que puede llegar a atrofiarlo. Dicho en plata, el uso de la IA puede acabar volviéndonos más tontos


.Esa es la conclusión a la que ha llegado un estudio elaborado por investigadores de Microsoft, en colaboración con la Universidad Carnegie Mellon. Esto es lo que dice el estudio:

«Una ironía clave de la automatización es que al mecanizar las tareas rutinarias y dejar el manejo de excepciones al usuario humano, se priva a este de las oportunidades habituales de poner en práctica su juicio y fortalecer su capacidad cognitiva, lo que acaba dejándolo atrofiado y desprevenido cuando surgen las excepciones».

El problema de dejar que la IA piense por nosotros

IA pensando



Este estudio, también ha confirmado que los trabajadores que llevan tiempo utilizando IA en su puesto suelen tener dificultades para afrontar problemas que requieren el uso de su capacidad de pensamiento crítico, mientras que aquellos que no tienen esa dependencia de la IA suelen afrontar esos mismos problemas con mayor seguridad, y con más facilidad.



jueves, octubre 17, 2024

Abrir acceso por red a Xampp

Está Escrito:

Entonces Moisés dijo al SEÑOR: Por favor, Señor, nunca he sido hombre elocuente, ni ayer ni en tiempos pasados, ni aun después de que has hablado a tu siervo; porque soy tardo en el habla y torpe de lengua. (Éxodo 4:10)

Tomado de: Tecnodus

Abrir acceso por red a Xampp

Normalmente cuando trabajamos por xampp, es necesario probar los sitios web que realizamos por otros dispositivos de red, incluyendo celulares y tablets; y por defecto este acceso lo tiene bloqueado (Por seguridad), y aunque es una configuracion recomendada, ya que cualquiera en la red podria fisgonear en nuestras cosas, asi que puedes habilitar este acceso cuando te convenga.

Primero deberemos abrir el archivo http-xampp.conf (por defecto lo abrirá con el blog de notas)

En la ultima parte del archivo encontrarás algo similar a esto.

#
# New XAMPP security concept
#
<LocationMatch “^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))”>
Require local
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

El cual debemos reemplazar con el siguiente texto.

#
# New XAMPP security concept
#

# Close XAMPP security section here
<LocationMatch “^/(?i:(?:security))”>
Order deny,allow
#Deny from all
#Allow from ::1 127.0.0.0/8
Allow from all
ErrorDocument 403 /error/HTTP_XAMPP_FORBIDDEN.html.var
</LocationMatch>

# Close XAMPP sites here
<LocationMatch “^/(?i:(?:xampp|licenses|phpmyadmin|webalizer|server-status|server-info))”>
Order deny,allow
#Deny from all
#Allow from ::1 127.0.0.0/8
Allow from all
ErrorDocument 403 /error/HTTP_XAMPP_FORBIDDEN.html.var
</LocationMatch>

Ahora, una vez guardado el archivo, debemos detener y volver a iniciar el proceso Apache.

La direccion para acceder desde un dispositivo de red debemos saber la IP de  la pc en la que tenemos instalado el XAMPP; esto lo hacemos escribiendo ipconfig desde el CMD de windows.



En mi caso mi IP es 192.168.1.37

Si guardaste tu pagina en la carpeta D:\xampp\htdocs\pagina , en algun navegador conectado a la red tendras que escribir http://192.168.1.37/pagina/

Que les vaya bien con este nuevo truco




jueves, septiembre 26, 2024

Deshacer las .apk para obtener el "source code" de una aplicación Android

Está Escrito:

El es Todopoderoso, al cual no alcanzamos, grande en poder; Y en juicio y en multitud de justicia no afligirá. Lo temerán por tanto los hombres; El no estima a ninguno que cree en su propio corazón ser sabio. (Job 37:23-24)

Hoy voy a hablaros de como obtener el código fuente (o como se conoce más comúnmente, el source code) de una .apk. A veces, yo, como desarrollador de aplicaciones, me gusta "espiar" (sí queréis el término que yo uso, es "mirar el trabajo de los otros para aprender y aplicarlo al mío propio", pero que vamos, viene a ser lo mismo) el trabajo de los demás. Pero hay una barrera, que se llama .apk. Que yo sepa, no existe ningún editor de código que pueda leer los .apk y abrirlos como si fuera un source code, para poder leerlos, y por eso, tenemos que usar técnicas un poco más "oscuras" y deshacer esos .apk para convertirlos en source code.


Bien, demasiada explicación aburrida, vayamos manos a la obra.
¿Qué vamos a necesitar?

  • Un programa que se llama apktool (¿original, eh?). La copia que os doy es una preparada por mí :).
  • Otro programa para leer el source code (Yo usaré Eclipse configurado con el ADT de Android (o si queréis ahorraros todo el paso de intalar el JDK, y las ADT y todo, usad el ADT-Bundle de Android)). Vosotros podéis usar Netbeans o lo que queráis.
  • Descargar el .apk que queramos descomprimir.
  • Otro programa para leer .jar y descomprimir las clases. Yo uso el JD-GUI.
Bien, empecemos instalando el apk tool. Ya que es un poco "complicado", os voy a enseñar cómo se hace. 
  1. Nos descargamos el archivo que he preparado (este).
  2. Lo descomprimimos y ponemos la carpeta en C:\Windows.
  3. Y ya está. No era tan complicado, ¿eh? ;).
Vamos a usarlo. Os he dejado dos archivos preparados. Uno que se llama cmd.lnk y otro que se llama Procedure.txt. Procedures es por sí alguna vez tenemos alguna duda de lo que debemos hacer.

Os voy a explicar como funciona. Voy a usar una app propia que hice para un amigo que se llama Drama Button y que podéis descargar, si queréis, aquí (es una tontería realmente, pero es divertida). Empecemos.

  1. Ejecutamos el cmd.lnk como administradores (Click derecho -> Ejecutar como administrador).
  2. Os debería salir una línea de código que ponga C:\Windows\apktool1.5.2>. Si no os sale, escribís "cd C:\Windows\apktool1.5.2" y le dais a enter. 
  3. Una vez aquí, es útil copiar y pegar el archivo que queremos descomprimir dentro de la misma carpeta del apktool. Cuando lo tenemos dentro, escribimos apktool d NombreDelArchivo.apk. Como ya os he dicho, en mi caso estoy usando una app que se llama DramaButton.apk, así que se vería así: 
    CMD en el paso 3
    CMD en el paso 3.
  4. Ejecutamos y obtenemos una carpeta:
  5. CMD y Carpeta nueva en el paso 4
    CMD y Carpeta nueva en el paso 4
  6. Ahora vamos a ejecutar el siguiente comando para obtener las clases de la app. Escribimos jar xvf NombreDelArchivo.apk classes.dex y se nos creará un archivo que se llamará classes.dex 
    CMD y classes.dex en el paso 5
    CMD y classes.dex en el paso 5
  7. Es raro que alguien conozca que es el archivo .dex, así que vamos a pasarlo a .jar para poder pasarlo al JD-GUI y poder leer las clases. Escribimos dex2jar classes.dex y se nos crea un archivo que se llama classes_dex2jar.jar. 
    CMD y classes_dex2jar.jar en el paso 6
    CMD y classes_dex2jar.jar en el paso 6
  8. Abrimos el JD-GUI y arrastramos el archivo classes_dex2jar.jar al programa. Veremos esto: 
    JD-GUI
    JD-GUI
  9. Damos doble click en "MainActivity" y se nos abre. Ahora si queremos llevarlo a Eclipse para unirlo con los res, le damos a "File->Save All Souces" y lo guardamos cómo y donde queramos. Lo descomprimimos y vamos a la carpeta que se nos ha creado en el paso 4 (C:\Windows\apktool1.5.2\NombreDelArchivo) y creamos una carpeta que se llame src. Copiamos y pegamos las carpetas del zip que nos ha creado el JD-GUI. 
  10. Ahora simplemente, abrimos Eclipse, le damos a "File->Import" y se nos abre una ventana. Vamos a la carpeta Android y le damos a "Existing Android Code Into Workspace". Clicamos en next, y como root directory pondremos el de la aplicación extraída, es decir: C:\Windows\apktool1.5.2\NombreDelArchivo. Se nos creará un project nuevo y tendremos ahí los res y el código. 
  11. Nota final: Muchas veces hay errores de compatibilidad o de archivos que faltan o lo que sea. El apktool no es perfecto. Yo recomiendo leer los archivos de java desde el JD-GUI, ya que es lo mismo y es más cómodo. Pero esto ya, a vuestra elección.
En unos 5 minutos si somos lentos y vamos leyendo y haciendo poco a poco, hemos obtenido el source code de cualquier aplicación que queramos ver. 

A mí me ha ayudado muchas veces para ver cómo la gente programa las cosas y espero que os sea útil a vosotros también.

Muchas gracias por leerme un día más.

¡Saludos a todos!