publiclab / matcher-core

Pattern-matching module for detecting key-points in images 🎈
https://publiclab.github.io/matcher-core/
GNU General Public License v3.0
0 stars 11 forks source link

Matcher's node implementation #16

Closed rexagod closed 5 years ago

rexagod commented 5 years ago

@jywarren It's finally done! This PR has been worked on for about a week now and I'm just so glad to get this done. It supports user-specific image imports (the binding to "global" below) which is upped on a server then fetched by the html, which gets parsed for the results that are sent back to node.

test

I'm just bubbling with joy right now! Just let me know if everything looks good here so I can get to docs and the IS integration!

Thank you so much for supporting me throughout #9 (and generally too on a regular basis), much appreciated!

Also pinging @IshaGupta18 since she was interested in this PR's implementation.

Edit: For some reason the gif above had a delayed start, and is not infact the delay in the cli but the recorder itself.

rexagod commented 5 years ago

@jywarren This is good to go!!

rexagod commented 5 years ago

@sashadev-sky Sorry to have kept you waiting in LDI through the debugging process here. I'm 100% on it those LDI issues now!

sashadev-sky commented 5 years ago

Sorry for not helping with puppeteer!!! Completely meant to look at that. awesome job getting it done anyway πŸ‘

rexagod commented 5 years ago

Haha no worries and thank you so much! Actually in the https://github.com/publiclab/matcher-core/pull/16/commits/c9defdf4121d15be1d5be5be344e2e51cfb25bf4 I had to redo almost everything from scratch that resulted in a large time reduction mostly owing to the shift from socket programming in earlier commits of this PR to EJS runtime generation in https://github.com/publiclab/matcher-core/pull/16/commits/c9defdf4121d15be1d5be5be344e2e51cfb25bf4 Coding was the easy part, however, formulating the workflow, without a doubt, wasn't.

https://github.com/publiclab/matcher-core/pull/16/commits/c9defdf4121d15be1d5be5be344e2e51cfb25bf4 took me two whole days to come up with this idea. EJS was my last option I could think of in hopes to get a 100% stable library, and it worked! Everything from here on out should not be time-consuming I suppose.

Thank you all for your patience, really appreciate all this support that helped me get through this one! πŸ™Œ

cc @jywarren @sashadev-sky @sagarpreet-chadha @IgorWilbert @harshithpabbati

rexagod commented 5 years ago

PS. Just noting that this lib uses the heroku 16 stack i.e., libxss1 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxtst6 libnss3 libgconf-2-4 libxrandr2 libasound2 libatk1.0-0 libgtk2.0-0 libgtk-3-0 libxinerama1 libcairo-gobject2 libraries to work in a stable manner. Else for some reason it won't work in the first go. So I'll just drop this in the docs once this PR passes the code review.

sashadev-sky commented 5 years ago

@rexagod this is awesome! Should we be injecting our SVG in LDI this way too?

rexagod commented 5 years ago

Injecting SVGs into html templates? Can you elaborate on what ideas you have in mind about incorporating EJS in LDI? Maybe open a new issue over at LDI including the workflow? I'm excited to see how this works out! πŸ™Œ

rexagod commented 5 years ago

Also, @jywarren I'm thinking of releasing v1 after we get this one in. What do you think?

sashadev-sky commented 5 years ago

@rexagod see the milestones section next to PRs. @jywarren let’s all find a time to discuss it? We just have to be strict with breaking changes after version 1 so we need to finish code restructuring and some key APIs like allowing a mode selection. (Things like making a distortableCollection.edit and making sure actions are no longer in the global scope) Also finalizing how we will represent modes vs actions in a way that makes sense. And I guess all noticeable bugs should be fixed (keybindings, keymapper, EXIF, revert).

I think we are really close though!! Just have to tie the loose ends and get our code to stability, I am finding myself making breaking changes more often than not still.

I was also thinking converting to ES6 would be nice before release 1.

jywarren commented 5 years ago

Looks awesome, i'd love some short replies to a few questions, but after that we can merge this! Let's push it to gh-pages too please!

rexagod commented 5 years ago

@jywarren Pushed @ https://publiclab.github.io/matcher-core/ πŸŽ‰

rexagod commented 5 years ago

Also note that the node logic was re-written after this PR so the constructor is even simpler now: Promise.resolve(require('matcher-core')).then(fetchPoints);. That's it! All this has been updated in the add-readme branch.

jywarren commented 5 years ago

That's awesome!!!

On Sun, Aug 18, 2019 at 4:32 PM Pranshu Srivastava notifications@github.com wrote:

Also note that the node logic was re-written after this PR so the constructor is even simpler now: require('matcher-core')(callback). That's it! All this has been updated in the add-readme branch.

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/publiclab/matcher-core/pull/16?email_source=notifications&email_token=AAAF6J6Z5XXYBPWGYH3UM3DQFGWS3A5CNFSM4IJOHRZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4RHSRI#issuecomment-522352965, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAF6J3RDHR2VMY7SU3HUW3QFGWS3ANCNFSM4IJOHRZA .

rexagod commented 5 years ago

@jywarren I've merged the add-readme branch that had all of the commits from the other PRs (this and #17 ) so closing this one!