Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • May 27 06:08
    User @Mitzi-Laszlo unbanned @in1t3r
  • May 23 06:49
    @Mitzi-Laszlo banned @in1t3r
  • May 16 09:49
    @Mitzi-Laszlo banned @mediaprophet
  • Feb 01 22:04
    User @melvincarvalho unbanned @namedgraph_twitter
  • Feb 01 21:49
    @melvincarvalho banned @namedgraph_twitter
Ghost
@ghost~57bc59d440f3a6eec060e93b
tjhorton
@tjhorton
@Mitzi-Laszlo I'm as concerned as you are for both legal and technical. Please reference my link above.
tjhorton
@tjhorton
My point is that a data coop solves both legal and technical aspects without splintering the data. Consolidation does not equate to exploitation, if we own the consolidator (a standard legal coop).
Arne Hassel
@megoth_twitter
And nobody should stop you in trying to create that co-op
Maybe Solid can be part of that even, it is about social linked data after all
The focus here is on developing Solid into becoming what it can become - a decentralized ecosystem where people control their data
And all of the services and innovations we hope for to be part of that
In any case, I think at the center of it should be interoperability - services able to work on the same set of data, giving people more choices in how they consume and produce their data
Tim Berners-Lee
@timbl
I had a chat recenntly with a lawyer who hd been heavily involved in the uk Coop which in nowadays mostly food shops but at one point was many things. He thought that looking at coop legal systems for Solid data storage could be a good idea.
Julian Cole
@Julian-Cole
@timbl interesting! something I was thinking of is that I'd like to see local libraries have more involvement in open services that support features in the solid core app set that should be available to everyone for free.
Mark Hughes (happybeing)
@theWebalyst
Anyone around to think about a node packaging issue with me? I'm trying to build a module that has a circular dependency, i.e. a fork of solid-auth-client, where: solid-auth-client -> safenetworkjs -> rdflib -> solid-auth-client. I don't think this can work, but would love to hear if there's a way to do this.
Mark Hughes (happybeing)
@theWebalyst
Would it be possible to make rdflib external to safenetworkjs (so bundling leaves it unresolved) and have solid-auth-client provide rdflib for safenetworkjs to pick up? I don't know if that even makes sense, but I see that rdflib seems to do something like this when building a browser bundle, but not for this reason (here).
Tim Berners-Lee
@timbl
NPM should manage the circular dependenctybut I am not an expert
webpack also
Mark Hughes (happybeing)
@theWebalyst
Thanks Tim. I get a memory allocation error during the webpack bundling, which doesn't happen if I break the circle so I'm thinking it's related. I have found some suggestions on StackExchange so have things to try.
Arne Hassel
@megoth_twitter
I thought NPM should handle that as well, but if method foo in package A is calling method bar in package B, and method bar is calling method foo, you might get a circular dependency that never exits - that isn't the case here, is it?
Mark Hughes (happybeing)
@theWebalyst
I'm not 100% sure so am going to use my sophisticated debugging technique of prodding and poking until it works [cough].
Jeff Zucker
@jeff-zucker
@theWebalyst that particular use of external in the webpack (rdflib sets solid-auth-cli to null) basically says - rdflib depends on solid-auth-cli so include it but if we're building the browser version of rdflib, use solid-auth-client and forget solid-auth-cli exists ... Overall effect is we get one on the command line and one in the browser but never both.
same here with the prodding and poking until ... :-)
Mark Hughes (happybeing)
@theWebalyst
Thanks Jeff, I see the null thing is probably not helpful for this. I shall poke :grin:
Fabian Cook
@fabiancook
@theWebalyst within your module, maybe completely leave out the rdflib dependency, and instead of a dev/peer dependency, then have provided at runtime
Mark Hughes (happybeing)
@theWebalyst
How would I do that?
Fabian Cook
@fabiancook
By doing this with us much as you can, you can reduce coupling... for example I have an fs compatible implementation provided to one of my modules via an options object...
// These are all the functions we utilise
// If a method requires a specific function that isn't provided
// then the method won't be available
export type FSCompatible = {
  unlink?: typeof fs.unlink,
  lstat?: typeof fs.lstat,
  chmod?: typeof fs.chmod,
  stat: typeof fs.stat,
  rmdir?: typeof fs.rmdir,
  readdir?: typeof fs.readdir,
  readFile?: typeof fs.readFile,
  writeFile?: typeof fs.writeFile
};

export type FSStoreOptions = {
  fs: FSCompatible;
}
It would require you to follow a model where you can pass that options object around though...
Mark Hughes (happybeing)
@theWebalyst
Thanks, I don't understand this. Can you link to the repo so I can see it in context?
I'm not sure if I'll have the flexibility to do something like this, but it will be useful to understand the design pattern regardless.
Mark Hughes (happybeing)
@theWebalyst
Cool, thanks very much!
Fabian Cook
@fabiancook
You'll see the same pattern throughout my projects
The reasoning behind this... I can now run an almost fully solid compatible implementation in the browser, in react native, and on the server, which can also be deployed in a serverless environment, no dependency on express, or node, or even having a persistent filesystem... if you wanted to just use your normal filesystem in node.js, fine, just pass the fs module no problem, if you want to use anywhere else, use hyperdrive
Arne Hassel
@megoth_twitter
That's sounds like a good setup ^_^
Fabian Cook
@fabiancook
Next week will be hooking this all up with the databrowser & making it work without solid...
Because of all of this, you can also compose a setup where there is no auth required, so just query something directly. And once I have implemented this... https://github.com/o-network/http-copy-symlink/blob/master/README.md... I will be able to define a template for a pod externally & just clone it, template could be on git, another pod, or on dat/ipfs/whatever
Arne Hassel
@megoth_twitter
@fabiancook very happy to read about the data browser - let me know if you get any problem with the work we at inrupt has started to improve it ^_^
Fabian Cook
@fabiancook
I would be great if I could have support or recommendations on the copy via symlink front... I think it would be a great addition to solid, and I could build an implementation (this would be true either way) that supports NSS as well as my implementation
(everything I have built can also replace said component within NSS AFAIK with no problem)
Mark Hughes (happybeing)
@theWebalyst

Update on circular dependencies - I tried some of the hacks from StackExchange here without success so far. I don't really understand how all this works well enough, so I might not be applying the right things in the right place but that's nothing new for me with nodejs!

I'm curious though that from the initial responses, people say npm should take care of this. This makes me wonder if the issue is during development because I'm using yarn link rdflib in safenetworkjs. Again I don't understand how node modules are processed well enough to think about this.

I may have to resort to something crude like inserting the functionality on a global object. I wanted to avoid that so that the only change needed to a Solid app would be to use a different solid-auth-client, and not change any of the code itself.

So I'm going back to thinking a Solid app would use a SAFE compatible solid-auth-client as follows:

In browser script:

window.safeJs = require(safenetworkjs).safeJs
auth = require(solid-auth-client).auth

or nodejs:

safeJs = require(safenetworkjs).safeJs
auth = require(solid-auth-client).auth

or in html:

<script src='safenetworkjs.js'></src>
<script src='solid-auth-client.bundle.js'></src>
Scott McWhirter
@konobi
use of link can be handy, but it's a bit of a footgun in my experience, so I've always avoided it
Mark Hughes (happybeing)
@theWebalyst
How do you develop without it?
footgun - not heard that before! :laughing:
Scott McWhirter
@konobi
@theWebalyst I just do? If I have a complex arrangement between various packages, I'd tend to tweak the npm package.json to point directly to the path of where the dependent scratchpad space is rather than just a name
if it's a little further out of a boundary between more than one dev and production env, npm scopes would come into play
Mark Hughes (happybeing)
@theWebalyst
Thanks, will give that a go.
Dmitri Zagidulin
@dmitrizagidulin
Solid Community meeting call is starting: https://www.w3.org/community/solid/wiki/Meetings
Mark Hughes (happybeing)
@theWebalyst
Grrr, your suggestion sounded so promising @konobi but I now get the memory allocation error while doing the 'npm install' of my local rdflib! It may help me isolate the problem all the same and its good to have another tool in the bag, so thanks for the suggestion.
Mitzi László
@Mitzi-Laszlo
@fabiancook the people on the other hemisphere W3C Solid Community Group call were keen to hear more about the conversation you raised last week on "HTTP Signatures & possible deprecation of WebID + TLS and DDI vs HTTP URI for WebID https://w3c-ccg.github.io/did-primer/" @elf-pavlik had some questions. Any chance you could enhance the minutes and explain your thoughts to make sure we're all in sync.
Michael Pigott
@mikepigott
Yes! I am building my own SoLiD server in Scala / Play (unfortunately the rww_play project seems to be abandoned), and of course, the first thing I implemented was WebID-TLS. https://github.com/ironhorsesoftware/webid-tls-jsse So I’m a little biased :-)
I wasn’t sure how I felt about WebID-TLS at the beginning, but I like it a lot more now that I’ve implemented it. So I personally agree it shouldn’t be the primary authentication mechanism ( https://github.com/solid/solid-spec#primary-authentication ), or even a required one, but I’m not sure it should be deprecated and removed from the spec either.
elf Pavlik
@elf-pavlik
@michielbdejong can you point me to your ACL in JSON-LD files? I can take a look at how you use JSON-LD @context