Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Jaime Pillora
    @jpillora
    CRAP !
    I had a long edit above and lost it because it went over the 10min edit deadline :( I'll rewrite it another time lol
    Filed a bug report with Gitter
    Jaime Pillora
    @jpillora

    I think the way forward is to build the smallest thing we can to start using it and learning.

    Agreed, I think we've got some good ideas in this thread (hopefully Gitter doesn't wipe it) and now's probably a good time to start something small and begin iteration.

    How about being able to create chat rooms really quickly.

    Thought of this too, though I think it needs to be even faster than a git branch lol, it needs to be a single click - Like in the context menu (along with AGREE, BUTTON X, Y) there should be a CREATE NEW DEBATE or something. And then once that's done, a statement should just be a link to the new debate

    Jaime Pillora
    @jpillora
    I'm running on a pretty tight schedule at the moment though I'll aim to get this started next week. Does Go on the backend and ES67 React Flux on the frontend sound okay? I've seen a few videos on the Flux architecture and Go should play nice with that style event passing

    (I'm also trying to get https://github.com/jpillora/cloud-torrent functional - so many projects so little time...)

    bed time for me

    Vaughan Rouesnel
    @vjpr

    maybe all this quoting could be simplified to some nice UX work flow... anyway, onto the debate:

    Yeh I find chat/quoting frustrating for these kind of async chats. I have to scroll up to top. Quote. Reply. Then scroll up again. Following a thread further back in time is impossible. Something like the threaded conversation view like Google Wave feels like it would help — but it adds its own complexity. I’ve always wanted to compartmentalize discussions around topics. The difficulty is they always leak into other topics, and there’s friction involved in moving conversation to another thread/room. Slack offers this and its been wildly successful. I still find a lot of the actions too slow.

    I just keep thinking that raw chat is the most natural and must always be there. I don’t think there is a holy grail interface. It will be about making a trade off.

    I thought that too for a while though I didn't actually have much of a usecase.

    Code sharing not so much. Server-side rendering is the main thing. Makes interfaces super-snappy. There’s no choosing SPA vs website anymore. You get both for free.

    Vaughan Rouesnel
    @vjpr

    When we had someone start, in order to keep being productive, I had to put him on side projects while I build the main chunk of the ship.

    Haha. This is exactly where I am right now. Just had a new guy join. And I had this massive mess.

    However, over the years I’ve had this idea about how Node code should be organised, and last weekend I finally refactored our whole codebase to it.

    The main philosophy is that you should be able to remove a module and the app still works. And you should be able to add a feature by typing npm install my-feature and its auto wires itself into your project.

    I call it Live. Its just a plugin system you can drop into any codebase with a few conventions. At startup, it scans all your module dirs for live.js and/or live.browser.js file. Inside the file you can put a exports.register = (app) => {}. app is the app container where you can hook into events using app.before, app.after, and fire your own events app.perform. Each module also has a config folder. You can override any config using your top-level config folder.

    The goal is to be able to scaffold an app super quick using npm install. At the moment there are so many bootstrap scripts called like “webpack-react-koa-starter”, “react-flux-bootstrap”. I am shimming all the popular modules, creating sensible config defaults, exposing all the main config in a consistent config format.

    So when I start a project I can just run npm install live-webpack live-koa live-react live-flux etc.. and everything is wired up and working.

    If you want to change something you can just copy the module from node_modules into modules and its in your source control and you can make changes. However most of the time you just create a new module, and hook into some events.

    I’ve also applied project structure and plugin system to an industrial STM32 embedded C++ project.

    The goal is to make everything reusable modules. I think this wasn’t possible before, but now that we have Webpack and React, its possible.

    As you can guess :stuck_out_tongue_winking_eye: definitely Go on the backend, though not so fussed about the frontend - would be happy to give ES6/7 (babel) + react + flux a whirl on the frontend. From what I've seen ES6/7 are basically just coffeescript features ported into JS?

    Cool. I always love an excuse to try out something new. Flux+React on front-end is a safe bet. I’m looking for an excuse to try out ClojureScript and the Om Framework though - but the learning curve would be too large for the time I would have available.

    I'm running on a pretty tight schedule at the moment though I'll aim to get this started next week.

    Yeh me too. I’m back in Aus July 5th for a month. We should catch up. I think once we get the project building and deployed - it will be a fun project to hack on for a few hours each week.

    Vaughan Rouesnel
    @vjpr
    bed
    Jaime Pillora
    @jpillora
    this looks interesting - many lessons to be learnt from how this app progresses
    Jaime Pillora
    @jpillora
    im on a train, will write my replies offline i think lol
    Jaime Pillora
    @jpillora

    later a plugin system to experiement with different approaches

    Atlassian's Jira does this, it's got a ton of features and modes which you can choose from. Yet there are a few core pieces which are omnipresent.

    Definition sidepanel, Show a pro/con table in the sidebar, etc

    I think some of these would need to be baked into v1, though definitely start sparse in beta and then make data driven feature decisions

    like Google Wave

    I never used Google Wave, I heard it was good though never caught on because of its unorthodoxy/complexity. I'm sure there are good lessons to be learnt from it though.

    compartmentalize discussions around topics. The difficulty is they always leak into other topics

    Agreed, keeping discussions focused will be really important. Some people I know diverge away from the topic of debate easily and quickly becomes unproductive. For example, two people might diverge while others have moved to a new thread. The problem is, as with many we've discussed, the only real automated solution is true AI. We'll just have to experiment with different UX solutions for this. I have a feeling user flagging will become the solution, just need to hone the heuristics.

    Don't want to get into the UX weeds again though just as an idea for the future while I'm thinking of it. Maybe given some heuristic, we could convert a branch (sub-tree) into a new debate (the root of a new tree). People from the first debate would still see the converted comment as a comment, though you can no longer reply, you must follow the link to the other debate.

    I don’t think there is a holy grail interface. It will be about making a trade off.

    Agreed

    Server-side rendering is the main thing. Makes interfaces super-snappy.

    I see the benefits of this for SEO, though using standard href/a-tags with pushstate/historyapi you get crawlability. I agree load times are improved, though with resource caching (and the more extreme - appcache) and data caching (localstorage) you can reduce load times significantly (not possible with legacy browsers unfortunately though). Pure client-side rendering creates a nice separation between frontend/backend, run frontend on (www.foo.com) and backend on (api.foo.com). Allow a CDN to handle www and it'll relieve your backend from much of the superfluous traffic.

    The main philosophy is that you should be able to remove a module and the app still works. And you should be able to add a feature by typing npm install my-feature and its auto wires itself into your project.

    I think this a good strategy and I've dreamed of various ways to solve the Node code organisation problem. I've arrived to the opinion however the problem is Node/npm itself. The fact that we are able to monkey patch anything, place code anywhere, and load it in any way we like is the problem - this ability instant causes multiple solutions to arise, which then leads to divergence in the language, the excessive invention of DSLs and therefore never-ending list of "sub-languages" to learn. Not saying your solution is bad, only that it would be extremely difficult to make it (or any other organisation solution) mainstream Node practice.

    I think this is an issue in all languages though Go (sorry about the Go bandwagon) was actively designed to prevent this kind of situation. There is exactly 1 way to format code, organise modules, organise tests, run tests, and there is an overarching philosophy that gets (sometimes harshly) drilled into users by the Go community.

    now that we have Webpack...

    I do like Webpack, I was using for a while in my startup to attempt to create a "single binary" (single js file) for distribution and obfuscation.

    Yeh me too. I’m back in Aus July 5th for a month. We should catch up.

    Sounds good! it'll give me a chance to chat to you about Europe, my girlfriend and I plan to go for a few months next year.

    I think once we get the project building and deployed - it will be a fun project to hack on for a few hours each week.

    Agreed, once we've got continuous deploy up and running - free Heroku should be enough - we can just hack around on Github and slowly progress, testing it ourselves on family/friends, hopefully recruiting others to the cause.

    Sean Parker’s Brigade App Enters Private Beta As A Dead-Simple Way Of Taking Political Positions

    This looks very interesting, looks like a cut down version of debator, focused on capturing user positions on things. Looks like each card has a comment button so there is discussion, though I'm guessing it's just plain chat.

    It'll also give us a direction not to go in, so we're not just a clone. It looks like Brigade is a topic voting app, where I feel like we're decided on being chat app - with some pretty argument structuring and debate focused sub-chat forking.

    Some thoughts Brigade.

    Pros:

    • Simple, people can quickly become participating users
    • Pretty looking
    • Alpha phase, initial users are the people who jumped through a few hoops to get it so they'll (hopefully) have higher quality usage.
    • Leaderboard/Gamification, this might be the thing helps the engagement problem below.

    Cons:

    • Tied to your real name/identity - "Many are happy to quietly vote for their beliefs, but might not want to trumpet them in perpetuity online" becomes a problem.
      • Like Reddit, I think we should not force using identities
    • Continued engagement - "And while getting on your Brigade soapbox might be fun occasionally, becoming something users find engaging enough to consistently return to may be difficult. People tend to forget about apps they don’t use at least once a week.".
      • During certain times, voting on cards and seeing vote counts might be interesting, though this doesn't feel to me like it will drive much engagement. I think placing people in situations where they must own and defend their words will provide enough social pressure to keep users coming back (I see this on Reddit quite a lot)
    • Points for converting people, seems open to exploitation, slightly combated by real identities.
      • I feel like points should come from collective decisions, not just decision of one other user.
    Vaughan Rouesnel
    @vjpr

    I do like Webpack, I was using for a while in my startup to attempt to create a "single binary" (single js file) for distribution and obfuscation.

    ;) webpack/webpack#135

    About a month ago I was researching deploying Node apps and came across this. Great idea btw! I still want to do it.

    I’m finding Gitter very frustrating. I’m quite confident that this kind of simple chat would not be effective for debates.
    Vaughan Rouesnel
    @vjpr
    Flat (github issues, slack, gitter, etc.) vs. Threaded (Reddit, Hacker News) is a big question that we need to answer early
    I wouldn’t worry about Brigade. It seems more focused on political awareness which is most of the battle in the US.
    Vaughan Rouesnel
    @vjpr
    Also, 2-level threading is another option. I think Google+ uses it.
    It allows sub-chats in the same room
    But makes it a lot less like chat and harder to see the chronological order.
    However you could split of the chat with replies into another chat room perhaps
    There was a cool startup funded by Evan Williams (Medium) called Branch that did this kind of thing.
    I think it would be worth checking out Discourse forum software from the same guys that made Trello.
    They have an interesting threading model if I remember correctly.
    The Stack Exchange chat is interesting too. Arrgh so many threading models!!
    We need a way to experiment…...
    Jaime Pillora
    @jpillora

    webpack/webpack#135

    totally forgot that i wrote that lol

    Disourse

    (and the additional demise of NinjaBlocks - poor guys)

    https://discuss.ninjablocks.com/t/ninja-blocks-whats-been-happening-whats-happening-next/3608

    Seems like discourse is G+/Youtube 2-level style

    Jaime Pillora
    @jpillora

    The Stack Exchange chat is interesting too

    http://chat.stackexchange.com/rooms/36/mathematics

    Seems it's 1-level with user highlighting, maybe I'm missing some extra features?

    Arrgh so many threading models!!

    I'm personally a fan of Reddit style trees (with threshold default hide/show), I know some find it complicated and i could be wrong however I feel it necessary to have functional debates (combined with branch linking of duplicate arguments)

    We need a way to experiment...

    Agreed, we've got some great ideas tucked away in above sea of words, just need to get something going lol - I just made a tech stack document in the Debator folder https://drive.google.com/drive/folders/0B4i-6nXTaca7dlF1TmpZa2dnbmM (make any comments/edits) - also I've enabled public read so anyone can follow along

    Jaime Pillora
    @jpillora
    in the above*
    Vaughan Rouesnel
    @vjpr

    https://discuss.ninjablocks.com/t/ninja-blocks-whats-been-happening-whats-happening-next/3608

    Damn. They built such a cool product. Hardware is crazy though. Everything overruns. I’ve seen it happen. Weeks turn into months so fast. I could list so many things that have overrun 4x with our current hardware product.

    http://chat.stackexchange.com/rooms/36/mathematics

    User highlighting is good for these rapid fire, many user, chat rooms. I don’t think its that useful for us.

    Vaughan Rouesnel
    @vjpr

    I'm personally a fan of Reddit style trees

    They way Reddit uses it is very effective. Its very easy to read through a thread, and sprinkle in comments for each point. I think its the best example of compartmentalizing discussion. I am a big fan.

    The only issue I have is there is ambiguity when to nest and when to add to existing thread.
    This is where the 2-level helps.
    However, when you move away from chat to any kind of threads, following the conversation becomes the problem because posts are not organised in chronological order.
    Vaughan Rouesnel
    @vjpr
    The Google Wave ppl thought deeply about this and had a few ways to try and tackle it. They had a playback feature, so you could see the discussion evolve over time. Ultimately it was clumsy.
    Vaughan Rouesnel
    @vjpr
    Have you used quip before. I'm using for all docs. It's pretty cool. Maybe we could move some of this discussion over there. http://www.quora.com/How-is-Quip-better-than-Google-Docs
    The UI may be interesting to evaluate for debater. It has a main document then sidebar for activity discussion.
    Jaime Pillora
    @jpillora
    just moved docs to quip, it's missing a Google Drawings equivalent though happy to embed png URLs from quip when we need them

    Weeks turn into months so fast. I could list so many things that have overrun 4x with our current hardware product.

    I just scheduled in 4x hours for this consulting work for this exact reason lol - we may get done sooner though better that than late

    posts are not organised in chronological order

    do they need to be? i guess we do want the user interaction to feel like a natural conversation...

    Jaime Pillora
    @jpillora
    continue chat in quip Debator chat room?
    Looks like this idea is now of YCombinator interest