Angel \”Java\” Lopez on Blog

February 27, 2015

ReactJS: Links And Resources (2)

Filed under: JavaScript, Links, React, Web Development — ajlopez @ 7:57 pm

Previous Post

omcljs/om
https://github.com/omcljs/om

React
http://reactphp.org/

First Impressions using React Native
http://jlongster.com/First-Impressions-using-React-Native

Facebook just taught us all how to build websites — Medium
https://medium.com/@ericflo/facebook-just-taught-us-all-how-to-build-websites-51f1e7e996f2

React.js Conf 2015 Keynote – Introducing React Native – YouTube
https://www.youtube.com/watch?v=KVZ-P-ZI6W4

The Languages And Frameworks That You Should Learn In 2015 | wwwDesigned
http://wwwdesigned.com/the-languages-and-frameworks-that-you-should-learn-in-2015/

Why I Ditched Angular for React by Kumar Sanket | wwwDesigned
http://wwwdesigned.com/why-i-ditched-angular-for-react-by-kumar-sanket/

Life with Dynamic Typing
http://swannodette.github.io/2015/01/09/life-with-dynamic-typing/

TouchstoneJS • ReactJS powered UI framework for developing beautiful hybrid mobile apps
http://touchstonejs.io/

pleasetrythisathome/react.animate
https://github.com/pleasetrythisathome/react.animate

Scaling the Single Page Application with React.js and Flux | AddThis Blog
http://www.addthis.com/blog/2014/11/11/scaling-the-single-page-application-with-react-and-flux/#.VGfd8TRMAu4

Reactive MVC and the Virtual DOM — Futurice
http://futurice.com/blog/reactive-mvc-and-the-virtual-dom

Removing User Interface Complexity, or Why React is Awesome
http://jlongster.com/Removing-User-Interface-Complexity,-or-Why-React-is-Awesome

David and Suzi | ngReact – Significant Changes, New Co-Maintainer, Next Steps
http://davidandsuzi.com/ngReact-significant-changes-new-co-maintainer-next-steps/

Om interop with 3rd party JS libs · Robert Stuttaford, Clojure Enthusiast
http://www.stuttaford.me/2014/08/10/om-interop-with-3rd-party-libs/

BinaryMuse/react-primer
https://github.com/BinaryMuse/react-primer

gianu/budget_bleed
https://github.com/gianu/budget_bleed

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

Stay tuned!

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

February 22, 2015

ReactJS: Links and Resources (1)

Filed under: JavaScript, Links, React, Web Development — ajlopez @ 9:46 am

Next Post

Moving Atom To React
http://blog.atom.io/2014/07/02/moving-atom-to-react.html

Om sweet Om: (high-)functional frontend engineering with ClojureScript and React
http://blog.getprismatic.com/om-sweet-om-high-functional-frontend-engineering-with-clojurescript-and-react/

Thinking in React | React
http://facebook.github.io/react/blog/2013/11/05/thinking-in-react.html

javascript – Why is React’s concept of Virtual DOM said to be more performant than dirty model checking? – Stack Overflow
http://stackoverflow.com/questions/21109361/why-is-reacts-concept-of-virtual-dom-said-to-be-more-performant-than-dirty-mode

The Functional Final Frontier
http://www.infoq.com/presentations/om-clojurescript-facebook-react

dustingetz/react-cursor
https://github.com/dustingetz/react-cursor/

A JavaScript library for building user interfaces | React
http://facebook.github.io/react/

Polyfills as a service | FT Labs
http://labs.ft.com/2014/09/polyfills-as-a-service/

React Components
http://react-components.com/

Integrating D3.js visualizations in a React app – Nicolas Hery
http://nicolashery.com/integrating-d3js-visualizations-in-a-react-app/

Why We May Ditch AngularJS For React | Wiredcraft
http://wiredcraft.com/posts/2014/08/20/why-we-may-ditch-angularjs-for-react.html

DomKM/omelette
https://github.com/DomKM/omelette

React | Flux Application Architecture
http://facebook.github.io/react/docs/flux-overview.html

Reagent: Minimalistic React for ClojureScript
http://holmsand.github.io/reagent/

How to Build Stuff with Om | Ronin Hacker
http://roninhacker.wordpress.com/2014/03/29/how-to-build-stuff-with-om/

juxt/qcon2014
https://github.com/juxt/qcon2014

Reagent 0.4.0: All arguments allowed
http://holmsand.github.io/reagent/news/any-arguments.html

holmsand/reagent
https://github.com/holmsand/reagent

The Future of JavaScript MVC Frameworks
http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/

React | A JavaScript library for building user interfaces
http://facebook.github.io/react/index.html

Facebook’s React vs AngularJS: A Closer Look – Posts – Quora
http://www.quora.com/Pete-Hunt/Posts/Facebooks-React-vs-AngularJS-A-Closer-Look

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

Stay tuned!

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

February 21, 2015

Artificial Intelligence: Links And Resources (10)

Filed under: Artificial Intelligence, Links — ajlopez @ 5:40 pm

Previous Post

Stephen Hawking: ‘Transcendence looks at the implications of artificial intelligence – but are we taking AI seriously enough?’ – Science – News – The Independent
http://www.independent.co.uk/news/science/stephen-hawking-transcendence-looks-at-the-implications-of-artificial-intelligence–but-are-we-taking-ai-seriously-enough-9313474.html

Stephen Hawking: Artificial Intelligence ‘Potentially the Worst Thing to Happen to Humanity’ – Yahoo News UK
https://uk.news.yahoo.com/stephen-hawking-artificial-intelligence-potentially-worst-thing-happen-110523390.html#XxZEZ92

NEW SAVANNA: Sheldon Klein on Computing Lévi-Strauss, a blast from the past
http://new-savanna.blogspot.com.ar/2014/05/sheldon-klein-on-computing-levi-strauss.html

IBM unveils a computer that can argue | The Exchange – Yahoo Finance
http://finance.yahoo.com/blogs/the-exchange/ibm-unveils-a-computer-than-can-argue-181228620.html

Does HWO continue (in some way) after finals for 2014? : HWO
http://www.reddit.com/r/HWO/comments/23m8my/does_hwo_continue_in_some_way_after_finals_for/

Hello World Open
https://helloworldopen.com/

The Face Recognition Algorithm That Finally Outperforms Humans — The Physics arXiv Blog — Medium
https://medium.com/the-physics-arxiv-blog/2c567adbf7fc

AI researcher explains how to stop Skynet from happening | Science! | Geek.com
http://www.geek.com/science/ai-researcher-explains-how-to-stop-skynet-from-happening-1591986/

AI Developers to power new generation of context driven artificial intelligence | SiliconANGLE
http://siliconangle.com/blog/2014/04/10/ai-developers-to-power-new-generation-of-context-driven-artificial-intelligence/

The Man Behind the Google Brain: Andrew Ng and the Quest for the New AI | Enterprise | WIRED
http://www.wired.com/2013/05/neuro-artificial-intelligence/all/

pyvideo.org – Exploring Machine Learning with Scikit-learn
http://www.pyvideo.org/video/2561/exploring-machine-learning-with-scikit-learn

Gaussian Processes for Machine Learning: Contents
http://www.gaussianprocess.org/gpml/chapters/

ccv 0.6 open sources near state-of-the-art image classifier under Creative Commons
http://libccv.org/post/ccv-0.6-open-sources-near-state-of-the-art-image-classifier-under-creative-commons/

An AI that mimics our neocortex is taking on the neural networks – and this is how it’ll do it • The Register
http://www.theregister.co.uk/2014/03/29/hawkins_ai_feature/

A review of Her by Ray Kurzweil | KurzweilAI
http://www.kurzweilai.net/a-review-of-her-by-ray-kurzweil

An Introduction to Deep Learning (in Java): From Perceptrons to Deep Networks | Toptal
http://www.toptal.com/machine-learning/an-introduction-to-deep-learning-from-perceptrons-to-deep-networks

Why Minds Are Not Like Computers – The New Atlantis
http://www.thenewatlantis.com/publications/why-minds-are-not-like-computers

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

Stay tuned!

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

February 20, 2015

Liqueed Project (2)

Filed under: Express, JavaScript, Liqueed, NodeJs — ajlopez @ 8:07 pm

Previous Post

Liqueed is a Node.js project, repository at

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

And it has a package.json file, the current content:

{
  "name": "liqueed",
  "version": "0.0.2alpha",
  "private": true,
  "scripts": {
    "start": "node ./bin/www",
    "test": "simpleunit ./test ./testserver"
  },
  "dependencies": {
    "express": "~4.2.0",
    "static-favicon": "~1.0.0",
    "morgan": "~1.0.0",
    "cookie-parser": "~1.0.1",
    "body-parser": "~1.0.0",
    "debug": "~0.7.4",
    "ejs": "~0.8.5",
    "express-ejs-layouts": "^1.1.0",
    "ostore": "0.0.4",
    "simplelists": "0.0.4",
    "simpleasync": "0.0.5",
    "mongodb": "~1.4.19",
    "bcrypt-nodejs": "0.0.3",
    "express-session": "~1.9.3"
  },
  "devDependencies": {
    "simpleunit": "0.0.5",
    "simplejquery": "0.0.1",
    "zombie": "2.5.1"
  }
}

It is a private application, so you cannot publish it to the public npm repository.

It is a typical Express application, the initial code was generated with the express-generator. The file bin\www contains the source code to launch the application. It uses express modules, like morgan, cookie-parser, body-parser, express-session, but there are others that were included to be used from the logic of application server:

- ostore: Simple JavaScript objects repository, in-memory, used in many test and in the initial version, implementing persistence in-memory, without the need for a database.

- mongodb: the current app uses MongoDB as NoSQL persistence

- simplelists: a simple utility library with list/array functions

- simpleasync: a library to chain asynchronous callsbacks.

- bcript-nodejs: encryption module written in JavaScript

In the tests (written using Test-Driven Design workflow), it uses:

- simpleunit: test library, based on internal use of assert, exporting the test functions.

There are new tests to exercise the Single Page Application of public\index.html, using:

- zombie: it visits a page as a browser

Topics for the next posts: application structure, written tests, exposed API, MVC admin pages, persistence, SPA client, etc.

Stay tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

February 13, 2015

Artificial Intelligence: Links And Resources (9)

Filed under: Artificial Intelligence, Links — ajlopez @ 7:40 pm

Previous Post
Next Post

NessBots – Fighting Robots Code Game
http://www.nessbots.com/welcome/

IBM wants to see your Watson mobile apps | Cloud computing – InfoWorld
http://www.infoworld.com/t/cloud-computing/ibm-wants-see-your-watson-mobile-apps-237230

Why am and eurisko appear to work
http://www.sciencedirect.com/science/article/pii/000437028490016X

Douglas Lenat
http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Douglas_Lenat.html

artificial intelligence – How To Design Eurisko – Stack Overflow
http://stackoverflow.com/questions/2524129/how-to-design-eurisko

Eurisko, The Computer With A Mind Of Its Own | Alicia Patterson Foundation
http://aliciapatterson.org/stories/eurisko-computer-mind-its-own

EURISKO – Lesswrongwiki
http://wiki.lesswrong.com/wiki/EURISKO

Eurisko
http://www.aaai.org/Papers/AAAI/1980/AAAI80-047.pdf

Let’s reimplement EURISKO! – Less Wrong
http://lesswrong.com/lw/10g/lets_reimplement_eurisko/

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

MIT builds intelligent programs for robots that could help with the smart home — Tech News and Analysis
http://gigaom.com/2014/02/12/mit-builds-intelligent-programs-for-robots-that-could-help-with-the-smart-home/

How Google’s Robots Can Learn Like Humans | Fast Company | Business Innovation
http://www.fastcompany.com/3026056/most-innovative-companies-2014/how-googles-robots-can-learn-like-humans

Why Google Is Investing In Deep Learning ⚙ Co.Labs ⚙ code community
http://www.fastcolabs.com/3026423/why-google-is-investing-in-deep-learning

Top 9 Commercial Uses for IBM Watson: Beyond ‘Jeopardy!’ – ABC News
http://abcnews.go.com/Business/top-commercial-ibm-watson-jeopardy/story?id=21477280

YOW! 2013 | Computing Like the Brain: The Path to Machine Intelligence
https://a.confui.com/public/conferences/517fce8207933939cd000001/locations/517fce8207933939cd000002/schedule/topics/51ef9f36950e81dc55000027

PC AI – Forth Programming Language
http://www.pcai.com/web/ai_info/pcai_forth.html

Disguise detection using open source
http://www.aicbt.com/disguise-detection/

Jon’s Place: Roz & RobotsConf
http://blog.huv.com/2013/11/roz-robotsconf.html

aforge – AForge.NET Framework – Google Project Hosting
https://code.google.com/p/aforge/

TURING’S CATHEDRAL | Edge.org
http://www.edge.org/conversation/turing-39s-cathedral

Machine Learning
http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=MachineLearning

All Models of Learning have Flaws « Machine Learning (Theory)
http://hunch.net/?p=224

SimpleAI (Artificial Intelligence Python lib)
http://vimeo.com/74250290

The Man Who Would Teach Machines to Think – James Somers – The Atlantic
http://www.theatlantic.com/magazine/archive/2013/11/the-man-who-would-teach-machines-to-think/309529/

Yahoo Acquires Startup LookFlow To Work On Flickr And ‘Deep Learning’ | TechCrunch
http://techcrunch.com/2013/10/23/yahoo-acquires-startup-lookflow-to-work-on-flickr-and-deep-learning/

Google’s Quantum AI Lab adds quantum physics to Minecraft | The Verge
http://www.theverge.com/2013/10/20/4859548/googles-quantum-ai-lab-minecraft-quantum-physics

IBM Watson Cancer – Business Insider
http://www.businessinsider.com/ibm-watson-cancer-2013-10

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

Stay tuned!

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

February 11, 2015

Machine Learning: Links, News And Resources (8)

Filed under: Artificial Intelligence, Links, Machine Learning — ajlopez @ 5:02 pm

Previous Post

omphalos/bayesian-bandit.js
https://github.com/omphalos/bayesian-bandit.js

nicolaspanel/node-svm
https://github.com/nicolaspanel/node-svm

yandongliu/learningjs
https://github.com/yandongliu/learningjs

primaryobjects/lda
https://github.com/primaryobjects/lda

tixz/kMeans.js
https://github.com/tixz/kmeans.js

serendipious/nodejs-decision-tree-id3
https://github.com/serendipious/nodejs-decision-tree-id3

tixz/clustering.js
https://github.com/tixz/clustering.js

Encog Machine Learning Framework | Heaton Research
http://www.heatonresearch.com/encog

josephmisiti/awesome-machine-learning
https://github.com/josephmisiti/awesome-machine-learning

Machine learning
https://github.com/showcases/machine-learning

5 ways to add machine learning to Java, JavaScript, and more | InfoWorld
http://www.infoworld.com/article/2608742/predictive-analytics/5-ways-to-add-machine-learning-to-java–javascript–and-more.html

Tryolabs | Python Django development with Artificial Intelligence components |
http://www.tryolabs.com/

lastlegion/linearReg.js
https://github.com/lastlegion/linearReg.js

karpathy/forestjs
https://github.com/karpathy/forestjs

karpathy/svmjs
https://github.com/karpathy/svmjs

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

Stay tuned!

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

February 9, 2015

Programando for Internet of Things

Usually, I practice programming every day, applying TDD (Test-Driven Development) workflow. There are non-public projects, but the majority of that practice is public, in my GitHub account. In my opinion, Node.js is a very interesting technology: ubiquos, powerful and simple. I can implement many ideas using Node.js/JavaScript, in a easier way than using other technologies (Java, .NET, Scala, Ruby, Python, Clojure, Smalltalk). The only price to pay: understand and use the JavaScript callbacks.

There are many ideas and implementation, in current applications, public projects, startups. An interesting topic is Internet of Things (OK, a “buzzword”). Many startups are fighting in that battle field. Maybe, many of them will be adquired by Google, Apple, Microsoft. These are interesting time. But this is a time for implement ideas, in open source projects. Then, an startup can leverage the open source world. I think that the important part of an startup is the execution, not the idea or the implementation..

Meanwhile, I want to implement some ideas in my public projects. This post is written to describe the landscape of ideas to implement:

- Collect informaiton from devices connected to the Internet. To have a data repository, the data is send by SDKs, one SDK per device type. Then, use the repository and the collected data in other projects.

- Apply Artificial Intelligence (OK, it is a wide term, but the better we have), to all the collected data, discovering patterns, using machine learning, deep learning. I wrote some JavaScript projects to explore such paths.

- Take decisions, execute actions, using expert systems or other systems. My first implementations, again, are in JavaScript/NodeJs. Having somethink like IFTTT but open source, consuming Internet of Things data.

- Run all these implementations as distributed applicacionts, not only horizontal scalability or cloud computing. Node.js, again, is an interesting vehicle to implement first experiments and applications. Only if needed, then switch to compiled languages and technologies.

I apologize my auto-reference to my projects, but it is the way to explain why I’m writing them.

Stay tuned!

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

February 6, 2015

Sending messages to Slack using JavaScript/Node.js

Filed under: JavaScript, NodeJs, Slack — ajlopez @ 12:42 pm

A year ago, Slack entered in my radar:

https://slack.com/

I read “Slack is a platform for team communication; everything in one place, instantly searcheable, available wherever you go”.

In general, I am somewhat skeptical to online tools like this, I prefer a simpler combination. For the above statement, I simply use gmail and mailing lists per project or team. The interesting story behind Slack founder:

http://www.wired.com/2014/08/the-most-fascinating-profile-youll-ever-read-about-a-guy-and-his-boring-startup/

My links about Slack at:

https://delicious.com/ajlopez/slack

Example:

https://medium.com/@slackhq/11-useful-tips-for-getting-the-most-of-slack-5dfb3d1af77

Past wednesday, at afternoon, I started to explore how to send programmatically a message to Slack, using their exposed API, using Node.js (I think Node is the simplest technology to use in this kind of experiments). More general info about the API at:

https://api.slack.com/

My current experiment code:

https://github.com/ajlopez/NodeSamples/tree/master/Slack

I searched in Google for some Node.js module to access Slack, my first result:

https://github.com/xoxco/node-slack

Initially I installed it using npm, in a working directory. My first try:

var domain = process.env.SLACK_DOMAIN;
var token = process.env.SLACK_TOKEN;

var Slack = require('node-slack');
var slack = new Slack(domain, token);

var channel = process.argv[2];
var message = process.argv[3];

console.log('Sending message', message, 'to channel', channel);

slack.send({
    text: message,
    channel: '#' + channel,
    username: username
});

You must set environment variables: SLACK_DOMAIN and SLACK_TOKEN. When you enter to a Slack group, the group has an associated domain. For example, I’m a member of https://squeakros.slack.com the group for Smalltalk Squek Rosario. Other group is https://nodejsar.slack.com, Node.js Argentina. The provided token correspond to a user AND an applicaction, it can be obtained from:

https://api.slack.com/web

The above program run, without errors, being invoked via

node run.js general “Hello, world”

(on Windows). The first argument after run.js is the target channel, without the initial #, and the second argument is the message text. All OK, but the message didn’t arrive to the channel. After a bit of research, I found the Pull Request:

https://github.com/xoxco/node-slack/pull/8

that it was not merged with the original source, yet. Some months ago, the Slack API changed. The suggested pull requests uses another access point, a web hook URL provided from:

https://your-domain.slack.com/services/new/incoming-webhook

I applied the suggestion I found in one comment, and I put directly the link to the new code, in my package.json:

{
  "name": "slack-demo",
  "private": true,
  "version": "0.0.1",
  "dependencies": {
    "node-slack": "git://github.com/Dahlgren/node-slack.git#hook-url"
  }
}

An now, my program use the web hook URL, provided via a variable environment:

var hookUrl = process.env.SLACK_WEBHOOK;
var username = process.env.SLACK_USER;

var Slack = require('node-slack');
//var slack = new Slack(domain, token);
var slack = new Slack(hookUrl);

var channel = process.argv[2];
var message = process.argv[3];

console.log('Sending message', message, 'to channel', channel);

slack.send({
    text: message,
    channel: '#' + channel,
    username: username
});

Now, it works! Topics to research: any way to use domain/token again? other modules?.

Stay tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

February 3, 2015

New Month’s Resolutions: February 2015

Filed under: C Sharp, JavaScript, NodeJs, Open Source Projects — ajlopez @ 5:14 pm

Again, time to review the past month’s resolutions, and to write down the new ones.

- Continue add distributed features to AjErl, Erlang-like interpreter in C# [pending]
- Improve ClojSharp [complete] repo
- Improve ScalaSharp [complete] repo
- Improve Chip8 emulator [complete] repo
- Code generation with AjGenesis for Node [pending]
- Improve Basic Script Language for C# [complete] repo
- Write JavaScript and Artificial Intelligence [complete] post 1 post 2 post 3

Additionally, I was working on:

- Start ClojJS, ClojureScript to JavaScript compiler and runtime [complete] repo
- Start DValues, data values store for internet of things [complete] repo
- Work on Liqueed project [complete] repo
- Improve AjScript, JavaScript-like interpreter in C# [complete] repo

This new month’s resolutions:

- Complete first version ClojJS
- Complete first version BScript
- Improve ClojSharp
- Improve ScalaSharp
- Complete first version Chip8 emulator
- Write more posts about JavaScript and Artificial Intelligence

Stay tuned!

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

January 29, 2015

Machine Learning: Links, News And Resources (7)

Filed under: Artificial Intelligence, Links, Machine Learning — ajlopez @ 6:25 pm

Previous Post
Next Post

Machine Learning with Javascript – Ganesh Iyer’s Blog
http://ganeshiyer.net/blog/2013/10/22/machine-learning-with-javascript/

pa7/nude.js
https://github.com/pa7/nude.js

harthur/clusterfck
https://github.com/harthur/clusterfck

harthur/classifier
https://github.com/harthur/classifier

harthur/kittydar
https://github.com/harthur/kittydar

harthur.github.io/kittydar/
http://harthur.github.io/kittydar/

Machine Learning for JavaScript Hackers
http://harthur.github.io/txjs-slides/#1.0

Machine Learning in JavaScript | Hacker News
https://news.ycombinator.com/item?id=7149913

5 ways to add machine learning to Java, JavaScript, and more | Predictive analytics – InfoWorld
http://www.infoworld.com/t/predictive-analytics/5-ways-add-machine-learning-java-javascript-and-more-247535

ConvNetJS: Deep Learning in your browser
http://cs.stanford.edu/people/karpathy/convnetjs/

100 Best GitHub: Artificial Intelligence | Meta-Guide.com
http://meta-guide.com/software-meta-guide/100-best-github-artificial-intelligence/

AppDynamics New Release Brings Big Data and Machine Learning to APM
http://www.infoq.com/news/2014/08/AppDynamics-Release

Machine Learning
http://azure.microsoft.com/en-us/services/machine-learning/

Java Machine Learning | Machine Learning Mastery
http://machinelearningmastery.com/java-machine-learning/

Metacademy – Level-Up Your Machine Learning
http://metacademy.org/roadmaps/cjrd/level-up-your-ml

lauris/awesome-scala
https://github.com/lauris/awesome-scala

Extreme Learning Machines – FastML
http://fastml.com/extreme-learning-machines/

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

Stay tuned!

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

Older Posts »

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

Follow

Get every new post delivered to your Inbox.

Join 69 other followers