Crear un piano con sonido en Javascript en menos de 10 minutos ?

En este video te mostrare como crear un piano en menos de 10 minutos utilizando javascript, sin la necesidad de tener un mp3 o wav, y solo con un navegador y código.

Piano (pícale a las teclas)

CSS


* { box-sizing:border-box; }

body{ margin:0; background:#222; }
ul {
	height:18.875em; width:34em;
  margin:5em auto; padding:3em 0 0 3em; position:relative; 
  border:1px solid #160801; border-radius:1em; 
  background:-webkit-gradient(linear, right bottom, left top, color-stop(0%,rgba(0,0,0,0.3)), color-stop(100%,rgba(0,0,0,0))), url('https://f.cl.ly/items/2q1f3t0C3R1b0g081w3n/vwood.png');
box-shadow:0 0 50px rgba(0,0,0,0.5) inset, 0 1px rgba(212,152,125,0.2) inset,0 5px 15px rgba(0,0,0,0.5); }
li { margin:0; padding:0; list-style:none; position:relative; float:left; }

ul .white {
	height:16em; width:4em; z-index:1;
	border-left:1px solid #bbb;
	border-bottom:1px solid #bbb;
	border-radius:0 0 5px 5px;
	box-shadow:-1px 0 0 rgba(255,255,255,0.8) inset, 0 0 5px #ccc inset, 0 0 3px rgba(0,0,0,0.2);
	background: linear-gradient(top, #eee 0%,#fff 100%);
}

ul .white:active {
	border-top:1px solid #777;
	border-left:1px solid #999;
	border-bottom:1px solid #999;
	box-shadow:2px 0 3px rgba(0,0,0,0.1) inset, -5px 5px 20px rgba(0,0,0,0.2) inset,0 0 3px rgba(0,0,0,0.2);
	background: linear-gradient(top, #fff 0%,#e9e9e9 100%);
}

.black {
	height:8em; width:2em; margin:0 0 0 -1em; z-index:2;
	border:1px solid #000;
	border-radius:0 0 3px 3px;
	box-shadow:-1px -1px 2px rgba(255,255,255,0.2) inset, 0 -5px 2px 3px rgba(0,0,0,0.6) inset, 0 2px 4px rgba(0,0,0,0.5);
	background:linear-gradient(45deg, #222 0%,#555 100%);
}

.black:active {
	box-shadow:-1px -1px 2px rgba(255,255,255,0.2) inset, 0 -2px 2px 3px rgba(0,0,0,0.6) inset, 0 1px 2px rgba(0,0,0,0.5);
	background:linear-gradient(left, #444 0%,#222 100%);
}

.a,.g,.f,.d,.c { margin:0 0 0 -1em;  }

ul li:first-child { border-radius:5px 0 5px 5px; }
ul li:last-child { border-radius:0 5px 5px 5px; }

HTML

<ul class="set">
        <li onclick=" jsNota(174.614)" class="white b"></li>
        <li onclick=" jsNota(184.997)" class="black as"></li>
        <li onclick=" jsNota(195.998)" class="white a"></li>
        <li onclick=" jsNota(207.652)" class="black gs"></li>
        <li onclick=" jsNota(220.000)" class="white g"></li>
        <li onclick=" jsNota(233.082)" class="black fs"></li>
        <li onclick=" jsNota(246.942)" class="white f"></li>
        <li onclick=" jsNota(261.626)" class="white e"></li>
        <li onclick=" jsNota(277.183)" class="black ds"></li>
        <li onclick=" jsNota(293.665)" class="white d"></li>
        <li onclick=" jsNota(311.127)" class="black cs"></li>
        <li onclick=" jsNota(329.628)" class="white c"></li>
</ul>

Javascript


var context= new AudioContext();

function jsNota(frecuencia){
        var o= context.createOscillator();
        g=context.createGain();
        o.connect(g);
        o.type="sawtooth";
        o.frequency.value=frecuencia;
        g.connect(context.destination);
        o.start(0);
        g.gain.exponentialRampToValueAtTime(0.00001,context.currentTime +1.5);
    }

¿Cómo mostrar los usuarios activos en tiempo real en C# .Net con SignalR?, Real time

En este video te mostrare como saber cuántos usuarios están activos en tu sitio web en tiempo real utilizando SignalR, una tecnología que sirve para conectarnos con sockets de manera rápida y funcional.

¿Cuál es la diferencia entre Java y Javascript?

Esta es una pregunta que todos nos hicimos alguna vez, quizá cuando comenzamos a programar y escuchamos de estos 2 lenguajes de programación.

Es una de las dudas que seguirán existiendo siempre, gracias al juego de letras que una palabra contiene a la otra, nos hace creer, que tienen relación directa, como cuando se habla de Auto y Automóvil por ejemplo.

La verdad su relación solo tiene que ver con su historia y un poco de mercadotecnia.

Java es un lenguaje de programación que nació en 1991, creado para ser usado en el proyecto set-top-box por la empresa Sun Microsystems, un dispositivo receptor de señales analógicas de televisión. Su primer nombre fue Oak, luego Green y por ultimo quedo con el nombre de Java. Hay muchas historias sobre el origen del nombre Java que van desde las Iniciales de los diseñadores del lenguaje hasta la hipótesis de que es el nombre de un café que se vendía en una cafetería a la cual acudían los creadores del lenguaje (por eso el logotipo de la taza de café).

Resultado de imagen para java logo
Logo de Java

La propuesta del lenguaje Java era que funcionara en el dispositivo que fuera, sin importar su naturaleza: televisiones, lavadoras, computadoras etc, corriendo en una máquina virtual y permitiendo a los programadores desarrollar software en distintas plataformas.

En el año 2009 Oracle adquiere Sun Microsystem, y con ello, adquiere Java.

Java se describe como un lenguaje de programación Orientado a Objetos, compilado, fuertemente tipado y multiplataforma, y es en Java 8 cuando se le añade capacidad para programación funcional mediante expresiones Lambda.

El nombre de Javascript se dio quizá por un aspecto de mercadotecnia, en el año de 1995. ¿Recuerdan que había un navegador llamado Netscape? Pues este lenguaje agrego compatibilidad con Java. Ese mismo año nació Javascript, un lenguaje creado por Brendan Eich, un trabajador de Netscape. En un inicio Javascript tenía el nombre de Mocha, más tarde se llamó LiveScript, y por ultimo termino con el nombre Javascript. Curioso que el mismo año en el que Netscape agrego soporte a Java. Quizá se quiso aprovechar la bomba de Java para que los programadores aceptaran Javascript pensando que era una prolongación de Java.

Resultado de imagen para brendan eich
Brendan Eich

Javascript es un lenguaje de programación interpretado (Java es compilado), sigue el estándar EMAScript, se define como orientado a objetos basado en prototipos y débilmente tipado (Java es fuertemente tipado). Es decir, javascript es tan distinto de Java como lo es php de Java. Javascript comparte características a Java, pero son tan pocas que ni siquiera se parecen en sintaxis, paradigma, organización, arquitectura y funcionalidad.

Al parecer una campaña de mercadotecnia en el nombre hizo de Javascript ser lo que es ahora, quizá pudo haber terminado como VBScript si no hubiera cambiado su nombre para ser parecido a uno de los lenguajes fuertes del momento. Quizá, pero eso no quita que Javascript sea un buen lenguaje de programación, al igual que Java, pero distintos, tan distintos que su mayor relación es que un nombre de uno contiene al otro.

Aprende a programar desde Cero, sin censura

Esta es una serie de videos que hice para que cualquier persona afín o no afín al desarrollo de software, pueda aprender a programar.

Aviso: el siguiente contenido contiene sátira y majaderías, ya que fue hecho con ese fin.

Curso de C# .Net

En este curso me enfoco a los aspectos de C# .Net directamente sin tanta teoria. El curso es grabado en vivo como los mejores programas de la televisión, en vivo y con errores.

Aquí no veras Programación Orientada a Objetos, que son las sentencias if o while, estos conceptos ya los debes conocer, e igual hay miles de sitios aburridos que te lo enseñan.

Yo me enfocare a enseñarte C# .Net de una manera original, directo al grano, todo con el fin de que te sirva como una herramienta real de trabajo.

A partir del video 2 comenzaremos a realizar un chat multiplataforma, el cual estará conectado por medio de un servicio web al cual se comunicara un sistema hecho en MVC y otro en Windows Form.

La lista de videos esta ordenada conforme van saliendo y se encuentran aquí abajo. (Igual puedes dar clic a uno y seguir la lista de reproducción)

Código del curso (se actualiza cada que hay nuevos videos): clic aquí

1. Introducción

2. Entornos y arquitectura (Windows Form, MVC, MVC Api)

3. Publicación y configuración de IIS

4. Json a Objeto, recibir datos por POST

5. Serializar y deserializar objetos, generics, enviar datos por POST

6. Creación de librerías, ¿Que es el administrador de paquetes NuGet?, appsettings

7. Vistas en MVC .Net, Razor

8. Validaciones con DataAnnotatios en MVC .Net

9. Autentificación en MVC API .Net

10. Autentificación en MVC .Net utilizando servicio web, filtros, seguridad

11. Solicitudes remotas en tiempo real con SignalR

12. Verificar Access Token, regresar listado en json

13. Utilizar if y try catch en LINQ con Lambda

14. Enviar y recibir datos en tiempo real con SignalR

15. Seguridad y grupos en SignalR

16. Introducción a Windows Forms

17. Sesiones en windows forms

18. Creación de elementos dinámicamente en windows forms

¿Cómo utilizar serialize de jquery en un elemento que no es form? #js #jquery

Para utilizar serialize() de jquery en un conjunto de elementos que estén dentro de un padre que no sea un formulario puede ser posible, para ello te muestro un ejemplo suponiendo que el padre se llama “PadreQueNoEsForm”:


var parametros=$("#PadreQueNoEsForm :input").serialize();

Curso de MVC .Net C#, CRUD, Editar y Eliminar con Entity Framework #6

En este sexto video veremos como editar y eliminar registros por medio de Entity Framework.

Primer video del curso: https://www.youtube.com/watch?v=UZNoQMio4XM

Segundo video del curso: https://www.youtube.com/watch?v=XnyJUQqUaRk

Tercer video del curso: https://www.youtube.com/watch?v=7pZn93zHk1A

Cuarto video del curso: https://www.youtube.com/watch?v=HYIcMzRO8k0

Quinto video del curso: https://www.youtube.com/watch?v=znUDIaVDs5E

Descargar código del curso: Clic aquí

¿Cómo bloquear el botón de regresar del navegador con javascript?

El siguiente código sirve para que puedas bloquear desde una web por medio de javascript el botón de regresar que tiene el navegador.

El código funciona con Chrome, Firefox, Edge, Opera (quizá con otros navegador, pero con estos lo probe).

Solo basta que pongan las 3 líneas siguientes al finalizar de cargar su DOM.


window.location.hash="no-back-button";
window.location.hash="Again-No-back-button";//esta linea es necesaria para chrome
window.onhashchange=function(){window.location.hash="no-back-button";}

Video demostrándolo