@Shane, You are awesome! Thanks for everything you are doing!
Geez, you make the ground shake when you move! Are you always this productive or were you just overtaken by inspiration? Whatever the case, full steam ahead hammer head! Youāre already establishing yourself as one the Giants here.
Fantastic work @Shane
Content publishing applications like this are going to be crucial for adoption at launch. The libraries you are also building out are also going to support the development of other projects on the network as well. Really exciting to have this evolving so quickly, thanks for the great work!
Looking forward to the friendly and collaborative coopetition between you and @happybeing with safepress
Thanks all for the support. Another quick update with another code example for the new library:
Iāve now managed to get the DNS services working with public names, the example below is code using the new library to create a new public name āshanetestingā and a service within that āwwwā which when combined would be accessible through safe://www.shanetesting
in the safe browser.
Obviously, you would never actually write the code above (since it deals with multiple concerns in the same function) - it was just a simple way to show how it could be used in as little code as possible
This is a great milestone and means Iāve got about 33% of the functionality I need to build complete. Thanks to all of you for the kind words and support so far.
You should be working for MAID! Unless you are already are?
I donāt think weāll be competing. SAFEpress was my attempt to get a bunch of people together to develop a first CMS for SAFEnetwork (because I knew it was beyond me at the time, and probably still). So Iāll keep on ploughing my furrow and will definitely help Shane and others wanting to build apps when I can.
I have plenty on my plate right now of course - though it is very interesting to find that (Solid) work has lead me to port a simple blog (solid-plume) and also to be working on a similar API to Shane at the same time. Itās amazing timing, and I think a great boost to the whole project here.
@Shane, just came across ToastUI a WYSIWYG markdown editor with some neat extensions. Thought it might be of interest for Safe-CMS (and of course many other App dev projects here):
Powerful Extensions
CommonMark and GFM are great, but we often face requirements beyond the specifications. The TOAST UI Editor comes with powerful Extensions in compliance with the Markdown syntax, while also providing APIs so you can develop your own extensions.
Here are some of the extensions you can start with:
Color picker: ColorPicker provides an easy way to color text with a GUI tool box
Chart code block: A Code block marked as a 'chart' will render charts
UML code block: A Code block marked as an 'uml' will render UML diagrams
Table merge: You can merge columns and rows in tables
Github: GitHub - nhn/tui.editor: šš Markdown WYSIWYG Editor. GFM Standard + Chart & UML Extensible.
You know, Iām really split on this. On the one hand, it would be great to have native support for markdown. On the other hand, Iām wary that some users will find this layout confusing (despite the preview section on the right.) and my goal is to build a really user friendly tool.
I might implement both the current WYSIWYG and this one and give users a choice in the admin (with Markdown being a secondary option instead of the default) , it wouldnāt be much work to do this. Iāll queue it up for release 2.0.0.
Thanks for mentioning this!
Hey all,
Iām Andy, a software engineer working with Shane as a consultant. Iām going to be working with @Shane on this (and other Safenet) projects going forward and just thought I would introduce myself here.
Thanks for reading
Andy
@frabrunelle the post above by @AndyAlban was flagged - itās a legitimate post, heās going to be working with me on this project.
edit: nevermind, thank you to (I assume) @draw for resolving this.
Seems good.
But why is there any cost for EDIT/DELETE?
SAFE is capable of mutable data
Hi there! Youāre quite right with regards to DELETE/EDIT requests - this post was originally made when I had a much lesser understanding of the SAFE network protocol - Iāll update it some time over the coming days.
my understanding of mutable data in Safe tells me that :
- the owner or anyone granted enough rights can edit / delete an entry in a mutable
- as both edit or delete are a mutation, either do cost some puts.
So yes Safe is mutable capable, but it has a cost for the publisher / editor
Keep that iron glowing, a precious sword for words is about to see the light !
Please note that there is definitely a āPUTā cost to modify/append/add/delete MD data as @nice said
Very promising project. Great job Shane!
Hey guys, itās been a while since my last update - Iāve been working on a tonne of stuff to get this up and running. This week is just a bit of a teaser and an explanation about what Iāve been working on:
Above is the application (compiled as an app) in the state where itās waiting for the user to authenticate through the Safe-Authenticater (the dots are animated, which is why it looks a little strange in a static image like this). It remains in this state until authentication is complete (or denied) and then renders the list of blog posts (or some information about why it failed and what the user should do)
As of right now, the following is all possible:
- Creation of domains (public names) and services within those domains (multi-domain, multi-service)
- The creation and uploading of a single post (no template, flat HTML) to a service
- The automatic updating of a blog home page which lists all the posts.
Still left to do are as follows:
- Creating the template to javascript compiler
- Creating a few simple default templates
- Letting posts be locally re-editable after theyāve already been uploaded
- Allowing the user to defer the publishing of the blog home page so that they can batch release posts should they wish
- Automatic (and optional) generation of
sitemap.xml
androbots.txt
The past week or so has mostly been myself butting heads against Electron, the SafeAPI and Node, trying to get everything to work together seamlessly. Iāve had issues with compiling the Safe Browser (mostly my own fault, I made an assumption that V6 - the second Alpha release - was stable, but it was neither stable, nor current, wasting a lot of time) and getting those dependencies to interact properly with my application.
The good news though, is that Iāve tested the current version of the CMS on Windows, OSX and Linux (only Ubuntu has been tested, but most common distros should be supported) and itās working correctly on all of them.
As of right now, Iām still on track to deliver this project for the end of February, and while the last week or so has been intensely soul destroying (probably 50 hours plus spent debugging issues only to find out that most of the issues were minor configuration or version conflicts) Iām happy to be over the slump and the end is in sight.
Iāll be uploading a little hello world
blog post to the SafeNet in the next two weeks generated entirely by the CMS, so watch out for that. The next development update will likely be on Saturday or Sunday and Iāll post a little screencapture video of the app in action.
Lastly, I just wanted to publicly say a massive and humble thank you to @hunterlester with whom Iāve exchanged almost 50 private messages during the course of this project, I really wouldnāt be anywhere near as far along without him and his help so far has been invaluable. @dirvine copying in here so you see the comment about Hunterās work.
Thanks for the progress report @Shane. Really looking forward to seeing the prototype in action. 50 hours bug fixing doesnāt sound like much fun! Do you think some clear instructions about which versions to use would help, or is it mostly an Electron /Node issue? - I remember seeing similar complaints elsewhere.
Thank you very much for these news, you are doing an amazing work with this project, and hitting exactly where , in my opininion, the Safe project needs !!
Canāt wait to try it live Iād be glad to create a real blog about my own stuff using it.
just wanted to say i love your work super-awesome to see this starting to fly =)
I think itās mostly an architectural transition issue, most people coming here will have experience of building CLI only applications or websites, having to cater to the entire desktop application life-cycle comes with some complexities (inter-process communications, managing compiled dependencies, etc).
Developing on the SafeNet using NodeJS has a lot of variable dependencies (C++ compiler, Rust compiler, specific versions of NPM, maintaining version parity between the different SafeNet components) but again, most of this comea down to unfamiliarity with the toolchain.
It would be really easy to complain right now and say āthe documentation needs to be better!ā or āthe FFI module should validate youāre building against the correct version!ā, etc, but ultimately the truth is that building desktop applications which talk to alpha-stage third party services is hard, and it doesnāt really come down to Maidsafe to hold our hands through this process.
With all that being said, I do believe there needs to be some consolidation or simplification as SafeNet moves towards a true public release and the toolchain should be changed somewhat - and obviously, these are things I would like, not necessarily things Maidsafe should or has time to do:
- The Rust core libraries should be re-implemented in Javascript for use with the Node toolchain, so that the only dependency for the NodeJS app library is a running version of the safe browser.
- A CLI based authentication mechanism should be created so that CLI-only applications can be built (this may already exist, but I havenāt found it)
- The RFCs are useful reading but donāt really reflect the current state of the application, Maidsafe should maintain a public documentation which covers the algorithms used in the current release version in a single place
Hopefully I didnāt ramble too much, itās hard to make the context switch from hours of coding to coherently explaining topics like this in a way everyone can understand and participate with.