1. Shlomi Fish
  2. shlomi-fish-homepage

Commits

shl...@iglu.org.il@cec68495-dca5-4e2b-845c-11fdaaa4f967  committed df09b37

Removed single quotes from literal hash keys.

This was a small refactoring that made the code shorter and less noisy.

  • Participants
  • Parent commits 0be26c1
  • Branches default

Comments (0)

Files changed (6)

File lib/MyNavData.pm

View file
 
 my $hosts =
 {
-    't2' => 
+    t2 => 
     {
-        'base_url' => "http://www.shlomifish.org/",
+        base_url => "http://www.shlomifish.org/",
     },
-    'vipe' =>
+    vipe =>
     {
-        'base_url' => "http://www.shlomifish.org/Vipe/",
+        base_url => "http://www.shlomifish.org/Vipe/",
     },
 };
 
     return $hosts;
 }
 
-my @personal_expand = ('expand' => { 'bool' => 1, 'capt' => 0,},);
-my @humour_expand = ('re' => q{^(?:humour/|(?:humour|wysiwyt|wonderous).html)});
+my @personal_expand = (expand => { bool => 1, capt => 0,},);
+my @humour_expand = (re => q{^(?:humour/|(?:humour|wysiwyt|wonderous).html)});
 
 my $tree_contents =
 {
-    'host' => "t2",
-    'text' => "Shlomi Fish",
-    'title' => "Shlomi Fish's Homepage",
-    'subs' =>
+    host => "t2",
+    text => "Shlomi Fish",
+    title => "Shlomi Fish's Homepage",
+    subs =>
     [
         {
-            'text' => "Shlomi Fish's Homepage",
-            'url' => "",
+            text => "Shlomi Fish's Homepage",
+            url => "",
         },
         {
-            'text' => "About Myself",
-            'url' => "me/",
+            text => "About Myself",
+            url => "me/",
             @personal_expand,
-            'subs' => 
+            subs => 
             [
                 {
-                    'text' => "Bio",
-                    'url' => "personal.html",
-                    'title' => "A Short Biography of Myself",
-                    'expand' => { 're' => "^(?:me|personal/)", },
-                    'subs' =>
+                    text => "Bio",
+                    url => "personal.html",
+                    title => "A Short Biography of Myself",
+                    expand => { re => "^(?:me|personal/)", },
+                    subs =>
                     [
                         {
-                            'text' => "Intros",
-                            'url' => "me/intros/",
-                            'title' => "Introductions of Me to Various Forums",
-                            'subs' =>
+                            text => "Intros",
+                            url => "me/intros/",
+                            title => "Introductions of Me to Various Forums",
+                            subs =>
                             [
                                 {
-                                    'text' => "MIT Writers",
-                                    'url' => "me/intros/writers/",
-                                    'title' => "My Intro to the MIT Writers Mailing List",
+                                    text => "MIT Writers",
+                                    url => "me/intros/writers/",
+                                    title => "My Intro to the MIT Writers Mailing List",
                                 },
                             ],
                         },
                     ],
                 },
                 {
-                    'text' => "Contact Me",
-                    'url' => "me/contact-me/",
-                    'title'=> "How to Contact Me",
+                    text => "Contact Me",
+                    url => "me/contact-me/",
+                    title=> "How to Contact Me",
                 },
                 {
-                    'text' => "My Resumés",
-                    'url' => "me/resumes/",
-                    'subs' =>
+                    text => "My Resumés",
+                    url => "me/resumes/",
+                    subs =>
                     [
                         {
-                            'text' => "English Resumé",
-                            'url' => "SFresume.html",
-                            'skip' => 1,
+                            text => "English Resumé",
+                            url => "SFresume.html",
+                            skip => 1,
                         },
                         {
-                            'text' => "Detailed English Resumé",
-                            'url' => "SFresume_detailed.html",
-                            'skip' => 1,
+                            text => "Detailed English Resumé",
+                            url => "SFresume_detailed.html",
+                            skip => 1,
                         },
                     ],
                 },
                 {
-                    'text' => "Personal Ad",
-                    'url' => "me/personal-ad.html",
-                    'title' => "My Personal Ad: what I'm looking for in a prospective girlfriend and what I can add to the relationship.",
+                    text => "Personal Ad",
+                    url => "me/personal-ad.html",
+                    title => "My Personal Ad: what I'm looking for in a prospective girlfriend and what I can add to the relationship.",
                 },
                 {
-                    'text' => "My Weblogs",
-                    'url' => "me/blogs/",
-                    'title' => "Links to my online journals.",
+                    text => "My Weblogs",
+                    url => "me/blogs/",
+                    title => "Links to my online journals.",
                 },
                 {
-                    'text' => "Interviews",
-                    'url' => "me/interviews/",
-                    'title' => "Interviews that were conducted with me",
+                    text => "Interviews",
+                    url => "me/interviews/",
+                    title => "Interviews that were conducted with me",
                 },
             ],               
         },
         {
-            'text' => "Work",
-            'url' => "work/",
-            'expand' => { 're' => "", 'capt' => 0,},
-            'title' => "Work-Related Pages",
-            'subs' =>
+            text => "Work",
+            url => "work/",
+            expand => { re => "", capt => 0,},
+            title => "Work-Related Pages",
+            subs =>
             [
                 {
-                    'text' => "Hire Me!",
-                    'url' => "work/hire-me/",
-                    'title' => "I'm a Geek for Hire",
-                    'expand' => { 're' => "work/", },
-                    'subs' =>
+                    text => "Hire Me!",
+                    url => "work/hire-me/",
+                    title => "I'm a Geek for Hire",
+                    expand => { re => "work/", },
+                    subs =>
                     [
                         {
-                            'text' => "Private Lessons",
-                            'url' => "work/private-lessons/",
-                            'title' => "I'm Giving Private Lessons for High School Subjects and Computing.",
+                            text => "Private Lessons",
+                            url => "work/private-lessons/",
+                            title => "I'm Giving Private Lessons for High School Subjects and Computing.",
                         },
                     ],
                 },
             ],
         },
         {
-            'text' => "Humour", 
-            'url' => "humour/",
-            'expand' => { @humour_expand },
-            'title' => "My Humorous Creations",
-            'subs' => 
+            text => "Humour", 
+            url => "humour/",
+            expand => { @humour_expand },
+            title => "My Humorous Creations",
+            subs => 
             [
                 {
-                    'text' => "Stories",
-                    'url' => "humour/stories/",
-                    'title' => "Large-Scale Stories I Wrote",
-                    'expand' => { @humour_expand, 'capt' => 0,},
-                    'subs' =>
+                    text => "Stories",
+                    url => "humour/stories/",
+                    title => "Large-Scale Stories I Wrote",
+                    expand => { @humour_expand, capt => 0,},
+                    subs =>
                     [
                         {
-                            'text' => "The Enemy", 
-                            'url' => "humour/TheEnemy/",
-                            'title' => "The Enemy and How I Helped to Fight It",
+                            text => "The Enemy", 
+                            url => "humour/TheEnemy/",
+                            title => "The Enemy and How I Helped to Fight It",
                         },
                         {
-                            'text' => "TOW The Fountainhead",
-                            'url' => "humour/TOWTF/",
-                            'title' => "The One with the Fountainhead",
+                            text => "TOW The Fountainhead",
+                            url => "humour/TOWTF/",
+                            title => "The One with the Fountainhead",
                         },
                         {
-                            'text' => "Human Hacking Field Guide",
-                            'url' => "humour/human-hacking/",
-                            'title' => "The Human Hacking Field Guide",
+                            text => "Human Hacking Field Guide",
+                            url => "humour/human-hacking/",
+                            title => "The Human Hacking Field Guide",
                         },
                         {
-                            'text' => "We, the Living Dead",
-                            'url' => "humour/Star-Trek/We-the-Living-Dead/",
+                            text => "We, the Living Dead",
+                            url => "humour/Star-Trek/We-the-Living-Dead/",
                         },
                         {
-                            'text' => "The Pope",
-                            'url' => "humour/Pope/",
-                            'title' => "The Pope Died on Sunday",
+                            text => "The Pope",
+                            url => "humour/Pope/",
+                            title => "The Pope Died on Sunday",
                         },
                     ],
                 },
                 {
-                    'text' => "Aphorisms and Quotes",
-                    'url' => "humour/aphorisms/",
-                    'expand' => { @humour_expand, 'capt' => 0,},
-                    'subs' =>
+                    text => "Aphorisms and Quotes",
+                    url => "humour/aphorisms/",
+                    expand => { @humour_expand, capt => 0,},
+                    subs =>
                     [
                         {
-                            'text' => "My Quotes Collection",
-                            'title' => ("Collection of Funny or Insightful " . 
+                            text => "My Quotes Collection",
+                            title => ("Collection of Funny or Insightful " . 
                                 "Quotes or Aphorisms I came up with"),
-                            'url' => "humour.html",
+                            url => "humour.html",
                         },
                         {
-                            'text' => "Fortune Cookies Collection",
-                            'title' => "Collection of Files for Input to the UNIX 'fortune' Program",
-                            'url' => "humour/fortunes/",
+                            text => "Fortune Cookies Collection",
+                            title => "Collection of Files for Input to the UNIX 'fortune' Program",
+                            url => "humour/fortunes/",
                         },
                     ],
                 },
                 {
-                    'text' => "Small Scale",
-                    'url' => "humour/bits/",
-                    'expand' => { 're' => "^humour/bits/", },
-                    'title' => "Small Scale Funny Works of Mine",
+                    text => "Small Scale",
+                    url => "humour/bits/",
+                    expand => { re => "^humour/bits/", },
+                    title => "Small Scale Funny Works of Mine",
                 },
                 {
-                    'text' => "By Others",
-                    'url' => "humour/by-others/",
-                    'expand' => { 're' => "^humour/(?:by-others|GNU-Visual-Basic)/", },
-                    'title' => "Humorous Works by Other People",
+                    text => "By Others",
+                    url => "humour/by-others/",
+                    expand => { re => "^humour/(?:by-others|GNU-Visual-Basic)/", },
+                    title => "Humorous Works by Other People",
                 },
             ],
         },
         {
-            'text' => "Puzzles",
-            'url' => "puzzles/",
-            'expand' => { 're' => "^(MathVentures/|puzzles/)", },
-            'title' => "Puzzles, Riddles and Brain-teasers",
-            'subs' =>
+            text => "Puzzles",
+            url => "puzzles/",
+            expand => { re => "^(MathVentures/|puzzles/)", },
+            title => "Puzzles, Riddles and Brain-teasers",
+            subs =>
             [
                 {
-                    'text' => "Math-Ventures",
-                    'url' => "MathVentures/",
-                    'expand' => { 're' => "^MathVentures/", },
-                    'title' => "Mathematical Riddles and their Solutions",
+                    text => "Math-Ventures",
+                    url => "MathVentures/",
+                    expand => { re => "^MathVentures/", },
+                    title => "Mathematical Riddles and their Solutions",
                 },
                 {
-                    'text' => "Logic Puzzles",
-                    'url' => "puzzles/logic/",
-                    'expand' => { 're' => "^puzzles/logic/", },
+                    text => "Logic Puzzles",
+                    url => "puzzles/logic/",
+                    expand => { re => "^puzzles/logic/", },
                 },
             ],
         },
         {
-            'text' => "Computer Art",
-            'url' => "art/",
-            'expand' => { 're' => "^art/", },
-            'title' => "Computer art I created while explaining how.",
-            'subs' =>
+            text => "Computer Art",
+            url => "art/",
+            expand => { re => "^art/", },
+            title => "Computer art I created while explaining how.",
+            subs =>
             [
                 {
-                    'text' => "Back to my Homepage",
-                    'url' => "art/bk2hp/",
-                    'title' => "A Back to my Homepage logo not unlike the one from the movie "Back to the Future"",
+                    text => "Back to my Homepage",
+                    url => "art/bk2hp/",
+                    title => "A Back to my Homepage logo not unlike the one from the movie "Back to the Future"",
                 },
                 {
-                    'text' => "Linux Banner",
-                    'url' => "art/linux_banner/",
-                    'title' => "Linux - Because Software Problems should not Cost Money",
+                    text => "Linux Banner",
+                    url => "art/linux_banner/",
+                    title => "Linux - Because Software Problems should not Cost Money",
                 },
                 {
-                    'text' => "Made with Latemp",
-                    'url' => "art/made-with-latemp/",
-                    'title' => ""Made with Latemp" Button",
+                    text => "Made with Latemp",
+                    url => "art/made-with-latemp/",
+                    title => ""Made with Latemp" Button",
                 },
                 {
-                    'text' => "HHFG Background",
-                    'url' => "art/hhfg-background/",
-                    'title' => "Background Image for the "Human Hacking Field Guide" Story",
+                    text => "HHFG Background",
+                    url => "art/hhfg-background/",
+                    title => "Background Image for the "Human Hacking Field Guide" Story",
                 },
                 {
-                    'text' => "Better SCM Logo",
-                    'url' => "art/better-scm/",
-                    'title' => "Logo for the  "Better SCM" Site",
+                    text => "Better SCM Logo",
+                    url => "art/better-scm/",
+                    title => "Logo for the  "Better SCM" Site",
                 },
                 {
-                    'text' => "Slogans' Designs",
-                    'url' => "art/slogans/",
-                    'title' => "The design of my aphorism - useful for T-shirts and other merchandise",
+                    text => "Slogans' Designs",
+                    url => "art/slogans/",
+                    title => "The design of my aphorism - useful for T-shirts and other merchandise",
                 },
             ],
         },
         {
-            'text' => "Software",
-            'url' => "open-source/",
-            'expand' => { 're' => "^open-source/", },
-            'title' => "Pages related to Software (mostly Open-Source)",
-            'subs' => 
+            text => "Software",
+            url => "open-source/",
+            expand => { re => "^open-source/", },
+            title => "Pages related to Software (mostly Open-Source)",
+            subs => 
             [
                 {
-                    'text' => "Projects",
-                    'url' => "open-source/projects/",
-                    'expand' => { 're' => "^(open-source/projects|jmikmod|rwlock|grad-fu)/", },
-                    'subs' =>
+                    text => "Projects",
+                    url => "open-source/projects/",
+                    expand => { re => "^(open-source/projects|jmikmod|rwlock|grad-fu)/", },
+                    subs =>
                     [
                         {
-                            'text' => "Freecell Solver",
-                            'url' => "open-source/projects/freecell-solver/",
+                            text => "Freecell Solver",
+                            url => "open-source/projects/freecell-solver/",
                         },
                         {
-                            'text' => "MikMod for Java",
-                            'title' => "A Player for MOD Files (a type of Music Files) for the Java Environment",
-                            'url' => "jmikmod/",
+                            text => "MikMod for Java",
+                            title => "A Player for MOD Files (a type of Music Files) for the Java Environment",
+                            url => "jmikmod/",
                         },
                         {
-                            'text' => "FCFS RWLock",
-                            'title' => "A First-Come First-Served Readers/Writers Lock",
-                            'url' => "rwlock/",
+                            text => "FCFS RWLock",
+                            title => "A First-Come First-Served Readers/Writers Lock",
+                            url => "rwlock/",
                         },
                         {
-                            'text' => "Quad-Pres",
-                            'title' => "A Tool for Creating HTML Presentations",
-                            'url' => "open-source/projects/quad-pres/",
+                            text => "Quad-Pres",
+                            title => "A Tool for Creating HTML Presentations",
+                            url => "open-source/projects/quad-pres/",
                         },
                         {
-                            'text' => "Gradient-Fu",
-                            'title' => "Gradient-Fu Patch for the GIMP",
-                            'url' => "grad-fu/",
-                            'hide' => 1,
+                            text => "Gradient-Fu",
+                            title => "Gradient-Fu Patch for the GIMP",
+                            url => "grad-fu/",
+                            hide => 1,
                         },                
                         {
-                            'text' => "Bits and Bobs",
-                            'title' => "Various Small-Scale Open-Source Works",
-                            'url' => "open-source/bits.html",
+                            text => "Bits and Bobs",
+                            title => "Various Small-Scale Open-Source Works",
+                            url => "open-source/bits.html",
                         },
                     ],
                 },
                 {
-                    'text' => "Favourite OSS",
-                    'title' => "Favourite Open-Source Software",
-                    'url' => "open-source/favourite/",
+                    text => "Favourite OSS",
+                    title => "Favourite Open-Source Software",
+                    url => "open-source/favourite/",
                 },
                 {
-                    'text' => "Interviews",
-                    'title' => "Interviews with Open-Source People",
-                    'url' => "open-source/interviews/",
+                    text => "Interviews",
+                    title => "Interviews with Open-Source People",
+                    url => "open-source/interviews/",
                 },
                 {
-                    'text' => "Contributions",
-                    'title' => "Contributions to Other Projects, that I did not Start",
-                    'url' => "open-source/contributions/",
+                    text => "Contributions",
+                    title => "Contributions to Other Projects, that I did not Start",
+                    url => "open-source/contributions/",
                 },
                 {
-                    'text' => "Anti Pages",
-                    'title' => "Against Commonly Used but Bad Software",
-                    'url' => "open-source/anti/",
-                    'expand' => { 're' => "^(no-ie|open-source/anti)/", },
+                    text => "Anti Pages",
+                    title => "Against Commonly Used but Bad Software",
+                    url => "open-source/anti/",
+                    expand => { re => "^(no-ie|open-source/anti)/", },
                 },                
                 {
-                    'text' => "Portability Libraries",
-                    'title' => "Cross-Platform Abstraction Libraries",
-                    'url' => "open-source/portability-libs/",
-                    'hide' => 1,
+                    text => "Portability Libraries",
+                    title => "Cross-Platform Abstraction Libraries",
+                    url => "open-source/portability-libs/",
+                    hide => 1,
                 },
                 {
-                    'text' => "Software Tools",
-                    'title' => "Software Constructions and Management Tools",
-                    'url' => "open-source/resources/software-tools/",
-                    'hide' => 1,
+                    text => "Software Tools",
+                    title => "Software Constructions and Management Tools",
+                    url => "open-source/resources/software-tools/",
+                    hide => 1,
                 },
                 
             ],
         },
         {
-            'text' => "Lectures",
-            'url' => "lecture/",
-            'expand' => { 're' => "^lecture/", },
-            'title' => "Presentations I Wrote (Mostly Technical)",
-            'subs' => 
+            text => "Lectures",
+            url => "lecture/",
+            expand => { re => "^lecture/", },
+            title => "Presentations I Wrote (Mostly Technical)",
+            subs => 
             [
                 {
-                    'text' => "Perl for Newbies",
-                    'url' => "lecture/Perl/Newbies/",
+                    text => "Perl for Newbies",
+                    url => "lecture/Perl/Newbies/",
                 },
                 {
-                    'text' => "Web Publishing using LAMP",
-                    'url' => "lecture/LAMP/",
-                    'host' => "t2",
-                    'title' => "Web Publishing using Linux, Apache, MySQL, and Perl/PHP/Python (or equivalents)",
+                    text => "Web Publishing using LAMP",
+                    url => "lecture/LAMP/",
+                    host => "t2",
+                    title => "Web Publishing using Linux, Apache, MySQL, and Perl/PHP/Python (or equivalents)",
                 },
                 {
-                    'text' => "The Cathedral and the Bazaar",
-                    'url' => "lecture/CatB/",
+                    text => "The Cathedral and the Bazaar",
+                    url => "lecture/CatB/",
                 },
                 {
-                    'text' => "Prog. Languages",
-                    'url' => "lecture/cat/programming-languages/",
-                    'title' => "Presentations about Programming Languages",
+                    text => "Prog. Languages",
+                    url => "lecture/cat/programming-languages/",
+                    title => "Presentations about Programming Languages",
                 },
                 {
-                    'text' => "Various Tools",
-                    'url' => "lecture/cat/various-tools/",
-                    'title' => "Presentations about Various Tools",
+                    text => "Various Tools",
+                    url => "lecture/cat/various-tools/",
+                    title => "Presentations about Various Tools",
                 },
                 {
-                    'text' => "Welcome to Linux",
-                    'url' => "lecture/W2L/",
-                    'title' => "Presentations for the Israeli series for Linux Newcomers",
+                    text => "Welcome to Linux",
+                    url => "lecture/W2L/",
+                    title => "Presentations for the Israeli series for Linux Newcomers",
                 },
                 {
-                    'text' => "About My Projects",
-                    'url' => "lecture/cat/projects/",
-                    'title' => "Presentations about my Open Source Projects",
+                    text => "About My Projects",
+                    url => "lecture/cat/projects/",
+                    title => "Presentations about my Open Source Projects",
                 },
                 {
-                    'text' => "Lightning Talks",
-                    'url' => "lecture/cat/lightning-talks/",
-                    'title' => "Short (5-15 minutes) Presentations",
+                    text => "Lightning Talks",
+                    url => "lecture/cat/lightning-talks/",
+                    title => "Short (5-15 minutes) Presentations",
                 },
             ],
         },
         {
-            'text' => "Essays",
-            'url' => "philosophy/",
-            'expand' => { 're' => "^(philosophy|prog-evolution|DeCSS)/", },
-            'title' => "Various Essays and Articles about Technology and Philosophy in General",
-            'subs' =>
+            text => "Essays",
+            url => "philosophy/",
+            expand => { re => "^(philosophy|prog-evolution|DeCSS)/", },
+            title => "Various Essays and Articles about Technology and Philosophy in General",
+            subs =>
             [
             
                 {
-                    'text' => "Index to Essays",
-                    'url' => "philosophy/Index/",
-                    'title' => "Index to Essays and Articles I wrote.",
+                    text => "Index to Essays",
+                    url => "philosophy/Index/",
+                    title => "Index to Essays and Articles I wrote.",
                 },
                 {
-                    'text' => "Computing",
-                    'url' => "philosophy/computers/",
-                    'title' => "Computing-related Essays and Articles",
-                    'expand' => { 're' => "^(?:philosophy/computers/|prog-evolution)", },
-                    'subs' =>
+                    text => "Computing",
+                    url => "philosophy/computers/",
+                    title => "Computing-related Essays and Articles",
+                    expand => { re => "^(?:philosophy/computers/|prog-evolution)", },
+                    subs =>
                     [
                         {
-                            'text' => "Open Source",
-                            'url' => "philosophy/computers/open-source/",
-                            'title' => "Essays about Free and Open Source Software (FOSS)",
+                            text => "Open Source",
+                            url => "philosophy/computers/open-source/",
+                            title => "Essays about Free and Open Source Software (FOSS)",
                         },
                         {
-                            'text' => "Software Management",
-                            'url' => "philosophy/computers/software-management/",
-                            'title' => "Essays about how to manage software workplaces, projects and teams",
+                            text => "Software Management",
+                            url => "philosophy/computers/software-management/",
+                            title => "Essays about how to manage software workplaces, projects and teams",
                         },
                         {
-                            'text' => "Perl",
-                            'url' => "philosophy/computers/perl/",
-                            'title' => "Essays about the Perl programming language",
+                            text => "Perl",
+                            url => "philosophy/computers/perl/",
+                            title => "Essays about the Perl programming language",
                         },
                         {
-                            'text' => "The Web (WWW)",
-                            'url' => "philosophy/computers/web/",
-                            'title' => "About the World-Wide-Web",
+                            text => "The Web (WWW)",
+                            url => "philosophy/computers/web/",
+                            title => "About the World-Wide-Web",
                         },
                         {
-                            'text' => "Education",
-                            'url' => "philosophy/computers/education/",
-                            'title' => "About Computer and Technical Education",
+                            text => "Education",
+                            url => "philosophy/computers/education/",
+                            title => "About Computer and Technical Education",
                         },
                     ],
                 },
                 {
-                    'text' => "Political Essays",
-                    'url' => "philosophy/politics/",
-                    'title' => "Essays about Politics and" . 
+                    text => "Political Essays",
+                    url => "philosophy/politics/",
+                    title => "Essays about Politics and" . 
                         "Philosophical Politics",
-                    'expand' => { 're' => "^philosophy/politics/", },
+                    expand => { re => "^philosophy/politics/", },
                 },
                 {
-                    'text' => "General Philosophy",
-                    'url' => "philosophy/philosophy/",
-                    'expand' => { 're' => "^philosophy/(philosophy/|the-eternal-jew/)" },
+                    text => "General Philosophy",
+                    url => "philosophy/philosophy/",
+                    expand => { re => "^philosophy/(philosophy/|the-eternal-jew/)" },
                 },
             ],
         },
         {
-            'separator' => 1,
-            'skip' => 1,
+            separator => 1,
+            skip => 1,
         },
         {
-            'text' => "Cool Links",
-            'url' => "links.html",
-            'title' => "An incomplete list of links I find cool and/or useful.",
+            text => "Cool Links",
+            url => "links.html",
+            title => "An incomplete list of links I find cool and/or useful.",
         },
         {
-            'text' => "Recommendations",
-            'url' => "recommendations/",
-            'title' => "Recommendations of Books, Compact Discs, Movies, etc.",
+            text => "Recommendations",
+            url => "recommendations/",
+            title => "Recommendations of Books, Compact Discs, Movies, etc.",
         },
         {
-            'separator' => 1,
-            'skip' => 1,
+            separator => 1,
+            skip => 1,
         },
         {
-            'url' => "site-map/",
-            'text' => "Site Map",
-            'title' => "A site map showing all of the main pages.",
+            url => "site-map/",
+            text => "Site Map",
+            title => "A site map showing all of the main pages.",
         },
         {
-            'separator' => 1,
-            'skip' => 1,
+            separator => 1,
+            skip => 1,
         },
         {
-            'expand_re' => "^meta/",
-            'url' => "meta/",
-            'text' => "Meta Info",
-            'title' => "Information about this Site",
-            'show_always' => 1,
-            'subs' =>
+            expand_re => "^meta/",
+            url => "meta/",
+            text => "Meta Info",
+            title => "Information about this Site",
+            show_always => 1,
+            subs =>
             [
                 {
-                    'url' => "meta/FAQ/",
-                    'text' => "FAQ",
-                    'title' => "Frequently Asked Questions and Answers List (FAQ)",
+                    url => "meta/FAQ/",
+                    text => "FAQ",
+                    title => "Frequently Asked Questions and Answers List (FAQ)",
                 },
                 {
-                    'url' => "meta/privacy-policy/",
-                    'text' => "Privacy Policy",
+                    url => "meta/privacy-policy/",
+                    text => "Privacy Policy",
                 },
                 {
-                    'url' => "meta/site-source/",
-                    'text' => "Site's Source",
-                    'title' => "The source code used to generate this site",
+                    url => "meta/site-source/",
+                    text => "Site's Source",
+                    title => "The source code used to generate this site",
                 },
                 {
-                    'url' => "meta/how-to-help/",
-                    'text' => "How to Help",
-                    'title' => "How you can help promote this site",
-                    'subs' =>                     
+                    url => "meta/how-to-help/",
+                    text => "How to Help",
+                    title => "How you can help promote this site",
+                    subs =>                     
                     [
                         {
-                            'url' => "meta/donate/",
-                            'text' => "Please Donate",
+                            url => "meta/donate/",
+                            text => "Please Donate",
                         },
                     ],
                 },
                 {
-                    'url' => "meta/hosting/",
-                    'text' => "Hosting",
-                    'title' => "About this site's hosting provider.",
+                    url => "meta/hosting/",
+                    text => "Hosting",
+                    title => "About this site's hosting provider.",
                 },
             ],
         },
 {
     return 
         (
-            'hosts' => $hosts,
-            'tree_contents' => $tree_contents,
+            hosts => $hosts,
+            tree_contents => $tree_contents,
         );
 }
 

File lib/Shlomif/Homepage/SectionMenu/Sects/Essays.pm

View file
 
 my $essays_tree_contents =
 {
-    'host' => "t2",
-    'text' => "Shlomi Fish's Essays",
-    'title' => "Shlomi Fish's Essays",
-    'show_always' => 1,
-    'subs' =>
+    host => "t2",
+    text => "Shlomi Fish's Essays",
+    title => "Shlomi Fish's Essays",
+    show_always => 1,
+    subs =>
     [
         {
-            'text' => "Essays",
-            'url' => "philosophy/",
-            'title' => "Nav Menu for Shlomi Fish's Essays",
+            text => "Essays",
+            url => "philosophy/",
+            title => "Nav Menu for Shlomi Fish's Essays",
         },
         {
-            'text' => "Index to Essays",
-            'url' => "philosophy/Index/",
-            'title' => "Index to Essays and Articles I wrote.",
+            text => "Index to Essays",
+            url => "philosophy/Index/",
+            title => "Index to Essays and Articles I wrote.",
         },
         {
-            'text' => "Recommended Books",
-            'url' => "philosophy/books-recommends/",
-            'title' => "Recommendations of Good Books I read and was Enlightened by.",
+            text => "Recommended Books",
+            url => "philosophy/books-recommends/",
+            title => "Recommendations of Good Books I read and was Enlightened by.",
         },
         {
-            'text' => "Computing",
-            'url' => "philosophy/computers/",
-            'title' => "Computing-related Essays and Articles",
-            'subs' =>
+            text => "Computing",
+            url => "philosophy/computers/",
+            title => "Computing-related Essays and Articles",
+            subs =>
             [
                 {
-                    'text' => "When C is the Best?",
-                    'url' => "philosophy/computers/when-c-is-best/",
-                    'title' => "An Essay that Explains when the C Language should be used instead of Other Languages",
-                    'subs' =>
+                    text => "When C is the Best?",
+                    url => "philosophy/computers/when-c-is-best/",
+                    title => "An Essay that Explains when the C Language should be used instead of Other Languages",
+                    subs =>
                     [
                         {
-                            'text' => "The Text Itself",
-                            'url' => "philosophy/computers/when-c-is-best/when-c-is-the-best.html",
+                            text => "The Text Itself",
+                            url => "philosophy/computers/when-c-is-best/when-c-is-the-best.html",
                         },
                     ],
                 },
                 {
-                    'text' => "Open Source",
-                    'url' => "philosophy/computers/open-source/",
+                    text => "Open Source",
+                    url => "philosophy/computers/open-source/",
                     subs =>
                     [
                         {
-                            'text' => "What is Open Source?",
-                            'url' => "philosophy/foss-other-beasts/",
-                            'title' => "Open Source, Free Software and Other Beasts",
+                            text => "What is Open Source?",
+                            url => "philosophy/foss-other-beasts/",
+                            title => "Open Source, Free Software and Other Beasts",
                         },
                         {
-                            'text' => "How to Contribute to Open Source",
-                            'url' => "philosophy/computers/open-source/how-to-start-contributing/",
-                            'title' => "How can one start contributing to free and open-source software (FOSS)",
+                            text => "How to Contribute to Open Source",
+                            url => "philosophy/computers/open-source/how-to-start-contributing/",
+                            title => "How can one start contributing to free and open-source software (FOSS)",
                         },
                         {
-                            'text' => "GPL, BSD and Suckerism",
-                            'url' => "philosophy/computers/open-source/gpl-bsd-and-suckerism/",
-                            'title' => "The GPL, The BSD Licence and Being a Sucker",
+                            text => "GPL, BSD and Suckerism",
+                            url => "philosophy/computers/open-source/gpl-bsd-and-suckerism/",
+                            title => "The GPL, The BSD Licence and Being a Sucker",
                         },
                         {
-                            'text' => "The Linus Bus Factor",
-                            'url' => "philosophy/computers/open-source/linus-torvalds-bus-factor/",
-                            'title' => "The Virtue of Multiple Committers and Overthrowing the Benevolent Dictator",
+                            text => "The Linus Bus Factor",
+                            url => "philosophy/computers/open-source/linus-torvalds-bus-factor/",
+                            title => "The Virtue of Multiple Committers and Overthrowing the Benevolent Dictator",
                         },
                         {
-                            'text' => "FOSS Licences Wars",
-                            'url' => "philosophy/computers/open-source/foss-licences-wars/",
-                            'title' => "An overview of open-source licences and some recommendations and opinions",
+                            text => "FOSS Licences Wars",
+                            url => "philosophy/computers/open-source/foss-licences-wars/",
+                            title => "An overview of open-source licences and some recommendations and opinions",
                         },
                     ],
                 },
                 {
-                    'text' => "Software Management",
-                    'url' => "philosophy/computers/software-management/",
-                    'title' => "Managing Software Teams, People, Projects",
+                    text => "Software Management",
+                    url => "philosophy/computers/software-management/",
+                    title => "Managing Software Teams, People, Projects",
                     subs =>
                     [
                         {
-                            'text' => "The End of IT Slavery",
-                            'url' => "philosophy/computers/software-management/end-of-it-slavery/",
-                            'title' => "The end of Info-Tech/High-Tech slavery - if you want great people to work for you, make sure they love your workplace",
+                            text => "The End of IT Slavery",
+                            url => "philosophy/computers/software-management/end-of-it-slavery/",
+                            title => "The end of Info-Tech/High-Tech slavery - if you want great people to work for you, make sure they love your workplace",
                         },
                         {
-                            'text' => "The Perfect Info-Tech Workplace",
-                            'url' => "philosophy/computers/software-management/perfect-workplace/",
-                            'title' => "How to make an Info-Tech Workplace Where Programmers Will Be Happy, Want to Stay, Be Super-Productive and Efficient and will Rave About",
+                            text => "The Perfect Info-Tech Workplace",
+                            url => "philosophy/computers/software-management/perfect-workplace/",
+                            title => "How to make an Info-Tech Workplace Where Programmers Will Be Happy, Want to Stay, Be Super-Productive and Efficient and will Rave About",
                             subs =>
                             [
                                 {
-                                    'text' => "Revision 1",
-                                    'url' => "philosophy/computers/software-management/perfect-workplace/perfect-it-workplace.xhtml",
+                                    text => "Revision 1",
+                                    url => "philosophy/computers/software-management/perfect-workplace/perfect-it-workplace.xhtml",
                                 },
                             ],
                         },
                     ],
                 },
                 {
-                    'text' => "What Makes Software High-Quality?",
-                    'url' => "philosophy/computers/high-quality-software/",
-                    'subs' =>
+                    text => "What Makes Software High-Quality?",
+                    url => "philosophy/computers/high-quality-software/",
+                    subs =>
                     [
                         {
-                            'text' => "2nd Revision",
-                            'url' => "philosophy/computers/high-quality-software/rev2/",
-                            'title' => "'What Makes Software High Quality?' - Revision 2",
+                            text => "2nd Revision",
+                            url => "philosophy/computers/high-quality-software/rev2/",
+                            title => "'What Makes Software High Quality?' - Revision 2",
                         },
                     ],
                 },
                 {
-                    'text' => "Optimising Code for Speed",
-                    'url' => "philosophy/computers/optimizing-code-for-speed/",
+                    text => "Optimising Code for Speed",
+                    url => "philosophy/computers/optimizing-code-for-speed/",
                 },
                 {
-                    'text' => "Perl",
-                    'url' => "philosophy/computers/perl/",
-                    'title' => "Articles Related to the Perl Programming Language",
+                    text => "Perl",
+                    url => "philosophy/computers/perl/",
+                    title => "Articles Related to the Perl Programming Language",
                     subs =>
                     [
                         {
-                            'text' => "Perl & Newcomers",
-                            'url' => "philosophy/perl-newcomers/",
-                            'title' => ""Usability" of the Perl Online World for Newcomers",
+                            text => "Perl & Newcomers",
+                            url => "philosophy/perl-newcomers/",
+                            title => ""Usability" of the Perl Online World for Newcomers",
                         },
                         {
-                            'text' => "The Joy of Perl",
-                            'url' => "philosophy/computers/perl/joy-of-perl/",
-                            'title' => "An Essay about why I Like Perl so much.",
-                            'subs' =>
+                            text => "The Joy of Perl",
+                            url => "philosophy/computers/perl/joy-of-perl/",
+                            title => "An Essay about why I Like Perl so much.",
+                            subs =>
                             [
                                 {
-                                    'text' => "The Text Itself",
-                                    'url' => "philosophy/computers/perl/joy-of-perl/joy-of-perl.html",
+                                    text => "The Text Itself",
+                                    url => "philosophy/computers/perl/joy-of-perl/joy-of-perl.html",
                                 },
                             ],
                         },
                         {
-                            'text' => "Perl 6 Critique",
-                            'url' => "philosophy/computers/perl/perl6-critique/",
-                            'title' => "Critique of where Perl 6 is Heading",
+                            text => "Perl 6 Critique",
+                            url => "philosophy/computers/perl/perl6-critique/",
+                            title => "Critique of where Perl 6 is Heading",
                         },
                     ],
                 },
                     subs =>
                     [
                         {
-                            'text' => "Create a Homesite",
-                            'url' => "philosophy/computers/web/create-a-great-personal-homesite/",
-                            'title' => "Create a Great Personal Homesite",
-                            'subs' =>
+                            text => "Create a Homesite",
+                            url => "philosophy/computers/web/create-a-great-personal-homesite/",
+                            title => "Create a Great Personal Homesite",
+                            subs =>
                             [
                                 {
-                                    'text' => "Revision 2",
-                                    'url' => "philosophy/computers/web/create-a-great-personal-homesite/rev2.html",
+                                    text => "Revision 2",
+                                    url => "philosophy/computers/web/create-a-great-personal-homesite/rev2.html",
                                 },
                             ],
                         },
                         {
-                            'text' => "Which Wiki?",
-                            'url' => "philosophy/computers/web/which-wiki/",
-                            'title' => "Which Open Source Wiki Engine Works for you",
-                            'subs' =>
+                            text => "Which Wiki?",
+                            url => "philosophy/computers/web/which-wiki/",
+                            title => "Which Open Source Wiki Engine Works for you",
+                            subs =>
                             [
                                 {
-                                    'text' => "July 2006 Update",
-                                    'url' => "philosophy/computers/web/which-wiki/update-2006-07/",
+                                    text => "July 2006 Update",
+                                    url => "philosophy/computers/web/which-wiki/update-2006-07/",
                                 },
                             ],
                         },
                         {
-                            'text' => "Choice of Doc Formats",
-                            'url' => "philosophy/computers/web/choice-of-docs-formats/",
-                            'title' => "Coverage of the Current Choice of Document Formats",
+                            text => "Choice of Doc Formats",
+                            url => "philosophy/computers/web/choice-of-docs-formats/",
+                            title => "Coverage of the Current Choice of Document Formats",
                         },
                         {
-                            'text' => "The \"Use qmail instead\" Syndrome",
-                            'url' => "philosophy/computers/web/use-qmail-instead/",
+                            text => "The \"Use qmail instead\" Syndrome",
+                            url => "philosophy/computers/web/use-qmail-instead/",
                         },
                         {
-                            'text' => "Homepage vs. Blog",
-                            'url' => "philosophy/computers/web/homepage-vs-blog/",
+                            text => "Homepage vs. Blog",
+                            url => "philosophy/computers/web/homepage-vs-blog/",
                         },
                         {
-                            'text' => "Online Communities",
-                            'url' => "philosophy/computers/web/online-communities/",
-                            'title' => "Reflections on Online Communities",
+                            text => "Online Communities",
+                            url => "philosophy/computers/web/online-communities/",
+                            title => "Reflections on Online Communities",
                         },
                     ],
                 },
                 {
-                    'text' => "Education",
-                    'url' => "philosophy/computers/education/",
-                    'title' => "Articles about Computer Learning and Education",
-                    'subs' =>
+                    text => "Education",
+                    url => "philosophy/computers/education/",
+                    title => "Articles about Computer Learning and Education",
+                    subs =>
                     [
                         {
-                            'text' => "EE in the Technion",
-                            'url' => "philosophy/computers/education/opinion-on-the-technion/",
-                            'title' => "My Opinion on Electrical Engineering Stuies in the Technion",
+                            text => "EE in the Technion",
+                            url => "philosophy/computers/education/opinion-on-the-technion/",
+                            title => "My Opinion on Electrical Engineering Stuies in the Technion",
                         },
                         {
-                            'text' => "Best Introudctory Language",
-                            'url' => "philosophy/computers/education/introductory-language/",
-                            'title' => "What is the best Introductory Programming Language?",
+                            text => "Best Introudctory Language",
+                            url => "philosophy/computers/education/introductory-language/",
+                            title => "What is the best Introductory Programming Language?",
                         },
                     ],
                 },
                 {
-                    'text' => "My Memoirs",
-                    'url' => "prog-evolution/",
-                    'title' => "My Memoirs as a Programmer",
-                    'subs' =>
+                    text => "My Memoirs",
+                    url => "prog-evolution/",
+                    title => "My Memoirs as a Programmer",
+                    subs =>
                     [
                         {
-                            'text' => "Pre-Elpas",
-                            'url' => "prog-evolution/pre-elpas.html",
-                            'title' => ("Memoirs as a Programmer from" 
+                            text => "Pre-Elpas",
+                            url => "prog-evolution/pre-elpas.html",
+                            title => ("Memoirs as a Programmer from" 
                                 . " Elementary School, High School, etc."),
                         },
                         {
-                            'text' => "At Elpas",
-                            'url' => "prog-evolution/shlomif-at-elpas.html",
-                            'title' => ("Memoirs as a Programmer from"
+                            text => "At Elpas",
+                            url => "prog-evolution/shlomif-at-elpas.html",
+                            title => ("Memoirs as a Programmer from"
                                 . " Elpas, which was my first workplace as a"
                                 . " programmer"
                             ),
             ],
         },
         {
-            'text' => "Political Essays",
-            'url' => "philosophy/politics/",
-            'title' => "Essays about Politics and Philosophical Politics",
-            'subs' =>
+            text => "Political Essays",
+            url => "philosophy/politics/",
+            title => "Essays about Politics and Philosophical Politics",
+            subs =>
             [
                 {
-                    'text' => "Objectivism and Open Source",
-                    'url' => "philosophy/obj-oss/",
-                    'title' => "Objectivism and Open Source",
-                    'subs' =>
+                    text => "Objectivism and Open Source",
+                    url => "philosophy/obj-oss/",
+                    title => "Objectivism and Open Source",
+                    subs =>
                     [
                         {
-                            'text' => "Revision 2",
-                            'url' => "philosophy/obj-oss/rev2/",
-                            'title' => "Revision 2 of the Objectivism and Open Source Article",
+                            text => "Revision 2",
+                            url => "philosophy/obj-oss/rev2/",
+                            title => "Revision 2 of the Objectivism and Open Source Article",
                         },
                     ],
                 },
                 {
-                    'text' => "Israeli-Palestinian Conflict",
-                    'url' => "philosophy/israel-pales/",
-                    'title' => "A Solution to the Israeli Palestinian Conflict",
+                    text => "Israeli-Palestinian Conflict",
+                    url => "philosophy/israel-pales/",
+                    title => "A Solution to the Israeli Palestinian Conflict",
                 },
                 {
-                    'text' => "Case for File Swapping",
-                    'url' => "philosophy/case-for-file-swapping/",
-                    'title' => "Why File Swapping is Ethical and Moral and should be Legal",
-                    'subs' =>
+                    text => "Case for File Swapping",
+                    url => "philosophy/case-for-file-swapping/",
+                    title => "Why File Swapping is Ethical and Moral and should be Legal",
+                    subs =>
                     [
                         {
-                            'text' => "Revision 3 Text",
-                            'url' => "philosophy/case-for-file-swapping/revision-3/",
-                            'title' => "Text of the Third Revision",
+                            text => "Revision 3 Text",
+                            url => "philosophy/case-for-file-swapping/revision-3/",
+                            title => "Text of the Third Revision",
                         },
                     ],
                 },
                 {
-                    'text' => "Why Scientology is Bad",
-                    'url' => "philosophy/politics/why-scientology-is-bad/",
-                    'title' => "How I Concluded that Scientology is Bad",
+                    text => "Why Scientology is Bad",
+                    url => "philosophy/politics/why-scientology-is-bad/",
+                    title => "How I Concluded that Scientology is Bad",
                 },
                 {
-                    'text' => "Case for Drug Legalisation",
-                    'url' => "philosophy/politics/drug-legalisation/",
-                    'title' => "Why the War on Drugs is the Real Drug Problem",
-                    'subs' =>
+                    text => "Case for Drug Legalisation",
+                    url => "philosophy/politics/drug-legalisation/",
+                    title => "Why the War on Drugs is the Real Drug Problem",
+                    subs =>
                     [
                         {
-                            'text' => "Hebrew Translation",
-                            'url' => "philosophy/politics/drug-legalisation/hebrew.html",
+                            text => "Hebrew Translation",
+                            url => "philosophy/politics/drug-legalisation/hebrew.html",
                         },
                     ],
                 },
                 {
-                    'text' => "Define \"Zionism\"!",
-                    'url' => "philosophy/politics/define-zionism/",
-                    'title' => ("What is "Zionism" really? What " . 
+                    text => "Define \"Zionism\"!",
+                    url => "philosophy/politics/define-zionism/",
+                    title => ("What is "Zionism" really? What " . 
                         "does anti-Israel, anti-Zionist, etc. mean?"),
-                    'subs' =>
+                    subs =>
                     [
                         {
-                            'text' => "Hebrew Translation",
-                            'url' => "philosophy/politics/define-zionism/heb/",
+                            text => "Hebrew Translation",
+                            url => "philosophy/politics/define-zionism/heb/",
                         },
                     ],
                 },
                 {
-                    'text' => "Dispelling Some Myths about Israel",
-                    'url' => "philosophy/politics/dispelling-myths-about-israel/",
+                    text => "Dispelling Some Myths about Israel",
+                    url => "philosophy/politics/dispelling-myths-about-israel/",
                 },
                 {
-                    'text' => "Opinion on DeCSS",
-                    'url' => "DeCSS/",
-                    'title' => "My Opinion on the DeCSS (= DVDs' de-scrambling code) fiasco",
+                    text => "Opinion on DeCSS",
+                    url => "DeCSS/",
+                    title => "My Opinion on the DeCSS (= DVDs' de-scrambling code) fiasco",
                 },
             ],
         },
         {
-            'text' => "Philosophy",
-            'url' => "philosophy/philosophy/",
-            'title' => "Writings about General Philosophy",
-            'subs' =>
+            text => "Philosophy",
+            url => "philosophy/philosophy/",
+            title => "Writings about General Philosophy",
+            subs =>
             [
                 {
-                    'text' => "The Eternal Jew",
-                    'url' => "philosophy/the-eternal-jew/",
-                    'title' => "The Eternal Jew - An Essay about the value of Self",
+                    text => "The Eternal Jew",
+                    url => "philosophy/the-eternal-jew/",
+                    title => "The Eternal Jew - An Essay about the value of Self",
                 },
                 {
-                    'text' => "Guide to Neo-Tech",
-                    'url' => "philosophy/philosophy/guide-to-neo-tech/",
+                    text => "Guide to Neo-Tech",
+                    url => "philosophy/philosophy/guide-to-neo-tech/",
                 },
                 {
-                    'text' => "Advice for the Young",
-                    'url' => "philosophy/philosophy/advice-for-the-young/",
-                    'title' => "Advice for the Young (and for the not-so Young)",
+                    text => "Advice for the Young",
+                    url => "philosophy/philosophy/advice-for-the-young/",
+                    title => "Advice for the Young (and for the not-so Young)",
                 },
                 {
-                    'text' => "Why Closed Books are So 19th Century",
-                    'url' => "philosophy/philosophy/closed-books-are-so-19th-century/",
-                    'title' => "Why authors of books should make sure they are publically available online.",
+                    text => "Why Closed Books are So 19th Century",
+                    url => "philosophy/philosophy/closed-books-are-so-19th-century/",
+                    title => "Why authors of books should make sure they are publically available online.",
                 },
             ],
         },
         {
-            'text' => "Psychology",
-            'url' => "philosophy/psychology/",
-            'title' => "Writings about Psychology",
-            'subs' =>
+            text => "Psychology",
+            url => "philosophy/psychology/",
+            title => "Writings about Psychology",
+            subs =>
             [
                 {
-                    'text' => "The Elephant in the Circus",
-                    'url' => "philosophy/psychology/elephant-in-the-circus/",
-                    'title' => "A (non-original) story with self-growth implications",
-                    'subs' =>
+                    text => "The Elephant in the Circus",
+                    url => "philosophy/psychology/elephant-in-the-circus/",
+                    title => "A (non-original) story with self-growth implications",
+                    subs =>
                     [
                         {
-                            'text' => "Hebrew Translation",
-                            'url' => "philosophy/psychology/elephant-in-the-circus/hebrew.html",
+                            text => "Hebrew Translation",
+                            url => "philosophy/psychology/elephant-in-the-circus/hebrew.html",
                         },
                     ],
                 },
             ],
         },
         {
-            'text' => "Random Ideas",
-            'url' => "philosophy/ideas/",
-            'title' => "Various Random (and Practical) Ideas I Have",
-            'subs' =>
+            text => "Random Ideas",
+            url => "philosophy/ideas/",
+            title => "Various Random (and Practical) Ideas I Have",
+            subs =>
             [
                 {
-                    'text' => "Fortunes Mania",
-                    'url' => "philosophy/ideas/fortunes-mania/",
-                    'title' => "A community site for collecting and organising fortune cookies",
+                    text => "Fortunes Mania",
+                    url => "philosophy/ideas/fortunes-mania/",
+                    title => "A community site for collecting and organising fortune cookies",
                 },
                 {
-                    'text' => "Unixdoc",
-                    'url' => "philosophy/ideas/unixdoc/",
-                    'title' => "An Integrated Offline and Online Documentation Framework",
+                    text => "Unixdoc",
+                    url => "philosophy/ideas/unixdoc/",
+                    title => "An Integrated Offline and Online Documentation Framework",
                 },
             ],
         },
         {
-            'text' => "By Others",
-            'url' => "philosophy/by-others/",
+            text => "By Others",
+            url => "philosophy/by-others/",
             subs =>
             [
                 {
-                    'text' => "James Carr - "Completely Overrated"",
-                    'url' => "philosophy/by-others/james-carr--completely-overrated.html",
-                    'title' => "James Carr about the anti-Muslim Cartoons",
+                    text => "James Carr - "Completely Overrated"",
+                    url => "philosophy/by-others/james-carr--completely-overrated.html",
+                    title => "James Carr about the anti-Muslim Cartoons",
                 },
                 {
-                    'text' => "Hebrew Translation of "Ten Reasons for Web Standards"",
-                    'url' => "philosophy/by-others/mashhoor--10-reasons--hebrew.html",
-                    'title' => "10 Reasons for Companies to Consider Web Standards - Hebrew Translation",
+                    text => "Hebrew Translation of "Ten Reasons for Web Standards"",
+                    url => "philosophy/by-others/mashhoor--10-reasons--hebrew.html",
+                    title => "10 Reasons for Companies to Consider Web Standards - Hebrew Translation",
                 },
             ],
         },
 {
     return 
         (
-            'hosts' => MyNavData::get_hosts(),
-            'tree_contents' => $essays_tree_contents,
+            hosts => MyNavData::get_hosts(),
+            tree_contents => $essays_tree_contents,
         );
 }
 

File lib/Shlomif/Homepage/SectionMenu/Sects/Humour.pm

View file
 
 my $humour_tree_contents =
 {
-    'host' => "t2",
-    'text' => "Shlomi Fish's Stories and Aphorisms",
-    'title' => "Shlomi Fish's Stories and Aphorisms",
-    'show_always' => 1,
-    'subs' =>
+    host => "t2",
+    text => "Shlomi Fish's Stories and Aphorisms",
+    title => "Shlomi Fish's Stories and Aphorisms",
+    show_always => 1,
+    subs =>
     [
         {
-            'text' => "Stories and Aphorisms",
-            'url' => "humour/",
+            text => "Stories and Aphorisms",
+            url => "humour/",
         },
         {
-            'text' => "Stories",
-            'url' => "humour/stories/",
-            'subs' =>
+            text => "Stories",
+            url => "humour/stories/",
+            subs =>
             [
                 {
-                    'text' => "The Enemy",
-                    'url' => "humour/TheEnemy/",
-                    'title' => "The Enemy and How I Helped to Fight it",
-                    'subs' =>
+                    text => "The Enemy",
+                    url => "humour/TheEnemy/",
+                    title => "The Enemy and How I Helped to Fight it",
+                    subs =>
                     [
                         {
-                            'text' => "Text in Hebrew",
-                            'url' => "humour/TheEnemy/The-Enemy-rev5.html",
-                            'title' => "Text of "The Enemy" In Hebrew",
+                            text => "Text in Hebrew",
+                            url => "humour/TheEnemy/The-Enemy-rev5.html",
+                            title => "Text of "The Enemy" In Hebrew",
                         },
                         {
-                            'text' => "Text in English",
-                            'url' => "humour/TheEnemy/The-Enemy-English-rev5.html",
-                            'title' => "Text of "The Enemy" In English",
+                            text => "Text in English",
+                            url => "humour/TheEnemy/The-Enemy-English-rev5.html",
+                            title => "Text of "The Enemy" In English",
                         },
                     ],
                 },
                 {
-                    'text' => "Road to Heaven",
-                    'url' => "humour/RoadToHeaven/",
-                    'title' => "The Road to Heaven is Paved with Bad Intentions",
+                    text => "Road to Heaven",
+                    url => "humour/RoadToHeaven/",
+                    title => "The Road to Heaven is Paved with Bad Intentions",
                 },
                 {
-                    'text' => "TOW The Fountainhead",
-                    'url' => "humour/TOWTF/",
-                    'title' => "A Parody on "The Fountainhead"",
-                    'subs' =>
+                    text => "TOW The Fountainhead",
+                    url => "humour/TOWTF/",
+                    title => "A Parody on "The Fountainhead"",
+                    subs =>
                     [
                         {
-                            'text' => "Part 1",
+                            text => "Part 1",
                             url => "humour/TOWTF/TOW_Fountainhead_1.html",
                         },
                         {
-                            'text' => "Part 2",
+                            text => "Part 2",
                             url => "humour/TOWTF/TOW_Fountainhead_2.html",
                         },
                     ],
                 },
                 {
-                    'text' => "The Pope Died on Sunday",
-                    'url' => "humour/Pope/",
-                    'title' => "An Insane Week in the Life of a Female American Graphics Artist",
-                    'subs' =>
+                    text => "The Pope Died on Sunday",
+                    url => "humour/Pope/",
+                    title => "An Insane Week in the Life of a Female American Graphics Artist",
+                    subs =>
                     [
                         {
-                            'text' => "Hebrew Text",
-                            'url' => "humour/Pope/The-Pope-Died-on-Sunday--Hebrew-Text.html",
+                            text => "Hebrew Text",
+                            url => "humour/Pope/The-Pope-Died-on-Sunday--Hebrew-Text.html",
                         },
                     ],
                 },
                 {
-                    'text' => "Humanity",
-                    'url' => "humour/humanity/",
-                    'title' => "A Parody about Humanity and Modern Life in Particular",
-                    'subs' =>
+                    text => "Humanity",
+                    url => "humour/humanity/",
+                    title => "A Parody about Humanity and Modern Life in Particular",
+                    subs =>
                     [
                         {
-                            'text' => "Ongoing Text",
-                            'url' => "humour/humanity/ongoing-text.html",
-                            'title' => "Ongoing Text of the Screenplay",
+                            text => "Ongoing Text",
+                            url => "humour/humanity/ongoing-text.html",
+                            title => "Ongoing Text of the Screenplay",
                         },
                         {
-                            'text' => "\"Buy the Fish\" Song in Hebrew",
-                            'url' => "humour/humanity/buy-the-fish-in-hebrew.html",
+                            text => "\"Buy the Fish\" Song in Hebrew",
+                            url => "humour/humanity/buy-the-fish-in-hebrew.html",
                         },
                     ],
                 },
                 {
-                    'text' => "Human Hacking Field Guide",
-                    'url' => "humour/human-hacking/",
-                    'title' => "Story about Teenage Computer Enthusiasts in 2005's Los Angeles",
-                    'subs' =>
+                    text => "Human Hacking Field Guide",
+                    url => "humour/human-hacking/",
+                    title => "Story about Teenage Computer Enthusiasts in 2005's Los Angeles",
+                    subs =>
                     [
                         {
-                            'text' => "Conclusions and Reviews",
-                            'url' => "humour/human-hacking/conclusions/",
+                            text => "Conclusions and Reviews",
+                            url => "humour/human-hacking/conclusions/",
                         },
                     ],
                 },
                 {
-                    'text' => "Star Trek: We the Living Dead",
-                    'url' => "humour/Star-Trek/We-the-Living-Dead/",
-                    'subs' =>
+                    text => "Star Trek: We the Living Dead",
+                    url => "humour/Star-Trek/We-the-Living-Dead/",
+                    subs =>
                     [
                         {
-                            'text' => "Ongoing Text",
-                            'url' => "humour/Star-Trek/We-the-Living-Dead/ongoing-text.html",
-                            'title' => "Ongoing Text of the Screenplay",
+                            text => "Ongoing Text",
+                            url => "humour/Star-Trek/We-the-Living-Dead/ongoing-text.html",
+                            title => "Ongoing Text of the Screenplay",
                         },
                     ],
                 },
                 {
-                    'text' => "The Blue Rabbit's Log",
-                    'url' => "humour/Blue-Rabbit-Log/",
-                    'title' => "Movies that Parody Role-Playing Games",
-                    'subs' =>
+                    text => "The Blue Rabbit's Log",
+                    url => "humour/Blue-Rabbit-Log/",
+                    title => "Movies that Parody Role-Playing Games",
+                    subs =>
                     [
                         {
-                            'text' => "Part I",
-                            'url' => "humour/Blue-Rabbit-Log/part-1.html",
-                            'title' => "Ongoing Text of the First Part",
+                            text => "Part I",
+                            url => "humour/Blue-Rabbit-Log/part-1.html",
+                            title => "Ongoing Text of the First Part",
                         },
                         {
-                            'text' => "Random Ideas",
-                            'url' => "humour/Blue-Rabbit-Log/ideas.xhtml",
-                            'title' => "Random ideas and future excerpts",
+                            text => "Random Ideas",
+                            url => "humour/Blue-Rabbit-Log/ideas.xhtml",
+                            title => "Random ideas and future excerpts",
                         },
                     ],
                 },
             ],
         },
         {
-            'text' => "Aphorisms and Quotes",
-            'url' => "humour/aphorisms/",
-            'subs' =>
+            text => "Aphorisms and Quotes",
+            url => "humour/aphorisms/",
+            subs =>
             [
                 {
-                    'text' => "My Aphorisms Collection",
-                    'url' => "humour.html",
-                    'title' => "Collection of my own Funny (or Insightful) Quotes and Aphorisms",
+                    text => "My Aphorisms Collection",
+                    url => "humour.html",
+                    title => "Collection of my own Funny (or Insightful) Quotes and Aphorisms",
                 },
                 {
-                    'text' => "Fortune Cookies Collection",
-                    'url' => "humour/fortunes/",
-                    'title' => "Collection of Quotes by Me and Others in the UNIX Fortune Format",
-                    'subs' =>
+                    text => "Fortune Cookies Collection",
+                    url => "humour/fortunes/",
+                    title => "Collection of Quotes by Me and Others in the UNIX Fortune Format",
+                    subs =>
                     [
                         {
-                            'text' => "friends",
-                            'url' => "humour/fortunes/friends.html",
-                            'title' => "Excerpts from the T.V. Show "Friends^quot;",
+                            text => "friends",
+                            url => "humour/fortunes/friends.html",
+                            title => "Excerpts from the T.V. Show "Friends^quot;",
                         },
                         {
-                            'text' => "joel-on-software",
-                            'url' => "humour/fortunes/joel-on-software.html",
-                            'title' => "Quotes from "Joel on Software"",
+                            text => "joel-on-software",
+                            url => "humour/fortunes/joel-on-software.html",
+                            title => "Quotes from "Joel on Software"",
                         },
                         {
-                            'text' => "nyh-sigs",
-                            'url' => "humour/fortunes/nyh-sigs.html",
-                            'title' => "Nadav Har'El's Signatures",
+                            text => "nyh-sigs",
+                            url => "humour/fortunes/nyh-sigs.html",
+                            title => "Nadav Har'El's Signatures",
                         },
                         {
-                            'text' => "osp_rules",
-                            'url' => "humour/fortunes/osp_rules.html",
-                            'title' => "Rules of Open Source Programming",
+                            text => "osp_rules",
+                            url => "humour/fortunes/osp_rules.html",
+                            title => "Rules of Open Source Programming",
                         },
                         {
-                            'text' => "paul-graham",
-                            'url' => "humour/fortunes/paul-graham.html",
-                            'title' => "Paul Graham Quotes",
+                            text => "paul-graham",
+                            url => "humour/fortunes/paul-graham.html",
+                            title => "Paul Graham Quotes",
                         },
                         {
-                            'text' => "shlomif",
-                            'url' => "humour/fortunes/shlomif.html",
-                            'title' => "Quotes with my Participation",
+                            text => "shlomif",
+                            url => "humour/fortunes/shlomif.html",
+                            title => "Quotes with my Participation",
                         },
                         {
-                            'text' => "shlomif-fav",
-                            'url' => "humour/fortunes/shlomif-fav.html",
-                            'title' => "Other Favourite Quotes",
+                            text => "shlomif-fav",
+                            url => "humour/fortunes/shlomif-fav.html",
+                            title => "Other Favourite Quotes",
                         },
                         {
-                            'text' => "subversion",
-                            'url' => "humour/fortunes/subversion.html",
-                            'title' => "Quotes from the Online Folklore of the Subversion Version Control System",
+                            text => "subversion",
+                            url => "humour/fortunes/subversion.html",
+                            title => "Quotes from the Online Folklore of the Subversion Version Control System",
                         },
                         {
-                            'text' => "tinic",
-                            'url' => "humour/fortunes/tinic.html",
-                            'title' => "Quotes from the online Linux-IL Folklore",
+                            text => "tinic",
+                            url => "humour/fortunes/tinic.html",
+                            title => "Quotes from the online Linux-IL Folklore",
                         },
                         {
-                            'text' => "#perl",
-                            'url' => "humour/fortunes/sharp-perl.html",
-                            'title' => "Quotes from the Freenode #perl channel",
+                            text => "#perl",
+                            url => "humour/fortunes/sharp-perl.html",
+                            title => "Quotes from the Freenode #perl channel",
                         },
                         {
-                            'text' => "##programming",
-                            'url' => "humour/fortunes/sharp-programming.html",
-                            'title' => "Quotes from the Freenode ##programming channel",
+                            text => "##programming",
+                            url => "humour/fortunes/sharp-programming.html",
+                            title => "Quotes from the Freenode ##programming channel",
                         },
                         {
-                            'text' => "shlomif-factoids",
-                            'url' => "humour/fortunes/shlomif-factoids.html",
-                            'title' => "Funny Factoids about People and Things (Chuck Norris, etc.)",
+                            text => "shlomif-factoids",
+                            url => "humour/fortunes/shlomif-factoids.html",
+                            title => "Funny Factoids about People and Things (Chuck Norris, etc.)",
                         },
                     ],
                 },
            ],
         },
         {
-            'text' => "Small Scale",
-            'url' => "humour/bits/",
-            'title' => "Small Scale Creations",
-            'subs' =>
+            text => "Small Scale",
+            url => "humour/bits/",
+            title => "Small Scale Creations",
+            subs =>
             [
                 {
-                    'text' => "Ways to Do it",
-                    'url' => "humour/ways_to_do_it.html",
-                    'title' => "Ways to Do it According to the Programming Languages of the World",
+                    text => "Ways to Do it",
+                    url => "humour/ways_to_do_it.html",
+                    title => "Ways to Do it According to the Programming Languages of the World",
                 },
                 {
-                    'text' => "IRPWUG Announces Project WYSIWYT",
-                    'url' => "wysiwyt.html",
-                    'title' => "A Project by the International Really Pissed-off Windows User Group",
+                    text => "IRPWUG Announces Project WYSIWYT",
+                    url => "wysiwyt.html",
+                    title => "A Project by the International Really Pissed-off Windows User Group",
                 },
                 {
-                    'text' => "Wonderous are the Ways of Microsoft",
-                    'url' => "wonderous.html",
+                    text => "Wonderous are the Ways of Microsoft",
+                    url => "wonderous.html",
                 },
                 {
-                    'text' => "Spam for Everyone",
-                    'url' => "humour/bits/Spam-for-Everyone/",
-                    'title' => "The Campaign for Accessible Spam",
+                    text => "Spam for Everyone",
+                    url => "humour/bits/Spam-for-Everyone/",
+                    title => "The Campaign for Accessible Spam",
                 },
                 {
-                    'text' => "I Like Job Control",
-                    'url' => "humour/bits/I-Like-Job-Control/",
+                    text => "I Like Job Control",
+                    url => "humour/bits/I-Like-Job-Control/",
                 },
                 {
-                    'text' => "The GPL is not Compatible with Itself",
-                    'url' => "humour/bits/GPL-is-not-Compatible-with-Itself/",
+                    text => "The GPL is not Compatible with Itself",
+                    url => "humour/bits/GPL-is-not-Compatible-with-Itself/",
                 },
                 {
-                    'text' => "Introducing RMS-Lint",
-                    'url' => "humour/bits/RMS-Lint/",
+                    text => "Introducing RMS-Lint",
+                    url => "humour/bits/RMS-Lint/",
                 },
                 {
-                    'text' => "Cracka's Paradise",
-                    'url' => "humour/bits/Crackas-Paradise/",
+                    text => "Cracka's Paradise",
+                    url => "humour/bits/Crackas-Paradise/",
                 },
                 {
-                    'text' => "Mastering cat",
-                    'url' => "humour/bits/Mastering-Cat/",
+                    text => "Mastering cat",
+                    url => "humour/bits/Mastering-Cat/",
                 },
                 {
-                    'text' => "Programs Every Programmer Has Written",
-                    'url' => "humour/bits/Programs-Every-Programmer-has-Written/",
+                    text => "Programs Every Programmer Has Written",
+                    url => "humour/bits/Programs-Every-Programmer-has-Written/",
                 },
                 {
-                    'text' => "How many Wikipedia Editors does it take to Change a Lightbulb?",
-                    'url' => "humour/bits/How-many-Wikipedia-Editors/",
+                    text => "How many Wikipedia Editors does it take to Change a Lightbulb?",
+                    url => "humour/bits/How-many-Wikipedia-Editors/",
                 },
                 {
-                    'text' => "Announcing Freecell Solver™ Enterprise Edition",
-                    'url' => "humour/bits/Freecell-Solver-Enterprise-Edition/",
+                    text => "Announcing Freecell Solver™ Enterprise Edition",
+                    url => "humour/bits/Freecell-Solver-Enterprise-Edition/",
                 },
                 {
-                    'text' => "COBOL, the New Age Programming Language",
-                    'url' => "humour/bits/COBOL-the-New-Age-Programming-Language/",
+                    text => "COBOL, the New Age Programming Language",
+                    url => "humour/bits/COBOL-the-New-Age-Programming-Language/",
                 },
                 {
-                    'text' => "Copying Ubuntu Bug No. 1",
-                    'url' => "humour/bits/Copying-Ubuntu-Bug-No-1/",
+                    text => "Copying Ubuntu Bug No. 1",
+                    url => "humour/bits/Copying-Ubuntu-Bug-No-1/",
                 },
                 {
-                    'text' => "Collections of Facts",
-                    'url' => "humour/bits/facts/",
-                    'title' => "Collection of funny facts about various people an things",
-                    'subs' =>
+                    text => "Collections of Facts",
+                    url => "humour/bits/facts/",
+                    title => "Collection of funny facts about various people an things",
+                    subs =>
                     [
                         {
-                            'url' => "humour/bits/facts/Chuck-Norris/",
-                            'text' => "Chuck Norris",
+                            url => "humour/bits/facts/Chuck-Norris/",
+                            text => "Chuck Norris",
                         },
                         {
-                            'url' => "humour/bits/facts/Knuth/",
-                            'text' => "Knuth",
+                            url => "humour/bits/facts/Knuth/",
+                            text => "Knuth",
                         },
                         {
-                            'url' => "humour/bits/facts/Larry-Wall/",
-                            'text' => "Larry Wall",
+                            url => "humour/bits/facts/Larry-Wall/",
+                            text => "Larry Wall",
                         },
                         {
-                            'url' => "humour/bits/facts/Xena/",
-                            'text' => "Xena",
-                            'title' => "Factoids about Xena, the Warrior Princess",
+                            url => "humour/bits/facts/Xena/",
+                            text => "Xena",
+                            title => "Factoids about Xena, the Warrior Princess",
                         },
                         {
-                            'url' => "humour/bits/facts/XSLT/",
-                            'text' => "XSLT",
+                            url => "humour/bits/facts/XSLT/",
+                            text => "XSLT",
                         },
                     ],
                 }
             ],
         },
         {
-            'text' => "By Others",
-            'url' => "humour/by-others/",
-            'subs' =>
+            text => "By Others",
+            url => "humour/by-others/",
+            subs =>
             [
                 {
-                    'text' => "GNU Visual Basic",
-                    'url' => "humour/GNU-Visual-Basic/GNU-Visual-Basic.html",
-                    'title' => "Richard Stallman Switches to Basic",
+                    text => "GNU Visual Basic",
+                    url => "humour/GNU-Visual-Basic/GNU-Visual-Basic.html",
+                    title => "Richard Stallman Switches to Basic",
                 },
                 {
-                    'text' => "Darien - Everybody's Free (to Ping Timeout)",
-                    'url' => "humour/by-others/darien--everybody-is-free.html",
-                    'title' => "The IRC Version of "Everybody's Free to Wear Sunscreen"",
+                    text => "Darien - Everybody's Free (to Ping Timeout)",
+                    url => "humour/by-others/darien--everybody-is-free.html",
+                    title => "The IRC Version of "Everybody's Free to Wear Sunscreen"",
                 },
                 {
-                    'text' => "Technion Bit #1",
-                    'url' => "humour/by-others/technion-bit-1.html",
-                    'title' => "A bit I found at the Technion",
+                    text => "Technion Bit #1",
+                    url => "humour/by-others/technion-bit-1.html",
+                    title => "A bit I found at the Technion",
                 },
                 {
-                    'text' => "Hitchhiker's Guide to Star Trek TNG",
-                    'url' => "humour/by-others/hitchhiker-guide-to-star-trek-tng.html",
-                    'title' => "A Cross of the Douglas Adams Book and the T.V. Series",
+                    text => "Hitchhiker's Guide to Star Trek TNG",
+                    url => "humour/by-others/hitchhiker-guide-to-star-trek-tng.html",
+                    title => "A Cross of the Douglas Adams Book and the T.V. Series",
                 },
                 {
-                    'text' => "How Many Usenet Readers does it Take to Change a Lightbulb?",
-                    'url' => "humour/by-others/how-many-newsgroup-readers-does-it-take-to-change-a-lightbulb.html",
+                    text => "How Many Usenet Readers does it Take to Change a Lightbulb?",