Dev Update - Week Beginning 18th August 2014


#1

Hi,

Welcome to another Dev Update, where we look back at what happened last week and forward to what is planned for this week. Intensive interviewing took place this week and we are happy to announce that our team has grown again; we have hired another two high quality C++ guys. They shall be working remotely and starting imminently, a more official “Welcome aboard” will no doubt be posted when all the i’s are dotted and t’s crossed.

With the team growing, especially remotely, it presents us all with new challenges. This has led us to review our Dev workflow and for QA to investigate and propose a new more rigorous code review process, steering us toward tools like Jira, Hipchat, Jenkins, Gerrit, Crucible, FishEye, CodeShip and Drone.io. In the last week we have frantically been trialling, configuring and testing these tools; there is very little red tape here in MaidSafe - once an area of improvement has been identified, it is all hands to the pumps to complete the enhancement. These tools will allow us to make our QA processes way more rigid and should ultimately result in more robust code. They also will also help increase awareness and the organisation of priority tasks across a much larger team, both here in Troon and elsewhere.

Simplifying the Dev environment, with the aim of making it a one-click affair to get started and apps coded, has also been a major focus of many members of the team this week. A lot of effort has gone into creating Installers across all platforms and they should be released into the wild very soon. This is great news for anyone wanting to start developing applications, as it will give a click-and-go build environment for SAFE applications.

The Testnet 1 debugging focus has continued in earnest, with efforts concentrated on stabilising the testnet. The SQLite and bad_alloc issues in particular have been identified and targeted. Routing networks have also been created across various geo-locations specifically to squash testnet 1 bugs. Anyone that follows the commits on Github will notice that excellent progress has been made in this area also. So expect to see Testnet 1 activity increasing greatly in the near future.

RUDP is now 100% reliable under packet loss, up from 99.8% two weeks ago. It took an enormous number of test iterations to reach this point as when a codebase only fails 0.2% of the time, it takes 500 iterations to get each failure and if you didn’t quite get the logging right, you wasted those iterations. Now that RUDP is 100% reliable under packet loss, SYN cookie support for RUDP has been significantly refactored and improved and re-enabled - the former implementation had been disabled as it didn’t work too well, but the new implementation correctly filters out SYN floods and session hijacks at a very low level, and hopefully RUDP can now survive a DDoS attack and other aggressive network overload techniques. We are currently iterating RUDP under packet loss to figure out the best balance of sensitivity to DDoS attacks, and once that is complete the changes to this experimental RUDP branch shall be inspected by all engineering staff before it is allowed to enter the main code base.

As always - thank you for taking time to keep up-to-date with our progress,

The entire MaidSafe team.


#2

Glad to hear things are chugging along nicely!


#3

Not sure where to ask the question, so I’ll do it here. What is the Mumble server name and connection info?


#4

All default and server is office.maidsafe.net


#5

Good stuff…


#6

I just learned of Vagrant (see why Vagrant?) from one of my colleagues. If you did not know about it yet, maybe that would be a good candidate solution.


#7

Yes check it out for docker containers, could be a big feature.


#8

Hi erick,

Not sure I should be advising a PhD guy, but Docker on Linux is definitely cutting edge right now, with projects such as CoreOS , Project Atomic and Panamax

If you want to have a play with Docker without altering your computing environment, Digital Ocean have a $5 @ month plan, where you can fire up Linux/Docker with one click. If you do a search on twitter you can find $10 vouchers for Digital Ocean which is effectively 2 months free access.

David made available the current release of the Maidsafe test network in a Docker image and it’s dead easy to install and hopefully they will continue to offer the test environments in Docker friendly format.

I plan to run the vault software in a docker container when it goes Beta :slight_smile:

Good luck with the OSX testing, great that your offering your down time to help out.


#9

You totally should and please let’s not get pseudo-titles in the way of collaboration! I am not up-to-date on the cutting edge tools for development/deployment on OSX or linux, I was just relaying information that might have been useful. Docker does seem to serve the same purpose, I have no idea how they compare to one another. I’ll certainly try it.

I am getting back to testing when I am through with the current paperwork and other boring but necessary stuff… Should be pretty soon.


#10

Yes I see this as being important to us. The possibilities are pretty huge. I was chatting with Brian yesterday and telling him my plan here. To make doker images of all maidsafe ‘stuff’ secure it all and then fill it up with loads of apps and a desktop. Then transition to a SAFE OS which will likely be hardened debian. So people can get a feel on their own OS and then as SAFE improves and gets to the stage where folk boot their OS and then go into SAFE we just add a grub like bootloader and tell folks, time to go full SAFE now and remove the old compromised OS’s you have.

This will be a huge amount of work though, but a good goal.


#11

Hi @erick I will look at Vagrant but want to say that Docker is very cool and @chrisfostertv is right that it is the beez kneez, he did say that I’m sure. I installed it on my new debian (Mint LMDE) machine after watching a YouTube “twitter Uni” talk by the Docker founder and it rocks! They have done a lot even since that video and I pulled images off their server and ran them just like that. They follow the git model quite closely so it is very efficient and intuitive if you have used git - which I haven’t that much! - also being very out of touch with dev tools. Anyway, I pulled the Docker image that @dirvine posted at docker.io and built the makefile just like that. The only reason I haven’t used it to build MaidSafe is that its not been very sunny here this last two days ;-).

EDIT: first obvious difference is that Vagrant is using VMs whereas Docker containers are more lightweight, constructed in layers, and shipped around in diff form making any changes very lightweight to push or pull. I won’t actually try Vagrant for now because I think Docker does the job, but Vagrant might be useful if there are situations where people need to use a more complete machine setup, or to handle kernel incompatibilities - I haven’t seen it officially, but @vtnerd pointed out that Docker containers need to be able to run on the host machine kernel, which may be a problem of course.