Angel \”Java\” Lopez on Blog

November 8, 2017

New Month’s Resolutions: November 2017

The end of year is near. Time to write the new month’s resolutions, but first, review the previous ones:

– Continue smartie [complete] see repo
– Continue simpleevm [pending]
– Continue BInte [pending]
– Continue Yasold [pending]
– Continue BlockchainJ [complete] see repo
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [pending]
– Continue TensorSharp [complete] see repo
– Continue SimpleTensor [pending]
– Continue Elmie [complete] see repo

I was also working on:

– Improve SimpleDSL [complete] see repo
– Improve SimpleGA [complete] see repo
– Start SoliditySamples [complete] see repo
– Improve RskApi [complete] see repo
– Improve RskApi [complete] see repo
– Start Dapplib [complete] see repo
– Start AprendiendoSolidity [complete] see repo
– Improve HuskyJS [complete] see repo
– Improve ClojureSamples [complete] see repo
– Improve SimpleGo [complete] see repo
– Improve SimpleGo [complete] see repo
– Start AprendiendoInteligenciaArtificial [complete] see repo
– Start AprendiendoMachineLearning [complete] see repo

My new month’s resolutions:

– Continue BlockchainJ
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue SimpleTensor
– Continue Elmie
– Continue AprendiendoSolidity
– Continue AprendiendoMachineLearning
– Prepare Machine Learning Mentorship
– Prepare Smart Contracts Programming Course
– Continue SimpleGo
– Continue AjGo

Stay tuned!

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

October 7, 2017

New Month’s Resolutions: October 2017

The end of new year is near. It’s time to write down my list of resolutions for a new month. Review of the previous month ones:

– Continue Yasold
– Continue BlockchainJ [complete] see repo
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [complete] see repo
– Continue TensorSharp [complete] see repo
– Continue SimpleTensor [complete] see repo
– Continue WikiExpert [pending]
– Continue Neurum [pending]
– Continue LLLJS [pending]
– Continue Elmie [pending]

Additionally, I worked on

– Improving RustScript [complete] see repo
– Improving BInte [complete] see repo
– Started simpleevm, Ethereum Virtual Machine in JavaScript [complete] see repo
– Improving SolidityCompiler [complete] see repo
– Writing EvmHook [complete] see repo
– Writing SimpleAbi [complete] see repo
– Improving RSharp [complete] see repo
– Improving EthSharp [complete] see repo
– Starting smartie, a new smart contract language compiler/transpiler [complete] see repo

My new resolutions are

– Continue smartie
– Continue simpleevm
– Continue BInte
– Continue Yasold
– Continue BlockchainJ
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue SimpleTensor
– Continue Elmie

Stay tuned!

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

September 24, 2017

Building A Blockchain (16)

Previous Post

In recent months I have been busy working on the RSK project. It’s time to write about my personal blockchain projects:

https://github.com/ajlopez/BlockchainSharp
https://github.com/ajlopez/SimpleBlockchain
https://github.com/ajlopez/RskSharp

Currently, the most active one is the C# project. I added one project:

https://github.com/ajlopez/BlockchainJ

in Java. The experience I gained written all this code (using test-driven design, as usual) gaves me a clear idea of what is involved when building a blockchain. Writing my own implementations gave me better understanding of the parts related to the creation of a blockchain. And now the RSK project (Java core implementation) is public, I’m free to relate this work with an existing full implementation.

The key points to be written are:

  • Entities
  • States
  • Virtual machine to run smart contracts
  • Encoders
  • Consensus
  • Validation logic
  • Inter-node communication
  • Expose node state to external applications

The base entities are:

  • Block
  • Transaction
  • Account

The states to be kept are:

  • Blockchain
  • Account state
  • Contract state

My projects are oriented to have smart contracts, a la Ethereum. One reason to have a virtual machine is be agnostic of host programming language. I think that having a way of run smart contract that is independent of the programming language used in each project, is an interesting feature. So, I should define:

  • Virtual machine opcodes
  • Transient (memory) storage
  • Persistent storage

I need encoders for blocks, transactions and account states. The encoded entities are used in the network communication, local storage, and in the hash calculation. For example, when I have to transmit a block I encoded it. And if I want to send the block to another node, I should encoded the block before transmission. And the encoded data is the basis for hash calculation.

The inter-node communication includes:

  • Message definitions
  • Message and handshake protocol
  • Peer-discovery protocol

Validation logic refers to:

  • Validation of blocks
  • Sign of transaction and its validation

Consensus logic has:

  • Selection of the next block
  • Run of the transactions, updating the accounts/contracts states

The exposure of a node state is implemented in Bitcoin and Ethereum using JSON RPC (Remote procudure call), usually exposed via http. In this way, the node can be accessed by external technologies implemented in different technologies (JavaScript blockchain ecosystems are the more popular).

Followin Ethereum ideas, one entity I implemented many times is a trie. I think my implementations are very simple and effective. I hope to be able to write in the next posts about those implementations.

Stay tuned!

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

 

 

 

September 6, 2017

New Month’s Resolutions: September 2017

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

A lot of ideas and projects, and only one life. Time to review the last month’s resolutions:

– Continue Yasold [complete] see repo
– Continue SimpleBlockchain [pending]
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [complete] see repo
– Continue TensorSharp [complete] see repo
– Continue SimpleTensor [complete] see repo
– Continue WikiExpert [pending]
– Continue Neurum [complete] see repo
– Continue LLLJS [pending]
– Continue HuskyJS [pending]

Additionally I worked on:

– Started BlockchainJ [complete] see repo
– Improve RustScript [complete] see repo
– Start Elmie, Eml-like language transpiler to JavaScript [complete] see repo
– Improve PLangRe [complete] see repo
– Improve RSharp [complete] see repo
– Improve RskAPI [complete] see repo

My new resolutions:

– Continue Yasold
– Continue BlockchainJ
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue SimpleTensor
– Continue WikiExpert
– Continue Neurum
– Continue LLLJS
– Continue Elmie

Stay tuned!

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

 

December 5, 2015

New Month’s Resolutions: December 2015

Filed under: C Sharp, Java, JavaScript, NodeJs, Open Source Projects — ajlopez @ 6:35 pm

The last month of the year have started. Time to review past month’s resolutions:

– Work on SJonT [partial] see repo
– Work on SparkSharp [complete] see repo
– Work on Husky [complete] see repo
– Work on MessiJS [pending]
– Work on ElixirJS [complete] see repo
– Work on GStones [pending]
– Work on SharpGo [complete] see repo
– Prepare a NodeJS one-day course [complete]
– Prepare a FinTech-related talk [partial]

Additionally, I worked on:

– Start MeliLib, access to Mercado Libre API using NodeJS [complete] see repo
– Start RkModel, reactive model [complete] see repo
– Start Golin, Lisp interpreter in Go [complete] see repo
– Improve AjGenesisNode-Express [complete] see repo
– Start Go samples [complete] see repo
– Improve AjGenesisNode-Entity [complete] see repo
– Improve AjGenesisNode-Model [complete] see repo
– Improve AjGenesisNode using SimpleJson [complete] see repo
– Start GccSamples [complete] see repo
– Improve SimpleJson [complete] see repo
– Improve AjLispJava [complete] see repo

My new month’s resolutions:

– Prepare a FinTech-related talk
– Work on Husky
– Work on SharpGo
– Improve AjGenesis for Node
– Publis AjLispJava
– Work on Golin
– Work on RkModel
– Improve SimpleDT

Stay tuned!

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

June 15, 2015

Spark: Links and Resources (1)

Filed under: Distributed Computing, Java, Links, MapReduce, Spark — ajlopez @ 10:09 am

There are two project named Spark in Java: a web framework, and a distributed map reduce runner.

Scalable Machine Learning | edX
https://www.edx.org/course/scalable-machine-learning-uc-berkeleyx-cs190-1x

Spark Programming Guide – Spark 1.3.1 Documentation
https://spark.apache.org/docs/latest/programming-guide.html

Overview – Spark 1.3.1 Documentation
https://spark.apache.org/docs/latest/

firmata/spark
https://github.com/firmata/spark

firmata/protocol
https://github.com/firmata/protocol

Top Best Tools for Java Programmers | Devzum – Its all about Design & Development
http://devzum.com/2015/01/15/10-best-java-tools-that-every-java-programmers-should-know/

Sparkling, A Clojure API for Apache Spark
https://gorillalabs.github.io/sparkling/

Getting Started with Sparkling
https://gorillalabs.github.io/sparkling/articles/getting_started.html

Developing Single Page Web Applications using Java 8, Spark, MongoDB, and AngularJS – OpenShift Blog
https://blog.openshift.com/developing-single-page-web-applications-using-java-8-spark-mongodb-and-angularjs/

Graylog2/spark
https://github.com/Graylog2/spark

Spark Framework – A tiny Java web framework
http://sparkjava.com/

Apache Spark with Scala
http://www.slideshare.net/frodriguezolivera/apache-spark-41601032

yieldbot/flambo
https://github.com/yieldbot/flambo

Windows on Devices
https://www.windowsondevices.com/

MapReduce and Spark | Cloudera VISION
http://vision.cloudera.com/mapreduce-spark/

spark-summit.org/wp-content/uploads/2013/10/Baldeschwieler-SparkSummit2013v2.pdf
http://spark-summit.org/wp-content/uploads/2013/10/Baldeschwieler-SparkSummit2013v2.pdf

Mesosphere · Learn how to use Apache Mesos
http://mesosphere.io/learn/

Got a Minute? Spin up a Spark cluster on your laptop with Docker. | AMPLab – UC Berkeley
https://amplab.cs.berkeley.edu/2013/10/23/got-a-minute-spin-up-a-spark-cluster-on-your-laptop-with-docker/

Spark Streaming Programming Guide – Spark 0.7.3 Documentation
http://spark.incubator.apache.org/docs/0.7.3/streaming-programming-guide.html

Spark: Open Source Superstar Rewrites Future of Big Data | Wired Enterprise | Wired.com
http://www.wired.com/wiredenterprise/2013/06/yahoo-amazon-amplab-spark/

Spark | Lightning-Fast Cluster Computing
http://spark-project.org/

Learning Spark – O’Reilly Media
http://shop.oreilly.com/product/0636920028512.do

http://www.cs.berkeley.edu/~matei/papers/2011/tr_spark.pdf
http://www.cs.berkeley.edu/~matei/papers/2011/tr_spark.pdf

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

Stay tuned!

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

June 4, 2015

New Month’s Resolutions: June 2015

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

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

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

I also worked on:

– Start SparkSharp, Apache Spark-like in C# [complete] see repo
– Improve SharpMongo, MongoDB-like in C# [complete] see repo
– Improve OStore, object store in memory, JavaScript/NodeJS [complete] see repo
– Improve PythonSharp, Python interpreter in C# [complete] see repo
– Improve RedPython, compile Python to C using JavaScript/NodeJS [complete] see repo

My new month’s resolutions:

– Give a talk about Meteor
– Write posts about JavaScript and Artificial Intelligence
– Improve ClojJS
– Add NPM support to ClojJS
– Continue work on SparkSharp
– Start Message project in C#, a la Apache Camel
– Improve Liqueed Project, kudos features
– Improve Templie, template engine in Java
– Improve BScript, Basic-like interpreter in C#
– Continue work on OStore
– Continue work on SharpMongo

More fun is coming 😉

Stay tuned!

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

October 9, 2014

Akka: Links, News And Resources (10)

Filed under: Akka, Distributed Computing, Java, Links, Scala — ajlopez @ 4:36 pm

Previous Post

VaughnVernon/Dotsero
https://github.com/VaughnVernon/Dotsero

Distributed Publish Subscribe in Cluster — Akka Documentation
http://doc.akka.io/docs/akka/2.3.2/contrib/distributed-pub-sub.html

Kamon | Core | Documentation
http://kamon.io/core/tracing/core-concepts/

Parleys.com – Resilient Applications with Akka Persistence by Björn Antonsson, Konrad Malawski, Patrik Nordwall
http://www.parleys.com/play/53a7d2c3e4b0543940d9e53b/chapter0/about

AKKA 5 Year Anniversary
http://typesafe.com/akka-five-year-anniversary

How One Developer Set Out To Make The Internet Of Things Manageable – ReadWrite
http://readwrite.com/2014/07/10/akka-jonas-boner-concurrency-distributed-computing-internet-of-things

typesafehub/activator-akka-distributed-workers
https://github.com/typesafehub/activator-akka-distributed-workers/

etaty/rediscala
https://github.com/etaty/rediscala

agibsonccc/java-deeplearning
https://github.com/agibsonccc/java-deeplearning

mpollmeier/akka-patterns
https://github.com/mpollmeier/akka-patterns

Xitrum
http://xitrum-framework.github.io/xitrum/

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

Stay tuned!

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

October 6, 2014

Akka: Links, News And Resources (9)

Filed under: Akka, Distributed Computing, Java, Links, Scala — ajlopez @ 4:13 pm

Previous Post
Next Post

Building Reactive Applications with Akka
http://hakking-at.scalabcn.org/

Typed Actors — Akka Documentation
http://doc.akka.io/docs/akka/snapshot/scala/typed-actors.html

Reactive DDD with Akka | Write less, do more!
http://pkaczor.blogspot.co.uk/2014/04/reactive-ddd-with-akka.html

Publish/Subscribe using Scala and Akka EventStream
http://www.benhowell.net/examples/2014/04/18/scala-and-the-akka-eventstream/

Vaadin in Akka – Blog – vaadin.com
https://vaadin.com/blog/-/blogs/vaadin-in-akka

Endre Sándor Varga – Without Present or Past: How to Think Distributed – The Hard Way, With the rise of distributed databases, cluster management tools, co…
http://www.ustream.tv/recorded/46670663

Reactive Programming with Akka and Scala | comSysto Blog
http://blog.comsysto.com/2014/05/09/reactive-programming-with-akka-and-scala/

Let it crash
http://letitcrash.com/

woq/de.woq.osgi.java
https://github.com/woq/de.woq.osgi.java

michaelpisula/akka-journal-inmemory
https://github.com/michaelpisula/akka-journal-inmemory

Jonas Bonér – Going Reactive: Event-Driven, Scalable, Resilient & Responsive Systems, The demands and expectations for applications have changed dramat…
http://www.ustream.tv/recorded/46625425

Get started quicker with our docker image
http://kamon.io/teamblog/2014/04/27/get-started-quicker-with-our-docker-image/

Java is the new C: Comparision of different concurrency models: Actors, CSP, Disruptor and Threads
http://java-is-the-new-c.blogspot.com.ar/2014/01/comparision-of-different-concurrency.html

chanan/SignalJ
https://github.com/chanan/SignalJ

April 17, 2014 | Typesafe announces Akka Streams, a part of the Reactive Streams Initiative | Typesafe
https://typesafe.com/blog/typesafe-announces-akka-streams

akka/akka-stream/src/main/scala/akka/stream at release-2.3 · akka/akka
https://github.com/akka/akka/tree/release-2.3/akka-stream/src/main/scala/akka/stream

A very simple Ping Pong example using Akka’s local actors.
https://gist.github.com/ConnorDoyle/1521658

Orleans Actors Analysis – Tech stuff that interests me
http://shinolajla.tumblr.com/post/81199345476/orleans-actors-analysis

Abstractivate: ForkJoinPool: the Other ExecutorService
http://blog.jessitron.com/2014/02/forkjoinpool-other-executorservice.html

Running an Akka Cluster with Docker Containers | Adventures in HttpContext
http://blog.michaelhamrah.com/2014/03/running-an-akka-cluster-with-docker-containers/

Getting Started with Actor Based Programming Using Scala and Akka – Reactive.TIPS – The Official Blog of Reactive.IO
http://www.reactive.io/tips/2014/03/28/getting-started-with-actor-based-programming-using-scala-and-akka/

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

Stay tuned!

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

July 11, 2014

Play Framework: Links and Resources (1)

Filed under: Java, Links, Play Framework, Scala, Web Development — ajlopez @ 1:56 pm

http://en.wikipedia.org/wiki/Play_Framework

Play is an open source web application framework, written in Scala and Java, which follows the model–view–controller (MVC)architectural pattern. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.[1]

Support for the Scala programming language has been available since version 1.1 of the framework.[2] In version 2.0, the framework core was rewritten in Scala. Build and deployment was migrated to SBT, and templates use Scala instead of Groovy.

http://www.playframework.com/

Advanced routing in Play Framework – all that jazz
https://jazzy.id.au/default/2013/05/08/advanced_routing_in_play_framework.html

Christopher Hunt on Software Development: Play-ing with WebJars
http://christopherhunt-software.blogspot.com.au/2013/05/play-ing-with-webjars.html

JsZipper : Play2 Json advanced (& monadic) manipulations – Mandubian Blog
http://mandubian.com/2013/05/01/JsZipper/

huntc/play-spring · GitHub
https://github.com/huntc/play-spring
A sample Play application with the minimum configuration required to support Spring JSR-299 and JSR-330

guillaumebort/play20-spring-demo · GitHub
https://github.com/guillaumebort/play20-spring-demo
Using Spring from within a Play 2.0 application

Stupid Java Tricks » Play Framework 2.1: The Bloom is Off The Rose
http://www.stupidjavatricks.com/?p=278

Observations on the Play! framework | James Gregory’s Blog
http://lostechies.com/jamesgregory/2011/09/18/observations-on-the-play-framework/

#98 Support for optional trailing slash – Play framework 2.0 – play
http://play.lighthouseapp.com/projects/82401/tickets/98-support-for-optional-trailing-slash

Abnorm: A better non-ORM // Speaker Deck
https://speakerdeck.com/marconilanna/abnorm-a-better-non-orm

Play CMS
https://github.com/joergviola/play-cms
https://github.com/codeborne/play-cms
https://github.com/TheOrganisationOn/play-cms
A simple CMS to be able to edit pages, page fragments and images using a WYSIWYG editor

parroit76-play-cms – port of play-cms to version 2.0 of play framework – Google Project Hosting
https://code.google.com/r/parroit76-play-cms/

julienrf/play-scala.g8 · GitHub
https://github.com/julienrf/play-scala.g8
g8 template for Play applications

What startups or tech companies are using Play Framework? – Quora
http://www.quora.com/What-startups-or-tech-companies-are-using-Play-Framework

yobriefca screencast
http://yobriefca.se/screencasts/

Introduction to Play Framework
http://blueskybd.vo.llnwd.net/o16/oracle/CON3845_mp4_3845_001.html

yanns/play2-scala-DI · GitHub
https://github.com/yanns/play2-scala-DI
Technical prototyp to test different dependency injection solutions.

Sadek Drobi, the Play 2.0 Story and what’s new in 2.1
http://www.infoq.com/interviews/sadek-drobi-play2-story-new-21
CTO of Zenexity, a Web Oriented Architecture Company, Sadek is a software engineer specialized in bridging the gap between the problem domain and the solution domain. As core Play developer and co-creator, he works on the design and implementation of the framework. Twitter: @sadache Photos: http://www.flickr.com/photos/37675274@N03/ Blog: http://sadache.tumblr.com

Iteratees in Big Data at Klout « Klout Engineering
http://engineering.klout.com/2013/01/iteratees-in-big-data-at-klout/
In this blog post we describe the usage of Play! Iteratees in our redesigned data collection pipeline.

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

Stay tuned!

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

Older Posts »

Blog at WordPress.com.