SAFE Network TEST 9 + SAFE Mail Tutorial

Back to English please kaaskoppen :wink:


Ik heb het aangepast, nu zelf met een foto erbij.

For the non-Dutch, I made a spelling error instead of “try out the new mail”, I said “trouble the new mail yourself”. Ooh kee I’m sorry but I was just too exited to spread the news. :stuck_out_tongue:

nice…our local paper only accept 60 characters, that’s even to short for the link:

1 Like

I also have deep concerns about using node.js for Safe applications, specially when you look how npm pulls dependencies from everywhere without any kind of integrity checks . I have the feeling that this alone makes it non suitable for any application that would manipulate sensitive content.


It also appears to me that getting up to speed with using node.js, specially in the context of React+Redux that was chosen for the tutorial ( @happybeing, this is clearly stated as such, btw ), so that one can quickly focus on the Safe concepts and internals, is MUCH more easy than , say, going the c++ , gtk or Qt way . One of the strengths of node.js is that it allows to produce functional UI applications really quick, without having to deploy energy on the graphical side. Everything is ready-to-use. I would even say, if one has some browser javascript knowledge, node.js makes producing applications quite akin to developping for web. It should take a few days learning that stuff and getting efficient enough so that , even if your code is NOT production ready ( this is a tutorial, after all ! ) , you DO learn the Safe stuff. I am not sure many other platforms can provide such a convenience to a wide audience, and as such, the choice of node.js appears to me as quite clever.

So, while it has certainly severe drawbacks, it allows us who are eager to learn Safe, to very quickly jump straight into what is important.

I also had to struggle with what is new syntax to me, like : var f = ( (x) => return x+1 ); but this is clearly stated in javascript syntax ( see : , look for “shorthand for assigning a function expression to a variable” ).That, and plenty of similar things that are very new to me.

But then I don’t think this is the role of the Maid crew to teach us how to retrieve documentation or to teach us new languages , and I suppose they expect us to do our part of that job ! As @Blindsite2k said, I just have to “get up to snuff on my javascript” :wink:


Maybe use

“I do want to learn but you don’t go straight from arithmatic into calculus or from learning to decode sounds into writing a scientific paper. There needs to be a progression of education. Also isn’t the code meant for an app developer? If it was meant for writing a library wouldn’t the aim and purpose of the tutorial be different?”

If I needed to learn a language I didn’t know, I would go away and learn it, then come back when I had a good understanding of it. I wouldn’t expect a tutorial which has knowledge of that language as a prerequisite to teach me it.

There are loads of books, videos, articles, etc on then net. Even the node compiler is free and you can experiment with it. I am struggling to understand what more you want, other than asking the devs to write another node js programming 101 tutorial, which would be a waste of their time.


If it’s a prerequisite state so clearly. And as I stated above adding a link to already established resources doesn’t cost a ton of time. If the attitude of the dev tutorial writers is that node.js is a prerequisite to understand the API then that should be stated explicitly. If the assumption was that you need to understand C++ or Rust we’d be having the same issue. Because not everyone understands the same language to the degree the tutorial writer does. It’s not a waste of their time to take educating entry level coders seriously because that will be where new app devs start coming in from.

“What I really find disrespectful is this intellectual snobbishness that seems to be so prevasive among some devs.”

Seriously? Software development is a profession. It takes years to master. You don’t seem to be prepared to put in the leg work, which understandable, but please don’t insult those who have spent the time to master the discipline - that is disrespectful!

The safe net devs are creating great resources for devs here. I am not an expert in node, but I created a java implementation just from reverse engineering the last undocumented test net. Without wishing to sound even more snobbish, I could do this because I have spent years refining my craft.

Learning how to write good software is something you largely have to teach Yourself. You have to digest the tutorials, then experiment, then repeat over and over again until it becomes second nature. You then become conscious of design patterns and good techniques and you start to master the process.

If you don’t want to put the time in to master software development, fair enough - I don’t have time to master mechanical engineering either. However, I don’t complain about not being able to design and fabricate car parts - I just let those most qualified do so, then buy the car assembled.


Sure, they should have some prerequisites. That is easily added.

I agree. The entry level to understand the API is just a bit high.

If I wasn’t willing to put in the leg work I wouldn’t be bothering to learn the API or underlying languages.

It’s strange you seem to equate asking for help and emphasizing the importance of education as a lack of desire to put in the time to learn something. To continue your metaphor if I wanted to learn to build a car I’d look for people that already knew how or materials on the subject. And I’d be asking where they learned it and what the prerequisites were and what needed to be learned in order to master the craft. And if i went to a class that didn’t state what the prereqs were or what other classes I needed to take in order to understand the material YES I’d be bitching at them too. Teaching is also a profession by the way. And teaching someone to read is IMPORTANT! Whether it’s English or javascript or node.js it doesn’t matter. Teaching literacy is important. If you don’t want to teach literacy fine but if what you are teaching REQUIRES it then it’s in your best interest to link to some place that DOES teach it.

Yes self education is extremely important. I couldn’t agree more. I’m a huge advocate of self education. But weren’t you the one talking about not reinventing the wheel? Why learn through experimentation what has already been documented and outlined. If you need to experiment in order to comprehend great but that doesn’t negate the value of having good educational materials close at hand.

It is like you are asking get the engineers who design and fabricate the car parts, “how do the robots work?” They may have a good idea, but it really isn’t the forum for it. The robot building and programming forum is.

If you have questions about node.js, a forum dedicated to learning node.js is the best place to start. They will link all sorts of node.js material, lessons, help for beginners. That is the best place to start, rather than expecting those here to teach it.

So the engineer says “Well I don’t have time but here’s a link to the robot building forum.” Especially if the engineer wants the inquierer to learn how to build more robots. If SAFE devs writing the tutorials don’t have time then link to the information or desired forum where it is available.

Exactly. This isn’t a how to write node.js apps forum.



So on the tutorials LINK to one that is. Even bloody college courses reference their prereqs and refer you to the couses you need to take in order to understand them. This is not a novel concept.

I think you have many good points, but probably we require to have two streams here.

  1. Release for application developers (as now)
  2. Learn how to to code with SAFE applications

point 2 is a really huge issue in many ways. Time is a killer obviously and then what language? We have created a RESTfull API to be language agnostic, so it would be misleading to provide step by step guides for a single language (I mean learn the language then learn SAFE).

So you should not see node or react etc. as the language of APPS, we choose those for rapid delivery of multiplatform examples.

I am only adding this as it seems there is a belief node/react/electron etc. are the language of SAFE when we have tried very hard to be language agnostic.

The key will be choose a language (almost any language) that allows you to design a GUI and basic app logic for whatever platforms you wish. Then use the REST API to use the SAFE network.

It would be wrong and misleading for us to push any language and we do not have enough resources to cover many languages at once, although forum members have done some examples in python/go/c#/java etc.

Basically choose your language first then learn it via the resources on the net (many languages have free tutorials, even university courses, none of which again we can really push above others).

I think we need somehow to put that across in a better more clear way, otherwise there can be confusion.


This is why I think there need to be multiple code examples in different languages. So that people can see the same thing being done different ways and seperate the concepts of the API from the language. So show it in node.js, regular javascript, python, c++, Rust, whatever show it multiple ways so that people start seeing the API pattern itself. They don’t need to know the entire language but if they can find a language they know and can spot the pattern in comparison with other languages this allow them to lift the API and what’s being done with it out from the language being used to demonstrate it. Even if this was just done once on the official documentation then when one went to read a tutorial one could reference back to the main documentation and have an idea of how it applies across the board in different languages. The API might be language agnostic but if one doesn’t know where one begins and the other ends or how to apply it then you’re stuck learning node.js or whatever language the tutorial is written in so you can copy/paste code.

Personally I’d be happy to learn node but such things take time. And if I just want to learn how to do something simple with the API with regular javascript say I should be able to do that too without having to learn node.

Here’s a thought: Colour code it. Just colour code the api vs node. Like make the node.js or whatever Blue and colour the API code Red or something. So that there’s a visual indicator of where one ends and the other begins. That would be a very easy way to help with the language agnostic aspect. Then just make it clear what the node.js code is doing and you should be set since different languages perform the same functions but write them different ways. So if you know WHAT you want to do you can do it with different languages. Like once I knew that node was making http requests and such and that’s what was required for authorization I could then take that and start rewriting the example code for /auth in regular javascript. Once you know what it does and what needs to be done you can transpose it.

I wouldn’t usually be so sparky, but this line of conversation is getting a little daft:

I would expect any junior dev to be able to figure out what to research and get to it. You already know this is node.js and the launcher is a rest API. Just Google, play about and learn.

Clearly we have different philosophies on this. And this seems to be a case of if you want something done you need to do it yourself.

1 Like

Hey @Blindsite2k, have you tried playing around with the example I gave in the other thread? You seem to already know some Javascript so it shouldn’t be too hard to dive in and play around with it a little.

The example only use the API I needed when I created my apps. So you could either just take them and make an app or complete it to include all the API calls that are missing or a bit of both.

Either way at some point you need to get your hands dirty, take the example, change the values of constants, put console logs everywhere and hack at it. It’s totally normal if you hit a wall at some point! No worries about that, just ask me or on the dev forum and I would be happy to help.

Now be adventurous and get your hands in there already!