Angel \”Java\” Lopez on Blog

May 5, 2015

New Month’s Resolutions: May 2015

Filed under: .NET, C Sharp, JavaScript, NodeJs, Open Source Projects — ajlopez @ 9:41 am

It’s the time for review my April’s resolutions and write the new ones:

– Write posts about JavaScript and Artificial Intelligence  [pending]
– Improve ClojJS [complete] see repo
– Add npm modules support to ClojJS [pending]
– Improve Chip8 emulator [pending]
– Improve BScript [complete] see repo

Additionally, I worked on:

– Improve AcquarellaJS, first operators in match dynamic object [complete] see repo
– Improve AjErl, refactor type utilities [complete] see repo
– Improve OStore, first operators in match [complete] see repo
– Improve SimpleLists, intersect operation [complete] see repo
– Improve MeteorSamples, using Windows version 1.1 [complete] see repo
– Participate in Google Code Jam, pre-round [complete] see repo
– Liqueed Project coding [complete] see repo
– Record Liqueed Project team programming session using TDD [complete] see post/video
– Write posts about Liqueed Project [complete] read English posts read Spanish posts

The new month’s resolutions are:

– Improve ClojJS
– Add NPM support to ClojJS
– Write posts about JavaScript and Artificial Intelligence
– Give a talk about Meteor
– Prepare a talk about Clojure or ClojureScript
– Improve BScript
– Improve AjErl, distributed features
– Improve Liqueed Project, kudos features

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 29, 2015

Computer History: Links And Resources (10)

Filed under: Computer History, Links — ajlopez @ 6:48 pm

Previous Post
Next Post

The Web: a generation old, a link unexpected – GeekWire
http://www.geekwire.com/2013/web-generation-link-unexpected/

A Visual History Of The Last 20 Years Of Open Source Code – ReadWrite
http://readwrite.com/2013/09/17/a-visual-history-of-the-last-20-years-of-open-source-code#awesm=~ohN38yZIWVf8ww

Hackers: de piratas de la Red a activistas de la democracia – 15.09.2013 – lanacion.com
http://www.lanacion.com.ar/1619661-hackers-de-piratas-de-la-red-a-activistas-de-la-democracia?sitio=desktop

A Hacker’s Life // Speaker Deck
https://speakerdeck.com/dugsong/a-hackers-life

Grace Hopper Open Source Day 2013 | opensource.com
http://opensource.com/life/13/6/grace-hopper-event-2013

Faith, Evolution, and Programming Languages – YouTube
http://www.youtube.com/watch?v=8frGknO8rIg

La NSA llama a Steve Jobs “Gran Hermano” y a los clientes de Apple, “zombis”
http://macapuntes.com/la-nsa-llama-a-steve-jobs-gran-hermano-y-a-los-clientes-de-apple-zombis/

Bjarne Stroustrup – The Essence of C++: With Examples in C++84, C++98, C++11, and C++14 | GoingNative 2013 | Channel 9
http://channel9.msdn.com/Events/GoingNative/2013/Opening-Keynote-Bjarne-Stroustrup

Self: The Movie; – YouTube
https://www.youtube.com/watch?feature=player_embedded&v=Ox5P7QyL774

John Sculley spills the beans on firing Steve Jobs | Apple – CNET News
http://news.cnet.com/8301-13579_3-57602004-37/john-sculley-spills-the-beans-on-firing-steve-jobs/

Let it crash • Where Akka Came From
http://letitcrash.com/post/40599293211/where-akka-came-from

Node’s Unicode Dragon
http://cirw.in/blog/node-unicode

PERSONAL COMPUTERS – DOES EVERYONE NEED TO LEARN PROGRAMMING? – NYTimes.com
http://www.nytimes.com/1984/01/17/science/personal-computers-does-everyone-need-to-learn-programming.html

An Oral History Of Apple Design: 1992 | Co.Design | business + design
http://www.fastcodesign.com/3016318/an-oral-history-of-apple-design-1992

jloughry/BANCStar
https://github.com/jloughry/BANCStar

The Evolution of the Web
http://evolutionofweb.appspot.com/

E.W.Dijkstra Archive: The Humble Programmer (EWD 340)
http://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html/

Women in computing – Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Women_in_computing

History of the punch card – Reference from WhatIs.com
http://whatis.techtarget.com/reference/History-of-the-punch-card

From punchcards to Siri: The history (and future) of input devices – Slideshow | ExtremeTech
http://www.extremetech.com/computing/98287-from-punchcards-to-ipads-the-history-of-input-devices

What Computers Still Can’t Do: A Critique of Artificial Reason: Hubert L. Dreyfus: 9780262540674: Amazon.com: Books
http://www.amazon.com/What-Computers-Still-Cant-Artificial/dp/0262540673

Classification of the principal programming paradigms
http://www.info.ucl.ac.be/~pvr/paradigms.html

Linus’s Famous Email | Linux.com
https://www.linux.com/news/software/linux-kernel/734956-linuss-famous-email

Deleting Ada Lovelace from the history of computing | The Ada Initiative
http://adainitiative.org/2013/08/deleting-ada-lovelace-from-the-history-of-computing/

References for “The Future of Programming”
http://worrydream.com/dbx/

My Links
http://delicious.com/ajlopez/computerhistory

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 27, 2015

Computer History: Links And Resources (9)

Filed under: Computer History, Links — ajlopez @ 7:18 pm

Previous Post
Next Post

Doug Engelbart and the vision thing: Is Silicon Valley suffering from a failure of imagination? — Tech News and Analysis
http://gigaom.com/2013/07/05/doug-engelbart-and-the-vision-thing-is-silicon-valley-suffering-from-a-failure-of-imagination/

A few words on Doug Engelbart
http://worrydream.com/Engelbart/

Computer Visionary Who Invented the Mouse – NYTimes.com
http://www.nytimes.com/2013/07/04/technology/douglas-c-engelbart-inventor-of-the-computer-mouse-dies-at-88.html?pagewanted=all&_r=0

Douglas Engelbart, Developer of the Early Computer Mouse, Dead at 88
http://paleofuture.gizmodo.com/douglas-engelbart-developer-of-the-early-computer-mous-659855829

Douglas Engelbart : The Mother of All Demos (1/9) – YouTube
http://www.youtube.com/watch?v=JfIgzSoTMOs

Doug Engelbart, American inventor and computing legend, has passed away — Tech News and Analysis
http://gigaom.com/2013/07/03/doug-engelbart-american-inventor-computing-legend-passes-away/

Douglas Engelbart – Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Douglas_Engelbart

Programming on Early Microcomputers: A Retrospective
http://blog.smartbear.com/programming/programming-on-early-microcomputers-a-retrospective/

PC History
http://www.pc-history.org/

Tektronix Smalltalk Document Archive
http://www.wirfs-brock.com/allen/things/smalltalk-things/tektronix-smalltalk-document-archive

A short history of structured flowcharts
http://www.cs.umd.edu/hcil/members/bshneiderman/nsd/

WordPress › Ten Good Years
http://wordpress.org/news/2013/05/ten-good-years/

id-Software (id Software)
https://github.com/id-Software

Your Code May Work, But It Still Might Suck
http://blog.smartbear.com/process/your-code-may-work-but-it-still-might-suck/

Infographic: The History of Programming Languages
http://blog.newrelic.com/2013/06/03/the-history-of-programming-languages-infographic-from-veracode/

The One-Person Product – Marco.org
http://www.marco.org/2013/05/20/one-person-product

Trygve 1975
http://heim.ifi.uio.no/trygver/www-documents-overview.html

La primera web de la historia cumple 20 años
http://alt1040.com/2013/04/la-primera-web-de-la-historia

BCPL – Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/BCPL

Chistory
http://cm.bell-labs.com/cm/cs/who/dmr/chist.html

39 Unforgettable Moments in Tech Startup History
http://mashable.com/2013/04/11/epic-startup-moments/

CensorZilla
http://www.jwz.org/doc/censorzilla.html

Tech Time Warp of the Week: Arthur C. Clarke Predicts the Internet, 1974 | Wired Enterprise | Wired.com
http://www.wired.com/wiredenterprise/2013/03/tech-time-warp-arthur-c-clarke/

Vim After 11 Years – Ian Langworth’s Things of Variable Interest
http://statico.github.com/vim.html

A visual history of Linux – InfoWorld
http://www.infoworld.com/slideshow/91193/visual-history-of-linux-214578

Really Simple Social Syndication | Boris Smus
http://smus.com/really-simple-social-syndication/

The history of Hadoop: From 4 nodes to the future of data — Tech News and Analysis
http://gigaom.com/2013/03/04/the-history-of-hadoop-from-4-nodes-to-the-future-of-data/

The 1952 Paper Chess Computer of Alan Turing
http://antheacarson.hubpages.com/hub/The-1952-Paper-Chess-Computer-of-Alan-Turing

Remembering COM — The Endeavour
http://www.johndcook.com/blog/2012/11/12/remembering-com/

My Links
http://delicious.com/ajlopez/computerhistory

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 25, 2015

Liqueed Project (6)

Filed under: Express, JavaScript, Liqueed, NodeJs, Test-Driven Development — ajlopez @ 4:26 pm

Previous Post

Let review another tests from test/personapi.js in project:

https://github.com/liquid-co-ops/liqueed

There are API entrypoints that are called using PUT or POST. They receive data in the body of the sent message. Using Express middleware, that message (formatted as JSON) is analized, parsed and converted into a JavaScript object. That object resides in the body property of the received request parameter. As the API uses that field, we should provide it in the test. An example:

exports['login person'] = function (test) {
    test.async();
    
    var request = {
        body: {
            username: persons[1].username,
            password: persons[1].username
        }
    };

    var response = {
        send: function (model) {
            test.ok(model);
            test.equal(model.id, persons[1].id);
            test.equal(model.name, persons[1].name);
            test.equal(model.username, persons[1].username);
            
            test.done();
        }
    };
    
    controller.loginPerson(request, response);
};

As in the previous example, we use the send function in the response object, to check the result.

Another example, sending not only the body but also sending parameters:

exports['change password first person'] = function (test) {
    test.async();
    
    var request = {
		params : {
			id : persons[0].id.toString()
		},
        body: {
            password: 'new' + persons[0].username
        }
    };

    async()
    .then(function (data, next) {
        var response = {
            send: function (model) {
                test.ok(model);
                test.strictEqual(model, true);
                
                next(null, null);
            }
        };
        
        controller.updatePassword(request, response);
    })
    .then(function (data, next) {
        var request = {
            body: {
                username: persons[0].username,
                password: 'new' + persons[0].username
            }
        };

        var response = {
            send: function (model) {
                test.ok(model);
                test.equal(model.id, persons[0].id);
                test.equal(model.name, persons[0].name);
                test.equal(model.username, persons[0].username);
                
                test.done();
            }
        };
        
        controller.loginPerson(request, response);
    })
    .run();
};
 

Next posts: MVC controller actions tests, tests launching the HTTP server, tests using a DSL (Domain-Specific Language)

Stay tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

April 20, 2015

Liqueed Project (5)

Filed under: Express, Liqueed, NodeJs, Test-Driven Development — ajlopez @ 5:38 pm

Previous Post  
Next Post

Let review two more tests from test/personapi.js. The second test is actually:

exports['get persons'] = function (test) {
    test.async();
    
    var request = {};
    var response = {
        send: function (model) {
            test.ok(model);
            test.ok(Array.isArray(model));
            test.ok(model.length);
            test.ok(model[0].id);
            test.ok(model[0].name);
            test.done();
        }
    };
    
    controller.list(request, response);
};

After building the domain model in memory (the first test taks), now we can test a controller action method, named getPersons. It requires to receive two arguments, request and response object. In the above code, two stubs were built and used. The response object has a send function that  it should be invoked to pass the tests. It receives the model to send to the client, as a JavaScript object (in the real environment, the object is serialized to JSON via Express response send method).

The third test is:

exports['get first person'] = function (test) {
    test.async();
    
    var request = {
        params: {
            id: persons[0].id.toString()
        }
    };

    var response = {
        send: function (model) {
            test.ok(model);
            test.equal(model.id, persons[0].id);
            test.equal(model.name, persons[0].name);
            test.done();
        }
    };
    
    controller.get(request, response);
};

The action needs something from request object, an aditional argument having the person primary key to be retrieved. There is a send method in request object, to test the result.

The tests are not using HTTP nor GET method. They are directly testing the controller code. Indeed, that code was written AFTER the tests, and its first execution was from test launch, without the need of launch a web server.

Next posts: other tests for API methods, sending objects, and tests for MVC controllers

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 16, 2015

Computer History: Links and Resources (8)

Filed under: Computer History, Links — ajlopez @ 6:18 pm

Previous Post
Next Post

Symbian – a post mortem – Google Docs
https://docs.google.com/document/d/1r04yjaQoL1c_vuwQr-CdbDQ8EjGVGOL_1V6BNVWaR1c/preview

Generation Gap
http://www.mikealrogers.com/posts/generation-gap.html

Computer History Museum | @CHM : The APL Programming Language Source Code
http://www.computerhistory.org/atchm/the-apl-programming-language-source-code/

An Interview with Brian Kernighan on C and The C Programming Language | | InformIT
http://www.informit.com/articles/article.aspx?p=1960359

La historia de Javascript | fernetjs
http://fernetjs.com/la-historia-de-javascript/

Simon Peyton Jones – Haskell is useless – YouTube
http://www.youtube.com/watch?v=iSmkqocn0oQ&feature=related

The TTY demystified
http://www.linusakesson.net/programming/tty/

HTML5 Web Storage – Cookies Are So 1994! | New Relic blog
http://blog.newrelic.com/2012/09/18/html5-web-storage-cookies-are-so-1994/

How Ruby Borrowed a Decades Old Idea From Lisp – Pat Shaughnessy
http://patshaughnessy.net/2012/9/18/how-ruby-borrowed-a-decades-old-idea-from-lisp

10 programadores que cambiaron la historia – Gen 2.0 ADN Digital
http://www.genadndigital.com/softwares/item/112-10-programadores-que-cambiaron-la-historia

research.microsoft.com/en-us/um/people/simonpj/papers/history-of-haskell/history.pdf
http://research.microsoft.com/en-us/um/people/simonpj/papers/history-of-haskell/history.pdf

Monitors: An Operating System Structuring Concept
https://dl.dropbox.com/u/14031931/Papers/Monitors.pdf

The Alan Turing Legacy | Instituto de Ciencias Matemáticas
http://www.icmat.es/events/conferences/alanturing

2048 bits on a CRT
http://www.computer50.org/mark1/ip-mm1.crt2048.html

Tom Kilburn
http://www.computer50.org/mark1/kilburn.html

50th Anniversary of the Manchester Baby computer
http://www.computer50.org/

Herbert Kroemer – Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Herbert_Kroemer

The History of the Floppy Disk – Input Output
http://h30565.www3.hp.com/t5/Feature-Articles/The-History-of-the-Floppy-Disk/ba-p/6434

What Killed the Linux Desktop – Miguel de Icaza
http://tirania.org/blog/archive/2012/Aug-29.html

BYTE Vol 06-08 1981-08 Smalltalk.pdf – Google Docs
https://docs.google.com/file/d/0Bzn23kCE_aNlRG5xaGpIaEZXWEk/edit

Agosto 2012: 25 años de la primera Revista Telenews | Facebook
https://www.facebook.com/photo.php?fbid=10151064198838999&set=a.10151064197868999.431171.45765228998&type=1&theater

Coding Horror: I Was a Teenage Hacker
http://www.codinghorror.com/blog/2012/08/i-was-a-teenage-hacker.html

Russell A. Kirsch – Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Russell_A._Kirsch

Russell A. Kirsch : SEAC and the Start of Image Processing at the National Bureau of Standards – National Institute of Standards and Technology Virtual Museum
http://museum.nist.gov/panels/seac/KIRSCH.HTM

An Unexpected Ass Kicking | Blog Of Impossible Things
http://joelrunyon.com/two3/an-unexpected-ass-kicking/

My Links
http://delicious.com/ajlopez/computerhistory

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 15, 2015

Liqueed Project (4)

Filed under: Express, JavaScript, Liqueed, NodeJs, Test-Driven Development — ajlopez @ 8:42 pm

Previous Post
Next Post

The project:

https://github.com/liquid-co-ops/liqueed

was built using TDD (Test-Driven Development) worflow. In the previous post I showed a logic service example, implemented using tests. Today, I want to show that the MVC controllers was also coded using TDD. The controllers are JavaScript modules that expose functions as actions to be routed by Express. The actions receive and return JSON objects. They are the basis for the exposed API, to be consumed by the clients (actually, only one client, a simple single page application). For example, controllers\personapi.js starts declaring:

'use strict';

var service = require('../services/person');

It consumes the person service module.

There are associated test at test\personapi.js, its initial imports:

'use strict';

var controller = require('../controllers/personapi');

var loaddata = require('../utils/loaddata');
var db = require('../utils/db');
var async = require('simpleasync');

In the previous post, I mentioned that the test granularity I prefer for JavaScript is the module, not the function. So, all the tests in the module are execute, in declaration order. The first test is in charge of inicialization the domain model:

var persons;

exports['clear and load data'] = function (test) {
    var personService = require('../services/person');

    test.async();
    
    async()
    .then(function (data, next) { db.clear(next); })
    .then(function (data, next) { loaddata(next); })
    .then(function (data, next) { personService.getPersons(next); })
    .then(function (data, next) {
        persons = data;
        test.ok(persons);
        test.ok(persons.length);
        test.done();
    })
    .run();
};

The new thing to understand is the use of the module simpleasync, pointed by the async variable. I wrote the module to chain  functions. Each function receives two arguments: data, the success result of the previous executed function in chain, or the initial value triggered in the run chain function. And next, a callback to be invoked by the function, to execute the rest of the chain. The callback receives two arguments: err and data. So it can be used as the callback of other functions. If err is not null, the next functions in chain is not executed and the function defined in the chain fail method is run (this option is not used in the above code). In the above example  personService.getPersons(next) invokes the retrieve of the person list, using next as callback. The next chained function receives the person list in the data argument, and then, it saves it in a module variable, ready to be used by the rest of the tests.

It is not using a database. It using an in-memory domain model. That is the default “persistence”, and it is used in many of the defined tests. The initial domain model is loaded from testdata.json using the loaddata function:

{
    "projects": [
        {
            "name": "FaceHub",
            "periods": [
                { 
                    "name": "January 2014", 
                    "date": "2014-01-31", 
                    "amount": 100,
                    "assignments": [
                        { "from": "Alice", 
                            "to": "Bob", 
                            "amount": 50, 
                            "note": "Arrive earlier" },
                        { "from": "Alice", 
                            "to": "Charlie", 
                            "amount": 50 , 
                            "note": "Arrive earlier" },
                        { "from": "Bob", 
                            "to": "Alice", 
                            "amount": 60 , 
                            "note": "Arrive earlier" },
                        { "from": "Bob", 
                            "to": "Charlie", 
                            "amount": 40 , 
                            "note": "Arrive earlier" },
                        { "from": "Charlie", 
                            "to": "Alice", 
                            "amount": 35 , 
                            "note": "Arrive earlier" },
                        { "from": "Charlie", 
                            "to": "Bob", 
                            "amount": 65 , 
                            "note": "Arrive earlier" }
                    ]
                },
                { "name": "February 2014", 
                    "date": "2014-02-28", 
                    "amount": 100 }
            ],
            "team": [ "Alice", "Bob", "Charlie" ],
//....

The module personapi.js exports some functions to be used as actions:

module.exports = {
    list: list,
    get: get,
    getProjects: getProjects,
    loginPerson: loginPerson,
    getPendingShareProjects:getPendingShareProjects,
    updatePassword: updatePassword
}

Topics for the next posts: more API tests, routing of actions, persistence, etc.

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 8, 2015

New Month’s Resolutions: April 2015

Filed under: C Sharp, JavaScript, NodeJs, Open Source Projects — ajlopez @ 8:33 pm

It’s the time for review my March’s resolutions and write the new ones:

– Improve ClojSharp [complete] see repo
– Improve ScalaSharp [complete] see repo
– Write posts about JavaScript and Artificial Intelligence [pending]
– First published version of ClojJS [partial] see repo
– Add npm modules support to ClojJS [pending]
– First published version of BScript [partial] see repo
– Improve Chip8 emulator [pending]
– Give a full-day course on NodeJS [complete]

Additionally, I worked on:

– Update SimpleAsync, removing setImmediate [complete] see repo
– Update SimpleBus to use SimpleUnit [complete] see repo
– Improve AcquarellaJS detecting comments [complete] see repo
– Improve SimpleArgs using flags [complete] see repo
– Improve DValues [complete] see repo
– Update Complexo tests to use SimpleUnit [complete] see repo
– Project Liqueed [complete] see repo

My resolutions for the new month:

– Write posts about JavaScript and Artificial Intelligence
– Improve ClojJS
– Add npm modules support to ClojJS
– Improve Chip8 emulator
– Improve BScript

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 6, 2015

Material Design, Links and Resources (1)

Filed under: Android, Links, Material Design, Mobile, We, Web Development — ajlopez @ 6:26 pm

Google Design
http://www.google.com/design/

callemall/material-ui
https://github.com/callemall/material-ui

Material Design
https://material.angularjs.org/#/

Material UI – Material Design React Components
http://callemall.github.io/material-ui/#/

7 Material Design Web UI Frameworks
http://superdevresources.com/material-design-web-ui-frameworks/

Material design with Polymer – Polymer
https://www.polymer-project.org/0.5/docs/elements/material.html

Paper Elements Sampler
https://www.polymer-project.org/0.5/components/paper-elements/demo.html#paper-checkbox

Quiz App
https://polymer-topeka.appspot.com/

Welcome – Polymer
https://www.polymer-project.org/0.5/

Documentation – Materialize
http://materializecss.com/

My Links
https://delicious.com/ajlopez/materialdesign

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 1, 2015

Polymer: Links and Resources (1)

Filed under: Links, Polymer, Web Development — ajlopez @ 8:09 pm

Browser Compatibility – Polymer
https://www.polymer-project.org/0.5/resources/compatibility.html

Anyone have any opinion on React vs Polymer? It’s something i’ve been strugglin… | Hacker News
https://news.ycombinator.com/item?id=8050649

Riot vs React vs Polymer
https://muut.com/riotjs/compare.html

Component Interop With React And Custom Elements
http://addyosmani.com/blog/component-interop-with-react-and-custom-elements/

html – Is it possible to use Polymer inside of React? – Stack Overflow
http://stackoverflow.com/questions/26365545/is-it-possible-to-use-polymer-inside-of-react

javascript – Pros and Cons of Facebook’s React vs. Web Components (Polymer) – Programmers Stack Exchange
http://programmers.stackexchange.com/questions/225400/pros-and-cons-of-facebooks-react-vs-web-components-polymer

Paper Elements Sampler
https://www.polymer-project.org/0.5/components/paper-elements/demo.html#paper-checkbox

Quiz App
https://polymer-topeka.appspot.com/

generator-polymer
https://www.npmjs.com/package/generator-polymer

JavaScript Application Architecture On The Road To 2015 — Medium
https://medium.com/@addyosmani/javascript-application-architecture-on-the-road-to-2015-d8125811101b

Join the Web Components revolution with Polymer
https://www.ibm.com/developerworks/library/wa-polymer/

Google I/O 2014 – Polymer and the Web Components revolution – YouTube
https://www.youtube.com/watch?v=yRbOSdAe_JU

Google I/O 2014 – Unlock the next era of UI development with Polymer – YouTube
https://www.youtube.com/watch?v=HKrYfrAzqFA

Google I/O 2014 – Polymer and Web Components change everything you know about Web development – YouTube
https://www.youtube.com/watch?v=8OJ7ih8EE7s

Welcome – Polymer
http://www.polymer-project.org/

Flexible, high-strength polymer aerogels deliver "super-insulation" properties
http://www.gizmag.com/polymer-aerogel-stronger-flexible-nasa/23955/

My Links
https://delicious.com/ajlopez/polymer

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

« Newer PostsOlder Posts »

The Shocking Blue Green Theme. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 68 other followers