[go-nuts] Tonika: a full-featured end-user application in Go

99 views
Skip to first unread message

Petar Maymounkov

unread,
May 18, 2010, 3:48:18 PM5/18/10
to golang-nuts
I know people have been asking if there are any complete software
products in Go.

I have just released Tonika, an application that I have been working
on
over the past 5 months. Tonika is a system for distributed social
networking based on my research in algorithm design and routing at
MIT.

The application is in Alpha Test stage, but it is fully operational
so you may find it to be a good example of a complete Go application.
It is about 25,000 lines of Go code.

You can learn more on the Tonika web site:

http://5ttt.org

Best,
--Petar

Johann Höchtl

unread,
May 19, 2010, 3:53:15 AM5/19/10
to golang-nuts


On May 18, 9:48 pm, Petar Maymounkov <pet...@gmail.com> wrote:
> I know people have been asking if there are any complete software
> products in Go.
>
> I have just released Tonika, an application that I have been working
> on
> over the past 5 months. Tonika is a system for distributed social
> networking based on my research in algorithm design and routing at
> MIT.
>
> The application is in Alpha Test stage, but it is fully operational
> so you may find it to be a good example of a complete Go application.
> It is about 25,000 lines of Go code.
>
Wow, 25.000 LOC in Go is very impressive. I have not looked deeper in
Tonika though, but it sounds interesting at least.

I think it would be very interessting what your experiences were
handling such a large code base, expecially:

* Did the the package mechanism provided everything you needed?
* What gave you special head-ace
* What do you consider missing from go, the language / from go, the
infrastructure
* How did you handle debugging sans debugger?

Worth a blog post @ http://blogtonika.wordpress.com/?

> You can learn more on the Tonika web site:
>
>  http://5ttt.org
>
> Best,
> --Petar

Greetings, Johann

Petar Maymounkov

unread,
May 19, 2010, 12:29:00 PM5/19/10
to golang-nuts
Thanks for your questions Johann,

Indeed, I wrote an article answering them in details:

http://blogtonika.wordpress.com/2010/05/19/debugging-without-a-debugger-profiling-without-a-profiler/

Best,
--Petar


On May 19, 3:53 am, Johann Höchtl <johann.hoec...@gmail.com> wrote:
> On May 18, 9:48 pm, Petar Maymounkov <pet...@gmail.com> wrote:> I know people have been asking if there are any complete software
> > products in Go.
>
> > I have just released Tonika, an application that I have been working
> > on
> > over the past 5 months. Tonika is a system for distributed social
> > networking based on my research in algorithm design and routing at
> > MIT.
>
> > The application is in Alpha Test stage, but it is fully operational
> > so you may find it to be a good example of a complete Go application.
> > It is about 25,000 lines of Go code.
>
> Wow, 25.000 LOC in Go is very impressive. I have not looked deeper in
> Tonika though, but it sounds interesting at least.
>
> I think it would be very interessting what your experiences were
> handling such a large code base, expecially:
>
> * Did the the package mechanism provided everything you needed?
> * What gave you special head-ace
> * What do you consider missing from go, the language / from go, the
> infrastructure
> * How did you handle debugging sans debugger?
>
> Worth a blog post @http://blogtonika.wordpress.com/?

Michael Hoisie

unread,
May 19, 2010, 3:02:30 PM5/19/10
to golang-nuts
This seems cool.

In the beginning the network will be very sparse. I'd suggest having
some kind of centralized directory that people can use to find each
other and coordinate.

- Mike

On May 19, 9:29 am, Petar Maymounkov <pet...@gmail.com> wrote:
> Thanks for your questions Johann,
>
> Indeed, I wrote an article answering them in details:
>
> http://blogtonika.wordpress.com/2010/05/19/debugging-without-a-debugg...

Petar Maymounkov

unread,
May 19, 2010, 10:20:44 PM5/19/10
to golang-nuts
This would violate the security principle of the network.
The principle is that you never talk to strangers that you haven't
authorized.

It is OK to wait until the network grows naturally. But it is
imperative
to assure the users that their computer never says a word
to anone who is not an authorized friend.

Thanks,
--Petar

Johann Höchtl

unread,
May 20, 2010, 4:04:41 AM5/20/10
to golang-nuts


On May 19, 6:29 pm, Petar Maymounkov <pet...@gmail.com> wrote:
> Thanks for your questions Johann,
>
> Indeed, I wrote an article answering them in details:
>
> http://blogtonika.wordpress.com/2010/05/19/debugging-without-a-debugg...
>

Thank you for answering!

Brian Slesinsky

unread,
May 21, 2010, 1:51:31 AM5/21/10
to golang-nuts
It seems like having to download and run your own server is a
significant bootstrapping problem. It isn't reasonable to send an
invite saying "Please join my network, and you have to download and
run this software in order to join."

It would be easier if you could give accounts on your server to your
friends so they don't need their own.

- Brian

Petar Maymounkov

unread,
May 21, 2010, 12:32:59 PM5/21/10
to Brian Slesinsky, golang-nuts
Thanks for the comment. It is certainly a possibility.

Tonika will be open source soon and there will be a video
describing where it comes from and what needs it aspired to fulfill.
This will make it easier to reason about it and about new features.
I will send an email on this list when everything is in place.

--Petar

Archos

unread,
May 21, 2010, 1:44:37 PM5/21/10
to golang-nuts
It would be easier for whatever governement to can filter/block a
centralized server.

http://www.foxnews.com/scitech/2009/12/15/like-china-iran-australia-filter-internet/

Thanks for open source it!
Reply all
Reply to author
Forward
0 new messages