profile
viewpoint
Issiaka Aziz Fane YannzizTay bangalore i hack for fun, build to help... Research and Lisp

YannzizTay/1backend 0

Run your web apps with the ease of git repos. Build reusable microservices and functions.

YannzizTay/anime 0

JavaScript Animation Engine

YannzizTay/ant-design 0

🐜 A UI Design Language

YannzizTay/apollo-link-state 0

✨ Manage your application state with Apollo!

YannzizTay/atosl 0

A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols.

YannzizTay/automerge 0

A JSON-like data structure that can be modified concurrently by different users, and merged again automatically.

YannzizTay/awesome-expo 0

Useful resources for creating apps with Exponent

YannzizTay/base64 0

A robust base64 encoder/decoder that is fully compatible with `atob()` and btoa()`, written in JavaScript.

YannzizTay/bistro 0

Bistro is a light-weight column-oriented data processing engine which changes the way data is being processed. It is based on a new data model and is an alternative to conventional SQL-like languages, map-reduce and other set-oriented approaches. Bistro can be applied to many problems like data integration, data migration, extract-transform-load (ETL), big data processing, stream analytics, big data processing, IoT analytics.

YannzizTay/cinetpayJsButton 0

JavaScript integration for cinetpay's payment buttons

fork geohot/appnope

Disable App Nap on OS X 10.9

fork in 5 hours

startedkautukkundan/Awesome-Profile-README-templates

started time in 8 hours

startedjsvine/notebookjs

started time in 11 hours

startedyannickl/QRCodeReader.swift

started time in 11 hours

startedindutny/bn.js

started time in 13 hours

issue openedbramus/react-native-maps-directions

Realtime move

Can I move the marker while the user is moving and display the movement in realtime ? because when the user moves the location in Mapview it cannot move in realtime.

Thank you

created time in 15 hours

pull request commentautomerge/automerge

Add cevitxe to readme under 'Sending and receiving changes'

Great, thank you!

HerbCaudill

comment created time in 16 hours

PR merged automerge/automerge

Add cevitxe to readme under 'Sending and receiving changes'

see https://github.com/automerge/automerge/pull/284#issuecomment-734817546

+10 -5

0 comment

1 changed file

HerbCaudill

pr closed time in 16 hours

push eventautomerge/automerge

HerbCaudill

commit sha 089e84fc6103f01cf9e97135ac15a974e951ab5b

add cevitxe to readme under 'Sending and receiving changes'

view details

Martin Kleppmann

commit sha 08f884026d3e73d3c50ae7fbad212d3fe74da930

Revert unrelated changes

view details

Martin Kleppmann

commit sha fed28a58ceebe9ea6e3469e496c1de4ed942e6cc

Merge pull request #289 from HerbCaudill/readme-cevitxe add cevitxe to readme under 'Sending and receiving changes'

view details

push time in 16 hours

push eventautomerge/automerge

Martin Kleppmann

commit sha 2009189a9ff1f8659e720c0403e9a675b258b3f6

Remove transit dependency

view details

Martin Kleppmann

commit sha d70083ab43a0f91232836ff5f7abd8acf6cc79f9

Make BackendDoc.applyChanges match Backend.applyChanges

view details

Martin Kleppmann

commit sha f3743200b5f3c68ee4dc1c60004e17d81f548f25

Remove the undo/redo feature It's too much work to support for now, and it was never really well thought-out. Better to remove it for now, and bring back in well-conceived form in the future.

view details

Martin Kleppmann

commit sha f4102e6d3acf3a3ae72ed42b11428246363b2c21

Remove Backend.getChangesForActor()

view details

push time in 16 hours

startedjavan/input-inspector

started time in 19 hours

startedstimulusjs/stimulus

started time in 19 hours

startedbasecamp/trix

started time in 19 hours

pull request commentautomerge/automerge

Allow hooking into patch application

Thanks @ept that is very useful for my use case. It will simplify the code receiving remote changes and applying them both to the Automerge document and the user facing representation of the document.

ept

comment created time in 19 hours

pull request commentautomerge/automerge

add Automerge.getClock and Automerge.getMissingChanges

@HerbCaudill By the way, I just realised that Cevitxe isn't listed as one of the data sync layers in the README. I've put a brief one-sentence description in here: 6679330 — does this look ok? Feel free to change it to be better.

I'd like to tweak the wording a bit - why don't I just make a separate PR, since it's not really related to this one.

josharian

comment created time in 20 hours

fork EvanBacon/prompts

❯ Lightweight, beautiful and user-friendly interactive prompts

fork in 20 hours

fork kitten/ga-lite

Small, cacheable and open version of Google Analytics JS client

fork in 20 hours

Pull request review commentautomerge/automerge

Allow hooking into patch application

 function getAllChanges(doc) {   return getChanges(init(), doc) } -function applyChanges(doc, changes) {+function applyChanges(doc, changes, options = {}) {

I'm with @HerbCaudill here. I think this kind of options hash is common in JavaScript, since it gives us something a bit like named parameters in the absence of language support, and it allows us to add further options in the future without breaking existing code. Moreover, lots of existing functions in the Automerge API (init, from, load, change, etc.) already take an options hash. I don't see a problem with passing a function as part of an options hash: in JS, functions are values like any other.

ept

comment created time in 20 hours

Pull request review commentautomerge/automerge

Allow hooking into patch application

 function getAllChanges(doc) {   return getChanges(init(), doc) } -function applyChanges(doc, changes) {+function applyChanges(doc, changes, options = {}) {

I agree that readability would improve on the call side. But I think that's caused by missing labeled arguments in JavaScript which we should not try to fix.

When just reading function applyChanges(doc, changes, options = {}) I would expect to pass a document, some changes and a map which only contains key value pair, which help configuring the change method. I would not expect to pass references into options which provide me with the resulting patches.

On the other hand when reading function applyChanges(doc, changes, patchCallback) it is clear to me that I can pass a document, changes and a callback which provides some kind of patches. (It is also future prove to just add another parameter)

This is not really a strong opinion, so I am happy to go with options map as well :)

ept

comment created time in 21 hours

startedtomtom94/react-easy-ssr

started time in 21 hours

startedinovua/reactdatagrid

started time in 21 hours

pull request commentautomerge/automerge

Allow hooking into patch application

On second thought I do see that this is a little spooky since you're getting a new Automerge document every time.

const state = Automerge.init({}, { patchCallback }) 
const state1 = Automerge.change(state, s => s.foo = 42)
const state2 = Automerge.change(state, s => s.boo = 'pizza') // maybe it is weird for patchCallback to fire here
ept

comment created time in a day

pull request commentautomerge/automerge

Allow hooking into patch application

Overall this seems like a step in the right direction. It always seemed odd to me that you could watch for changes on a DocSet but not on an individual document.

An alternative API would be to pass in a callback function once when initialising the document, and automatically calling it on all subsequent updates. But I thought that had a bit of a "spooky action at a distance" feel, while the callback on every change/applyChanges call was more explicit. Though it could also be annoying for app developers to have to add the option to every single Automerge.change call, which might be scattered around an application. Any thoughts on this?

I'd imagine most developers would find the idea of a change listener to be totally natural, and not spooky at all.

Is there a reason why we can't have both?

const patchCallback = patch => alert(patch)
const changeFn = doc => { doc.foo = 42 }

// this works
const state = Automerge.init({}, { patchCallback }) // patchCallback will fire on every change
const newState = Automerge.change(state, changeFn)

// this works too
const state = Automerge.init({})
const newState = Automerge.change(state, changeFn, { patchCallback }) // patchCallback only fires on this change
ept

comment created time in a day

Pull request review commentautomerge/automerge

Allow hooking into patch application

 function getAllChanges(doc) {   return getChanges(init(), doc) } -function applyChanges(doc, changes) {+function applyChanges(doc, changes, options = {}) {

I prefer the interface @ept suggests here - the options map makes it easier to add the change API further in the future. It also makes the code calling this function more readable.

ept

comment created time in a day

issue commentautomerge/automerge

Python Implementation of the Automerge Server?

Is it completely automerge agnostic? I would expect the interest in a topic resided in the content of the automerge CRDT messages?

No, the "topic" in this sense generally represents one Automerge document or a set of Automerge documents (e.g. a DocSet, or what Hypermerge and Cevitxe both refer to as a repository).

echarles

comment created time in a day

pull request commentautomerge/automerge

add Automerge.getClock and Automerge.getMissingChanges

Thanks for doing clean-up. :)

josharian

comment created time in a day

startedpostcss/postcss-import

started time in a day

startedtjmehta/graphql-parse-fields

started time in a day

startedgraphile/graphile-engine

started time in a day

more