Mostrando las entradas con la etiqueta APIs. Mostrar todas las entradas
Mostrando las entradas con la etiqueta APIs. Mostrar todas las entradas

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


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

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

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

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
- Es la más antigua y fué creada por Douglas Crockford en el 2002

2. JSHint
- Team: Rick Waldron, Caitlin Potter, Mike Sherov, Mike Pennisi, y Luke Page

3. JSCS (JavaScript Code Style checker)
- Team: Marat Dulin, Oleg Gaidarenko, Mike Sherov, Joel Kemp, Alexej Yaroshevich, Henry Zhu

4. ESLint (Pluggable JavaScript Linter)
- 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)
- 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)
- Creado por el Francés Nicolas Talle (Nicolab) en el 2014
- Requerimientos: Node.js y el Browser

3. Jasmine (Behavior-Driven JavaScript)
- Creada por Pivotal Labs en el 2010

4. Mocha (the fun, simple, flexible JavaScript test framework)
- 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)



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).

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.

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

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

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

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

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

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

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

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

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

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

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

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
- 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".

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

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