<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Stuff Yaron Finds Interesting &#187; Home PC</title>
	<atom:link href="http://www.goland.org/category/technology/home-pc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.goland.org</link>
	<description>Technology, Politics, Food, Finance, etc.</description>
	<lastBuildDate>Sat, 21 Aug 2010 23:18:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>A mac fail? Please Help me with remote desktop</title>
		<link>http://www.goland.org/a-mac-fail-please-help-me-with-remote-desktop/</link>
		<comments>http://www.goland.org/a-mac-fail-please-help-me-with-remote-desktop/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 00:13:25 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false">http://www.goland.org/a-mac-fail-please-help-me-with-remote-desktop/</guid>
		<description><![CDATA[I want to get a mac laptop for my wife but I want to be able to use it as a remote terminal for my iMac upstairs. There doesn&#8217;t appear to be a decent solution for this problem on the mac. VNC is a joke. It will just take my 24 inch iMac screen and [...]]]></description>
			<content:encoded><![CDATA[<p>I want to get a mac laptop for my wife but I want to be able to use it as a remote terminal for my iMac upstairs.</p>
<p>There doesn&#8217;t appear to be a decent solution for this problem on the mac. VNC is a joke. It will just take my 24 inch iMac screen and shrink it down to the laptop&#8217;s screen size. And yes I have played around with smart zoom but it&#8217;s really painful.</p>
<p>Isn&#8217;t there an equivalent for the mac to Microsoft&#8217;s outstanding Remote Desktop Connection application and RDP protocol?</p>
<p>For what it&#8217;s worth I signed up to be notified when AquaConnect releases their mac remote desktop product which is based on RDP but they aren&#8217;t even announcing dates. </p>
<p>Any ideas or am I just out of luck? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/a-mac-fail-please-help-me-with-remote-desktop/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Apple Machine Support Sucks</title>
		<link>http://www.goland.org/AppleMachineSupportSucks/</link>
		<comments>http://www.goland.org/AppleMachineSupportSucks/#comments</comments>
		<pubDate>Sun, 12 Aug 2007 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[The minimum system requirements for iLife &#39;08 requires either a Power Mac G5 dual 2.0Ghz or iMac G5 1.9 Ghz. My machine is a Power Mac G5 dual 1.8Ghz and my wife&#39;s iMac is a G5 1.8 Ghz. I bought my machine in 4/2004 so after just 3 years and 4 months the machine is, [...]]]></description>
			<content:encoded><![CDATA[<p>The minimum <a href="http://www.apple.com/ilife/systemrequirements.html" shape="rect">system  requirements for iLife &#39;08</a> requires either a Power Mac G5  dual 2.0Ghz or iMac G5 1.9 Ghz. My machine is a Power Mac G5 dual  1.8Ghz and my wife&#39;s iMac is a G5 1.8 Ghz. I bought my  machine in 4/2004 so after just 3 years and 4 months the machine  is, in so far as Apple is concerned, obsolete. We bought my wife  her iMac in 6/2005 so in her case it only took 2 years and 2  months for her machine to be declared obsolete by Apple. I think  that is insane. Apple takes thousands of dollars and gives us  just over 2 years before declaring our machines obsolete? I am  not a happy Apple customer.</p>
<p>And yes, I know, it is possible to run iLife &#39;08 on these  machines but we wouldn&#39;t have any official support and if  there is a problem we can&#39;t even return the software since,  it is my understanding, that Apple won&#39;t take back open  software boxes. So we&#39;re screwed. I typically upgrade my  computers every four years or so, so I was planning on upgrading  my box in 2008 but even then I can&#39;t move to iLive &#39;08  because we won&#39;t be upgrading my wife&#39;s machine until  2009 and we share iPhoto by file synching (as in, my wife&#39;s  machine is the &#39;master&#39; and I synch off her drive). And  no, terminal serving in to my machine from her machine won&#39;t  work. The whole reason we got my wife a Mac is to make her life  simpler, not more complex. Besides, she downloads the pictures to  her machine, not mine.</p>
<p>Normally Apple makes me really happy but I feel seriously  screwed by iLive &#39;08. Obsoleting a main line machine in under  3 years is just wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/AppleMachineSupportSucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making LY X Produce Decent Hyperlinked
    HTML &amp; PDF Files</title>
		<link>http://www.goland.org/lyx/</link>
		<comments>http://www.goland.org/lyx/#comments</comments>
		<pubDate>Wed, 08 Aug 2007 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[As someone who writes for a living I have used a whole slew of word processors and generally haven&#39;t been all that happy with any of them. When I write I want to focus on the content, not the presentation. So the whole WYSIWYG generation of word processors left me cold. In fact, I spend [...]]]></description>
			<content:encoded><![CDATA[<p class="indent"><span class="aer-9">As someone who writes        for a living I have used a whole slew of word processors        and generally</span> <span class="aer-9">haven&#39;t been        all that happy with any of them. When I write I want to        focus on the content, not</span> <span class="aer-9">the        presentation. So the whole WYSIWYG generation of word        processors left me cold. In fact,</span> <span class="aer-9">I spend most of my time in outline mode in        Word.</span> <a href="http://www.lyx.org/" shape="rect"><span class="aer-9">LyX</span></a> <span class="aer-9">takes a        different approach. It focuses</span> <span class="aer-9">on What You See Is What You Mean (WYSIWYM). In        other words, it doesn&#39;t worry about</span> <span class="aer-9">formating, just content.</span> <!--l. 57--></p>
<p class="indent"><span class="aer-9">When I first reviewed        L</span><span class="aer-9">Y</span> <span class="aer-9">X        a year ago I decided it was good enough to use (and have        done</span> <span class="aer-9">so regularly since) but        still painful. With the 1.5.1 release I can revise that        review to say that</span> <span class="aer-9">it&#39;s only        minorly irritating to use L</span><span class="aer-9">Y</span> <span class="aer-9">X but it&#39;s good        points are so numerous that it&#39;s more than</span>        <span class="aer-9">worth the pain if you need to deal with        large documents, with math formulas or with large</span>        <span class="aer-9">bibliographies. And thanks to the        efforts of folks like Dr. Richard G. Heck (who has my        undying</span> <span class="aer-9">gratitude for fixing        HTML generation in L</span><span class="aer-9">Y</span>        <span class="aer-9">X) L</span><span class="aer-9">Y</span>        <span class="aer-9">X is substantially better at generating        HTML.</span> <!--l. 67--></p>
<p class="indent"><span class="aer-9">L</span><span class="aer-9">Y</span> <span class="aer-9">X does have a learning        curve and one is well advised to at least read the        tutorial</span> <span class="aer-9">(Help-&gt;Tutorial).        But I believe that the modern versions of        L</span><span class="aer-9">Y</span> <span class="aer-9">X        have vastly improved over</span> <span class="aer-9">their        predecessors and the learning curve is well worth the        effort.</span></p>
<p><span id="more-583"></span><br />
<h3 class="likesectionHead"><a id="x1-1000" name="x1-1000" shape="rect"></a><span class="aer-9">Contents</span></h3>
<div class="tableofcontents">          <span class="sectionToc"><span class="aer-9">1</span>          <a href="#x1-20001" id="QQ2-1-2" name="QQ2-1-2" shape="rect"><span class="aer-9">Starting a New          Document</span></a></span><br clear="none"/>          <span class="sectionToc"><span class="aer-9">2</span>          <a href="#x1-30002" id="QQ2-1-3" name="QQ2-1-3" shape="rect"><span class="aer-9">Math</span></a></span><br clear="none"/>          <span class="sectionToc"><span class="aer-9">3</span>          <a href="#x1-40003" id="QQ2-1-4" name="QQ2-1-4" shape="rect"><span class="aer-9">Bibliographies</span></a></span><br clear="none"/>          <span class="sectionToc"><span class="aer-9">4</span>          <a href="#x1-50004" id="QQ2-1-5" name="QQ2-1-5" shape="rect"><span class="aer-9">URLs</span></a></span><br clear="none"/>          <span class="sectionToc"><span class="aer-9">5</span>          <a href="#x1-60005" id="QQ2-1-6" name="QQ2-1-6" shape="rect"><span class="aer-9">Adding Cross          References</span></a></span><br clear="none"/>          <span class="sectionToc"><span class="aer-9">6</span>          <a href="#x1-70006" id="QQ2-1-7" name="QQ2-1-7" shape="rect"><span class="aer-9">Making Pretty          HTML</span></a></span><br clear="none"/>          <span class="sectionToc"><span class="aer-9">7</span>          <a href="#x1-80007" id="QQ2-1-8" name="QQ2-1-8" shape="rect"><span class="aer-9">Conclusion</span></a></span><br clear="none"/>          <span class="sectionToc"><a href="#Q1-1-9" shape="rect"><span class="aer-9">References</span></a></span><br clear="none"/>          <span class="sectionToc"><span class="aer-9">A</span>          <a href="#x1-10000A" id="QQ2-1-11" name="QQ2-1-11" shape="rect"><span class="aer-9">Appendix &#8211; Creating the          Template</span></a></span><br clear="none"/>          <span class="aer-9"> </span><span class="subsectionToc"><span class="aer-9">A.1</span> <a href="#x1-11000A.1" id="QQ2-1-12" name="QQ2-1-12" shape="rect"><span class="aer-9">Configuring URL Output</span></a></span><br clear="none"/>          <span class="aer-9"> </span><span class="subsectionToc"><span class="aer-9">A.2</span> <a href="#x1-12000A.2" id="QQ2-1-13" name="QQ2-1-13" shape="rect"><span class="aer-9">Configuring BibTex</span></a></span><br clear="none"/>          <span class="aer-9"> </span><span class="subsectionToc"><span class="aer-9">A.3</span> <a href="#x1-13000A.3" id="QQ2-1-14" name="QQ2-1-14" shape="rect"><span class="aer-9">Making Simple Quotes</span></a></span><br clear="none"/>          <span class="aer-9"> </span><span class="subsectionToc"><span class="aer-9">A.4</span> <a href="#x1-14000A.4" id="QQ2-1-15" name="QQ2-1-15" shape="rect"><span class="aer-9">Avoiding Problems With          Fonts</span></a></span><br clear="none"/>          <span class="sectionToc"><span class="aer-9">B</span>          <a href="#x1-15000B" id="QQ2-1-16" name="QQ2-1-16" shape="rect"><span class="aer-9">Historical          Cruft</span></a></span>        </div>
<p><!--l. 75-->
<p class="noindent"></p>
<h3 class="sectionHead"><span class="titlemark">1</span> <a id="x1-20001" name="x1-20001" shape="rect"></a>Starting a New Document</h3>
<p>  <!--l. 77-->
<p class="noindent">To start a new document I begin by using  File-&gt;New From Template and then pointing at the locally saved  version of my <a href="http://www.goland.org/webtemplate.lyx" shape="rect">template file</a>. This  file sets a few environmental variables that enable URLs and set  a few other things the way I like. <!--l. 83--></p>
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">2</span> <a id="x1-30002" name="x1-30002" shape="rect"></a>Math</h3>
<p><!--l. 85-->
<p class="noindent"><span class="TEX">T<span class="E">E</span>X</span>, the underlying technology for LY X, was  original invented in order to produce beautiful mathematical  equations. So as one would expect LY X comes with a fairly nifty  equation editor. For example, here&#39;s an equation I pulled out  of my <a href="http://www.goland.org/retire1" shape="rect">book on retirement  planning</a>: <!--l. 90--></p>
<p class="indent">
<div class="eqnarray math-display c1">    <img alt=" (1+ IBond )N - ((1+ IBond )N - 1)* T = (1 +(IBondsEquiv * (1 - M arginalTax))N N N 1- 1 + (IBondsEquiv * (1- M arginalT ax)) = ((1+ IBond ) - 1((1+ IBond ) - 1* T)N ((1+-IBond-)N-- ((1+-IBond-)N --1)*-T)1N---1 IBondsEquiv = 1 - M arginalTax " class="math-display" src="lyx0x.png"></img>  </div>
<p><!--l. 96-->
<p class="indent">What&#39;s especially nice is that I can enter  the <span class="TEX">T<span class="E">E</span>X</span> formula  commands directly into the dialog and LY X will translate the  command on the fly to the right graphical representation. But  there is also a graphical formula palette available by right  clicking on an equation. The only trick I&#39;ve had to remember  is to press command-return when I want to enter multiple  equations at one time. <!--l. 104--></p>
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">3</span> <a id="x1-40003" name="x1-40003" shape="rect"></a>Bibliographies</h3>
<p><!--l. 106-->
<p class="noindent">One of the more unpleasant tasks in writing a  paper with lots of references is keeping track of those  references, linking to citations and making sure the bibliography  is properly formatted and ordered. Thankfully there is a great  standard called BibTex that handles a lot of the drudgery. The  first step to using BibTex is to get a bibliography manager  program which can keep track of all the bibliographic entries.  For OS X there&#39;s BibDesk<span class="cite">[<a href="#XBibDesk" shape="rect">Bib(2006)</a>]</span>. It&#39;s pretty nifty but I  did find perusing its manual worthwhile, especially regarding its  AutoFile feature. With AutoFile, BibDesk is designed not only to  keep track of reference information but also of the underlying  documents being referenced. <!--l. 118--></p>
<p class="indent">To get BibTex references working I double click  on the &quot;BibTex Generated Bibliography&quot; icon at the  bottom of the new file created from the template and navigate to  the .bib file generated by BibDesk. To add actual citations I use  Insert-&gt;Citation which will list all the citations available  in the BibTex file. It&#39;s worth pointing out that BibDesk only  updates the BibTex file when the File-&gt;Save command in BibDesk  is used. <!--l. 126--></p>
<p class="indent">One of the issues I&#39;ve noodled on for a  while is how to get decent bibliography entries for Webpages.  BibDesk supports URL, Electronic and Webpage styles but I find  that they either don&#39;t have enough information or require too  much information to properly fill out. I now find myself mostly  using the &quot;proceedings&quot; style where I put the web page  name as the title, a year and then enter the URL. I find this  publishes quite nicely. <!--l. 135--></p>
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">4</span> <a id="x1-50004" name="x1-50004" shape="rect"></a>URLs</h3>
<p><!--l. 137-->
<p class="noindent">A real weakness in LY X is its URL handling.  There is a special URL dialog but unfortunately it can only  produce URLs of the form text <span class="obeylines-h"><a class="url" href="/lyx" shape="rect"><span class="aett-10">/lyx</span></a></span>.  That is, some text followed by a URL. To get around this I use  Evil Red Text (ERT). I create an ERT by pressing the <span class="TEX">T<span class="E">E</span>X</span> button and then entering  information of the form &#92;href{http://www.goland.org}{this URL}  which is the command I used to generate <a href="http://www.goland.org" shape="rect">this URL</a>. <!--l. 145--></p>
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">5</span> <a id="x1-60005" name="x1-60005" shape="rect"></a>Adding Cross References</h3>
<p>  <!--l. 147-->
<p class="noindent"><span class="TEX">T<span class="E">E</span>X</span> supports a very simple type of cross  referencing using &#92;ref and &#92;label that allows one to reference  anything that has been labeled. These references, especially if  set to &#39;reference&#39;, will work in HTML but references  always reference the nearest section to the label, they don&#39;t  link to the actual labeled text. This is fine for printed  documents but less than optimal for HTML. <!--l. 154--></p>
<p class="indent">One horrendously painful workaround is to use  the &#92;hypertarget{Label}{Text} and &#92;hyperlink{Label}{Text} macros.  Both macros are inserted using the <span class="TEX">T<span class="E">E</span>X</span> button to create ERT. For  example, I use &#92;hypertarget{L1}{this text} to link <a id="L1" name="L1" shape="rect">this text</a> to <a href="#L1" shape="rect">this link</a> that I  created using &#92;hyperlink{L1}{this link}. <!--l. 162--></p>
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">6</span> <a id="x1-70006" name="x1-70006" shape="rect"></a>Making Pretty HTML</h3>
<p>  <!--l. 164-->
<p class="noindent">File-&gt;Export-&gt;HTML. Thanks to Dr. Heck  it&#39;s as simple as that. <!--l. 167--></p>
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">7</span> <a id="x1-80007" name="x1-80007" shape="rect"></a>Conclusion</h3>
<p><!--l. 169-->
<p class="noindent">Although LY X isn&#39;t necessarily the  easiest word processor ever invented it richly rewards the  investment to learn it by providing an environment that lets the  author focus on the text above all. I really enjoy editing text  in LY X even for its various glitches and issues. I also give a  hearty thanks to the LY X developers for doing a great job of  continually improving LY X. <a id="Q1-1-9" name="Q1-1-9" shape="rect"></a>   <!--l. 1--></p>
<p class="noindent">
<h3 class="likesectionHead"><a id="x1-90007" name="x1-90007" shape="rect"></a>References</h3>
<p><!--l. 1-->
<p class="noindent"></p>
<div class="thebibliography">
<p class="bibitem"><span class="biblabel">[Bib(2006)]<span class="bibsp">      </span></span><a id="XBibDesk" name="XBibDesk" shape="rect"></a><span class="aeti-10">BibDesk</span>, 2006. URL <span class="obeylines-h"><a class="url" href="http://bibdesk.sourceforge.net/" shape="rect"><span class="aett-10">http://bibdesk.sourceforge.net/</span></a></span>.</p>
</p></div>
<p><!--l. 182-->
<p class="noindent"></p>
<h3 class="sectionHead"><span class="titlemark">A</span> <a id="x1-10000A" name="x1-10000A" shape="rect"></a>Appendix &#8211; Creating the  Template</h3>
<p><!--l. 185-->
<p class="noindent"></p>
<h4 class="subsectionHead"><span class="titlemark">A.1</span>  <a id="x1-11000A.1" name="x1-11000A.1" shape="rect"></a>Configuring URL  Output</h4>
<p><!--l. 187-->
<p class="noindent">The HREF function described above is enabled  via a package called <a href="http://www.tug.org/applications/hyperref/manual.html" shape="rect">hyperref</a>.  To enable hyperref and also to set the output behavior so that  hyperlinks will be colored when outputted in PDF documents (a  useful feature since PDF viewers like Apple&#39;s preview do not  highlight URLs by default in PDFs) the text below needs to be  added to the preamble of the document. Preamble is accessed via  Document-&gt;Settings-&gt;<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span class="E">E</span>X</span></span> Preamble <!--l. 195--></p>
<p class="noindent">
<dl class="list1">
<dd class="list">      <!--l. 195-->
<p class="noindent"><span class="aett-10">&#92;usepackage{hyperref}</span> <!--l. 198--></p>
<p class="noindent"><span class="aett-10">&#92;hypersetup{colorlinks=true,</span><span class="aett-10"> linkcolor=blue,</span><span class="aett-10">      filecolor=blue,</span><span class="aett-10">      pagecolor=blue,</span><span class="aett-10">      urlcolor=blue}</span></p>
</dd>
</dl>
<p><!--l. 201-->
<p class="noindent"></p>
<h4 class="subsectionHead"><span class="titlemark">A.2</span>  <a id="x1-12000A.2" name="x1-12000A.2" shape="rect"></a>Configuring  BibTex</h4>
<p><!--l. 203-->
<p class="noindent">I added in a BibTex based bibliography by  going to the end of the document and using  Insert-&gt;Lists/TOC-&gt;BibTex Bibliography. As described  above(<a href="#x1-40003" shape="rect">3  <!--tex4ht:ref: Bibliographies --></a>) I point the file at the  appropriate .bib file. I set the style to &quot;plainnat&quot;  because I like how it outputs citations (author&#39;s last name +  Year) and it also will output URLs listed in the bibliography. I  also check &quot;add Bibliography to TOC&quot; so the  Bibliography shows up in the table of contents. <!--l. 212--></p>
<p class="noindent">
<h4 class="subsectionHead"><span class="titlemark">A.3</span>  <a id="x1-13000A.3" name="x1-13000A.3" shape="rect"></a>Making Simple  Quotes</h4>
<p><!--l. 214-->
<p class="noindent">I think the default quote format in LY X is a  bit odd. I prefer simple quotes. To enable this I set  Document-&gt;Settings-&gt;Language-&gt;Quote  Style-&gt;&quot;text&quot;. <!--l. 219--></p>
<p class="noindent">
<h4 class="subsectionHead"><span class="titlemark">A.4</span>  <a id="x1-14000A.4" name="x1-14000A.4" shape="rect"></a>Avoiding Problems With  Fonts</h4>
<p><!--l. 221-->
<p class="noindent">Leaving the fonts (available via  Document-&gt;Settings-Fonts) all on default will produce  reasonable output. Messing around with the choices can be a bit  dicey in terms of generating HTML as there is a problem with some  of the fonts generating bizarre ligatures. For example, set Roman  to Bera Serif and generate a HTML file that contains the strings  &quot;fi&quot; and &quot;fj&quot;. The HTML output will invert  them, &quot;fi&quot; will come out &quot;fj&quot; and  &quot;fj&quot; will come out &quot;fi&quot;. If you keep all the  fonts on default then all will be well. <!--l. 231--></p>
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">B</span> <a id="x1-15000B" name="x1-15000B" shape="rect"></a>Historical Cruft</h3>
<p>  <!--l. 233-->
<p class="noindent">Before Dr. Heck fixed LY X it used to be that  it wasn&#39;t possible to generate HTML from LY X that honored  bibliographies. The dance below fixed that problem. It&#39;s no  longer necessary but I paid a really painful price to figure out  the exact right set of commands so I&#39;m keeping a copy here,  just in case. <!--l. 239--></p>
<p class="indent">Let&#39;s assume that file is called  &quot;myfile.tex&quot;. I next open a terminal window, navigate  to the directory containing myfile.tex and type in the following  commands: <!--l. 243--></p>
<p class="noindent">
<dl class="list1">
<dd class="list">      <!--l. 243-->
<p class="noindent"><span class="aett-10">latex</span><span class="aett-10"> myfile</span>       <!--l. 246--></p>
<p class="noindent"><span class="aett-10">bibtex</span><span class="aett-10"> myfile</span>       <!--l. 248--></p>
<p class="noindent"><span class="aett-10">latex</span><span class="aett-10"> myfile</span>       <!--l. 250--></p>
<p class="noindent"><span class="aett-10">latex</span><span class="aett-10"> myfile</span>       <!--l. 252--></p>
<p class="noindent"><span class="aett-10">htlatex</span><span class="aett-10">      myfile</span><span class="aett-10"> xhtml</span></p>
</dd>
</dl>
<p><!--l. 254-->
<p class="noindent">Notice that the extension &quot;.tex&quot; is  not used. Then end result will be a file called myfile.html that  will contain a full HTML representation, with a bibliography and  will generate gifs for any math formulas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/lyx/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Running a J2SE 1.5/J2SE 5.0/Java 5.0/whatever Program From
  Command Line Under OS X</title>
		<link>http://www.goland.org/j2se15osx/</link>
		<comments>http://www.goland.org/j2se15osx/#comments</comments>
		<pubDate>Thu, 12 Jan 2006 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[The good news is that J2SE 1.5 is available for OS X. Last I checked it was available here. For whatever reason Apple decided to keep the default version of Java on OS X as 1.4.2. So when I try to run Java programs directly from Terminal using &#34;Java -Jar X.Jar&#34; the program will be [...]]]></description>
			<content:encoded><![CDATA[<p>The good news is that J2SE 1.5 is available for OS X. Last I  checked it was available <a href="http://www.apple.com/support/downloads/java2se50release3.html" shape="rect">here</a>.  For whatever reason Apple decided to keep the default version of  Java on OS X as 1.4.2. So when I try to run Java programs  directly from Terminal using &quot;Java -Jar X.Jar&quot; the  program will be run under 1.4.2. But the goodies in J2SE 1.5  (like generics and enums and iterators) are just too yummy to  give up so all my Java code is in 1.5 which means it won&#39;t  run on Terminal. To fix this problem I found a script (details  available <a href="http://lists.apple.com/archives/Java-dev/2005/Aug/msg00506.html" shape="rect">  here</a>). Once I downloaded the script and saved it as  java_functions_bashrc, I then opened terminal, navigated to the  directory with the file and executed &quot;source  java_functions_bashrc&quot;. This changes the command prompt to  indicate that the file is running and I then ran &quot;setJava  1.5&quot;. At this point any Jar files I run will be run under  J2SE 1.5. I tend now to write little scripts that wrap my Jar  files to load up Java 1.5.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/j2se15osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Executable Jar Files That Contain Jar Files</title>
		<link>http://www.goland.org/jarsinjars/</link>
		<comments>http://www.goland.org/jarsinjars/#comments</comments>
		<pubDate>Wed, 11 Jan 2006 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Naive Java user that I am when I built a Java program that contains Jar files for Xerces and MySQL and such I assumed that Eclipse would be able to create a Jar file for my program that contains these other Jar files. That part was right, Eclipse can do that, what Eclipse can&#39;t do [...]]]></description>
			<content:encoded><![CDATA[<p>Naive Java user that I am when I built a Java program that  contains Jar files for Xerces and MySQL and such I assumed that  Eclipse would be able to create a Jar file for my program that  contains these other Jar files. That part was right, Eclipse can  do that, what Eclipse can&#39;t do is set up the class paths  correctly so my custom generated Jar file can&#39;t find the  classes it needs. Thankfully, <a href="http://one-jar.sourceforge.net/" shape="rect">One-Jar</a> came to the  rescue.</p>
<p>  <span id="more-580"></span><br />
<h2>Building a Jar File That Contains Jar Files</h2>
<p>My project has a bunch of classes, which is no big deal, but  it also includes a bunch of Jar files for things like Xerces  &amp; MySQL. Unfortunately the classpath argument in a Jar  file&#39;s manifest works in some bizarre way too hard for my  limited intellect to grasp with the result that, in short, you  can&#39;t put Jar files into Jar files and expect things to work  well.</p>
<p>When I asked the Java gurus at work how to handle this they  said I was supposed to unzip the Jar files I was depending on,  flatten out their directory structures and then jar up the whole  bloody thing. This is as nasty as it sounds and the way most  people deal with it is they develop using the Jar files directly  (something Eclipse handles wonderfully) but when the time comes  to create their own Jar file they have ANT scripts which do the  dirty work.</p>
<p>I, however, took one look at ANT and realized that I could  easily waste days trying to understand it. I had no doubt that  all I needed was 10 lines of ANT XML but figuring out which ten  lines would take me forever.</p>
<p>Thankfully however I found a program called <a href="http://one-jar.sourceforge.net/" shape="rect">One-Jar</a> which is designed  to create a Jar file that contains other Jar files and to make  all the dependencies work. It does this through the nasty  expedient of introducing its own class loader (a time honored  Java hack) who does all the dirty work. I&#39;m probably a bit  thick but I found the instructions on the One-Jar home page a bit  hard to follow. Here&#39;s my own even harder to read  version.</p>
<h3>Setting Up to use One-Jar</h3>
<p>I have a directory called JavaStuff that contains within it a  directory called MyJavaCode which contains all of my Java classes  as well as the Jar files my classes make use of, e.g. Xerces and  MySQL. To make it easy for me to create my custom Jar file I  created a child directory to JavaStuff called onejarstruc which  itself contains three subdirectories, main, lib and boot. So the  file structure looks like:</p>
<pre xml:space="preserve">                        JavaStuff <br/>                       /          &#92; <br/>             MyJavaCode            onejarstruc <br/>              /                    /    |   &#92; <br/> Jar Files &amp; Java Classes         main lib  boot</pre>
<p>What matters in this set up are the directory names  &quot;main&quot; and &quot;lib&quot;. One-Jar depends on finding  exactly those names to do its magic.</p>
<p>I then copied the <a href="http://prdownloads.sourceforge.net/one-jar/one-jar-boot-0.95.jar?download" shape="rect">  Jar file</a> I downloaded from One-Jar into the boot directory  and executed &quot;jar -xvf one-jar-boot-0.95.jar&quot; in  terminal which exploded the Jar file&#39;s contents into the boot  directory.</p>
<p>The next step was to create a manifest file. This file&#39;s  only job is to point to the class that contains the main method  that should be called when my Jar is executed. To do this I  created a file called blog.manifest inside of the MyJavaCode  directory. It&#39;s contents are:</p>
<pre xml:space="preserve">Main-Class: org.goland.blog.ReadPost</pre>
<h3>Making It Easy To Use One-Jar</h3>
<p>The process of creating my custom Jar file using One-Jar has  the following steps:</p>
<ol>
<li>
<p>Remove any old files hanging around</p>
</li>
<li>
<p>Create the &quot;core.jar&quot; file which just contains      my Java classes and is set to use blog.manifest and put the      resulting jar file in the &quot;onjarstruc/main&quot;      subdirectory.</p>
</li>
<li>
<p>Move the Jar files I depend on (like Xerces, MySQL, etc.)      to &quot;onjarstruct/lib&quot;</p>
</li>
<li>
<p>Create the final jar file, I call it blogupdater.jar and      put inside of it the contents of the main and lib      directories</p>
</li>
<li>
<p>Update the contents of blogupdater.jar to contain the      manifest and classes provided by One-Jar</p>
</li>
</ol>
<p>The script that does this for my project is:</p>
<pre xml:space="preserve">#!/bin/sh<br/># Configuration<br/>commonRoot=/Users/xxx/yyy/JavaStuff<br/>java5BashRC=$commonRoot/java_functions_bashrc<br/>oneJarRoot=$commonRoot/onejarstruc<br/># The compound Jar file with the One-Jar class loader<br/>updateJarLoc=$commonRoot/blogupdater.jar<br/>javaCodeRoot=$commonRoot/MyJavaCode<br/># The manifest file for core.jar<br/>coreManifest=$commonRoot/MyJavaCode/blog.manifest<br/><br/># Clean up<br/>rm $updateJarLoc<br/>rm $oneJarRoot/main/*<br/>rm $oneJarRoot/lib/*<br/><br/># Create core jar file (org is the directory with my java code)<br/>jar cmf $coreManifest $oneJarRoot/main/core.jar -C $javaCodeRoot org<br/><br/># Move helper jar files over to library<br/>cp $javaCodeRoot/*.jar $oneJarRoot/lib<br/><br/># Create the compound jar file<br/>jar cf $updateJarLoc -C $oneJarRoot main -C $oneJarRoot lib<br/><br/># Change the classloader for the compound jar file<br/>jar -uvfm $updateJarLoc $oneJarRoot/boot/boot-manifest.mf -C $oneJarRoot/boot .</pre>
<p><br/>  <br/></p>
<p>I save this script as &quot;buildjar.sh&quot; and after  running &quot;sh buildjar.sh&quot; in terminal I have a nice  shinny new blogupdate.jar file which I then can execute. Thanks  to the magic of One-Jar all of the references in my Java code to  classes inside of the subsidiary Jar files work just fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/jarsinjars/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tor &amp; Why You May Have Something to Hide</title>
		<link>http://www.goland.org/torprivoxyosx/</link>
		<comments>http://www.goland.org/torprivoxyosx/#comments</comments>
		<pubDate>Wed, 07 Dec 2005 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[[Updated to include instructions on how to configure web browsers to only use Tor for some websites but not others.] Tor is an EFF supported open source software project that makes it difficult for anyone to figure out who a Tor user is talking to on the Internet. For example, someone using Tor can pretty [...]]]></description>
			<content:encoded><![CDATA[<p>[Updated to include instructions on how to configure web  browsers to only use Tor for some websites but not others.]</p>
<p><a href="http://tor.eff.org/" shape="rect">Tor</a> is an <a href="http://www.eff.org/" shape="rect">EFF</a> supported open source software  project that makes it difficult for anyone to figure out who a  Tor user is talking to on the Internet. For example, someone  using Tor can pretty effectively hide which websites they visit,  where they download content from, who they are sending e-mail to,  etc. As I explain below, Tor is a tool everyone should be  interested in, even those who <a href="http://www.goland.org/Tech/torprivoxyosx.htm#But_I_have_Nothing_to_Hide" shape="rect">  don&#39;t think they have anything to hide</a>.</p>
<p>Unfortunately Tor&#39;s performance can be quite slow. But  using proxy configuration files (pac files) it is possible to  configure browsers to use Privoxy/Tor for some websites but not  others. This is not a perfect solution since, as I explain below,  there are some trivial ways to get around this technique but it  is better than nothing.</p>
<p>  <span id="more-520"></span><br />
<h2><a id="But_I_have_Nothing_to_Hide" name="But_I_have_Nothing_to_Hide" shape="rect"></a>But I have Nothing to Hide!</h2>
<p>I can hear the responses now &quot;But I have nothing to hide,  why do I care about Tor?&quot;</p>
<p>You see, the funny part is, you probably don&#39;t know what  you have to hide. The classic example of this was communism in  America during the 1930&#39;s. With the great depression leading  many to believe that capitalism had failed, the happy communist  platitudes of &#39;from each according to their ability to each  according to their need&#39; suddenly didn&#39;t sound so bad.  Many people went to communist events, read communist literature  and even joined the communist party. These folks weren&#39;t  anti-American, they were just looking for a system that  didn&#39;t produce as much misery as what they were experiencing  in the U.S. at the time.</p>
<p>Later on, as the economy recovered and the facts of what  communism in practice looked like came out most people left  behind their dalliances with communism realizing it to be a  fundamentally flawed belief system that ignored the basics of  human nature and created an idealistic fantasy land whose every  implementation (think the Soviet Union or China) turned into a  nightmare of death on a massive scale.</p>
<p>After World War II ended, the American economy took off and  the Soviet Union became America&#39;s #1 enemy. This period  heralded the &quot;Red Scare&quot;. Any person who had so much as  touched a communist pamphlet could now find themselves being  accused of being a communist sympathizer and thus facing the  prospect of either ratting on their friends or having their lives  ruined. One can just imagine how many people during this period,  innocent upstanding Americans who were curious about Communism in  the 20&#39;s and 30&#39;s lay awake at night wondering if there  was any record of what they had done or if one of their  &#39;friends&#39;, desperate to avoid the destruction of their  own livelihood, would rat them out.</p>
<p>The reality is that we don&#39;t know what we have to hide. As  the government extends systems like <a href="http://www.google.com/search?q=carnivore%20fbi&amp;sourceid=mozilla2&amp;ie=utf-8&amp;oe=utf-8" shape="rect">  Carnivore</a> and <a href="http://www.google.com/search?hl=en&amp;lr=&amp;q=echelon+surveillance+network&amp;btnG=Search" shape="rect">  Echelon</a> and as laws such as the <a href="http://www.eff.org/Privacy/Surveillance/Terrorism/PATRIOT/" shape="rect">U.S.  Patriot Act</a> make it easier for the government to collect  &#39;traffic analysis&#39; information (such as who people call,  where they send e-mail, etc.) without having to provide any real  justification we can expect efforts such as &quot;<a href="http://www.eff.org/Privacy/TIA/" shape="rect">Terrorism Information  Awareness</a>&quot; to bring us that happy day when each of us  will have a file either in a government or <a href="http://www.junkbusters.com/doubleclick.html" shape="rect">private  database</a> that attempts to identify every website we visit  (how often and what we look at), every person we send an e-mail  to, who we IM with, etc. In fact, <a href="http://news.com.com/2102-1028_3-5748649.html?tag=st.util.print" shape="rect">according  to CNET&#39;s Declan Cullagh</a>, both Europe and the US are now  actively working on rules and laws to require that ISPs keep  records of all Internet activity for all of their users. As these  rules/laws get passed, using the usual three horseman of  terrorism, drugs and child pornography, every e-mail, chat  session and website that anyone visits will be logged and  recorded for anywhere between months to years.</p>
<p>I can only imagine how many Arab and Muslim Americans are now  laying awake at night wondering which of the charities they may  have innocently given money to or Mosques they may have visited  or lectures they may have attended pre-9/11 involved people or  organizations that are now on the U.S. Government&#39;s official  <a href="http://www.opm.gov/cfc/opmmemos/2003/list.asp" shape="rect">terrorist  organization watch list</a>. &quot;Do you now or have you ever  supported terrorist activities?&quot;</p>
<p>You don&#39;t know what you have to hide and by the time you  figure it out, it will likely be too late. This is where Tor  comes in. It makes it much easier to hide. The reason to use Tor  isn&#39;t so much because you have something to hide, the reason  to use Tor is so when you find out you had something to hide you  can rest a little easier knowing that your secret may be  protected.</p>
<h2>How Tor Works &#8211; The 30 Second Version</h2>
<p>Tor is based on various folks volunteering computers which act  as Tor routers. Someone using the Tor software on their client is  able to bounce their messages around these various routers before  their message reaches its final destination (for example, a  website they want to retrieve content from). The trick to all of  this is that when the message is bouncing around the Tor network  it is encrypted. The only router that can view the content is the  one at the end who makes the actual request. Similarly, using  further encryption tricks, the routers that the message bounces  around don&#39;t know about each other.<br/>  <br/>  Imagine a message starting at an initial router A, going to  router B, followed by router C followed by the final website (or  e-mail server or IM server or whatever). What happens is that the  client sends an encrypted message to router A. Router A can&#39;t  read the message and only knows that it is to forward the message  to router B. Router B also can&#39;t read the message but it  knows to forward the message to router C. Router C can read the  message, decrypts it and forwards it to the final destination,  the website (or e-mail server or&#8230;). The website then sends the  requested web page back to Router C who encrypts the response  such that only the original client can read it. Router C then  sends the message to B who sends it to A who sends it to the  client who decrypts it.<br/>  <br/>  Notice what happened. Router A knows the identity of the client  but doesn&#39;t know what message the client sent or where it is  going. Router B knows it is routing something (it can&#39;t read  it) between A and C but doesn&#39;t know anything else. Router C  can read the message but it doesn&#39;t know who sent it. Each  router only knows enough to do its job, no more.<br/>  <br/>  The end result is that someone listening at any one point in the  system can&#39;t figure out anything useful. So someone listening  between the client and router A knows that the client is sending  out requests but it has no idea what&#39;s in the requests or  where they are going. Someone listening between Router C and the  final website (assuming SSL isn&#39;t being used) can see the  requests and responses but has no idea who made the  request.<br/>  <br/>  The end result is a fairly robust (but not perfect, see below)  privacy.</p>
<h2>The More People Use Tor, The More Security Tor Provides</h2>
<p>One of the more interesting aspects of Tor is that the more  people use it, the more security it provides.</p>
<p>The first reason is that if the only people using Tor are  people who currently have something to hide then anytime a  government or other interested entity sees Tor traffic they can  use it as a flag that whomever the original client is, they are  probably worth investing further. But the more people use Tor,  especially people who have nothing to hide (that they know about)  the less useful that flag becomes. In other words, using Tor when  you have nothing to hide will make it much more useful when you  do.</p>
<p>The second reason is more technical but equally important.  Organizations that can intercept Internet traffic at multiple  points can perform certain kinds of analysis that would  potentially allow them to break Tor&#39;s anonymity. For an  extreme example imagine a Tor network that consists of a single  router and only one client. If the observer can intercept all  communications leaving the client and all communications leaving  the router then they know who the client is talking to since they  know that all the data the router is sending must have come from  that client. But as more and more people use the router it gets  harder and harder to figure out which requests came from which  sources. In the general case this means that the more people use  Tor the harder it is to use multi-point intercept analysis to  figure out anything useful.</p>
<h2>Tor&#39;s Main Downside &#8211; Speed (and how to work around  it)</h2>
<p>When I first wrote this article in January of 2005 Tor was so  slow as to be unusable. Although its speed has significantly  increased it is still quite slow and I find that keeping it on  for normal browsing is just too frustrating. But there are  specific web sites which pose such a significant privacy risk  that I&#39;m willing to use Tor with them. The top of my  &#39;privacy threat&#39; websites is Google.</p>
<p>I love using Google but as a consequence it knows a lot more  about me than I want it to. So what I wanted was a way to  configure my web browser so that requests to Google would go to  Tor. The easiest solution I have found is a pac file.</p>
<p>Pac files were invented by Netscape, the original  documentation is available <a href="http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html" shape="rect">  here</a>, but they are now supported by all major web browsers.  In essence they are Javascript files that are called by the  browser to find out if a particular website should be accessed  via a proxy. Below I give the pac file I use. It routes all  Google requests through privoxy/tor as well as requests to  privoxy&#39;s &#39;reserved&#39; addresses that give one local  control over privoxy&#39;s behavior:</p>
<pre xml:space="preserve">function FindProxyForURL(url, host) {<br/>        if (shExpMatch(host,&quot;*google.*&quot;) || <br/>            shExpMatch(host,&quot;config.privoxy.org&quot;) ||<br/>            shExpMatch(host,&quot;p.p&quot;)) <br/>                return &quot;PROXY 127.0.0.1:8118&quot;;<br/>        return &quot;DIRECT&quot;;<br/>}</pre>
<p>Just save this text to a file and call it something like  tor.pac and then point your browser&#39;s proxy pac file to  it.</p>
<p>To configure Firefox to use a pac file under OS X go to  Firefox-&gt;preferences-&gt;General-&gt;Connection  Settings&#8230;-&gt;Automatic proxy configuration URL:. Enter in a  URL (you can use file:// to point to a local file) that points to  your pac file and click reload.</p>
<p>I would avoid using Safari under OS X because its pac file  support is seriously buggy.</p>
<p>Note, however, that this technique is very far from secure. A  trivial way to defeat this approach is for a website that is on  your &#39;proxy&#39; list to include in its pages a picture from  a different domain that it owns. The domain the picture comes  from won&#39;t be on the &#39;black&#39; list and so the site can  find out who you are. Yes, Firefox can be configured not to load  pictures from domains other than the current one and to restrict  cookies but my guess is that using scripting or other tricks it  will still be possible for a determined site to use  &#39;allied&#39; domains to find out who you are. Therefore this  technique is only useful with sites like Google that aren&#39;t  malicious but, due to their nature, can collect a lot of  information you may not want them to.</p>
<p>Using Tor in this way is clearly sub-optimal but I think  it&#39;s better than not using it at all, which given it&#39;s  current performance, would be my only other choice.</p>
<h2>How Tor Works with a discussion of a few issues (WARNING THIS  SECTION IS FOR PROTOCOL GEEKS ONLY)</h2>
<p>Tor uses a circuit based design where a Tor client accesses  the Tor directory (implemented using Tor&#39;s own directory  protocol, we don&#39;t need no stinking standards) to download a  list of available Tor onion routers and their encryption keys.  The Tor client then selects a subset of the available onion  routers (usually 3) and creates a circuit between them. I&#39;ll  spare the reader the details of exactly how a circuit gets  established and just say that once established each onion router  only knows about its predecessor and successor. In addition all  data sent down the circuit is encrypted using the final onion  router in the circuit&#39;s (called the exit router) encryption  key. The end result is that only the initial onion router knows  who sent the data and only the exit onion router knows where the  data is going. Tor only supports TCP connection but it supports  both IPv4 and IPv6 addresses.</p>
<p>To use Tor one downloads the Tor client which is a socks proxy  that runs on one&#39;s machine. One then configures either the OS  or individual applications to use the local Tor socks client. Tor  supports socks 4, 4a and 5. This is where things get interesting.  It turns out that socks 4 could only accept IP addresses. This  means that if one uses a socks 4 compatible web browser, for  example and navigates to www.cryptome.com the local system will  make a DNS request for cryptome&#39;s IP. The result is that  anyone listening on the client&#39;s local network will now know  that the client PC wants to contact cryptome. Socks 4a fixes this  flaw by modifying socks 4 to accept DNS addresses. In that case  the DNS address will be resolved by the exit onion router. The  only problem is that there are relatively few systems that  support socks 4a. In theory socks 5 solves the issue because  socks 5 natively supports accepting DNS addresses. However the  Tor folks have found that in practice most socks 5 clients will  actually resolve the DNS address locally anyway and pass the IP  address to the socks 5 proxy. To be clear, this is not a flaw in  the socks 5 protocol, it&#39;s a flaw in how the clients are  implemented. In fact, to date, the Tor folks have found exactly  one socks 5 client that doesn&#39;t do the wrong thing &#8211;  Apple&#39;s Safari browser.</p>
<p>There is a workaround for the DNS problem, at least for web  browsers (which is good since I use Camino not Safari), use  <a href="http://www.privoxy.org/" shape="rect">Privoxy</a>. Privoxy is a HTTP  Proxy that runs locally and supports socks 4a. It also throws in  some other nice features like blocking banner ads and cleaning up  HTTP requests to remove sensitive information like the referer  (sic) field.</p>
<p>Fundamentally I think Tor should be able to scale. The circuit  based design is a bit nasty but it&#39;s a hack to deal with  current bandwidth and processing speed limitations. Since  bandwidth only increases while the size of the source routing  list stays constant I suspect bandwidth motivations to use  circuit switching will quickly disappear. The circuit switching  design is also nice for performance reasons, requiring less  processing by the onion routers to route packets, but that too I  suspect is just a passing phase that increasing processor  capacity will make no longer compelling.</p>
<p>As such my guess is that Tor will eventually become a true  packet switched network with every packet individually source  routed. In other words, Tor will re-invent TCP over TCP. The only  real long term challenge I see to Tor is latency. Tor&#39;s  security depends on routing packets randomly which means  intentionally sending them in sub-optimal (from a latency  perspective) directions. It doesn&#39;t take a visionary to  recognize that latency will increasingly be the single biggest  performance issue for most Internet operations. Today latency is  hidden by the relatively low bandwidths and slow processes  currently in use. But over time as bandwidth bloats to fantastic  portions (terabyte per second networks anyone?) and processors  reach speeds that today we would only use in comic books the  constancy of the speed of light will increasingly stand out.</p>
<p>This will be, I suspect Tor&#39;s greatest long term threat.  But even this threat can be dealt with. For example, by  intentionally sending bogus data in various directions and hiding  one&#39;s real requests amongst the bogus ones it should be  possible to more optimally route one&#39;s requests. I also  expect that ridiculous levels of effort will be put into caching  and distributed processing technologies in order to push services  and information as close as possible to users in order to  minimize latency. The consequence of those distributed  technologies is that it will be easier to send one&#39;s data in  various random directions and still hit the service one wants  since the service itself will be seeded all over the place. There  are, as always, limits. Certain services will absolutely require  global coordination which means a global synchronization point  which means introducing lots of latency. But I suspect we will be  amazed by our future selves&#39; creativity in reducing such  synchronization points to an absolute minimum.</p>
<p>In any case, my guess is that onion routing and its progeny  are a workable approach which is why I keep playing with Tor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/torprivoxyosx/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Working Around iTunes Problems</title>
		<link>http://www.goland.org/itunesproblems/</link>
		<comments>http://www.goland.org/itunesproblems/#comments</comments>
		<pubDate>Wed, 05 Oct 2005 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I really like iTunes. In general it is easy to use. Unfortunately it does have some short comings and my experience with Magnatune showed some of them. Specifically, iTunes handles m3u play lists badly and it can&#39;t handle FLAC files. But thankfully there are somewhat reasonable work arounds. Magnatune makes all of their music available [...]]]></description>
			<content:encoded><![CDATA[<p>I really like iTunes. In general it is easy to use.  Unfortunately it does have some short comings and my experience  with <a href="../../../magnatunemusic" shape="rect">Magnatune</a> showed some  of them. Specifically, iTunes handles m3u play lists badly and it  can&#39;t handle FLAC files. But thankfully there are somewhat  reasonable work arounds.</p>
<p>  <span id="more-551"></span>
<p>Magnatune makes all of their music available as free MP3  downloads so you can try before you buy. They use m3u files (e.g.  play lists) to provide access so the MP3s. Unfortunately iTunes  opens a m3u file by just dumping all the music listed in the file  into the main iTunes library and then playing the first song.  Unfortunately the songs are now in &#39;library&#39; order so the  next song played will probably not be the next song in the m3u  list, meaning I have to hunt around the library to find the rest  of the songs. This &quot;hunt and peck&quot; also makes deleting  files a real pain if I decide I don&#39;t like the play list.</p>
<p>Thankfully there is a fix, <a href="http://randomfoo.net/blog/id/4010" shape="rect">iTunes Opener</a>. Download  the file, uncompress it and drop it into the Applications  directory. To make sure that iTunes opener is always called when  clicking on a m3u file you have to go to the finder. First, open  the finder, then select a m3u file, then go to file-&gt;get info,  then go to &quot;Open with&quot;, select &quot;iTunes  Opener&quot; and then press &quot;Change All&#8230;&quot;. What  iTunes Opener does is open the playlist as a separate group in  iTunes and gives it a default name of the current date and time.  This allows the play list to be played in order and makes it  easier to delete an unwanted play list (just drag it into the  trash).</p>
<p>Ahh, but the fun doesn&#39;t end there. Magnatune offers a  number of download formats but from a quality perspective WAV and  <a href="http://flac.sourceforge.net/features.html" shape="rect">FLAC</a> are  best since they are lossless. FLAC is preferred as it is both an  open format and usually around 1/2 the size of a WAV file but  with no loss in quality. Unfortunately iTunes does not play FLAC  files. Since I don&#39;t want to waste the time downloading WAV  files I choose to download FLAC and then use <a href="http://www.versiontracker.com/dyn/moreinfo/macosx/21952" shape="rect">xACT</a>  which can translate between FLAC and AIFF or WAV. AIFF is  Apple&#39;s lossless music compression format and is supported by  iTunes. Unfortunately xACT can&#39;t seem to maintain the FLAC  tags (e.g. album name, music title, tract number, etc.) on the  AIFF file so when the file is imported to iTunes all the tags are  lost and have to be typed in by hand. xACT does have a &quot;FLAC  tags&quot; tab that allows one to read the tags on the FLAC files  but I still have to select the song in iTunes and then select  File-&gt;Get Info-&gt;Info to type in the data. It is really  annoying.</p>
<p>BTW, Magnatune happily allows downloading AAC files which are  iTunes native compressed (hence lossy) format as well as a Mac  friendly MP3 format, Ogg, etc. FLAC is not some strange format  and I think it was a bad call on iTune&#39;s part to not support  playing FLAC files or at least support importing them into the  AIFF format.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/itunesproblems/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Does Anyone Know of a Good Quality USB KVM?</title>
		<link>http://www.goland.org/newkvm/</link>
		<comments>http://www.goland.org/newkvm/#comments</comments>
		<pubDate>Thu, 08 Sep 2005 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[And now, dear readers, I ask a favor. I have a PC (for work) and a Mac (for life) in my home and they share the same keyboard, mouse and monitor. I have an old PS/2 KVM box that works really well so when I bought the Mac I wanted to hook it in to [...]]]></description>
			<content:encoded><![CDATA[<p>And now, dear readers, I ask a favor. I have a PC (for work)  and a Mac (for life) in my home and they share the same keyboard,  mouse and monitor. I have an old PS/2 KVM box that works really  well so when I bought the Mac I wanted to hook it in to the KVM.  The problem is that the Mac only uses USB peripherals. So I made  the mistake of buying the Y-Mouse, an adapter that converts PS/2  connections into USB connections. As I explain <a href="../../../ymouse" shape="rect">here</a>, the Y-Mouse does not work very well  for me. So what I&#39;d really like to do is buy a USB KVM. I  actually don&#39;t care about the &quot;M&quot; (e.g. Monitor)  part, I have a <a href="http://www.goland.org/hp2335/" shape="rect">HP  2335</a> and use its built in monitor switch (which guarantees me  the absolute best image possible). So what I really need is a USB  Keyboard/Mouse switch.</p>
<p>I did some research and all I could find were complaints about  USB KVMs, the main issue being switching time. It seems that  switching between machines can take several seconds. Does anyone  know of a good quality USB KVM that can switch really fast? If so  please drop a comment on this article. Thanks!</p>
<p>N.B. I am aware of <a href="http://synergy2.sourceforge.net/" shape="rect">Synergy</a>. But Synergy has  never worked very well on Mac&#39;s and my PC is actually running  a VPN which ends up meaning that the keyboard and mouse commands  would have to be routed over the open Internet, this is both a  security and a performance nightmare.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/newkvm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sharing Printers Between OS X Boxes in a Screwed Up Local
  Network</title>
		<link>http://www.goland.org/NetworkingOSXPrinters/</link>
		<comments>http://www.goland.org/NetworkingOSXPrinters/#comments</comments>
		<pubDate>Tue, 30 Aug 2005 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[One of the reasons I bought a Mac for myself and my wife is that I could never get printer sharing working between Linux and Windows. I figured if Marina and I both had Macs then the problem would be solved. Unfortunately, I was wrong. While Apple has mostly embraced Bonjour technology there is still [...]]]></description>
			<content:encoded><![CDATA[<p>One of the reasons I bought a Mac for myself and my wife is  that I could never get printer sharing working between Linux and  Windows. I figured if Marina and I both had Macs then the problem  would be solved. Unfortunately, I was wrong. While Apple has  mostly embraced <a href="http://en.wikipedia.org/wiki/Bonjour_(protocol)" shape="rect">Bonjour</a>  technology there is still one major area that is left out &#8211;  Apple&#39;s Printer Server (e.g. the open source <a href="http://www.cups.org/" shape="rect">CUPS</a>) which uses its own multicast  based discovery solution. When I hooked my USB printer to my OS X  box and turned on printer sharing I couldn&#39;t get my  wife&#39;s Mac to see the printer! The problem turned out to be  that both my wife and I&#39;s computers have unique <a href="http://en.wikipedia.org/wiki/IP_address" shape="rect">IP</a> addresses that  we get from our ISP&#39;s <a href="http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol" shape="rect">  DHCP</a> server. Unfortunately the ISP&#39;s DHCP server gave us  addresses in different <a href="http://en.wikipedia.org/wiki/Subnetwork" shape="rect">subnets</a>! CUPS  default configuration does not allow printer sharing between  machines that are not on the same subnet. The CUPS configuration  can be overridden fairly trivially but I don&#39;t want to  because it would either mean hard coding in my wife&#39;s IP  address (which changes) or allowing the whole world to print on  my printer (which I&#39;d rather not). Thankfully there was a  really trivial solution to the problem that was pointed out to me  by <a href="http://www.stuartcheshire.org/" shape="rect">Stuart Cheshire</a>,  the father of Bonjour.</p>
<p>  <span id="more-542"></span>
<p>Stuart actually suggested two solutions. I selected his second  solution and describe in detail how to implement it below. At the  end of this article I explain what his first solution was and why  I didn&#39;t choose it.</p>
<p>The crux of Stuart&#39;s solution is to create a second  Ethernet configuration on both my wife and I&#39;s machines. This  is trivial to set up (once you know how) and from there  everything will just &#39;work&#39;, e.g. the printers will just  show up.</p>
<p>Instructions for the machine that is hosting the printer:</p>
<p>Step 1 &#8211; Go to system preferences (you can get there by  clicking on the apple in the upper left hand corner of the  screen)</p>
<p>Step 2 &#8211; Go to &#39;Sharing&#39;</p>
<p>Step 3 &#8211; Select &#39;Services&#39;</p>
<p>Step 4 &#8211; Select &#39;Printer Sharing&#39; (depending on how  you configured your machine you might have to click on the lock  icon at the bottom left hand corner of the dialog box and type in  your administrator password before being able to change the  Printer Sharing setting)</p>
<p>Step 5 &#8211; &#39;Show All&#39;</p>
<p>Step 6 &#8211; &#39;Network&#39;</p>
<p>Step 7 &#8211; &#39;Show &#8211; Network Port Configurations&#39; (this is  a choice in the drop down titled &#39;Show&#39;)</p>
<p>Step 8 &#8211; Select &#39;Built-in Ethernet&#39;</p>
<p>Step 9 &#8211; Press &#39;duplicate&#39;</p>
<p>Step 10 &#8211; Enter in a title, I choose &#39;Local Only  Ethernet&#39;</p>
<p>Step 11 &#8211; Press &#39;Apply Now&#39;</p>
<p>Step 12 &#8211; Select &#39;Show &#8211; &#39;Local Only  Ethernet&#39;&#39;</p>
<p>Step 13 &#8211; Set &#39;Configure IPv4&#39; to  &#39;Manually&#39;</p>
<p>Step 14 &#8211; Set &#39;IP Address&#39; to &#39;10.0.0.1&#39;</p>
<p>Step 15 &#8211; Press &#39;Apply Now&#39;</p>
<p>The computer hosting the printer is now ready to share that  printer with all local machines (including one&#39;s your ISP has  given the same subnet address to, so beware!).</p>
<p>For each of the machines that you want to be able to use the  printer with do the following:</p>
<p>Step 1 &#8211; System Preferences</p>
<p>Step 2 &#8211; Step 11: Follow the instructions specified above for  steps 6-15 with the exception that in step 14 when entering the  IP address enter 10.0.0.2. If you are adding multiple machines  then each one needs its own IP address, just increment, e.g.  10.0.0.3, 10.0.0.4, etc.</p>
<p>Step 12 &#8211; &#39;Show All&#39;</p>
<p>Step 13 &#8211; &#39;Print &amp; Fax&#39;</p>
<p>Step 14 &#8211; Press the &#39;+&#39; Button</p>
<p>Step 15 &#8211; The printer on the other machine should show up in  the list of available printers, select it</p>
<p>Step 16 &#8211; Press &#39;add&#39;</p>
<p>That&#39;s it. The whole process should take about two  minutes.</p>
<p>What the previous does is create a second Ethernet interface  on both machines that use an IP address from the reserved  10.X.X.X range. This is what is known as a &#39;<a href="http://www.faqs.org/rfcs/rfc1918.html" shape="rect">private address  space</a>&#39;, that is, IP addresses in the 10.X.X.X range are  marked as being &#39;private&#39; and with a few exceptions I  won&#39;t get into here are not to be routed so this means that  machines that are not physically attached to my local network  can&#39;t use this address at all. The next trick is that  Apple&#39;s default subnet mask for manually entered addresses is  255.255.255.0 which means that all addresses in the 10.0.0.X  range are automatically on the same subnet. So the end result is  that both machines now have alternate locally routed only  addresses that are on the same subnet. So, voila, CUPS work.</p>
<p>The previous describes Stuart&#39;s second solution, his first  solution was to change the CUPS configuration to allow  connections from computers that aren&#39;t on the same  sub-domain. Then I would go to my wife&#39;s machine and manually  create a printer queue that used my machines &quot;.local&quot;  DNS address. The &quot;.local&quot; domain triggers the use of  <a href="http://www.multicastdns.org/" shape="rect">multicast DNS</a>  resolution. In other words when a computer looks for a DNS name  like &quot;foo.local&quot; it will try to find the computer that  owns that name by essentially &#39;yelling&#39; out to all the  local machines &quot;hey, anyone go by the name foo?&quot;. While  my wife and I&#39;s machines are on two separate subnets they are  still physically connected by the same Ethernet switch and so can  see each other&#39;s multicast packets. All OS X boxes give  themselves &quot;.local&quot; names (go to System Preferences &#8211;  Sharing &#8211; you should see text at the top that says &quot;Other  computers on your local subnet can access your computer at  X.local&quot;) so by giving the Printer Queue my machine&#39;s  .local name as its address my wife&#39;s machine would always be  able to find my machine and it&#39;s attached printer even when  my IP address is changed by DHCP.</p>
<p>I didn&#39;t like this suggestion for two reasons. First, I  didn&#39;t like the idea of opening up my CUPS configuration,  that sounded like a security hole since anyone that knew my IP  address could now print on my machine. Although, if memory  serves, it is possible to configure CUPS to provide access to  specific DNS addresses so I could just have listed my wife&#39;s  &quot;.local&quot; DNS address. Second, I like things to work  automatically and having all these configurations in CUPS and in  my wife&#39;s machine made me nervous. I wanted something  simpler. Which is why I choose Stuart&#39;s second  suggestion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/NetworkingOSXPrinters/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Ode to Apple &#8211; The iMac Rocks!</title>
		<link>http://www.goland.org/odetomac/</link>
		<comments>http://www.goland.org/odetomac/#comments</comments>
		<pubDate>Mon, 20 Jun 2005 00:00:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Home PC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Atoning for my mistake of buying my wife a Dell laptop running XP that has more or less been a constant nightmare over the years we&#39;ve owned it I decided to give her a birthday present a bit early &#8211; a new iMac. My wife is no technophobe but similarly she is not a technophile. [...]]]></description>
			<content:encoded><![CDATA[<p>Atoning for my mistake of buying my wife a Dell laptop running  XP that has more or less been a constant nightmare over the years  we&#39;ve owned it I decided to give her a birthday present a bit  early &#8211; a new iMac. My wife is no technophobe but similarly she  is not a technophile. To her a computer is a way to get things  done. But her attitude changed when I get her the iMac.</p>
<p>  <span id="more-538"></span>
<p>She didn&#39;t really want me to buy her a new computer. Sure  her existing laptop was horrible, it sometimes refused to boot,  when it did boot it would take forever to load, it would  sometimes just &#39;lose&#39; the network, when it did run, even  if it was just running Firefox and nothing else, it would run  like molasses. Printing stopped working months ago. It was just a  nightmare. But she only used the computer to browse the web and  type the occasional document. So if she needed to print a recipe  she would forward it to me to print out and otherwise she would  just use her computer for browsing.</p>
<p>Recently however we got back from vacation and her computer  just wouldn&#39;t boot. Was it the disk? Was it a screwed up XP  install? I don&#39;t know nor care. To her (and to me) a computer  is more appliance than tinker toy, we just want it to work and  this computer never did. So eventually my wife relented in her  objections to my pleas to buy her a Mac.</p>
<p>Watching her with the iMac has been a revelation. She loves  the machine! She loves to play with it. She suddenly went from  someone who used the computer only when she had to, to someone  who wanted to learn, to explore, to try out new things. Unlike XP  where every action involved some kind of pain the Mac just  worked. Yes, I occasionally had to show her a thing or two but  over all she figured it out all by herself. More over, because  the Mac was so friendly she became a lot bolder in her own  explorations of its capabilities. The Mac&#39;s ease of use gave  her the confidence to try things on her own.</p>
<p>Another interesting note is her use of the Apple mouse. When  we bought the iMac I hooked up both the apple single button mouse  and my wife&#39;s old two button wheel mouse. She asked me to get  rid of the wheel mouse. She loves the single button mouse! I have  to admit that it weirds me out but she really just likes using a  single button. For her it was one less thing to worry about. Yes,  it does mean a few things are a little harder to do but over all  she finds the trade off worth it. Go Figure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goland.org/odetomac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
