HNHacker News
TopNewBestAskShowJobs

marianoguerra

1,131 karma · joined January 12, 2010

Co-founder of https://gloodata.com/

Writing https://wasmgroundup.com/

http://marianoguerra.org

Previously https://instadeq.com and https://event-fabric.com/

Me on the internet:

https://github.com/marianoguerra

http://marianoguerra.github.io/

https://twitter.com/warianoguerra

https://hachyderm.io/@marianoguerra

[ my public key: https://keybase.io/marianoguerra; my proof: https://keybase.io/marianoguerra/sigs/GHx0pQDbASzQQ6dXmsgwwlX2c-WTe3qwVHdZvamGdsU ]

submissionscomments
marianoguerra··on Ask HN: Which stack do you use at your startup?
Erlang in the Backend on DigitalOcean. React/immutable/requirejs/bootstrap in the frontend.

The integrations with payments and similar are Java on AWS Lambda.

marianoguerra··on Ameo – Redis-compatible distributed key-value store with WebSocket API
maybe, it's hard to write a meaningful title that describes the thing and it's still understandable.

but all the technologies are used and for a good reason, no "throw technologies, mix it and see what comes out".

marianoguerra··on Ameo – Redis-compatible distributed key-value store with WebSocket API
linguistically yes, in any other way, I have no idea :)
marianoguerra··on Ameo – Redis-compatible distributed key-value store with WebSocket API
the idea is to expose the websocket api to the public (for now only subscribe) and the redis api only to internal servers so they can publish/subscribe.
marianoguerra··on Playing with Lasp and CRDTs
"Lasp is about writing correct distributed programs.

The goal of Lasp is to allow you to write a program once and know that it will behave the same whether it is executed on one computer or distributed across many."

marianoguerra··on Playing with Lasp and CRDTs
The post was intended as a reference and not an introduction, the docs on Lasp provide a good introduction: https://lasp-lang.readme.io/docs/what-is-lasp
marianoguerra··on Playing with Lasp and CRDTs
hi, I don't want to reply for cmeik (creator of Lasp), but I think eventually Lasp will be its own language.

from the github repo: "Prototype implementation of Lasp in Erlang"

marianoguerra··on Ask HN: Resources for building a programming language?
https://ruslanspivak.com/lsbasi-part1/

you can continue with the links from there.

do you want to target something in particular?

implementing a lisp (scheme) or a forth is a good starting point.

marianoguerra··on Erlang/OTP 20.0
rebar3 will become the standard build tool for erlang, it's already in the erlang organization (https://github.com/erlang/rebar3), most people nowadays use either rebar3 or erlang.mk (https://erlang.mk/), both work really well, at least for me.
marianoguerra··on Erlang/OTP 20.0
yep, there's also an erlang implementation of prolog https://github.com/rvirding/erlog

the only different with the others is that since they implement existent languages following the spec, which means that some things don't map directly to the VM semantics and pay a little overhead, for example lua is a mutable language and the BEAM is immutable, this means that mutability is implemented by passing an immutable environment and mutating it.

This doesn't mean you can't use them, but they are mostly used as extension languages and for scripting than for complete projects.

marianoguerra··on Erlang/OTP 20.0
You still have list comprehensions, map, filter, fold and foreach using higher order functions
marianoguerra··on Erlang/OTP 20.0
They were marked as experimental. Now they are marked as stable
marianoguerra··on Erlang/OTP 20.0
if you want to get started but don't know where this is a good place to start:

http://spawnedshelter.com/

there's a online course by Simon Thompson from the University of Kent that started 2 days ago, you may be able to join:

https://www.futurelearn.com/courses/functional-programming-e...

if you like the ideas but want to try something different there are alternative languages that run on the Erlang VM:

* Elixir with a ruby-like syntax: https://elixir-lang.org/

* LFE (Lisp Flavoured Erlang): http://lfe.io/

* Efene with a python-like syntax: http://efene.org/

and one in development but already looking really interesting: Alpaca, an ML inspired language: https://github.com/alpaca-lang/alpaca

marianoguerra··on Erlang/OTP 20.0
yes, that's a great addition.

for the lazy:

Add `export ERL_AFLAGS="-kernel shell_history enabled"` to your profile and get shell history out of the box with #Erlang/OTP 20

(from https://twitter.com/mononcqc/status/877544929496629248)

marianoguerra··on Erlang/OTP 20.0
didn't noticed that the submitted link is to the docs :P
marianoguerra··on Erlang/OTP 20.0
what kind of guides would you like to see? we could help, but It's not easy to write docs like why did :)

any other style that would work for you?

marianoguerra··on Erlang/OTP 20.0
something specific? did you tried raw file handles? http://erlang.org/doc/man/file.html#open-2
marianoguerra··on Erlang/OTP 20.0
Also the docs got a facelift: http://erlang.org/doc/

Now that we are talking Erlang:

What's missing in Erlang that would be valuable to you?

What are the biggest pain points right now on the Erlang ecosystem that makes it harder for you to try it/adopt it?

marianoguerra··on Ask HN: Who's using Clojure, and to do what?
the payment and data integration services of instadeq[1] are implemented in clojure (component, immutant, bidi, cheshire).

also the data integration backend (same stack as above), and it's frontend and an admin interface for users, groups and permissions for event fabric[2] (clojurescript, om.next, garden).

just to be clear, backend and frontend of both product aren't clojure/clojurescript.

[1] https://instadeq.com/ [2] https://event-fabric.com/

marianoguerra··on Erlang Performance Lab
I think you mean efene: http://efene.org/
marianoguerra··on Languages on BEAM, the Erlang virtual machine
hi, here's a talk i gave called "how beams are made"

http://marianoguerra.org/talks/beamba-buenos-aires-meetup/#/...

follow the commits on this repo from the beginning to se how a fairly complete language is built

https://github.com/marianoguerra/otl

marianoguerra··on Introducing TJSON, a stricter, typed form of JSON
I don't want a schema, I want to preserve types between serialization and deserialization thus avoiding conventions or having to specify those types "out of band", the same way you want to make it clear that an int is an int and a date is a date, I want to tag an object to tell that that object is a city, a person or something else, each program should register a function to rebuild the actual object but at least it's not a convention anymore.
marianoguerra··on Introducing TJSON, a stricter, typed form of JSON
it's not about specifying a type system, just letting users specify a tag for a type and then register a constructor for that tag, then inside it you can have whatever type system thing you like, the serialization format doesn't care, for example {"#Some:myOption": "s:value"}, the decoder will call the constructor registered for Some passing the value and not care about your type system.
marianoguerra··on Introducing TJSON, a stricter, typed form of JSON
transit works great except that it's unreadable with current tools (for example browser devtools or attaching listeners to kafka).

I know it's a tool problem but I don't see the whole world embracing transit.

If this format gets adopted with extensible types we get a readable format that has what transit provides and if there's no tooling support we can still read it with standard json tools or none at all.

marianoguerra··on Introducing TJSON, a stricter, typed form of JSON
isn't there a way to extend the types to specify our own and register constructors for them? like transit?

otherwise we will be in the same place of json in terms of extension where our own types are second class citizens.

marianoguerra··on Show HN: I'm improving the official erlang docs, need feedback
Current one here: http://erlang.org/doc/

Here's a list of things you may want to check to compare:

* applications list:

  + https://marianoguerra.github.io/otp/doc/applications.html

  + http://erlang.org/doc/applications.html
* modules list:

  + https://marianoguerra.github.io/otp/doc/man_index.html

  + http://erlang.org/doc/man_index.html
* a module doc page:

  + https://marianoguerra.github.io/otp/lib/stdlib-3.1/doc/html/array.html

  + http://erlang.org/doc/man/array.html
* code examples:

  + https://marianoguerra.github.io/otp/doc/programming_examples/funs.html

  + http://erlang.org/doc/programming_examples/funs.html
* one with a little of everything: + https://marianoguerra.github.io/otp/doc/reference_manual/exp...

  + http://erlang.org/doc/reference_manual/expressions.html#id80458
* tables:

  + https://marianoguerra.github.io/otp/doc/reference_manual/expressions.html#idm45459941644800

  + http://erlang.org/doc/reference_manual/expressions.html#id81348
marianoguerra··on Why we are suing Apple for better HTML5 support in iOS
nobody stops you from using another ERP, they can't use another browser.

They don't own the platform where the ERP runs, apple does.

marianoguerra··on Erlang Installer Beta: A Better Way To Use Erlang On OS X
check kerl: https://github.com/kerl/kerl
marianoguerra··on A Review of Time Series Databases
it's developed by @heinz_gies from Project FiFo, they may pay him to do changes on it, but it wasn't started there and AFAIK heinz doesn't work there full time.
marianoguerra··on Reactors: Foundational framework for distributed computing
Erlang per se, but also:

* riak_core: http://efcasado.github.io/riak-core_intro/ and http://marianoguerra.github.io/little-riak-core-book/

* lasp: http://lasp-lang.org/

* Weave Mesh: https://github.com/weaveworks/mesh

← PreviousPage 3 of 6Next →