Translate

miércoles, 27 de julio de 2016

Apache Spark 2.0.0 esta con nosotros!!


Se ha lanzado la versión 2.0.0 de Apache Spark con muchas mejoras, entre las que podemos nombrar:

  • Soporte a SQL 2003 
  • Mejora de performance
  • Soporte para uso de R
  • Streaming
  • Y más!!


Dejo link: http://spark.apache.org/releases/spark-release-2-0-0.html

lunes, 25 de julio de 2016

Elixir 1.3



Que tarde, que tarde!! Se me repaso, la nueva versión de Elixir, que trae cosas interesantes.

Como los seguidores más atentos del blog recordaran Elixir es un lenguaje funcional que corre sobre la maquina virtual de Erlang, y tiene como objetivo hacer más fácil el desarrollo en la tecnología de Erlang.

Elixir 1.3, fue anunciado por José Valim. La nueva versión depreca (se dice así?) tareas imperativas y añade nuevos tipos y métodos de acceso, mejora su herramienta de Mixing y mejora el framework de pruebas unitarias ExUnit.

Para mayor información dejo el release note: https://github.com/elixir-lang/elixir/releases/tag/v1.3.0

domingo, 24 de julio de 2016

Spring Statemachine Framework


Nunca les paso que deben diseñar una maquina de estados, pero utilizar un framework de bpm es muchisimo pero hacerlo a mano es un trabajo muy arduo.

Por eso spring diseño, Spring Statemachine Framework.

La idea es simple, es un framework que permite diseñar maquinas de estados de forma muy fácil. Como cualquier maquina de estados tenemos estados y eventos que permiten cambiar de estado:

 static enum States {
    STATE1, STATE2
}

static enum Events {
    EVENT1, EVENT2
}

Con esto tenemos los estados y los eventos, pero falta algo muy importante, definir los caminos o transiciones para esto utilizamos un objeto de configuración:

@Configuration
@EnableStateMachine
static class Config1 extends EnumStateMachineConfigurerAdapter<States, Events> {

    @Override
    public void configure(StateMachineStateConfigurer<States, Events> states)
            throws Exception {
        states
            .withStates()
                .initial(States.STATE1)
                .states(EnumSet.allOf(States.class));
    }

    @Override
    public void configure(StateMachineTransitionConfigurer<States, Events> transitions)
            throws Exception {
        transitions
            .withExternal()
                .source(States.STATE1).target(States.STATE2)
                .event(Events.EVENT1)
                .and()
            .withExternal()
                .source(States.STATE2).target(States.STATE1)
                .event(Events.EVENT2);
    }
}

Luego definimos el bean que va ser utilizado en esta maquina de estado:

@WithStateMachine
static class MyBean {

    @OnTransition(target = "STATE1")
    void toState1() {
    }

    @OnTransition(target = "STATE2")
    void toState2() {
    }
}

Finalmente podemos utilizar esta maquina:

static class MyApp {

    @Autowired
    StateMachine<States, Events> stateMachine;

    void doSignals() {
        stateMachine.start();
        stateMachine.sendEvent(Events.EVENT1);
        stateMachine.sendEvent(Events.EVENT2);
    }
}

Y listo!

Dejo link: http://projects.spring.io/spring-statemachine/

miércoles, 20 de julio de 2016

Try .net mvc

La gente de codescholl me invito a cursar su nuevo curso gratuito sobre .net mvc. Este curso pertenece a la colección "try" que son muy buenos para tener contacto por primera vez con una tecnología, les dejo el mail que me enviaron:



Code School
{alt}
Learn the basics of building web applications with ASP.NET MVC.
VIEW COURSE CONTENT
Twitter IconFacebook IconYoutube IconGoogle+ Icon
Have questions or need assistance?

FAQ
© 2016 Code School LLC. Crafted lovingly in Orlando, Florida.
Code School 618 E South Street Suite 620 Orlando, FL 32801 USA

domingo, 17 de julio de 2016

Que es una Sequence en Oracle?


En mysql tenemos los valores autoincrementales, que están muy buenos pero siendo realistas tenemos poco control de la secuencia que llena el valor autoincremental.

En oracle en cambio tenemos objetos secuencia que nos permiten tener más control de los valores autoincrementales. Ojo! la secuencia es un objeto independiente del campo que deba llenar. Es decir podemos tener una secuencia para todos nuestros campos autoincrementales o una secuencia para cada uno de ellos. Como ven, tenemos mucha más libertad.

Como creo una secuencia? Asì:


Aja... claro! Mejor veamos un ejemplo, no?


CREATE SEQUENCE customers_seq
 START WITH     1000
 INCREMENT BY   1
 NOCACHE
 NOCYCLE;

Con estas sentencias estamos creando una secuencia que comienza en 1000 y va de 1 en 1.

Ahora bien, como la usamos?

por ejemplo con el metodo nextval podemos acceder al proximo valor.

Select customers_seq.NEXTVAL from dual;

Por lo tanto podemos utilizarla en un insert:


INSERT INTO customers_tab (id, name)
    VALUES (customers_seq.NEXTVAL, 'Acme');

También podemos saber el valor actual con CURRVAL

INSERT INTO Line_items_tab (Orderno, Partno, Quantity)
    VALUES (Order_seq.CURRVAL, 29374, 1);

Ojo al piojo, se puede usar CURRVAL solo luego de ejecutar NEXTVAL, es decir si no ejecutaste NEXTVAL, CURRVAL va dar error.

Podemos alterar la secuencia, pero nunca reiniciarla. Para reiniciarla tenemos que eliminarla y crearla nuevamente.

ALTER SEQUENCE emp_sequence
    INCREMENT BY 10
    MAXVALUE 10000
    CYCLE
    CACHE 20;

Dejo link: https://docs.oracle.com/cd/B28359_01/server.111/b28310/views002.htm




sábado, 16 de julio de 2016

domingo, 10 de julio de 2016

Don Electron

Electron permite construir aplicaciones nativas de la misma forma que construimos una web. Utilizando tecnologías javascript, html y css con electrón podemos construir aplicaciones nativas.

Entre sus características podemos nombrar:

  • Tecnología web: Utiliza HTML, CSS, javascript y tecnologías node.js
  • Open Source: Es totalmente libre y esta alojado en github
  • Cross Platform: compatible con Linux, Windows y OsX


Dejo un video:


y un poco de música tipo rock and roll:


Dejo link: http://electron.atom.io/

jueves, 7 de julio de 2016

White Paper sobre MySQL Enterprise Edition

No soy de dar publicar publicidad de empresas, pero creo que es interesante publicar información técnica sobre productos por más que sean comerciales.

Me llego este mail y se los comparto:

View this message in a Web browser
MySQL Enterprise Edition Product Guide
White Paper
MySQL Enterprise Edition Product Guide
MySQL Enterprise Edition Product Guide
Get Your White Papercta-arrow
Ensure Data Protection and Regulatory Compliance
Did you know that Malware & Ransomware increased 35% in the past year and that over half a billion personal records were stolen or lost in 2015? Additionally, the compliance risk has become one of the most significant ongoing concerns for executives.
 
How can you ensure that your MySQL databases are protected against external attacks and misuse of information while achieving regulatory compliance?
Access our Resource Kit to discover
slap-hr
bulletThe MySQL Enterprise Edition advanced security features and management tools that can help you protect your organization
bulletHow to enable data-at-rest encryption in MySQL
bulletHow to solve complex business auditing requirement
Get it nowcta-arrow

lunes, 4 de julio de 2016

Que es Erlang distribution?


El "distribution protocol" es el medio por el cual varios nodos de Erlang se unen para formar un clúster. Cuando se agrupan los nodos de Erlang, cualquier proceso puede enviar mensajes a los procesos en cualquier otro nodo, y generar nuevos procesos en cualquier otro nodo. Esto forma la base para las aplicaciones distribuidas como Mnesia, la aplicación de base de datos que viene con Erlang/OTP, y RabbitMQ.

En este post,  se describe cómo ejecutar el protocolo de distribución de Erlang sobre TLS, y cuáles son los problemas que puede o no puede resolver.

Dejo link:
https://www.erlang-solutions.com/blog/erlang-distribution-over-tls.html?utm_source=Gplus&utm_medium=groups&utm_campaign=TLSblog

domingo, 3 de julio de 2016

Microsoft anuncia la disponibilidad de .NET Core 1.0

Microsoft ama a linux y cada vez más me creo este cuento...

Porque Microsoft ha anunciado la disponibilidad de .NET Core 1.0, ASP.NET Core 1.0 y Entity Framework Core 1.0, los cuales están disponibles para Windows, OS X y GNU/Linux a través de la instalación de .NET Core 1.0.

.NET Core 1.0 forma parte del proyecto de Microsoft para ir liberando .NET bajo licencia MIT, ofreciendo un framework Open Source para crear aplicaciones web modernas, librerías y aplicaciones de consola, incluyendo las librerías y herramientas necesarias. Además Microsoft ha liberado extensiones tanto para Visual Studio como Visual Studio Code para poder crear proyectos con .NET Core. Para aquellos que estén interesados en programar con este framework, Microsoft ha publicado también documentación en su sitio web, detallando aspectos como el hecho de que es Open Source y haciendo una breve comparativa con Mono y la rama oficial .NET Framework.

Dejo links:
https://dotnet.github.io/
https://www.microsoft.com/net/core

Probando Mint

Como ya había dicho, me baje linux mint 18, y lo probé. Muy bueno!!

Nada más que decir...

Las novedades son muy buenas y todo bajo esa simpleza que lo caracteriza. Cinnamon 3 es muy bueno y estable.

La verdad, muy contento.

Dejo screenshots:







sábado, 2 de julio de 2016

Introducción al Business Intelligence


Me llego esta mail de Universitat Oberta de Catalunya y es muy interesante:

Hola Emanuel,
Nos ponemos en contacto contigo para informarte de que, atendiendo a la petición que nos habéis hecho muchos de vosotros, hemos dado acceso abierto a los contenidos del MOOC.
Creemos que también pueden interesarte otros contenidos en vídeo de nuestra cuenta de Vimeo, por lo que te invitamos a visitarla.
Por otra parte, nos gustaría recordarte que sigues teniendo a tu disposición los recursos siguientes:
  • Notícias y entradas de difusión en Inteligencia de Negocio y Análisis de Datos en nuestro Blog.
  • Toda la información sobre el Máster y los programas de la UOC en Business intelligence.  
Te agradecemos de nuevo tu participación e interés en nuestro MOOC de Introducción al Business intelligence.
Recibe un cordial saludo.
José Ramón Rodríguez
Director de los programas en Inteligencia de negocio y análisis de datos 
Universitat Oberta de Catalunya (UOC)


Yo me perdí el curso pero es muy bueno que compartan los vídeos, y por lo que vi son de muy buena calidad. Muy buena iniciativa.


Ya está entre nosotros Linux Mint 18

Si, ya estoy bajando Mint 18, es una nueva versión de una distro genial. Esta versión esta basada en ubuntu 16.04 y tiene el nombre de Sarah. la mayor novedad es cinnamon 3, que les dejo un video:



Linux Mint 18 llega con un nuevo tema llamado Mint-Y, que le da un aspecto muy atractivo.

Dejo link:
https://www.linuxmint.com/

miércoles, 29 de junio de 2016

Curso de Angular 2

Code school me envío un correo sobre angular 2, la primera clase es gratis.

Dejo más info:

While many web apps were built with Angular 1, the faster and more powerful Angular 2 will soon be the new standard. Play Accelerating Through Angular 2 now to start building the future of the web.
START LEVEL 1

Level 1: Angular 2 Ignition
FREE
Get an introduction to Angular 2 and write your first component with a template.

Level 2: Template Traction
Start with a few structural directives and then transform your view with pipes.

Level 3: Tuning It Up
Make your code more maintainable by organizing it into multiple components, separating your HTML and CSS, creating a data model, and splitting your data into a mock file.

Level 4: Data Binding Boost
Explore how to send data from JavaScript to HTML and HTML to JavaScript using one-way data binding, and then learn how to do both at the same time with two-way binding.

Level 5: Service Fuel Injection
Learn how to create your own services and then how to use the HTTP library to call out to the internet.
Share on Twitter