<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>BoFrede&#8482; - Home</title>
  <id>tag:www.bofrede.com,2010:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  <link href="http://www.bofrede.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.bofrede.com/" rel="alternate" type="text/html"/>
  <updated>2009-11-27T20:18:55Z</updated>
  <entry xml:base="http://www.bofrede.com/">
    <author>
      <name>bofrede</name>
    </author>
    <id>tag:www.bofrede.com,2009-11-27:6</id>
    <published>2009-11-27T20:16:00Z</published>
    <updated>2009-11-27T20:18:55Z</updated>
    <category term="mephisto"/>
    <category term="ruby-on-rails"/>
    <link href="http://www.bofrede.com/blog_migrated_to_mephisto" rel="alternate" type="text/html"/>
    <title>Blog migrated to Mephisto</title>
<summary type="html">This site has been migrated from a home brewed CMS on Lotus Domino, to an open source blogging application called Mephisto, made with Ruby-on-Rails.</summary><content type="html">
            This site has been migrated from a home brewed CMS on Lotus Domino, to an open source blogging application called Mephisto, made with Ruby-on-Rails.
&lt;p&gt;Now this blog has had a serious upgrade.&lt;/p&gt;
&lt;table&gt;

&lt;tr&gt;PreviouslyNow&lt;/tr&gt;


&lt;tr&gt;Application:&lt;td&gt;A home brewed CMS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;http://mephistoblog.com/&quot;&gt;Mephisto&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;Application framework:&lt;td&gt;None&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;http://rubyonrails.org/&quot;&gt;Ruby-on-Rails&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;Application server:&lt;td&gt;Lotus Domino&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;http://www.modrails.com/&quot;&gt;Passenger (mod_rails)&lt;/a&gt; for &lt;a href=&quot;http://httpd.apache.org/&quot;&gt;Apache&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;Markup:&lt;td&gt;Invalid HTML 4.01 transitional&lt;/td&gt;&lt;td&gt;Valid XHTML 1.0 strict&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;Compression:&lt;td&gt;None&lt;/td&gt;&lt;td&gt;Gzip&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;Design:&lt;td&gt;I had no idea what I was doing.&lt;/td&gt;&lt;td&gt;I ported a &lt;a href=&quot;http://andreasviklund.com/templates/andreas03/&quot;&gt;WordPress template&lt;/a&gt;, originally made by &lt;a href=&quot;http://andreasviklund.com/&quot;&gt;Andreas Viklund&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;

&lt;h2&gt;The result&lt;/h2&gt;
&lt;p&gt;It looks better, in every aspect. Better design, better code.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.bofrede.com/">
    <author>
      <name>bofrede</name>
    </author>
    <id>tag:www.bofrede.com,2008-11-30:4</id>
    <published>2008-11-30T20:26:00Z</published>
    <updated>2009-11-30T20:42:10Z</updated>
    <category term="opensearch"/>
    <link href="http://www.bofrede.com/firefox-search-domino-forums" rel="alternate" type="text/html"/>
    <title>Search Notes/Domino forums from Mozilla Firefox and IE7.</title>
<summary type="html">OpenSearch plug-ins for Firefox 2+ and IE7+.</summary><content type="html">
            OpenSearch plug-ins for Firefox 2+ and IE7+.
&lt;p&gt;IE 7 and Firefox have a search bar in the upper right corner, and now you can use it to search IBM's Notes/Domino forums.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;I wrote these search plug-ins, and you can install them by clicking on the lit arrow next to the search field, in your browsers upper right corner.&lt;/p&gt;

&lt;h2&gt;Related links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.opensearch.org/Specifications/OpenSearch&quot;&gt;OpenSearch specification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://kb.mozillazine.org/Search_Bar&quot;&gt;Firefox search bar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://www.bofrede.com/">
    <author>
      <name>bofrede</name>
    </author>
    <id>tag:www.bofrede.com,2008-07-17:7</id>
    <published>2008-07-17T11:36:00Z</published>
    <updated>2009-01-08T20:44:29Z</updated>
    <category term="frames"/>
    <category term="greasemonkey"/>
    <category term="userscript"/>
    <link href="http://www.bofrede.com/unframe-single-frame" rel="alternate" type="text/html"/>
    <title>Stop framing me!</title>
<summary type="html">Using the Firefox extension GreaseMonkey, to unframe websites framed in a single frame. And another user script for removing target=&quot;_blank&quot;.</summary><content type="html">
            Using the Firefox extension GreaseMonkey, to unframe websites framed in a single frame. And another user script for removing target=&quot;_blank&quot;.
&lt;p&gt;I am so tired of websites where the browsers address line doesn't change when I click a link. The most annoying thing is when the site lives in a one-frame frameset.&lt;/p&gt;
&lt;p&gt;To solve this problem I have made a &lt;a href=&quot;http://www.greasespot.net/&quot;&gt;GreaseMonkey&lt;/a&gt; user script called: &quot;&lt;a href=&quot;/assets/2009/1/8/unframe_single_frame.user.js&quot;&gt;Unframe single frame&lt;/a&gt;&quot;.&lt;/p&gt;

&lt;p&gt;I am also tired of new windows, that some random webmaster have chosen to open for me, by putting a target=&quot;_blank&quot; on a link. To avoid that I use the GreaseMonkey user script: &quot;&lt;a href=&quot;/assets/2008/7/17/_blankmustdie.user.js&quot;&gt;_blank must die&lt;/a&gt;&quot;.&lt;/p&gt;

&lt;p&gt;I am the user/consumer. I am in control.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.bofrede.com/">
    <author>
      <name>bofrede</name>
    </author>
    <id>tag:www.bofrede.com,2004-12-07:2</id>
    <published>2004-12-07T12:00:00Z</published>
    <updated>2008-12-28T11:28:56Z</updated>
    <category term="css"/>
    <category term="doctype"/>
    <category term="domino"/>
    <category term="html4"/>
    <link href="http://www.bofrede.com/domino-doctype" rel="alternate" type="text/html"/>
    <title>Change Domino's DOCTYPE</title>
<summary type="html">One step closer to standard compliance for the Domino web engine.</summary><content type="html">
            One step closer to standard compliance for the Domino web engine.
&lt;h2&gt;What&lt;/h2&gt;
&lt;p&gt;The Domino HTTP task automatically writes the doctype, as the first line in the html code. IBM has released Domino 6.5.3 with an interesting fix for web developers. It is now possible to add a system url to the doctype of the html generated by Domino.&lt;/p&gt;
&lt;h2&gt;Why&lt;/h2&gt;
&lt;p&gt;When a system url is added to the doctype, the newer browsers switches into standard compliance mode. This feature makes a big difference in how newer browsers renders web pages. Newer browsers are &lt;a href=&quot;http://www.microsoft.com/windows/ie/&quot;&gt;MSIE 6+&lt;/a&gt; and &lt;a href=&quot;http://www.mozilla.org/newlayout/&quot;&gt;Gecko&lt;/a&gt; based browsers, like &lt;a href=&quot;http://www.seamonkey-project.org/&quot;&gt;Mozilla Seamonkey&lt;/a&gt; and &lt;a href=&quot;http://www.mozilla.com/firefox/&quot;&gt;Mozilla Firefox&lt;/a&gt;. It may also include &lt;a href=&quot;http://www.apple.com/safari/&quot;&gt;Safari&lt;/a&gt; that uses the &lt;a href=&quot;http://webkit.org/&quot;&gt;WebKit&lt;/a&gt; engine, and &lt;a href=&quot;http://www.konqueror.org/&quot;&gt;Konqueror&lt;/a&gt; that uses the &lt;a href=&quot;http://developer.kde.org/documentation/library/kdeqt/kde3arch/khtml/&quot;&gt;KHTML&lt;/a&gt; engine.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Another issue is the calculation of relative sizes, like width:100%. In the CSS2 standard it is relative to the parent element, but in old browsers it is calculated relative to the view port (window).&lt;/p&gt;

&lt;h2&gt;How&lt;/h2&gt;
&lt;p&gt;Upgrade Domino to at least version 6.5.3 and set the DominoCompleteDoctype environment variable in notes.ini. It has 3 different values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;0 = &amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&amp;gt;&lt;/li&gt;

&lt;li&gt;1 = &amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &amp;quot;http://www.w3.org/TR/html4/loose.dtd&amp;quot;&amp;gt;&lt;/li&gt;

&lt;li&gt;2 = &amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A value of zero is the default/old behavior, with all the problems that creates. At first I thought 2 (strict) was the way to go, but Domino still generates old-school html, that does not validate as html 4.01 strict. So I ended up using 1 (transitional).&lt;/p&gt;

&lt;h2&gt;Gotcha's&lt;/h2&gt;
&lt;p&gt;When the browser is in standard compliance mode, the css selectors become case-sensitive.&lt;/p&gt;

&lt;p&gt;Example html:&lt;/p&gt;
&lt;pre&gt;&amp;lt;div id=&quot;container&quot;&amp;gt;
...
&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;This css selector does not work:&lt;/p&gt;
&lt;pre&gt;#Container {...}&lt;/pre&gt;

&lt;p&gt;This css selector works:&lt;/p&gt;
&lt;pre&gt;#container {...}&lt;/pre&gt;

&lt;p&gt;In Gecko based browsers, the Content-Type of the CSS become important. The CSS will be ignored if the Content-Type is not text/css. I use a page (Notes design element) for CSS style sheets.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

The bad news is that DominoCompleteDoctype is a server wide setting, that will affect all the websites hosted on that Domino partition. So you will either need to test and adjust all your sites at ones, or divide your server into two partitions.

&lt;h2&gt;Update - the good news&lt;/h2&gt;
&lt;p&gt;As of Domino 7.0.2 there is a new field that allows you to set the doctype on a form basis. Just add a computed for display field called $$HTMLFrontMatter, with this formula:&lt;/p&gt;
&lt;pre&gt;&quot;&amp;lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot; \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&amp;gt;&quot; + @NewLine&lt;/pre&gt;

&lt;h2&gt;Related links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www-10.lotus.com/ldd/r5fixlist.nsf/94db90f3de07606e052569ce00706cdd/b6f4dd65503b574d85256f5000528659?OpenDocument&quot;&gt;Domino Fix SPR # DHAN5VTPBX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms535242.aspx&quot;&gt;DOCTYPE in MSIE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en/Mozilla%27s_DOCTYPE_sniffing&quot;&gt;Mozilla&#39;s DOCTYPE sniffing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://www.bofrede.com/">
    <author>
      <name>bofrede</name>
    </author>
    <id>tag:www.bofrede.com,2004-08-30:3</id>
    <published>2004-08-30T12:00:00Z</published>
    <updated>2008-12-28T11:15:45Z</updated>
    <category term="apache"/>
    <category term="domino"/>
    <link href="http://www.bofrede.com/apache_and_domino" rel="alternate" type="text/html"/>
    <title>Apache in front of Domino</title>
<summary type="html">Make a flexible web server setup.</summary><content type="html">
            Make a flexible web server setup.
&lt;h2&gt;What&lt;/h2&gt;
&lt;p&gt;This is a configuration example of how to configure Apache and Domino to work together. On one computer with one IP address, and all the users sees, run from port 80.&lt;/p&gt;

&lt;h2&gt;Why&lt;/h2&gt;
&lt;p&gt;There are a number of situations, where you would want to run several web application servers on the same IP address, all on port 80.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you only have one public IP address.&lt;/li&gt;
&lt;li&gt;You want to run in a mixed environment, like Domino, Ruby on Rails, JSP, PHP, ASP and other server side code.&lt;/li&gt;
&lt;li&gt;An SSL certificate is for a specific host name.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You may also want to take advantage of some of Apache's advanced configuration features.&lt;/p&gt;

&lt;h2&gt;How&lt;/h2&gt;
&lt;h3&gt;Configure Domino to listen on port 81&lt;/h3&gt;
&lt;p&gt;Edit the server document in the Domino directory:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Change the field labeled &quot;TCP/IP port number&quot; to 81, or any other available port you like.&lt;/p&gt;

&lt;h3&gt;Configure Apache's rewrite module&lt;/h3&gt;
&lt;p&gt;In httpd.conf we find most of the Apache's configuration.&lt;br /&gt;
First we need to load some modules:&lt;/p&gt;
&lt;pre&gt;LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so&lt;/pre&gt;

&lt;p&gt;Allow access to Domino's icon and java directories:&lt;/p&gt;
&lt;pre&gt;&amp;lt;Directory &quot;/local/notesdata/domino/icons&quot;&amp;gt;
    AllowOverride None
    Order allow,deny
    Allow from all
&amp;lt;/Directory&amp;gt;

&amp;lt;Directory &quot;/local/notesdata/domino/java&quot;&amp;gt;
    AllowOverride None
    Order allow,deny
    Allow from all
&amp;lt;/Directory&amp;gt;

Alias /icons/ &quot;/local/notesdata/domino/icons/&quot;
Alias /domjava/ &quot;/local/notesdata/domino/java/&quot;&lt;/pre&gt;

&lt;p&gt;Remember to remove the alias to Apache's icons or create an icons alias inside a virtual host.&lt;/p&gt;

&lt;p&gt;Then we need to configure a virtual host:&lt;/p&gt;
&lt;pre&gt;&amp;lt;VirtualHost 192.168.1.3&amp;gt;
    DocumentRoot /somedir/bofrede.com
    ServerName www.bofrede.com
    &amp;lt;IfModule mod_rewrite.c&amp;gt;
        RewriteEngine on
        RewriteRule ^/$ http://%{SERVER_NAME}:81/bofrede/en.nsf [P]
        RewriteRule ^/en/(.*)$ http://%{SERVER_NAME}:81/bofrede/en.nsf/$1 [P]
        RewriteRule ^/(.+)\.nsf(.*)$ http://%{SERVER_NAME}:81/$1.nsf$2 [P]
        RewriteRule ^/\$Preferences.nsf(.*)$ http://%{SERVER_NAME}:81/\$Preferences.nsf$1 [P]
        RewriteRule ^/servlet/(.+)$ http://%{SERVER_NAME}:81/servlet/$1 [P]
        RewriteRule ^/diiop_ior.txt$ http://%{SERVER_NAME}:81/diiop_ior.txt [P]
        RewriteRule ^/dwagss.jar$ http://%{SERVER_NAME}:81/dwagss.jar [P]
        RewriteRule ^/dwa8W.cab$ http://%{SERVER_NAME}:81/dwa8W.cab [P]
        RewriteRule ^/robots.txt$ http://%{SERVER_NAME}:81/bofrede/en.nsf/robots.txt [P]
        RewriteRule ^(.*)/favicon.ico$ http://%{SERVER_NAME}:81/bofrede/en.nsf/favicon.ico [P]
        ProxyPassReverse / http://www.bofrede.com:81/
    &amp;lt;/IfModule&amp;gt;
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;

&lt;p&gt;The &quot;big discovery&quot; here is the ProxyPassReverse directive, that fixes the url's in Domino's http response header. This is what makes redirects work. Redirects occur i.e. at form submission, when the url in $$Return is sent to the browser. Without ProxyPassReverse the browser would be redirected to some url at port 81.&lt;/p&gt;

&lt;h2&gt;Related links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://httpd.apache.org/docs/2.2/rewrite/&quot;&gt;Apache URL Rewriting Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html&quot;&gt;Apache Module: mod_rewrite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.junkheap.net/projects/phpdom/&quot;&gt;Domino / Apache / PHP Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ferdychristant.com/blog/articles/DOMV-5ZKPCQ&quot;&gt;Article: Domino &amp;amp; Apache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.notestips.com/80256B3A007F2692/1/NAMO5RX3PX#13&quot;&gt;Configuring Apache, PHP, MySQL and Domino for Windows 2000&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.codestore.net/store.nsf/unid/BLOG-20040719?OpenDocument&quot;&gt;One Server with PHP and Domino&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
</feed>
