App Development Environments

I am not sure what you mean really. What you have is that. If you build the examples as per the docs (with the appropriate compiler) you will have a peer to peer NAT traversal c++ codebase. To add a gui etc. then you can add QT, to make it super simple, the common library has a CLI setup where you can create a menu driven command line interface with no extra bits required. We hunted high and low for a decent p2p setup and got nowhere. We were the main contribs on some python versions of kademlia and our old DHT code seems to be the goto for DHT in c++. ITs nowhere near this codebase though which has a ton of tests and programs you can alter to create attacks, flooding, routing table analysis etc.

What exactly are you trying to achieve and I will see if I can help, I am unbelievably pushed for time though (sorry). I will try and help though

1 Like

I am building a peer to peer chat to build an exchange ontop of in c++;
So far I have worked out a peer to peer setup and exchange logic, though in C# and for windows.

Starting two days ago and each day since I have been reading about peer to peer networking, networking libraries, and studying c++ syntax and code. I am seeking out a simulation where I can test the logic which I intend to deploy on the SAFE Network.

I am building a peer to peer chat to build an exchange ontop of in c++;

Do you have a time limit at all, the examples will go through that. If you are stuck then perhaps using an asio server and client will be quickest. I think we have a simple tcp transport in common we use for interpocess communications. You could use that as a p2p base and work that way. You will then be in control of your environment and switch over when the PMID accounts are in SAFE, should be easy enough. I would advise ignore security just now, crypto code is hell and super simple to get wrong.

Check out all your branches to next and look in here to start (ignore your gui for the moment and get it working command line first)

for cli

and menu

1 Like

I have allocated full-time near 24 hours, besides sleep, and jogs through a city to making this;
I intend to focus maximally on the coding and the algorithms, make a totally practical application.
in several hours from now I’ll have a useful understanding of each of the essential basic syntactical elements of c++;

Check out all your branches to next

what does this mean?

I read about connection.h and listener.h, can I use this to form a connection, and begin launching strings at an open port on another peer?

I guess to answer my own question, is this where I will find where I can place input?

    struct ReceivingMessage {
    std::array<unsigned char, 4> size_buffer;
    std::vector<unsigned char> data_buffer;
  };

  struct SendingMessage {
    std::array<unsigned char, 4> size_buffer;
    std::string data;
  };

edit: I am reading these files more, and it is not foreign… though I still need to get namespace maidsafe working do I not?

1 Like

Yes thats right.

To checkout to next then from your build dir type

git checkout next

Then from the project root

git submodule foreach “git checkout next”

You are very brave to learn c++ in a few days, it is a pretty complex language, so bite off very small chunks. The build system is unbelievably important, you need to read up on cmake a bit as well I think. Other option is get a sln file from our project and use MSVC in its natural manner. Thats just follow the windows setup page on the wiki from earlier in the thread. IF you deviate it will cause hassle for you. So just follow those instructions line by line (don’t miss any out).

2 Likes

Learning anything new is often a struggle. I taught myself programming, as I know a lot of people have. It’s awesome and often frustrating.

I realize maidsafe folks are busy in code but someday I would like us devs to create an apprenticeship like system.

Imagine something like
http://www.airpair.com

And then something along the lines of learners building apps and paying back their teachers through some of their earnings. We could literally re-redefine education again.

2 Likes

That has my 100% backing for sure. I would see it as the boost list treats people, pure logic and fast, so mistakes are hit immediately. IT makes folk really work to ask a question, which seems harsh, but does work as long as its never personal.

2 Likes

I am back from Dreaming land, 2 days of code study = half a day of rest;
Returning to the task list to do it again.

Main difference between c# and c++ appears to me to be consideration of memory;

Main Task for the evening:
Get MaidSafe development environment open in Qt before the break of dawn.

Currently: Up and running a virtual machine with Windows 7 x64

From this comment David Irvine mentions Alex Stepanov’s book Elements of Programming as a great reference for him.

So think safecoin as a valuable proof of resource measurement and network token to amortise effort at planetary scale, the fiat worth etc. is another issue that none of us know the outcome.

Of course it looks promising for sure, but I am very focussed now on the logic and core algorithms, so as few if statements, raw loops etc as possible, this drives thinking to very low levels and provides very simple yet powerful algorithms.

See Alex Stepanov and elements of programming. This is very far removed from the ‘app for that mentality’ that does however follow quickly as builders take full advantage and hopefully profit from developing and not marketing etc.

1 Like

So I have a clean development environment up and running, I’ve downloaded now each prerequisite and even acquired a license key for the call back file system and now I am configuring everything to build MaidSafe successfully in windows 7.

Question: Which one do I use: dynamic or static or both? To use the evaluation key, one must place it into the actual file, I am up to this at this point;

1 Like

Such failures are safe to ignore. Any fatal failures should output obvious messages, and configuring will fail. If configuring succeeds, the final output from CMake should be:

these errors required:

This is the license key from EldoS for — ^^

And finally: i think i got it @dirvine

Here we go!

2 Likes

Will this workout as a development environment? Will I be able to write code and use the MaidSafe in this set up, within Visual Studio 2013, it is still building as i had run the debug to make sure everything checks out.

@dirvine it has been almost an hour and it is still going through the debug, is this how it is meant to go?

Specs:
2.7 GHz 1 CPU core
2900 gigabyte RAM
Windows 7 32Bit

After the first run through it now builds within many seconds.

Build Succeed! Although without a CLI… not sure even if I put ALL_BUILD into that folder it still returns this error.

Does this now mean I make calls to MaidSafe methods from an added project?

Also this shows up in the debug folder in a file called ALL_BUILD.txt

 Build started 8/23/2014 11:12:03 AM.
Project "C:\Users\dallyllamma\build_maidsafe\ALL_BUILD.vcxproj" on node 2 (Build target(s)).
CustomBuild:
  Build all projects
Done Building Project "C:\Users\dallyllamma\build_maidsafe\ALL_BUILD.vcxproj" (Build target(s)).

Build succeeded.

Time Elapsed 00:00:08.47

I added infinitychat project to the MaidSafe project and I set the dependencies on infinitychat to require maidsafe_common, and I built it and it succeeds…

This is all so awesome :slight_smile:

1 Like

You haven’t been missing out on anything :slight_smile:

1 Like

I’ve revamped my development environment, and now running command-line VPS with Ubuntu 14.04; and Im dual booting Ubuntu and Windows.

@dirvine regarding linux distributions: is there an advantage to using Fedora, or ArchLinux, etc to Ubuntu? Advantage in usage or compiling/is there a relevant grounds for a recommendation on this question?

Ubuntu leaks data to amazon; some research showed that Fedora has not had data leak problems since Fedora 14 and we are up to Fedora 19/20 today;

1 Like

I like deb so ubuntu/debian fedora and the rpm distro’s are good to though and then the slackware/arch etc. They are all good. In terms of ubuntu data leaking then its an add system in ubuntu you can disable (I don’t use gnome or kde etc, I use awesome so have no issues with that kinda thing).

Most of the devs are using ubuntu so easier for them to. It should make little difference and when the rpm installer is updated should be fine.

2 Likes

Now that all this is not completely foreign looking to me any longer; Are there any examples using the Menu and CLI tool, besides those in examples?

http://maidsafe.net/maidsafe-examples/en/001_network_setup/local_network_setup.html

I guess I will get trying out building with it;
Also, I wanted to confirm this: does MaidSafe also work from Text only Linux environment?

Also an example of how to use this, otherwise, I will figure it out, I’m sure.

Thanks so much!

1 Like

Yes it will work in text only all environments. The tests are generally a good way of figuring out some of the components we have there as they setup and test them all. The examples will provide the GUI parts to. I need to update a FreedomCrypt example of N+P sharing and private key protection.

2 Likes

Regarding the App creation, I will use this Listener and Connector to form a peer network in my local development environment which will handle the transmission of messages containing commands that will be activated using a command line menu which I will create using cin >> COMMAND the input will send a signal across connection and listener will receive the command and “do something”

This is acceptable, as documentation and MaidSafe environment encompasses more higher layer development; I will integrate the MaidSafe components which lead to a usable ‘MaidSafe Protocol’ application; ? sounds right to me; let me know if this logic is accurate.

Could you share a link; I’ve built RSA algorithm from scratch for practice + knowledge (lots of paper pencil and many uninterrupted study hours)

1 Like