<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Enavigo</title>
	<atom:link href="http://www.enavigo.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.enavigo.com</link>
	<description>Take lemons, make lemonade or Jill and Yuval's Musings</description>
	<pubDate>Sun, 16 Nov 2008 22:00:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Smack API: Destorying persistent Multi-User Chat Rooms</title>
		<link>http://www.enavigo.com/2008/11/16/smack-api-destorying-persistent-multi-user-chat-rooms/</link>
		<comments>http://www.enavigo.com/2008/11/16/smack-api-destorying-persistent-multi-user-chat-rooms/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 05:34:32 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[destroy]]></category>

		<category><![CDATA[MUC]]></category>

		<category><![CDATA[Multi-User Chat]]></category>

		<category><![CDATA[Smack]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/?p=221</guid>
		<description><![CDATA[Another one that is not documented.
Suppose you have a persistent Multi-User Chat Room (MUC) and room is empty. Apparently to destroy the room, the owner needs to join it, and then call the destroy()  method on that room.
See, short and sweet.

    

	]]></description>
			<content:encoded><![CDATA[<p>Another one that is not documented.<br />
Suppose you have a persistent Multi-User Chat Room (MUC) and room is empty. Apparently to destroy the room, the owner needs to join it, and then call the <code>destroy() </code> method on that room.<br />
See, short and sweet.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=Smack%20API%3A%20Destorying%20persistent%20Multi-User%20Chat%20Rooms&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F11%2F16%2Fsmack-api-destorying-persistent-multi-user-chat-rooms%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/11/16/smack-api-destorying-persistent-multi-user-chat-rooms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Smack API: No clean way to discover if a multi-user chat room exists</title>
		<link>http://www.enavigo.com/2008/11/16/smack-api-no-clean-way-to-discover-if-a-multi-user-chat-room-exists/</link>
		<comments>http://www.enavigo.com/2008/11/16/smack-api-no-clean-way-to-discover-if-a-multi-user-chat-room-exists/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 05:25:02 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[existence]]></category>

		<category><![CDATA[MUC]]></category>

		<category><![CDATA[Multi-User Chat]]></category>

		<category><![CDATA[Smack]]></category>

		<category><![CDATA[XMPP]]></category>

		<category><![CDATA[XMPPException]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/?p=220</guid>
		<description><![CDATA[Here&#8217;s another one to follow the previous two posts about Smack API and Multi-User Chat issues.
Suppose you want to create a persistent room. Suppose you are not sure if that room already exists. In Smack, and I am not familiar of any other APIs, there is no non-exception-throwing way of doing this. 
Fundamentally, a room [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s another one to follow the previous two posts about Smack API and Multi-User Chat issues.<br />
Suppose you want to create a persistent room. Suppose you are not sure if that room already exists. In Smack, and I am not familiar of any other APIs, there is no non-exception-throwing way of doing this. </p>
<p>Fundamentally, a room already exists is the situation where a room is already set up on the server with the same name as the one you wish to create.</p>
<p>The MultiUserChat object has a static <a href="http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smackx/muc/MultiUserChat.html#getRoomInfo(org.jivesoftware.smack.XMPPConnection,%20java.lang.String)">getRoomInfo() method</a> which may have been the way to go. If the room does not exist, return null. Instead, if the room does not exist throws an <code>XMPPException</code>. Not sure what the error situation is here - I am just trying to find out if a room exists or not, but that causes an exception. </p>
<p>The flipside is on the creation end. If you try to create a room that already exists, an <code>XMPPException </code>will be thrown. This makes sense and is recoverable. Still, I am a fan of checking first instead of trying to do something only to encounter a bad situation. Not a biggie - just hope this spares someone the exploration and time. Not really documented, etc.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=Smack%20API%3A%20No%20clean%20way%20to%20discover%20if%20a%20multi-user%20chat%20room%20exists&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F11%2F16%2Fsmack-api-no-clean-way-to-discover-if-a-multi-user-chat-room-exists%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/11/16/smack-api-no-clean-way-to-discover-if-a-multi-user-chat-room-exists/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Openfire/XMPP Multi-User Chat name is registered as all lower-case</title>
		<link>http://www.enavigo.com/2008/11/15/openfirexmpp-multi-user-chat-name-is-registered-as-all-lower-case/</link>
		<comments>http://www.enavigo.com/2008/11/15/openfirexmpp-multi-user-chat-name-is-registered-as-all-lower-case/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 04:11:22 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Bug]]></category>

		<category><![CDATA[lower-case]]></category>

		<category><![CDATA[Multi-User Chat]]></category>

		<category><![CDATA[Openfire]]></category>

		<category><![CDATA[Smack]]></category>

		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/?p=219</guid>
		<description><![CDATA[Another observation regarding XMPP multi-user chat (aka chat-rooms) to follow on my previous entry. This one is also an odd one.
It appears that Openfire uses all-lowercase names for multi-user chat rooms. So if your room&#8217;s name is &#8220;myRoom&#8221;, it will be saved as &#8220;myroom&#8221;.
Could not find anything to require this in the XMPP specifications for [...]]]></description>
			<content:encoded><![CDATA[<p>Another observation regarding XMPP multi-user chat (aka chat-rooms) to follow on my <a href="http://www.enavigo.com/2008/11/15/openfiresmack-bug-unable-to-ask-multi-user-chat-who-the-admins-are/">previous entry</a>. This one is also an odd one.<br />
It appears that Openfire uses all-lowercase names for multi-user chat rooms. So if your room&#8217;s name is &#8220;myRoom&#8221;, it will be saved as &#8220;myroom&#8221;.</p>
<p>Could not find anything to require this in the <a href="http://www.xmpp.org/extensions/xep-0045.html">XMPP specifications for multi-user chat</a>.</p>
<p>Oddness.</p>
<p><strong>UPDATE:</strong><br />
This is apparently the way it is supposed to be according to the<a href="http://xmpp.org/extensions/xep-0106.html"> XMPP protocol</a> or as explained to me on the <a href="http://www.igniterealtime.org/community/message/182979#182979">Openfire dev boards</a>.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=Openfire%2FXMPP%20Multi-User%20Chat%20name%20is%20registered%20as%20all%20lower-case&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F11%2F15%2Fopenfirexmpp-multi-user-chat-name-is-registered-as-all-lower-case%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/11/15/openfirexmpp-multi-user-chat-name-is-registered-as-all-lower-case/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Openfire/Smack bug? Unable to ask Multi-User Chat who the admins are</title>
		<link>http://www.enavigo.com/2008/11/15/openfiresmack-bug-unable-to-ask-multi-user-chat-who-the-admins-are/</link>
		<comments>http://www.enavigo.com/2008/11/15/openfiresmack-bug-unable-to-ask-multi-user-chat-who-the-admins-are/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 03:28:49 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Bug]]></category>

		<category><![CDATA[error 403]]></category>

		<category><![CDATA[IgniteRealtime]]></category>

		<category><![CDATA[MUC]]></category>

		<category><![CDATA[Multi-User Chat]]></category>

		<category><![CDATA[Openfire]]></category>

		<category><![CDATA[problem]]></category>

		<category><![CDATA[Smack]]></category>

		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/?p=218</guid>
		<description><![CDATA[I encountered two interesting points when working with the Openfire XMPP server and the Smack API, both from IgniteRealtime. 

After joining a Multi-User Chat (MUC) independently, without invite, I was forbidden (e.g. error 403) from finding out who the administrators or owners of the room were. I could not find anything about this in the [...]]]></description>
			<content:encoded><![CDATA[<p>I encountered two interesting points when working with the <a href="http://www.igniterealtime.org/projects/openfire/index.jsp">Openfire XMPP server</a> and the <a href="http://www.igniterealtime.org/projects/smack/index.jsp">Smack API</a>, both from <a href="http://www.igniterealtime.org/">IgniteRealtime</a>. </p>
<ol>
<li>After joining a Multi-User Chat (MUC) independently, without invite, I was forbidden (e.g. error 403) from finding out who the administrators or owners of the room were. I could not find anything about this in the <a href="http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/muc.html">documentation</a>.<br />
The workaround was not too bad: apparently the method <code>getOccupant(<full JID>) </full></code>allows you to get an <code>Occupant </code>object which does hold affiliation and can report admin rights.
</li>
<li>In some situations - not sure when yet - the owner of an MUC was able to grant another user admin status by just using his/her nickname, without using the full JID. That is<br />
<code>grantAdmin("nickname")</code> worked just as well as <code>grantAdmin("nickname@conference.server")</code>. Nonetheless, when trying to use the method getOccupant() as mentioned above, the full JID form worked while the nickname-only one failed.</li>
</ol>
<p>I am using Smack 3.0.4 and Openfire 3.5.2. Weird.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=Openfire%2FSmack%20bug%3F%20Unable%20to%20ask%20Multi-User%20Chat%20who%20the%20admins%20are&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F11%2F15%2Fopenfiresmack-bug-unable-to-ask-multi-user-chat-who-the-admins-are%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/11/15/openfiresmack-bug-unable-to-ask-multi-user-chat-who-the-admins-are/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting up JSJaC with Openfire 3.5.2</title>
		<link>http://www.enavigo.com/2008/10/14/setting-up-jsjac-with-openfire-352/</link>
		<comments>http://www.enavigo.com/2008/10/14/setting-up-jsjac-with-openfire-352/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 01:43:49 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Apache httpd]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[JSJaC]]></category>

		<category><![CDATA[mod_proxy]]></category>

		<category><![CDATA[Openfire]]></category>

		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/?p=217</guid>
		<description><![CDATA[I am using Openfire, an XMPP (Jabber) server, to facilitate instant messaging in a closed system I am building. Part of my design had users rely on browsers as instant messaging (IM) clients. As Meebo showed, it can be done quite well and an open source JavaScript library, JSJaC, apparently provides this ability. JSJaC is [...]]]></description>
			<content:encoded><![CDATA[<p>I am using <a href="http://www.igniterealtime.org/projects/openfire/index.jsp" target="_blank">Openfire</a>, an <a title="The XMPP instant messaging protocol" href="http://xmpp.org" target="_blank">XMPP</a> (Jabber) server, to facilitate instant messaging in a closed system I am building. Part of my design had users rely on browsers as instant messaging (IM) clients. As <a href="http://www.meebo.com/" target="_blank">Meebo</a> showed, it can be done quite well and an open source JavaScript library, <a href="http://blog.jwchat.org/jsjac/" target="_blank">JSJaC</a>, apparently provides this ability. JSJaC is the backbone of a full-blown browser-based IM client called JWChat, but for me, the plumbing was what was necessary. </p>
<p>Only thing is that JSJaC is not the easiest to set up with Openfire. </p>
<p>JSJaC uses HTTP-binding, which according to <a href="http://en.wikipedia.org/wiki/Jabber">Wikipedia</a> allows for long-lasting HTTP requests instead of polling, which just periodically checks the server to see if there is a message waiting. To do that, JSJaC needs to connect to the server and that is done by accessing a somewhat tricky port, 7070 is the default in version 3.5.2. What&#8217;s tricky about it? Browsers do not like to let JavaScript access services using XMLHttpRequest, the lifeblood of AJAX, on URLs and ports unlike the one which the current URL relies on. This is normally solved using a proxy or a URL rewrite, which forward requests to the desired ports and pass back responses, all as if you used the &#8216;appropriate&#8217; ports. Luckily, Apache&#8217;s HTTPd has great modules that do just that. The instructions in JSJaC&#8217;s readme file recommended using a rewrite. That caused repeated 503 errors from Apache. Using its proxy did work for me. As usual, you spend time, read here and read there, and finally, you normally find a way to make it work. This how I did it.</p>
<ol>
<li>After downloading JSJaC, open jsjac.js. Change the line 

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> JSJACHBC_USE_BOSH_VER<span style="color: #339933;">&amp;</span>nbsp; <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span>;</pre></div></div>

<p>to<br />
</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> JSJACHBC_USE_BOSH_VER<span style="color: #339933;">&amp;</span>nbsp; <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span>;</pre></div></div>

</li>
<li>To allow Apache HTTPd&#8217;s proxy to work, enable <code>proxy_module</code> and <code>proxy_http_module</code> in Apache HTTPd&#8217;s <code>httpd.conf</code> file</li>
<li>Add a virtual host that will map a certain URL to the proxy, and set up the proxy to point at the Openfire http-binding port:

<div class="wp_syntax"><div class="code"><pre class="xml xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;virtualhost</span> 127.0.0.1:80<span style="color: #000000; font-weight: bold;">&gt;</span></span>
	DocumentRoot &quot;C:/www/root&quot;  <span style="color: #808080; font-style: italic;">&lt;!-- This is the document root for your server --&gt;</span>
	AddDefaultCharset UTF-8
	ProxyRequests On
	ProxyPass /http-bind/ http://127.0.0.1:7070/http-bind/ <span style="color: #808080; font-style: italic;">&lt;!-- This is where your Openfire server can be accessed --&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/virtualhost<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

</li>
<li> To test this configuration, use JSJaC&#8217;s simpleclient.html, its sample client, to try and connect to the server. Make sure you add the following line

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">oArgs.<span style="color: #660066;">authtype</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'nonsasl'</span>;</pre></div></div>

<p>above</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">con.<span style="color: #660066;">connect</span><span style="color: #009900;">&#40;</span>oArgs<span style="color: #009900;">&#41;</span>;</pre></div></div>

</li>
<li>Start Apache HTTPd and open simpleclient.js</li>
<li>
simpleclient asks for 4 fields:</p>
<ul>
<li>The server&#8217;s base URL: This is the proxied URL, for example, http://127.0.0.1/http-bind/ (note the trailing slash) in my case.</li>
<li>Server name/domain: The domain Openfire was set up to use. In XMPP, if the server&#8217;s name is myserver, users will be known on it with IDs like joe@myserver</li>
<li>User name of existing user</li>
<li>The password for that user</li>
</ul>
</li>
<li>Connect!</li>
</ol>
<p>I highly recommend using <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug </a>to ensure the request is sent properly and is being received properly from Openfire. Odd Firefox object initialization errors are due to the fact that an attempt is made to access a port JavaScript is not allowed to access.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=Setting%20up%20JSJaC%20with%20Openfire%203.5.2&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F10%2F14%2Fsetting-up-jsjac-with-openfire-352%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/10/14/setting-up-jsjac-with-openfire-352/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hey Microsoft: Outlook Web Access does not work that well with IE 8</title>
		<link>http://www.enavigo.com/2008/09/14/hey-microsoft-outlook-web-access-does-not-work-that-well-with-ie-8/</link>
		<comments>http://www.enavigo.com/2008/09/14/hey-microsoft-outlook-web-access-does-not-work-that-well-with-ie-8/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 02:23:24 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Bug]]></category>

		<category><![CDATA[Exchange]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Internet Explorer]]></category>

		<category><![CDATA[Internet Explorer 8]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Outlook]]></category>

		<category><![CDATA[Outlook Web Access]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/2008/09/14/hey-microsoft-outlook-web-access-does-not-work-that-well-with-ie-8/</guid>
		<description><![CDATA[An add on to my angry post about Internet Explorer 8; having accessed my company&#8217;s Outlook Web Access application - the webmail side of the Exchange server we use (Exchange 2003), I was unable to forward an email using IE 8.
Google at least claims to have Chrome tested before unleashing it unto the world. Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>An add on to <a target="_blank" href="http://www.enavigo.com/2008/09/06/internet-explorer-8-stay-away-dont-believe-the-hype-aaaaaaaaaaargh/">my angry post about Internet Explorer 8;</a> having accessed my company&#8217;s Outlook Web Access application - the webmail side of the Exchange server we use (Exchange 2003), I was unable to forward an email using IE 8.</p>
<p>Google at least claims to have Chrome tested before unleashing it unto the world. Microsoft apparently does not even test its own products. Trashing mercilessly. I know.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=Hey%20Microsoft%3A%20Outlook%20Web%20Access%20does%20not%20work%20that%20well%20with%20IE%208&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F09%2F14%2Fhey-microsoft-outlook-web-access-does-not-work-that-well-with-ie-8%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/09/14/hey-microsoft-outlook-web-access-does-not-work-that-well-with-ie-8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Internet Explorer 8: Stay away, don&#8217;t believe the hype, aaaaaaaaaaargh!</title>
		<link>http://www.enavigo.com/2008/09/06/internet-explorer-8-stay-away-dont-believe-the-hype-aaaaaaaaaaargh/</link>
		<comments>http://www.enavigo.com/2008/09/06/internet-explorer-8-stay-away-dont-believe-the-hype-aaaaaaaaaaargh/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 01:40:58 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[Add-ons disabled]]></category>

		<category><![CDATA[fail fail fail]]></category>

		<category><![CDATA[Internet Explorer]]></category>

		<category><![CDATA[Internet Explorer 8]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[suck suck suck]]></category>

		<category><![CDATA[Wall Street Journal]]></category>

		<category><![CDATA[Web Browser]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/2008/09/06/internet-explorer-8-stay-away-dont-believe-the-hype-aaaaaaaaaaargh/</guid>
		<description><![CDATA[I was stupid enough to believe all the offhand mentions like on the Wall Street Journal that said that Internet Explorer 8&#8217;s beta actually worked nice. So much so that having not been burnt by installing Chrome, I felt bandwagonesque enough to also install IE 8. 
First, IE 8 *overwrites* and *replaces* IE 7. That [...]]]></description>
			<content:encoded><![CDATA[<p>I was stupid enough to believe all the offhand mentions like on the Wall Street Journal that said that Internet Explorer 8&#8217;s beta actually worked nice. So much so that having not been burnt by installing Chrome, I felt bandwagonesque enough to also install IE 8. </p>
<p>First, IE 8 *overwrites* and *replaces* IE 7. That is as uncool and unacceptable as it gets. You (Microsoft) are replacing a WORKING, STABLE program with a BETA in an all-or-nothing move without too much warning. That&#8217;s a load of crap. Suppose you have so much faith in it that you are fine with that. </p>
<p>Next, Security so high it is outrageously stupid. File again, under &#8216;unacceptable&#8217;: on my Windows XP machine, IE 8&#8217;s default setting disable JavaScript *ENTIRELY*. I repeat, no f-n JavaScript. Never mind Flash, but you know, it 2008. JavaScript is an unproven, new tool, yup yup. Fail fail fail. Anyway, they tell you that your add-ons are disabled. You click the link to the add-on manager and lo-and-behold, ALL OF THEM APPEAR ENABLED. WTF? </p>
<p><a href="http://www.enavigo.com/wp-content/uploads/2008/09/add-ons.jpg"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="add-ons" src="http://www.enavigo.com/wp-content/uploads/2008/09/add-ons-thumb.jpg" width="244" height="39" /></a> </p>
<p>So how do you solve this? According to Microsoft&#8217;s support, it is as simple as changing an <a target="_blank" href="http://support.microsoft.com/kb/915729/en-us">f-n REGISTRY KEY</a>?! As user friendly as entering a class id to the registry. ARE THEY NUTS? DO THEY EVEN CARE?! Is it possible to goof off even more?! A beta means &#8216;on the verge of release&#8217;. This is plain dreadful, Microsoft. Look in the f-n mirror and like, think again. I am so selling my miserable 10 stocks of yours. You suck beyond belief. Really. Done. Indefensible. </p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=Internet%20Explorer%208%3A%20Stay%20away%2C%20don%E2%80%99t%20believe%20the%20hype%2C%20aaaaaaaaaaargh%21&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F09%2F06%2Finternet-explorer-8-stay-away-dont-believe-the-hype-aaaaaaaaaaargh%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/09/06/internet-explorer-8-stay-away-dont-believe-the-hype-aaaaaaaaaaargh/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Chrome: First Impressions</title>
		<link>http://www.enavigo.com/2008/09/02/google-chrome-first-impressions/</link>
		<comments>http://www.enavigo.com/2008/09/02/google-chrome-first-impressions/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 01:13:13 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[Browser]]></category>

		<category><![CDATA[Chrome]]></category>

		<category><![CDATA[First Impressions]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Neat]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/?p=211</guid>
		<description><![CDATA[I am proud to put my happy fanboy glasses on and say that I installed Google Chrome on its first day. Better yet, I am writing now using it. Can you believe Firefox is no longer the cool kids&#8217; browser. So sad. So what do I think of it having used it for precisely 10 [...]]]></description>
			<content:encoded><![CDATA[<p>I am proud to put my happy fanboy glasses on and say that I installed Google Chrome on its first day. Better yet, I am writing now using it. Can you believe Firefox is no longer the cool kids&#8217; browser. So sad. So what do I think of it having used it for precisely 10 minutes:</p>
<p>Yay:</p>
<ul>
<li>Wicked Fast</li>
<li>Sorta cute looking</li>
<li>Search in the address bar works very well</li>
<li>Design outside of Mozilla&#8217;s reach</li>
<li>Process-based design is interesting, maybe it can actually work, hey think outside the box, yo</li>
<li>Download manager looks like the<a href="http://downloadstatusbar.mozdev.org/"> Firefox Download Bar</a> extension, only looks waaaaay better</li>
<li><a href="http://googlemac.blogspot.com/2008/09/platforms-and-priorities.html">No Mac version</a>. Please talk to the genius at the genius bar. I am bitter.</li>
</ul>
<p>Nay:</p>
<ul>
<li>No ad blocking. Yeah, Google - the ad people - will let you f- with that. I bet that is like, motivation #1 for this whole adventure</li>
<li>A remarkably sad day for web developers. Not only are companies going to want to test for another browser like Safari or god have mercy, Opera, you really need another pain in the but in the form of Chrome. And yeah, it renders like Safari, but its JavaScript is all new. Wheee</li>
<li>No integration yet with del.icio.us and web developer tools that make Firefox sing</li>
<li>Google needing to support users on Windows. Welcome to hell.</li>
<li>Only god know which nameless, oh-so-private stats are being collected on us when we use a product from a company that makes money off of that. Yeah, it&#8217;s open source, but did you read a million lines lately?</li>
<li>Facebook not like, 100% with Chrome: The next/previous links in the Facebook image gallery don&#8217;t work; the comment on news feed stories do not work; photo tagging is a fail too; the more I try the list gets longer - in short, FB is shafted in Chrome. Petty, I know, but I am sharing. Doubt Facebook, on the Microsoft side and a Google wannabe anti-Christ, wants to care.</li>
</ul>
<p>Regardless, I root for Google. Another ballsy, way beyond uber-cool idea. Seems to be running. Was a pain to download because apparently they are so deluged with requests it hurt their servers.</p>
<p>How&#8217;s this for low-to-lowest brow review?</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=Google%20Chrome%3A%20First%20Impressions&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F09%2F02%2Fgoogle-chrome-first-impressions%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/09/02/google-chrome-first-impressions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How browsers detect whether the URL points to a file or a directory</title>
		<link>http://www.enavigo.com/2008/09/01/how-browsers-detect-whether-the-url-points-to-a-file-or-a-directory/</link>
		<comments>http://www.enavigo.com/2008/09/01/how-browsers-detect-whether-the-url-points-to-a-file-or-a-directory/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 04:33:58 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[directory]]></category>

		<category><![CDATA[file]]></category>

		<category><![CDATA[http]]></category>

		<category><![CDATA[web servers]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/?p=210</guid>
		<description><![CDATA[Suppose you are a browser and you get a URL like:
http://www.enavigo.com/awesome
How do you know if awesome is a directory or a file?
A really nice hint you&#8217;d be nice to give is to append a slash to the URL whenever you denote a directory. 
So how *can* you find that out?
The only way I found out [...]]]></description>
			<content:encoded><![CDATA[<p>Suppose you are a browser and you get a URL like:<br />
<code>http://www.enavigo.com/awesome</code><br />
How do you know if <code>awesome</code> is a directory or a file?<br />
A really nice hint you&#8217;d be nice to give is to append a slash to the URL whenever you denote a directory. </p>
<p>So how *can* you find that out?<br />
The only way I found out had to do with headers. It appears that when web servers are sent a URL like <code>http://www.enavigo.com/awesome</code> and awesome *is* a directory, the response header will redirect the browser (or requestor for that matter) to the properly specified URL<br />
<code>http://www.enavigo.com/awesome/</code> which has the trailing slash character. I am sure that has to do with server setup. </p>
<p>Need to research this issue more&#8230;</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=How%20browsers%20detect%20whether%20the%20URL%20points%20to%20a%20file%20or%20a%20directory&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F09%2F01%2Fhow-browsers-detect-whether-the-url-points-to-a-file-or-a-directory%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/09/01/how-browsers-detect-whether-the-url-points-to-a-file-or-a-directory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What browsers do when we ../ too much</title>
		<link>http://www.enavigo.com/2008/08/31/what-browsers-do-when-we-too-much/</link>
		<comments>http://www.enavigo.com/2008/08/31/what-browsers-do-when-we-too-much/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 03:33:40 +0000</pubDate>
		<dc:creator>yuval</dc:creator>
		
		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[../]]></category>

		<category><![CDATA[directory traversal]]></category>

		<category><![CDATA[web browsers]]></category>

		<guid isPermaLink="false">http://www.enavigo.com/?p=209</guid>
		<description><![CDATA[Part of my thesis work touches on the way web browsers behave and how they process the code that the almighty developers throw at them. Most browsers do not scoff at crappy code, they do try to make sense of it and try to put lipstick on a pig. While testing my code on my [...]]]></description>
			<content:encoded><![CDATA[<p>Part of my thesis work touches on the way web browsers behave and how they process the code that the almighty developers throw at them. Most browsers do not scoff at crappy code, they do try to make sense of it and try to put lipstick on a pig. While testing my code on my own family website, I noticed an interesting behavior: the PHP header file I was including in all pages, had a reference to an image</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;../images/imageName.jpg&quot; /&gt;</pre></div></div>

<p><span id="more-209"></span><br />
This should work in any subdirectory - where ../ means everywhere except the home page: the &#8220;../&#8221; in the beginning of the <code>src</code> reference tells the browser to go one directory up and then go down to the images directory where the image is stored. On the home page, this should not work, as there is *no directory above* the root directory, where the home page resides. </p>
<p>Still, browsers DO display that image, despite the moronic code (mine!). In other words, when a browser reaches the root directory and a reference is made to a directory above, it will ignore that reference and try to descend to subdirectories under it. I tested this with multiple ../ referencing directories above the root and still, the browsers prevailed. </p>
<p>Therefore, appreciate thy browser (just a bit)&#8230; Thank you browser!</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Enavigo&amp;siteurl=http%3A%2F%2Fwww.enavigo.com%2F&amp;linkname=What%20browsers%20do%20when%20we%20..%2F%20too%20much&amp;linkurl=http%3A%2F%2Fwww.enavigo.com%2F2008%2F08%2F31%2Fwhat-browsers-do-when-we-too-much%2F"><img src="http://www.enavigo.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.enavigo.com/2008/08/31/what-browsers-do-when-we-too-much/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.304 seconds -->
<!-- Cached page served by WP-Cache -->
