Setting up a Rust Development Environment.

Printing a simple “Hello World” main;

fn main() {
println!(“Hello World!”);


The easiest way to run:


./hello (notice the compiled file doesn’t have any extensions)


Now some tinkering:

If you’re using vim and a little lazy like me to type the compile command and run it each and every time, just map an unused key let’s say “F9” to auto-compile and run your file.

To do so on vim, add the following line to your .vimrc

Screenshot from 2018-02-12 17-41-06


:w          -> write changes to the file.

:!clear  -> clear the output of the previous commands to run ie: when compilation failed or run successfully.

:!rustc  -> invoke the compiler to compile the file.

%          -> used to denote the current file name, can have any extensions (

&&       -> and.

./%<      -> run the compiled output file and notice the  “<“, it tells vim to remove the extension. will become test.


Setting up auto-completion:

Better yet, you can use YouCompleteMe (YCM) to facilitate your work, just build YCM with the –rust-completer

I use vim-plug (set it up, easy just follow Github instruction) to install plugins on vim, I added this line to my .vimrc

” YouCompleteMe
Plug ‘Valloric/YouCompleteMe’, { ‘do’: ‘./ –clang-completer –rust-completer’ }

” is a comment

–clang-completer is used for autocompletion of C programs

then run :PluginUpdate and your plugins will start updating and installing.

snippets below showing how the auto-completion is working

Screenshot from 2018-02-12 21-31-03


Now that you have a fully functional development environment, you can start coding,

[Plone] Removing unittest2

The unittest unit testing framework was originally inspired by JUnit and has a similar flavor as major unit testing frameworks in other languages. It supports test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework. [1]

Unittest2 is a backport of the new features added to the unittest testing framework in Python 2.7 and onwards. It is tested to run on Python 2.6, 2.7, 3.2, 3.3, 3.4 and pypy.

As stated on this IssueReport on github, Plone no longer needs it in packages targeted for python 2.7 or 3 only and we no longer have to declare it in several’s as test dependency if Python 2.6 is target. There are still a lot of packages that still have unittest2 in their codes and need to be patched as outlined on the aforementioned issue. I guess I should patch some 🙂

Here are the steps I followed:

Setting up Your Development Environment

First you need to setup a development Environment for testing. We can’t make any changes without properly testing each package we make assuring that it doesn’t break anything. The process of making a Development Environment is outlined in the heading above. It took like 2 hours to complete cause I have a shitty internet connection 1Mb  😥

Now you need to get the source of the package with mr.developer and the checkout command, or you can go directly to editing checkouts.cfg(The method I used).

Screenshot from 2017-03-15 08:11:48

Then rerun buildout to get the source packages:



Now do the required changes.

After editing it was time for testing, the development environment already have the necessary tools to do a local test and check if the changes isn’t breaking anything.

Two tests need to be done:

i) Testing the edited module

In your buildouts folder run:

./bin/test -m

Successful Phase 1 testing

As shown on the screenshot the test was successful without any errors occurring.

Next is the second testing phase

ii) Testing if the edited module didn’t break any other modules.

Screenshot from 2017-03-14 18:54:10

Second Phase testing: Got one error

As far as I understood what it meant, this error wasn’t related to the changes I made cause even using the default openid package the error still occurs so I can safely commit my changes.

Screenshot from 2017-03-15 09:39:31.png

The changes were committed and a pull request was made. Hopefully it will get accepted.

[Plone] Messing with add-ons

Addons are small pieces of software that add new features or functionality to your Plone server. Most add-ons for Plone can be found in the PyPI (the Python Package index). Installation is really easy and straightforward, as usual all infos are in the community maintained documentation for Plone linked here.

For example to add a calendar add-on (ftw.calendar) just search for it in the PyPI and add it’s name in the buildout under egg (indentation is important).

Screenshot from 2017-03-14 05:57:25

Highlighted in yellow is the add-on name I added to the buildout.cfg

For the changes to take effect you need to re-run buildout from your console:

run this code in your plone directory


Then restart your plone instance

bin/instance restart

Go to your admin control panel (admin -> site setup -> addons) then install (activate) the module then you’re good to go.

Screenshot from 2017-03-14 08:00:20

Next blog post will be on patching some issues in some Plone add-ons


Plone is a free and open source content management system built on top of the Zope application server. Plone is positioned as an “Enterprise CMS” and is most commonly used for intranets and as part of the web presence of large organisations.[1]  Plone makes it easy to build websites by allowing non-technical people to create/manage/maintain websites through a nice and easy to use GUI.

Installing Plone is pretty straight forward. The community maintained documentation for Plone outlines basically everything for a swift and error-free installation. The documentation is rather lengthy, but I recommend reading most of it to get an idea of what is Plone and how to use it properly. Installation URL

Screenshot from 2017-03-13 20:37:27

After playing around a bit with Plone on my machine running Fedora 25, I thought it would be a good idea to try and run it on my pi as I was already hosting a website on it and shifting to Plone seemed great. Checked the requirements on the Plone website and it was barely sufficient. I knew that the chances of it running properly were pretty low but I still tried. Installation took a heck of a lot of time but as expected I wasn’t able to run it.

PM me if anyone has some way of getting it to work.

More to come on Plone that’s just a teaser.


Mauritius Developers Conference 2016


The Developers Conference 2016 (DevConMUR) was a nice event, amazing minds were speaking on great topics. Two members of were presenting on the last day of the DevConMRU. As usual all members of were there to support them & also to check out the other presentations. There were lots of nice topics on the schedule. The only hitch was that there were more than 2 people/groups presenting at the same time so we weren’t able to attend all of them. We had to choose the topics which interested us the most even though all topics were interesting.

Continue reading

Hosting a website with a Dynamic IP


If you’re into Linux and like to experiment new things, there will be a time where you’ll want to host a website on your machine. Having a dynamic IP means that there will be additional steps that you’ll have to do in order for your website to remain accessible externally with little downtime as possible. Mauritian citizens and others also will have this problem as whenever their modems are restarted or during a power cut, their IPs will change. A free fix to this problem is described below.

Continue reading