netsukuku-vala
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Netsukuku-vala] Netsukuku-vala Digest, Vol 17, Issue 2


From: Miss Valeska
Subject: Re: [Netsukuku-vala] Netsukuku-vala Digest, Vol 17, Issue 2
Date: Thu, 17 Oct 2013 23:36:42 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/17/2013 09:00 AM, address@hidden wrote:
> Send Netsukuku-vala mailing list submissions to 
> address@hidden
> 
> To subscribe or unsubscribe via the World Wide Web, visit 
> https://lists.nongnu.org/mailman/listinfo/netsukuku-vala or, via
> email, send a message with subject or body 'help' to 
> address@hidden
> 
> You can reach the person managing the list at 
> address@hidden
> 
> When replying, please edit your Subject line so it is more
> specific than "Re: Contents of Netsukuku-vala digest..."
> 
> 
> Today's Topics:
> 
> 1. Re: cleaner and reusable code (Alexei) 2. Re: cleaner and
> reusable code (Luca Dionisi) 3. Re: cleaner and reusable code (Luca
> Dionisi)
> 
> 
> ----------------------------------------------------------------------
>
>  Message: 1 Date: Wed, 16 Oct 2013 23:01:38 +0400 From: Alexei
> <address@hidden> To: "Porting netsukuku to Vala language.
> Developers." <address@hidden> Subject: Re:
> [Netsukuku-vala] cleaner and reusable code Message-ID: 
> <address@hidden>
>
> 
Content-Type: text/plain; charset="utf-8"
> 
> Hi, Luca! Could you explain, please. If I understand right 
> tasklets-mechanism is the narrow (problem) part of C-version
> netsukuku. And did you return from vala to C/Python-version? And is
> it the future plan to replace Python's code for micro-threads with
> C or vala?
> 
> Alexei
> 
> 
> On Wed, Oct 16, 2013 at 5:07 PM, Luca Dionisi
> <address@hidden>wrote:
> 
>> I have extrapolated some code from netsukuku and I created some
>> base libraries that are quite generic.
>> 
>> 1. logger This is quite useless. There are plenty of tools to
>> facilitate the production of logs. Anyway the netsukuku code use
>> this one at the moment.
>> 
>> 2. tasklet This library depends on logger. A program using this
>> library will be able to spawn tasklets (micro-threads) and, in
>> any tasklet, interact with sockets in a non-blocking manner for
>> the other concurrent tasklets. These micro-threads are currently
>> backed by GNU Pth. They are very light and portable.
>> 
>> 3. rpc This library is a framework for producing code that
>> enables Remote Procedure Calls. It depends on logger and
>> tasklet.
>> 
>> The aim of this work is to make netsukuku code more readable, by
>> removing code that is ancillary.
>> 
>> I will soon release these libraries and then work to rebase
>> netsukuku on them so that I will be able to remove many of the
>> current source files.
>> 
>> Another plus is that we'll be able to produce, without much code 
>> duplication, a rpc-client that one can use to monitor the
>> internals of ntkd locally or even on remote nodes.
>> 
>> In particular the rpc framework (which the rpc library will be a
>> part of) is quite flexible and I will explain in more details
>> when I release it.
>> 
>> --Luca
>> 
>> 
> -------------- next part -------------- An HTML attachment was
> scrubbed... URL:
> <http://lists.nongnu.org/archive/html/netsukuku-vala/attachments/20131016/c86eca4b/attachment.html>
>
>  ------------------------------
> 
> Message: 2 Date: Thu, 17 Oct 2013 09:56:48 +0200 From: Luca Dionisi
> <address@hidden> To: "Porting netsukuku to Vala language.
> Developers." <address@hidden> Subject: Re:
> [Netsukuku-vala] cleaner and reusable code Message-ID: 
> <address@hidden>
>
> 
Content-Type: text/plain; charset="iso-8859-1"
> 
> On Oct 16, 2013 9:02 PM, "Alexei" <address@hidden> wrote:
> 
>> Hi, Luca! Could you explain, please. If I understand right 
>> tasklets-mechanism is the narrow (problem) part of C-version
>> netsukuku. And did you return from vala to C/Python-version? And
>> is it the future plan to replace Python's code for micro-threads
>> with C or vala?
>> 
>> 
> When I entered into netsukuku, the C version was already abandoned
> in favour of python. I don't know which mechanism it used for
> multitasking purposes. The devs stated that one of the advantages
> of Stackless Python was its light cooperative multi-threading
> system, called tasklets. They stated also that the porting from C
> to Python was complete and that their then-new QSPN algorithm had
> been implemented.
> 
> Then I started to test the program and with few other developers we
> fixed bugs and implemented new algorithms, always with (sort of)
> the supervision of Alpt. In the end we added and improved a lot of
> code.
> 
> For these reasons it's my humble opinion that going back to the C
> code is a big step backward, and I didn't ever suggest to anyone to
> do that.
> 
> A couple of years ago, the main reason being that Stackless Python
> was very difficult to put in embedded devices, I started to look
> for alternatives and decided to go with Vala as a language and the
> C library GNU Pth as a "nearly drop-in" replacement for tasklets.
> 
> The complete port of the python code to Vala is not finished yet.
> My personal plan is to continue in this path. The work that I
> presented in this mail is just a effort to better organize the
> code.
> 
> --Luca -------------- next part -------------- An HTML attachment
> was scrubbed... URL:
> <http://lists.nongnu.org/archive/html/netsukuku-vala/attachments/20131017/146d376a/attachment.html>
>
>  ------------------------------
> 
> Message: 3 Date: Thu, 17 Oct 2013 10:04:26 +0200 From: Luca Dionisi
> <address@hidden> To: "Porting netsukuku to Vala language.
> Developers." <address@hidden> Subject: Re:
> [Netsukuku-vala] cleaner and reusable code Message-ID: 
> <address@hidden>
>
> 
Content-Type: text/plain; charset=ISO-8859-1
> 
> A first commit has been done for the branches "logger", "tasklet"
> and "rpc". Below are a link to browse the code and the command to
> get it. http://bzr.savannah.gnu.org/lh/netsukuku bzr branch
> bzr://bzr.savannah.nongnu.org/netsukuku/<branch>
> 
> A bit more work is going to be committed soon in the "rpc" module.
> In particular a document will be provided to explain in detail how
> to use it. This is in particular relevant for Ricardo Lanziano if
> he is still willing to try and implement a monitoring tool.
> 
> 
> 
> ------------------------------
> 
> _______________________________________________ Netsukuku-vala
> mailing list address@hidden 
> https://lists.nongnu.org/mailman/listinfo/netsukuku-vala
> 
> 
> End of Netsukuku-vala Digest, Vol 17, Issue 2 
> *********************************************
> 
Hiya Luca! Thank you so much for explaining your reasons for working
on Vala, I was very curious, I understand now. I'll tell you why I,
And others decided to work on the C version.

We looked at Netsukuku, And we saw that it was ported to three
languages, To me, That seemed a bit counter productive. So, Instead of
porting to another language, We decided to go with one of the existing
implementations.

We looked at Vala, And we saw how early it is in development, Though,
Functional. I, And many of the other developers who decided to help
out, Didn't know Vala. I have been learning C++, And practising in
that a lot, And it seemed like a waste to suddenly switch to another
language.

But, We didn't want to be hasty, You said Python was probably the most
implemented version of netsukuku, Which, I agree with. So, I went off
to test that myself. And failed miserably, It was a very frustrating
endeavour of over four or so days, And two virtual machines. I was
even going to try it on some of my other hard ware, But, I decided it
wouldn't work any differently.

What happened was, Basically, It took me a day or more just to figure
out how to install it properly. I, Then, Spent several days
installing, And reinstalling, And configuring, Despretely trying to
get it to function. And it never did, I even asked some people on a
python IRC channel for help in the error messages it was giving me.
(As they were related to stackless python, I thought they might be
able to help.) Which didn't work either.

So, I thought that would be rather difficult to fix, So, We looked
around, And we saw the C version. Now, The C version did not work on
current linux versions, Such as, Ubuntu 13.04. However, It worked on
12.04. It was very implemented, And didn't seem to have many bugs. It
was in a familiar language, And even though I am learning C++, C is
fairly similar, And I could understand a lot of it.

So, We created a github page https://github.com/Netsukuku/netsukuku

And we decided to work on it. One of my professional programmer
friends was able to, In about a day, Fix all of the compilation
errors, Along with a few other bug fixes, And library updates.

This made me very happy, And cleared a lot of the frustration I had
with the seeming stagnation of netsukuku, and the old releases. As I
learn more and more about C++, And netsukuku (I have been reading the
old mailing list messages, and the documentation.) I have been
starting to write down suggestions, And make small changes. (I
improved the readme file, I cleared up the incoherence in the ntkd -h
page, I could hardly understand it, I had to test what they did to
fully understand what they were trying to say.)

And that is about it, However, I don't think this should cause any
kind of a schism between us, Or the projects. I think this should be
treated like Ubuntu, There is Ubuntu, And there is Xbuntu, And
Lubuntu, And all other variants. But, It is all still Ubuntu. And so
is netsukuku, Whether some people decide to work on the python
version, Vala, Or C, It is still part of the Netsukuku family.

I think this should be encouraged, Because, Who knows, Maybe Vala is
better, It would be good to have a Vala variant if it is. Or maybe
Python is, Or C, Or C++. We will now, Be able to test this, By having
a multi-lingual project. I think this is a step forward for netsukuku.

Now, If someone dislikes one language, And prefers another, They can
work on that version instead of the other, If they know one, And not
another, They can work on that instead. Over all, I think this will be
quite a good thing for us all. Especially because, If someone has a
GREAT idea for, Say, Vala, And they implement that, And test it, And
it's really good. We could easily port that change to the other
languages, Rather than completely think of it ourselves. This way, We
will benefit from the innovation of everyone, Everywhere, Rather than
just a small, Specific team.

Anyway, Thank you for reading! And thank you for your work Luca! You
have given us all hope in this project by working on it, And I am glad
to see the new work you have done!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJSYNb6AAoJEEc7ThbQc6zsRFIH+weDN/0MnQdk7J6wb+8HEYg5
eLptfZ2HYddsjQEaOJYfg0O46rHezOPRwm99Inml65TyvkJOZiImvjG6zDYZehpk
zMRNW6Ax/nyzYAo7KNF8efmpown0HwQoglX8WSEuXqlOsMG1og1HThVWTUgyH2xW
FljJ2z73jMyu/YP2nEaTqJ7g/4hXt/6hQ1k4bZ43pN8HAnbJzHVJn76cK9sRWgWC
rzxsZ4dgA5hmltfK1zqBgBzdFumx2UONQfUDlAR5z4QhrI7ojlOIbQL3jFmFblBh
JRqcEp4VOPMInOQOBL2XfA2fdglbCW+UiHQP7U5XvWTHG5YXukgMIs4W3T2HFq0=
=3MHE
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]