Fishing for a CS Masters Thesis Topic

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Fishing for a CS Masters Thesis Topic

Robert Stehwien
I've been primarily a Windows C++ developer for 12 years with a little
Java, Perl, Python, and lately Ruby along the way.  I've never looked
at line of Smalltalk until recently.  But that all changed when I
decided to get a Masters in CS and since a PhD isn't out of the
question write a thesis.

When asked by a co-worker what my thesis topic would be, I said "maybe
something with peer-to-peer, gaming, collaborative environments, 3D,
education, visual programming, interaction design, or languages" (big
list I know but somewhat ordered).  I started digging around and
noticed a pattern... Smalltalk, Squeak, Croquet, and Seaside kept
coming up (although it took a little while to notice the mouse icon
and 3d bunny.

So I've ordered the book "Object Land", downloaded all the free books
and Squeak (ordered the DVD too), and joined the list.  But I'm still
having trouble narrowing down a thesis topic to present to my adviser
(for adjustment I'm sure).

Anyone have any suggestions for a thesis topic?  Maybe there is some
part of Squeak that the community would like
documented/researched/implemented.  P2P gaming/collaboration using
Croquet sound interesting (Croquet has a great deal of potential), but
I'm pretty open for suggestions.

Thanks,
Robert

PS: As a working C++ developer it will take a while for me to finish
the thesis and my masters.

Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Derek O'Connell-2
I fear CS focuses on more esoteric topics than my suggestion but here
goes anyway: kick-starting a virtual economy. There is plenty of talk
about the potential boom in virtual communities but I see very little,
if anything, about how to get one off the ground. Squeak/Croquet
provides IMHO a perfect environment for experimenting this subject.

Good luck with your studies!

On 6/13/07, Robert Stehwien <[hidden email]> wrote:

> I've been primarily a Windows C++ developer for 12 years with a little
> Java, Perl, Python, and lately Ruby along the way.  I've never looked
> at line of Smalltalk until recently.  But that all changed when I
> decided to get a Masters in CS and since a PhD isn't out of the
> question write a thesis.
>
> When asked by a co-worker what my thesis topic would be, I said "maybe
> something with peer-to-peer, gaming, collaborative environments, 3D,
> education, visual programming, interaction design, or languages" (big
> list I know but somewhat ordered).  I started digging around and
> noticed a pattern... Smalltalk, Squeak, Croquet, and Seaside kept
> coming up (although it took a little while to notice the mouse icon
> and 3d bunny.
>
> So I've ordered the book "Object Land", downloaded all the free books
> and Squeak (ordered the DVD too), and joined the list.  But I'm still
> having trouble narrowing down a thesis topic to present to my adviser
> (for adjustment I'm sure).
>
> Anyone have any suggestions for a thesis topic?  Maybe there is some
> part of Squeak that the community would like
> documented/researched/implemented.  P2P gaming/collaboration using
> Croquet sound interesting (Croquet has a great deal of potential), but
> I'm pretty open for suggestions.
>
> Thanks,
> Robert
>
> PS: As a working C++ developer it will take a while for me to finish
> the thesis and my masters.
>
>

Reply | Threaded
Open this post in threaded view
|

RE: Fishing for a CS Masters Thesis Topic

Gary Chambers-4
In reply to this post by Robert Stehwien

How about "The Social Implications of Virtual Collaboration"?

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Robert
Stehwien
Sent: 13 June 2007 4:17 pm
To: [hidden email]
Subject: Fishing for a CS Masters Thesis Topic


I've been primarily a Windows C++ developer for 12 years with a little Java,
Perl, Python, and lately Ruby along the way.  I've never looked at line of
Smalltalk until recently.  But that all changed when I decided to get a
Masters in CS and since a PhD isn't out of the question write a thesis.

When asked by a co-worker what my thesis topic would be, I said "maybe
something with peer-to-peer, gaming, collaborative environments, 3D,
education, visual programming, interaction design, or languages" (big list I
know but somewhat ordered).  I started digging around and noticed a
pattern... Smalltalk, Squeak, Croquet, and Seaside kept coming up (although
it took a little while to notice the mouse icon and 3d bunny.

So I've ordered the book "Object Land", downloaded all the free books and
Squeak (ordered the DVD too), and joined the list.  But I'm still having
trouble narrowing down a thesis topic to present to my adviser (for
adjustment I'm sure).

Anyone have any suggestions for a thesis topic?  Maybe there is some part of
Squeak that the community would like documented/researched/implemented.  P2P
gaming/collaboration using Croquet sound interesting (Croquet has a great
deal of potential), but I'm pretty open for suggestions.

Thanks,
Robert

PS: As a working C++ developer it will take a while for me to finish the
thesis and my masters.


Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Mikael Kindborg-2
In reply to this post by Robert Stehwien
Hi!

If you are interested in visual programming I have two suggestions!

(1) Explore how behaviours represented as "contextual signs" can be
used to program objects in Croquet. Contextual signs are graphical
and/or textual signs that are directly attached to an object. This
concept comes from comics, where for instance voice balloons, speed
lines, and sounding symbols (onomatopoetic symbols) are examples of
contextual signs. Here are two papers on this topic:

http://www.ida.liu.se/~mikki/comics/IDC2007-Kindborg.pdf
http://www.ida.liu.se/~mikki/comics/p121-fernaeus.pdf

For full references go here:

http://www.ida.liu.se/~mikki/comics/

The current system we are working is called "Magic Words" and is available here:

http://www.comikit.se/index.en.html

(2) Explore how "comic strip programming" could be used in Etoys
and/or Croquet. Here is a recent paper that describes the idea:

http://www.ida.liu.se/~mikki/comics/JVLC_Kindborg_McGee_Paper_October_2006.pdf

Best regads, Micke


2007/6/13, Robert Stehwien <[hidden email]>:

> I've been primarily a Windows C++ developer for 12 years with a little
> Java, Perl, Python, and lately Ruby along the way.  I've never looked
> at line of Smalltalk until recently.  But that all changed when I
> decided to get a Masters in CS and since a PhD isn't out of the
> question write a thesis.
>
> When asked by a co-worker what my thesis topic would be, I said "maybe
> something with peer-to-peer, gaming, collaborative environments, 3D,
> education, visual programming, interaction design, or languages" (big
> list I know but somewhat ordered).  I started digging around and
> noticed a pattern... Smalltalk, Squeak, Croquet, and Seaside kept
> coming up (although it took a little while to notice the mouse icon
> and 3d bunny.
>
> So I've ordered the book "Object Land", downloaded all the free books
> and Squeak (ordered the DVD too), and joined the list.  But I'm still
> having trouble narrowing down a thesis topic to present to my adviser
> (for adjustment I'm sure).
>
> Anyone have any suggestions for a thesis topic?  Maybe there is some
> part of Squeak that the community would like
> documented/researched/implemented.  P2P gaming/collaboration using
> Croquet sound interesting (Croquet has a great deal of potential), but
> I'm pretty open for suggestions.
>
> Thanks,
> Robert
>
> PS: As a working C++ developer it will take a while for me to finish
> the thesis and my masters.
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Daniel Vainsencher-3
In reply to this post by Robert Stehwien
Under languages:


A new kernel for Squeak, based only on Traits (no inheritance).


Why?


1. Writing a kernel for Squeak should be challenging and a little
mindbending.

2. I am quite sure that it is possible to create something easier to
understand than the current kernel, which uses both inheritance and traits.

3. Seems quite likely to me that it would allow to simplify other parts
of the system, because if done right it would allow to have a variety of
things that are somewhat similar to classes without duplication of code.
For example, a representation of a version of a class that is not
currently loaded (useful for versioning systems) has some of the
functionality of a class (same state), but lacks other functionality
(cannot create instances).


Daniel


Robert Stehwien wrote:

> I've been primarily a Windows C++ developer for 12 years with a little
> Java, Perl, Python, and lately Ruby along the way.  I've never looked
> at line of Smalltalk until recently.  But that all changed when I
> decided to get a Masters in CS and since a PhD isn't out of the
> question write a thesis.
>
> When asked by a co-worker what my thesis topic would be, I said "maybe
> something with peer-to-peer, gaming, collaborative environments, 3D,
> education, visual programming, interaction design, or languages" (big
> list I know but somewhat ordered).  I started digging around and
> noticed a pattern... Smalltalk, Squeak, Croquet, and Seaside kept
> coming up (although it took a little while to notice the mouse icon
> and 3d bunny.
>
> So I've ordered the book "Object Land", downloaded all the free books
> and Squeak (ordered the DVD too), and joined the list.  But I'm still
> having trouble narrowing down a thesis topic to present to my adviser
> (for adjustment I'm sure).
>
> Anyone have any suggestions for a thesis topic?  Maybe there is some
> part of Squeak that the community would like
> documented/researched/implemented.  P2P gaming/collaboration using
> Croquet sound interesting (Croquet has a great deal of potential), but
> I'm pretty open for suggestions.
>
> Thanks,
> Robert
>
> PS: As a working C++ developer it will take a while for me to finish
> the thesis and my masters.
>


Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Yoshiki Ohshima
In reply to this post by Robert Stehwien
  Robert,

  We have a research project proposal titled "Steps Toward The
Reinvention of Programming" (which is accepted by NSF).  This
research tries to cover everything about computing from the metal to
the end-user experience.  Because it tries to cover everything, what
you described are all have some relevance^^;

  Take a look at the proposal:

http://vpri.org/pdf/NSF_prop_RN-2006-002.pdf

and other docs from:

  http://vpri.org/html/writings.htm

.  Hopefully, that would give you some perspective on the various
topics.

-- Yoshiki

At Wed, 13 Jun 2007 09:17:17 -0600,
Robert Stehwien wrote:

>
> I've been primarily a Windows C++ developer for 12 years with a little
> Java, Perl, Python, and lately Ruby along the way.  I've never looked
> at line of Smalltalk until recently.  But that all changed when I
> decided to get a Masters in CS and since a PhD isn't out of the
> question write a thesis.
>
> When asked by a co-worker what my thesis topic would be, I said "maybe
> something with peer-to-peer, gaming, collaborative environments, 3D,
> education, visual programming, interaction design, or languages" (big
> list I know but somewhat ordered).  I started digging around and
> noticed a pattern... Smalltalk, Squeak, Croquet, and Seaside kept
> coming up (although it took a little while to notice the mouse icon
> and 3d bunny.
>
> So I've ordered the book "Object Land", downloaded all the free books
> and Squeak (ordered the DVD too), and joined the list.  But I'm still
> having trouble narrowing down a thesis topic to present to my adviser
> (for adjustment I'm sure).
>
> Anyone have any suggestions for a thesis topic?  Maybe there is some
> part of Squeak that the community would like
> documented/researched/implemented.  P2P gaming/collaboration using
> Croquet sound interesting (Croquet has a great deal of potential), but
> I'm pretty open for suggestions.
>
> Thanks,
> Robert
>
> PS: As a working C++ developer it will take a while for me to finish
> the thesis and my masters.
>

Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Mikael Kindborg-2
2007/6/14, Yoshiki Ohshima <[hidden email]>:

>   Robert,
>
>   We have a research project proposal titled "Steps Toward The
> Reinvention of Programming" (which is accepted by NSF).  This
> research tries to cover everything about computing from the metal to
> the end-user experience.  Because it tries to cover everything, what
> you described are all have some relevance^^;
>
>   Take a look at the proposal:
>
> http://vpri.org/pdf/NSF_prop_RN-2006-002.pdf
>
> and other docs from:
>
>   http://vpri.org/html/writings.htm
>

Great to see this collection of documents, very inspiring!

Best, Micke

> .  Hopefully, that would give you some perspective on the various
> topics.
>
> -- Yoshiki
>
> At Wed, 13 Jun 2007 09:17:17 -0600,
> Robert Stehwien wrote:
> >
> > I've been primarily a Windows C++ developer for 12 years with a little
> > Java, Perl, Python, and lately Ruby along the way.  I've never looked
> > at line of Smalltalk until recently.  But that all changed when I
> > decided to get a Masters in CS and since a PhD isn't out of the
> > question write a thesis.
> >
> > When asked by a co-worker what my thesis topic would be, I said "maybe
> > something with peer-to-peer, gaming, collaborative environments, 3D,
> > education, visual programming, interaction design, or languages" (big
> > list I know but somewhat ordered).  I started digging around and
> > noticed a pattern... Smalltalk, Squeak, Croquet, and Seaside kept
> > coming up (although it took a little while to notice the mouse icon
> > and 3d bunny.
> >
> > So I've ordered the book "Object Land", downloaded all the free books
> > and Squeak (ordered the DVD too), and joined the list.  But I'm still
> > having trouble narrowing down a thesis topic to present to my adviser
> > (for adjustment I'm sure).
> >
> > Anyone have any suggestions for a thesis topic?  Maybe there is some
> > part of Squeak that the community would like
> > documented/researched/implemented.  P2P gaming/collaboration using
> > Croquet sound interesting (Croquet has a great deal of potential), but
> > I'm pretty open for suggestions.
> >
> > Thanks,
> > Robert
> >
> > PS: As a working C++ developer it will take a while for me to finish
> > the thesis and my masters.
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

stephane ducasse
In reply to this post by Daniel Vainsencher-3
sounds cool!

Some other topics
        Secure and open Squeak. (erights but better)

        Looking Erlang, emerald and getting a new distributed langage

        New ways to browsing code
       
        implementing a squeak vm on top of pepsi

        if you want more on language ask....

Stef

It seems to me that you have fun.... keep doing that.

> Under languages:
>
>
> A new kernel for Squeak, based only on Traits (no inheritance).
>
>
> Why?
>
>
> 1. Writing a kernel for Squeak should be challenging and a little  
> mindbending.
>
> 2. I am quite sure that it is possible to create something easier  
> to understand than the current kernel, which uses both inheritance  
> and traits.
>
> 3. Seems quite likely to me that it would allow to simplify other  
> parts of the system, because if done right it would allow to have a  
> variety of things that are somewhat similar to classes without  
> duplication of code. For example, a representation of a version of  
> a class that is not currently loaded (useful for versioning  
> systems) has some of the functionality of a class (same state), but  
> lacks other functionality (cannot create instances).
>
>
> Daniel
>
>
> Robert Stehwien wrote:
>
>> I've been primarily a Windows C++ developer for 12 years with a  
>> little
>> Java, Perl, Python, and lately Ruby along the way.  I've never looked
>> at line of Smalltalk until recently.  But that all changed when I
>> decided to get a Masters in CS and since a PhD isn't out of the
>> question write a thesis.
>>
>> When asked by a co-worker what my thesis topic would be, I said  
>> "maybe
>> something with peer-to-peer, gaming, collaborative environments, 3D,
>> education, visual programming, interaction design, or languages" (big
>> list I know but somewhat ordered).  I started digging around and
>> noticed a pattern... Smalltalk, Squeak, Croquet, and Seaside kept
>> coming up (although it took a little while to notice the mouse icon
>> and 3d bunny.
>>
>> So I've ordered the book "Object Land", downloaded all the free books
>> and Squeak (ordered the DVD too), and joined the list.  But I'm still
>> having trouble narrowing down a thesis topic to present to my adviser
>> (for adjustment I'm sure).
>>
>> Anyone have any suggestions for a thesis topic?  Maybe there is some
>> part of Squeak that the community would like
>> documented/researched/implemented.  P2P gaming/collaboration using
>> Croquet sound interesting (Croquet has a great deal of potential),  
>> but
>> I'm pretty open for suggestions.
>>
>> Thanks,
>> Robert
>>
>> PS: As a working C++ developer it will take a while for me to finish
>> the thesis and my masters.
>>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Robert Stehwien
In reply to this post by Robert Stehwien
> Anyone have any suggestions for a thesis topic?  Maybe there is some
> part of Squeak that the community would like
> documented/researched/implemented.  P2P gaming/collaboration using
> Croquet sound interesting (Croquet has a great deal of potential), but
> I'm pretty open for suggestions.
>

My thanks for the flood of topics.  I've had a chance to do some
reading on each, but I'll need to take some time this weekend to read
more in depth and respond to more of the suggestions.  There are
certainly some good topics available, more than I can possibly do in
one masters but that is promising in itself.

--Robert

Reply | Threaded
Open this post in threaded view
|

RE: Fishing for a CS Masters Thesis Topic

J J-6
In reply to this post by Robert Stehwien
> Date: Wed, 13 Jun 2007 22:40:44 +0300
> From: [hidden email]
> To: [hidden email]
> Subject: Re: Fishing for a CS Masters Thesis Topic
>
> Under languages:

Also under languages:

What I would personally like to see worked on is having a better language to fill the systems programming roll.  Right now everything converges on C/C++.  There are higher level languages that are used to systems programming (e.g. Slang), but as far as I know they *all* convert to C.  The GCC project has the ability to take an AST directly to convert to machine code, but this is also constrained by what C is capable of.

What I would like to see is some other language used for this "portable assembler", but without the assumptions and limitations of C [1].  Instead of deciding that added complexity is the solution (e.g. C++) I would like to see a language that looked to simplicity.  Personally, I was thinking of a Lisp language for this roll because Lisp is the only language I am aware of (a useful one anyway) that is actually *simpler* then Smalltalk.  I think powerful Lisp macros would also make it possible to build abstractions on top of the very low level primitives so that you don't have to do thinks like do a function call setup unless you didn't like any of the available options.

[1] Some of the limitations I was thinking of are things like the stack-based method of doing function calls and the inability to catch overflow, but I'm sure there are even more.

Thanks,
Jason


Live Earth is coming.  Learn more about the hottest summer event - only on MSN. Check it out!

Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Blake-5
>> of.What I would like to see is some other language used for this  
>> "portable assembler", but without the assumptions and limitations of C

Hey, I'd settle for a language that didn't encourage buffer overruns....

Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Igor Stasenko
In reply to this post by J J-6
another great limitation of C, like in other strictly typed languages,
is inability to construct a calls to a dynamically prototyped function
at runtime and lack of of type info.
Even templates in C++ doesn't solve this problem - you still need to
know all the types of function parameters at compile time, and there's
no ways to construct and call them at runtime.


On 20/06/07, J J <[hidden email]> wrote:

>
>  > Date: Wed, 13 Jun 2007 22:40:44 +0300
> > From: [hidden email]
> > To: [hidden email]
> > Subject: Re: Fishing for a CS Masters Thesis Topic
> >
> > Under languages:
>
> Also under languages:
>
> What I would personally like to see worked on is having a better language to
> fill the systems programming roll.  Right now everything converges on C/C++.
>  There are higher level languages that are used to systems programming (e.g.
> Slang), but as far as I know they *all* convert to C.  The GCC project has
> the ability to take an AST directly to convert to machine code, but this is
> also constrained by what C is capable of.
>
> What I would like to see is some other language used for this "portable
> assembler", but without the assumptions and limitations of C [1].  Instead
> of deciding that added complexity is the solution (e.g. C++) I would like to
> see a language that looked to simplicity.  Personally, I was thinking of a
> Lisp language for this roll because Lisp is the only language I am aware of
> (a useful one anyway) that is actually *simpler* then Smalltalk.  I think
> powerful Lisp macros would also make it possible to build abstractions on
> top of the very low level primitives so that you don't have to do thinks
> like do a function call setup unless you didn't like any of the available
> options.
>
> [1] Some of the limitations I was thinking of are things like the
> stack-based method of doing function calls and the inability to catch
> overflow, but I'm sure there are even more.
>
> Thanks,
> Jason
>
> ________________________________
> Live Earth is coming.  Learn more about the hottest summer event - only on
> MSN. Check it out!
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Darius Clarke
For specifics, you might look at other academic papers presented at C5.

http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/&toc=comp/proceedings/c5/2007/2806/00/2806toc.xml
http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/&toc=comp/proceedings/c5/2006/2563/00/2563toc.xml

Many papers have a section for suggested further research. If you
select one of those, you'd have some clearly done prior work to build
on top of as well as an academically sound direction of where to take
it.

Next year's C5 is in France if that's close to you.

http://www.cm.is.ritsumei.ac.jp/c5-08/index.php?Home
http://www.cm.is.ritsumei.ac.jp/c5-07/
http://www.db.soc.i.kyoto-u.ac.jp/c5-06/

Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Bergel, Alexandre
In reply to this post by Igor Stasenko
Hi!

> another great limitation of C, like in other strictly typed languages,
> is inability to construct a calls to a dynamically prototyped function
> at runtime and lack of of type info.
> Even templates in C++ doesn't solve this problem - you still need to
> know all the types of function parameters at compile time, and there's
> no ways to construct and call them at runtime.

Would you mind to elaborate on this?
Do you mean having a kind of perform: in a statically typed language ?

Alexandre


>
>
> On 20/06/07, J J <[hidden email]> wrote:
>>
>>  > Date: Wed, 13 Jun 2007 22:40:44 +0300
>> > From: [hidden email]
>> > To: [hidden email]
>> > Subject: Re: Fishing for a CS Masters Thesis Topic
>> >
>> > Under languages:
>>
>> Also under languages:
>>
>> What I would personally like to see worked on is having a better  
>> language to
>> fill the systems programming roll.  Right now everything converges  
>> on C/C++.
>>  There are higher level languages that are used to systems  
>> programming (e.g.
>> Slang), but as far as I know they *all* convert to C.  The GCC  
>> project has
>> the ability to take an AST directly to convert to machine code,  
>> but this is
>> also constrained by what C is capable of.
>>
>> What I would like to see is some other language used for this  
>> "portable
>> assembler", but without the assumptions and limitations of C [1].  
>> Instead
>> of deciding that added complexity is the solution (e.g. C++) I  
>> would like to
>> see a language that looked to simplicity.  Personally, I was  
>> thinking of a
>> Lisp language for this roll because Lisp is the only language I am  
>> aware of
>> (a useful one anyway) that is actually *simpler* then Smalltalk.  
>> I think
>> powerful Lisp macros would also make it possible to build  
>> abstractions on
>> top of the very low level primitives so that you don't have to do  
>> thinks
>> like do a function call setup unless you didn't like any of the  
>> available
>> options.
>>
>> [1] Some of the limitations I was thinking of are things like the
>> stack-based method of doing function calls and the inability to catch
>> overflow, but I'm sure there are even more.
>>
>> Thanks,
>> Jason
>>
>> ________________________________
>> Live Earth is coming.  Learn more about the hottest summer event -  
>> only on
>> MSN. Check it out!
>>
>>
>>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply | Threaded
Open this post in threaded view
|

Re: Fishing for a CS Masters Thesis Topic

Igor Stasenko
On 22/06/07, Bergel, Alexandre <[hidden email]> wrote:

> Hi!
>
> > another great limitation of C, like in other strictly typed languages,
> > is inability to construct a calls to a dynamically prototyped function
> > at runtime and lack of of type info.
> > Even templates in C++ doesn't solve this problem - you still need to
> > know all the types of function parameters at compile time, and there's
> > no ways to construct and call them at runtime.
>
> Would you mind to elaborate on this?
> Do you mean having a kind of perform: in a statically typed language ?
>
Yes, a kind of #perform: . See, how FFI implemented , see how bindings
implemented in C++ boost library.. this is overkill for such simple
task.