Introducing... JAMS! [Demo] Alpha 2

Decided to test the site out some today and downloaded the SAFE Browser from maidsafe’s hompage again.

safe://jams.demo3/

A few things I was able to do:

  1. Upload my own song, share with a friend via the uuid hash share thingy it produces :stuck_out_tongue:
  2. Receive a song from friend with their uuid hash thingy

A few things that seemed buggy

  1. The upload does not really let me know whats going on during the whole upload process. It seems like a click and wait so I had trouble knowing if things were going smoothly or not.
  2. The song I uploaded or pulled down from friend plays the first few seconds(2 seconds only to be exact) and stops, then if I click play button again besides song name and start from beginning seems to start going further.
8 Likes

I actually have a new version I need to publish! I’ll do that relatively soon.

Includes:

•Upload indicator now with improved spinner and an immediate response to indicate upload is happening

•Downloading files over 2MB should work again (with the Safe Browser). The previous download mechanism was restricted to 2MB. It was replaced with the FileSaver.js library to support larger file downloads from browser memory.

The 2 second play bug should hopefully disappear with the refactor that is just getting underway. Things have been a little bit slower for JAMS as of late but this major refactor and update to the most current web API that was announced in the dev update will be a big improvement. Then the really big deliverable should be underway after all that. :slight_smile:

Thank you for the feedback @jeremyjpj0916 I’m hoping to get even more as the service matures.

12 Likes

Hey folks! Here’s the update I mention in the previous post. Francis will update the link in the OP for me when he gets my message. Let me know what you think @jeremyjpj0916 and others. Enjoy!

safe://jams.demo4/

Don’t forget to try to find the Easter Egg link in the player!

8 Likes

Hi Nigel - out of curiosity what is your background? Curious to know how much experience you had under your belt before you started building Jams? Thanks!

2 Likes

I’ll be completely honest here @majumba . From my perspective I have very little experience. I may be being overly modest but the biggest point is that I don’t code, at all.

• I do understand SAFE at a high level (that means basic) and the functions of the data types and what is possible with them.
• I am an artist who likes to draw. The logo and concept is my original artwork turned digital (vector art) which I hired out. The Easter egg hidden in the app, including the characters, abilities, storyline, cutscene art, are my doing but none of it would have happened without Jim Kulakowski!
• I do know what I want in an app and what I want to see from a UI/UX perspective.
• I only associate with driven, talented individuals.

I do work with the people who code JAMS in the sense of how I think it will best be functional and absorb all the info they have and make my best attempts to help/contribute as we work our way through development but the real talent are the people I’m lucky enough to work with.

I say all this, as it is true but also to hopefully inspire others in the community who don’t know ANY code but have a vision. You can go to upwork.com and hire a dev, share with them the resources they’ll need to get started such as https://hub.safedev.org/ Or find someone here in this community to collaborate with, and build the apps you want to see. Within reason of course. But I’m really just a dude on the internet who wanted to have a music app on SAFE so instead of waiting for it, I decided why not give this thing a shot? I am happy I did.

37 Likes

Oh super interesting and inspiring. Thanks for the detailed response. You are doing a great job!

I actually meant to post this on the Jams thread. Perhaps, one of the mods can move it there so people can easily find it. Thanks

7 Likes

From what you have learned so far, can you advise what are the core language requirements a developer you hire on upwork would need to successfully develop on the network? What were the difficulties in getting developers you found to engage and work with Safe? Was it a steep learning curve for them, or were they able to start coding your app straightaway. Thank you!

5 Likes

I decided to persue this almost immediately after the Mutable Data data type was finished being implemented by the team so it was very early, with not as much or as good documentation for a dev and a high probability that the API’s would change. There was just a breaking change in the API’s announced last week but that is generally very rare so not something to worry too much about. It was a decent learning curve at the time but it should be far less now for these reasons.

• There is way more documentation
• More example code
• More language bindings (programming language options)
• API’s are more simple and stable
• Better understanding amongst devs and community of what is capable so better support.
• Tools such as the Web Playground that allows a dev to easily test out API’s in real time.
• Much easier mock network setups found here.

The team has had safe_app_nodejs available for quite some time and it was and still is a great option because JavaScript is a very popular language amongst web developers and I wanted JAMS to start off as a web app, as opposed to a desktop app, which technically you can still do in JS packaging it with Electron. Not to go too far down that hole but the browser is made with a program called Electron that makes it easy to have Cross Platform builds of an app and so you can actually package your web app as a desktop app with it, which is pretty cool.
Now there are more options such as https://crates.io/crates/safe_bindgen/ which has bindings for Java and C# so those are mobile languages that JAMS will hopefully be taking advantage of in the not too too distant future.

This may seem like a lot but when posting your app description on upwork, pick a language (JavaScript is common like I said) for them to know, it’d be good if they knew some front end stuff like CSS too, upwork makes it easy and will have other relevant options, then mention in your app description what the app is, what you want it to do, and that it’d be built on a distributed network called the SAFENetwork and that learning the API’s will be necessary and provide the https://hub.safedev.org/ site so they can look at it before they apply for the gig and message you. Then you just screen people, ask them some questions and see if you’d work well with them. I’ll think of some relevant questions that I could share (none are coming to me right now).
If you have any other questions along the way I’d be happy to help, feel free to DM me on here if it’s not something you feel like sharing in this thread or if it’s too lengthy. Hope this helps @majumba! :smiley:

8 Likes

Thanks Nigel. This is certainly encouraging. Definitely one of the hesitations is whether updates in the network at each alpha stage will render code produced obsoloete… I’m wonder whether devs have contemplated this before committing too much time and resources to producing app. Either way, it presents a alot of risk but a lot of opportunity for those who are willing. Thanks again ain for your openness to share and offer to help.

2 Likes

I understand this point for sure but one thing to consider in development is that code often at some point gets refactored (optimized) and since that usually has to happen anyways it’s a good idea to try and update to latest releases etc. but again, it is very rare to have breaking changes in the API and the Maidsafe team work hard to prevent them.

Yeah you kind of have to weigh the cost/benefit. You can spend a modest amount of money on app development but if you hold any MAID, by growing the app ecosystem you can boost confidence in the project and potentially increase MAID’s value over time, especially if many of us do this many times over.

There is also Pay the Developer rewards (PtD) that an app producer gets paid by the network for an apps use on the network after launch, which is a great alternative to subscription or advert based monetization models. Though you could still do those as well if you chose to.

Another option for funding is the Community Engagement Program (CEP) which you can search on this forum which you could create a proposal and get funded partially by the community and Maidsafe to build the app, given that it receives enough votes from the community. I just chose to fund mine privately because then everything is on my terms and as flexible as I prefer.

Absolutely welcome. I’m actually really happy to have been able to have this discussion, so thank you too.

5 Likes

The benefits of starting early far outweigh the costs. The is a lot of value in learning how to think and design for the decentralised SAFE network which will slow down anyone starting later. Changes to the API are not to the fundamentals, so only affect the small amount of code which actually deals with the API, so most of the time invested is retained.

The biggest gain in starting later is not so much through stability of the API, but in the amount of information and support which grows rapidly towards release/launch. But those who learn the hard way inevitably gain a deeper understanding IMO, so again I think starting early is a good investment. It isn’t for the faint hearted, you need more commitment and time, but I don’t see it as high risk at all. On the contrary, there is also a risk in waiting that somebody will create the application which you were planning before you’ve had the chance.

5 Likes

Thanks for your diligence man! I still notice a blip the first time I always play of it dying off after 2-3 seconds but after it plays fine. There seems to be a generous latency too usually of 12 seconds or so the first time to play a song but my first guess is that its jut the time to connect to maidsafe servers(even to login to the browser takes about 6 seconds) and properly pull the data is a slower process for now until the real network is around. Keep up the great work, the logo is by far my favorite part of the site hah, I dig it.

If anyone wants to pull down one of my test songs feel free to try it :slight_smile:

N4Ig+gZglgpgNgEwM4gFwG0QDcYCclQD2AdgBICGSAFiADQgAehuY5CCuMSK9AtlLxgAXAJ4AHGHRDQ4MMMXKCp5XEKhIhUtUNnK4AIwCuvPUd4BhQjlxbc5AMYBrAHLHbDxwBVCQ8nCkiMCpSAOYwxJwAFEgAlFrkIdFx9PaEvILEmgC69GCcAI6GUJwIkLCIKBjYeAQkFNRSTCxsHFw8IPyCohJSMnIKSjnV+ERklDSoALQAbNMArADMAOwAjACcACxr9E2s7JzcaCDoAEwLc7QbF2cADLQrABxL9w8r97Mv07QnN9vrX2sHt8Vs8TtcbkCTisNvc5s8HpCbhc1hdHidLjCfl84bRpvC3icTqCofcbuiVtM/ktEUDoeSFg8slJOsJxJJUCByIYEEQAPS8MQLXpQWTyRTskAAaRgIiQAAJnHLJXYhFw5ZM5QBNQiGADknDlSEIcpChEICAAdAKhfQVGoNEdpbKFUqVWqNdq9QajSazZbrVooDoJU75YrleRVfKPTr9TBDcbTeaQABfIA===

4 Likes

That bug remains for now till the refactor is done. It’s a real stinker, I know.

That’s because the whole file must be downloaded first and then other songs are downloaded in the background in a queue. This should be much faster once streaming is implemented :smiley:

Was the loading wheel when uploading a better indicator of background processes?

Thank you for taking another look!

4 Likes

Oh right, yes I did test that and confirmed it to no longer be an issue!

2 Likes

Wow… man … this is awsome !!!

6 Likes

I moved your shared song to my playlist …but the 2 secs did not play there…Still the name came on the second I inserted the link and clicked on it ! :slight_smile:

5 Likes

I think it needed time… it played all the song now

2 Likes

Thanks for the feedback @hamarana :slight_smile:

3 Likes

Please read this post concerning the reset of the Alpha 2 network

https://forum.autonomi.community/t/alpha-2-reset-community-websites-apps-safe-messaging-ids/25160/2?u=neo

3 Likes

Hey @Nigel, have you seen this over on Solid - sounds like a kindred spirit looking for a home:

Also, I just found this open source music app for Android:

https://github.com/psaravan/JamsMusicPlayer

3 Likes