Blog de Luis Dueñas dedicado a la difusión del Desarrollo en Microsoft .NET, Visual Studio, WinForms, WebForms, MVC, ASP .NET, jQuery, AJAX, HTML5, JavaScript, Móviles, etc. Encontrarás Libros, Demos, Artículos Técnicos, Entrenamiento.
Mostrando las entradas con la etiqueta APIs. Mostrar todas las entradas
Mostrando las entradas con la etiqueta APIs. Mostrar todas las entradas
miércoles, 3 de septiembre de 2025
Curso de Inteligencia Artificial en el Browser con JavaScript
Etiquetas:
AI,
APIs,
Browser,
Canvas,
Chrome,
Computer Vision,
Deep Learning,
Detección de objetos,
Detección de rostros,
Inteligencia Artificial,
Javascript,
KNN,
Machine Learning,
Modelos,
NLP,
Segmentación,
TensorFlow.js
domingo, 29 de julio de 2018
Videos - Cuarto Seminario de Desarrollo Web ASP.NET MVC & JavaScript
Videos del Seminario 4 Programando Mapas con Google Maps
Demo 01: Simple Mapa
Demo 02: Eventos, Marcadores, Ventanas de Información
Demo 03: Grabar y Recuperar Zonas en un Mapa
Demo 04: Controles del Mapa
Demo 05: Controles Personalizados
Demo 06: Estilos en Mapas
Demo 07: Superposiciones - Símbolos
Demo 08: Superposiciones - Iconos y Animaciones
Demo 09: Superposiciones - Polilíneas
Demo 10: Superposiciones - Polígonos, Círculos y Rectángulos
Demo 11: Agrupación de Marcadores (Markers Cluster)
Demo 12: Cargando Datos GeoJson
Demo 13: Cargar Datos UTM de Excel
Demo 01: Simple Mapa
Demo 02: Eventos, Marcadores, Ventanas de Información
Demo 03: Grabar y Recuperar Zonas en un Mapa
Demo 04: Controles del Mapa
Demo 05: Controles Personalizados
Demo 06: Estilos en Mapas
Demo 07: Superposiciones - Símbolos
Demo 08: Superposiciones - Iconos y Animaciones
Demo 09: Superposiciones - Polilíneas
Demo 10: Superposiciones - Polígonos, Círculos y Rectángulos
Demo 11: Agrupación de Marcadores (Markers Cluster)
Demo 12: Cargando Datos GeoJson
Demo 13: Cargar Datos UTM de Excel
Etiquetas:
.NET,
Animaciones,
APIs,
ASP.NET,
C#,
GeoJson,
Google Maps,
HTML,
Iconos,
InfoWindow,
Javascript,
Lduenas,
Mapas,
Marker,
MVC,
PanTo,
Polígonos,
Polilíneas,
Ubicación,
Zoom
jueves, 6 de octubre de 2016
El Libro del Día: Effective C# (2nd Edition)
El Libro del Día: 2016-10-06
Titulo: Effective C# (2nd Edition)
Autor: Bill Wagner
Editorial: Addison-Wesley
Nro Paginas: 343
Capítulos:
Chapter 1 C# Language Idioms
- Item 1: Use Properties Instead of Accessible Data Members
- Item 2: Prefer readonly to const
- Item 3: Prefer the is or as Operators to Casts
- Item 4: Use Conditional Attributes Instead of #if
- Item 5: Always Provide ToString()
- Item 6: Understand the Relationships Among the Many Different Concepts of Equality
- Item 7: Understand the Pitfalls of GetHashCode()
- Item 8: Prefer Query Syntax to Loops
- Item 9: Avoid Conversion Operators in Your APIs
- Item 10: Use Optional Parameters to Minimize Method Overloads
- Item 11: Understand the Attraction of Small Functions
Chapter 2 .NET Resource Management
- Item 12: Prefer Member Initializers to Assignment Statements
- Item 13: Use Proper Initialization for Static Class Members
- Item 14: Minimize Duplicate Initialization Logic
- Item 15: Utilize using and try/finally for Resource Cleanup
- Item 16: Avoid Creating Unnecessary Objects
- Item 17: Implement the Standard Dispose Pattern
- Item 18: Distinguish Between Value Types and Reference Types
- Item 19: Ensure That 0 Is a Valid State for Value Types
- Item 20: Prefer Immutable Atomic Value Types
Chapter 3 Expressing Designs in C#
- Item 21: Limit Visibility of Your Types
- Item 22: Prefer Defining and Implementing Interfaces to Inheritance
- Item 23: Understand How Interface Methods Differ from Virtual Methods
- Item 24: Express Callbacks with Delegates
- Item 25: Implement the Event Pattern for Notifications
- Item 26: Avoid Returning References to Internal Class Objects
- Item 27: Prefer Making Your Types Serializable
- Item 28: Create Large-Grain Internet Service APIs
- Item 29: Support Generic Covariance and Contravariance
Chapter 4 Working with the Framework
- Item 30: Prefer Overrides to Event Handlers
- Item 31: Implement Ordering Relations with IComparable<T> and IComparer<T>
- Item 32: Avoid ICloneable
- Item 33: Use the new Modifier Only to React to Base Class Updates
- Item 34: Avoid Overloading Methods Defined in Base Classes
- Item 35: Learn How PLINQ Implements Parallel Algorithms
- Item 36: Understand How to Use PLINQ for I/O Bound Operations
- Item 37: Construct Parallel Algorithms with Exceptions in Mind
Chapter 5 Dynamic Programming in C#
- Item 38: Understand the Pros and Cons of Dynamic
- Item 39: Use Dynamic to Leverage the Runtime Type of Generic Type Parameters
- Item 40: Use Dynamic for Parameters That Receive Anonymous Types
- Item 41: Use DynamicObject or IDynamicMetaObjectProvider for Data Driven Dynamic Types
- Item 42: Understand How to Make Use of the Expression API
- Item 43: Use Expressions to Transform Late Binding into Early Binding
- Item 44: Minimize Dynamic Objects in Public APIs
Chapter 6 Miscellaneous
- Item 45: Minimize Boxing and Unboxing
- Item 46: Create Complete Application-Specific Exception Classes
- Item 47: Prefer the Strong Exception Guarantee
- Item 48: Prefer Safe Code
- Item 49: Prefer CLS-Compliant Assemblies
- Item 50: Prefer Smaller, Cohesive Assemblies
Descarga:
Effective_C#_2nd_Edition
Titulo: Effective C# (2nd Edition)
Autor: Bill Wagner
Editorial: Addison-Wesley
Nro Paginas: 343
Capítulos:
Chapter 1 C# Language Idioms
- Item 1: Use Properties Instead of Accessible Data Members
- Item 2: Prefer readonly to const
- Item 3: Prefer the is or as Operators to Casts
- Item 4: Use Conditional Attributes Instead of #if
- Item 5: Always Provide ToString()
- Item 6: Understand the Relationships Among the Many Different Concepts of Equality
- Item 7: Understand the Pitfalls of GetHashCode()
- Item 8: Prefer Query Syntax to Loops
- Item 9: Avoid Conversion Operators in Your APIs
- Item 10: Use Optional Parameters to Minimize Method Overloads
- Item 11: Understand the Attraction of Small Functions
Chapter 2 .NET Resource Management
- Item 12: Prefer Member Initializers to Assignment Statements
- Item 13: Use Proper Initialization for Static Class Members
- Item 14: Minimize Duplicate Initialization Logic
- Item 15: Utilize using and try/finally for Resource Cleanup
- Item 16: Avoid Creating Unnecessary Objects
- Item 17: Implement the Standard Dispose Pattern
- Item 18: Distinguish Between Value Types and Reference Types
- Item 19: Ensure That 0 Is a Valid State for Value Types
- Item 20: Prefer Immutable Atomic Value Types
Chapter 3 Expressing Designs in C#
- Item 21: Limit Visibility of Your Types
- Item 22: Prefer Defining and Implementing Interfaces to Inheritance
- Item 23: Understand How Interface Methods Differ from Virtual Methods
- Item 24: Express Callbacks with Delegates
- Item 25: Implement the Event Pattern for Notifications
- Item 26: Avoid Returning References to Internal Class Objects
- Item 27: Prefer Making Your Types Serializable
- Item 28: Create Large-Grain Internet Service APIs
- Item 29: Support Generic Covariance and Contravariance
Chapter 4 Working with the Framework
- Item 30: Prefer Overrides to Event Handlers
- Item 31: Implement Ordering Relations with IComparable<T> and IComparer<T>
- Item 32: Avoid ICloneable
- Item 33: Use the new Modifier Only to React to Base Class Updates
- Item 34: Avoid Overloading Methods Defined in Base Classes
- Item 35: Learn How PLINQ Implements Parallel Algorithms
- Item 36: Understand How to Use PLINQ for I/O Bound Operations
- Item 37: Construct Parallel Algorithms with Exceptions in Mind
Chapter 5 Dynamic Programming in C#
- Item 38: Understand the Pros and Cons of Dynamic
- Item 39: Use Dynamic to Leverage the Runtime Type of Generic Type Parameters
- Item 40: Use Dynamic for Parameters That Receive Anonymous Types
- Item 41: Use DynamicObject or IDynamicMetaObjectProvider for Data Driven Dynamic Types
- Item 42: Understand How to Make Use of the Expression API
- Item 43: Use Expressions to Transform Late Binding into Early Binding
- Item 44: Minimize Dynamic Objects in Public APIs
Chapter 6 Miscellaneous
- Item 45: Minimize Boxing and Unboxing
- Item 46: Create Complete Application-Specific Exception Classes
- Item 47: Prefer the Strong Exception Guarantee
- Item 48: Prefer Safe Code
- Item 49: Prefer CLS-Compliant Assemblies
- Item 50: Prefer Smaller, Cohesive Assemblies
Descarga:
Effective_C#_2nd_Edition
Etiquetas:
.NET,
Addison-Wesley,
APIs,
Bill Wagner,
Boxing,
CallBacks,
Delegates,
Dynamic,
Effective C#,
Equality,
GetHashCode,
Interfaces,
Libros,
Operators,
Ordering,
PLINQ,
Properties,
Resources,
Serializable,
Types
viernes, 30 de septiembre de 2016
El Libro del Día: Exam Ref 70-480 Programming in HTML5 with JavaScript and CSS3
El Libro del Día: 2016-09-30
Titulo: Exam Ref 70-480 Programming in HTML5 with JavaScript and CSS3
Autor: Rick Delorme
Editorial: Microsoft Press
Nro Paginas: 353
Capítulos:
Chapter 1 Implement and manipulate document structures and objects
- Objective 1.1: Create the document structure
- Objective 1.2: Write code that interacts with UI controls
- Objective 1.3: Apply styling to HTML elements programmatically
- Objective 1.4: Implement HTML5 APIs
- Objective 1.5: Establish the scope of objects and variables
- Objective 1.6: Create and implement objects and methods
Chapter 2 Implement program flow
- Objective 2.1: Implement program flow
- Objective 2.2: Raise and handle an event
- Objective 2.3: Implement exception handling
- Objective 2.4: Implement a callback
- Objective 2.5: Create a web worker process
Chapter 3 Access and secure data
- Objective 3.1: Validate user input by using HTML5 elements
- Objective 3.2: Validate user input by using JavaScript
- Objective 3.3: Consume data
- Objective 3.4: Serialize, deserialize, and transmit data
Chapter 4 Use CSS3 in applications
- Objective 4.1: Style HTML text properties
- Objective 4.2: Style HTML box properties
- Objective 4.3: Create a flexible content layout
- Objective 4.4: Create an animated and adaptive UI
- Objective 4.5: Find elements using CSS selectors and jQuery
- Objective 4.6: Structure a CSS file by using CSS selectors
Descarga:
ExamRef_70480_Programming_HTML5_JavaScript_CSS3
Titulo: Exam Ref 70-480 Programming in HTML5 with JavaScript and CSS3
Autor: Rick Delorme
Editorial: Microsoft Press
Nro Paginas: 353
Capítulos:
Chapter 1 Implement and manipulate document structures and objects
- Objective 1.1: Create the document structure
- Objective 1.2: Write code that interacts with UI controls
- Objective 1.3: Apply styling to HTML elements programmatically
- Objective 1.4: Implement HTML5 APIs
- Objective 1.5: Establish the scope of objects and variables
- Objective 1.6: Create and implement objects and methods
Chapter 2 Implement program flow
- Objective 2.1: Implement program flow
- Objective 2.2: Raise and handle an event
- Objective 2.3: Implement exception handling
- Objective 2.4: Implement a callback
- Objective 2.5: Create a web worker process
Chapter 3 Access and secure data
- Objective 3.1: Validate user input by using HTML5 elements
- Objective 3.2: Validate user input by using JavaScript
- Objective 3.3: Consume data
- Objective 3.4: Serialize, deserialize, and transmit data
Chapter 4 Use CSS3 in applications
- Objective 4.1: Style HTML text properties
- Objective 4.2: Style HTML box properties
- Objective 4.3: Create a flexible content layout
- Objective 4.4: Create an animated and adaptive UI
- Objective 4.5: Find elements using CSS selectors and jQuery
- Objective 4.6: Structure a CSS file by using CSS selectors
Descarga:
ExamRef_70480_Programming_HTML5_JavaScript_CSS3
Etiquetas:
APIs,
Callback,
CSS3,
Document,
Events,
Exam Ref 70-480,
HTML5,
Javascript,
Libros,
Methods,
Microsoft,
Objects,
Program Flow,
Rick Delorme,
Serialize,
Styling,
UI Controls,
Validate,
Variables,
Web Worker
miércoles, 13 de julio de 2016
Artículo - JavaScript Developer
JavaScript Developer
1. Introducción
JavaScript es un Lenguaje de Programación interpretado desarrollado por Brendan Eich en 1995 cuando trabajaba en Netscape. JavaScript es orientado a objetos, basado en prototipos, débilmente tipado y dinámico. La especificación de este lenguaje se denomina ECMAScript y es elaborada por ECMA International.
Actualmente es uno de los Lenguajes de Programación mas usados en el mundo, ya que sirve para crear aplicaciones web, tanto de lado del cliente (desde sus inicios) y también de lado del servidor (en la actualidad).
En los 20 años de vida que tiene JavaScript, en los 10 primeros años solo se usaba para validaciones y manejo de controles, pero a partir de la incorporación de AJAX (2005), la creación de librerías como jQuery (2006), la creación de JavaScript en el servidor con NodeJS (2009), la aparición de las nuevas APIs sobre todo de HTML5 y la nueva especificación del lenguaje ECMAScript6 (2012), ha originado que JavaScript tenga un crecimiento exponencial.
Muchos desarrolladores escribían la mayor parte del código en el servidor, ya que los Frameworks de ese lado tenían una gran cantidad de APIs o Librerías que permitían realizar cualquier tipo de tareas, desde acceso a datos hasta gráficos, operaciones con datos, manejo de archivos, etc. Es por eso que se usaba mucho código en PHP, Java o .NET, ysolo un mínimo de código en JavaScript para validar, manejar el DOM y mejorar el formato o estilo.
Actualmente, todo lo que podíamos hacer en el servidor, lo podemos hacer en el cliente con JavaScript, desde hacer llamadas asíncronas con XHR o AJAX hasta manipular los datos, crear gráficos (en 2D y en 3D), cifrar datos, enviar y recibir notificaciones en tiempo real, etc. Esto se puede hacer nativamente usando las APIs de JavaScript o usando una Librería o Framework que encapsule dicho trabajo.
Nota: Antes yo escribía 80% de código en el servidor y 20% en el cliente, pero desde hace unos años escribo 20% de código en el servidor y 80% en el cliente usando JavaScript puro. Estos porcentajes concuerdan con "El Problema de la Performance" que se da 80% en el cliente y 20% en el servidor.
Muchos programadores creen conocer JavaScript, pero en realidad no conocen ni el 10% de lo que tiene. El propósito de este artículo es contribuir a aumentar ese conocimiento, mostrando la Historia, las APIs, las Librerías, los Frameworks, las Herramientas y las fuentes donde pueden aprender más sobre este lenguaje, para cambiar su forma de programar y usar "La Web como Plataforma de Desarrollo" a través del Navegador (Browser) usando como lenguaje "JavaScript".
2. Cronología de JavaScript (20 años)
- 1995: En Mayo Brendan Eich crea Mocha en 10 días
- 1995: En Setiembre se crea LiveScript
- 1995: En Diciembre cambia de nombre a JavaScript
- 1996: Microsoft crea JScript
- 1996: DHTML
- 1997: ECMA-262 Ed1 (ES1)
- 1998: DOM Level 1
- 1999: ES3 (Base JavaScript actual)
- 1999: Microsoft crea XmlHttpRequest (Pre-AJAX)
- 2000: DOM Level 2
- 2001: Douglas Crockford crea JSON
- 2004: DOM Level 3
- 2005: AJAX
- 2008: ECMAScript 4 (ES4)
- 2009: ECMAScript 5 (ES5). JSON, Object.create
- 2012: ECMAScript 6 (ES6). Modulos, Proxys
- 2012: Navigation Timing
- 2012: HTML5 Web Messaging
- 2012: Web Workers
- 2012: WebSocket
- 2013: Web Storage
- 2013: Touch Events
- 2013: Geolocation API
- 2013: Performance Timeline
- 2013: Web Notifications
- 2013: File API
- 2013: Messaging API
- 2013: Web Telephony API
- 2013: MediaStream Image Capture
- 2013: WebRTC 1.0
- 2013: Web Audio API
- 2014: Progress Events
- 2014: Indexed Database
- 2014: Server Sent Events (SSE)
- 2014: Web Cryptography API
- 2014: Web NFC API
- 2014: XMLHttpRequest Level 1
- 2014: Push API
- 2014: Streams API
- 2014: Screen Orientation API
- 2014: Service Workers
- 2014: TCP and UDP Socket API
- 2014: URL
- 2014: Clipboard API and Events
- 2015: ECMA-262 (6th Edition). ECMAScript 2015 Language Specification
3. APIs de JavaScript
- Document Object Model (DOM)
-) HTML: Document, Element, Event, HTML..., Node, NodeList, ParentNode, etc.
-) XML: XMLDocument.
-) SVG: Scalable Vector Graphics
- Gráficos
-) Canvas: CanvasGradient, CanvasRenderingContext2D, HTMLCanvasElement, ImageData.
-) SVG: SVGAnimate, SVGAnimated, SVGColor, SVGElement, SGVFont, SVGPath, SVGText.
-) WebGL: WebGLBuffer, WebGLObject, WebGLRenderbuffer, WebGLRenderingContext, etc.
- Almacenamiento
-) File API: Blob, File, FileList, FileReader, FileReaderSync, URL.
-) IndexedDB: IDBCursor, IDBDataBase, IDBFactory, IDBIndex, IDBObjectStore, etc.
-) Web Storage: Storage, StorageEvent, WindowLocalStorage, WindowSessionStorage.
- Conectividad
-) Web Sockets: BroadcastChannel, CloseEvent, EventSource, PortCollection, WebSocket.
-) Messaging: MessageChannel, MessageEvent, MessagePort.
-) WebRTC: RTCPeerConnection, RTCIceServer, RTCIceCandidate, RTCDataChannel, etc.
- Acceso:
-) Drag And Drop (D&D): DataTransfer, DataTransferItem, DataTransferItemList, DragEvent.
-) FullScreen: Document (fullscreenElement, fullscreenEnabled), Element (requestFullscreen).
- Estilos
-) CSS Object Model: CSS, CSSRule, CSSStyleSheet, MediaList, StyleSheet, etc.
-) Selectors: Document (querySelector, querySelectorAll), DocumentFragment, Element.
- Multimedia
-) Animation Timing: Window (cancelAnimationFrame, requestAnimationFrame).
-) Media: AudioTrack, HTMLMediaElement, HTMLTrackElement, MediaController, VideoTrack.
-) Pointer Lock: Document (exitPointerLock), Element (requestPointerLock), MouseEvent.
-) Web Audio: AnalyserNode, AudioBuffer, AudioListener, AudioParam, DelayNode, GainNode.
- Performance
-) Browser: History, ImageBitmap, Location, MimeType, Navigator, WindowBase64 (atob, btoa),
WindowTimers (clearInterval, clearTimeout, setInterval, setTimeout), etc.
-) Typed Arrays: ArrayBuffer, ArrayBufferView, DataView, Float..Array, Int..Array, Uint..Array.
-) Web Workers: AbstractWorker, SharedWorker, Worker, WorkerLocation, WorkerNavigator, etc.
- Componentes Web
-) Shadow DOM: CSSHostRule, CSSRule, Element (createShadowRoot), ShadowRoot, etc.
-) Custom Elements: Element (customElements.define)
-) HTML Imports: HTMLLinkElement (rel=import), Document (write, close).
- ECMAScript
-) Tipos de Datos Primitivos: Boolean, Null, Undefined, Number, String, Symbol (ES6).
-) Tipos Objetos: Array, Date, Error, Function, Global, JSON, Math, Object, RegExp.
-) Colección de Claves (Objetos): Maps, Sets, WeakMaps, WeakSets.
- Seguridad Web (WebCryptography)
-) Clases: Crypto, Algorithm, KeyAlgorithm, CryptoKey, SubtleCrypto, etc.
-) Operaciones: encrypt, decrypt, sign, verify, deriveBits, wrapKey, unwrapKey,
generateKey, importKey, exportKey, getLength.
-) Algoritmos: RSASSA-PKCS1-v1_5, RSA-PSS, RSA-OAEP, ECDSA, ECDH, AES-CBC,
HMAC, DH, SHA-1, SHA-256, SHA-384, SHA-512, CONCAT, HKDF-CTR, PBKDF2, etc.
- Comunicación Asíncrona con el Servidor:
-) Cliente al Servidor: XmlHttpRequest (XHR)
-) Servidor al Cliente: Server-Send Events (SSE)
-) Bidireccional: Web Sockets
6.7. Documentación Oficial
- W3C
- ECMAScript
- HTML5 Org
- Guía de Internet Explorer 11 para desarrolladores (Microsoft)
- Mozilla Developer Network (MDN)
- HTML5 Rocks (Google)
- W3Schools.com
1. Introducción
JavaScript es un Lenguaje de Programación interpretado desarrollado por Brendan Eich en 1995 cuando trabajaba en Netscape. JavaScript es orientado a objetos, basado en prototipos, débilmente tipado y dinámico. La especificación de este lenguaje se denomina ECMAScript y es elaborada por ECMA International.
Actualmente es uno de los Lenguajes de Programación mas usados en el mundo, ya que sirve para crear aplicaciones web, tanto de lado del cliente (desde sus inicios) y también de lado del servidor (en la actualidad).
En los 20 años de vida que tiene JavaScript, en los 10 primeros años solo se usaba para validaciones y manejo de controles, pero a partir de la incorporación de AJAX (2005), la creación de librerías como jQuery (2006), la creación de JavaScript en el servidor con NodeJS (2009), la aparición de las nuevas APIs sobre todo de HTML5 y la nueva especificación del lenguaje ECMAScript6 (2012), ha originado que JavaScript tenga un crecimiento exponencial.
Muchos desarrolladores escribían la mayor parte del código en el servidor, ya que los Frameworks de ese lado tenían una gran cantidad de APIs o Librerías que permitían realizar cualquier tipo de tareas, desde acceso a datos hasta gráficos, operaciones con datos, manejo de archivos, etc. Es por eso que se usaba mucho código en PHP, Java o .NET, ysolo un mínimo de código en JavaScript para validar, manejar el DOM y mejorar el formato o estilo.
Actualmente, todo lo que podíamos hacer en el servidor, lo podemos hacer en el cliente con JavaScript, desde hacer llamadas asíncronas con XHR o AJAX hasta manipular los datos, crear gráficos (en 2D y en 3D), cifrar datos, enviar y recibir notificaciones en tiempo real, etc. Esto se puede hacer nativamente usando las APIs de JavaScript o usando una Librería o Framework que encapsule dicho trabajo.
Nota: Antes yo escribía 80% de código en el servidor y 20% en el cliente, pero desde hace unos años escribo 20% de código en el servidor y 80% en el cliente usando JavaScript puro. Estos porcentajes concuerdan con "El Problema de la Performance" que se da 80% en el cliente y 20% en el servidor.
Muchos programadores creen conocer JavaScript, pero en realidad no conocen ni el 10% de lo que tiene. El propósito de este artículo es contribuir a aumentar ese conocimiento, mostrando la Historia, las APIs, las Librerías, los Frameworks, las Herramientas y las fuentes donde pueden aprender más sobre este lenguaje, para cambiar su forma de programar y usar "La Web como Plataforma de Desarrollo" a través del Navegador (Browser) usando como lenguaje "JavaScript".
2. Cronología de JavaScript (20 años)
- 1995: En Mayo Brendan Eich crea Mocha en 10 días
- 1995: En Setiembre se crea LiveScript
- 1995: En Diciembre cambia de nombre a JavaScript
- 1996: Microsoft crea JScript
- 1996: DHTML
- 1997: ECMA-262 Ed1 (ES1)
- 1998: DOM Level 1
- 1999: ES3 (Base JavaScript actual)
- 1999: Microsoft crea XmlHttpRequest (Pre-AJAX)
- 2000: DOM Level 2
- 2001: Douglas Crockford crea JSON
- 2004: DOM Level 3
- 2005: AJAX
- 2008: ECMAScript 4 (ES4)
- 2009: ECMAScript 5 (ES5). JSON, Object.create
- 2012: ECMAScript 6 (ES6). Modulos, Proxys
- 2012: Navigation Timing
- 2012: HTML5 Web Messaging
- 2012: Web Workers
- 2012: WebSocket
- 2013: Web Storage
- 2013: Touch Events
- 2013: Geolocation API
- 2013: Performance Timeline
- 2013: Web Notifications
- 2013: File API
- 2013: Messaging API
- 2013: Web Telephony API
- 2013: MediaStream Image Capture
- 2013: WebRTC 1.0
- 2013: Web Audio API
- 2014: Progress Events
- 2014: Indexed Database
- 2014: Server Sent Events (SSE)
- 2014: Web Cryptography API
- 2014: Web NFC API
- 2014: XMLHttpRequest Level 1
- 2014: Push API
- 2014: Streams API
- 2014: Screen Orientation API
- 2014: Service Workers
- 2014: TCP and UDP Socket API
- 2014: URL
- 2014: Clipboard API and Events
- 2015: ECMA-262 (6th Edition). ECMAScript 2015 Language Specification
3. APIs de JavaScript
- Document Object Model (DOM)
-) HTML: Document, Element, Event, HTML..., Node, NodeList, ParentNode, etc.
-) XML: XMLDocument.
-) SVG: Scalable Vector Graphics
- Gráficos
-) Canvas: CanvasGradient, CanvasRenderingContext2D, HTMLCanvasElement, ImageData.
-) SVG: SVGAnimate, SVGAnimated, SVGColor, SVGElement, SGVFont, SVGPath, SVGText.
-) WebGL: WebGLBuffer, WebGLObject, WebGLRenderbuffer, WebGLRenderingContext, etc.
- Almacenamiento
-) File API: Blob, File, FileList, FileReader, FileReaderSync, URL.
-) IndexedDB: IDBCursor, IDBDataBase, IDBFactory, IDBIndex, IDBObjectStore, etc.
-) Web Storage: Storage, StorageEvent, WindowLocalStorage, WindowSessionStorage.
- Conectividad
-) Web Sockets: BroadcastChannel, CloseEvent, EventSource, PortCollection, WebSocket.
-) Messaging: MessageChannel, MessageEvent, MessagePort.
-) WebRTC: RTCPeerConnection, RTCIceServer, RTCIceCandidate, RTCDataChannel, etc.
- Acceso:
-) Drag And Drop (D&D): DataTransfer, DataTransferItem, DataTransferItemList, DragEvent.
-) FullScreen: Document (fullscreenElement, fullscreenEnabled), Element (requestFullscreen).
- Estilos
-) CSS Object Model: CSS, CSSRule, CSSStyleSheet, MediaList, StyleSheet, etc.
-) Selectors: Document (querySelector, querySelectorAll), DocumentFragment, Element.
- Multimedia
-) Animation Timing: Window (cancelAnimationFrame, requestAnimationFrame).
-) Media: AudioTrack, HTMLMediaElement, HTMLTrackElement, MediaController, VideoTrack.
-) Pointer Lock: Document (exitPointerLock), Element (requestPointerLock), MouseEvent.
-) Web Audio: AnalyserNode, AudioBuffer, AudioListener, AudioParam, DelayNode, GainNode.
- Performance
-) Browser: History, ImageBitmap, Location, MimeType, Navigator, WindowBase64 (atob, btoa),
WindowTimers (clearInterval, clearTimeout, setInterval, setTimeout), etc.
-) Typed Arrays: ArrayBuffer, ArrayBufferView, DataView, Float..Array, Int..Array, Uint..Array.
-) Web Workers: AbstractWorker, SharedWorker, Worker, WorkerLocation, WorkerNavigator, etc.
- Componentes Web
-) Shadow DOM: CSSHostRule, CSSRule, Element (createShadowRoot), ShadowRoot, etc.
-) Custom Elements: Element (customElements.define)
-) HTML Imports: HTMLLinkElement (rel=import), Document (write, close).
- ECMAScript
-) Tipos de Datos Primitivos: Boolean, Null, Undefined, Number, String, Symbol (ES6).
-) Tipos Objetos: Array, Date, Error, Function, Global, JSON, Math, Object, RegExp.
-) Colección de Claves (Objetos): Maps, Sets, WeakMaps, WeakSets.
- Seguridad Web (WebCryptography)
-) Clases: Crypto, Algorithm, KeyAlgorithm, CryptoKey, SubtleCrypto, etc.
-) Operaciones: encrypt, decrypt, sign, verify, deriveBits, wrapKey, unwrapKey,
generateKey, importKey, exportKey, getLength.
-) Algoritmos: RSASSA-PKCS1-v1_5, RSA-PSS, RSA-OAEP, ECDSA, ECDH, AES-CBC,
HMAC, DH, SHA-1, SHA-256, SHA-384, SHA-512, CONCAT, HKDF-CTR, PBKDF2, etc.
- Comunicación Asíncrona con el Servidor:
-) Cliente al Servidor: XmlHttpRequest (XHR)
-) Servidor al Cliente: Server-Send Events (SSE)
-) Bidireccional: Web Sockets
4. Cronología de Librerías y Frameworks de JavaScript (11 años)
- 2004: Dojo Toolkit (Alex Russell)
- 2005: Prototype JavaScript Framework (Sam Stephenson)
- 2005: Script.aculo.us (Thomas Fuchs)
- 2006: Yahoo UI Library (YUI)
- 2006: Google Web Toolkit (GWT)
- 2006: jQuery (John Resig)
- 2006: MooTools (Valerio Proietti)
- 2007: ExtJS (Jack Slocum)
- 2007: WaveMaker (Scott Miles)
- 2007: jQuery UI (Scott González, Adam Sontag, etc)
- 2008: Processing.js (John Resig)
- 2008: QUnit (John Resig)
- 2009: CofeeScript (Jeremy Ashkenas)
- 2009: Glow (BBC)
- 2009: Raphaël (Dmitry Baranovskiy)
- 2009: NodeJS (Ryan Dahl)
- 2010: BackboneJS (Jeremy Ashkenas)
- 2010: KnockoutJS (Steve Sanderson)
- 2010: AngularJS (Misko Hevery)
- 2010: Three.js (Ricardo Cabello)
- 2010: jQuery Mobile (jQuery Foundation)
- 2010: Jasmine (Pivotal Labs)
- 2011: Dart (Lars Bak, Kasper Lund)
- 2011: Ember.js (Yehuda Katz, Tom Dale)
- 2011: Modernizr (Paul Irish)
- 2011: D3.js (Bostock, Heer, Ogievetsky)
- 2011: Kendo UI (Telerik)
- 2011: Unit.js (Nicolas Tallefourtane)
- 2012: TypeScript (Anders Hejlsberg)
- 2012: Bootstrap (Mark Otto, Jacob Thornton)
- 2012: Enyo.js (Palm, HP)
- 2012: Meteor (Meteor Development Group)
- 2012: ExpressJS (TJ Holowaychuk)
- 2013: Polymer (Google)
- 2013: X-Tag (Mozilla)
- 2013: Webix (XB Software)
- 2013: React (Jordan Walke)
- 2013: Sails.js (Mike McNeil)
- 2013: Snap.svg (Adobe)
- 2014: Underscore.js (Jeremy Ashkenas)
- 2014: Socket.io (Guillermo Rauch)
- 2015: Reac Native (Tom Ochinno, Christopher Chedeau)
- 2015: Aurelia.io (Rob Eisenberg)
5. Herramientas de JavaScript
5.1. Herramientas de Calidad del Código (JavaScript Code Quality Tools)
1. JSLint
- URL: http://www.jslint.com/
- Es la más antigua y fué creada por Douglas Crockford en el 2002
2. JSHint
- URL: http://jshint.com/
- Team: Rick Waldron, Caitlin Potter, Mike Sherov, Mike Pennisi, y Luke Page
3. JSCS (JavaScript Code Style checker)
- URL: http://jscs.info/
- Team: Marat Dulin, Oleg Gaidarenko, Mike Sherov, Joel Kemp, Alexej Yaroshevich, Henry Zhu
4. ESLint (Pluggable JavaScript Linter)
- URL: http://eslint.org/
- Originalmente creada por Nicholas C. Zakas en el 2013
- Actualmente mantenida por jQuery Foundation
- Usuarios: Algolia, Disqus, 2GIS
- Requerimientos: Node.js or io.js
- Sistemas Operativos: Windows, Mac, Linux
5.2. Herramientas de Pruebas Unitarias (JavaScript Unit Testing Tools)
1. QUnit (JavaScript Unit Testing framework)
- URL: https://qunitjs.com/
- Originalmente creada por Jhon Resign en el 2006 como parte de jQuery
- En el 2008 fue extraida de jQuery para ser independiente en el 2009
- Usos: jQuery, jQuery UI, jQuery Mobile
2. Unit.js (Unit testing framework for JavaScript)
- URL: http://unitjs.com/
- Creado por el Francés Nicolas Talle (Nicolab) en el 2014
- Requerimientos: Node.js y el Browser
3. Jasmine (Behavior-Driven JavaScript)
- URL: http://jasmine.github.io/
- Creada por Pivotal Labs en el 2010
4. Mocha (the fun, simple, flexible JavaScript test framework)
- URL: https://mochajs.org/
- Creada en el 2011 por la organización Mocha
- Requerimientos: Node.js y el Browser
- Usos: should.js, express.js, chai, better-assert, unexpected
- Usuarios: Sauce Labs, Yahoo
- Contribuidores: Christopher Hiller, Daniel St. Jules, ScottFreeCode, David Da Silva
6. Entrenamiento en JavaScript
6.1. Libros
6.2. Cursos Oficiales Microsoft Virtual Academy (MVA)
6.3. Tutoriales
6.4. Conferencias
6.5. Reuniones (Meetups)
6.6. En Vivo (Hangouts)
6.7. Documentación Oficial
- W3C
- ECMAScript
- HTML5 Org
- Guía de Internet Explorer 11 para desarrolladores (Microsoft)
- Mozilla Developer Network (MDN)
- HTML5 Rocks (Google)
- W3Schools.com
7. Comentario Final
En este artículo me propuse dar la mayor cantidad de información sobre JavaScript, ya que en muchos lugares todavía no se toma conciencia de la necesidad de trabajar lo mas desconectado posible y solo actualizar en tiempo real los datos cuando ocurran cambios, para lo cual es necesario conocer mas JavaScript.
Particularmente, en los últimos 3 años mi orientación de desarrollador, cambio radicalmente, hacia el lado del cliente usando JavaScript y priorizando la performance usando una arquitectura con pocos archivos y poco contenido lo cual tiene ventajas en velocidad incomparables.
Si bien es cierto, en la mayor parte del mundo se esta de acuerdo en que JavaScript es el número 1 por encima de Java, PHP, Phyton, Ruby, C#, C++, etc; donde no estoy de acuerdo es en el uso indiscriminado de Frameworks sobre todo de lado del cliente que "debilitan el rendimiento".
Los programadores tienen que entender que el Navegador (Browser) es un Framework con cientos de clases y métodos (APIs), las cuales detallamos en el tema 3 de este artículo: "APIs de JavaScript" y que no es necesario usar ninguna Librería ni Framework para hacer cualquier cosa (al final tanto las Librerías como los Frameworks usan dichas APIs).
Hay que invertir mas tiempo aprendiendo lo que nunca pasará de moda (lo nativo) y dejar de lado la moda (las Librerías y Frameworks, que salen por decenas en un año y en poco quedan obsoletas). De mi parte llevo enseñando mas de 3 años las APIs de JavaScript en cada curso, taller o capacitación que hago.
Lamentablemente, en muchas partes todavía se piensa que se debe hacer todo de lado del servidor y los que piensan lo contrario (hacerlo de lado del cliente) lo hacen usando Librerías o Frameworks, por tanto, mi arquitectura y mis técnicas de programación de lado del cliente con JavaScript son solo requeridas por un grupo reducido de seguidores, lo cual me apena mucho y me anima a dar un paso al costado, ya que el mercado laboral y el de entrenamiento es reducido (todos quieren lo estándar, nadie quiere cambiar 180 grados).
Si los programadores siguieran las técnicas usadas en mis capacitaciones, cursos o talleres verían la diferencia brutal de velocidad entre una pagina web clásica o moderna (MVC, SPA, etc.) con lo que nosotros hacemos en forma nativa con pocos archivos: un HTML, un CSS, un JavaScript y un Sprite.
Si les gusto no se olviden de dar Like y el que desea lo puede compartir en cualquier medio: Sitio Web, Google+, FaceBook, Twitter, solo mantener el nombre del creador. Los que están llevando el Taller de los Domingos no falten ya que es el último mes de mi último curso (aprovechen lo poco que queda).
Etiquetas:
AJAX,
APIs,
Artículos,
Brendan Eich,
Conferencias,
Developer,
DOM,
ECMAScript,
HTML5,
Javascript,
jQuery,
Lduenas,
Libros,
Meetups,
MVA,
NodeJS,
Testing,
Tools,
Tutoriales,
XHR
viernes, 8 de abril de 2016
Entrenamiento - Cierre Inscripciones Segundo Taller de ASP.NET MVC & JavaScript
Cierre de Inscripciones del Segundo Taller de ASP.NET MVC & JavaScript
A todos los interesados en el Segundo Taller de ASP.NET MVC & JavaScript que se realizará los Domingos de 8:00 am a 2:00 pm se les comunica que solo hasta mañana Sábado se podrán registrar enviando un mail a Luis.duenash@gmail.com
A todos los registrados gracias por su interés, ya que en solo una semana estaba casi lleno. Se estará enviando un mail con la dirección exacta una semana antes del inicio que es el Domingo 1 de Mayo.
Saludos a todos.
A todos los interesados en el Segundo Taller de ASP.NET MVC & JavaScript que se realizará los Domingos de 8:00 am a 2:00 pm se les comunica que solo hasta mañana Sábado se podrán registrar enviando un mail a Luis.duenash@gmail.com
A todos los registrados gracias por su interés, ya que en solo una semana estaba casi lleno. Se estará enviando un mail con la dirección exacta una semana antes del inicio que es el Domingo 1 de Mayo.
Saludos a todos.
Etiquetas:
APIs,
ASP.NET,
Buenas Practicas,
Cierre,
CSS3,
Curso MVC,
Domingos,
Entrenamiento,
HTML5,
Inscripciones,
Javascript,
Lduenas,
Registro,
Servicios,
WCF,
Web API,
Web Performance,
WebForms,
WebRTC,
WebSockets
martes, 1 de marzo de 2016
El Libro del Día: Going GAS
El Libro del Día: 2016-03-01
Titulo: Going GAS
Autor: Bruce Mcpherson
Editorial: O'Reilly
Nro Paginas: 455
Capítulos:
1. Introduction
2. Language Basics
3. Translating VBA Functions
4. Living with the Quotas
5. The Properties Service
6. The Spreadsheet Service
7. The Document App
8. Gmail, Calendar, and Contacts Apps
9. Drive and DriveApp
10. HTML Service
11. Content Service
12. Charts
13. Sites
14. Advanced Google Services
15. Authentication and Security
16. External APIs and Integration
17. Execution API
18. Office Add-Ins and Google Add-Ons
Descarga:
Going_GAS
Titulo: Going GAS
Autor: Bruce Mcpherson
Editorial: O'Reilly
Nro Paginas: 455
Capítulos:
1. Introduction
2. Language Basics
3. Translating VBA Functions
4. Living with the Quotas
5. The Properties Service
6. The Spreadsheet Service
7. The Document App
8. Gmail, Calendar, and Contacts Apps
9. Drive and DriveApp
10. HTML Service
11. Content Service
12. Charts
13. Sites
14. Advanced Google Services
15. Authentication and Security
16. External APIs and Integration
17. Execution API
18. Office Add-Ins and Google Add-Ons
Descarga:
Going_GAS
Etiquetas:
APIs,
Apps,
Bruce Mcpherson,
Calendar,
Charts,
Contacts,
Document App,
Drive,
DriveApp,
Functions,
GAS,
Gmail,
Language,
Libros,
O'Reilly,
Properties,
Quotas,
Service,
Spreadsheet,
VBA
martes, 26 de enero de 2016
El Libro del Día: Web Development with MongoDB and NodeJS
El Libro del Día: 2016-01-26
Titulo: Web Development with MongoDB and NodeJS (Second Edition)
Autor: Mithun Satheesh, Bruno Joseph D'mello, Jason Krol
Editorial: Packt
Nro Paginas: 301
Capítulos:
Chapter 1: Welcome to JavaScript in the Full Stack
Chapter 2: Getting Up and Running
Chapter 3: Node and MongoDB Basics
Chapter 4: Introducing Express
Chapter 5: Templating with Handlebars
Chapter 6: Controllers and View Models
Chapter 7: Persisting Data with MongoDB
Chapter 8: Creating a RESTful API
Chapter 9: Testing Your Code
Chapter 10: Deploying with Cloud-Based Services
Chapter 11: Single-Page Applications with Popular Frontend Frameworks
Chapter 12: Popular Node.js Web Frameworks
Descarga:
Web_Development_with_MongoDB_and_NodeJS
Titulo: Web Development with MongoDB and NodeJS (Second Edition)
Autor: Mithun Satheesh, Bruno Joseph D'mello, Jason Krol
Editorial: Packt
Nro Paginas: 301
Capítulos:
Chapter 1: Welcome to JavaScript in the Full Stack
Chapter 2: Getting Up and Running
Chapter 3: Node and MongoDB Basics
Chapter 4: Introducing Express
Chapter 5: Templating with Handlebars
Chapter 6: Controllers and View Models
Chapter 7: Persisting Data with MongoDB
Chapter 8: Creating a RESTful API
Chapter 9: Testing Your Code
Chapter 10: Deploying with Cloud-Based Services
Chapter 11: Single-Page Applications with Popular Frontend Frameworks
Chapter 12: Popular Node.js Web Frameworks
Descarga:
Web_Development_with_MongoDB_and_NodeJS
Etiquetas:
APIs,
Bruno Joseph D'mello,
Controllers,
Deploying,
Express,
Frameworks,
Handlebars,
Jason Krol,
Javascript,
Libros,
Mithun Satheesh,
MongoDB,
NodeJS,
Packt,
RESTful,
Services,
SPA,
Testing,
View Models,
Web Development
lunes, 25 de enero de 2016
El Libro del Día: Learning Node.js for Mobile Application Development
El Libro del Día: 2016-01-25
Titulo: Learning Node.js for Mobile Application Development
Autor: Stefan Buttigieg, Milorad Jevdjenic
Editorial: Packt
Nro Paginas: 248
Capítulos:
Chapter 1: Setting Up Your Workspace
Chapter 2: Configuring Persistence with MongoDB
Chapter 3: Creating an API
Chapter 4: Securing Your Backend
Chapter 5: Real-Time Data and WebSockets
Chapter 6: Introducing Ionic
Chapter 7: Building User Interfaces
Chapter 8: Making Our App Interactive
Chapter 9: Accessing Native Phone Features
Chapter 10: Working with APIs
Chapter 11: Working with Security
Chapter 12: Working with Real-Time Data
Chapter 13: Building an Advanced Chat App
Chapter 14: Creating an E-Commerce Application Using the Ionic Framework
Descarga:
Learning_Node.js_for_Mobile_Application_Development
Titulo: Learning Node.js for Mobile Application Development
Autor: Stefan Buttigieg, Milorad Jevdjenic
Editorial: Packt
Nro Paginas: 248
Capítulos:
Chapter 1: Setting Up Your Workspace
Chapter 2: Configuring Persistence with MongoDB
Chapter 3: Creating an API
Chapter 4: Securing Your Backend
Chapter 5: Real-Time Data and WebSockets
Chapter 6: Introducing Ionic
Chapter 7: Building User Interfaces
Chapter 8: Making Our App Interactive
Chapter 9: Accessing Native Phone Features
Chapter 10: Working with APIs
Chapter 11: Working with Security
Chapter 12: Working with Real-Time Data
Chapter 13: Building an Advanced Chat App
Chapter 14: Creating an E-Commerce Application Using the Ionic Framework
Descarga:
Learning_Node.js_for_Mobile_Application_Development
Etiquetas:
APIs,
Application,
Chat,
Development,
Interactive,
Ionic,
Learning,
Libros,
Milorad Jevdjenic,
Mobile,
MongoDB,
Native Phone,
Node.js,
Packt,
Real-time,
Securing,
Security,
Stefan Buttigieg,
WebSockets,
Workspace
miércoles, 6 de enero de 2016
Entrenamiento - Vacantes para el Curso de Desarrollo Web de los Domingos
Vacantes para el Curso de Desarrollo Web de los Domingos
Estimados alumnos, este Domingo 10 de Enero iniciamos el segundo mes del curso de Desarrollo Web Desconectado Total usando JavaScript, HTML5 y CSS3 (80% de código cliente y 20% código servidor aproximadamente).
Hay 10 nuevas vacantes para cubrir el total de la capacidad y los interesados solo deben un mail de confirmación a Luis.duenash@gmail.com con su Nombre Completo y si ha sido ex-alumno o no. El costo del curso es de 200 soles por 4 sesiones de 6 horas, es decir 24 horas.
El horario son los Domingos de 8:00 am a 2:00 pm y se realiza en el cono Norte, la dirección exacta será enviada por mail a los confirmados. Los interesados tener en cuenta el lugar y que no es curso tradicional, no se dará certificados, diplomas, recibos, etc.
Los que asisten a mis cursos y talleres saben que cada semana tenemos temas muy interesantes que tratamos que serán la base del desarrollo web moderno: desconectado total y nativo, dando énfasis a las APIs de JavaScript y creando código óptimo.
Muchos han estado preguntando sobre cursos y les he dicho que ya no dicto regularmente, excepto este curso de los Domingos, y los que alguna vez ya llevaron conmigo los temas son totalmente distintos, además hay mucha teoría sobre cómo funciona Internet, el Navegador, .NET Framework, etc.
Recuerden que solo se registrará a los 10 primeros y de preferencia a ex-alumnos. Aprovechen que el costo del curso es muy bajo comparado con lo que se cobra en la mayoría de centros de capacitación por no aprender nada que solucione los problemas de la computación.
Sea lo que sea que te enseñen: C#, LINQ, Entity Framework, CodeFirst, AngularJS, KnockoutJS, jQuery, AJAX, Ember.JS, etc. te darás cuenta que los problemas de lentitud seguirán, y si apuestas por el Hardware aumentando mas disco, CPU, memoria, etc, tampoco dará resultados.
La solución completa es la que vemos en estos talleres y muchos alumnos ya están poniendo en práctica esta nueva forma de programar que es rápida en desarrollo y mas rápida en ejecución. Los visitantes de mi Blog y de mi canal de YouTube tienen que tener en cuenta que la mayoría de los Demos y Videos no son posteados, solo está accesible para los que siguen el curso.
Saludos
Estimados alumnos, este Domingo 10 de Enero iniciamos el segundo mes del curso de Desarrollo Web Desconectado Total usando JavaScript, HTML5 y CSS3 (80% de código cliente y 20% código servidor aproximadamente).
Hay 10 nuevas vacantes para cubrir el total de la capacidad y los interesados solo deben un mail de confirmación a Luis.duenash@gmail.com con su Nombre Completo y si ha sido ex-alumno o no. El costo del curso es de 200 soles por 4 sesiones de 6 horas, es decir 24 horas.
El horario son los Domingos de 8:00 am a 2:00 pm y se realiza en el cono Norte, la dirección exacta será enviada por mail a los confirmados. Los interesados tener en cuenta el lugar y que no es curso tradicional, no se dará certificados, diplomas, recibos, etc.
Los que asisten a mis cursos y talleres saben que cada semana tenemos temas muy interesantes que tratamos que serán la base del desarrollo web moderno: desconectado total y nativo, dando énfasis a las APIs de JavaScript y creando código óptimo.
Muchos han estado preguntando sobre cursos y les he dicho que ya no dicto regularmente, excepto este curso de los Domingos, y los que alguna vez ya llevaron conmigo los temas son totalmente distintos, además hay mucha teoría sobre cómo funciona Internet, el Navegador, .NET Framework, etc.
Recuerden que solo se registrará a los 10 primeros y de preferencia a ex-alumnos. Aprovechen que el costo del curso es muy bajo comparado con lo que se cobra en la mayoría de centros de capacitación por no aprender nada que solucione los problemas de la computación.
Sea lo que sea que te enseñen: C#, LINQ, Entity Framework, CodeFirst, AngularJS, KnockoutJS, jQuery, AJAX, Ember.JS, etc. te darás cuenta que los problemas de lentitud seguirán, y si apuestas por el Hardware aumentando mas disco, CPU, memoria, etc, tampoco dará resultados.
La solución completa es la que vemos en estos talleres y muchos alumnos ya están poniendo en práctica esta nueva forma de programar que es rápida en desarrollo y mas rápida en ejecución. Los visitantes de mi Blog y de mi canal de YouTube tienen que tener en cuenta que la mayoría de los Demos y Videos no son posteados, solo está accesible para los que siguen el curso.
Saludos
Etiquetas:
ADO.NET,
AJAX,
AngularJS,
APIs,
ASP.NET,
C#,
CodeFirst,
CSS3,
Cursos,
Desconectado,
Ember,
Entrenamiento,
HTML5,
Javascript,
jQuery,
Knockout,
Lduenas,
LINQ,
MVC,
Web Forms
viernes, 27 de noviembre de 2015
El Libro del Día: JavaScript: The Definitive Guide
El Libro del Día: 2015-11-27
Titulo: JavaScript: The Definitive Guide (6th Edition)
Autor: David Flanagan
Editorial: O'Reilly
Nro Paginas: 1098
Capítulos:
1. Introduction
Part I. Core JavaScript
2. Lexical Structure
3. Types, Values, and Variables
4. Expressions and Operators
5. Statements
6. Objects
7. Arrays
8. Functions
9. Classes and Modules
10. Pattern Matching with Regular Expressions
11. JavaScript Subsets and Extensions
12. Server Side JavaScript
Part II. Client Side JavaScript
13. JavaScript in Web Browsers
14. The Window Object
15. Scripting Documents
16. Scripting CSS
17. Handling Events
18. Scripted HTTP
19. The jQuery Library
20. Client Side Storage
21. Scripted Media and Graphics
22. HTML5 APIs
Part III. Core JavaScript Reference
Core JavaScript Reference
Part IV. Client Side JavaScript Reference
Client Side JavaScript Reference
Descarga:
JavaScript_The_Definitive_Guide
Titulo: JavaScript: The Definitive Guide (6th Edition)
Autor: David Flanagan
Editorial: O'Reilly
Nro Paginas: 1098
Capítulos:
1. Introduction
Part I. Core JavaScript
2. Lexical Structure
3. Types, Values, and Variables
4. Expressions and Operators
5. Statements
6. Objects
7. Arrays
8. Functions
9. Classes and Modules
10. Pattern Matching with Regular Expressions
11. JavaScript Subsets and Extensions
12. Server Side JavaScript
Part II. Client Side JavaScript
13. JavaScript in Web Browsers
14. The Window Object
15. Scripting Documents
16. Scripting CSS
17. Handling Events
18. Scripted HTTP
19. The jQuery Library
20. Client Side Storage
21. Scripted Media and Graphics
22. HTML5 APIs
Part III. Core JavaScript Reference
Core JavaScript Reference
Part IV. Client Side JavaScript Reference
Client Side JavaScript Reference
Descarga:
JavaScript_The_Definitive_Guide
Etiquetas:
APIs,
Arrays,
Classes,
David Flanagan,
Definitive Guide,
Expressions,
Extensions,
Functions,
Javascript,
Libros,
Modules,
O'Reilly,
Objects,
Operators,
Regex,
Scripting,
Statements,
Types,
Values,
Variables
martes, 17 de noviembre de 2015
El Libro del Día: Security for Web Developers
El Libro del Día: 2015-11-17
Titulo: Security for Web Developers
Autor: John Paul Mueller
Editorial: O'Reilly
Nro Paginas: 382
Capítulos:
Part I. Developing a Security Plan
1. Defining the Application Environment
2. Embracing User Needs and Expectations
3. Getting Third-Party Assistance
Part II. Applying Successful Coding Practices
4. Developing Successful Interfaces
5. Building Reliable Code
6. Incorporating Libraries
7. Using APIs with Care
8. Considering the Use of Microservices
Part III. Creating Useful and Efficient Testing Strategies
9. Thinking Like a Hacker
10. Creating an API Safety Zone
11. Checking Libraries and APIs for Holes
12. Using Third-Party Testing
Part IV. Implementing a Maintenance Cycle
13. Clearly Defining Upgrade Cycles
14. Considering Update Options
15. Considering the Need for Reports
Part V. Locating Security Resources
16. Tracking Current Security Threats
17. Getting Required Training
Descarga:
Security_for_Web_Developers
Titulo: Security for Web Developers
Autor: John Paul Mueller
Editorial: O'Reilly
Nro Paginas: 382
Capítulos:
Part I. Developing a Security Plan
1. Defining the Application Environment
2. Embracing User Needs and Expectations
3. Getting Third-Party Assistance
Part II. Applying Successful Coding Practices
4. Developing Successful Interfaces
5. Building Reliable Code
6. Incorporating Libraries
7. Using APIs with Care
8. Considering the Use of Microservices
Part III. Creating Useful and Efficient Testing Strategies
9. Thinking Like a Hacker
10. Creating an API Safety Zone
11. Checking Libraries and APIs for Holes
12. Using Third-Party Testing
Part IV. Implementing a Maintenance Cycle
13. Clearly Defining Upgrade Cycles
14. Considering Update Options
15. Considering the Need for Reports
Part V. Locating Security Resources
16. Tracking Current Security Threats
17. Getting Required Training
Descarga:
Security_for_Web_Developers
Etiquetas:
APIs,
Coding Practices,
CSS,
Hacker,
HTML,
Interfaces,
Javascript,
John Paul Mueller,
Libraries,
Libros,
Maintenance Cycle,
Microservices,
O'Reilly,
Plan,
Reports,
Resources,
Security,
Testing,
Training,
Web Developers
lunes, 12 de octubre de 2015
El Libro del Día: Effective JavaScript
El Libro del Día: 2015-10-12
Titulo: Effective JavaScript
Autor: David Herman
Editorial: Addison Wesley
Nro Paginas: 228
Capítulos:
Chapter 1: Accustoming Yourself to JavaScript
Chapter 2: Variable Scope
Chapter 3: Working with Functions
Chapter 4: Objects and Prototypes
Chapter 5: Arrays and Dictionaries
Chapter 6: Library and API Design
Chapter 7: Concurrency
Descarga:
Effective_JavaScript
Titulo: Effective JavaScript
Autor: David Herman
Editorial: Addison Wesley
Nro Paginas: 228
Capítulos:
Chapter 1: Accustoming Yourself to JavaScript
Chapter 2: Variable Scope
Chapter 3: Working with Functions
Chapter 4: Objects and Prototypes
Chapter 5: Arrays and Dictionaries
Chapter 6: Library and API Design
Chapter 7: Concurrency
Descarga:
Effective_JavaScript
Etiquetas:
Addison Wesley,
APIs,
Arrays,
Concurrency,
David Herman,
Design,
Dictionaries,
Effective,
Functions,
Javascript,
Library,
Libros,
Mozilla,
Objects,
Prototypes,
Scope,
Variables
martes, 15 de septiembre de 2015
El Libro del Día: Learning React Native
El Libro del Día: 2015-09-15
Titulo: Learning React Native
Autor: Bonnie Eisenman
Editorial: O'Reilly
Nro Paginas: 104
Capítulos:
1. Introduction
2. Getting Started
3. Components for Mobile
4. Styles
Descarga:
Learning_React_Native
Titulo: Learning React Native
Autor: Bonnie Eisenman
Editorial: O'Reilly
Nro Paginas: 104
Capítulos:
1. Introduction
2. Getting Started
3. Components for Mobile
4. Styles
Descarga:
Learning_React_Native
Etiquetas:
Android,
APIs,
Bonnie Eisenman,
Components,
DOM,
HTML,
Introduction,
iOS,
Javascript,
Learning,
Libros,
Mobile,
Native,
O'Reilly,
React,
Styles
jueves, 20 de agosto de 2015
El Libro del Día: Mastering jQuery
El Libro del Día: 2015-08-20
Titulo: Mastering jQuery
Autor: Alex Libby
Editorial: Packt
Nro Paginas: 400
Capítulos:
Chapter 1: Installing jQuery
Chapter 2: Customizing jQuery
Chapter 3: Organizing Your Code
Chapter 4: Working with Forms
Chapter 5: Integrating AJAX
Chapter 6: Animating in jQuery
Chapter 7: Advanced Event Handling
Chapter 8: Using jQuery Effects
Chapter 9: Using the Web Performance APIs
Chapter 10: Manipulating Images
Chapter 11: Authoring Advanced Plugins
Chapter 12: Using jQuery with the Node-WebKit Project
Chapter 13: Enhancing Performance in jQuery
Chapter 14: Testing jQuery
Descarga:
Mastering_jQuery
Titulo: Mastering jQuery
Autor: Alex Libby
Editorial: Packt
Nro Paginas: 400
Capítulos:
Chapter 1: Installing jQuery
Chapter 2: Customizing jQuery
Chapter 3: Organizing Your Code
Chapter 4: Working with Forms
Chapter 5: Integrating AJAX
Chapter 6: Animating in jQuery
Chapter 7: Advanced Event Handling
Chapter 8: Using jQuery Effects
Chapter 9: Using the Web Performance APIs
Chapter 10: Manipulating Images
Chapter 11: Authoring Advanced Plugins
Chapter 12: Using jQuery with the Node-WebKit Project
Chapter 13: Enhancing Performance in jQuery
Chapter 14: Testing jQuery
Descarga:
Mastering_jQuery
Etiquetas:
AJAX,
Alex Libby,
Animating,
APIs,
Code,
Customizing,
Effects,
Event Handling,
Forms,
Images,
Installing,
Javascript,
jQuery,
Libros,
Mastering,
Node WebKit,
Packt,
Plugins,
Testing,
Web Performance
jueves, 13 de agosto de 2015
El Libro del Día: HTML5 Game Development by Example
El Libro del Día: 2015-08-13
Titulo: HTML5 Game Development by Example
Autor: Makzan
Editorial: Packt
Nro Paginas: 354
Capítulos:
Chapter 1: Introducing HTML5 Games
Chapter 2: Getting Started with DOM-based Game Development
Chapter 3: Building a Card-matching Game in CSS3
Chapter 4: Building the Untangle Game with Canvas and the Drawing API
Chapter 5: Building a Canvas Game's Masterclass
Chapter 6: Adding Sound Effects to Your Games
Chapter 7: Saving the Game's Progress
Chapter 8: Building a Multiplayer Draw-and-Guess Game with WebSockets
Chapter 9: Building a Physics Car Game with Box2D and Canvas
Chapter 10: Deploying HTML5 Games
Descarga:
HTML5_Game_Development_by_Example
Titulo: HTML5 Game Development by Example
Autor: Makzan
Editorial: Packt
Nro Paginas: 354
Capítulos:
Chapter 1: Introducing HTML5 Games
Chapter 2: Getting Started with DOM-based Game Development
Chapter 3: Building a Card-matching Game in CSS3
Chapter 4: Building the Untangle Game with Canvas and the Drawing API
Chapter 5: Building a Canvas Game's Masterclass
Chapter 6: Adding Sound Effects to Your Games
Chapter 7: Saving the Game's Progress
Chapter 8: Building a Multiplayer Draw-and-Guess Game with WebSockets
Chapter 9: Building a Physics Car Game with Box2D and Canvas
Chapter 10: Deploying HTML5 Games
Descarga:
HTML5_Game_Development_by_Example
Etiquetas:
APIs,
Box2D,
Canvas,
Card,
CSS3,
Development,
DOM,
Drawing,
Effects,
Example,
Games,
HTML5,
Libros,
Makzan,
Masterclass,
Multiplayer,
Packt,
Progress,
Sound,
WebSockets
martes, 14 de julio de 2015
El Libro del Día: Beginning HTML5 Media (2nd Edition)
El Libro del Día: 2015-07-14
Titulo: Beginning HTML5 Media (2nd Edition)
Autor: Silvia Pfeiffer, Tom Green
Editorial: Apress
Nro Paginas: 295
Capítulos:
Chapter 1: Encoding Video
Chapter 2: Using and Manipulating HTML5 Video and Audio Elements
Chapter 3: The JavaScript API
Chapter 4: Accessibility, Internationalization, and Navigation
Chapter 5: HTML5 Video and Canvas
Chapter 6: Manipulating Audio Through the Web Audio API
Descarga:
Beginning_HTML5_Media
Titulo: Beginning HTML5 Media (2nd Edition)
Autor: Silvia Pfeiffer, Tom Green
Editorial: Apress
Nro Paginas: 295
Capítulos:
Chapter 1: Encoding Video
Chapter 2: Using and Manipulating HTML5 Video and Audio Elements
Chapter 3: The JavaScript API
Chapter 4: Accessibility, Internationalization, and Navigation
Chapter 5: HTML5 Video and Canvas
Chapter 6: Manipulating Audio Through the Web Audio API
Descarga:
Beginning_HTML5_Media
Etiquetas:
Accessibility,
APIs,
Apress,
Audio,
Beginning,
Canvas,
Elements,
Encoding,
HTML5,
Javascript,
Libros,
Media,
Navigation,
Silvia Pfeiffer,
Tom Green,
Video,
Web Audio API
martes, 3 de febrero de 2015
Entrenamiento - Capacitación en Desarrollo .NET a Empresas
Capacitación en Desarrollo .NET a Empresas
A las empresas interesadas en cursos cerrados para el personal de desarrollo de sistemas les comunico que estoy dictando capacitaciones para mejorar el desempeño del personal encargado de construir las aplicaciones y mejorar el tiempo y la calidad de los desarrollos en .NET.
Cursos
Los cursos ofrecidos son los siguientes:
- Desarrollo de Aplicaciones WinForms en .NET
- Desarrollo de Aplicaciones Web con ASP.NET WebForms
- Desarrollo de Aplicaciones Web con ASP.NET MVC
- Desarrollo de Aplicaciones Windows con WPF
- Desarrollo de Aplicaciones Web Móviles con ASP.NET
- Desarrollo de Aplicaciones Web con HTML5, CSS3 y JavaScript APIs
Beneficios
Los beneficios de la capacitación son los siguientes:
- Solo se ven Buenas Prácticas
- Orientado a la Performance
- 100% Práctico
- Ejemplos reales del día a día
- Abundante material (Manuales, Videos, etc)
- Syllabus a medida del requerimiento
Horarios
Todos los horarios son de 6 horas semanales, y hay diferentes tipos de horarios, entre ellos:
- Lunes, Miércoles y Viernes de 8:00 am a 10:00 am.
- Martes y Jueves de 7:30 am a 10:30 am.
- Lunes, Miércoles y Viernes de 8:00 pm a 10:00 pm.
- Domingos de 8:00 am a 2:00 pm.
Inversión
El costo por hora es de 100 soles y el costo total dependerá del número de horas que es variable de acuerdo al curso y la necesidad de la empresa.
Contacto
Los interesados enviarme un mail a Luis.duenash@gmail,com) con los siguientes datos:
- Asunto: Capacitación en Desarrollo .NET a Empresas
- Empresa: Nombre de la empresa
- Dirección: Dirección de la empresa (con alguna referencia)
- Contacto: Nombre del contacto
- Teléfono: Número de teléfono fijo de la empresa o celular del contacto
A las empresas interesadas en cursos cerrados para el personal de desarrollo de sistemas les comunico que estoy dictando capacitaciones para mejorar el desempeño del personal encargado de construir las aplicaciones y mejorar el tiempo y la calidad de los desarrollos en .NET.
Cursos
Los cursos ofrecidos son los siguientes:
- Desarrollo de Aplicaciones WinForms en .NET
- Desarrollo de Aplicaciones Web con ASP.NET WebForms
- Desarrollo de Aplicaciones Web con ASP.NET MVC
- Desarrollo de Aplicaciones Windows con WPF
- Desarrollo de Aplicaciones Web Móviles con ASP.NET
- Desarrollo de Aplicaciones Web con HTML5, CSS3 y JavaScript APIs
Beneficios
Los beneficios de la capacitación son los siguientes:
- Solo se ven Buenas Prácticas
- Orientado a la Performance
- 100% Práctico
- Ejemplos reales del día a día
- Abundante material (Manuales, Videos, etc)
- Syllabus a medida del requerimiento
Horarios
Todos los horarios son de 6 horas semanales, y hay diferentes tipos de horarios, entre ellos:
- Lunes, Miércoles y Viernes de 8:00 am a 10:00 am.
- Martes y Jueves de 7:30 am a 10:30 am.
- Lunes, Miércoles y Viernes de 8:00 pm a 10:00 pm.
- Domingos de 8:00 am a 2:00 pm.
Inversión
El costo por hora es de 100 soles y el costo total dependerá del número de horas que es variable de acuerdo al curso y la necesidad de la empresa.
Contacto
Los interesados enviarme un mail a Luis.duenash@gmail,com) con los siguientes datos:
- Asunto: Capacitación en Desarrollo .NET a Empresas
- Empresa: Nombre de la empresa
- Dirección: Dirección de la empresa (con alguna referencia)
- Contacto: Nombre del contacto
- Teléfono: Número de teléfono fijo de la empresa o celular del contacto
- Curso: Curso(s) por el que se interesa y el rango de horas aproximado que necesitan
- Participantes: Número de participantes del curso y el nivel actual (básico, intermedio, avanzado)
Syllabus
A los interesados que envíen su correo les estaré enviando el Syllabus personalizado de acuerdo a su requerimiento.
Acerca del Instructor
El instructor ha capacitado a más de 1000 personas en .NET desde el 2001, mayor información:
Comentario Final
Actualmente, hay muchos sistemas y aplicaciones web en nuestro país que son demasiado lentos y no es un tema de hardware sino de software, específicamente de aplicación, debido a que los desarrolladores piensan hacerse la vida fácil en el momento de desarrollo sin importar el momento final (producción) cuando los usuarios usen las aplicaciones.
Se construye fácil, usando Frameworks de terceros, se usan estructuras de datos sin analizar sus características, y en general se piensa en patrones de diseño de desarrollo y No en patrones de performance que es lo que mas importa actualmente.
Una buena capacitación es la mejor inversión para aprender las buenas prácticas y nivelar al personal de sistemas. Las empresas que no piensan en esto como parte de su funcionamiento, siempre terminan perdiendo por creer que están ahorrando y confiar en que todos sus empleados "son investigadores".
Etiquetas:
.NET,
APIs,
ASP.NET,
C#,
Capacitación,
CSS3,
Cursos,
Empresas,
Entrenamiento,
HTML5,
Javascript,
Lduenas,
Luis Dueñas Huaroto,
Móviles,
MVC,
Syllabus,
WebForms,
WinForms,
WPF
sábado, 3 de enero de 2015
El Libro del Día: Real-Time Communication with WebRTC
El Libro del Día: 2015-01-03
Titulo: Real-Time Communication with WebRTC
Autor: Salvatore Loreto, Simon Pietro Romano
Editorial: O'Reilly
Nro Paginas: 163
Capítulos:
1. Introduction
2. Handling Media in the Browser
3. Building the Browser RTC Trapezoid: A Local Perspective
4. The Need for a Signaling Channel
5. Putting It All Together: Your First WebRTC System from Scratch
6. An Introduction to WebRTC API’s Advanced Features
A. WebRTC 1.0 APIs
Descarga:
Real_Time_Communication_WebRTC
Titulo: Real-Time Communication with WebRTC
Autor: Salvatore Loreto, Simon Pietro Romano
Editorial: O'Reilly
Nro Paginas: 163
Capítulos:
1. Introduction
2. Handling Media in the Browser
3. Building the Browser RTC Trapezoid: A Local Perspective
4. The Need for a Signaling Channel
5. Putting It All Together: Your First WebRTC System from Scratch
6. An Introduction to WebRTC API’s Advanced Features
A. WebRTC 1.0 APIs
Descarga:
Real_Time_Communication_WebRTC
Etiquetas:
Advanced,
APIs,
Browser,
Channel,
Communication,
HTML5,
Introduction,
Libros,
Media,
O'Reilly,
Real-time,
RTC,
Salvatore Loreto,
Scratch,
Signaling,
Simon Pietro Romano,
WebRTC
sábado, 22 de noviembre de 2014
El Libro del Día: Hello! HTML5 & CSS3
El Libro del Día: 2014-11-22
Titulo: Hello! HTML5 & CSS3
Autor: Rob Crowther
Editorial: Manning
Nro Paginas: 561
Capítulos:
PART 1 LEARNING HTML5
1 Introducing HTML5 markup
2 HTML5 forms
3 Dynamic graphics
4 Audio and video
5 Browser-based APIs
6 Network and location APIs
PART 2 LEARNING CSS3
7 New CSS language features
8 Layout with CSS3
9 Motion and color
10 Borders and backgrounds with CSS3
11 Text and fonts
Descarga:
Hello_HTML5_CSS3
Titulo: Hello! HTML5 & CSS3
Autor: Rob Crowther
Editorial: Manning
Nro Paginas: 561
Capítulos:
PART 1 LEARNING HTML5
1 Introducing HTML5 markup
2 HTML5 forms
3 Dynamic graphics
4 Audio and video
5 Browser-based APIs
6 Network and location APIs
PART 2 LEARNING CSS3
7 New CSS language features
8 Layout with CSS3
9 Motion and color
10 Borders and backgrounds with CSS3
11 Text and fonts
Descarga:
Hello_HTML5_CSS3
Suscribirse a:
Entradas (Atom)
















