En este blog hablo de diversos temas de tecnología e IT, hago tutoriales, comento noticias, libros y todo lo que tenga que ver con el mundo geek

Translate

Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

martes, 28 de enero de 2020

Cómo Crear Log/Logger En PHP

enero 28, 2020 0



Hola estimado lector, hoy voy a mostrar cómo hacer un Log.txt en PHP, para ello debemos de usar los try-catch, y dentro del catch ponemos nuestro fichero .log, es decir debe de quedar algo así

    try{


    }catch (Exception $ex){
$logTxt="logger1rec.txt";
$fileVar=fopen($logTxt,"a");
fwrite($fileVar," ".$ex->getMessage()."\n");
fclose($fileVar);
}

Pues nada hasta aquí mi tutorial de hoy, espero que hayan aprendido algo, sin más me despido, hasta el próximo post.

lunes, 27 de enero de 2020

Apuntes de Hibernate

enero 27, 2020 0


Hola estimado lector, aquí voy a dejar mis apuntes acerca de Hibernate de Java, para quién no lo sepa Hibernate es un ORM, es decir, una utilidad que permite convertir cada una de las filas de nuestra tabla, en objetos de tipo Java.

Por aquí dejo los apuntes de Hibernate del FP:


hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sakila?zeroDateTimeBehavior=convertToNull</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password"/>
    <mapping resource="tomhard03/Actor.hbm.xml"/>
    <mapping resource="tomhard03/Customer.hbm.xml"/>
    <mapping resource="tomhard03/Film.hbm.xml"/>
    <mapping resource="tomhard03/FilmActor.hbm.xml"/>
  </session-factory>
</hibernate-configuration>



HibernarteUtil.java


/**
 *
 * @author tomhard
 */
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    public static SessionFactory buildSessionFactory() {
        try {
            return new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
}

Una vez hecho esto mapeamos, a través de la interfaz de NetBeans, y creamos las diferentes clases ORM.

Una vez hecho lo anterior, debemos de invocar a nuestra BDD a través de los siguientes comandos:

super(parent, modal);
        initComponents();
        Object[] fila = new Object[3];
        DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
        SessionFactory instancia = HibernateUtil.buildSessionFactory();
        Session session = instancia.openSession();
        Query q = session.createQuery("from Customer c, Actor fa where c.lastName=fa.lastName "
        );
        ArrayList<Map> respuestaHQL = (ArrayList<Map>) q.list();
        Actor a;
        Customer f;
        for (Object r : respuestaHQL) {

            Object[] rARR = (Object[]) r;
            a = (Actor) rARR[1];
            f = (Customer) rARR[0];

            fila[0] = a.getLastName();
            fila[1] = a.getActorId();
            fila[2] = f.getCustomerId();
            modelo.addRow(fila);
          //  System.out.println("Apellido "+ a.getLastName()+" ID costumer: "+f.getCustomerId() +" ID Actor: "+a.getActorId());
            // System.out.println("---------------------------------------");


        }

Pues nada hasta aquí mis apuntes de Hibernate, espero que os haya sido de utilidad, si es así podéis dejarmelo saber en los comentarios, sin más, un saludo y hasta la próxima.

sábado, 25 de enero de 2020

Apuntes SpecialPrice Prestashop

enero 25, 2020 0



Hola estimado lector, hoy estoy aquí para dejar ciertos apuntes acerca de cómo crear un specialprice en PrestaShop, por aquí dejo los apuntes, de cómo lo he hecho, espero que os guste y que os sea de ayuda o de gran utilidad.



/**
 * @param int $id_product
 * @param int $id_product_attribute si 0 para todos los atributos
 * @param float $reduction_value ie. 0.07 significa 7% cuando porcentaje, como $reduction_type y 10.00 significa 10 cuando es "amount"
 * @param string $reduction_type puede ser 'percentage' o 'amount'
 * @param int $tax if set to 1 then price of specific price is brutto if 0 then netto
 * @param string $from_date is 'YYYY-MM-DD HH:MM:SS'
 * @param string $to_date is 'YYYY-MM-DD HH:MM:SS'
 * @param int $from_quantity desde qué cantidad
 * @param int $id_shop 0 para todos
 * @param int $id_shop_group 0 para todos
 * @param int $id_currency 0 para todos
 * @param int $id_country 0 para todos
 * @param int $id_customer 0 para todos
 * @param int $price es siempre -1
 * @param int $from_quantity por defecto es 1
 * @return int id ID del producto creado
 */



    $specificPrice = new SpecificPrice();
    $specificPrice->id_product = (int)$id_product;
    $specificPrice->id_product_attribute = (int)$id_product_attribute; // if 0 then for all attributes

    $specificPrice->reduction = $reduction_value; // 7% is 0.07
    $specificPrice->reduction_type = $reduction_type;
    $specificPrice->reduction_tax = $tax;
    $specificPrice->id_shop = $id_shop;
    $specificPrice->id_currency = $id_currency;
    $specificPrice->id_country = $id_country;
    $specificPrice->id_group = $id_shop_group;
    $specificPrice->id_customer = $id_customer;
    $specificPrice->price = $price;
    $specificPrice->from_quantity = $from_quantity;
    $specificPrice->from = $from_date;
    $specificPrice->to = $to_date;

    $specificPrice->add();
    $specificPrice->save();
    $addedPriceId = $specificPrice->id;

    return $addedPriceId;


Pues nada hasta aquí mi post de hoy, espero que os haya sido de utilidad, que hayáis aprendido algo, sin más me despido, un saludo y hasta la próxima.


FUENTE

https://www.prestashop.com/forums/topic/649790-specific-price-through-code-programatic-way/ usuario hakeryk2

lunes, 20 de enero de 2020

Apuntes R

enero 20, 2020 0



Aquí vamos a recorrer todos los nodos de una página web.

library(rvest)
url<-"http://example.com"
selector<-#search
pagina<-read_html(url)
nodo<-html_node(pagina, selector)
nodo_text<-html_text(nodo)
nodo_text

Hasta aquí los apuntes de R, espero que hayan sido de utilidad, un saludo y hasta la próxima.

lunes, 13 de enero de 2020

Montando CYBER-TALK ROBOT

enero 13, 2020 0

Hola estimado lector, ayer Domingo estuve montando un robot CyberTalk, este robot para quiénes no lo sepan es un robot recomendado para niños, entre 8 y 12 años, si tienes menos edad, la persona que pensamos regalar podemos regalar RoboMaker pro, con la supervisión de un adulto. Además que para montarlo es necesario un adulto.

Debo de decir que yo me entretuve bastante en el montaje de este robot, tardé alrededor de 30 minutos, entre leer manual, montar y volver a desmontar aunque una vez que lo has montado, al menos una vez, montarlo y desmontarlo, es un juego de muñecos, eso sí hay que tener cuidado con las piezas ya son literalmente de juguete

En el montaje debo de decir que la mayor parte de las piezas no van atornillados sino por presión, esto significa que hay que tener cuidado cuando vayamos a cambiar las pilas de nuestro robot ya que hay que desmontarlo entero y se puede romper. Además de todo esto decir que el material no tiene pinta de ser buen material, sino que el plastico es de PVC bastante endeble, similar al de los equipos electrónicos.

Yo por mi parte al ver este robot debo confesar que me esperaba que tuviera, sensor de proximidad por ultrasonido, pero no tiene ☹☹, lo único así es un altavoz, el cual puedes controlar con APP de Android, desde el móvil descargado en el PlayStore.

El robot se puede controlar o programar con Scratch, desde la app de Android, y teniendo unos conocimientos mínimos de programación se puede controlar, en fin, el robot, lo recomiendo para niños, y si quieres algo más profesional o de adulto, te recomiendo Arduino, aquí en este website, tengo algún que otro tutorial de esta plataforma.

Pues nada hasta aquí mi post de hoy, abajo dejo algunas fotos que me he hecho con el montaje de este aparato, y poco más, espero que os haya gustado el artículo, si es así  me lo podéis dejar en los comentarios, acepto también sugerencias, y si queréis podéis seguirme a través de Feedly y LinkedIn, un saludo y hasta la próxima 😁😁.

Donde comprar:

https://amzn.to/3a3sBO8






martes, 7 de enero de 2020

¿A-Ads Alternativa a Adsense? ¿Cookies, privacidad? ¿SCAM o Virus?

enero 07, 2020 0



Hola estimado lector, hoy voy a hablar de uno de los creadores de Ads, que a mi juicio más prometen de aquí a futuro. Hablo de A-Ads, es un proveedor de publicidad, bastante similar a Adsense, con algunas diferencias, la más evidente es que usa Bitcoin para pagarte, en lugar de dolares o euros.

De momento A-Ads sólo comentaré lo que es, y en cuanto a  configuración, cómo insertarlo, etc. voy a dejar más abajo el enlace a un blog, donde se explica paso a paso cómo configurarlo, si queréis insertar vuestro bloque html/iframe en blogger, podéis seguir este tutorial.

Hace tiempo vi un documental, en Discovery max creo recordar, acerca de las barreras que es capaz de sortear el Bitcoin. En dicho documental aparecía una mujer que básicamente se dedicaba a la profesión más antigua del mundo, y no podía cobrar ya que por transferencia bancaria era peligroso, y mediante PayPal le bloquearon las cuentas. A partir de aquí ella descubre Bitcoin, y ahora ella se dedica a hacer su profesión sin que los bancos metan las narices en sus asuntos.

Quedaros con el caso anterior, ya que mi forma de descubrir A-Ads fue porque básicamente Adsense no deja monetizar mi blog debido a que soy informático, que habla de gadgets, mi CPM era literalmente de 0.00€ al no cumplir sus términos y condiciones

Sobre A-Ads, diré en cuanto si cumplimos o no las directivas de privacidad de la UE, diré que sí, es más en la parte de "Aviso Legal De Privacidad", aparece como que dentro de los diferentes iframes que empleemos en nuestras páginas no usaran ni cookies, ni tampoco JavaScript, lo cual me parece una buena noticia.

Es curioso porque en esta página web no necesitas ni siguiera entregar tu correo electrónico para empezar a operar con con A-Ads, es increíble. También decir que puedes limitar qué banners quieres que aparezca en la página web, lo cual es muy buena opción si queremos hacer un contenido "blanco" o si el contenido que hacemos es de adultos o NSFW.

Como algo "malo" de esta plataforma cabría decir que el CPM es mucho más bajo, que si usamos Adsense en un website monetizable por este, el CPM en dólares de A-Ads, es alrededor de 0,10 dólares en Bitcoin, a mi parecer es un CPM bajo, pero creo que a medida que el website se popularice se irá subiendo. Decir también, en honor a la verdad, que en otras alternativas a Adsense, se paga prácticamente lo mismo que A-Ads.

El pago mínimo en A-Ads serían alrededor de 6~7€, según como cotice el Bitcoin, una cantidad que me parece bastante bien, si tenemos un website y queremos monetizarlo. De momento A-Ads paga y no es ninguna estafa o scam.

Bueno pues hasta aquí mi post de hoy, tenía ganas de hablar de esta alternativa a Adsense, la verdad me parece una alternativa interesante, si quieres podéis dejarme vuestra opinión en los comentarios, compartirlo, sin más me despido un saludo, un abrazo enorme y hasta el próximo post 😁😁.

Recomendado:

https://dineroworld.com/a-ads/




sábado, 4 de enero de 2020

¿Qué son las cookies? ¿Por qué tanta paranoia y líos legales?

enero 04, 2020 0



Hola estimado lector, hoy voy a hablar acerca de lo que son las "cookies", la traducción en inglés serían "galletas", y sirven para guardar pistas acerca de quién está navegando en el sitio web. Las cookies son archivos de texto, que se guardan dentro del PC, y el navegador puede leerlo y almacenar datos sobre el cliente.

Al contrario de lo que piensa algunas personas las cookies no son programas, son archivos de texto, en estos archivos de texto, en un principio cuando se creó la web, se guardaban lo que viene siendo los usuarios y contraseñas, para que los usuarios, no tuvieran que escribirlos cada vez que reiniciaran el navegador web.

Lo que ocurre con esta tecnología, es que muchos navegadores, aprovechando que JavaScript se puede ejecutar desde terceras páginas web, es que dentro de las cookies, se empezaron a guardar ciertas cosas, como los intereses de estas personas, la edad, la ubicación, y desde el navegador se podía acceder a ciertos ficheros. Es evidente que estos datos en podían caer en malas manos, siendo una irresponsabilidad, ya que las mismas empresas se dedicaban a usar estos datos para vendérselos a terceros a cambio de dinero, o para manipular a ciertos sectores de la población acerca de de qué votar... Como ocurrió con el Brexit.

Ante este panorama que he escrito en el párrafo anterior, había que regular esto de alguna manera, en Europa, hay desde 2012 una ley que obliga a informar en todo momento al usuario de las cookies, además que la nueva ley de protección de datos Europea, GDPR, obliga además de informar de manera meticulosa, qué cookies aceptamos en cada página web.

Pues nada por aquí voy dejando el artículo de hoy, espero que os haya gustado, que os hayáis entretenido, si es así me lo podéis dejar en los comentarios, y nada no me enrollo más, muchas gracias si has llegado hasta el final del artículo, no me enrollo más, un saludo y hasta la próxima 😁😁.

jueves, 2 de enero de 2020

¿Que es AJAX? ¿Framework o JavaScript?

enero 02, 2020 0



Hola estimado lector, hoy voy a hablar acerca de una de las tecnologías que forman parte de nuestro día en las aplicaciones web, y que en cierta medida ha influido en la forma de crear aplicaciones en teléfonos móviles. Es sobre la tecnología AJAX, que las siglas en español sería algo así como JavaScript y XML asíncrono.

En cierta medida JavaScript ha sido siempre una tecnología criticada, ya que es una tecnología que se ejecuta en el Cliente (en el navegador web), y  por ello ha sido en múltiples ocasiones objetivo de hackers, espías, etc. ya que nos permite ejecutar códigos en el navegador web, desde conocer pantalla que tenemos, hasta IP, etc. además de no estar "limitado por origen", se puede poner códigos de otras páginas web. Un ejemplo de ello es el .js de Google Analytics.

JavaScript nos permite entre otras usos, más "normales", en manejar los CSS, y crear temas o templates, que están bastante chulas. Pues sin más voy a hablar de AJAX. Cuando estás viendo una página web, ya sea Facebook, Gmail u otros servicios, muchas veces aparecen notificaciones, como que ha ocurrido un evento, es decir mensaje notificación etc. La parte de la página que se ha actualizado ( en este caso el icono poniendo "1", en mensaje), eso se ha hecho con AJAX.

Para usar AJAX, se puede emplear un código en JavaScript, que da problemas, además hasta hace pocos años, esto variaba en cada navegador, no era lo mismo en Opera, que en Edge, que en Chrome, por ello siempre se recomendaba (yo aún lo sigo recomendando), usar un framework, como JQuery, que nos permita hacer un código funcional, sin preocuparnos de los detalles.

Con JQuery podemos hacer que el código se actualice cada 20 segundos, cada 0,2 segundos... etc, ya que este es un código que lo podemos configurar, apropósito si queremos hacer un Facebook, no se podrá crear con JQuery, sino que debemos de utilizar tecnologías algo más avanzadas con ReactJS y un equipo que maneje NoSQL, SQL, python, y servidores, siendo JQuery ni la primera roca de iceberg.

Pues nada hasta aquí mi post de hoy, hoy ando cortito de tiempo, espero que os haya gustado, que hayáis aprendido algo, y que os haya sido de utilidad, sin más me despido, un saludo y hasta la próxima 😁😁.

Más Información:





domingo, 29 de diciembre de 2019

(Botón/Button) Como poner función de volver en Android Studio

diciembre 29, 2019 0



Hola estimado lector, hoy vengo con un tutorial de Android studio, y es poner en un botón que hemos creado previamente, en Android, poner el siguiente código.

Button volver =(Button) findViewById(R.id.buttonVolver2);
volver.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {

        onBackPressed();        //return true;
    }

});

Pues nada hasta aquí mi tutotial de hoy, está vez algo cortito, pero bastante útil, si quieres ver más tutoriales como este, pincha abajo en los tags. Un saludo y sin más me despido, hasta el próximo post 😁😁.

miércoles, 25 de diciembre de 2019

JDBC con base de datos Access

diciembre 25, 2019 0



Hola estimado lector, hoy voy a hablar de una tecnología, que di hace tiempo y es acerca de el uso de bases de datos access en Java. Para quien no lo sepa desde Java podemos acceder a una BDD, de access, todo se hace mediante el API ucanaccess, que el juego de sus letras se podría traducirse como "tú puedes acceder".

Para ello primero hay que configurar la base de datos de la siguiente forma, que aparece en los siguientes pasos:


  1. Archivo->Opciones->Criterio de ordenación de una nueva base de datos->General-Heredado
  2. Herramientas de base de datos-> Compactar y reparar base de datos

Luego hay que descargar la versión .jar de nuestra API ucanaccess, y añadirlo dentro de nuestro proyecto en la carpeta .bin(si no existe crearla) y mediante NetBeans añadir las bibliotecas.

Una vez aquí, la documentación es fácil de seguir. Sí queremos hacer un select debemos escribir:

try {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); /* often not required for Java 6 and later (JDBC 4.x) */

           

            Connection conn = DriverManager.getConnection("jdbc:ucanaccess://.\\Bibliooteca.accdb");
            java.sql.Statement st = conn.createStatement();

            String sql = "SELECT * FROM tabla";

            ResultSet rs = st.executeQuery(sql);
            Object[] fila = new Object[6];
            int i = 0;
            DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
           

            while (rs.next()) {
                fila[0] = rs.getString(1);
                fila[1] = rs.getString(2);
                fila[2] = rs.getString(3);
                fila[3] = rs.getString(4);
                fila[4] = rs.getString(5);
                fila[5] = rs.getString(6);
                

                modelo.addRow(fila);

                //Sección 5
                jTable1.setModel(modelo);
                System.out.println(rs.getString(1));
//rs.getObject("ATTACH_DATA") will return an array of net.ucanaccess.complex.Attachment
            }
            
          
            /*for (ResultSet r:rs){
             System.out.println(r.getString(1));
             }*/

        } catch (Exception ex) {
            System.out.println(ex.getMessage()+"");
        }

Sí queremos hacer un insert debemos escribir:

 try {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 

            String titulo,
                    ISBN,
                    autor,
                    númerodeejemplares,
                    editorial,
                    numerodepaginas;
            titulo = jTextTitulo.getText();
            ISBN = jTextIsbn.getText();
            autor = jTextAutor.getText();
            númerodeejemplares = jTextNumDeEje.getText();
            editorial = jTextEditorial.getText();
            numerodepaginas = jTextNumDePag.getText();
        
            Connection conn = DriverManager.getConnection("jdbc:ucanaccess://.\\Bibliooteca.accdb");
            java.sql.Statement st = conn.createStatement();
            String sql = "INSERT INTO tabla VALUES ('" + titulo + "', " + ISBN + ", '" + autor + "', " + númerodeejemplares + ", '" + editorial + "', " + numerodepaginas + ")";
            st.execute(sql);
            JOptionPane.showMessageDialog(null, "Operación realizada correctamente");
            jComboBoxActIns.addItem(ISBN+"");
           
        } catch (Exception ex) {
            
            JOptionPane.showMessageDialog(null, ex.getMessage() + "", "ERROR", JOptionPane.WARNING_MESSAGE);

        }

Sí queremos hacer un update debemos escribir:

try {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); /* often not required for Java 6 and later (JDBC 4.x) */

            String titulo,
                    ISBN,
                    autor,
                    númerodeejemplares,
                    editorial,
                    numerodepaginas;
            titulo = jTextTitulo.getText();
            ISBN = jTextIsbn.getText();
            autor = jTextAutor.getText();
            númerodeejemplares = jTextNumDeEje.getText();
            editorial = jTextEditorial.getText();
            numerodepaginas = jTextNumDePag.getText();

            Connection conn = DriverManager.getConnection("jdbc:ucanaccess://.\\Bibliooteca.accdb");
            java.sql.Statement st = conn.createStatement();
            String sql = "UPDATE tabla SET título = '" + titulo + "', ISBN = " + ISBN + ", autor = '" + autor + "', númerodeejemplares = " + númerodeejemplares + ", editorial = '" + editorial + "', numerodepaginas = " + numerodepaginas + " WHERE ISBN LIKE '" + ISBN + "';";
           
            st.execute(sql);
            JOptionPane.showMessageDialog(null, "Operación realizada correctamente");
            
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage() + "", "ERROR", JOptionPane.WARNING_MESSAGE);

        }

Pues hasta aquí mi tutorial de hoy, espero que os haya gustado, que hayáis aprendido algo, sin más me despido, hasta el próximo post 😁😁.

martes, 24 de diciembre de 2019

Trabajando con API REST en PHP

diciembre 24, 2019 0



Hola estimado lector, en esta ocasión voy a escribir, ciertos comandos, que nos van a permitir empezar a funcionar con un API Rest:

Para descargar nuestro json o XML:

$jsonStr=file_get_contents("url.xml");

Para decodificar nuestro json:

$jsonEnc=json_encode($jsonStr);

Para decodificar nuestro XML:

$peliculas = new SimpleXMLElement($xmlstr);
foreach ($peliculas->pelicula->personajes->personaje as $personaje) {
   echo $personaje->nombre, ' interpretado por ', $personaje->actor, PHP_EOL;
}

Para guardar nuestro json en un fichero de texto:

file_put_contents("archivo.txt", json_decode($jsonEnc));

Para mostrar nuestras variables Rest:

$arr = get_defined_vars();
vardump ($arr);
print_r($arr);

Pues nada hasta aquí mis apuntes de API Rest, sin más me despido, un saludo y hasta la próxima 😁😁.

lunes, 23 de diciembre de 2019

(Definición) ¿Que es un algoritmo?

diciembre 23, 2019 0



Hola estimado lector, hoy voy a explicar que es un algoritmo, para ello, simplemente, debemos de tener en cuenta, que un algoritmo, es un sucesión de pasos. Un ejemplo de ello sería una receta de cocina, cómo por ejemplo, hacer una tortilla de patatas:


  • Romper huevos y verterlos en cacerola
  • Batir los huevos
  • Pelar las patatas
  • Trocear las patatas
  • Freír las patatas al punto
  • Mezclar las patatas y los huevos, y vertir en la sartén,
  • Bucle
    • Sí está crudo, volcar tortilla y esperar 3 minutos

Pues así se crea nuestro algoritmo, los bucles a usar son varios, si el lector quiere verlo, diré que los bucles suelen ser for, while, do-while, y foreach, pero no es objetivo de este artículo explicar estos conceptos. Sí el lector quiere ahondar más busca en este blog ecuación de segundo grado en Java, y ahí explicará, los pasos a crear un algoritmo. Debo debo de decir que el "si..." Es un condicional, también leyendo un par de tutoriales, de este blog en Java lo entenderá.

Los algoritmos están en nuestra vida, cómo está en nuestra vida la informática, si te manda un wassap tu ex, el sistema lo ignora, si es tu madre manda un tono el teléfono, si es tu novia mandará otro. Los algoritmos son algo que forma parte de nuestra vida diaria casi sin darnos cuenta. Tenemos tantos algoritmos, como apps, videojuegos o utilidades hay en nuestra vida. Hasta el horno que se apaga cuando alcanza cierta temperatura tiene un algoritmo de seguridad.

Pues nada hasta aquí mi post de hoy, la verdad, pensé que me iba a quedar largo, pero al final ha sido un post, pues como la mayoría que escribo 🙂. sin más me despido, espero que hayas aprendido que es un algoritmo, y como están presentes en nuestro día a día. Un saludo y hasta la próxima.

sábado, 21 de diciembre de 2019

COMPOSER utilidad PHP en Linux y ahora en Windows

diciembre 21, 2019 0



Hola estimado lector, hoy quería hablar de una herramienta que nos va a facilitar el desarrollo de proyectos web. Hablo de composer, una herramienta que hasta hace poco solo funcionaba en Linux, ya está portado a Windows. Composer permite automatizar las tareas, de añadir APIS de diferentes desarrolladores a nuestro proyecto web.

Para quien no lo sepa muchas funciones de PHP o están recortadas, o bien hace falta una determinada API como guzzle (usada para los webhook). En PHP, cuando nos ponemos a trabajar en el servidor hay funciones que de un server a otro pueden cambiar, es cierto que el cambio es mínimo, que generalmente se hacen todas las aplicaciones para que sean retrocompatibles, pero esto en la práctica suele cambiar ligeramente.

Para descargar estás bibliotecas podríamos ir a GitHub, y descargar una a una los API, o usar una herramienta que descarga todas las dependencias y las enlaza en un autorun.php. Para este último caso se utiliza composer.

Para usar composer simplemente, deberemos de instalar wamp, la última versión de Visual C++, añadimos a las variables del entorno nuestro PHP.exe, y después instalamos composer, en la versión de Composer que yo instalé tenía la opción de ponerlo en las variables de entorno de forma automática, y sino lo pones de forma manual.

En el tutorial que dejo aquí en la parte de arriba dejo como instalarlo, me despido de este cortito post. Un saludo y hasta la próxima.

viernes, 20 de diciembre de 2019

Bombas Lógicas; así mantuvo un programador su trabajo

diciembre 20, 2019 0



Hola estimado lector, hoy quiero hablar acerca de un caso que he leído hace poco en Xataka, (abajo os dejaré el enlace de la noticia completa), acerca de un programador que logró hacerse imprescindible en la empresa Siemens básicamente estafando a la empresa. Y he dicho bien estafando, ya que el empleado para hacer que la empresa lo siguiera considerando alguien imprescindible, creó varias "bombas lógicas" que sólo él sabía resolver.

La automatización y el futuro ya está aquí, ya hay máquinas que pueden usar el machine learning, para juzgar casos simples, como está pasando en Letonia, ya hay asistentes que más o menos permiten que tengas una agenda llena de tareas y esta te va "guiando", correctores ortográficos y un largo etcétera.

Pues este hombre llamado Tinley, consiguió hacer que siempre fuera dispensable en la empresa, haciendo que su código de programación fallara cada cierto tiempo, y así ganar él algo, con el trabajo que él mismo generaba.

Para ello empleó lo que se llama "bomba lógica", es decir un código lleno de fallos que sólo él conocía, y que sólo él sabía reparar. Debo de decir que este tipo de fallos, se hacen con códigos que previamente han sido ofuscados, o hechos a una complejidad difícil de detectar a simple vista. Tinley hizo un software que fallara cuando pasase un tiempo o se dieran una serie de condiciones.

Las bombas lógicas son difíciles de detectar, en este caso tenían el código y aunque fuera propietario, siempre puedes considerar contratar a alguien que haga ingeniería inversa, no obstante como ya he dicho no suele ser fácil. Aquí en España una empresa hace algunos años fue condenada por usar Scripts que hicieran fallar el ordenador al cabo del tiempo.

Pues nada hasta aquí mi comentario de hoy, espero que os haya gustado, si es así, puedes seguirme en mi página de Facebook, escribirme o suscribirte a mi feedly. Un saludo y hasta la próxima.




 FUENTE
https://www.xataka.com/historia-tecnologica/caso-empleado-que-programo-fallos-periodicos-su-software-para-asi-asegurarse-tener-siempre-trabajo

lunes, 16 de diciembre de 2019

Aprende a Programar de Forma Autodidacta

diciembre 16, 2019 0



Hola estimado lector, en esta ocasión quiero comentar una noticia, que me encontré en el periódico hace algunos días, y es sobre que muchos programadores, creo recordar que alrededor del 60%, de los nuevos desarrolladores, estaban empezando a aprender a programar de forma autodidacta. Básicamente ser autodidacta consiste en descargarte un PDF, o bien a través de YouTube aprender por vídeos.

Yo aprendí a programar de una forma mixta, y es que los que habéis leído algún que otro post de los míos, yo aprendí en un instituto a distancia, es decir me daban los materiales en el instituto, un número de teléfono para llamar una vez a la semana, y me mandaban tareas online, exámenes online, y tenía obligación de participar en los foros del instituto. Al cabo de 8 meses había que presentarse a un examen presencial, en un instituto de mi comunidad autónoma.

Yo siempre digo lo mismo los estudios online NO son para todo el mundo, ya que depende de la profesión, no es lo mismo un médico que un programador), prueba de ello es que de 100 personas que se apuntan en el FP a distancia, al menos en Andalucía, (puede cambiar según FP y los módulos en cuestión que se matricule la gente), al final llegan alrededor de 10 personas, pero este no es un motivo para desmotivarse. Ser programador o desarrollador es aceptar que toda la vida vas a estar estudiando, y que nunca vas a parar de aprender.

En la programación yo recomiendo estar constantemente reciclándose, para ello, yo recomiendo plataformas de vídeos online con cursos acorde a las diferentes especialidades que existen, por ello, voy a nombrar algunos websites:


  • Udemy: Sirve para aprender prácticamente cualquier cosa en materia tecnológica, con el problema que prácticamente todos los cursos interesantes están en Inglés.
  • Platzi: Es un proyecto, de origen latino, por 250€ aprendes a programar prácticamente cualquier lenguaje de programación actual, alrededor del 70% de los alumnos tienen una mejora salarial al cabo del año.
  • Tutellus plus: Este website sirve para aprender prácticamente cualquier lenguaje o tecnología, está orientado a público tanto de España como de América-Latina.
  • YouTube: En esta aplicación popular también se emplea para aprender programación, además de cocina o montar ciertos muebles 😉.


Con este post me despido por hoy, la verdad no encuentro tiempo para dedicarle muchos post a esto, sin embargo hago lo que puedo, sin más me despido, un saludo y hasta el próximo post😁😁.


martes, 10 de diciembre de 2019

Avast y El precio de usar software "gratis"

diciembre 10, 2019 0



Hola estimado lector es martes, y hoy he leído una noticia acerca de, lo que muchos hablamos en estos lares que no lee nadie, y sí se ha destapado un escándalo relacionado con Avast ya que este antivirus ha estado recopilando datos de diferentes usuarios a través del navegador web.

No se sabe si estos datos eran recopilados sólo por la extensión que ofrece Avast para los diferentes navegadores, o si también ha estado "espiando" (después explicaré porque no es exactamente espiar) a través de diferentes maneras que existen. Recordar  que no es muy complejo implementar la vigilancia, al fin y al cabo, un antivirus suele tener todos los permisos del sistema, hasta modificar archivos infectados del sistema.

Pues empezaré explicando que Avast siempre, antes de empezar a usarlo, nos aparece un aviso legal de que tus datos van a ser recopilados, para más tarde ser procesados, estudiados, etc. Luego si aparece este escándalo lo que menos podemos hacer es escandalizarnos, debido a que es lógico que en algún momento si le vendemos datos a terceros, en algún momento esa información sea usada de forma inapropiada.

Todos sabemos lo que pasó en Gran Bretaña con el brexit, una serie de hackers emplearon información que tenía Facebook, entre otras empresas, para favorecer el "sí" a una salida de UK de la unión europea. Este tipo de escándalo advierto que irá a más ya que todo el mundo firma contratos de privacidad sin entenderlos y sin que haya alternativa "libre" a ese software.

Cómo respuesta tanto Firefox cómo opera han baneado las extensiones de Avast en sus respectivos repositorios de extensiones y plugins. Imagino que en futuras versiones de Firefox y opera no estarán disponibles estás extensiones, como suele pasar cada vez que hay un escándalo así.

Y es lo que yo siempre digo, no hay nada gratis en esta vida, si existe una empresa, una persona o alguien que trabaje gratis, miraros la letra pequeña. Yo siempre digo "si algo te cuesta tiempo y dinero, y a tus clientes les ahorras tiempo y dinero, es ético cobrarles". Y si ese algo te lo dan 'gratis' mucho cuidado, usarán tus datos para venderte otras cosas.

Otra cosa que no se suele hablar es que hace algunos meses la UE baneó Kaspersky, acusándolo de espionaje industrial, es un escándalo mucho más grande que este, y prácticamente no ha bajado las instalaciones de Kaspersky. Entre otras cosas porque un antivirus mejor no hay, o al menos yo no he encontrado una mejor alternativa ante una infección gorda😉.

Pues nada solo quería comentar este artículo, abajo os dejaré donde podéis encontrarlo, si os ha gustado este artículo podéis dejármelo saber en los comentarios, y nada, sin más me despido, un saludo y hasta la próxima 😁😁.


FUENTE 

domingo, 8 de diciembre de 2019

El Principio De Pareto En El Desarrollo Web

diciembre 08, 2019 0



Hoy quiero hablar de una de las cosas más curiosas de la vida, ya que Pareto está en gran parte de nuestra vida diaria. En este artículo hablo desde mi experiencia de 1 año y 6 meses trabajando de programador, y hablo desde mi opinión personal, que para algo es mi blog.

Lo primero que voy a definir de forma formal que es el principio de Pareto y después voy a mostrar unos cuantos de ejemplos. El principio de Pareto dice que el 20% de tus acciones, van a representar el 80% de los resultados. Por ejemplo: 

- El 20% de los reclusos, representan el 80% de todos los delitos que se comenten en un país.
- El 20% de los recursos que produce un país suele representar el 80% de los recursos.
- El 20% de los ciudadanos tiene el 80% de la riqueza de un país.

La verdad por aquí os voy a dejar un enlace en wikipedia sobre la ley 80/20, la verdad es una ley muy interesante. En cierta ocasión UTBH en una una entrevista con 7 mujeres sin piedad, hablo que alrededor del 80% de los ingresos de YouTube lo produce el 20% de canales.

En el mundo del desarrollo web se produce este fenómeno, de otra forma bastante particular, y es algo que he hablado con otros desarrolladores. Y es que en un proyecto complejo nos pasamos un 80% del tiempo leyendo código y un 20% escribiendo.

Es algo realmente curioso ya que en la mayoría de institutos, al menos los de España, se da la circunstancia que no se enseña a leer códigos de otros compañeros, así como hacer que el código se entienda entre desarrolladores.

Hace un par de semanas me encontré con un problema en PrestaShop, una aplicación web cuya documentación oficial, no incluye información de cómo hacer las cosas más complejas, y si lo quieres saber, tienes que pagar, o debes de buscarte la vida como puedas. Pues bien en una de esas leí el código PHP sin documentar de uno de los ".PHP" y logre echar a andar el proyecto.

La verdad quería comentar en este post, el principio de Pareto y como influye en la vida de los programadores. Sin más por aquí voy dejando este post, si quieres que comente alguna tecnología o algo en particular, me lo podéis dejar en los comentarios, sin más me despido, un saludo y hasta la próxima 😁😁.



sábado, 7 de diciembre de 2019

Unión Humanos-Robots E IA

diciembre 07, 2019 0



Hace tiempo comenté un libro que me había leído llamado lo inevitable, de Kellin, en estas últimas noches me he aficionado a leer biografías, y me estoy leyendo la de Elon Musk. Una biografía de una persona que ha cambiado la forma de ver el mundo bancario, con su 'invento' PayPal, y ahora se está lanzando al mundo del espacio entre otros proyectos.

Uno de los proyectos en los cuales está metido Elon Musk, es en la interoperabilidad entre robots y humanos, Elon quiere fusionarnos con máquinas , para no volvernos obsoletos con la inteligencia artificial.

Elon dice que en un mundo donde la IA se ha está imponiendo a pasos agigantados, y se está implementando en cientos de países, por ejemplo en Estonia una parte de los juicios lo hacen IA, esto podría desplazar al ser humano, y destinarlos al fin de los tiempos, si no se produce dicha fusión.

Una cosa que hay que plantearnos a la hora de hacer esta implementación, es que cualquier PC, que tenga interfaz gráfica o se conecte a internet (las GUI aunque parezca imposible tienen conexiones de red, aunque es un tema complejo) es susceptible de ser hackeado, manipulado, e incluso ser usado con malas intenciones.

Por ello el dilema de conectar máquinas con seres humanos, aunque cada vez lo veo más posible, suelo "jugar" con Arduino, y  desde luego es cuestión de tiempo que alguien adapte un microbit con micropython y estos incluyan toda clases de sensores. Los sensores añadirán funcionen extras al ser humano, y estás opciones se pueden usar para el bien y el mal, si digo las 2 cosas, porque quiénes tenemos más edad sabemos que el ser humano es malo por naturaleza.

 Que tipo de sensores? Desde el noble sensor detector de diabetes, y su solución de insulina, detectores de lluvia, lectores de noticias, y así podríamos llegar hasta detectores de mentiras o la manipulación mediante exploits de las vulnerabilidades de un marca pasos, y estoy convencido que esto llegará.

Por ello debemos de tener cuidado con este tipo de tecnologías, ya que no sabemos hasta que punto puede ser bueno o perjudicial estás tecnologías. Este es mi blog, y tengo derecho a expresarme, la verdad si has llegado hasta el final de este artículo enhorabuena, me gustaría que dejaras tu opinión de este tema, ¿Que te parece? Sin más me despido, un abrazo y hasta la próxima.

lunes, 2 de diciembre de 2019

Escucha tu Blog Favorito o Wikipedia

diciembre 02, 2019 0



Hola estimados lectores hace unos días me de encontré con un artículo escrito en Xataka acerca de que Wikipedia lastra su modernización, en dicho artículo habla acerca del uso del lenguaje escrito frente al vídeo que se está popularizando más.

Es cierto que el vídeo es mucho más popular que el formato escrito, ya que el ser humano asimila mejor la imagen que el texto, pero no por ello debe de caer la popularidad de este último.

Además cabe decir que el formato de vídeo debe de ser una tortura moderar esos vídeos ya que todo va por inteligencia artificial y machine learning. Además YouTube es un sitio de dudosa rentabilidad, prueba de ello son las pocas plataformas que existen, cómo Vimeo que no le hacen ni sombra a la criatura de Google.

Aquí muestro uno de los plugins más interesantes para convertir el texto en audio, se puede usar en Chrome, y es bastante útil.












Y nada hasta aquí mi tutorial de hoy espero que hayan aprendido algo, sin más un saludo hasta la próxima.


FUENTE:
https://www.xataka.com/otros/wikipedia-se-queda-atras-video-como-filosofia-contenido-libre-que-encumbro-lastra-su-modernizacion-audiovisual

viernes, 29 de noviembre de 2019

ODBC y JDBC

noviembre 29, 2019 0



Hola, estimado lector, estoy dando en el instituto un tema muy interesante con respecto a las bases de datos, y es acerca de cómo conectarse a los diferentes sistemas de gestión de bases de datos.Lo primero que debemos de tener claro es que una base de datos nos permite almacenar diferentes datos de forma no volátil en nuestro ordenador o servidor.

Lo más interesante en las bases de datos es su posibilidad de que varias personas puedan usar a la vez, la misma base de datos, aunque no tiene porqué, ya que hay BDD como access o SQLite que sólo se pueden usar en un ordenador local.

El primer protocolo o driver que nació para interconectar BDD con la aplicación, fue ODBC desarrollado por Microsoft, luego se desarrollaron drivers que hacían de puente entre Java y ODBC, y luego aparecieron los nativos desarrollados por terceros o por el fabricante con todos sus problemas, cómo por ejemplo el de potabilidad entre plataformas.

Ahora estoy haciendo en ejercicio de conectar con una BDD en access que emplea un driver JDBC perfectamente nativo, ucanaccess lo estoy probando, cuando tenga algo lo posteare, un saludo y hasta la próxima.

Buscar en este blog

Popular Posts

Tags

blog (408) software (267) aprender (262) apuntes sueltos (257) informatica (249) programación (238) windows (186) opinion (169) linux (168) open source (164) sistemas (153) java (87) servicios (76) YouTube (75) empresas (75) anecdotas (72) ejercicio java (57) hacking (54) arduino (48) hardware (47) seguridad (41) noticia (31) gameplay (30) gpl (30) php (30) PHP y MySQL (29) C (27) amazon (27) electronica (27) robotica (27) tecnología (25) kali linux (24) libro (23) reto (20) compras (18) javascript (18) android (17) informática (16) kindle (16) redes sociales (16) bitcoin (15) ebook (15) criptodivisas (14) adsense (13) DAM (12) curso linux (12) crackme (11) google (11) opinión (10) redes (10) documental (8) mysql (8) viajar (6) electrónica (3) noticias (3) odoo (3) videojuego (3) 20minutos.es (2) SGE (2) crm (2) idioma (2) internet (2) juguetes (2) pelicula (2) robots (2) spanish (2) sql (1)