SAFE Network TEST 9 + SAFE Mail Tutorial

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!


Email ID: betterthantrav


It’s not Maidsafe’s job to educate people on how to become a dev. People can do their own research and find all java, node and other tutorials in several clicks. Let the Maidsafe devs focus on building stuff and making great tutorials for other devs without taking people by the hand to learn them how to print “hello world” in a browser somewhere.


Totally true, but this would be pretty cool… And quick / easy for MaidSafe? But again, I agree, definitely not their responsibility / priority


It costs minimal effort to add a link which results in more people educating themselves. It isn’t my “responsibility” to promote project SAFE but I do it anyway because I care about the project. The question is not is it Maidsafe’s “responsibility” to educate new devs but rather do they care about doing so? A link on youtube or to a github book repository would be something. Taking half a minute to colour code or annote the source code would be something. Hell creating a section of the forum devoted to education resources would be something. It’s not about responsibility it’s about forethought and consideration that some of your readers AREN’T at that level and are trying to be.

You know you’re absolutely right. It’s not their “responsibility” to do any of this. They aren’t “responsible” for caring one whit about helping new app developers. But that’s the crux of it isn’t it. If you only do what you’re responsible for then things tend to fall flat. What I’m saying is we need to see what educating people will do for the project at large instead of whining about responsibility. “It’s not my responsibility! It’s not my responsibility!” Frankly I don’t care. The educating needs to be done and so do the revisements to any tutorials because we do have a lot of new devs struggling to understand them. I don’t care who does it just so long as it gets done. I don’t care if it’s some shmuck living in his mom’s basement in the middle of timbucktu. The job needs to be done. Not everyone who wants to build an app will be working with node.js. Does that make every app developer a amateur? No. I’ve got a friend who’s a professional programmer but who specializes in C++ and Pearl but doesn’t know much in the way of javascript let alone node.js. The API tutorials would probably give him as much of an issue, perhaps even more, as they are giving me. I’ll try asking him and see what he thinks. But my point is if the tutorials are to be language agnostic then there NEEDS to be emphasis on clearly explaining the concepts behind them and separating the language from the API. Javascript can be used to use the API. I’ve seen it done. I know node.js isn’t REQUIRED to use the API but if I have to learn node.js to understand the concepts behind the API then that makes node.js a requirement to use the API and therefore LESS language agnostic. The API may be language agnostic but the INSTRUCTIONS are not. It is in Maidsafe’s best interests to take new developers SERIOUSLY because if nothing else they are like the canaries in the coal mine of finding out whether the concepts in the tutorial are being explained clearly so that anyone, regardless of what language they are trying to code for, can understand the concepts being conveyed.

Let me be blunt. If you can’t translate code into plain English then it isn’t language agnostic no matter what code you’re using as an example. The flip side is IF you translate it into plain English you are ALSO helping those attempting to learn to code. If the goal is to be language agnostic then writing for new devs really should be taken more seariously because in doing so the API and concepts behind it will be communicated clearer thus increasing language neutrality.

These devs are already working very very hard while we check their results every single day. It’s a privilege we have binaries and GUI’s which are very easy to use. No matter if it’s Vaults or the Launcher, it’s easy to understand and I showed it to several people who got it by seeing it. On that front we are way ahead of most other projects in crypto which ask you to build from scratch using a terminal and a zillion commands. And you didn’t only asked for some links, you asked for examples in more languages.

What if several devs are already working like 80 hours a week? Want them to even do more?

Have you seen this tutorial? Any idea how much work it is to write something like this and to write the code as well?

Wrong person to reply to with statements like that. I have put quite some time and energy in this community over the years and I really like it. And guess what, I’m not a coder and I really didn’t had a clue what a XOR-network was. I can’t work with node or java any better than you can.

Why be blunt? Why not turn you anger (is it??) into something good. Create a topic with all links and instructions for fresh starting devs instead of bashing a very nice and helpful tutorial. If you do you probably make this community and forum a better place. Otherwise it’s bashing hard working people from the sidelines.


very very very cool the safemail-app!!!

i need a safemail-thunderbird-plugin Oo :smiley:


I think this is a good idea! This might help some people who want to dig in.

This is already done, check out the API documentation here. The API is describe using plain english exactly as you demand. As you can see though, the example are only written for node yet. But since you are this fired up for helping others and to learn to use the API with Javascript, you seem like the perfect candidate to translate the example in simple Javascript. I’m certain the team at MaidSafe would be delighted to include the fruit of your labor in the doc.

So convert that anger into positive energy and stop cursing at the darkness, light a freakin candle. (I learn this saying this week, had to use it, thank you for the opportunity).

Anyway, cheers.

1 Like

So on the one hand we have overworked devs and on the other we have app devs struggling to get up to the standard at which the devs are writing their tutorials at because they don’t have time to write more thoughough tutorials and in the mean time apps don’t get written. What part of I DON’T CARE WHO WRITES THEM is not getting through? Place a bounty on it, put up a community poster, get someone’s mom to do it. I don’t care. I’m just stressing the need for the job is there. And whining about the fact they’re working hard doesn’t fill the knowledge gap. It just doesn’t. Yes they’re working hard. I appreciate that. I really do. But the rest of us are chomping at the bit trying to learn from every scrap of knowledge that gets released.

  1. Congratulations Maidsafe is ahead of the competition. That STILL doesn’t solve the problem. 2. Yes i asked for code examples in multiple languages and/or colour coding and links. There are other projects that do exactly that. It’s not a new idea. 3. I see. A privilege. Thank you very much. But how does that fix the problem?

Yes because I was discussing it obviously. Yes, lesson planning takes work. I’ve done my own tutorials and my mom is a teacher so I’m quite familiar with the amount of work that goes into planning lessons. I also note it was written in node. After extensive discussions about how a lot of new devs are struggling to understand the current api example written in node. I am not the only one. But again there was the assumption that the reader would know how to code using node.

I’ve already done some of that and plan to do more of that. And I’m not bashing the tutorial. I made a couple comments on how to improve things. Annotating or colour coding syntax shouldn’t be a huge chunk of work, neither should writing a paragraph on prerequisites. Mostly my "bashing’ is of this attitude of “it’s not my/their responsibility”. Honestly if could read node I’d do the highlighting and lesson planning myself and save the devs the time but the problem is I simply can’t. And I’m majorly frustrated with people who avoid responsibility when there’s a job that needs to be done. Delegate, make a suggestion, add a link, do something but saying “It’s not my responsibility,” just says to me you don’t care about the problem at hand, in this case education and new devs trying to understand the API.

Congratulations, how does that solve the education gap problem? As you say you’re not any better at node or javascript than I am. (Also note there’s a difference between javascript and java. They are distinctly different languages.) You’re a fan of the community, so am I. What does that have to do with solving the problem?

You keep citing ego. I don’t care about ego. Devs working 80 hours a day doesn’t fill the education gap. I’m not saying devs should work 90 hours a week. I’m just saying a solution needs to be found and whining about responsibility doesn’t solve it. I’m not saying you or anyone else doesn’t care about the community. I’m saying your putting in x number of hours or years in community service hasn’t or doesn’t fix the problem. The problem remains. Congratulations you care about the community. So do I. That’s why I’m putting in the time to advocate for all this. If I didn’t care I’d just lurk in the background and wait for SAFE to be released or not. The fact that I am making so much noise about this and trying to propose sollutions and advocating for new developers means that I CARE! I care enough to take the time to write these posts to explain all this to y’all and try and find a solution. I don’t speak node yet. We need to find someone that speaks node and translate these tutorials. Whether it’s a community member or a dev or some third party it doesn’t matter. The job needs doing. That’s all.

You can’t expect the team to be spoonfeeding you with tutorials AT THIS STAGE, when they have limited resources to get the product ready. If you get what they release now, fine, you can collaborate.
If you don’t, well, wait until the project is mature enough to dedicate more time and resources to have a nifty documentation with tutorials for noobs.

Right now, if you are not part of the solution, you are part of the problem.


I’m tired of debating this. I’ve devoted enough time to this just to get shot down. Fine do whatever. Looks like I’ll have to just learn node, translate the docs and write the lessons myself.


No one’s trying to discourage you they just want you to self reflect a little bit. What you are asking for is a bit premature and/or unrealistic at the moment. Obviously you are eager to contribute but you aren’t quite as technically savvy as what the tutorials call for. That is unfortunate but why are you pointing blame in every direction but your own??


Because I have been studying coding and doing the same over and over results in the same results. This isn’t a new issue. Like I said I’ve proposed my solutions and ideas. It looks like all thats left is to focus on learning more javascript and node.

Bit harsh, dont you think?