]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.rss
Generated.
[homepage.git] / blog / index.rss
index a62f574ecff04732f9da0cd93db7619508d16560..d2d00b244d15657b028bbf116047db6214a630ca 100644 (file)
@@ -6,6 +6,71 @@
                 <link></link>
                 <atom:link href="index.rss" rel="self" type="application/rss+xml" />
        
+       <item>
+               <title>Returning from Skolelinux developer gathering</title>
+               <link>Returning_from_Skolelinux_developer_gathering.html</link>
+               <guid isPermaLink="true">Returning_from_Skolelinux_developer_gathering.html</guid>
+                <pubDate>Sun, 29 Mar 2009 21:00:00 +0200</pubDate>
+               <description>
+&lt;p&gt;I&#39;m sitting on the train going home from this weekends Debian
+Edu/Skolelinux development gathering.  I got a bit done tuning the
+desktop, and looked into the dynamic service location protocol
+implementation avahi.  It look like it could be useful for us.  Almost
+30 people participated, and I believe it was a great environment to
+get to know the Skolelinux system.  Walter Bender, involved in the
+development of the Sugar educational platform, presented his stuff and
+also helped me improve my OLPC installation.  He also showed me that
+his Turtle Art application can be used in standalone mode, and we
+agreed that I would help getting it packaged for Debian.  As a
+standalone application it would be great for Debian Edu.  We also
+tried to get the video conferencing working with two OLPCs, but that
+proved to be too hard for us.  The application seem to need more work
+before it is ready for me.  I look forward to getting home and relax
+now. :)&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Time for new  LDAP schemas replacing RFC 2307?</title>
+               <link>Time_for_new__LDAP_schemas_replacing_RFC_2307_.html</link>
+               <guid isPermaLink="true">Time_for_new__LDAP_schemas_replacing_RFC_2307_.html</guid>
+                <pubDate>Sun, 29 Mar 2009 20:30:00 +0200</pubDate>
+               <description>
+&lt;p&gt;The state of standardized LDAP schemas on Linux is far from
+optimal.  There is RFC 2307 documenting one way to store NIS maps in
+LDAP, and a modified version of this normally called RFC 2307bis, with
+some modifications to be compatible with Active Directory.  The RFC
+specification handle the content of a lot of system databases, but do
+not handle DNS zones and DHCP configuration.&lt;/p&gt;
+
+&lt;p&gt;In &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu/Skolelinux&lt;/a&gt;,
+we would like to store information about users, SMB clients/hosts,
+filegroups, netgroups (users and hosts), DHCP and DNS configuration,
+and LTSP configuration in LDAP.  These objects have a lot in common,
+but with the current LDAP schemas it is not possible to have one
+object per entity.  For example, one need to have at least three LDAP
+objects for a given computer, one with the SMB related stuff, one with
+DNS information and another with DHCP information.  The schemas
+provided for DNS and DHCP are impossible to combine into one LDAP
+object.  In addition, it is impossible to implement quick queries for
+netgroup membership, because of the way NIS triples are implemented.
+It just do not scale.  I believe it is time for a few RFC
+specifications to cleam up this mess.&lt;/p&gt;
+
+&lt;p&gt;I would like to have one LDAP object representing each computer in
+the network, and this object can then keep the SMB (ie host key), DHCP
+(mac address/name) and DNS (name/IP address) settings in one place.
+It need to be efficently stored to make sure it scale well.&lt;/p&gt;
+
+&lt;p&gt;I would also like to have a quick way to map from a user or
+computer and to the net group this user or computer is a member.&lt;/p&gt;
+
+&lt;p&gt;Active Directory have done a better job than unix heads like myself
+in this regard, and the unix side need to catch up.  Time to start a
+new IETF work group?&lt;/p&gt;
+</description>
+       </item>
+       
        <item>
                <title>Hva er egentlig en åpen standard?</title>
                <link>Hva_er_egentlig_en___pen_standard_.html</link>
@@ -384,211 +449,5 @@ i denne sammenhengen.&lt;/p&gt;
 </description>
        </item>
        
-       <item>
-               <title>Teknisk program for Go Open 2009 er nesten ferdig</title>
-               <link>Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html</link>
-               <guid isPermaLink="true">Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html</guid>
-                <pubDate>Thu, 5 Mar 2009 22:30:00 +0100</pubDate>
-               <description>
-&lt;p&gt;Etter lang tids jobbing begynner endelig programmet til det
-tekniske sporet på konferansen &lt;a href=&quot;http://www.goopen.no/&quot;&gt;Go Open
-2009&lt;/a&gt; å bli ferdig.  Det blir 9 punkter på programmet, og etter alt
-å dømme blir det disse 9:&lt;/p&gt;
-
-&lt;ul&gt;
-
-&lt;li&gt;&quot;Open Telephony: A solution greater than the sum of its parts&quot; med
-  Jon &quot;maddog&quot; Hall&lt;/li&gt;
-&lt;li&gt;OpenSolaris-relatert med Ian Murdock fra SUN&lt;/li&gt;
-&lt;li&gt;&quot;The inner workings of the OpenStreetmap project and the
-  technology used&quot; med Andy Allan &lt;/li&gt;
-&lt;li&gt;Coreboot-relatert med Peter Stuge&lt;/li&gt;
-&lt;li&gt;&quot;Gratis værdata fra Meteorologisk institutt&quot; med Trond Michelsen&lt;/li&gt;
-&lt;li&gt;RRDtool/Nagios-relatert med Tobias Oetiker&lt;/li&gt;
-&lt;li&gt;&quot;Developers guide to server-side productivity and fun using open
-  source platforms and frameworks&quot; med en gjeng folk fra
-  JavaBin-miljøet&lt;/li&gt;
-&lt;li&gt;&quot;G(et)it Nå!&quot; med Marcus Ramberg&lt;/li&gt;
-&lt;li&gt;Om kontrolltelling av valgresultater med fri programvare med Mitch
-  Trachtenberg&lt;/li&gt;
-
-&lt;/ul&gt;
-
-&lt;p&gt;De siste bekreftelsene og overskrifter mangler og kommer
-forhåpentlig på plass før mandag, men jeg håper dette blir et program
-flere enn meg vil sette pris på.  Jeg gleder meg i hvert fall
-stort.&lt;/p&gt;
-</description>
-       </item>
-       
-       <item>
-               <title>Checking server hardware support status for Dell, HP and IBM servers</title>
-               <link>Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html</link>
-               <guid isPermaLink="true">Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html</guid>
-                <pubDate>Sat, 28 Feb 2009 23:50:00 +0100</pubDate>
-               <description>
-&lt;p&gt;At work, we have a few hundred Linux servers, and with that amount
-of hardware it is important to keep track of when the hardware support
-contract expire for each server.  We have a machine (and service)
-register, which until recently did not contain much useful besides the
-machine room location and contact information for the system owner for
-each machine.  To make it easier for us to track support contract
-status, I&#39;ve recently spent time on extending the machine register to
-include information about when the support contract expire, and to tag
-machines with expired contracts to make it easy to get a list of such
-machines.  I extended a perl script already being used to import
-information about machines into the register, to also do some screen
-scraping off the sites of Dell, HP and IBM (our majority of machines
-are from these vendors), and automatically check the support status
-for the relevant machines.  This make the support status information
-easily available and I hope it will make it easier for the computer
-owner to know when to get new hardware or renew the support contract.
-The result of this work documented that 27% of the machines in the
-registry is without a support contract, and made it very easy to find
-them.  27% might seem like a lot, but I see it more as the case of us
-using machines a bit longer than the 3 years a normal support contract
-last, to have test machines and a platform for less important
-services.  After all, the machines without a contract are working fine
-at the moment and the lack of contract is only a problem if any of
-them break down.  When that happen, we can either fix it using spare
-parts from other machines or move the service to another old
-machine.&lt;/p&gt;
-
-&lt;p&gt;I believe the code for screen scraping the Dell site was originally
-written by Trond Hasle Amundsen, and later adjusted by me and Morten
-Werner Forsbring.  The HP scraping was written by me after reading a
-nice article in ;login: about how to use WWW::Mechanize, and the IBM
-scraping was written by me based on the Dell code.  I know the HTML
-parsing could be done using nice libraries, but did not want to
-introduce more dependencies.  This is the current incarnation:&lt;/p&gt;
-
-&lt;pre&gt;
-use LWP::Simple;
-use POSIX;
-use WWW::Mechanize;
-use Date::Parse;
-[...]
-sub get_support_info {
-    my ($machine, $model, $serial, $productnumber) = @_;
-    my $str;
-
-    if ( $model =~ m/^Dell / ) {
-        # fetch website from Dell support
-        my $url = &quot;http://support.euro.dell.com/support/topics/topic.aspx/emea/shared/support/my_systems_info/no/details?c=no&amp;amp;cs=nodhs1&amp;amp;l=no&amp;amp;s=dhs&amp;amp;ServiceTag=$serial&quot;;
-        my $webpage = get($url);
-        return undef unless ($webpage);
-
-        my $daysleft = -1;
-        my @lines = split(/\n/, $webpage);
-        foreach my $line (@lines) {
-            next unless ($line =~ m/Beskrivelse/);
-            $line =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
-            $line =~ s/^.+?;(Beskrivelse;)/$1/;
-
-            my @f = split(/\;/, $line);
-            @f = @f[13 .. $#f];
-            my $lastend = &quot;&quot;;
-            while ($f[3] eq &quot;DELL&quot;) {
-                my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
-
-                my $start = POSIX::strftime(&quot;%Y-%m-%d&quot;,
-                                            localtime(str2time($startstr)));
-                my $end = POSIX::strftime(&quot;%Y-%m-%d&quot;,
-                                          localtime(str2time($endstr)));
-                $str .= &quot;$type $start -&gt; $end &quot;;
-                @f = @f[14 .. $#f];
-                $lastend = $end if ($end gt $lastend);
-            }
-            my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
-            tag_machine_unsupported($machine)
-                if ($lastend lt $today);
-        }
-    } elsif ( $model =~ m/^HP / ) {
-        my $mech = WWW::Mechanize-&gt;new();
-        my $url =
-            &#39;http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do&#39;;
-        $mech-&gt;get($url);
-        my $fields = {
-            &#39;BODServiceID&#39; =&gt; &#39;NA&#39;,
-            &#39;RegisteredPurchaseDate&#39; =&gt; &#39;&#39;,
-            &#39;country&#39; =&gt; &#39;NO&#39;,
-            &#39;productNumber&#39; =&gt; $productnumber,
-            &#39;serialNumber1&#39; =&gt; $serial,
-        };
-        $mech-&gt;submit_form( form_number =&gt; 2,
-                            fields      =&gt; $fields );
-        # Next step is screen scraping
-        my $content = $mech-&gt;content();
-
-        $content =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
-        $content =~ s/\s+/ /gm;
-        $content =~ s/;\s*;/;;/gm;
-        $content =~ s/;[\s;]+/;/gm;
-
-        my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
-
-        while ($content =~ m/;Warranty Type;/) {
-            my ($type, $status, $startstr, $stopstr) = $content =~
-                m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
-            $content =~ s/^.+?;Warranty Type;//;
-            my $start = POSIX::strftime(&quot;%Y-%m-%d&quot;,
-                                        localtime(str2time($startstr)));
-            my $end = POSIX::strftime(&quot;%Y-%m-%d&quot;,
-                                      localtime(str2time($stopstr)));
-
-            $str .= &quot;$type ($status) $start -&gt; $end &quot;;
-
-            tag_machine_unsupported($machine)
-                if ($end lt $today);
-        }
-    } elsif ( $model =~ m/^IBM / ) {
-        # This code ignore extended support contracts.
-        my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
-        if ($producttype &amp;amp;&amp;amp; $serial) {
-            my $content =
-                get(&quot;http://www-947.ibm.com/systems/support/supportsite.wss/warranty?action=warranty&amp;amp;brandind=5000008&amp;amp;Submit=Submit&amp;amp;type=$producttype&amp;amp;serial=$serial&quot;);
-            if ($content) {
-                $content =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
-                $content =~ s/\s+/ /gm;
-                $content =~ s/;\s*;/;;/gm;
-                $content =~ s/;[\s;]+/;/gm;
-
-                $content =~ s/^.+?;Warranty status;//;
-                my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
-
-                $str .= &quot;($status) -&gt; $end &quot;;
-
-                my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
-                tag_machine_unsupported($machine)
-                    if ($end lt $today);
-            }
-        }
-    }
-    return $str;
-}
-&lt;/pre&gt;
-
-&lt;p&gt;Here are some examples on how to use the function, using fake
-serial numbers.  The information passed in as arguments are fetched
-from dmidecode.&lt;/p&gt;
-
-&lt;pre&gt;
-print get_support_info(&quot;hp.host&quot;, &quot;HP ProLiant BL460c G1&quot;, &quot;1234567890&quot;
-                       &quot;447707-B21&quot;);
-print get_support_info(&quot;dell.host&quot;, &quot;Dell Inc. PowerEdge 2950&quot;, &quot;1234567&quot;);
-print get_support_info(&quot;ibm.host&quot;, &quot;IBM eserver xSeries 345 -[867061X]-&quot;,
-                       &quot;1234567&quot;);
-&lt;/pre&gt;
-
-&lt;p&gt;I would recommend this approach for tracking support contracts for
-everyone with more than a few computers to administer. :)&lt;/p&gt;
-
-&lt;p&gt;Update 2009-03-06: The IBM page do not include extended support
-contracts, so it is useless in that case.  The original Dell code do
-not handle extended support contracts either, but has been updated to
-do so.&lt;/p&gt;
-</description>
-       </item>
-       
         </channel>
 </rss>