SlideShare a Scribd company logo
1 of 65
Download to read offline
Understanding Free Software   May 30
                              eLiberatica 2008
   & Open Source Licensing    Bucharest, Romania
Warnings and Disclosure
1. I am not a lawyer
Warnings and Disclosure
1. I am not a lawyer
Warnings and Disclosure   2. Law is not code
1. I am not a lawyer
Warnings and Disclosure   2. Law is not code
                          3. Solely my opinions
Foo
Associates
Free Software
             Foundation License

Foo
Associates
             Compliance Lab
             Volunteer since 2004
Foo
Associates
Foo
Associates



             Mozilla Foundation
             Paid Staff Member
             Since 2005
Foo
Associates
Foo
Associates




             Open Source Initiative
             Board Observer since
             January
Foo
Associates
Maximize the global public and
                   Mozilla Manifesto              individual benefits of the
http://mozilla.org/about/mozilla-manifesto.html
                                                  Internet.
The Roots of Free
Foundations   Software & Open
              Source Licensing
Automatically
Copyright   granted to creators
            by the state
U


            Automatically
Copyright   granted to creators
            by the state
You own your
The Big Idea?   software.
If you can't open it...   you don't own it.
Your software
Proprietary Software   owns you.
Four Freedoms
1. Run
Four Freedoms
1. Run
                2. Study
Four Freedoms
1. Run
                2. Study
Four Freedoms   3. Modify
1. Run
                2. Study
Four Freedoms   3. Modify
                4. Share
License Types
The sky is the limit
Permissive
             THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
             "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
             TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
             PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
             OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
             SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
             LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
             DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
             THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
             (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
             OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
BSD License
Keep license notices
BSD License
Keep license notices
BSD License   No warranty
Keep license notices
BSD License   No warranty
              Don't use our name
Mac OS X
BSD
Mac OS X
BSD
Mac OS X   Mach
BSD
Mac OS X   Mach
           NeXTStep
Share ...
Copyleft   but Share-alike
Legal Entity
                 Copyleft
    #!/usr/bin/env perl
    use strict;
    use warnings;

    =head1 DESCRIPTION
    Hacked version of Best Practical's Hiveminder todo.pl script
    Generates reports from Hiveminder - meant to be safe-ish to
    run as a cgi script
    Hacked up by zak@fooassociates.com
    =cut

    use   Encode ();
    use   YAML ();
    use   LWP::UserAgent;
    use   Number::RecordLocator;
    use   Email::Address;
    use   Fcntl qw(:mode);
    use   File::Temp;

    our $CONFFILE = "$ENV{HOME}/.hiveminder";
    our %config = ();
    our $ua = LWP::UserAgent->new;
    our $locator = Number::RecordLocator->new();
    our $default_query = "not/complete/starts/before/tomorrow/
    accepted/but_first/nothing";
    our %args;

    $ua->cookie_jar({});

    # Load the user's proxy settings from %ENV
    $ua->env_proxy;
Legal Entity                                                       use
                                                                   use
                                                                   use
                                                                   use
                                                                   use
                                                                   use

                                                                   our
                                                                         YAML ();
                                                                         LWP::UserAgent;
                                                                         Number::RecordLocator;
                                                                         Email::Address;
                                                                         Fcntl qw(:mode);
                                                                         File::Temp;

                                                                         $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                   our   %config = ();
                                                                   our   $ua = LWP::UserAgent->new;
                                                                   our   $locator = Number::RecordLocator->new();
                                                                   our   $default_query = "not/complete/starts/before/tomorrow/




                 Copyleft
    #!/usr/bin/env perl
    use strict;
    use warnings;

    =head1 DESCRIPTION
    Hacked version of Best Practical's Hiveminder todo.pl script
    Generates reports from Hiveminder - meant to be safe-ish to
    run as a cgi script
    Hacked up by zak@fooassociates.com
    =cut

    use   Encode ();
    use   YAML ();
    use   LWP::UserAgent;
    use   Number::RecordLocator;
    use   Email::Address;
    use   Fcntl qw(:mode);
    use   File::Temp;

    our $CONFFILE = "$ENV{HOME}/.hiveminder";
    our %config = ();
    our $ua = LWP::UserAgent->new;
    our $locator = Number::RecordLocator->new();
    our $default_query = "not/complete/starts/before/tomorrow/
    accepted/but_first/nothing";
    our %args;

    $ua->cookie_jar({});

    # Load the user's proxy settings from %ENV
    $ua->env_proxy;
Legal Entity                                                       use
                                                                   use
                                                                   use
                                                                   use
                                                                   use
                                                                   use

                                                                   our
                                                                         YAML ();
                                                                         LWP::UserAgent;
                                                                         Number::RecordLocator;
                                                                         Email::Address;
                                                                         Fcntl qw(:mode);
                                                                         File::Temp;

                                                                         $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                   our   %config = ();
                                                                   our   $ua = LWP::UserAgent->new;
                                                                   our   $locator = Number::RecordLocator->new();
                                                                   our   $default_query = "not/complete/starts/before/tomorrow/




                 Copyleft
    #!/usr/bin/env perl
    use strict;
    use warnings;

    =head1 DESCRIPTION
    Hacked version of Best Practical's Hiveminder todo.pl script
    Generates reports from Hiveminder - meant to be safe-ish to
    run as a cgi script
    Hacked up by zak@fooassociates.com
    =cut

    use   Encode ();
    use   YAML ();
    use   LWP::UserAgent;
    use   Number::RecordLocator;
    use   Email::Address;
    use   Fcntl qw(:mode);
    use   File::Temp;

    our $CONFFILE = "$ENV{HOME}/.hiveminder";
    our %config = ();
    our $ua = LWP::UserAgent->new;
    our $locator = Number::RecordLocator->new();
    our $default_query = "not/complete/starts/before/tomorrow/
    accepted/but_first/nothing";
    our %args;

    $ua->cookie_jar({});

    # Load the user's proxy settings from %ENV
    $ua->env_proxy;
Legal Entity                                                       use
                                                                   use
                                                                   use
                                                                   use
                                                                   use
                                                                   use

                                                                   our
                                                                         YAML ();
                                                                         LWP::UserAgent;
                                                                         Number::RecordLocator;
                                                                         Email::Address;
                                                                         Fcntl qw(:mode);
                                                                         File::Temp;

                                                                         $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                   our   %config = ();
                                                                   our   $ua = LWP::UserAgent->new;
                                                                   our   $locator = Number::RecordLocator->new();
                                                                   our   $default_query = "not/complete/starts/before/tomorrow/




                 Copyleft
    #!/usr/bin/env perl
    use strict;
    use warnings;

    =head1 DESCRIPTION
    Hacked version of Best Practical's Hiveminder todo.pl script
    Generates reports from Hiveminder - meant to be safe-ish to
    run as a cgi script
    Hacked up by zak@fooassociates.com
    =cut

    use   Encode ();
    use   YAML ();
    use   LWP::UserAgent;
    use   Number::RecordLocator;
    use   Email::Address;
    use   Fcntl qw(:mode);
    use   File::Temp;

    our $CONFFILE = "$ENV{HOME}/.hiveminder";
    our %config = ();
    our $ua = LWP::UserAgent->new;
    our $locator = Number::RecordLocator->new();
    our $default_query = "not/complete/starts/before/tomorrow/
    accepted/but_first/nothing";
    our %args;

    $ua->cookie_jar({});

    # Load the user's proxy settings from %ENV
    $ua->env_proxy;
Legal Entity                                                       use
                                                                   use
                                                                   use
                                                                   use
                                                                   use
                                                                   use

                                                                   our
                                                                         YAML ();
                                                                         LWP::UserAgent;
                                                                         Number::RecordLocator;
                                                                         Email::Address;
                                                                         Fcntl qw(:mode);
                                                                         File::Temp;

                                                                         $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                   our   %config = ();
                                                                   our   $ua = LWP::UserAgent->new;
                                                                   our   $locator = Number::RecordLocator->new();
                                                                   our   $default_query = "not/complete/starts/before/tomorrow/




                 Copyleft
    #!/usr/bin/env perl
    use strict;
    use warnings;
                                                                                                                                               Copyleft
    =head1 DESCRIPTION
    Hacked version of Best Practical's Hiveminder todo.pl script
    Generates reports from Hiveminder - meant to be safe-ish to                                                                   #!/usr/bin/env perl
    run as a cgi script                                                                                                           use strict;
    Hacked up by zak@fooassociates.com                                                                                            use warnings;
    =cut
                                                                                                                                  =head1 DESCRIPTION
    use   Encode ();                                                                                                              Hacked version of Best Practical's Hiveminder todo.pl script
    use   YAML ();                                                                                                                Generates reports from Hiveminder - meant to be safe-ish to
    use   LWP::UserAgent;                                                                                                         run as a cgi script
    use   Number::RecordLocator;                                                                                                  Hacked up by zak@fooassociates.com
    use   Email::Address;                                                                                                         =cut
    use   Fcntl qw(:mode);
    use   File::Temp;                                                                                                             use   Encode ();
                                                                                                                                  use   YAML ();
    our $CONFFILE = "$ENV{HOME}/.hiveminder";                                                                                     use   LWP::UserAgent;
    our %config = ();                                                                                                             use   Number::RecordLocator;
    our $ua = LWP::UserAgent->new;                                                                                                use   Email::Address;
    our $locator = Number::RecordLocator->new();                                                                                  use   Fcntl qw(:mode);
    our $default_query = "not/complete/starts/before/tomorrow/                                                                    use   File::Temp;
    accepted/but_first/nothing";
    our %args;                                                                                                                    our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                                                                                  our %config = ();
    $ua->cookie_jar({});                                                                                                          our $ua = LWP::UserAgent->new;
                                                                                                                                  our $locator = Number::RecordLocator->new();
    # Load the user's proxy settings from %ENV                                                                                    our $default_query = "not/complete/starts/before/tomorrow/
    $ua->env_proxy;                                                                                                               accepted/but_first/nothing";
                                                                                                                                  our %args;

                                                                                                                                  $ua->cookie_jar({});

                                                                                                                                  # Load the user's proxy settings from %ENV
                                                                                                                                  $ua->env_proxy;

                                                                                                                                  my $encoding;
                                                                                                                                  eval {
                                                                                                                                      require Term::Encoding;
                                                                                                                                      $encoding = Term::Encoding::get_encoding();
                                                                                                                                  };
                                                                                                                                  $encoding ||= "utf-8";

                                                                                                                                  binmode STDOUT, ":encoding($encoding)";

                                                                                                                                  main();

                                                                                                                                  sub main {
                                                                                                                                      setup_config();

                                                                                                                                        $args{owner} = "me";
Legal Entity
                                                                         use   YAML ();




                       Copyleft
                                                                         use   LWP::UserAgent;
                                                                         use   Number::RecordLocator;
                                                                         use   Email::Address;
                                                                         use   Fcntl qw(:mode);
                                                                         use   File::Temp;

                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                         our %config = ();
                                                                         our $ua = LWP::UserAgent->new;
                                                                         our $locator = Number::RecordLocator->new();
                                                                         our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/
          #!/usr/bin/env perl                                            nothing";
          use strict;                                                    our %args;
          use warnings;
                                                                         $ua->cookie_jar({});
          =head1 DESCRIPTION
          Hacked version of Best Practical's Hiveminder todo.pl script   # Load the user's proxy settings from %ENV
          Generates reports from Hiveminder - meant to be safe-ish to    $ua->env_proxy;
          run as a cgi script
          Hacked up by zak@fooassociates.com                             my $encoding;
          =cut                                                           eval {
                                                                             require Term::Encoding;
          use   Encode ();                                                   $encoding = Term::Encoding::get_encoding();
          use   YAML ();                                                 };
          use   LWP::UserAgent;                                          $encoding ||= "utf-8";
          use   Number::RecordLocator;
          use   Email::Address;                                          binmode STDOUT, ":encoding($encoding)";
          use   Fcntl qw(:mode);
          use   File::Temp;                                              main();
          our $CONFFILE = "$ENV{HOME}/.hiveminder";                      sub main {
          our %config = ();                                                  setup_config();
          our $ua = LWP::UserAgent->new;
          our $locator = Number::RecordLocator->new();                         $args{owner} = "me";
          our $default_query = "not/complete/starts/before/tomorrow/
          accepted/but_first/nothing";                                       do_login() or die("Bad username/password -- edit $CONFFILE and try
          our %args;                                                     again.");
          $ua->cookie_jar({});                                                 @_ = @ARGV;
          # Load the user's proxy settings from %ENV                           gen_head();
          $ua->env_proxy;                                                      &list_tasks;
                                                                         }

                                                                         sub gen_head {
                                                                           print <<EOS
                                                                             <style type="text/css">
Legal Entity
                                                                         use   YAML ();




                       Copyleft
                                                                         use   LWP::UserAgent;
                                                                         use   Number::RecordLocator;
                                                                         use   Email::Address;
                                                                         use   Fcntl qw(:mode);
                                                                         use   File::Temp;

                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                         our %config = ();
                                                                         our $ua = LWP::UserAgent->new;
                                                                         our $locator = Number::RecordLocator->new();
                                                                         our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/
          #!/usr/bin/env perl                                            nothing";
          use strict;                                                    our %args;
          use warnings;
                                                                         $ua->cookie_jar({});
          =head1 DESCRIPTION
          Hacked version of Best Practical's Hiveminder todo.pl script   # Load the user's proxy settings from %ENV
          Generates reports from Hiveminder - meant to be safe-ish to    $ua->env_proxy;
          run as a cgi script
          Hacked up by zak@fooassociates.com                             my $encoding;
          =cut                                                           eval {
                                                                             require Term::Encoding;
          use   Encode ();                                                   $encoding = Term::Encoding::get_encoding();
          use   YAML ();                                                 };
          use   LWP::UserAgent;                                          $encoding ||= "utf-8";
          use   Number::RecordLocator;
          use   Email::Address;                                          binmode STDOUT, ":encoding($encoding)";
          use   Fcntl qw(:mode);
          use   File::Temp;                                              main();
          our $CONFFILE = "$ENV{HOME}/.hiveminder";                      sub main {
          our %config = ();                                                  setup_config();
          our $ua = LWP::UserAgent->new;
          our $locator = Number::RecordLocator->new();                         $args{owner} = "me";
          our $default_query = "not/complete/starts/before/tomorrow/
          accepted/but_first/nothing";                                       do_login() or die("Bad username/password -- edit $CONFFILE and try
          our %args;                                                     again.");
          $ua->cookie_jar({});                                                 @_ = @ARGV;
          # Load the user's proxy settings from %ENV                           gen_head();
          $ua->env_proxy;                                                      &list_tasks;
                                                                         }

                                                                         sub gen_head {
                                                                           print <<EOS
                                                                             <style type="text/css">
Legal Entity
                                                                                                                                        use   YAML ();




                       Copyleft
                                                                                                                                        use   LWP::UserAgent;
                                                                                                                                        use   Number::RecordLocator;
                                                                                                                                        use   Email::Address;
                                                                                                                                        use   Fcntl qw(:mode);
                                                                                                                                        use   File::Temp;

                                                                                                                                        our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                                                                                        our %config = ();
                                                                                                                                        our $ua = LWP::UserAgent->new;
                                                                                                                                        our $locator = Number::RecordLocator->new();
                                                                                                                                        our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/
          #!/usr/bin/env perl                                                                                                           nothing";
          use strict;                                                                                                                   our %args;
          use warnings;
                                                                                                                                        $ua->cookie_jar({});
          =head1 DESCRIPTION
          Hacked version of Best Practical's Hiveminder todo.pl script                                                                  # Load the user's proxy settings from %ENV
          Generates reports from Hiveminder - meant to be safe-ish to                                                                   $ua->env_proxy;
          run as a cgi script
          Hacked up by zak@fooassociates.com                                                                                            my $encoding;
          =cut                                                                                                                          eval {
                                                                                                                                            require Term::Encoding;
          use   Encode ();                                                                                                                  $encoding = Term::Encoding::get_encoding();
          use   YAML ();                                                                                                                };
          use   LWP::UserAgent;                                                                                                         $encoding ||= "utf-8";
          use   Number::RecordLocator;
          use   Email::Address;                                                                                                         binmode STDOUT, ":encoding($encoding)";
          use   Fcntl qw(:mode);
          use   File::Temp;                                                                                                             main();
          our $CONFFILE = "$ENV{HOME}/.hiveminder";                                                                                     sub main {
          our %config = ();                                                                                                                 setup_config();
          our $ua = LWP::UserAgent->new;
          our $locator = Number::RecordLocator->new();                                                                                        $args{owner} = "me";
          our $default_query = "not/complete/starts/before/tomorrow/
          accepted/but_first/nothing";                                                                                                      do_login() or die("Bad username/password -- edit $CONFFILE and try
          our %args;




                                                                                      Copyleft
                                                                                                                                        again.");
          $ua->cookie_jar({});                                                                                                                @_ = @ARGV;
          # Load the user's proxy settings from %ENV                                                                                          gen_head();
          $ua->env_proxy;                                                                                                                     &list_tasks;
                                                                                                                                        }

                                                                                                                                        sub gen_head {
                                                                                                                                          print <<EOS
                                                                                                                                            <style type="text/css">

                                                                         #!/usr/bin/env perl
                                                                         use strict;
                                                                         use warnings;

                                                                         =head1 DESCRIPTION
                                                                         Hacked version of Best Practical's Hiveminder todo.pl script
                                                                         Generates reports from Hiveminder - meant to be safe-ish to
                                                                         run as a cgi script
                                                                         Hacked up by zak@fooassociates.com
                                                                         =cut

                                                                         use   Encode ();
                                                                         use   YAML ();
                                                                         use   LWP::UserAgent;
                                                                         use   Number::RecordLocator;
                                                                         use   Email::Address;
                                                                         use   Fcntl qw(:mode);
                                                                         use   File::Temp;

                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                         our %config = ();
                                                                         our $ua = LWP::UserAgent->new;
                                                                         our $locator = Number::RecordLocator->new();
                                                                         our $default_query = "not/complete/starts/before/tomorrow/
                                                                         accepted/but_first/nothing";
                                                                         our %args;

                                                                         $ua->cookie_jar({});

                                                                         # Load the user's proxy settings from %ENV
                                                                         $ua->env_proxy;

                                                                         my $encoding;
                                                                         eval {
                                                                             require Term::Encoding;
                                                                             $encoding = Term::Encoding::get_encoding();
                                                                         };
                                                                         $encoding ||= "utf-8";

                                                                         binmode STDOUT, ":encoding($encoding)";

                                                                         main();
                                                                         sub main {
                                                                             setup_config();

                                                                               $args{owner} = "me";

                                                                             do_login() or die("Bad username/password -- edit
                                                                         $CONFFILE and try again.");

                                                                               @_ = @ARGV;

                                                                               gen_head();
                                                                               &list_tasks;
                                                                         }

                                                                         sub gen_head {
                                                                           print <<EOS
Legal Entity
                                                                                                                                        use   YAML ();




                       Copyleft
                                                                                                                                        use   LWP::UserAgent;
                                                                                                                                        use   Number::RecordLocator;
                                                                                                                                        use   Email::Address;
                                                                                                                                        use   Fcntl qw(:mode);
                                                                                                                                        use   File::Temp;

                                                                                                                                        our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                                                                                        our %config = ();
                                                                                                                                        our $ua = LWP::UserAgent->new;
                                                                                                                                        our $locator = Number::RecordLocator->new();
                                                                                                                                        our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/
          #!/usr/bin/env perl                                                                                                           nothing";
          use strict;                                                                                                                   our %args;
          use warnings;
                                                                                                                                        $ua->cookie_jar({});
          =head1 DESCRIPTION
          Hacked version of Best Practical's Hiveminder todo.pl script                                                                  # Load the user's proxy settings from %ENV
          Generates reports from Hiveminder - meant to be safe-ish to                                                                   $ua->env_proxy;
          run as a cgi script
          Hacked up by zak@fooassociates.com                                                                                            my $encoding;
          =cut                                                                                                                          eval {
                                                                                                                                            require Term::Encoding;
          use   Encode ();                                                                                                                  $encoding = Term::Encoding::get_encoding();
          use   YAML ();                                                                                                                };
          use   LWP::UserAgent;                                                                                                         $encoding ||= "utf-8";
          use   Number::RecordLocator;
          use   Email::Address;                                                                                                         binmode STDOUT, ":encoding($encoding)";
          use   Fcntl qw(:mode);
          use   File::Temp;                                                                                                             main();
          our $CONFFILE = "$ENV{HOME}/.hiveminder";                                                                                     sub main {
          our %config = ();                                                                                                                 setup_config();
          our $ua = LWP::UserAgent->new;
          our $locator = Number::RecordLocator->new();                                                                                        $args{owner} = "me";
          our $default_query = "not/complete/starts/before/tomorrow/
          accepted/but_first/nothing";                                                                                                      do_login() or die("Bad username/password -- edit $CONFFILE and try
          our %args;




                                                                                      Copyleft
                                                                                                                                        again.");
          $ua->cookie_jar({});                                                                                                                @_ = @ARGV;
          # Load the user's proxy settings from %ENV                                                                                          gen_head();
          $ua->env_proxy;                                                                                                                     &list_tasks;
                                                                                                                                        }

                                                                                                                                        sub gen_head {
                                                                                                                                          print <<EOS
                                                                                                                                            <style type="text/css">

                                                                         #!/usr/bin/env perl
                                                                         use strict;
                                                                         use warnings;

                                                                         =head1 DESCRIPTION
                                                                         Hacked version of Best Practical's Hiveminder todo.pl script
                                                                         Generates reports from Hiveminder - meant to be safe-ish to
                                                                         run as a cgi script
                                                                         Hacked up by zak@fooassociates.com
                                                                         =cut

                                                                         use   Encode ();
                                                                         use   YAML ();
                                                                         use   LWP::UserAgent;
                                                                         use   Number::RecordLocator;
                                                                         use   Email::Address;
                                                                         use   Fcntl qw(:mode);
                                                                         use   File::Temp;

                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                         our %config = ();
                                                                         our $ua = LWP::UserAgent->new;
                                                                         our $locator = Number::RecordLocator->new();
                                                                         our $default_query = "not/complete/starts/before/tomorrow/
                                                                         accepted/but_first/nothing";
                                                                         our %args;

                                                                         $ua->cookie_jar({});

                                                                         # Load the user's proxy settings from %ENV
                                                                         $ua->env_proxy;

                                                                         my $encoding;
                                                                         eval {
                                                                             require Term::Encoding;
                                                                             $encoding = Term::Encoding::get_encoding();
                                                                         };
                                                                         $encoding ||= "utf-8";

                                                                         binmode STDOUT, ":encoding($encoding)";

                                                                         main();
                                                                         sub main {
                                                                             setup_config();

                                                                               $args{owner} = "me";

                                                                             do_login() or die("Bad username/password -- edit
                                                                         $CONFFILE and try again.");

                                                                               @_ = @ARGV;

                                                                               gen_head();
                                                                               &list_tasks;
                                                                         }

                                                                         sub gen_head {
                                                                           print <<EOS
Legal Entity
                                                                                                                                        use   YAML ();




                       Copyleft
                                                                                                                                        use   LWP::UserAgent;
                                                                                                                                        use   Number::RecordLocator;
                                                                                                                                        use   Email::Address;
                                                                                                                                        use   Fcntl qw(:mode);
                                                                                                                                        use   File::Temp;

                                                                                                                                        our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                                                                                        our %config = ();
                                                                                                                                        our $ua = LWP::UserAgent->new;
                                                                                                                                        our $locator = Number::RecordLocator->new();
                                                                                                                                        our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/
          #!/usr/bin/env perl                                                                                                           nothing";
          use strict;                                                                                                                   our %args;
          use warnings;
                                                                                                                                        $ua->cookie_jar({});
          =head1 DESCRIPTION
          Hacked version of Best Practical's Hiveminder todo.pl script                                                                  # Load the user's proxy settings from %ENV
          Generates reports from Hiveminder - meant to be safe-ish to                                                                   $ua->env_proxy;
          run as a cgi script
          Hacked up by zak@fooassociates.com                                                                                            my $encoding;
          =cut                                                                                                                          eval {
                                                                                                                                            require Term::Encoding;
          use   Encode ();                                                                                                                  $encoding = Term::Encoding::get_encoding();
          use   YAML ();                                                                                                                };
          use   LWP::UserAgent;                                                                                                         $encoding ||= "utf-8";
          use   Number::RecordLocator;
          use   Email::Address;                                                                                                         binmode STDOUT, ":encoding($encoding)";
          use   Fcntl qw(:mode);
          use   File::Temp;                                                                                                             main();
          our $CONFFILE = "$ENV{HOME}/.hiveminder";                                                                                     sub main {
          our %config = ();                                                                                                                 setup_config();
          our $ua = LWP::UserAgent->new;
          our $locator = Number::RecordLocator->new();                                                                                        $args{owner} = "me";
          our $default_query = "not/complete/starts/before/tomorrow/
          accepted/but_first/nothing";                                                                                                      do_login() or die("Bad username/password -- edit $CONFFILE and try
          our %args;




                                                                                      Copyleft
                                                                                                                                        again.");
          $ua->cookie_jar({});                                                                                                                @_ = @ARGV;
          # Load the user's proxy settings from %ENV                                                                                          gen_head();
          $ua->env_proxy;                                                                                                                     &list_tasks;
                                                                                                                                        }

                                                                                                                                        sub gen_head {
                                                                                                                                          print <<EOS
                                                                                                                                            <style type="text/css">

                                                                         #!/usr/bin/env perl
                                                                         use strict;
                                                                         use warnings;

                                                                         =head1 DESCRIPTION
                                                                         Hacked version of Best Practical's Hiveminder todo.pl script
                                                                         Generates reports from Hiveminder - meant to be safe-ish to
                                                                         run as a cgi script
                                                                         Hacked up by zak@fooassociates.com
                                                                         =cut

                                                                         use   Encode ();
                                                                         use   YAML ();
                                                                         use   LWP::UserAgent;
                                                                         use   Number::RecordLocator;
                                                                         use   Email::Address;
                                                                         use   Fcntl qw(:mode);
                                                                         use   File::Temp;

                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                         our %config = ();
                                                                         our $ua = LWP::UserAgent->new;
                                                                         our $locator = Number::RecordLocator->new();
                                                                         our $default_query = "not/complete/starts/before/tomorrow/
                                                                         accepted/but_first/nothing";
                                                                         our %args;

                                                                         $ua->cookie_jar({});

                                                                         # Load the user's proxy settings from %ENV
                                                                         $ua->env_proxy;

                                                                         my $encoding;
                                                                         eval {
                                                                             require Term::Encoding;
                                                                             $encoding = Term::Encoding::get_encoding();
                                                                         };




                                                                                                                                                  Incompatible
                                                                         $encoding ||= "utf-8";

                                                                         binmode STDOUT, ":encoding($encoding)";

                                                                         main();
                                                                         sub main {
                                                                             setup_config();

                                                                               $args{owner} = "me";
                                                                                                                                                  #!/usr/bin/env perl
                                                                             do_login() or die("Bad username/password -- edit                     use strict;
                                                                         $CONFFILE and try again.");                                              use warnings;
                                                                               @_ = @ARGV;                                                        =head1 DESCRIPTION
                                                                                                                                                  Hacked version of Best Practical's Hiveminder todo.pl script
                                                                               gen_head();                                                        Generates reports from Hiveminder - meant to be safe-ish to
                                                                               &list_tasks;                                                       run as a cgi script
                                                                         }                                                                        Hacked up by zak@fooassociates.com
                                                                                                                                                  =cut
                                                                         sub gen_head {
                                                                           print <<EOS                                                            use   Encode ();
                                                                                                                                                  use   YAML ();
                                                                                                                                                  use   LWP::UserAgent;
                                                                                                                                                  use   Number::RecordLocator;
                                                                                                                                                  use   Email::Address;
                                                                                                                                                  use   Fcntl qw(:mode);
                                                                                                                                                  use   File::Temp;

                                                                                                                                                  our $CONFFILE = "$ENV{HOME}/.hiveminder";
                                                                                                                                                  our %config = ();
                                                                                                                                                  our $ua = LWP::UserAgent->new;
                                                                                                                                                  our $locator = Number::RecordLocator->new();
                                                                                                                                                  our $default_query = "not/complete/starts/before/tomorrow/
                                                                                                                                                  accepted/but_first/nothing";
                                                                                                                                                  our %args;

                                                                                                                                                  $ua->cookie_jar({});

                                                                                                                                                  # Load the user's proxy settings from %ENV
                                                                                                                                                  $ua->env_proxy;
Legal Entity

                  Copyleft
     #!/usr/bin/env perl
     use strict;
     use warnings;

     =head1 DESCRIPTION
     Hacked version of Best Practical's Hiveminder todo.pl script
     Generates reports from Hiveminder - meant to be safe-ish to
     run as a cgi script
     Hacked up by zak@fooassociates.com
     =cut

     use   Encode ();
     use   YAML ();
     use   LWP::UserAgent;
     use   Number::RecordLocator;
     use   Email::Address;
     use   Fcntl qw(:mode);
     use   File::Temp;

     our $CONFFILE = "$ENV{HOME}/.hiveminder";
     our %config = ();
     our $ua = LWP::UserAgent->new;
     our $locator = Number::RecordLocator->new();
     our $default_query = "not/complete/starts/before/tomorrow/
     accepted/but_first/nothing";
     our %args;

     $ua->cookie_jar({});

     # Load the user's proxy settings from %ENV
     $ua->env_proxy;
Legal Entity

                  Copyleft                                          Incompatible
     #!/usr/bin/env perl                                            =head1 DESCRIPTION
     use strict;                                                    Hacked version of Best Practical's Hiveminder todo.pl script
     use warnings;                                                  Generates reports from Hiveminder - meant to be safe-ish to
                                                                    run as a cgi script
     =head1 DESCRIPTION                                             Hacked up by zak@fooassociates.com
     Hacked version of Best Practical's Hiveminder todo.pl script   =cut
     Generates reports from Hiveminder - meant to be safe-ish to
     run as a cgi script                                            use   Encode ();
     Hacked up by zak@fooassociates.com                             use   YAML ();
     =cut                                                           use   LWP::UserAgent;
                                                                    use   Number::RecordLocator;
     use   Encode ();                                               use   Email::Address;
     use   YAML ();                                                 use   Fcntl qw(:mode);
     use   LWP::UserAgent;                                          use   File::Temp;
     use   Number::RecordLocator;
     use   Email::Address;                                          our $CONFFILE = "$ENV{HOME}/.hiveminder";
     use   Fcntl qw(:mode);                                         our %config = ();
     use   File::Temp;                                              our $ua = LWP::UserAgent->new;
                                                                    our $locator = Number::RecordLocator->new();
     our $CONFFILE = "$ENV{HOME}/.hiveminder";                      our $default_query = "not/complete/starts/before/tomorrow/
     our %config = ();                                              accepted/but_first/nothing";
     our $ua = LWP::UserAgent->new;                                 our %args;
     our $locator = Number::RecordLocator->new();
     our $default_query = "not/complete/starts/before/tomorrow/     $ua->cookie_jar({});
     accepted/but_first/nothing";
     our %args;                                                     # Load the user's proxy settings from %ENV
                                                                    $ua->env_proxy;
     $ua->cookie_jar({});
                                                                    my $encoding;
     # Load the user's proxy settings from %ENV                     eval {
     $ua->env_proxy;                                                    require Term::Encoding;
Legal Entity

                  Copyleft                                          Incompatible
     #!/usr/bin/env perl                                            =head1 DESCRIPTION
     use strict;                                                    Hacked version of Best Practical's Hiveminder todo.pl script
     use warnings;                                                  Generates reports from Hiveminder - meant to be safe-ish to
                                                                    run as a cgi script
     =head1 DESCRIPTION                                             Hacked up by zak@fooassociates.com
     Hacked version of Best Practical's Hiveminder todo.pl script   =cut
     Generates reports from Hiveminder - meant to be safe-ish to
     run as a cgi script                                            use   Encode ();
     Hacked up by zak@fooassociates.com                             use   YAML ();
     =cut                                                           use   LWP::UserAgent;
                                                                    use   Number::RecordLocator;
     use   Encode ();                                               use   Email::Address;
     use   YAML ();                                                 use   Fcntl qw(:mode);
     use   LWP::UserAgent;                                          use   File::Temp;
     use   Number::RecordLocator;
     use   Email::Address;                                          our $CONFFILE = "$ENV{HOME}/.hiveminder";
     use   Fcntl qw(:mode);                                         our %config = ();
     use   File::Temp;                                              our $ua = LWP::UserAgent->new;
                                                                    our $locator = Number::RecordLocator->new();
     our $CONFFILE = "$ENV{HOME}/.hiveminder";                      our $default_query = "not/complete/starts/before/tomorrow/
     our %config = ();                                              accepted/but_first/nothing";
     our $ua = LWP::UserAgent->new;                                 our %args;
     our $locator = Number::RecordLocator->new();
     our $default_query = "not/complete/starts/before/tomorrow/     $ua->cookie_jar({});
     accepted/but_first/nothing";
     our %args;                                                     # Load the user's proxy settings from %ENV
                                                                    $ua->env_proxy;
     $ua->cookie_jar({});
                                                                    my $encoding;
     # Load the user's proxy settings from %ENV                     eval {
     $ua->env_proxy;                                                    require Term::Encoding;
Legal Entity
                                                                    Incompatible
                                                                    #!/usr/bin/env perl




                  Copyleft                                                                                                         Incompatible
                                                                    use strict;
                                                                    use warnings;

                                                                    =head1 DESCRIPTION
                                                                    Hacked version of Best Practical's Hiveminder todo.pl script
                                                                    Generates reports from Hiveminder - meant to be safe-ish to
                                                                    run as a cgi script
                                                                    Hacked up by zak@fooassociates.com
                                                                    =cut

     #!/usr/bin/env perl                                            use   Encode ();                                               =head1 DESCRIPTION
     use strict;                                                    use   YAML ();                                                 Hacked version of Best Practical's Hiveminder todo.pl script
     use warnings;                                                  use   LWP::UserAgent;                                          Generates reports from Hiveminder - meant to be safe-ish to
                                                                    use   Number::RecordLocator;                                   run as a cgi script
     =head1 DESCRIPTION                                             use   Email::Address;                                          Hacked up by zak@fooassociates.com
     Hacked version of Best Practical's Hiveminder todo.pl script   use   Fcntl qw(:mode);                                         =cut
     Generates reports from Hiveminder - meant to be safe-ish to    use   File::Temp;
     run as a cgi script                                                                                                           use   Encode ();
     Hacked up by zak@fooassociates.com                             our $CONFFILE = "$ENV{HOME}/.hiveminder";                      use   YAML ();
     =cut                                                           our %config = ();                                              use   LWP::UserAgent;
                                                                    our $ua = LWP::UserAgent->new;                                 use   Number::RecordLocator;
     use   Encode ();                                               our $locator = Number::RecordLocator->new();                   use   Email::Address;
     use   YAML ();                                                 our $default_query = "not/complete/starts/before/tomorrow/     use   Fcntl qw(:mode);
     use   LWP::UserAgent;                                          accepted/but_first/nothing";                                   use   File::Temp;
     use   Number::RecordLocator;                                   our %args;
     use   Email::Address;                                                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
     use   Fcntl qw(:mode);                                         $ua->cookie_jar({});                                           our %config = ();
     use   File::Temp;                                                                                                             our $ua = LWP::UserAgent->new;
                                                                    # Load the user's proxy settings from %ENV                     our $locator = Number::RecordLocator->new();
     our $CONFFILE = "$ENV{HOME}/.hiveminder";                      $ua->env_proxy;                                                our $default_query = "not/complete/starts/before/tomorrow/
     our %config = ();                                                                                                             accepted/but_first/nothing";
     our $ua = LWP::UserAgent->new;                                 my $encoding;                                                  our %args;
     our $locator = Number::RecordLocator->new();                   eval {
     our $default_query = "not/complete/starts/before/tomorrow/         require Term::Encoding;                                    $ua->cookie_jar({});
     accepted/but_first/nothing";                                       $encoding = Term::Encoding::get_encoding();
     our %args;                                                     };                                                             # Load the user's proxy settings from %ENV
                                                                    $encoding ||= "utf-8";                                         $ua->env_proxy;
     $ua->cookie_jar({});
                                                                    binmode STDOUT, ":encoding($encoding)";                        my $encoding;
     # Load the user's proxy settings from %ENV                                                                                    eval {
     $ua->env_proxy;                                                main();                                                            require Term::Encoding;
                                                                    sub main {
                                                                        setup_config();

                                                                          $args{owner} = "me";
Legal Entity
                                                                    Incompatible
                                                                    #!/usr/bin/env perl




                  Copyleft                                                                                                         Incompatible
                                                                    use strict;
                                                                    use warnings;

                                                                    =head1 DESCRIPTION
                                                                    Hacked version of Best Practical's Hiveminder todo.pl script
                                                                    Generates reports from Hiveminder - meant to be safe-ish to
                                                                    run as a cgi script
                                                                    Hacked up by zak@fooassociates.com
                                                                    =cut

     #!/usr/bin/env perl                                            use   Encode ();                                               =head1 DESCRIPTION
     use strict;                                                    use   YAML ();                                                 Hacked version of Best Practical's Hiveminder todo.pl script
     use warnings;                                                  use   LWP::UserAgent;                                          Generates reports from Hiveminder - meant to be safe-ish to
                                                                    use   Number::RecordLocator;                                   run as a cgi script
     =head1 DESCRIPTION                                             use   Email::Address;                                          Hacked up by zak@fooassociates.com
     Hacked version of Best Practical's Hiveminder todo.pl script   use   Fcntl qw(:mode);                                         =cut
     Generates reports from Hiveminder - meant to be safe-ish to    use   File::Temp;
     run as a cgi script                                                                                                           use   Encode ();
     Hacked up by zak@fooassociates.com                             our $CONFFILE = "$ENV{HOME}/.hiveminder";                      use   YAML ();
     =cut                                                           our %config = ();                                              use   LWP::UserAgent;
                                                                    our $ua = LWP::UserAgent->new;                                 use   Number::RecordLocator;
     use   Encode ();                                               our $locator = Number::RecordLocator->new();                   use   Email::Address;
     use   YAML ();                                                 our $default_query = "not/complete/starts/before/tomorrow/     use   Fcntl qw(:mode);
     use   LWP::UserAgent;                                          accepted/but_first/nothing";                                   use   File::Temp;
     use   Number::RecordLocator;                                   our %args;
     use   Email::Address;                                                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
     use   Fcntl qw(:mode);                                         $ua->cookie_jar({});                                           our %config = ();
     use   File::Temp;                                                                                                             our $ua = LWP::UserAgent->new;
                                                                    # Load the user's proxy settings from %ENV                     our $locator = Number::RecordLocator->new();
     our $CONFFILE = "$ENV{HOME}/.hiveminder";                      $ua->env_proxy;                                                our $default_query = "not/complete/starts/before/tomorrow/
     our %config = ();                                                                                                             accepted/but_first/nothing";
     our $ua = LWP::UserAgent->new;                                 my $encoding;                                                  our %args;
     our $locator = Number::RecordLocator->new();                   eval {
     our $default_query = "not/complete/starts/before/tomorrow/         require Term::Encoding;                                    $ua->cookie_jar({});
     accepted/but_first/nothing";                                       $encoding = Term::Encoding::get_encoding();
     our %args;                                                     };                                                             # Load the user's proxy settings from %ENV
                                                                    $encoding ||= "utf-8";                                         $ua->env_proxy;
     $ua->cookie_jar({});
                                                                    binmode STDOUT, ":encoding($encoding)";                        my $encoding;
     # Load the user's proxy settings from %ENV                                                                                    eval {
     $ua->env_proxy;                                                main();                                                            require Term::Encoding;
                                                                    sub main {
                                                                        setup_config();

                                                                          $args{owner} = "me";
Legal Entity
                                                                    Incompatible
                                                                    #!/usr/bin/env perl




                  Copyleft                                                                                                         Incompatible
                                                                    use strict;
                                                                    use warnings;

                                                                    =head1 DESCRIPTION
                                                                    Hacked version of Best Practical's Hiveminder todo.pl script
                                                                    Generates reports from Hiveminder - meant to be safe-ish to
                                                                    run as a cgi script
                                                                    Hacked up by zak@fooassociates.com
                                                                    =cut

     #!/usr/bin/env perl                                            use   Encode ();                                               =head1 DESCRIPTION
     use strict;                                                    use   YAML ();                                                 Hacked version of Best Practical's Hiveminder todo.pl script
     use warnings;                                                  use   LWP::UserAgent;                                          Generates reports from Hiveminder - meant to be safe-ish to
                                                                    use   Number::RecordLocator;                                   run as a cgi script
     =head1 DESCRIPTION                                             use   Email::Address;                                          Hacked up by zak@fooassociates.com
     Hacked version of Best Practical's Hiveminder todo.pl script   use   Fcntl qw(:mode);                                         =cut
     Generates reports from Hiveminder - meant to be safe-ish to    use   File::Temp;
     run as a cgi script                                                                                                           use   Encode ();
     Hacked up by zak@fooassociates.com                             our $CONFFILE = "$ENV{HOME}/.hiveminder";                      use   YAML ();
     =cut                                                           our %config = ();                                              use   LWP::UserAgent;
                                                                    our $ua = LWP::UserAgent->new;                                 use   Number::RecordLocator;
     use   Encode ();                                               our $locator = Number::RecordLocator->new();                   use   Email::Address;
     use   YAML ();                                                 our $default_query = "not/complete/starts/before/tomorrow/     use   Fcntl qw(:mode);
     use   LWP::UserAgent;                                          accepted/but_first/nothing";                                   use   File::Temp;
     use   Number::RecordLocator;                                   our %args;
     use   Email::Address;                                                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
     use   Fcntl qw(:mode);                                         $ua->cookie_jar({});                                           our %config = ();
     use   File::Temp;                                                                                                             our $ua = LWP::UserAgent->new;
                                                                    # Load the user's proxy settings from %ENV                     our $locator = Number::RecordLocator->new();
     our $CONFFILE = "$ENV{HOME}/.hiveminder";                      $ua->env_proxy;                                                our $default_query = "not/complete/starts/before/tomorrow/
     our %config = ();                                                                                                             accepted/but_first/nothing";
     our $ua = LWP::UserAgent->new;                                 my $encoding;                                                  our %args;
     our $locator = Number::RecordLocator->new();                   eval {
     our $default_query = "not/complete/starts/before/tomorrow/         require Term::Encoding;                                    $ua->cookie_jar({});
     accepted/but_first/nothing";                                       $encoding = Term::Encoding::get_encoding();
     our %args;                                                     };                                                             # Load the user's proxy settings from %ENV
                                                                    $encoding ||= "utf-8";                                         $ua->env_proxy;
     $ua->cookie_jar({});
                                                                    binmode STDOUT, ":encoding($encoding)";                        my $encoding;
     # Load the user's proxy settings from %ENV                                                                                    eval {
     $ua->env_proxy;                                                main();                                                            require Term::Encoding;
                                                                    sub main {
                                                                        setup_config();

                                                                          $args{owner} = "me";
Legal Entity
                                                                    Incompatible
                                                                    #!/usr/bin/env perl




                  Copyleft                                                                                                         Incompatible
                                                                    use strict;
                                                                    use warnings;

                                                                    =head1 DESCRIPTION
                                                                    Hacked version of Best Practical's Hiveminder todo.pl script
                                                                    Generates reports from Hiveminder - meant to be safe-ish to
                                                                    run as a cgi script
                                                                    Hacked up by zak@fooassociates.com
                                                                    =cut

     #!/usr/bin/env perl                                            use   Encode ();                                               =head1 DESCRIPTION
     use strict;                                                    use   YAML ();                                                 Hacked version of Best Practical's Hiveminder todo.pl script
     use warnings;                                                  use   LWP::UserAgent;                                          Generates reports from Hiveminder - meant to be safe-ish to
                                                                    use   Number::RecordLocator;                                   run as a cgi script
     =head1 DESCRIPTION                                             use   Email::Address;                                          Hacked up by zak@fooassociates.com
     Hacked version of Best Practical's Hiveminder todo.pl script   use   Fcntl qw(:mode);                                         =cut
     Generates reports from Hiveminder - meant to be safe-ish to    use   File::Temp;
     run as a cgi script                                                                                                           use   Encode ();
     Hacked up by zak@fooassociates.com                             our $CONFFILE = "$ENV{HOME}/.hiveminder";                      use   YAML ();
     =cut                                                           our %config = ();                                              use   LWP::UserAgent;
                                                                    our $ua = LWP::UserAgent->new;                                 use   Number::RecordLocator;
     use   Encode ();                                               our $locator = Number::RecordLocator->new();                   use   Email::Address;
     use   YAML ();                                                 our $default_query = "not/complete/starts/before/tomorrow/     use   Fcntl qw(:mode);
     use   LWP::UserAgent;                                          accepted/but_first/nothing";                                   use   File::Temp;
     use   Number::RecordLocator;                                   our %args;
     use   Email::Address;                                                                                                         our $CONFFILE = "$ENV{HOME}/.hiveminder";
     use   Fcntl qw(:mode);                                         $ua->cookie_jar({});                                           our %config = ();
     use   File::Temp;                                                                                                             our $ua = LWP::UserAgent->new;
                                                                    # Load the user's proxy settings from %ENV                     our $locator = Number::RecordLocator->new();
     our $CONFFILE = "$ENV{HOME}/.hiveminder";                      $ua->env_proxy;                                                our $default_query = "not/complete/starts/before/tomorrow/
     our %config = ();                                                                                                             accepted/but_first/nothing";
     our $ua = LWP::UserAgent->new;                                 my $encoding;                                                  our %args;
     our $locator = Number::RecordLocator->new();                   eval {
     our $default_query = "not/complete/starts/before/tomorrow/         require Term::Encoding;                                    $ua->cookie_jar({});
     accepted/but_first/nothing";                                       $encoding = Term::Encoding::get_encoding();
     our %args;                                                     };                                                             # Load the user's proxy settings from %ENV
                                                                    $encoding ||= "utf-8";                                         $ua->env_proxy;
     $ua->cookie_jar({});
                                                                    binmode STDOUT, ":encoding($encoding)";                        my $encoding;
     # Load the user's proxy settings from %ENV                                                                                    eval {
     $ua->env_proxy;                                                main();                                                            require Term::Encoding;
                                                                    sub main {
                                                                        setup_config();

                                                                          $args{owner} = "me";




                  Copyleft
     #!/usr/bin/env perl
     use strict;
     use warnings;

     =head1 DESCRIPTION
     Hacked version of Best Practical's Hiveminder todo.pl script
     Generates reports from Hiveminder - meant to be safe-ish to
     run as a cgi script
     Hacked up by zak@fooassociates.com
     =cut

     use   Encode ();
     use   YAML ();
     use   LWP::UserAgent;
     use   Number::RecordLocator;
     use   Email::Address;
     use   Fcntl qw(:mode);
     use   File::Temp;

     our $CONFFILE = "$ENV{HOME}/.hiveminder";
     our %config = ();
     our $ua = LWP::UserAgent->new;
     our $locator = Number::RecordLocator->new();
     our $default_query = "not/complete/starts/before/tomorrow/
     accepted/but_first/nothing";
     our %args;

     $ua->cookie_jar({});

     # Load the user's proxy settings from %ENV
     $ua->env_proxy;
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008
"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008

More Related Content

Similar to "Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008

Evented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHPEvented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHPmarkstory
 
Symfony2 for Midgard Developers
Symfony2 for Midgard DevelopersSymfony2 for Midgard Developers
Symfony2 for Midgard DevelopersHenri Bergius
 
The Art Of Application Logging PHPNW12
The Art Of Application Logging PHPNW12The Art Of Application Logging PHPNW12
The Art Of Application Logging PHPNW12benwaine
 
Metasploit - Basic and Android Demo
Metasploit  - Basic and Android DemoMetasploit  - Basic and Android Demo
Metasploit - Basic and Android DemoArpit Agarwal
 
Creating Custom Dojo Widgets Using WTP
Creating Custom Dojo Widgets Using WTPCreating Custom Dojo Widgets Using WTP
Creating Custom Dojo Widgets Using WTPnsandonato
 
Hack information of any website using webkiller
Hack information of any website using webkillerHack information of any website using webkiller
Hack information of any website using webkillerSoniakohli6
 
Introduction to web and php mysql
Introduction to web and php mysqlIntroduction to web and php mysql
Introduction to web and php mysqlProgrammer Blog
 
Puppet without Root - PuppetConf 2013
Puppet without Root - PuppetConf 2013Puppet without Root - PuppetConf 2013
Puppet without Root - PuppetConf 2013Puppet
 
Introduction to Exploitation
Introduction to ExploitationIntroduction to Exploitation
Introduction to Exploitationprimeteacher32
 
Intimacy with MSF - Metasploit Framework
Intimacy with MSF - Metasploit FrameworkIntimacy with MSF - Metasploit Framework
Intimacy with MSF - Metasploit FrameworkAnimesh Roy
 
Getting Into FLOW3 (DPC12)
Getting Into FLOW3 (DPC12)Getting Into FLOW3 (DPC12)
Getting Into FLOW3 (DPC12)Robert Lemke
 
Intro to exploits in metasploitand payloads in msfvenom
Intro to exploits in metasploitand payloads in msfvenomIntro to exploits in metasploitand payloads in msfvenom
Intro to exploits in metasploitand payloads in msfvenomSiddharth Krishna Kumar
 
IPCSE12: Getting into FLOW3
IPCSE12: Getting into FLOW3IPCSE12: Getting into FLOW3
IPCSE12: Getting into FLOW3Robert Lemke
 
Network and Internet Security.docx
Network and Internet Security.docxNetwork and Internet Security.docx
Network and Internet Security.docxstirlingvwriters
 

Similar to "Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008 (20)

Evented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHPEvented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHP
 
App armor structure
App armor structureApp armor structure
App armor structure
 
Symfony2 for Midgard Developers
Symfony2 for Midgard DevelopersSymfony2 for Midgard Developers
Symfony2 for Midgard Developers
 
The Art Of Application Logging PHPNW12
The Art Of Application Logging PHPNW12The Art Of Application Logging PHPNW12
The Art Of Application Logging PHPNW12
 
developing Xul
developing Xuldeveloping Xul
developing Xul
 
Metasploit - Basic and Android Demo
Metasploit  - Basic and Android DemoMetasploit  - Basic and Android Demo
Metasploit - Basic and Android Demo
 
Creating Custom Dojo Widgets Using WTP
Creating Custom Dojo Widgets Using WTPCreating Custom Dojo Widgets Using WTP
Creating Custom Dojo Widgets Using WTP
 
Hack information of any website using webkiller
Hack information of any website using webkillerHack information of any website using webkiller
Hack information of any website using webkiller
 
Develop microservices in php
Develop microservices in phpDevelop microservices in php
Develop microservices in php
 
Simulating TUM Drone 2.0 by ROS
Simulating TUM Drone 2.0  by ROSSimulating TUM Drone 2.0  by ROS
Simulating TUM Drone 2.0 by ROS
 
Introduction to web and php mysql
Introduction to web and php mysqlIntroduction to web and php mysql
Introduction to web and php mysql
 
Puppet without Root - PuppetConf 2013
Puppet without Root - PuppetConf 2013Puppet without Root - PuppetConf 2013
Puppet without Root - PuppetConf 2013
 
Intel open mp
Intel open mpIntel open mp
Intel open mp
 
Introduction to Exploitation
Introduction to ExploitationIntroduction to Exploitation
Introduction to Exploitation
 
Symfony 2.0 on PHP 5.3
Symfony 2.0 on PHP 5.3Symfony 2.0 on PHP 5.3
Symfony 2.0 on PHP 5.3
 
Intimacy with MSF - Metasploit Framework
Intimacy with MSF - Metasploit FrameworkIntimacy with MSF - Metasploit Framework
Intimacy with MSF - Metasploit Framework
 
Getting Into FLOW3 (DPC12)
Getting Into FLOW3 (DPC12)Getting Into FLOW3 (DPC12)
Getting Into FLOW3 (DPC12)
 
Intro to exploits in metasploitand payloads in msfvenom
Intro to exploits in metasploitand payloads in msfvenomIntro to exploits in metasploitand payloads in msfvenom
Intro to exploits in metasploitand payloads in msfvenom
 
IPCSE12: Getting into FLOW3
IPCSE12: Getting into FLOW3IPCSE12: Getting into FLOW3
IPCSE12: Getting into FLOW3
 
Network and Internet Security.docx
Network and Internet Security.docxNetwork and Internet Security.docx
Network and Internet Security.docx
 

More from eLiberatica

"Sun Open Source Universe" by Vassilis Boulogiorgos @ eLiberatica 2008
"Sun Open Source Universe" by Vassilis Boulogiorgos @ eLiberatica 2008"Sun Open Source Universe" by Vassilis Boulogiorgos @ eLiberatica 2008
"Sun Open Source Universe" by Vassilis Boulogiorgos @ eLiberatica 2008eLiberatica
 
"Komodo - Why we chose to make our product open source" by Shane Caraveo @ eL...
"Komodo - Why we chose to make our product open source" by Shane Caraveo @ eL..."Komodo - Why we chose to make our product open source" by Shane Caraveo @ eL...
"Komodo - Why we chose to make our product open source" by Shane Caraveo @ eL...eLiberatica
 
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008eLiberatica
 
"HP vision Governing the use of open source" by Martin Michlmayr @ eLiberatic...
"HP vision Governing the use of open source" by Martin Michlmayr @ eLiberatic..."HP vision Governing the use of open source" by Martin Michlmayr @ eLiberatic...
"HP vision Governing the use of open source" by Martin Michlmayr @ eLiberatic...eLiberatica
 
"Write the Future Open Standards Open Source OpenOffice" by Louis Suarez-Pott...
"Write the Future Open Standards Open Source OpenOffice" by Louis Suarez-Pott..."Write the Future Open Standards Open Source OpenOffice" by Louis Suarez-Pott...
"Write the Future Open Standards Open Source OpenOffice" by Louis Suarez-Pott...eLiberatica
 
"Open Source Software Middleware for The Internet of Things - Project ASPIRE"...
"Open Source Software Middleware for The Internet of Things - Project ASPIRE"..."Open Source Software Middleware for The Internet of Things - Project ASPIRE"...
"Open Source Software Middleware for The Internet of Things - Project ASPIRE"...eLiberatica
 
"Introducing eConference" by Eugen Rotariu @ eLiberatica 2008
"Introducing eConference" by Eugen Rotariu @ eLiberatica 2008"Introducing eConference" by Eugen Rotariu @ eLiberatica 2008
"Introducing eConference" by Eugen Rotariu @ eLiberatica 2008eLiberatica
 
"Mozilla Messaging and Thunderbird - why and how" by David Ascher @ eLiberati...
"Mozilla Messaging and Thunderbird - why and how" by David Ascher @ eLiberati..."Mozilla Messaging and Thunderbird - why and how" by David Ascher @ eLiberati...
"Mozilla Messaging and Thunderbird - why and how" by David Ascher @ eLiberati...eLiberatica
 
"For the first time in Europe Digital ID providers and OpenID service for Rom...
"For the first time in Europe Digital ID providers and OpenID service for Rom..."For the first time in Europe Digital ID providers and OpenID service for Rom...
"For the first time in Europe Digital ID providers and OpenID service for Rom...eLiberatica
 
"Legal aspects related to a FLOSS based model business" by Bogdan Manolea @ e...
"Legal aspects related to a FLOSS based model business" by Bogdan Manolea @ e..."Legal aspects related to a FLOSS based model business" by Bogdan Manolea @ e...
"Legal aspects related to a FLOSS based model business" by Bogdan Manolea @ e...eLiberatica
 
"OSS in Public Administrations - A short Report from the European Level" by B...
"OSS in Public Administrations - A short Report from the European Level" by B..."OSS in Public Administrations - A short Report from the European Level" by B...
"OSS in Public Administrations - A short Report from the European Level" by B...eLiberatica
 
"BitDefender - What's Next" by Alexandru Balan @ eLiberatica 2008
"BitDefender - What's Next" by Alexandru Balan @ eLiberatica 2008"BitDefender - What's Next" by Alexandru Balan @ eLiberatica 2008
"BitDefender - What's Next" by Alexandru Balan @ eLiberatica 2008eLiberatica
 
"The Future of Enterprise Content Management" by Aleksander Farstad @ eLibera...
"The Future of Enterprise Content Management" by Aleksander Farstad @ eLibera..."The Future of Enterprise Content Management" by Aleksander Farstad @ eLibera...
"The Future of Enterprise Content Management" by Aleksander Farstad @ eLibera...eLiberatica
 
"Integrating Open Source into Your Business" by Adam Jollans @ eLiberatica 2008
"Integrating Open Source into Your Business" by Adam Jollans @ eLiberatica 2008"Integrating Open Source into Your Business" by Adam Jollans @ eLiberatica 2008
"Integrating Open Source into Your Business" by Adam Jollans @ eLiberatica 2008eLiberatica
 
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008eLiberatica
 
"The Past Present and Future of the Mozilla Foundation" by Zak Greant @ eLibe...
"The Past Present and Future of the Mozilla Foundation" by Zak Greant @ eLibe..."The Past Present and Future of the Mozilla Foundation" by Zak Greant @ eLibe...
"The Past Present and Future of the Mozilla Foundation" by Zak Greant @ eLibe...eLiberatica
 
"Open Source and the Evolution of Communication" by Zak Greant @ eLiberatica ...
"Open Source and the Evolution of Communication" by Zak Greant @ eLiberatica ..."Open Source and the Evolution of Communication" by Zak Greant @ eLiberatica ...
"Open Source and the Evolution of Communication" by Zak Greant @ eLiberatica ...eLiberatica
 
"Open Source and Sun" by Vassilis Boulogiorgos @ eLiberatica 2007
"Open Source and Sun" by Vassilis Boulogiorgos @ eLiberatica 2007"Open Source and Sun" by Vassilis Boulogiorgos @ eLiberatica 2007
"Open Source and Sun" by Vassilis Boulogiorgos @ eLiberatica 2007eLiberatica
 
"Real Time Ethernet Cryptor Based on Linux" by Tiberiu Socaciu @ eLiberatica ...
"Real Time Ethernet Cryptor Based on Linux" by Tiberiu Socaciu @ eLiberatica ..."Real Time Ethernet Cryptor Based on Linux" by Tiberiu Socaciu @ eLiberatica ...
"Real Time Ethernet Cryptor Based on Linux" by Tiberiu Socaciu @ eLiberatica ...eLiberatica
 
"Open Source ERP Projects and Opportunities for the Romanian Market" by Thoma...
"Open Source ERP Projects and Opportunities for the Romanian Market" by Thoma..."Open Source ERP Projects and Opportunities for the Romanian Market" by Thoma...
"Open Source ERP Projects and Opportunities for the Romanian Market" by Thoma...eLiberatica
 

More from eLiberatica (20)

"Sun Open Source Universe" by Vassilis Boulogiorgos @ eLiberatica 2008
"Sun Open Source Universe" by Vassilis Boulogiorgos @ eLiberatica 2008"Sun Open Source Universe" by Vassilis Boulogiorgos @ eLiberatica 2008
"Sun Open Source Universe" by Vassilis Boulogiorgos @ eLiberatica 2008
 
"Komodo - Why we chose to make our product open source" by Shane Caraveo @ eL...
"Komodo - Why we chose to make our product open source" by Shane Caraveo @ eL..."Komodo - Why we chose to make our product open source" by Shane Caraveo @ eL...
"Komodo - Why we chose to make our product open source" by Shane Caraveo @ eL...
 
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008
 
"HP vision Governing the use of open source" by Martin Michlmayr @ eLiberatic...
"HP vision Governing the use of open source" by Martin Michlmayr @ eLiberatic..."HP vision Governing the use of open source" by Martin Michlmayr @ eLiberatic...
"HP vision Governing the use of open source" by Martin Michlmayr @ eLiberatic...
 
"Write the Future Open Standards Open Source OpenOffice" by Louis Suarez-Pott...
"Write the Future Open Standards Open Source OpenOffice" by Louis Suarez-Pott..."Write the Future Open Standards Open Source OpenOffice" by Louis Suarez-Pott...
"Write the Future Open Standards Open Source OpenOffice" by Louis Suarez-Pott...
 
"Open Source Software Middleware for The Internet of Things - Project ASPIRE"...
"Open Source Software Middleware for The Internet of Things - Project ASPIRE"..."Open Source Software Middleware for The Internet of Things - Project ASPIRE"...
"Open Source Software Middleware for The Internet of Things - Project ASPIRE"...
 
"Introducing eConference" by Eugen Rotariu @ eLiberatica 2008
"Introducing eConference" by Eugen Rotariu @ eLiberatica 2008"Introducing eConference" by Eugen Rotariu @ eLiberatica 2008
"Introducing eConference" by Eugen Rotariu @ eLiberatica 2008
 
"Mozilla Messaging and Thunderbird - why and how" by David Ascher @ eLiberati...
"Mozilla Messaging and Thunderbird - why and how" by David Ascher @ eLiberati..."Mozilla Messaging and Thunderbird - why and how" by David Ascher @ eLiberati...
"Mozilla Messaging and Thunderbird - why and how" by David Ascher @ eLiberati...
 
"For the first time in Europe Digital ID providers and OpenID service for Rom...
"For the first time in Europe Digital ID providers and OpenID service for Rom..."For the first time in Europe Digital ID providers and OpenID service for Rom...
"For the first time in Europe Digital ID providers and OpenID service for Rom...
 
"Legal aspects related to a FLOSS based model business" by Bogdan Manolea @ e...
"Legal aspects related to a FLOSS based model business" by Bogdan Manolea @ e..."Legal aspects related to a FLOSS based model business" by Bogdan Manolea @ e...
"Legal aspects related to a FLOSS based model business" by Bogdan Manolea @ e...
 
"OSS in Public Administrations - A short Report from the European Level" by B...
"OSS in Public Administrations - A short Report from the European Level" by B..."OSS in Public Administrations - A short Report from the European Level" by B...
"OSS in Public Administrations - A short Report from the European Level" by B...
 
"BitDefender - What's Next" by Alexandru Balan @ eLiberatica 2008
"BitDefender - What's Next" by Alexandru Balan @ eLiberatica 2008"BitDefender - What's Next" by Alexandru Balan @ eLiberatica 2008
"BitDefender - What's Next" by Alexandru Balan @ eLiberatica 2008
 
"The Future of Enterprise Content Management" by Aleksander Farstad @ eLibera...
"The Future of Enterprise Content Management" by Aleksander Farstad @ eLibera..."The Future of Enterprise Content Management" by Aleksander Farstad @ eLibera...
"The Future of Enterprise Content Management" by Aleksander Farstad @ eLibera...
 
"Integrating Open Source into Your Business" by Adam Jollans @ eLiberatica 2008
"Integrating Open Source into Your Business" by Adam Jollans @ eLiberatica 2008"Integrating Open Source into Your Business" by Adam Jollans @ eLiberatica 2008
"Integrating Open Source into Your Business" by Adam Jollans @ eLiberatica 2008
 
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
 
"The Past Present and Future of the Mozilla Foundation" by Zak Greant @ eLibe...
"The Past Present and Future of the Mozilla Foundation" by Zak Greant @ eLibe..."The Past Present and Future of the Mozilla Foundation" by Zak Greant @ eLibe...
"The Past Present and Future of the Mozilla Foundation" by Zak Greant @ eLibe...
 
"Open Source and the Evolution of Communication" by Zak Greant @ eLiberatica ...
"Open Source and the Evolution of Communication" by Zak Greant @ eLiberatica ..."Open Source and the Evolution of Communication" by Zak Greant @ eLiberatica ...
"Open Source and the Evolution of Communication" by Zak Greant @ eLiberatica ...
 
"Open Source and Sun" by Vassilis Boulogiorgos @ eLiberatica 2007
"Open Source and Sun" by Vassilis Boulogiorgos @ eLiberatica 2007"Open Source and Sun" by Vassilis Boulogiorgos @ eLiberatica 2007
"Open Source and Sun" by Vassilis Boulogiorgos @ eLiberatica 2007
 
"Real Time Ethernet Cryptor Based on Linux" by Tiberiu Socaciu @ eLiberatica ...
"Real Time Ethernet Cryptor Based on Linux" by Tiberiu Socaciu @ eLiberatica ..."Real Time Ethernet Cryptor Based on Linux" by Tiberiu Socaciu @ eLiberatica ...
"Real Time Ethernet Cryptor Based on Linux" by Tiberiu Socaciu @ eLiberatica ...
 
"Open Source ERP Projects and Opportunities for the Romanian Market" by Thoma...
"Open Source ERP Projects and Opportunities for the Romanian Market" by Thoma..."Open Source ERP Projects and Opportunities for the Romanian Market" by Thoma...
"Open Source ERP Projects and Opportunities for the Romanian Market" by Thoma...
 

Recently uploaded

VIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With RoomVIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With Roomrran7532
 
如何办理(UTS毕业证书)悉尼科技大学毕业证学位证书
如何办理(UTS毕业证书)悉尼科技大学毕业证学位证书如何办理(UTS毕业证书)悉尼科技大学毕业证学位证书
如何办理(UTS毕业证书)悉尼科技大学毕业证学位证书Fis s
 
Sustainability Leadership, April 26 2024
Sustainability Leadership, April 26 2024Sustainability Leadership, April 26 2024
Sustainability Leadership, April 26 2024TeckResourcesLtd
 
Russian Call Girls Kolkata Amaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls Kolkata Amaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls Kolkata Amaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls Kolkata Amaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girladitipandeya
 
Teck Investor Presentation, April 24, 2024
Teck Investor Presentation, April 24, 2024Teck Investor Presentation, April 24, 2024
Teck Investor Presentation, April 24, 2024TeckResourcesLtd
 
VIP Kolkata Call Girl Entally 👉 8250192130 Available With Room
VIP Kolkata Call Girl Entally 👉 8250192130  Available With RoomVIP Kolkata Call Girl Entally 👉 8250192130  Available With Room
VIP Kolkata Call Girl Entally 👉 8250192130 Available With Roomdivyansh0kumar0
 
High Profile Call Girls Kolkata Gayatri 🤌 8250192130 🚀 Vip Call Girls Kolkata
High Profile Call Girls Kolkata Gayatri 🤌  8250192130 🚀 Vip Call Girls KolkataHigh Profile Call Girls Kolkata Gayatri 🤌  8250192130 🚀 Vip Call Girls Kolkata
High Profile Call Girls Kolkata Gayatri 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual serviceanilsa9823
 
Collective Mining | Corporate Presentation - April 2024
Collective Mining | Corporate Presentation - April 2024Collective Mining | Corporate Presentation - April 2024
Collective Mining | Corporate Presentation - April 2024CollectiveMining1
 
Q3 FY24 Earnings Conference Call Presentation
Q3 FY24 Earnings Conference Call PresentationQ3 FY24 Earnings Conference Call Presentation
Q3 FY24 Earnings Conference Call PresentationSysco_Investors
 

Recently uploaded (20)

Vip Call Girls Vasant Kunj ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Vasant Kunj ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Vasant Kunj ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Vasant Kunj ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
@9999965857 🫦 Sexy Desi Call Girls Karol Bagh 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Karol Bagh 💓 High Profile Escorts Delhi 🫶@9999965857 🫦 Sexy Desi Call Girls Karol Bagh 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Karol Bagh 💓 High Profile Escorts Delhi 🫶
 
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With RoomVIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
 
Rohini Sector 15 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 15 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 15 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 15 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
如何办理(UTS毕业证书)悉尼科技大学毕业证学位证书
如何办理(UTS毕业证书)悉尼科技大学毕业证学位证书如何办理(UTS毕业证书)悉尼科技大学毕业证学位证书
如何办理(UTS毕业证书)悉尼科技大学毕业证学位证书
 
Sustainability Leadership, April 26 2024
Sustainability Leadership, April 26 2024Sustainability Leadership, April 26 2024
Sustainability Leadership, April 26 2024
 
Call Girls 🫤 Nehru Place ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ENJOY
Call Girls 🫤 Nehru Place ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ENJOYCall Girls 🫤 Nehru Place ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ENJOY
Call Girls 🫤 Nehru Place ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ENJOY
 
Russian Call Girls Kolkata Amaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls Kolkata Amaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls Kolkata Amaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls Kolkata Amaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
 
Teck Investor Presentation, April 24, 2024
Teck Investor Presentation, April 24, 2024Teck Investor Presentation, April 24, 2024
Teck Investor Presentation, April 24, 2024
 
VIP Kolkata Call Girl Entally 👉 8250192130 Available With Room
VIP Kolkata Call Girl Entally 👉 8250192130  Available With RoomVIP Kolkata Call Girl Entally 👉 8250192130  Available With Room
VIP Kolkata Call Girl Entally 👉 8250192130 Available With Room
 
Model Call Girl in Udyog Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Udyog Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Udyog Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Udyog Vihar Delhi reach out to us at 🔝9953056974🔝
 
Model Call Girl in Uttam Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Uttam Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Uttam Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Uttam Nagar Delhi reach out to us at 🔝9953056974🔝
 
High Profile Call Girls Kolkata Gayatri 🤌 8250192130 🚀 Vip Call Girls Kolkata
High Profile Call Girls Kolkata Gayatri 🤌  8250192130 🚀 Vip Call Girls KolkataHigh Profile Call Girls Kolkata Gayatri 🤌  8250192130 🚀 Vip Call Girls Kolkata
High Profile Call Girls Kolkata Gayatri 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
 
Escort Service Call Girls In Shalimar Bagh, 99530°56974 Delhi NCR
Escort Service Call Girls In Shalimar Bagh, 99530°56974 Delhi NCREscort Service Call Girls In Shalimar Bagh, 99530°56974 Delhi NCR
Escort Service Call Girls In Shalimar Bagh, 99530°56974 Delhi NCR
 
Collective Mining | Corporate Presentation - April 2024
Collective Mining | Corporate Presentation - April 2024Collective Mining | Corporate Presentation - April 2024
Collective Mining | Corporate Presentation - April 2024
 
Call Girls In South Delhi 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Delhi 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Delhi 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Delhi 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
Call Girls 🫤 Mahipalpur ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ENJOY
Call Girls 🫤 Mahipalpur ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ENJOYCall Girls 🫤 Mahipalpur ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ENJOY
Call Girls 🫤 Mahipalpur ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ENJOY
 
Q3 FY24 Earnings Conference Call Presentation
Q3 FY24 Earnings Conference Call PresentationQ3 FY24 Earnings Conference Call Presentation
Q3 FY24 Earnings Conference Call Presentation
 

"Understanding Free Software and Open Source Licensing" by Zak Greant @ eLiberatica 2008

  • 1. Understanding Free Software May 30 eLiberatica 2008 & Open Source Licensing Bucharest, Romania
  • 3. 1. I am not a lawyer Warnings and Disclosure
  • 4. 1. I am not a lawyer Warnings and Disclosure 2. Law is not code
  • 5. 1. I am not a lawyer Warnings and Disclosure 2. Law is not code 3. Solely my opinions
  • 7. Free Software Foundation License Foo Associates Compliance Lab Volunteer since 2004
  • 9. Foo Associates Mozilla Foundation Paid Staff Member Since 2005
  • 11. Foo Associates Open Source Initiative Board Observer since January
  • 13. Maximize the global public and Mozilla Manifesto individual benefits of the http://mozilla.org/about/mozilla-manifesto.html Internet.
  • 14. The Roots of Free Foundations Software & Open Source Licensing
  • 15. Automatically Copyright granted to creators by the state
  • 16. U Automatically Copyright granted to creators by the state
  • 17. You own your The Big Idea? software.
  • 18. If you can't open it... you don't own it.
  • 22. 1. Run 2. Study Four Freedoms
  • 23. 1. Run 2. Study Four Freedoms 3. Modify
  • 24. 1. Run 2. Study Four Freedoms 3. Modify 4. Share
  • 26. The sky is the limit Permissive THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • 29. Keep license notices BSD License No warranty
  • 30. Keep license notices BSD License No warranty Don't use our name
  • 33. BSD Mac OS X Mach
  • 34. BSD Mac OS X Mach NeXTStep
  • 35. Share ... Copyleft but Share-alike
  • 36. Legal Entity Copyleft #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy;
  • 37. Legal Entity use use use use use use our YAML (); LWP::UserAgent; Number::RecordLocator; Email::Address; Fcntl qw(:mode); File::Temp; $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ Copyleft #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy;
  • 38. Legal Entity use use use use use use our YAML (); LWP::UserAgent; Number::RecordLocator; Email::Address; Fcntl qw(:mode); File::Temp; $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ Copyleft #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy;
  • 39. Legal Entity use use use use use use our YAML (); LWP::UserAgent; Number::RecordLocator; Email::Address; Fcntl qw(:mode); File::Temp; $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ Copyleft #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy;
  • 40. Legal Entity use use use use use use our YAML (); LWP::UserAgent; Number::RecordLocator; Email::Address; Fcntl qw(:mode); File::Temp; $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ Copyleft #!/usr/bin/env perl use strict; use warnings; Copyleft =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to #!/usr/bin/env perl run as a cgi script use strict; Hacked up by zak@fooassociates.com use warnings; =cut =head1 DESCRIPTION use Encode (); Hacked version of Best Practical's Hiveminder todo.pl script use YAML (); Generates reports from Hiveminder - meant to be safe-ish to use LWP::UserAgent; run as a cgi script use Number::RecordLocator; Hacked up by zak@fooassociates.com use Email::Address; =cut use Fcntl qw(:mode); use File::Temp; use Encode (); use YAML (); our $CONFFILE = "$ENV{HOME}/.hiveminder"; use LWP::UserAgent; our %config = (); use Number::RecordLocator; our $ua = LWP::UserAgent->new; use Email::Address; our $locator = Number::RecordLocator->new(); use Fcntl qw(:mode); our $default_query = "not/complete/starts/before/tomorrow/ use File::Temp; accepted/but_first/nothing"; our %args; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); $ua->cookie_jar({}); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); # Load the user's proxy settings from %ENV our $default_query = "not/complete/starts/before/tomorrow/ $ua->env_proxy; accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy; my $encoding; eval { require Term::Encoding; $encoding = Term::Encoding::get_encoding(); }; $encoding ||= "utf-8"; binmode STDOUT, ":encoding($encoding)"; main(); sub main { setup_config(); $args{owner} = "me";
  • 41. Legal Entity use YAML (); Copyleft use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/ #!/usr/bin/env perl nothing"; use strict; our %args; use warnings; $ua->cookie_jar({}); =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script # Load the user's proxy settings from %ENV Generates reports from Hiveminder - meant to be safe-ish to $ua->env_proxy; run as a cgi script Hacked up by zak@fooassociates.com my $encoding; =cut eval { require Term::Encoding; use Encode (); $encoding = Term::Encoding::get_encoding(); use YAML (); }; use LWP::UserAgent; $encoding ||= "utf-8"; use Number::RecordLocator; use Email::Address; binmode STDOUT, ":encoding($encoding)"; use Fcntl qw(:mode); use File::Temp; main(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; sub main { our %config = (); setup_config(); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); $args{owner} = "me"; our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; do_login() or die("Bad username/password -- edit $CONFFILE and try our %args; again."); $ua->cookie_jar({}); @_ = @ARGV; # Load the user's proxy settings from %ENV gen_head(); $ua->env_proxy; &list_tasks; } sub gen_head { print <<EOS <style type="text/css">
  • 42. Legal Entity use YAML (); Copyleft use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/ #!/usr/bin/env perl nothing"; use strict; our %args; use warnings; $ua->cookie_jar({}); =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script # Load the user's proxy settings from %ENV Generates reports from Hiveminder - meant to be safe-ish to $ua->env_proxy; run as a cgi script Hacked up by zak@fooassociates.com my $encoding; =cut eval { require Term::Encoding; use Encode (); $encoding = Term::Encoding::get_encoding(); use YAML (); }; use LWP::UserAgent; $encoding ||= "utf-8"; use Number::RecordLocator; use Email::Address; binmode STDOUT, ":encoding($encoding)"; use Fcntl qw(:mode); use File::Temp; main(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; sub main { our %config = (); setup_config(); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); $args{owner} = "me"; our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; do_login() or die("Bad username/password -- edit $CONFFILE and try our %args; again."); $ua->cookie_jar({}); @_ = @ARGV; # Load the user's proxy settings from %ENV gen_head(); $ua->env_proxy; &list_tasks; } sub gen_head { print <<EOS <style type="text/css">
  • 43. Legal Entity use YAML (); Copyleft use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/ #!/usr/bin/env perl nothing"; use strict; our %args; use warnings; $ua->cookie_jar({}); =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script # Load the user's proxy settings from %ENV Generates reports from Hiveminder - meant to be safe-ish to $ua->env_proxy; run as a cgi script Hacked up by zak@fooassociates.com my $encoding; =cut eval { require Term::Encoding; use Encode (); $encoding = Term::Encoding::get_encoding(); use YAML (); }; use LWP::UserAgent; $encoding ||= "utf-8"; use Number::RecordLocator; use Email::Address; binmode STDOUT, ":encoding($encoding)"; use Fcntl qw(:mode); use File::Temp; main(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; sub main { our %config = (); setup_config(); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); $args{owner} = "me"; our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; do_login() or die("Bad username/password -- edit $CONFFILE and try our %args; Copyleft again."); $ua->cookie_jar({}); @_ = @ARGV; # Load the user's proxy settings from %ENV gen_head(); $ua->env_proxy; &list_tasks; } sub gen_head { print <<EOS <style type="text/css"> #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy; my $encoding; eval { require Term::Encoding; $encoding = Term::Encoding::get_encoding(); }; $encoding ||= "utf-8"; binmode STDOUT, ":encoding($encoding)"; main(); sub main { setup_config(); $args{owner} = "me"; do_login() or die("Bad username/password -- edit $CONFFILE and try again."); @_ = @ARGV; gen_head(); &list_tasks; } sub gen_head { print <<EOS
  • 44. Legal Entity use YAML (); Copyleft use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/ #!/usr/bin/env perl nothing"; use strict; our %args; use warnings; $ua->cookie_jar({}); =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script # Load the user's proxy settings from %ENV Generates reports from Hiveminder - meant to be safe-ish to $ua->env_proxy; run as a cgi script Hacked up by zak@fooassociates.com my $encoding; =cut eval { require Term::Encoding; use Encode (); $encoding = Term::Encoding::get_encoding(); use YAML (); }; use LWP::UserAgent; $encoding ||= "utf-8"; use Number::RecordLocator; use Email::Address; binmode STDOUT, ":encoding($encoding)"; use Fcntl qw(:mode); use File::Temp; main(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; sub main { our %config = (); setup_config(); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); $args{owner} = "me"; our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; do_login() or die("Bad username/password -- edit $CONFFILE and try our %args; Copyleft again."); $ua->cookie_jar({}); @_ = @ARGV; # Load the user's proxy settings from %ENV gen_head(); $ua->env_proxy; &list_tasks; } sub gen_head { print <<EOS <style type="text/css"> #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy; my $encoding; eval { require Term::Encoding; $encoding = Term::Encoding::get_encoding(); }; $encoding ||= "utf-8"; binmode STDOUT, ":encoding($encoding)"; main(); sub main { setup_config(); $args{owner} = "me"; do_login() or die("Bad username/password -- edit $CONFFILE and try again."); @_ = @ARGV; gen_head(); &list_tasks; } sub gen_head { print <<EOS
  • 45. Legal Entity use YAML (); Copyleft use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/accepted/but_first/ #!/usr/bin/env perl nothing"; use strict; our %args; use warnings; $ua->cookie_jar({}); =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script # Load the user's proxy settings from %ENV Generates reports from Hiveminder - meant to be safe-ish to $ua->env_proxy; run as a cgi script Hacked up by zak@fooassociates.com my $encoding; =cut eval { require Term::Encoding; use Encode (); $encoding = Term::Encoding::get_encoding(); use YAML (); }; use LWP::UserAgent; $encoding ||= "utf-8"; use Number::RecordLocator; use Email::Address; binmode STDOUT, ":encoding($encoding)"; use Fcntl qw(:mode); use File::Temp; main(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; sub main { our %config = (); setup_config(); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); $args{owner} = "me"; our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; do_login() or die("Bad username/password -- edit $CONFFILE and try our %args; Copyleft again."); $ua->cookie_jar({}); @_ = @ARGV; # Load the user's proxy settings from %ENV gen_head(); $ua->env_proxy; &list_tasks; } sub gen_head { print <<EOS <style type="text/css"> #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy; my $encoding; eval { require Term::Encoding; $encoding = Term::Encoding::get_encoding(); }; Incompatible $encoding ||= "utf-8"; binmode STDOUT, ":encoding($encoding)"; main(); sub main { setup_config(); $args{owner} = "me"; #!/usr/bin/env perl do_login() or die("Bad username/password -- edit use strict; $CONFFILE and try again."); use warnings; @_ = @ARGV; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script gen_head(); Generates reports from Hiveminder - meant to be safe-ish to &list_tasks; run as a cgi script } Hacked up by zak@fooassociates.com =cut sub gen_head { print <<EOS use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy;
  • 46. Legal Entity Copyleft #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy;
  • 47. Legal Entity Copyleft Incompatible #!/usr/bin/env perl =head1 DESCRIPTION use strict; Hacked version of Best Practical's Hiveminder todo.pl script use warnings; Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script =head1 DESCRIPTION Hacked up by zak@fooassociates.com Hacked version of Best Practical's Hiveminder todo.pl script =cut Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script use Encode (); Hacked up by zak@fooassociates.com use YAML (); =cut use LWP::UserAgent; use Number::RecordLocator; use Encode (); use Email::Address; use YAML (); use Fcntl qw(:mode); use LWP::UserAgent; use File::Temp; use Number::RecordLocator; use Email::Address; our $CONFFILE = "$ENV{HOME}/.hiveminder"; use Fcntl qw(:mode); our %config = (); use File::Temp; our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; our $default_query = "not/complete/starts/before/tomorrow/ our %config = (); accepted/but_first/nothing"; our $ua = LWP::UserAgent->new; our %args; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ $ua->cookie_jar({}); accepted/but_first/nothing"; our %args; # Load the user's proxy settings from %ENV $ua->env_proxy; $ua->cookie_jar({}); my $encoding; # Load the user's proxy settings from %ENV eval { $ua->env_proxy; require Term::Encoding;
  • 48. Legal Entity Copyleft Incompatible #!/usr/bin/env perl =head1 DESCRIPTION use strict; Hacked version of Best Practical's Hiveminder todo.pl script use warnings; Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script =head1 DESCRIPTION Hacked up by zak@fooassociates.com Hacked version of Best Practical's Hiveminder todo.pl script =cut Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script use Encode (); Hacked up by zak@fooassociates.com use YAML (); =cut use LWP::UserAgent; use Number::RecordLocator; use Encode (); use Email::Address; use YAML (); use Fcntl qw(:mode); use LWP::UserAgent; use File::Temp; use Number::RecordLocator; use Email::Address; our $CONFFILE = "$ENV{HOME}/.hiveminder"; use Fcntl qw(:mode); our %config = (); use File::Temp; our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; our $default_query = "not/complete/starts/before/tomorrow/ our %config = (); accepted/but_first/nothing"; our $ua = LWP::UserAgent->new; our %args; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ $ua->cookie_jar({}); accepted/but_first/nothing"; our %args; # Load the user's proxy settings from %ENV $ua->env_proxy; $ua->cookie_jar({}); my $encoding; # Load the user's proxy settings from %ENV eval { $ua->env_proxy; require Term::Encoding;
  • 49. Legal Entity Incompatible #!/usr/bin/env perl Copyleft Incompatible use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut #!/usr/bin/env perl use Encode (); =head1 DESCRIPTION use strict; use YAML (); Hacked version of Best Practical's Hiveminder todo.pl script use warnings; use LWP::UserAgent; Generates reports from Hiveminder - meant to be safe-ish to use Number::RecordLocator; run as a cgi script =head1 DESCRIPTION use Email::Address; Hacked up by zak@fooassociates.com Hacked version of Best Practical's Hiveminder todo.pl script use Fcntl qw(:mode); =cut Generates reports from Hiveminder - meant to be safe-ish to use File::Temp; run as a cgi script use Encode (); Hacked up by zak@fooassociates.com our $CONFFILE = "$ENV{HOME}/.hiveminder"; use YAML (); =cut our %config = (); use LWP::UserAgent; our $ua = LWP::UserAgent->new; use Number::RecordLocator; use Encode (); our $locator = Number::RecordLocator->new(); use Email::Address; use YAML (); our $default_query = "not/complete/starts/before/tomorrow/ use Fcntl qw(:mode); use LWP::UserAgent; accepted/but_first/nothing"; use File::Temp; use Number::RecordLocator; our %args; use Email::Address; our $CONFFILE = "$ENV{HOME}/.hiveminder"; use Fcntl qw(:mode); $ua->cookie_jar({}); our %config = (); use File::Temp; our $ua = LWP::UserAgent->new; # Load the user's proxy settings from %ENV our $locator = Number::RecordLocator->new(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; $ua->env_proxy; our $default_query = "not/complete/starts/before/tomorrow/ our %config = (); accepted/but_first/nothing"; our $ua = LWP::UserAgent->new; my $encoding; our %args; our $locator = Number::RecordLocator->new(); eval { our $default_query = "not/complete/starts/before/tomorrow/ require Term::Encoding; $ua->cookie_jar({}); accepted/but_first/nothing"; $encoding = Term::Encoding::get_encoding(); our %args; }; # Load the user's proxy settings from %ENV $encoding ||= "utf-8"; $ua->env_proxy; $ua->cookie_jar({}); binmode STDOUT, ":encoding($encoding)"; my $encoding; # Load the user's proxy settings from %ENV eval { $ua->env_proxy; main(); require Term::Encoding; sub main { setup_config(); $args{owner} = "me";
  • 50. Legal Entity Incompatible #!/usr/bin/env perl Copyleft Incompatible use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut #!/usr/bin/env perl use Encode (); =head1 DESCRIPTION use strict; use YAML (); Hacked version of Best Practical's Hiveminder todo.pl script use warnings; use LWP::UserAgent; Generates reports from Hiveminder - meant to be safe-ish to use Number::RecordLocator; run as a cgi script =head1 DESCRIPTION use Email::Address; Hacked up by zak@fooassociates.com Hacked version of Best Practical's Hiveminder todo.pl script use Fcntl qw(:mode); =cut Generates reports from Hiveminder - meant to be safe-ish to use File::Temp; run as a cgi script use Encode (); Hacked up by zak@fooassociates.com our $CONFFILE = "$ENV{HOME}/.hiveminder"; use YAML (); =cut our %config = (); use LWP::UserAgent; our $ua = LWP::UserAgent->new; use Number::RecordLocator; use Encode (); our $locator = Number::RecordLocator->new(); use Email::Address; use YAML (); our $default_query = "not/complete/starts/before/tomorrow/ use Fcntl qw(:mode); use LWP::UserAgent; accepted/but_first/nothing"; use File::Temp; use Number::RecordLocator; our %args; use Email::Address; our $CONFFILE = "$ENV{HOME}/.hiveminder"; use Fcntl qw(:mode); $ua->cookie_jar({}); our %config = (); use File::Temp; our $ua = LWP::UserAgent->new; # Load the user's proxy settings from %ENV our $locator = Number::RecordLocator->new(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; $ua->env_proxy; our $default_query = "not/complete/starts/before/tomorrow/ our %config = (); accepted/but_first/nothing"; our $ua = LWP::UserAgent->new; my $encoding; our %args; our $locator = Number::RecordLocator->new(); eval { our $default_query = "not/complete/starts/before/tomorrow/ require Term::Encoding; $ua->cookie_jar({}); accepted/but_first/nothing"; $encoding = Term::Encoding::get_encoding(); our %args; }; # Load the user's proxy settings from %ENV $encoding ||= "utf-8"; $ua->env_proxy; $ua->cookie_jar({}); binmode STDOUT, ":encoding($encoding)"; my $encoding; # Load the user's proxy settings from %ENV eval { $ua->env_proxy; main(); require Term::Encoding; sub main { setup_config(); $args{owner} = "me";
  • 51. Legal Entity Incompatible #!/usr/bin/env perl Copyleft Incompatible use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut #!/usr/bin/env perl use Encode (); =head1 DESCRIPTION use strict; use YAML (); Hacked version of Best Practical's Hiveminder todo.pl script use warnings; use LWP::UserAgent; Generates reports from Hiveminder - meant to be safe-ish to use Number::RecordLocator; run as a cgi script =head1 DESCRIPTION use Email::Address; Hacked up by zak@fooassociates.com Hacked version of Best Practical's Hiveminder todo.pl script use Fcntl qw(:mode); =cut Generates reports from Hiveminder - meant to be safe-ish to use File::Temp; run as a cgi script use Encode (); Hacked up by zak@fooassociates.com our $CONFFILE = "$ENV{HOME}/.hiveminder"; use YAML (); =cut our %config = (); use LWP::UserAgent; our $ua = LWP::UserAgent->new; use Number::RecordLocator; use Encode (); our $locator = Number::RecordLocator->new(); use Email::Address; use YAML (); our $default_query = "not/complete/starts/before/tomorrow/ use Fcntl qw(:mode); use LWP::UserAgent; accepted/but_first/nothing"; use File::Temp; use Number::RecordLocator; our %args; use Email::Address; our $CONFFILE = "$ENV{HOME}/.hiveminder"; use Fcntl qw(:mode); $ua->cookie_jar({}); our %config = (); use File::Temp; our $ua = LWP::UserAgent->new; # Load the user's proxy settings from %ENV our $locator = Number::RecordLocator->new(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; $ua->env_proxy; our $default_query = "not/complete/starts/before/tomorrow/ our %config = (); accepted/but_first/nothing"; our $ua = LWP::UserAgent->new; my $encoding; our %args; our $locator = Number::RecordLocator->new(); eval { our $default_query = "not/complete/starts/before/tomorrow/ require Term::Encoding; $ua->cookie_jar({}); accepted/but_first/nothing"; $encoding = Term::Encoding::get_encoding(); our %args; }; # Load the user's proxy settings from %ENV $encoding ||= "utf-8"; $ua->env_proxy; $ua->cookie_jar({}); binmode STDOUT, ":encoding($encoding)"; my $encoding; # Load the user's proxy settings from %ENV eval { $ua->env_proxy; main(); require Term::Encoding; sub main { setup_config(); $args{owner} = "me";
  • 52. Legal Entity Incompatible #!/usr/bin/env perl Copyleft Incompatible use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut #!/usr/bin/env perl use Encode (); =head1 DESCRIPTION use strict; use YAML (); Hacked version of Best Practical's Hiveminder todo.pl script use warnings; use LWP::UserAgent; Generates reports from Hiveminder - meant to be safe-ish to use Number::RecordLocator; run as a cgi script =head1 DESCRIPTION use Email::Address; Hacked up by zak@fooassociates.com Hacked version of Best Practical's Hiveminder todo.pl script use Fcntl qw(:mode); =cut Generates reports from Hiveminder - meant to be safe-ish to use File::Temp; run as a cgi script use Encode (); Hacked up by zak@fooassociates.com our $CONFFILE = "$ENV{HOME}/.hiveminder"; use YAML (); =cut our %config = (); use LWP::UserAgent; our $ua = LWP::UserAgent->new; use Number::RecordLocator; use Encode (); our $locator = Number::RecordLocator->new(); use Email::Address; use YAML (); our $default_query = "not/complete/starts/before/tomorrow/ use Fcntl qw(:mode); use LWP::UserAgent; accepted/but_first/nothing"; use File::Temp; use Number::RecordLocator; our %args; use Email::Address; our $CONFFILE = "$ENV{HOME}/.hiveminder"; use Fcntl qw(:mode); $ua->cookie_jar({}); our %config = (); use File::Temp; our $ua = LWP::UserAgent->new; # Load the user's proxy settings from %ENV our $locator = Number::RecordLocator->new(); our $CONFFILE = "$ENV{HOME}/.hiveminder"; $ua->env_proxy; our $default_query = "not/complete/starts/before/tomorrow/ our %config = (); accepted/but_first/nothing"; our $ua = LWP::UserAgent->new; my $encoding; our %args; our $locator = Number::RecordLocator->new(); eval { our $default_query = "not/complete/starts/before/tomorrow/ require Term::Encoding; $ua->cookie_jar({}); accepted/but_first/nothing"; $encoding = Term::Encoding::get_encoding(); our %args; }; # Load the user's proxy settings from %ENV $encoding ||= "utf-8"; $ua->env_proxy; $ua->cookie_jar({}); binmode STDOUT, ":encoding($encoding)"; my $encoding; # Load the user's proxy settings from %ENV eval { $ua->env_proxy; main(); require Term::Encoding; sub main { setup_config(); $args{owner} = "me"; Copyleft #!/usr/bin/env perl use strict; use warnings; =head1 DESCRIPTION Hacked version of Best Practical's Hiveminder todo.pl script Generates reports from Hiveminder - meant to be safe-ish to run as a cgi script Hacked up by zak@fooassociates.com =cut use Encode (); use YAML (); use LWP::UserAgent; use Number::RecordLocator; use Email::Address; use Fcntl qw(:mode); use File::Temp; our $CONFFILE = "$ENV{HOME}/.hiveminder"; our %config = (); our $ua = LWP::UserAgent->new; our $locator = Number::RecordLocator->new(); our $default_query = "not/complete/starts/before/tomorrow/ accepted/but_first/nothing"; our %args; $ua->cookie_jar({}); # Load the user's proxy settings from %ENV $ua->env_proxy;