Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



viernes, 29 de abril de 2016

Ingenieria Financiera y uso de Paraisos Fiscales: Los papeles de Panamá




Os dejo un ejemplo que esta circulando por internet, que explica fácilmente como nos roban los señor@s que están usando paraísos fiscales, por ejemplo los que han aparecido en los papeles de Panamá:

Supongamos que quiero iniciar un negocio de kebab en Salamanca...

  Con empresas en paraisos fiscales:
          - Monto una empresa en un paraíso fiscal, por ejemplo Panamá (la llamaré Kebabs Paradise Ltd).
 - Monto una empresa en España (la llamaré Kebabs Ricos SL). Kebabs Paradise
            -compra ingredientes de carne de kebab en Turquía a 0,01€.

           -  Kebabs Ricos compra ingredientes a Kebabs Paradise a 0,99€.
           - Kebabs Ricos vende kebabs a los españoles a 1€.

 Al final del mes he vendido 1000 Kebabs en mi local.

Beneficios de Kebabs Ricos = 10€ al mes.Como esta en España, tendré que pagar impuestos a Hacienda por esos 10€ de beneficio: aproximadamente 2€.  

Beneficios de Kebabs Paradise = 980€ Como esta un paraíso fiscal... no paga impuestos.
Total: yo gano 988€ pa’ mí, y dejo 2€ para sanidad, educación...



 Sin empresas en paraísos fiscales:

- compraría ingredientes a 0,01 y los vendería a 1€.  
Beneficio: 999€, de los cuales 200€ serían para sanidad, educación... y unos 799€ pa’ mí.

Así, si uso paraísos fiscales,  yo me forro y no pago impuestos (no pago carreteras, sanidad, educación...).  El país se queda sin dinero recaudado y hace recortes que pagas tú y te quita derechos que son tuyos... mientras yo te sigo vendiendo mis lucrativos Kebabs 






miércoles, 27 de abril de 2016

LibreOffice Online: Open365.io


LibreOffice Online: Open365.io



Ya tenemos alternativa libre y gratuita a microsoft office 365 y google Docs, se trata de Open365.io, que nos ofrece crear y editar documentos, hojas de cálculos, presentaciones y organizar nuetros archivos en la nube, cliente de correo, lista de tareas y calendario.

Open365 ha sido desarrollada por Alex Fiestas y el equipo del escritorio virtual web eyeOS, y es el resultado de la combinación de tres proyectos de software libre: la popular suite ofimática LibreOffice, la herramienta de gestión de información personal Kontact y el gestor de archivos online Seafile.



Funciona tanto online (desde el navegador web), como os podeis descargar el cliente (disponible para windows, mac, linux y Android).

Y el espacio de nuetra cuenta es de 20 GB !!!




Vista de Aplicaciones  ejecutándose en navegador:




lunes, 25 de abril de 2016

Solveet: Desafios y soluciones de problemas informaticos


¿tienes algún desafío o problema de programación que proponer?
Pues para eso esta Solveet


Por ejemplo han pedido la resolución de este desafío:
http://www.solveet.com/exercises/sueldo-de-profesor )

Diseñar un programa en Lenguaje C++ para determinar la cantidad de dinero que recibirá un profesor por concepto de las horas extras trabajadas en un colegio, sabiendo que cuando las horas de trabajo exceden de 30, el resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no excedan de 8, en caso contrario se pagarían las primeras 8 extras al doble y a partir de allí se pagarían al triple.


Y mi solución (que la he hecho en gambas3 :) ) es la siguiente:




Código fuente de la solución: alojado en google drive



domingo, 24 de abril de 2016

Juegos Gratuitos en Botemania



Juegos Gratuitos en Botemania


En esta página web botemania además de tener acceso a cientos de juegos, podeís también jugar a juegos gratuitos, que os den premios sin tener que arriesgar vuestro dinero. Os dejo dos videos sobre los juegos que hay actualmente: Tiki Toka Binco y La Tikipesca del Día



Nota: Siempre hay que dejar un saldo mínimo (yo tengo 0.05 euros) para poder jugar.



Lista de videos sobre juegos gratuitos:



Saludos



miércoles, 13 de abril de 2016

Aplicación para la terminal: Lista: crea una lista con las carpetas y subcarpetas y de sus ficheros

Aplicación para la terminal:
 Lista: crea una lista con las carpetas y subcarpetas y de sus ficheros



Con gambas3, también se pueden hacer aplicaciones para la consola (además de las aplicaciones gráficas). Os traigo un simple ejemplo de como crear un "nuevo" comando (una vez instalador el archivo .deb) que estará disponible en nuestra terminal o consola y que nos mostrará  todos los directorios, subdirectorio y nombres de archivos que contengan.







Código fuente e instalador .deb: alojado en google drive



En el siguiente video explico como esta hecho:




VideoTutoriales Curso de Java de Jesus Conde

VideoTutoriales Curso de Java de Jesus Conde





Curso Completo de Java desde Cero. Formado por 40 Videotutoriales y decenas de horas de formación en el lenguaje de programación con más perspectivas de crecimiento futuro. Centrado especialmente en el trabajo con NetBeans, el curso comienza con una introducción a los fundamentales de la programación en Java. En un segundo bloque del curso se trata sobre programación orientada a Objetos; Un tercer bloque del Curso trata sobre la creación de Interfaces Gráficas de Usuario con Swing; Una cuarta parte del Curso trata sobre usos avanzados de Java y la última se centra en el desarrollo en Java desde NetBeans.

Lista de Reproducción en Youtube



Contenido:

01.- Curso de Java para principiantes. Introducción: Uso de NetBeans.
02.- Curso de Java para principiantes. Anatomía de un Programa Java.
03.- Curso de Java para principiantes. Tipos de programas Java y uso de arguments.
04.- Curso de Java para Principiantes. Variables: Almacenar información.
05.- Curso de Java para Principiantes. Trabajar con Operadores.
06.- Curso de Java para Principiantes. Trabajar con Objetos String.
07.- Curso de Java para Principiantes. Tomar decisiones con condicionales.
08.- Curso de Java para Principiantes. Planificar repeticiones con el uso de Loops.
09.- Curso de Java para principiantes. Almacenar información con el uso de Arrays.
010.- Curso de Java para principiantes. Fundamentos de la Programación Orientada a Objetos.
011.- Curso de Java para principiantes. Jerarquía de Clases y Herencias.
012.- Curso de Java para principiantes. Trabajar con Objetos.
013.- Curso de Java para principiantes. Casting. Conversión entre tipos de Variables y Objetos.
014.- Curso de Java para principiantes. Alcance de variables y uso de this.
015.- Curso de Java para principiantes. Argumentos de línea de Comandos y sobrecarga de métodos.
016.- Curso de Java para principiantes. Métodos Constructor y sobrescritura de Métodos.
017.- Curso de Java. Modificadores y Controles de Acceso.
018.- Curso de Java. Trabajar con Paquetes.
019.- Curso de Java. Ampliar Clases con Interfaces.
020.- Curso de Java. Swing. Crear GUIs con Java.
021.- Curso de Java. Look And Feel y Cajas de diálogo.
022.- Curso de Java. Componentes avanzados de Swing.
023.- Curso de Java. Gestores de diseño. Ordenar los componentes dentro de una interface.
024.- Curso de Java. Interactuar con Eventos de usuario.
025.- Curso de Java. Taller práctico: Creación de una GUI funcional.
026.- Curso de Java. Desarrollar Aplicaciones GUI con NetBeans.
027.- Curso de Java. Manejar errores y excepciones.
28.- Curso de Java. Crear aplicaciones Multitarea con el uso de Threads.
029.- Curso de Java. Comunicaciones. Trabajar con Streams Input y Output.
030.- Curso de Java. Streams Datos, Texto y la clase File.
031.- Curso de Java. Crear Aplicaciones Web con NetBeans.
032.- Curso de Java. Uso de Tomcat, Glassfish, Struts y Struts 2.
033.- Curso de Java. Uso de Visual JavaServer Faces.
034.- Curso de Java. Trabajar con el Editor SQL de NetBeans.
035.- Curso de Java. Crear Aplicación web enlazada a base de datos.
036.- Curso de Java. Introducción a los Web Services con JAX-WS.
037.- Curso de Java. Crear un Cliente gráfico para Twitter.
038.- Curso de Java. Crear una aplicación para Facebook con NetBeans.
039.- Curso de Java. Introducción al Spring Web MVC con NetBeans 6.9.
040.- Curso de Java. Uso de Java FX Composer en NetBeans.

Nota:
1) Aplicaciones de escritorio, a partir de la version de Netbeans 7.xx (actualmente estamos en la 8.1), se creo Java FX

2) Video super sencillo, para crear formulario y sumar dos numeros
https://youtu.be/hbJjC2Qg8Dg


lunes, 11 de abril de 2016

Ciclo de desarrollo del software






El ciclo de vida básico de un software consta de los siguientes procedimientos:
  • Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.
  • Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
    En esta fase se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. De esta fase surge una memoria llamada SRD (documento de especificación de requisitos), que contiene la especificación completa de lo que debe hacer el sistema sin entrar en detalles internos.
      Es importante señalar que en esta etapa se debe consensuar todo lo que se requiere del sistema y será aquello lo que seguirá en las siguientes etapas, no pudiéndose requerir nuevos resultados a mitad del proceso de elaboración del software de una manera.
      • Diseño general: requisitos generales de la arquitectura de la aplicación.
      Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD (Documento de Diseño del Software), que contiene la descripción de la estructura relacional global del sistema y la especificación de lo que debe hacer cada una de sus partes, así como la manera en que se combinan unas con otras.Es conveniente distinguir entre diseño de alto nivel o arquitectónico y diseño detallado. El primero de ellos tiene como objetivo definir la estructura de la solución (una vez que la fase de análisis ha descrito el problema) identificando grandes módulos (conjuntos de funciones que van a estar asociadas) y sus relaciones. Con ello se define la arquitectura de la solución elegida. El segundo define los algoritmos empleados y la organización del código para comenzar la implementación.
        • Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
        Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario así como también los análisis necesarios para saber qué herramientas usar en la etapa de Codificación
        • Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
        Es la fase en donde se implementa el código fuente, haciendo uso de prototipos así como de pruebas y ensayos para corregir errores.Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido.
          • Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
          • Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.
          Los elementos, ya programados, se ensamblan para componer el sistema 
          • Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.
          Se comprueba que funciona correctamente y que cumple con los requisitos, antes de ser entregado al usuario final
          • Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
          • Implementación
          Es la fase en donde el usuario final ejecuta el sistema, para ello el o los programadores ya realizaron exhaustivas pruebas para comprobar que el sistema no falle.
          • Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
          Una de las etapas más críticas, ya que se destina un 75 % de los recursos, es el mantenimiento del Software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas.





          Fuentes:
          http://es.ccm.net/contents/223-ciclo-de-vida-del-software
          https://es.wikipedia.org/wiki/Desarrollo_en_cascada

          domingo, 10 de abril de 2016

          Como hacer la declaración de la renta 2015: infografía


          Como hacer la declaración de la renta 2015: infografía



          Porque "hacienda somos todos", en este víeo os traigo una infografía que explica en 8 pasos  como hacer la declaración de hacienda sacando el borrador de la página web de Hacienda, y modificando los datos, si es necesario.





          Saludos


          lunes, 4 de abril de 2016

          En la guerra por el cliente, vale todo....Operadoras de Telefonía/Movil/Internet/TV

          En la guerra por el cliente, vale todo....

          Operadoras de Telefonía/Movil/Internet/TV



          El viernes por la tarde nos llaman al teléfono fijo, y le dicen a mi mujer que son de nuestra compañía de telefonía (pongamos por ejemplo Orange), y que nos van a pasar un cargo de 15 euros y una hacer firmar una nueva  permanencia de  24 meses, porque nuestra compañía se une a otra (pongamos por ejemplo Jazztel). 

          Mi mujer salta y dice que nanai... que de eso nada, que ella no paga más y que no tiene que ver nada  ni pagar nada con que se unan las empresas...


          Total que le dicen que le van a enviar una carta para darle de baja... y mi mujer se robotó aun más...


          A los diez minutos, vuelven a llamar esta vez de otra compañia, por ejemplo. una tal Vodafone-ONO , dándonos una oferta para cambiarnos a su compañia..... ¿sospechoso no?


          El caso que después de escuchar su oferta, le decimos que el lunes nos llame para confirmar el cambio de compañía..... Llamamos a nuestra empresa de telefonía (por ejemplo Orange), y nos dicen que no, que no nos cobran nada de nada, que es un engaño para molestar y enfadar a los clientes.


          ¿hasta donde llega la guerra por los clientes de estas compañías?










          viernes, 1 de abril de 2016

          Función para saber si un número es potencia de dos: Uso de And Lógico


          Función para saber si un número es potencia de dos:
           Uso de And Lógico




          Voy a explicaros la siguiente función, que nos devuelve si un número dado es una potencia del número 2 o no.

          [JAVASCRIPT]
          b2Math.b2IsPowerOfTwo = function(x)
              {
                  var result = x > 0 && (x & (x - 1)) == 0;
                  return result;
              };

          [GAMBAS3]
          Private Function function_2(As Integer) As boolean

            Dim result As boolean = false
            
             If (> 0) And ((And (- 1)) = 0) Then result = 1
              
             Return result

          End



          Esta función hace lo siguiente:
          1) Le pasamos un "x" que es un número integer
          2) Hacemos dos comprobaciones: Si...... Y  ... entonces
          2.1)(> 0):  Si x es mayor que 0
          2.2) ((And (- 1)) = 0): Si x y (x-1) es igual a 0
          Esta segunda parte de la expresión que se debe de comprobar es muy interesante, ya que esta trabajando con la tabla lógica de AND y el valor de los número en formato Binario.

          Lo explico mejor con un ejemplo:

          1) Funcion_2(8)
          Vamos a comprobar si el nº 8  es una potencia de 2.

          Para ello la 1º condición (2.1) se cumple (es mayor que cero),

          Para la segunda condición (2.2) hacemos lo siguiente:

              a) x: El número 8 es en binario: 1000
              b) x-1: El número 8-1 que es 7 en binario es 0111

          Hacemos la comprobación AND con los dos número



          Como 0 es igual a 0, entonces le cumple.

          Por lo tanto, el resultado de la función pasando le el parámetro 8, es verdadero, y el número es una potencia de dos.



          1) Funcion_2(6)
          Vamos a hacer la comprobación con el número 6
          Para ello la 1º condición (2.1) se cumple (es mayor que cero),

          Para la segunda condición (2.2) hacemos lo siguiente:

              a) x: El número 6 es en binario: 110
              b) x-1: El número 6-1 que es 5 en binario es 101

          Hacemos la comprobación AND con los dos número


          Como 4 no es igual a 0, entonces no se cumple.
          Por lo tanto la función devuelve FALSE, indicando que ese número (el 6) no es potencia de  2.



          Anexo: 
          Tabla lógica de AND
          Tabla lógica de AND



          Nota:
          03/04/2016: Gracias a Shell por avisar de un fallo en el artículo. Ya esta corregido