Code Monkey home page Code Monkey logo

yzfolder's People

Contributors

yzorg avatar

Watchers

 avatar  avatar

Forkers

digitaldangal

yzfolder's Issues

evaluate WatermelonDB

This project will have multiple implementations of the UI layer. I recently heard a podcast about
WatermellonDB and it sounds like the best fit available.

I think the real-time nature of file system (when a developer is working, and tools like compilers and bundlers are running) means that I want the UI to render from a local data cache, and changes to the local data need to be reflected (React/Vue re-render). I want the UI to be fast, which means the *data sync* will be happening *after* the cached directory list is shown. So it would be best if the app had a local, in-browser data store that was also reactive. WatermelonDB seems to fit the bill, when no others do.

When reviewing other local data libraries I kept thinking: Why can't someone just solve synchronization? But if WMDB gives me reactivity, then I think I think synchronization is solvable.

Others had promise, like GunDB, but that project seemed to spend a lot of time/effort on signing data, and other "distributed trust" scenarios that seemed way out from what I'm looking for. (Keep in mind, I'm trying to keep "first load" experience snappy, i.e. a Javascript code budget that Addy Osmani would be proud of.)

Wiki: research prior art

Finish the TODOs on the Prior Art wiki page.

Then consider the follow for follow-up:

Other / TODO

I should also review other file/fstat APIs for other frameworks and libraries I admire:

  • GoLang
  • Rust
  • modern C++, stdlib?
  • Linux/Postix
  • libraries or tools - All of these do a ton of file probing and manipulation, so what do they use?
    • Docker
    • VSCode
    • build systems: gulpjs, webpack(js), Bazel(Java, embedded Python)
    • from .NET: OmniSharp, aspnet core's view compilation, MSBuild(XML/dotnet)
    • libuv (Kestrel, and Node.js as a web server (CLI js covered by build))

integration A/B: reason vs Ramda

Until today my top pick for in-process functional (v8/elec/node) I was planning to use Ramda+flyd.

This is over RxJS v5 (y2017) b/c RxJS makes me decide how to deduplicate message streams, where flyd does it by default. If flyd is capable of doing that by default, then I think I'll be able to do better diagnostics to prevent idiodic paths during development or "partial" scenarios like unit tests and functional tests.

Inspiration: Got this idea from https://devchat.tv/react-native-radio/expo-adam-perry. About TH1 in (1 hr in) they start talking about using Reason (FB) with React Native.

UX architecture options: preact, React Native

Preact

This first version will be on React, but I plan to run experiments with migrating to preact.

  • performance tests: preact vs. React, startup, 100 "clicks"

React Native

Downside: React Native seems to prefer native controls over HTML (web platform) UI.
Upside: the messaging and v-dom diffing moved off the UI thread -- this is much closer to my optimal mental model (where I'm trying to go long-term).

keyboard shortcut for switching tabs inside the browser window

Interesting keyboard navigation (not default) to move "panes" in VS Code. Consider using ctrl+] or alt+] to switch directory "tabs" or "panes" in yzfolder.

[
  { "key": "cmd+]", "command": "workbench.action.nextEditor" },
  { "key": "cmd+[", "command": "workbench.action.previousEditor" },
  {
    "key": "cmd+]",
    "command": "workbench.action.nextSideBarView",
    "when": "sideBarFocus"
  },
  {
    "key": "cmd+[",
    "command": "workbench.action.previousSideBarView",
    "when": "sideBarFocus"
  },
  {
    "key": "cmd+]",
    "command": "workbench.action.nextPanelView",
    "when": "panelFocus"
  },
  {
    "key": "cmd+[",
    "command": "workbench.action.previousPanelView",
    "when": "panelFocus"
  }
]

from https://code.visualstudio.com/updates/v1_29#_workbench-navigation-commands

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.