<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.theeggeadventure.com/wikimedia/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Egge</id>
	<title>EggeWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.theeggeadventure.com/wikimedia/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Egge"/>
	<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php/Special:Contributions/Egge"/>
	<updated>2026-05-15T22:37:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0-beta</generator>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=TXF_2_CSV&amp;diff=2353</id>
		<title>TXF 2 CSV</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=TXF_2_CSV&amp;diff=2353"/>
		<updated>2011-02-20T17:21:43Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I used to use Scottrade as my broker and they provide capital gains information in an exportable TXF format file.  I use TaxAct Online to process my tax return.  TaxAct can&#039;t be bothered to create a TXF import, however, they do provide a CSV import.  I figured it would be fairly trivial to transform the data from one format to another.  The following is a ruby script which does just that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
&lt;br /&gt;
in_header=true&lt;br /&gt;
idx=0&lt;br /&gt;
description=nil&lt;br /&gt;
date_end=nil&lt;br /&gt;
price_end=nil&lt;br /&gt;
date_start=nil&lt;br /&gt;
price_start=nil&lt;br /&gt;
quantity=nil&lt;br /&gt;
wash_sale=&#039;&#039;&lt;br /&gt;
withholding=&#039;&#039;&lt;br /&gt;
ARGF.each do |line|&lt;br /&gt;
  line.chomp!&lt;br /&gt;
  line.strip!&lt;br /&gt;
  line.gsub!(&#039;,&#039;, &#039;&#039;)&lt;br /&gt;
  if in_header then&lt;br /&gt;
    if line == &#039;^&#039; then&lt;br /&gt;
      in_header = false&lt;br /&gt;
    end&lt;br /&gt;
    next&lt;br /&gt;
  end&lt;br /&gt;
  idx += 1&lt;br /&gt;
  case idx&lt;br /&gt;
  when 1..4&lt;br /&gt;
    next&lt;br /&gt;
  when 5&lt;br /&gt;
    if line =~ /P([0-9]+[.][0-9]{4}) of (.*)/ then&lt;br /&gt;
      quantity = $1&lt;br /&gt;
      description = $2&lt;br /&gt;
    else&lt;br /&gt;
      raise &amp;quot;error parsing #{line}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  when 6&lt;br /&gt;
    if line =~ /D(.*)/ then&lt;br /&gt;
      date_start = $1&lt;br /&gt;
    else&lt;br /&gt;
      raise&lt;br /&gt;
    end&lt;br /&gt;
  when 7&lt;br /&gt;
    if line =~ /D(.*)/ then&lt;br /&gt;
      date_end = $1&lt;br /&gt;
    else&lt;br /&gt;
      raise&lt;br /&gt;
    end&lt;br /&gt;
  when 8&lt;br /&gt;
    if line =~ /[$](.*)/ then&lt;br /&gt;
      price_start = $1&lt;br /&gt;
    else&lt;br /&gt;
      raise&lt;br /&gt;
    end&lt;br /&gt;
  when 9&lt;br /&gt;
    if line =~ /[$](.*)/ then&lt;br /&gt;
      price_end = $1&lt;br /&gt;
    else&lt;br /&gt;
      raise&lt;br /&gt;
    end&lt;br /&gt;
  when 10&lt;br /&gt;
    if line == &#039;^&#039; then&lt;br /&gt;
      print &amp;quot;\&amp;quot;#{description}\&amp;quot;,#{date_end},#{price_end},#{date_start},#{price_start},#{wash_sale},#{withholding},#{quantity},\r\n&amp;quot;&lt;br /&gt;
      idx = 0&lt;br /&gt;
    end&lt;br /&gt;
  else&lt;br /&gt;
    raise&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
 &amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the TaxAct import only works with Internet Explorer.  This is something I found out via trial and error.  I noticed that it would reject my file so fast that it could not have possibly uploaded it to TaxAct.  Their email support was completely worthless, only sending me to a link to the one and only help page.  &lt;br /&gt;
&lt;br /&gt;
I logged onto a Windows machine and was able to upload the file without issue using IE 7.  TaxAct then allows you to select which columns match which header.  If you provide a header line it will auto select all matching headers.  This is nice, but on the next screen having a header line prevents you from using the &#039;Import All&#039; feature.  The whole reason I went through the import process is because I have hundreds of records to input.  I deleted the header, and the was able to import all the data.&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=TXF_2_CSV&amp;diff=2352</id>
		<title>TXF 2 CSV</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=TXF_2_CSV&amp;diff=2352"/>
		<updated>2011-02-20T17:20:29Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;I used to use Scottrade as my broker and they provide capital gains information in an exportable TXF format file.  I use TaxAct Online to process my tax return.  TaxAct can&amp;#039;t be …&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I used to use Scottrade as my broker and they provide capital gains information in an exportable TXF format file.  I use TaxAct Online to process my tax return.  TaxAct can&#039;t be bothered to create a TXF import, however, they do provide a CSV import.  I figured it would be fairly trivial to transform the data from one format to another.  The following is a ruby script which does just that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
&lt;br /&gt;
in_header=true&lt;br /&gt;
idx=0&lt;br /&gt;
description=nil&lt;br /&gt;
date_end=nil&lt;br /&gt;
price_end=nil&lt;br /&gt;
date_start=nil&lt;br /&gt;
price_start=nil&lt;br /&gt;
quantity=nil&lt;br /&gt;
wash_sale=&#039;&#039;&lt;br /&gt;
withholding=&#039;&#039;&lt;br /&gt;
ARGF.each do |line|&lt;br /&gt;
  line.chomp!&lt;br /&gt;
  line.strip!&lt;br /&gt;
  line.gsub!(&#039;,&#039;, &#039;&#039;)&lt;br /&gt;
  if in_header then&lt;br /&gt;
    if line == &#039;^&#039; then&lt;br /&gt;
      in_header = false&lt;br /&gt;
    end&lt;br /&gt;
    next&lt;br /&gt;
  end&lt;br /&gt;
  idx += 1&lt;br /&gt;
  case idx&lt;br /&gt;
  when 1..4&lt;br /&gt;
    next&lt;br /&gt;
  when 5&lt;br /&gt;
    if line =~ /P([0-9]+[.][0-9]{4}) of (.*)/ then&lt;br /&gt;
      quantity = $1&lt;br /&gt;
      description = $2&lt;br /&gt;
    else&lt;br /&gt;
      raise &amp;quot;error parsing #{line}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  when 6&lt;br /&gt;
    if line =~ /D(.*)/ then&lt;br /&gt;
      date_start = $1&lt;br /&gt;
    else&lt;br /&gt;
      raise&lt;br /&gt;
    end&lt;br /&gt;
  when 7&lt;br /&gt;
    if line =~ /D(.*)/ then&lt;br /&gt;
      date_end = $1&lt;br /&gt;
    else&lt;br /&gt;
      raise&lt;br /&gt;
    end&lt;br /&gt;
  when 8&lt;br /&gt;
    if line =~ /[$](.*)/ then&lt;br /&gt;
      price_start = $1&lt;br /&gt;
    else&lt;br /&gt;
      raise&lt;br /&gt;
    end&lt;br /&gt;
  when 9&lt;br /&gt;
    if line =~ /[$](.*)/ then&lt;br /&gt;
      price_end = $1&lt;br /&gt;
    else&lt;br /&gt;
      raise&lt;br /&gt;
    end&lt;br /&gt;
  when 10&lt;br /&gt;
    if line == &#039;^&#039; then&lt;br /&gt;
      print &amp;quot;\&amp;quot;#{description}\&amp;quot;,#{date_end},#{price_end},#{date_start},#{price_start},#{wash_sale},#{withholding},#{quantity},\r\n&amp;quot;&lt;br /&gt;
      idx = 0&lt;br /&gt;
    end&lt;br /&gt;
  else&lt;br /&gt;
    raise&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the TaxAct import only works with Internet Explorer.  This is something I found out via trial and error.  I noticed that it would reject my file so fast that it could not have possibly uploaded it to TaxAct.  Their email support was completely worthless, only sending me to a link to the one and only help page.  &lt;br /&gt;
&lt;br /&gt;
I logged onto a Windows machine and was able to upload the file without issue using IE 7.  TaxAct then allows you to select which columns match which header.  If you provide a header line it will auto select all matching headers.  This is nice, but on the next screen having a header line prevents you from using the &#039;Import All&#039; feature.  The whole reason I went through the import process is because I have hundreds of records to input.  I deleted the header, and the was able to import all the data.&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=String_Concatenation_optimization&amp;diff=2324</id>
		<title>String Concatenation optimization</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=String_Concatenation_optimization&amp;diff=2324"/>
		<updated>2010-01-26T00:22:33Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I often see developers needlessly using StringBuffer.append in preference to the built in string concatenation operator.  This is based on the idea that the &amp;quot;+&amp;quot; operator always creates a new object.  While in general it does, a compiler is allowed to optimise this with an alternative implementation.  However, is there any speed difference, or should one care?  Well, I ran some tests to find out.  Here&#039;s the tests I created (all of which produce the same result):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
	private static final P TEST1a = new P() {&lt;br /&gt;
		public String print(int i) {&lt;br /&gt;
			return &amp;quot;&amp;quot; + i + &amp;quot;, &amp;quot; + ++i + &amp;quot;, &amp;quot; + ++i;&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
	&lt;br /&gt;
	private static final P TEST1b = new P() {&lt;br /&gt;
		public String print(int i) {&lt;br /&gt;
			return i + &amp;quot;, &amp;quot; + ++i + &amp;quot;, &amp;quot; + ++i;&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	private static final P TEST2 = new P() {&lt;br /&gt;
		public String print(int i) {&lt;br /&gt;
			StringBuffer sb = new StringBuffer();&lt;br /&gt;
			sb.append(i);&lt;br /&gt;
			sb.append(&amp;quot;, &amp;quot;);&lt;br /&gt;
			sb.append(++i);&lt;br /&gt;
			sb.append(&amp;quot;, &amp;quot;);&lt;br /&gt;
			sb.append(++i);&lt;br /&gt;
			return sb.toString();&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	private static final P TEST3 = new P() {&lt;br /&gt;
		public String print(int i) {&lt;br /&gt;
			StringBuilder sb = new StringBuilder();&lt;br /&gt;
			sb.append(i);&lt;br /&gt;
			sb.append(&amp;quot;, &amp;quot;);&lt;br /&gt;
			sb.append(++i);&lt;br /&gt;
			sb.append(&amp;quot;, &amp;quot;);&lt;br /&gt;
			sb.append(++i);&lt;br /&gt;
			return sb.toString();&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	private static final P TEST4 = new P() {&lt;br /&gt;
		public String print(int i) {&lt;br /&gt;
			return new StringBuilder()&lt;br /&gt;
			.append(i)&lt;br /&gt;
			.append(&amp;quot;, &amp;quot;)&lt;br /&gt;
			.append(++i)&lt;br /&gt;
			.append(&amp;quot;, &amp;quot;)&lt;br /&gt;
			.append(++i).toString();&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my test harness:&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
	public void testToString() {&lt;br /&gt;
		List&amp;lt;P&amp;gt; tests = Arrays.asList(TEST1a, TEST1b, TEST2, TEST3, TEST4);&lt;br /&gt;
		for (P p : tests) {&lt;br /&gt;
			long l = 0;&lt;br /&gt;
			long start = System.currentTimeMillis();&lt;br /&gt;
			for (int i = 0; i &amp;lt; 10000000; i++) {&lt;br /&gt;
				l += p.print(i).length();&lt;br /&gt;
			}&lt;br /&gt;
			assertEquals(246666691L, l);&lt;br /&gt;
			System.out.println(p + &amp;quot; &amp;quot; + System.currentTimeMillis() - start);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the results:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TEST1a 7391&lt;br /&gt;
TEST1b 8954&lt;br /&gt;
TEST2 12344&lt;br /&gt;
TEST3 7500&lt;br /&gt;
TEST4 7376&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TEST1a and TEST4 appear to run at about the same speed.  Running the excellent [http://www.kpdus.com/jad.html Jad decompiler] we can see that they produce the exact same byte code.  You might see it as strange that TEST1a and TEST1b differ.  This is because TEST1a produces slightly different byte code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
    private static final P TEST1a = new P() {&lt;br /&gt;
&lt;br /&gt;
        public String print(int i)&lt;br /&gt;
        {&lt;br /&gt;
            return (new StringBuilder()).append(i).append(&amp;quot;, &amp;quot;).append(++i).append(&amp;quot;, &amp;quot;).append(++i).toString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
;&lt;br /&gt;
    private static final P TEST1b = new P() {&lt;br /&gt;
&lt;br /&gt;
        public String print(int i)&lt;br /&gt;
        {&lt;br /&gt;
            return (new StringBuilder(String.valueOf(i))).append(&amp;quot;, &amp;quot;).append(++i).append(&amp;quot;, &amp;quot;).append(++i).toString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Without the initial &amp;quot;&amp;quot;, the compiler uses the String.valueOf, as it can&#039;t pass the integer to the StringBuilder directly.  String.valueOf calls Integer.toString.  However, StringBuilder.append(int) contains a better performing implementation.  It can do this because it assumes a radix of 10 and it can write directly to the buffer.  &lt;br /&gt;
&lt;br /&gt;
The other thing to note is of course StringBuilder is faster than StringBuffer.  By letting the compiler optimize the code, you can enjoy the benefits of faster implementations in future versions.&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Prtdiag&amp;diff=2275</id>
		<title>Prtdiag</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Prtdiag&amp;diff=2275"/>
		<updated>2009-10-20T00:04:54Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Solaris offers the &#039;&#039;&#039;prtdiag&#039;&#039;&#039; util to get CPU information of the running platform.  This command is runnable by non-root users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/usr/platform/`uname -i`/sbin/prtdiag&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/usr/sbin/prtdiag&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s some examples&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Configuration: Sun Microsystems Sun Fire X4600 M2&lt;br /&gt;
BIOS Configuration: American Megatrends Inc. 080012  04/19/2007&lt;br /&gt;
BMC Configuration: IPMI 1.5 (KCS: Keyboard Controller Style)&lt;br /&gt;
&lt;br /&gt;
==== Processor Sockets ====================================&lt;br /&gt;
&lt;br /&gt;
Version                          Location Tag&lt;br /&gt;
-------------------------------- --------------------------&lt;br /&gt;
Dual-Core AMD Opteron(tm) Processor 8220 CPU 1&lt;br /&gt;
Dual-Core AMD Opteron(tm) Processor 8220 CPU 2&lt;br /&gt;
Dual-Core AMD Opteron(tm) Processor 8220 CPU 3&lt;br /&gt;
Dual-Core AMD Opteron(tm) Processor 8220 CPU 4&lt;br /&gt;
Dual-Core AMD Opteron(tm) Processor 8220 CPU 5&lt;br /&gt;
Dual-Core AMD Opteron(tm) Processor 8220 CPU 6&lt;br /&gt;
Dual-Core AMD Opteron(tm) Processor 8220 CPU 7&lt;br /&gt;
Dual-Core AMD Opteron(tm) Processor 8220 CPU 8&lt;br /&gt;
&lt;br /&gt;
==== Memory Device Sockets ================================&lt;br /&gt;
&lt;br /&gt;
Type    Status Set Device Locator      Bank Locator&lt;br /&gt;
------- ------ --- ------------------- --------------------&lt;br /&gt;
DDR2    in use 0   DIMM0               BANK0&lt;br /&gt;
DDR2    in use 0   DIMM1               BANK1&lt;br /&gt;
&lt;br /&gt;
==== On-Board Devices =====================================&lt;br /&gt;
 LSI serial-ATA #1&lt;br /&gt;
 Gigabit Ethernet #1&lt;br /&gt;
 Gigabit Ethernet #2&lt;br /&gt;
 ATI Rage XL VGA&lt;br /&gt;
&lt;br /&gt;
==== Upgradeable Slots ====================================&lt;br /&gt;
&lt;br /&gt;
ID  Status    Type             Description&lt;br /&gt;
--- --------- ---------------- ----------------------------&lt;br /&gt;
0   in use    PCI-X            PCIX SLOT0&lt;br /&gt;
1   available PCI-X            PCIX SLOT1&lt;br /&gt;
2   available other            PCIExp SLOT2&lt;br /&gt;
3   available other            PCIExp SLOT3&lt;br /&gt;
4   available other            PCIExp SLOT4&lt;br /&gt;
5   available other            PCIExp SLOT5&lt;br /&gt;
6   available other            PCIExp SLOT6&lt;br /&gt;
7   available other            PCIExp SLOT7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Configuration: VMware, Inc. VMware Virtual Platform&lt;br /&gt;
BIOS Configuration: Phoenix Technologies LTD 6.00 04/17/2006&lt;br /&gt;
&lt;br /&gt;
==== Processor Sockets ====================================&lt;br /&gt;
&lt;br /&gt;
Version                          Location Tag&lt;br /&gt;
-------------------------------- --------------------------&lt;br /&gt;
Pentium(R) Pro                   CPU socket #0&lt;br /&gt;
Pentium(R) Pro                   CPU socket #1&lt;br /&gt;
&lt;br /&gt;
==== Memory Device Sockets ================================&lt;br /&gt;
&lt;br /&gt;
Type    Status Set Device Locator      Bank Locator&lt;br /&gt;
------- ------ --- ------------------- --------------------&lt;br /&gt;
DRAM    in use 0   RAM slot #0         RAM slot #0&lt;br /&gt;
DRAM    in use 0   RAM slot #1         RAM slot #1&lt;br /&gt;
DRAM    in use 0   RAM slot #2         RAM slot #2&lt;br /&gt;
DRAM    in use 0   RAM slot #3         RAM slot #3&lt;br /&gt;
&lt;br /&gt;
==== On-Board Devices =====================================&lt;br /&gt;
VMware SVGA II&lt;br /&gt;
ES1371&lt;br /&gt;
&lt;br /&gt;
==== Upgradeable Slots ====================================&lt;br /&gt;
&lt;br /&gt;
ID  Status    Type             Description&lt;br /&gt;
--- --------- ---------------- ----------------------------&lt;br /&gt;
0   unknown   ISA              ISA Slot J8&lt;br /&gt;
0   unknown   ISA              ISA Slot J9&lt;br /&gt;
0   unknown   ISA              ISA Slot J10&lt;br /&gt;
1   in use    PCI              PCI Slot J11&lt;br /&gt;
2   in use    PCI              PCI Slot J12&lt;br /&gt;
3   in use    PCI              PCI Slot J13&lt;br /&gt;
4   in use    PCI              PCI Slot J14&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Configuration: Sun Microsystems  sun4u Sun Fire E2900&lt;br /&gt;
System clock frequency: 150 MHZ&lt;br /&gt;
Memory size: 96GB       &lt;br /&gt;
&lt;br /&gt;
======================================= CPUs =======================================&lt;br /&gt;
                    E$         CPU     CPU       Temperature         Fan&lt;br /&gt;
 CPU     Freq      Size        Impl.   Mask     Die    Ambient   Speed   Unit&lt;br /&gt;
 ------  --------  ----------  ------  ----  --------  --------  -----   ----&lt;br /&gt;
 SB0/P0  1350 MHz  16MB        US-IV    3.1     81 C      38 C   &lt;br /&gt;
 SB0/P1  1350 MHz  16MB        US-IV    3.1     75 C      35 C   &lt;br /&gt;
 SB0/P2  1350 MHz  16MB        US-IV    3.1     73 C      37 C   &lt;br /&gt;
 SB0/P3  1350 MHz  16MB        US-IV    3.1     76 C      38 C   &lt;br /&gt;
 SB2/P0  1350 MHz  16MB        US-IV    3.1     74 C      34 C   &lt;br /&gt;
 SB2/P1  1350 MHz  16MB        US-IV    3.1     71 C      35 C   &lt;br /&gt;
 SB2/P2  1350 MHz  16MB        US-IV    3.1     77 C      39 C   &lt;br /&gt;
 SB2/P3  1350 MHz  16MB        US-IV    3.1     81 C      38 C   &lt;br /&gt;
 SB4/P0  1350 MHz  16MB        US-IV    3.1     67 C      36 C   &lt;br /&gt;
 SB4/P1  1350 MHz  16MB        US-IV    3.1     69 C      37 C   &lt;br /&gt;
 SB4/P2  1350 MHz  16MB        US-IV    3.1     76 C      42 C   &lt;br /&gt;
 SB4/P3  1350 MHz  16MB        US-IV    3.1     69 C      40 C   &lt;br /&gt;
&lt;br /&gt;
==================================== IO Devices ====================================&lt;br /&gt;
     Bus   Freq&lt;br /&gt;
Brd  Type  MHz   Slot        Name                          Model&lt;br /&gt;
---  ----  ----  ----------  ----------------------------  --------------------&lt;br /&gt;
 0   pci    33         PCI0  lpfc-pci10df,f980 (scsi)      LP9802             &lt;br /&gt;
 0   pci    33         PCI1  lpfc-pci10df,f980 (scsi)      LP9802             &lt;br /&gt;
 0   pci    33         PCI2  pci100b,35 (network)          SUNW,pci-ce        &lt;br /&gt;
 0   pci    66            1  pci108e,abba (network)        SUNW,pci-ce        &lt;br /&gt;
 0   pci    66            2  scsi-pci1000,21 (scsi-2)                         &lt;br /&gt;
 0   pci    66            2  scsi-pci1000,21 (scsi-2)                         &lt;br /&gt;
 0   pci    66            2  pci108e,abba (network)        SUNW,pci-ce        &lt;br /&gt;
 0   pci    33            3  pci1095,646 (ide)                                &lt;br /&gt;
 0   pci    33            4  bootbus-controller-sgsbbc     SUNW,sgsbbc        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== psrinfo ==&lt;br /&gt;
&lt;br /&gt;
psrinfo can give you more details about individual processors. In Solaris it&#039;s possible to disable processors while the machine is running, though I don&#039;t see any purpose for this in practice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
/usr/sbin/psrinfo -v&lt;br /&gt;
Status of virtual processor 0 as of: 10/20/2009 10:37:16&lt;br /&gt;
  on-line since 07/11/2009 14:27:04.&lt;br /&gt;
  The i386 processor operates at 2793 MHz,&lt;br /&gt;
        and has an i387 compatible floating point processor.&lt;br /&gt;
Status of virtual processor 1 as of: 10/20/2009 10:37:16&lt;br /&gt;
  on-line since 07/11/2009 14:27:09.&lt;br /&gt;
  The i386 processor operates at 2793 MHz,&lt;br /&gt;
        and has an i387 compatible floating point processor.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== prtconf ==&lt;br /&gt;
&lt;br /&gt;
prtconf can tell you how much memory is installed, as well as what devices are on the system bus.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
$ prtconf | head&lt;br /&gt;
System Configuration:  Sun Microsystems  i86pc&lt;br /&gt;
Memory size: 65536 Megabytes&lt;br /&gt;
System Peripherals (Software Nodes):&lt;br /&gt;
&lt;br /&gt;
i86pc&lt;br /&gt;
    scsi_vhci, instance #0&lt;br /&gt;
    isa, instance #0&lt;br /&gt;
        asy, instance #0&lt;br /&gt;
        motherboard (driver not attached)&lt;br /&gt;
    pci, instance #0&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== isainfo == &lt;br /&gt;
&lt;br /&gt;
isainfo can quickly tell you if you are running on a 64 bit CPU and if you are using a 64 bit kernel.&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
$ isainfo -bv&lt;br /&gt;
64-bit amd64 applications&lt;br /&gt;
        tscp cx16 sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc &lt;br /&gt;
        cx8 tsc fpu &lt;br /&gt;
&lt;br /&gt;
$ isainfo -kv&lt;br /&gt;
64-bit amd64 kernel modules&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Solaris]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=IsBase64&amp;diff=2273</id>
		<title>IsBase64</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=IsBase64&amp;diff=2273"/>
		<updated>2009-10-19T03:02:12Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test to determine if a string is [http://en.wikipedia.org/wiki/Base64 base64 encoded].  This check only shows if the string conforms to base64.  It&#039;s possible that the string conforms, but is not in fact encoded. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	static boolean isBase64(String s) {&lt;br /&gt;
		return (s.length() % 4 == 0) &amp;amp;&amp;amp; s.matches(&amp;quot;^[A-Za-z0-9+/]+[=]{0,2}$&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	@Test&lt;br /&gt;
	public void testIsBase64() throws Exception {&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;bGVhc3VyZS4=&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;ZWFzdXJlLg==&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;YXN1cmUu&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;c3VyZS4=&amp;quot;));&lt;br /&gt;
		Assert.assertFalse(RssFileUpload.isBase64(&amp;quot;OMG!&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
The same function in Python:&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def isBase64(s):&lt;br /&gt;
    return (len(s) % 4 == 0) and re.match(&#039;^[A-Za-z0-9+/]+[=]{0,2}$&#039;, s)&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Regex ===&lt;br /&gt;
In both of the above examples, I check the length, and then apply the regex. I think this makes it a bit more readable.  However, it is possible to do the entire check with just a single regex.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;br /&gt;
[[Category:Regex]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=IsBase64&amp;diff=2272</id>
		<title>IsBase64</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=IsBase64&amp;diff=2272"/>
		<updated>2009-10-19T02:18:48Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test to determine if a string is [http://en.wikipedia.org/wiki/Base64 base64 encoded].  This check only shows if the string conforms to base64.  It&#039;s possible that the string conforms, but is not in fact encoded. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	static boolean isBase64(String s) {&lt;br /&gt;
		return (s.length() % 4 == 0) &amp;amp;&amp;amp; s.matches(&amp;quot;^[A-Za-z0-9+/]+[=]{0,2}$&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	@Test&lt;br /&gt;
	public void testIsBase64() throws Exception {&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;bGVhc3VyZS4=&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;ZWFzdXJlLg==&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;YXN1cmUu&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;c3VyZS4=&amp;quot;));&lt;br /&gt;
		Assert.assertFalse(RssFileUpload.isBase64(&amp;quot;OMG!&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
The same function in Python:&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def isBase64(s):&lt;br /&gt;
    return (len(s) % 4 == 0) and re.match(&#039;^[A-Za-z0-9+/]+[=]{0,2}$&#039;, s)&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;br /&gt;
[[Category:Regex]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=IsBase64&amp;diff=2271</id>
		<title>IsBase64</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=IsBase64&amp;diff=2271"/>
		<updated>2009-10-19T00:23:32Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Test to determine if a string is [http://en.wikipedia.org/wiki/Base64 base64 encoded].  This check only shows if the string conforms to base64.  It&amp;#039;s possible that the string con…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test to determine if a string is [http://en.wikipedia.org/wiki/Base64 base64 encoded].  This check only shows if the string conforms to base64.  It&#039;s possible that the string conforms, but is not in fact encoded. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	static boolean isBase64(String s) {&lt;br /&gt;
		return (s.length() % 4 == 0) &amp;amp;&amp;amp; s.matches(&amp;quot;^[A-Za-z0-9+/]+[=]{0,2}$&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	@Test&lt;br /&gt;
	public void testIsBase64() throws Exception {&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;bGVhc3VyZS4=&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;ZWFzdXJlLg==&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;YXN1cmUu&amp;quot;));&lt;br /&gt;
		Assert.assertTrue(RssFileUpload.isBase64(&amp;quot;c3VyZS4=&amp;quot;));&lt;br /&gt;
		Assert.assertFalse(RssFileUpload.isBase64(&amp;quot;OMG!&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;br /&gt;
[[Category:Regex]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Java_Proper_Case&amp;diff=2270</id>
		<title>Java Proper Case</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Java_Proper_Case&amp;diff=2270"/>
		<updated>2009-10-19T00:19:17Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick search on how to proper case or title case a Java string returned a number way to approach this problem.  In C/assembly you can do the replacement in place, and very fast using bitmasks.  &lt;br /&gt;
&lt;br /&gt;
None of the Java solutions I found used the regular expression library.  The Java regex library is quite good IMHO, and I tend to attempt to use it whenever I&#039;m performing string operations.  The results are usually faster and more concise than a hand written loop.  Here&#039;s my function to proper case a string:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	static String properCase(String s) {&lt;br /&gt;
		Pattern p = Pattern.compile(&amp;quot;(^|\\W)([a-z])&amp;quot;);&lt;br /&gt;
		Matcher m = p.matcher(s.toLowerCase());&lt;br /&gt;
		StringBuffer sb = new StringBuffer(s.length());&lt;br /&gt;
		while(m.find()) {&lt;br /&gt;
			m.appendReplacement(sb, m.group(1) + m.group(2).toUpperCase() );&lt;br /&gt;
		}&lt;br /&gt;
		m.appendTail(sb);&lt;br /&gt;
		return sb.toString();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And here&#039;s a basic unit test:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	public void testProperCase() throws Exception {&lt;br /&gt;
		assertEquals(&amp;quot;Foo Bar&amp;quot;, properCase(&amp;quot;fOo baR&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll want to make the Pattern static if you anticipate calling this function a number of times.  &lt;br /&gt;
&lt;br /&gt;
In Ruby, you can do the same thing like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;fOo BAR&amp;quot;.downcase.gsub(/\b\w/){$&amp;amp;.upcase}&lt;br /&gt;
=&amp;gt; &amp;quot;Foo Bar&amp;quot;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Java|Proper Case]]&lt;br /&gt;
[[Category:Ruby|Proper Case]]&lt;br /&gt;
[[Category:Regex|Proper Case]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Main_Page&amp;diff=2268</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Main_Page&amp;diff=2268"/>
		<updated>2009-10-17T04:58:16Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* Technical Tips&lt;br /&gt;
** [[:Category:Java]]&lt;br /&gt;
*** [[Log4j file rotation]]&lt;br /&gt;
*** [[Java Unique List]]&lt;br /&gt;
*** [[Javax.net.debug]]&lt;br /&gt;
*** [[LUHN algorithm]]&lt;br /&gt;
** [[Linux Tips]]&lt;br /&gt;
** [[:Category:Solaris]]&lt;br /&gt;
** [[Windows Tips]]&lt;br /&gt;
*** [[Cygwin Tips]]&lt;br /&gt;
** [[OS X Tips]]&lt;br /&gt;
** [[PHP Tips]]&lt;br /&gt;
** [[Cxx Tips]]&lt;br /&gt;
** [[Ruby Tips]]&lt;br /&gt;
** [[Sybase Tips]]&lt;br /&gt;
** [[Interview Questions]]&lt;br /&gt;
** [[Top 10 ways to increase traffic to your wiki]]&lt;br /&gt;
|&lt;br /&gt;
* Projects&lt;br /&gt;
** [[URL Converters]]&lt;br /&gt;
** [[FINSIA]]&lt;br /&gt;
** [[Slicehost]]&lt;br /&gt;
** [[Parsers Presentation]]&lt;br /&gt;
** [[BeachProjects]]&lt;br /&gt;
** [[CCNJ Podcast]]&lt;br /&gt;
** [[CruiseControl Build Status]]&lt;br /&gt;
** [[GPS Meets Google Maps]]&lt;br /&gt;
** [[Xbox Linux Project]]&lt;br /&gt;
|&lt;br /&gt;
* Blogs&lt;br /&gt;
** [[Stack Overflow page design]]&lt;br /&gt;
** [[mimetex]]&lt;br /&gt;
** [[LG DV7821P]]&lt;br /&gt;
** [[Email Authentication]]&lt;br /&gt;
** [[Quotes]]&lt;br /&gt;
** [[Software Ungineering]]&lt;br /&gt;
** [[Password Security]]&lt;br /&gt;
** [[Visa Signature Concierge Service]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Random_Binary_digits_in_Ruby&amp;diff=2267</id>
		<title>Random Binary digits in Ruby</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Random_Binary_digits_in_Ruby&amp;diff=2267"/>
		<updated>2009-10-16T23:37:33Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;When I don&amp;#039;t have [http://www.amazon.com/gp/product/0833030477?ie=UTF8&amp;amp;tag=eggewiki-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0833030477 A Million Random Digits with…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I don&#039;t have [http://www.amazon.com/gp/product/0833030477?ie=UTF8&amp;amp;tag=eggewiki-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0833030477 A Million Random Digits with 100,000 Normal Deviates] handy, I tend to code a quick ruby script instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
ruby -e &#039;(0..1000000).each {|x| print(rand(2) % 2) }; puts &#039;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=JBoss_log4j_rotation&amp;diff=2266</id>
		<title>JBoss log4j rotation</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=JBoss_log4j_rotation&amp;diff=2266"/>
		<updated>2009-10-16T05:18:19Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JBoss has a related log4j file rotation bug.  This is similar to the [[Log4j file rotation]] bug I&#039;ve talked about, but it caused by the right combination of bugs in [https://issues.apache.org/bugzilla/show_bug.cgi?id=46539 JDK 1.5 and log4j].  &lt;br /&gt;
&lt;br /&gt;
The stack trace usually looks something like this:&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
Caused by: java.lang.IllegalStateException: Current state = FLUSHED, new state = CODING&lt;br /&gt;
        at java.nio.charset.CharsetEncoder.throwIllegalStateException(CharsetEncoder.java:941)&lt;br /&gt;
        at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:537)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:384)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:146)&lt;br /&gt;
        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:204)&lt;br /&gt;
        at java.io.Writer.write(Writer.java:126)&lt;br /&gt;
        at org.apache.log4j.helpers.QuietWriter.write(QuietWriter.java:47)&lt;br /&gt;
        at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301)&lt;br /&gt;
        at org.apache.log4j.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:358)&lt;br /&gt;
        at org.apache.log4j.WriterAppender.append(WriterAppender.java:159)&lt;br /&gt;
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)&lt;br /&gt;
        at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)&lt;br /&gt;
        at org.apache.log4j.Category.callAppenders(Category.java:203)&lt;br /&gt;
        at org.apache.log4j.Category.forcedLog(Category.java:388)&lt;br /&gt;
        at org.apache.log4j.Category.log(Category.java:853)&lt;br /&gt;
        at org.jboss.logging.Log4jLoggerPlugin.info(Log4jLoggerPlugin.java:161)&lt;br /&gt;
        at org.jboss.logging.Logger.info(Logger.java:189)&lt;br /&gt;
        at org.jboss.system.server.ServerImpl.shutdown(ServerImpl.java:654)&lt;br /&gt;
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;
        at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt;
        ... 45 more&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this to fail, the rename call must fail in the [http://www.docjar.com/docs/api/org/apache/log4j/DailyRollingFileAppender.html DailyRollingFileAppender].  This code looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
boolean result = file.renameTo(target);&lt;br /&gt;
    if(result) {&lt;br /&gt;
      LogLog.debug(fileName +&amp;quot; - &amp;gt; &amp;quot;+ scheduledFilename);&lt;br /&gt;
    } else {&lt;br /&gt;
      LogLog.error(&amp;quot;Failed to rename [&amp;quot;+fileName+&amp;quot;] to [&amp;quot;+scheduledFilename+&amp;quot;].&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code by itself is fine.  Log4j will log any errors it has to standard err.  Unfortunately, JBoss by default redirects standard err and standout into log4j.  See https://jira.jboss.org/jira/browse/JBAS-845.&lt;br /&gt;
  &lt;br /&gt;
=== turn off stdout / stderr redirection ===&lt;br /&gt;
&lt;br /&gt;
You can turn this feature off with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;$JAVA_OPTS -Dorg.jboss.logging.Log4jService.catchSystemOut=false -Dorg.jboss.logging.Log4jService.catchSystemErr=false&amp;quot;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is probably good to turn off anyway.  It&#039;ll highlight modules that aren&#039;t using log4j, and really serious stuff will go to your boot.log.  &lt;br /&gt;
&lt;br /&gt;
=== Use the DatedFileAppender ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;DatedFileAppender&#039;&#039;&#039; is a drop in replacement for the &#039;&#039;&#039;DailyRollingFileAppender&#039;&#039;&#039;.  The difference is is starts with the dated filename, so no rename is necessary.  You can [http://minaret.biz/tips/datedFileAppender.html download the DatedFileAppender here].  Thanks [http://tedorgwp.free.fr/?p=155 Ted]!&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
On Unix, moving the logs to a NetApp, local disk, or temp folder also fixes this problem.  One other idea is to attempt to kill any processes doing a tail/less on the file before it rotates.&lt;br /&gt;
 &lt;br /&gt;
[[Category:Java]]&lt;br /&gt;
[[Category:JBoss]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Log4j_file_rotation&amp;diff=2265</id>
		<title>Log4j file rotation</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Log4j_file_rotation&amp;diff=2265"/>
		<updated>2009-10-16T05:11:54Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you have an application writing to a log file using log4j, under what circumstances could the log rotation in &#039;&#039;&#039;DailyRollingFileAppender&#039;&#039;&#039; cause the hosting process to fail?  &lt;br /&gt;
&lt;br /&gt;
When it failed to rotate, you may see a message like:&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
Caused by: java.lang.IllegalStateException: Current state = FLUSHED, new state = CODING&lt;br /&gt;
        at java.nio.charset.CharsetEncoder.throwIllegalStateException(CharsetEncoder.java:941)&lt;br /&gt;
        at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:537)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:384)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:146)&lt;br /&gt;
        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:204)&lt;br /&gt;
        at java.io.Writer.write(Writer.java:126)&lt;br /&gt;
        at org.apache.log4j.helpers.QuietWriter.write(QuietWriter.java:47)&lt;br /&gt;
        at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301)&lt;br /&gt;
        at org.apache.log4j.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:358)&lt;br /&gt;
        at org.apache.log4j.WriterAppender.append(WriterAppender.java:159)&lt;br /&gt;
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)&lt;br /&gt;
        at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)&lt;br /&gt;
        at org.apache.log4j.Category.callAppenders(Category.java:203)&lt;br /&gt;
        at org.apache.log4j.Category.forcedLog(Category.java:388)&lt;br /&gt;
        at org.apache.log4j.Category.log(Category.java:853)&lt;br /&gt;
        at org.jboss.logging.Log4jLoggerPlugin.info(Log4jLoggerPlugin.java:161)&lt;br /&gt;
        at org.jboss.logging.Logger.info(Logger.java:189)&lt;br /&gt;
        at org.jboss.system.server.ServerImpl.shutdown(ServerImpl.java:654)&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I spent some time investigation this today, and here are my findings.  First, lets take a look at the log4j which rotates the log file.&lt;br /&gt;
&lt;br /&gt;
http://www.docjar.com/html/api/org/apache/log4j/DailyRollingFileAppender.java.html&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  320       File file = new File(fileName);&lt;br /&gt;
  321       boolean result = file.renameTo(target);&lt;br /&gt;
  322       if(result) {&lt;br /&gt;
  323         LogLog.debug(fileName +&amp;quot; -&amp;gt; &amp;quot;+ scheduledFilename);&lt;br /&gt;
  324       } else {&lt;br /&gt;
  325         LogLog.error(&amp;quot;Failed to rename [&amp;quot;+fileName+&amp;quot;] to [&amp;quot;+scheduledFilename+&amp;quot;].&amp;quot;);&lt;br /&gt;
  326       }&lt;br /&gt;
  327   &lt;br /&gt;
  328       try {&lt;br /&gt;
  329         // This will also close the file. This is OK since multiple&lt;br /&gt;
  330         // close operations are safe.&lt;br /&gt;
  331         this.setFile(fileName, false, this.bufferedIO, this.bufferSize);&lt;br /&gt;
  332       }&lt;br /&gt;
  333       catch(IOException e) {&lt;br /&gt;
  334         errorHandler.error(&amp;quot;setFile(&amp;quot;+fileName+&amp;quot;, false) call failed.&amp;quot;);&lt;br /&gt;
  335       }&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OK.  So it looks like log4j will attempt to rename the file, and if it fails, it&#039;ll continue to log to the original file. We&#039;ll see some message like this send to stderr:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
log4j:ERROR Failed to rename [test.log] to [test.log.2008-09-26-13-35].&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How does File#renameTo work inside the JVM.  We&#039;ll it looks like it just makes a system call with the two paths.&lt;br /&gt;
&lt;br /&gt;
https://openjdk.dev.java.net/source/browse/openjdk/jdk/trunk/jdk/src/solaris/native/java/io/UnixFileSystem_md.c?rev=257&amp;amp;view=markup&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
JNIEXPORT jboolean JNICALL&lt;br /&gt;
Java_java_io_UnixFileSystem_rename0(JNIEnv *env, jobject this,&lt;br /&gt;
                                    jobject from, jobject to)&lt;br /&gt;
{&lt;br /&gt;
    jboolean rv = JNI_FALSE;&lt;br /&gt;
&lt;br /&gt;
    WITH_FIELD_PLATFORM_STRING(env, from, ids.path, fromPath) {&lt;br /&gt;
        WITH_FIELD_PLATFORM_STRING(env, to, ids.path, toPath) {&lt;br /&gt;
            if (rename(fromPath, toPath) == 0) {&lt;br /&gt;
                rv = JNI_TRUE;&lt;br /&gt;
            }&lt;br /&gt;
        } END_PLATFORM_STRING(env, toPath);&lt;br /&gt;
    } END_PLATFORM_STRING(env, fromPath);&lt;br /&gt;
    return rv;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OK.  This is pretty simple.  So how could we cause rename to break?  Well here&#039;s a basic test harness.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
while (!Thread.currentThread().isInterrupted()) {&lt;br /&gt;
 File a = new File(&amp;quot;a.txt&amp;quot;);&lt;br /&gt;
 if (!a.exists()) {&lt;br /&gt;
  a.createNewFile();&lt;br /&gt;
 }&lt;br /&gt;
 File b = new File(&amp;quot;b.txt&amp;quot;);&lt;br /&gt;
 if (b.exists()) {&lt;br /&gt;
  b.delete();&lt;br /&gt;
 }&lt;br /&gt;
 boolean ok = a.renameTo(b);&lt;br /&gt;
 if (!ok)&lt;br /&gt;
  System.err.println(&amp;quot;Failed to rename a to b&amp;quot;);&lt;br /&gt;
 Thread.yield();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When I run this on Windows, it&#039;s pretty easy to get the program to fail.  I just need to run &#039;&#039;&#039;tail&#039;&#039;&#039; against it.  It takes a couple of tries because the file is only there some of the time, but once you get the file, the test harness will start to print errors.&lt;br /&gt;
&lt;br /&gt;
OK.  The interesting bit is when we run the test harness on Solaris.  On my Solaris test system, I have three different file systems - local disk, Netapp, and Solaris NFS.  They&#039;re all a litte different in how the handle file locks.&lt;br /&gt;
&lt;br /&gt;
I run my test harness on Solaris on the Solaris NFS, but I can&#039;t get the test harness to break by using &#039;tail&#039;.&lt;br /&gt;
&lt;br /&gt;
If I look at my tail program, I notice that&#039;s it&#039;s handle to the file has gone stale.&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; pfiles 69&lt;br /&gt;
69:     tail -f a.txt&lt;br /&gt;
  Current rlimit: 256 file descriptors&lt;br /&gt;
   1: S_IFCHR mode:0620 dev:295,0 ino:12582918 uid:4911 gid:7 rdev:24,1&lt;br /&gt;
      O_RDWR|O_NOCTTY|O_LARGEFILE&lt;br /&gt;
      /devices/pseudo/pts@0:1&lt;br /&gt;
   2: S_IFCHR mode:0620 dev:295,0 ino:12582918 uid:4911 gid:7 rdev:24,1&lt;br /&gt;
      O_RDWR|O_NOCTTY|O_LARGEFILE&lt;br /&gt;
      /devices/pseudo/pts@0:1&lt;br /&gt;
   0: Stale NFS file handle&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is normal for a SAN, but slightly different for a Netapp mount.  Running on the Netapp, it REALLY, REALLY hard to get a stale NFS handle.  It generally takes something like a network interruption to get a stale handle on the netapp.  Here&#039;s the same test on a Netapp:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ pfiles 27297 &lt;br /&gt;
27297:  tail -f a.txt&lt;br /&gt;
  Current rlimit: 256 file descriptors&lt;br /&gt;
   0: S_IFCHR mode:0620 dev:270,0 ino:12582924 uid:5294 gid:7 rdev:24,4&lt;br /&gt;
      O_RDWR|O_NOCTTY|O_LARGEFILE&lt;br /&gt;
      /devices/pseudo/pts@0:4&lt;br /&gt;
   1: S_IFCHR mode:0620 dev:270,0 ino:12582924 uid:5294 gid:7 rdev:24,4&lt;br /&gt;
      O_RDWR|O_NOCTTY|O_LARGEFILE&lt;br /&gt;
      /devices/pseudo/pts@0:4&lt;br /&gt;
   2: S_IFCHR mode:0620 dev:270,0 ino:12582924 uid:5294 gid:7 rdev:24,4&lt;br /&gt;
      O_RDWR|O_NOCTTY|O_LARGEFILE&lt;br /&gt;
      /devices/pseudo/pts@0:4&lt;br /&gt;
   3: S_IFREG mode:0644 dev:284,1 ino:17193816 uid:5294 gid:200 size:0&lt;br /&gt;
      O_RDONLY|O_NONBLOCK|O_LARGEFILE&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last device is my file.  With the netapp, it will keep a temporary file in existence until my process releases it&#039;s handle.  Here&#039;s the file I have a lock on:&lt;br /&gt;
 &lt;br /&gt;
$ ls -ltra .nfs*&lt;br /&gt;
-rw-r--r-- 1 user lehman 0 2008-09-26 14:43 .nfsCF00C&lt;br /&gt;
&lt;br /&gt;
The Netapp has basically renamed the file instead of deleting it, allow my process to continue to use it until the process exists.  &lt;br /&gt;
&lt;br /&gt;
So, I&#039;ve shown that you can break a program by tailing it in another process on Windows, but so not on Solaris.  We&#039;ll I&#039;ll try some more tests to see if I can get Solaris to break. I&#039;ve created this test harness for log4j and a corresponding log4j.xml file. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
public static void main(String[] args) {&lt;br /&gt;
 Logger log = Logger.getLogger(AppendIt.class);&lt;br /&gt;
 long i = 0;&lt;br /&gt;
 while(!Thread.currentThread().isInterrupted()) {&lt;br /&gt;
  log.info(i++);&lt;br /&gt;
  long now = System.currentTimeMillis();&lt;br /&gt;
  // gobs of silent logging&lt;br /&gt;
  while(System.currentTimeMillis() - now &amp;lt; 1000) {&lt;br /&gt;
   log.debug(i++);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE log4j:configuration SYSTEM &amp;quot;log4j.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;log4j:configuration xmlns:log4j=&amp;quot;http://jakarta.apache.org/log4j/&amp;quot; debug=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!-- A time/date based rolling appender --&amp;gt;&lt;br /&gt;
   &amp;lt;appender name=&amp;quot;FILE&amp;quot; class=&amp;quot;org.apache.log4j.DailyRollingFileAppender&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;param name=&amp;quot;File&amp;quot; value=&amp;quot;test.log&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;param name=&amp;quot;Append&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Rollover every minute --&amp;gt;&lt;br /&gt;
      &amp;lt;param name=&amp;quot;DatePattern&amp;quot; value=&amp;quot;&#039;.&#039;yyyy-MM-dd-HH-mm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;layout class=&amp;quot;org.apache.log4j.PatternLayout&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;!-- The default pattern: Date Priority [Category] Message\n --&amp;gt;&lt;br /&gt;
         &amp;lt;param name=&amp;quot;ConversionPattern&amp;quot; value=&amp;quot;%d %-5p [%c] %m%n&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/layout&amp;gt;&lt;br /&gt;
   &amp;lt;/appender&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;root&amp;gt;&lt;br /&gt;
      &amp;lt;priority value=&amp;quot;INFO&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;appender-ref ref=&amp;quot;FILE&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/log4j:configuration&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;ve tried by above &#039;tail&#039; commands, running the test harness on all three file system, but still no luck.&lt;br /&gt;
&lt;br /&gt;
Deleting the output file causes log4j to output this error:&lt;br /&gt;
log4j:ERROR Failed to rename [test.log] to [test.log.2008-09-26-13-35].&lt;br /&gt;
but then continue without incident.&lt;br /&gt;
 &lt;br /&gt;
OK... now I&#039;ll try to gzip the file being written to. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
log4j:ERROR Failed to rename [test.log] to [test.log.2008-09-26-13-35].&lt;br /&gt;
log4j:ERROR Could not close org.apache.log4j.helpers.QuietWriter@1c9b9ca&lt;br /&gt;
java.io.IOException: Stale NFS file handle&lt;br /&gt;
        at java.io.FileOutputStream.close0(Native Method)&lt;br /&gt;
        at java.io.FileOutputStream.close(FileOutputStream.java:279)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder$CharsetSE.implClose(StreamEncoder.java:431)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:160)&lt;br /&gt;
        at java.io.OutputStreamWriter.close(OutputStreamWriter.java:222)&lt;br /&gt;
        at java.io.FilterWriter.close(FilterWriter.java:92)&lt;br /&gt;
        at org.apache.log4j.FileAppender.closeFile(FileAppender.java:184)&lt;br /&gt;
        at org.apache.log4j.DailyRollingFileAppender.rollOver(DailyRollingFileAppender.java:313)&lt;br /&gt;
        at org.apache.log4j.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:353)&lt;br /&gt;
        at org.apache.log4j.WriterAppender.append(WriterAppender.java:160)&lt;br /&gt;
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)&lt;br /&gt;
        at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)&lt;br /&gt;
        at org.apache.log4j.Category.callAppenders(Category.java:206)&lt;br /&gt;
        at org.apache.log4j.Category.forcedLog(Category.java:391)&lt;br /&gt;
        at org.apache.log4j.Category.info(Category.java:666)&lt;br /&gt;
        at AppendIt.main(AppendIt.java:13)&lt;br /&gt;
log4j:ERROR Failed to rename [test.log] to [test.log.2008-09-26-13-42].&lt;br /&gt;
Exception in thread &amp;quot;main&amp;quot; java.lang.IllegalStateException: Current state = FLUSHED, new state = CODING_END&lt;br /&gt;
        at java.nio.charset.CharsetEncoder.throwIllegalStateException(CharsetEncoder.java:941)&lt;br /&gt;
        at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:537)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder$CharsetSE.flushLeftoverChar(StreamEncoder.java:358)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder$CharsetSE.implClose(StreamEncoder.java:414)&lt;br /&gt;
        at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:160)&lt;br /&gt;
        at java.io.OutputStreamWriter.close(OutputStreamWriter.java:222)&lt;br /&gt;
        at java.io.FilterWriter.close(FilterWriter.java:92)&lt;br /&gt;
        at org.apache.log4j.FileAppender.closeFile(FileAppender.java:184)&lt;br /&gt;
        at org.apache.log4j.FileAppender.reset(FileAppender.java:339)&lt;br /&gt;
        at org.apache.log4j.FileAppender.setFile(FileAppender.java:284)&lt;br /&gt;
        at org.apache.log4j.DailyRollingFileAppender.rollOver(DailyRollingFileAppender.java:331)&lt;br /&gt;
        at org.apache.log4j.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:353)&lt;br /&gt;
        at org.apache.log4j.WriterAppender.append(WriterAppender.java:160)&lt;br /&gt;
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)&lt;br /&gt;
        at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)&lt;br /&gt;
        at org.apache.log4j.Category.callAppenders(Category.java:206)&lt;br /&gt;
        at org.apache.log4j.Category.forcedLog(Category.java:391)&lt;br /&gt;
        at org.apache.log4j.Category.info(Category.java:666)&lt;br /&gt;
        at AppendIt.main(AppendIt.java:13)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cool - this crashed my test program.  In JBoss this would likely cause the running thread to exit.  It probably dies silently, as it can&#039;t log the problem it&#039;s having.  In my test harness, the main thread will write to stderr if it has an exception.  &lt;br /&gt;
&lt;br /&gt;
Lessons learned - on Windows don&#039;t try to tail a file unless your in a dev environment.  In Solaris you can tail a file, but don&#039;t zip it up, and try not to delete it.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[JBoss log4j rotation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Solaris]] [[Category:Java]] [[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Java_Basename&amp;diff=2264</id>
		<title>Java Basename</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Java_Basename&amp;diff=2264"/>
		<updated>2009-10-15T04:47:34Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Ruby contains a nice build in function to get the basename of a file. &amp;lt;geshi&amp;gt; File.basename(&amp;#039;https://www.theeggeadventure.com/wikimedia/index.php&amp;#039;) =&amp;gt; &amp;quot;index.php&amp;quot; &amp;lt;/geshi&amp;gt;  The h…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ruby contains a nice build in function to get the basename of a file.&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
File.basename(&#039;https://www.theeggeadventure.com/wikimedia/index.php&#039;)&lt;br /&gt;
=&amp;gt; &amp;quot;index.php&amp;quot;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The handy function is not present in the JDK.  Here&#039;s my Java version of the function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
	private static final Pattern BASENAME = Pattern.compile(&amp;quot;.*?([^/]*)$&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	public static String basename(URL url) {&lt;br /&gt;
		return basename(url.getPath());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static String basename(String url) {&lt;br /&gt;
		Matcher matcher = BASENAME.matcher(url);&lt;br /&gt;
		if (matcher.matches()) {&lt;br /&gt;
			return matcher.group(1);&lt;br /&gt;
		} else {&lt;br /&gt;
			throw new IllegalArgumentException(&amp;quot;Can&#039;t parse &amp;quot; + url);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Solaris_binary_files_quick_reference&amp;diff=2263</id>
		<title>Solaris binary files quick reference</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Solaris_binary_files_quick_reference&amp;diff=2263"/>
		<updated>2009-10-14T22:38:47Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;file&#039;&#039;&#039; - determine what kind of executable you have&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ file /usr/bin/ssh&lt;br /&gt;
/usr/bin/ssh:   ELF 32-bit LSB executable 80386 Version 1, dynamically linked, stripped&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ldd&#039;&#039;&#039; - display the dynamic linking information&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ldd /usr/bin/ssh&lt;br /&gt;
        libsocket.so.1 =&amp;gt;        /lib/libsocket.so.1&lt;br /&gt;
        libnsl.so.1 =&amp;gt;   /lib/libnsl.so.1&lt;br /&gt;
        libz.so.1 =&amp;gt;     /usr/lib/libz.so.1&lt;br /&gt;
        libcrypto.so.0.9.7 =&amp;gt;    /usr/sfw/lib/libcrypto.so.0.9.7&lt;br /&gt;
        libgss.so.1 =&amp;gt;   /usr/lib/libgss.so.1&lt;br /&gt;
        libc.so.1 =&amp;gt;     /lib/libc.so.1&lt;br /&gt;
        libmp.so.2 =&amp;gt;    /lib/libmp.so.2&lt;br /&gt;
        libmd.so.1 =&amp;gt;    /lib/libmd.so.1&lt;br /&gt;
        libscf.so.1 =&amp;gt;   /lib/libscf.so.1&lt;br /&gt;
        libcmd.so.1 =&amp;gt;   /lib/libcmd.so.1&lt;br /&gt;
        libdoor.so.1 =&amp;gt;  /lib/libdoor.so.1&lt;br /&gt;
        libuutil.so.1 =&amp;gt;         /lib/libuutil.so.1&lt;br /&gt;
        libgen.so.1 =&amp;gt;   /lib/libgen.so.1&lt;br /&gt;
        libcrypto_extra.so.0.9.7 =&amp;gt;      /usr/sfw/lib/libcrypto_extra.so.0.9.7&lt;br /&gt;
        libm.so.2 =&amp;gt;     /lib/libm.so.2&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dump&#039;&#039;&#039; display the RPATH and RUNPATH information&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
$ dump -Lv  /usr/bin/ssh&lt;br /&gt;
&lt;br /&gt;
/usr/bin/ssh:&lt;br /&gt;
&lt;br /&gt;
  **** DYNAMIC SECTION INFORMATION ****&lt;br /&gt;
.dynamic:&lt;br /&gt;
[INDEX] Tag         Value&lt;br /&gt;
[1]     NEEDED          libsocket.so.1&lt;br /&gt;
[2]     NEEDED          libnsl.so.1&lt;br /&gt;
[3]     NEEDED          libz.so.1&lt;br /&gt;
[4]     NEEDED          libcrypto.so.0.9.7&lt;br /&gt;
[5]     NEEDED          libgss.so.1&lt;br /&gt;
[6]     NEEDED          libc.so.1&lt;br /&gt;
[7]     INIT            0x80794c8&lt;br /&gt;
[8]     FINI            0x80794dc&lt;br /&gt;
[9]     RUNPATH         /usr/sfw/lib&lt;br /&gt;
[10]    RPATH           /usr/sfw/lib&lt;br /&gt;
[11]    HASH            0x8050108&lt;br /&gt;
[12]    STRTAB          0x8054570&lt;br /&gt;
[13]    STRSZ           0x2a38&lt;br /&gt;
[14]    SYMTAB          0x80517e0&lt;br /&gt;
[15]    SYMENT          0x10&lt;br /&gt;
[16]    CHECKSUM        0xe45&lt;br /&gt;
[17]    VERNEED         0x8056fa8&lt;br /&gt;
[18]    VERNEEDNUM      0x5&lt;br /&gt;
[19]    PLTSZ           0x730&lt;br /&gt;
[20]    PLTREL          0x11&lt;br /&gt;
[21]    JMPREL          0x8057088&lt;br /&gt;
[22]    REL             0x8057068&lt;br /&gt;
[23]    RELSZ           0x750&lt;br /&gt;
[24]    RELENT          0x8&lt;br /&gt;
[25]    DEBUG           0&lt;br /&gt;
[26]    FEATURE_1       PARINIT&lt;br /&gt;
[27]    FLAGS           0&lt;br /&gt;
[28]    FLAGS_1         0&lt;br /&gt;
[29]    PLTGOT          0x8097000&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;objdump&#039;&#039;&#039; is similar to dump, and can give detailed version numbers&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
objdump -x /usr/bin/ssh&lt;br /&gt;
&lt;br /&gt;
/usr/bin/ssh:     file format elf32-i386&lt;br /&gt;
/usr/bin/ssh&lt;br /&gt;
architecture: i386, flags 0x00000112:&lt;br /&gt;
EXEC_P, HAS_SYMS, D_PAGED&lt;br /&gt;
start address 0x08058628&lt;br /&gt;
&lt;br /&gt;
Program Header:&lt;br /&gt;
    PHDR off    0x00000034 vaddr 0x08050034 paddr 0x00000000 align 2**0&lt;br /&gt;
         filesz 0x000000c0 memsz 0x000000c0 flags r-x&lt;br /&gt;
  INTERP off    0x000000f4 vaddr 0x00000000 paddr 0x00000000 align 2**0&lt;br /&gt;
         filesz 0x00000011 memsz 0x00000000 flags r--&lt;br /&gt;
    LOAD off    0x00000000 vaddr 0x08050000 paddr 0x00000000 align 2**16&lt;br /&gt;
         filesz 0x00036f2d memsz 0x00036f2d flags r-x&lt;br /&gt;
    LOAD off    0x00037000 vaddr 0x08097000 paddr 0x00000000 align 2**16&lt;br /&gt;
         filesz 0x000020c1 memsz 0x000045c4 flags rw-&lt;br /&gt;
 DYNAMIC off    0x000373a4 vaddr 0x080973a4 paddr 0x00000000 align 2**0&lt;br /&gt;
         filesz 0x000000f0 memsz 0x00000000 flags rwx&lt;br /&gt;
0x6ffffffb off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**0&lt;br /&gt;
         filesz 0x00000000 memsz 0x00000000 flags rw-&lt;br /&gt;
&lt;br /&gt;
Dynamic Section:&lt;br /&gt;
  NEEDED      libsocket.so.1&lt;br /&gt;
  NEEDED      libnsl.so.1&lt;br /&gt;
  NEEDED      libz.so.1&lt;br /&gt;
  NEEDED      libcrypto.so.0.9.7&lt;br /&gt;
  NEEDED      libgss.so.1&lt;br /&gt;
  NEEDED      libc.so.1&lt;br /&gt;
  INIT        0x807949c&lt;br /&gt;
  FINI        0x80794b0&lt;br /&gt;
  RUNPATH     /usr/sfw/lib&lt;br /&gt;
  RPATH       /usr/sfw/lib&lt;br /&gt;
  HASH        0x8050108&lt;br /&gt;
  STRTAB      0x8054570&lt;br /&gt;
  STRSZ       0x2a38&lt;br /&gt;
  SYMTAB      0x80517e0&lt;br /&gt;
  SYMENT      0x10&lt;br /&gt;
  CHECKSUM    0xbcae&lt;br /&gt;
  VERNEED     0x8056fa8&lt;br /&gt;
  VERNEEDNUM  0x5&lt;br /&gt;
  PLTRELSZ    0x730&lt;br /&gt;
  PLTREL      0x11&lt;br /&gt;
  JMPREL      0x8057088&lt;br /&gt;
  REL         0x8057068&lt;br /&gt;
  RELSZ       0x750&lt;br /&gt;
  RELENT      0x8&lt;br /&gt;
  DEBUG       0x0&lt;br /&gt;
  FEATURE     0x1&lt;br /&gt;
  FLAGS       0x0&lt;br /&gt;
  FLAGS_1     0x0&lt;br /&gt;
  PLTGOT      0x8097000&lt;br /&gt;
&lt;br /&gt;
Version References:&lt;br /&gt;
  required from libsocket.so.1:&lt;br /&gt;
    0x0a3d2794 0x00 00 SUNW_1.4&lt;br /&gt;
  required from libnsl.so.1:&lt;br /&gt;
    0x0a3d2797 0x00 00 SUNW_1.7&lt;br /&gt;
  required from libz.so.1:&lt;br /&gt;
    0x0a3d2791 0x00 00 SUNW_1.1&lt;br /&gt;
  required from libgss.so.1:&lt;br /&gt;
    0x0a3d2792 0x00 00 SUNW_1.2&lt;br /&gt;
    0x0b4ecc71 0x00 00 SUNWprivate_1.1&lt;br /&gt;
  required from libc.so.1:&lt;br /&gt;
    0x03d279e9 0x00 00 SUNW_1.19&lt;br /&gt;
    0x0b4ecc71 0x00 00 SUNWprivate_1.1&lt;br /&gt;
&lt;br /&gt;
Sections:&lt;br /&gt;
Idx Name          Size      VMA       LMA       File off  Algn&lt;br /&gt;
  0 .interp       00000011  080500f4  080500f4  000000f4  2**0&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
  1 .hash         000016d8  08050108  08050108  00000108  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
  2 .dynsym       00002d90  080517e0  080517e0  000017e0  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
  3 .dynstr       00002a38  08054570  08054570  00004570  2**0&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
  4 .SUNW_version 000000c0  08056fa8  08056fa8  00006fa8  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
  5 .rel.data     00000008  08057068  08057068  00007068  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
  6 .rel.bss      00000018  08057070  08057070  00007070  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
  7 .rel.plt      00000730  08057088  08057088  00007088  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
  8 .plt          00000e70  080577b8  080577b8  000077b8  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, CODE&lt;br /&gt;
  9 .text         00020e74  08058628  08058628  00008628  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, CODE&lt;br /&gt;
 10 .init         00000014  0807949c  0807949c  0002949c  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, CODE&lt;br /&gt;
 11 .fini         00000014  080794b0  080794b0  000294b0  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, CODE&lt;br /&gt;
 12 .rodata       000002ea  080794c8  080794c8  000294c8  2**3&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
 13 .rodata1      0000d779  080797b4  080797b4  000297b4  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
 14 .got          000003a4  08097000  08097000  00037000  2**12&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, DATA&lt;br /&gt;
 15 .dynamic      000000f0  080973a4  080973a4  000373a4  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, DATA&lt;br /&gt;
 16 .data         00000bc4  08097498  08097498  00037498  2**3&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, DATA&lt;br /&gt;
 17 .data1        00001065  0809805c  0809805c  0003805c  2**2&lt;br /&gt;
                  CONTENTS, ALLOC, LOAD, DATA&lt;br /&gt;
 18 .bss          000024fc  080990c8  080990c8  000390c8  2**3&lt;br /&gt;
                  ALLOC&lt;br /&gt;
 19 .comment      0000002b  00000000  00000000  000390c1  2**0&lt;br /&gt;
                  CONTENTS, READONLY&lt;br /&gt;
 20 .SUNW_signature 0000010e  00000000  00000000  00039190  2**0&lt;br /&gt;
                  CONTENTS, READONLY&lt;br /&gt;
SYMBOL TABLE:&lt;br /&gt;
no symbols&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;elfdump&#039;&#039;&#039; can display the functions which the dynamic linker will link.  Any of these functions can be intercepted with a proxy sub or interposer.&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
$ elfdump -G /usr/bin/ssh&lt;br /&gt;
&lt;br /&gt;
Global Offset Table Section:  .got&lt;br /&gt;
     index    addr        value     pending relocation&lt;br /&gt;
       [0]  0x08097000  0x080973a4&lt;br /&gt;
       [1]  0x08097004  0x00000000&lt;br /&gt;
       [2]  0x08097008  0x00000000&lt;br /&gt;
       [3]  0x0809700c  0x080577ce  R_386_JMP_SLOT            atexit&lt;br /&gt;
       [4]  0x08097010  0x080577de  R_386_JMP_SLOT            __fpstart&lt;br /&gt;
       [5]  0x08097014  0x080577ee  R_386_JMP_SLOT            exit&lt;br /&gt;
       [6]  0x08097018  0x080577fe  R_386_JMP_SLOT            gettext&lt;br /&gt;
       [7]  0x0809701c  0x0805780e  R_386_JMP_SLOT            fprintf&lt;br /&gt;
       [8]  0x08097020  0x0805781e  R_386_JMP_SLOT            getuid&lt;br /&gt;
       [9]  0x08097024  0x0805782e  R_386_JMP_SLOT            geteuid&lt;br /&gt;
      [10]  0x08097028  0x0805783e  R_386_JMP_SLOT            ___errno&lt;br /&gt;
      [11]  0x0809702c  0x0805784e  R_386_JMP_SLOT            seteuid&lt;br /&gt;
      [12]  0x08097030  0x0805785e  R_386_JMP_SLOT            setrlimit64&lt;br /&gt;
      [13]  0x08097034  0x0805786e  R_386_JMP_SLOT            getpwuid&lt;br /&gt;
      [14]  0x08097038  0x0805787e  R_386_JMP_SLOT            umask&lt;br /&gt;
      [15]  0x0809703c  0x0805788e  R_386_JMP_SLOT            sscanf&lt;br /&gt;
      [16]  0x08097040  0x0805789e  R_386_JMP_SLOT            strlen&lt;br /&gt;
      [17]  0x08097044  0x080578ae  R_386_JMP_SLOT            strcmp&lt;br /&gt;
      [18]  0x08097048  0x080578be  R_386_JMP_SLOT            SSLeay&lt;br /&gt;
      [19]  0x0809704c  0x080578ce  R_386_JMP_SLOT            stat64&lt;br /&gt;
      [20]  0x08097050  0x080578de  R_386_JMP_SLOT            strchr&lt;br /&gt;
      [21]  0x08097054  0x080578ee  R_386_JMP_SLOT            OPENSSL_add_all_algorithms_noconf&lt;br /&gt;
      [22]  0x08097058  0x080578fe  R_386_JMP_SLOT            ERR_load_crypto_strings&lt;br /&gt;
      [23]  0x0809705c  0x0805790e  R_386_JMP_SLOT            fileno&lt;br /&gt;
      [24]  0x08097060  0x0805791e  R_386_JMP_SLOT            isatty&lt;br /&gt;
      [25]  0x08097064  0x0805792e  R_386_JMP_SLOT            snprintf&lt;br /&gt;
      [26]  0x08097068  0x0805793e  R_386_JMP_SLOT            setuid&lt;br /&gt;
      [27]  0x0809706c  0x0805794e  R_386_JMP_SLOT            mkdir&lt;br /&gt;
      [28]  0x08097070  0x0805795e  R_386_JMP_SLOT            signal&lt;br /&gt;
      [29]  0x08097074  0x0805796e  R_386_JMP_SLOT            kill&lt;br /&gt;
      [30]  0x08097078  0x0805797e  R_386_JMP_SLOT            strerror&lt;br /&gt;
      [31]  0x0809707c  0x0805798e  R_386_JMP_SLOT            getenv&lt;br /&gt;
      [32]  0x08097080  0x0805799e  R_386_JMP_SLOT            strncmp&lt;br /&gt;
      [33]  0x08097084  0x080579ae  R_386_JMP_SLOT            popen&lt;br /&gt;
      [34]  0x08097088  0x080579be  R_386_JMP_SLOT            fgets&lt;br /&gt;
      [35]  0x0809708c  0x080579ce  R_386_JMP_SLOT            pclose&lt;br /&gt;
      [36]  0x08097090  0x080579de  R_386_JMP_SLOT            strlcpy&lt;br /&gt;
      [37]  0x08097094  0x080579ee  R_386_JMP_SLOT            ioctl&lt;br /&gt;
      [38]  0x08097098  0x080579fe  R_386_JMP_SLOT            memset&lt;br /&gt;
      [39]  0x0809709c  0x08057a0e  R_386_JMP_SLOT            dup&lt;br /&gt;
      [40]  0x080970a0  0x08057a1e  R_386_JMP_SLOT            open64&lt;br /&gt;
      [41]  0x080970a4  0x08057a2e  R_386_JMP_SLOT            execv&lt;br /&gt;
      [42]  0x080970a8  0x08057a3e  R_386_JMP_SLOT            perror&lt;br /&gt;
      [43]  0x080970ac  0x08057a4e  R_386_JMP_SLOT            pipe&lt;br /&gt;
      [44]  0x080970b0  0x08057a5e  R_386_JMP_SLOT            fork&lt;br /&gt;
      [45]  0x080970b4  0x08057a6e  R_386_JMP_SLOT            close&lt;br /&gt;
      [46]  0x080970b8  0x08057a7e  R_386_JMP_SLOT            dup2&lt;br /&gt;
      [47]  0x080970bc  0x08057a8e  R_386_JMP_SLOT            socket&lt;br /&gt;
      [48]  0x080970c0  0x08057a9e  R_386_JMP_SLOT            getaddrinfo&lt;br /&gt;
      [49]  0x080970c4  0x08057aae  R_386_JMP_SLOT            bind&lt;br /&gt;
      [50]  0x080970c8  0x08057abe  R_386_JMP_SLOT            freeaddrinfo&lt;br /&gt;
      [51]  0x080970cc  0x08057ace  R_386_JMP_SLOT            rresvport_af&lt;br /&gt;
      [52]  0x080970d0  0x08057ade  R_386_JMP_SLOT            gai_strerror&lt;br /&gt;
      [53]  0x080970d4  0x08057aee  R_386_JMP_SLOT            getservbyname&lt;br /&gt;
      [54]  0x080970d8  0x08057afe  R_386_JMP_SLOT            ntohs&lt;br /&gt;
      [55]  0x080970dc  0x08057b0e  R_386_JMP_SLOT            getnameinfo&lt;br /&gt;
      [56]  0x080970e0  0x08057b1e  R_386_JMP_SLOT            connect&lt;br /&gt;
      [57]  0x080970e4  0x08057b2e  R_386_JMP_SLOT            memcpy&lt;br /&gt;
      [58]  0x080970e8  0x08057b3e  R_386_JMP_SLOT            sleep&lt;br /&gt;
      [59]  0x080970ec  0x08057b4e  R_386_JMP_SLOT            setsockopt&lt;br /&gt;
      [60]  0x080970f0  0x08057b5e  R_386_JMP_SLOT            read&lt;br /&gt;
      [61]  0x080970f4  0x08057b6e  R_386_JMP_SLOT            write&lt;br /&gt;
      [62]  0x080970f8  0x08057b7e  R_386_JMP_SLOT            nl_langinfo&lt;br /&gt;
      [63]  0x080970fc  0x08057b8e  R_386_JMP_SLOT            strcasecmp&lt;br /&gt;
      [64]  0x08097100  0x08057b9e  R_386_JMP_SLOT            ntohl&lt;br /&gt;
      [65]  0x08097104  0x08057bae  R_386_JMP_SLOT            tolower&lt;br /&gt;
      [66]  0x08097108  0x08057bbe  R_386_JMP_SLOT            BN_new&lt;br /&gt;
      [67]  0x0809710c  0x08057bce  R_386_JMP_SLOT            BN_clear_free&lt;br /&gt;
      [68]  0x08097110  0x08057bde  R_386_JMP_SLOT            BN_num_bits&lt;br /&gt;
      [69]  0x08097114  0x08057bee  R_386_JMP_SLOT            BN_bn2bin&lt;br /&gt;
      [70]  0x08097118  0x08057bfe  R_386_JMP_SLOT            MD5_Init&lt;br /&gt;
      [71]  0x0809711c  0x08057c0e  R_386_JMP_SLOT            MD5_Update&lt;br /&gt;
      [72]  0x08097120  0x08057c1e  R_386_JMP_SLOT            MD5_Final&lt;br /&gt;
      [73]  0x08097124  0x08057c2e  R_386_JMP_SLOT            BN_set_word&lt;br /&gt;
      [74]  0x08097128  0x08057c3e  R_386_JMP_SLOT            BN_lshift&lt;br /&gt;
      [75]  0x0809712c  0x08057c4e  R_386_JMP_SLOT            BN_add_word&lt;br /&gt;
      [76]  0x08097130  0x08057c5e  R_386_JMP_SLOT            BN_cmp&lt;br /&gt;
      [77]  0x08097134  0x08057c6e  R_386_JMP_SLOT            setlocale&lt;br /&gt;
      [78]  0x08097138  0x08057c7e  R_386_JMP_SLOT            gss_release_buffer&lt;br /&gt;
      [79]  0x0809713c  0x08057c8e  R_386_JMP_SLOT            fflush&lt;br /&gt;
      [80]  0x08097140  0x08057c9e  R_386_JMP_SLOT            waitpid&lt;br /&gt;
      [81]  0x08097144  0x08057cae  R_386_JMP_SLOT            execl&lt;br /&gt;
      [82]  0x08097148  0x08057cbe  R_386_JMP_SLOT            strlcat&lt;br /&gt;
      [83]  0x0809714c  0x08057cce  R_386_JMP_SLOT            tcsetattr&lt;br /&gt;
      [84]  0x08097150  0x08057cde  R_386_JMP_SLOT            tcgetattr&lt;br /&gt;
      [85]  0x08097154  0x08057cee  R_386_JMP_SLOT            fcntl&lt;br /&gt;
      [86]  0x08097158  0x08057cfe  R_386_JMP_SLOT            gettimeofday&lt;br /&gt;
      [87]  0x0809715c  0x08057d0e  R_386_JMP_SLOT            select&lt;br /&gt;
      [88]  0x08097160  0x08057d1e  R_386_JMP_SLOT            getpid&lt;br /&gt;
      [89]  0x08097164  0x08057d2e  R_386_JMP_SLOT            gss_indicate_mechs&lt;br /&gt;
      [90]  0x08097168  0x08057d3e  R_386_JMP_SLOT            gss_create_empty_oid_set&lt;br /&gt;
      [91]  0x0809716c  0x08057d4e  R_386_JMP_SLOT            gss_acquire_cred&lt;br /&gt;
      [92]  0x08097170  0x08057d5e  R_386_JMP_SLOT            gss_release_cred&lt;br /&gt;
      [93]  0x08097174  0x08057d6e  R_386_JMP_SLOT            gss_add_oid_set_member&lt;br /&gt;
      [94]  0x08097178  0x08057d7e  R_386_JMP_SLOT            gss_release_oid_set&lt;br /&gt;
      [95]  0x0809717c  0x08057d8e  R_386_JMP_SLOT            gss_init_sec_context&lt;br /&gt;
      [96]  0x08097180  0x08057d9e  R_386_JMP_SLOT            unlink&lt;br /&gt;
      [97]  0x08097184  0x08057dae  R_386_JMP_SLOT            EVP_des_ede3_cbc&lt;br /&gt;
      [98]  0x08097188  0x08057dbe  R_386_JMP_SLOT            fdopen&lt;br /&gt;
      [99]  0x0809718c  0x08057dce  R_386_JMP_SLOT            PEM_write_DSAPrivateKey&lt;br /&gt;
     [100]  0x08097190  0x08057dde  R_386_JMP_SLOT            PEM_write_RSAPrivateKey&lt;br /&gt;
     [101]  0x08097194  0x08057dee  R_386_JMP_SLOT            fclose&lt;br /&gt;
     [102]  0x08097198  0x08057dfe  R_386_JMP_SLOT            lseek64&lt;br /&gt;
     [103]  0x0809719c  0x08057e0e  R_386_JMP_SLOT            PEM_read_PrivateKey&lt;br /&gt;
     [104]  0x080971a0  0x08057e1e  R_386_JMP_SLOT            EVP_PKEY_get1_DSA&lt;br /&gt;
     [105]  0x080971a4  0x08057e2e  R_386_JMP_SLOT            EVP_PKEY_get1_RSA&lt;br /&gt;
     [106]  0x080971a8  0x08057e3e  R_386_JMP_SLOT            EVP_PKEY_free&lt;br /&gt;
     [107]  0x080971ac  0x08057e4e  R_386_JMP_SLOT            ERR_get_error&lt;br /&gt;
     [108]  0x080971b0  0x08057e5e  R_386_JMP_SLOT            fstat64&lt;br /&gt;
     [109]  0x080971b4  0x08057e6e  R_386_JMP_SLOT            fopen64&lt;br /&gt;
     [110]  0x080971b8  0x08057e7e  R_386_JMP_SLOT            BN_bin2bn&lt;br /&gt;
     [111]  0x080971bc  0x08057e8e  R_386_JMP_SLOT            memmove&lt;br /&gt;
     [112]  0x080971c0  0x08057e9e  R_386_JMP_SLOT            getpeername&lt;br /&gt;
     [113]  0x080971c4  0x08057eae  R_386_JMP_SLOT            getsockname&lt;br /&gt;
     [114]  0x080971c8  0x08057ebe  R_386_JMP_SLOT            atoi&lt;br /&gt;
     [115]  0x080971cc  0x08057ece  R_386_JMP_SLOT            inet_ntop&lt;br /&gt;
     [116]  0x080971d0  0x08057ede  R_386_JMP_SLOT            shutdown&lt;br /&gt;
     [117]  0x080971d4  0x08057eee  R_386_JMP_SLOT            memcmp&lt;br /&gt;
     [118]  0x080971d8  0x08057efe  R_386_JMP_SLOT            inet_ntoa&lt;br /&gt;
     [119]  0x080971dc  0x08057f0e  R_386_JMP_SLOT            accept&lt;br /&gt;
     [120]  0x080971e0  0x08057f1e  R_386_JMP_SLOT            getsockopt&lt;br /&gt;
     [121]  0x080971e4  0x08057f2e  R_386_JMP_SLOT            listen&lt;br /&gt;
     [122]  0x080971e8  0x08057f3e  R_386_JMP_SLOT            strrchr&lt;br /&gt;
     [123]  0x080971ec  0x08057f4e  R_386_JMP_SLOT            EVP_CIPHER_CTX_init&lt;br /&gt;
     [124]  0x080971f0  0x08057f5e  R_386_JMP_SLOT            EVP_CipherInit&lt;br /&gt;
     [125]  0x080971f4  0x08057f6e  R_386_JMP_SLOT            EVP_CIPHER_CTX_set_key_length&lt;br /&gt;
     [126]  0x080971f8  0x08057f7e  R_386_JMP_SLOT            EVP_CIPHER_CTX_cleanup&lt;br /&gt;
     [127]  0x080971fc  0x08057f8e  R_386_JMP_SLOT            EVP_des_cbc&lt;br /&gt;
     [128]  0x08097200  0x08057f9e  R_386_JMP_SLOT            EVP_bf_cbc&lt;br /&gt;
     [129]  0x08097204  0x08057fae  R_386_JMP_SLOT            EVP_rc4&lt;br /&gt;
     [130]  0x08097208  0x08057fbe  R_386_JMP_SLOT            AES_encrypt&lt;br /&gt;
     [131]  0x0809720c  0x08057fce  R_386_JMP_SLOT            AES_set_encrypt_key&lt;br /&gt;
     [132]  0x08097210  0x08057fde  R_386_JMP_SLOT            strncpy&lt;br /&gt;
     [133]  0x08097214  0x08057fee  R_386_JMP_SLOT            strncasecmp&lt;br /&gt;
     [134]  0x08097218  0x08057ffe  R_386_JMP_SLOT            textdomain&lt;br /&gt;
     [135]  0x0809721c  0x0805800e  R_386_JMP_SLOT            qsort&lt;br /&gt;
     [136]  0x08097220  0x0805801e  R_386_JMP_SLOT            iconv_open&lt;br /&gt;
     [137]  0x08097224  0x0805802e  R_386_JMP_SLOT            iconv&lt;br /&gt;
     [138]  0x08097228  0x0805803e  R_386_JMP_SLOT            HMAC_Init&lt;br /&gt;
     [139]  0x0809722c  0x0805804e  R_386_JMP_SLOT            HMAC_Update&lt;br /&gt;
     [140]  0x08097230  0x0805805e  R_386_JMP_SLOT            HMAC_Final&lt;br /&gt;
     [141]  0x08097234  0x0805806e  R_386_JMP_SLOT            HMAC_CTX_cleanup&lt;br /&gt;
     [142]  0x08097238  0x0805807e  R_386_JMP_SLOT            DSA_new&lt;br /&gt;
     [143]  0x0809723c  0x0805808e  R_386_JMP_SLOT            RSA_new&lt;br /&gt;
     [144]  0x08097240  0x0805809e  R_386_JMP_SLOT            DSA_free&lt;br /&gt;
     [145]  0x08097244  0x080580ae  R_386_JMP_SLOT            RSA_free&lt;br /&gt;
     [146]  0x08097248  0x080580be  R_386_JMP_SLOT            EVP_md5&lt;br /&gt;
     [147]  0x0809724c  0x080580ce  R_386_JMP_SLOT            EVP_sha1&lt;br /&gt;
     [148]  0x08097250  0x080580de  R_386_JMP_SLOT            EVP_DigestInit&lt;br /&gt;
     [149]  0x08097254  0x080580ee  R_386_JMP_SLOT            EVP_DigestUpdate&lt;br /&gt;
     [150]  0x08097258  0x080580fe  R_386_JMP_SLOT            EVP_DigestFinal&lt;br /&gt;
     [151]  0x0809725c  0x0805810e  R_386_JMP_SLOT            BN_dec2bn&lt;br /&gt;
     [152]  0x08097260  0x0805811e  R_386_JMP_SLOT            BN_bn2dec&lt;br /&gt;
     [153]  0x08097264  0x0805812e  R_386_JMP_SLOT            CRYPTO_free&lt;br /&gt;
     [154]  0x08097268  0x0805813e  R_386_JMP_SLOT            RSA_generate_key&lt;br /&gt;
     [155]  0x0809726c  0x0805814e  R_386_JMP_SLOT            DSA_generate_parameters&lt;br /&gt;
     [156]  0x08097270  0x0805815e  R_386_JMP_SLOT            DSA_generate_key&lt;br /&gt;
     [157]  0x08097274  0x0805816e  R_386_JMP_SLOT            BN_copy&lt;br /&gt;
     [158]  0x08097278  0x0805817e  R_386_JMP_SLOT            BN_dup&lt;br /&gt;
     [159]  0x0809727c  0x0805818e  R_386_JMP_SLOT            DH_size&lt;br /&gt;
     [160]  0x08097280  0x0805819e  R_386_JMP_SLOT            DH_compute_key&lt;br /&gt;
     [161]  0x08097284  0x080581ae  R_386_JMP_SLOT            DH_free&lt;br /&gt;
     [162]  0x08097288  0x080581be  R_386_JMP_SLOT            gss_verify_mic&lt;br /&gt;
     [163]  0x0809728c  0x080581ce  R_386_JMP_SLOT            vsnprintf&lt;br /&gt;
     [164]  0x08097290  0x080581de  R_386_JMP_SLOT            openlog&lt;br /&gt;
     [165]  0x08097294  0x080581ee  R_386_JMP_SLOT            syslog&lt;br /&gt;
     [166]  0x08097298  0x080581fe  R_386_JMP_SLOT            closelog&lt;br /&gt;
     [167]  0x0809729c  0x0805820e  R_386_JMP_SLOT            strpbrk&lt;br /&gt;
     [168]  0x080972a0  0x0805821e  R_386_JMP_SLOT            strspn&lt;br /&gt;
     [169]  0x080972a4  0x0805822e  R_386_JMP_SLOT            strtol&lt;br /&gt;
     [170]  0x080972a8  0x0805823e  R_386_JMP_SLOT            sigaction&lt;br /&gt;
     [171]  0x080972ac  0x0805824e  R_386_JMP_SLOT            sigemptyset&lt;br /&gt;
     [172]  0x080972b0  0x0805825e  R_386_JMP_SLOT            RAND_status&lt;br /&gt;
     [173]  0x080972b4  0x0805826e  R_386_JMP_SLOT            strcspn&lt;br /&gt;
     [174]  0x080972b8  0x0805827e  R_386_JMP_SLOT            execlp&lt;br /&gt;
     [175]  0x080972bc  0x0805828e  R_386_JMP_SLOT            RSA_public_encrypt&lt;br /&gt;
     [176]  0x080972c0  0x0805829e  R_386_JMP_SLOT            RSA_private_decrypt&lt;br /&gt;
     [177]  0x080972c4  0x080582ae  R_386_JMP_SLOT            BN_CTX_new&lt;br /&gt;
     [178]  0x080972c8  0x080582be  R_386_JMP_SLOT            BN_value_one&lt;br /&gt;
     [179]  0x080972cc  0x080582ce  R_386_JMP_SLOT            BN_sub&lt;br /&gt;
     [180]  0x080972d0  0x080582de  R_386_JMP_SLOT            BN_div&lt;br /&gt;
     [181]  0x080972d4  0x080582ee  R_386_JMP_SLOT            BN_CTX_free&lt;br /&gt;
     [182]  0x080972d8  0x080582fe  R_386_JMP_SLOT            DSA_do_sign&lt;br /&gt;
     [183]  0x080972dc  0x0805830e  R_386_JMP_SLOT            DSA_SIG_free&lt;br /&gt;
     [184]  0x080972e0  0x0805831e  R_386_JMP_SLOT            DSA_SIG_new&lt;br /&gt;
     [185]  0x080972e4  0x0805832e  R_386_JMP_SLOT            DSA_do_verify&lt;br /&gt;
     [186]  0x080972e8  0x0805833e  R_386_JMP_SLOT            gss_test_oid_set_member&lt;br /&gt;
     [187]  0x080972ec  0x0805834e  R_386_JMP_SLOT            __gss_oid_to_mech&lt;br /&gt;
     [188]  0x080972f0  0x0805835e  R_386_JMP_SLOT            gss_oid_to_str&lt;br /&gt;
     [189]  0x080972f4  0x0805836e  R_386_JMP_SLOT            gss_display_status&lt;br /&gt;
     [190]  0x080972f8  0x0805837e  R_386_JMP_SLOT            gss_release_oid&lt;br /&gt;
     [191]  0x080972fc  0x0805838e  R_386_JMP_SLOT            gss_delete_sec_context&lt;br /&gt;
     [192]  0x08097300  0x0805839e  R_386_JMP_SLOT            gss_release_name&lt;br /&gt;
     [193]  0x08097304  0x080583ae  R_386_JMP_SLOT            gss_import_name&lt;br /&gt;
     [194]  0x08097308  0x080583be  R_386_JMP_SLOT            gss_get_mic&lt;br /&gt;
     [195]  0x0809730c  0x080583ce  R_386_JMP_SLOT            OBJ_nid2sn&lt;br /&gt;
     [196]  0x08097310  0x080583de  R_386_JMP_SLOT            EVP_get_digestbyname&lt;br /&gt;
     [197]  0x08097314  0x080583ee  R_386_JMP_SLOT            RSA_size&lt;br /&gt;
     [198]  0x08097318  0x080583fe  R_386_JMP_SLOT            RSA_sign&lt;br /&gt;
     [199]  0x0809731c  0x0805840e  R_386_JMP_SLOT            ERR_error_string&lt;br /&gt;
     [200]  0x08097320  0x0805841e  R_386_JMP_SLOT            RSA_public_decrypt&lt;br /&gt;
     [201]  0x08097324  0x0805842e  R_386_JMP_SLOT            getpwnam&lt;br /&gt;
     [202]  0x08097328  0x0805843e  R_386_JMP_SLOT            cfgetospeed&lt;br /&gt;
     [203]  0x0809732c  0x0805844e  R_386_JMP_SLOT            cfgetispeed&lt;br /&gt;
     [204]  0x08097330  0x0805845e  R_386_JMP_SLOT            cfsetospeed&lt;br /&gt;
     [205]  0x08097334  0x0805846e  R_386_JMP_SLOT            cfsetispeed&lt;br /&gt;
     [206]  0x08097338  0x0805847e  R_386_JMP_SLOT            malloc&lt;br /&gt;
     [207]  0x0809733c  0x0805848e  R_386_JMP_SLOT            realloc&lt;br /&gt;
     [208]  0x08097340  0x0805849e  R_386_JMP_SLOT            free&lt;br /&gt;
     [209]  0x08097344  0x080584ae  R_386_JMP_SLOT            strcat&lt;br /&gt;
     [210]  0x08097348  0x080584be  R_386_JMP_SLOT            deflateEnd&lt;br /&gt;
     [211]  0x0809734c  0x080584ce  R_386_JMP_SLOT            deflateInit_&lt;br /&gt;
     [212]  0x08097350  0x080584de  R_386_JMP_SLOT            inflateEnd&lt;br /&gt;
     [213]  0x08097354  0x080584ee  R_386_JMP_SLOT            inflateInit_&lt;br /&gt;
     [214]  0x08097358  0x080584fe  R_386_JMP_SLOT            deflate&lt;br /&gt;
     [215]  0x0809735c  0x0805850e  R_386_JMP_SLOT            inflate&lt;br /&gt;
     [216]  0x08097360  0x0805851e  R_386_JMP_SLOT            BN_hex2bn&lt;br /&gt;
     [217]  0x08097364  0x0805852e  R_386_JMP_SLOT            rewind&lt;br /&gt;
     [218]  0x08097368  0x0805853e  R_386_JMP_SLOT            BN_is_bit_set&lt;br /&gt;
     [219]  0x0809736c  0x0805854e  R_386_JMP_SLOT            BN_rand&lt;br /&gt;
     [220]  0x08097370  0x0805855e  R_386_JMP_SLOT            DH_generate_key&lt;br /&gt;
     [221]  0x08097374  0x0805856e  R_386_JMP_SLOT            DH_new&lt;br /&gt;
     [222]  0x08097378  0x0805857e  R_386_JMP_SLOT            RC4&lt;br /&gt;
     [223]  0x0809737c  0x0805858e  R_386_JMP_SLOT            RAND_bytes&lt;br /&gt;
     [224]  0x08097380  0x0805859e  R_386_JMP_SLOT            RC4_set_key&lt;br /&gt;
     [225]  0x08097384  0x080585ae  R_386_JMP_SLOT            abort&lt;br /&gt;
     [226]  0x08097388  0x080585be  R_386_JMP_SLOT            _exit&lt;br /&gt;
     [227]  0x0809738c  0x080585ce  R_386_JMP_SLOT            setsid&lt;br /&gt;
     [228]  0x08097390  0x080585de  R_386_JMP_SLOT            chdir&lt;br /&gt;
     [229]  0x08097394  0x080585ee  R_386_JMP_SLOT            toupper&lt;br /&gt;
     [230]  0x08097398  0x080585fe  R_386_JMP_SLOT            _get_exit_frame_monitor&lt;br /&gt;
     [231]  0x0809739c  0x0805860e  R_386_JMP_SLOT            EVP_enc_null&lt;br /&gt;
     [232]  0x080973a0  0x0805861e  R_386_JMP_SLOT            EVP_aes_128_cbc&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;strings&#039;&#039;&#039; display everything else which might be interesting&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ strings  /usr/bin/ssh | uniq&lt;br /&gt;
ÿÿÿÿ&lt;br /&gt;
Ossh_gssapi_init_ctx&lt;br /&gt;
ssh_gssapi_client_kex_hook&lt;br /&gt;
SSH PRIVATE KEY FILE FORMAT 1.1&lt;br /&gt;
cipher_set_keyiv&lt;br /&gt;
cipher_get_keyiv&lt;br /&gt;
bcdfghklmnprstvzxaeiouy&lt;br /&gt;
ssh_gssapi_import_name&lt;br /&gt;
ssh_gssapi_modify_kex&lt;br /&gt;
=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&lt;br /&gt;
DISPLAY&lt;br /&gt;
LC_TIME&lt;br /&gt;
DISPLAY&lt;br /&gt;
/usr/bin/rsh&lt;br /&gt;
Using rsh.  WARNING: Connection will not be encrypted.&lt;br /&gt;
identity file %s type %d&lt;br /&gt;
daemon() failed: %.200s&lt;br /&gt;
ssh_session2_open: channel_new: %d&lt;br /&gt;
client-session&lt;br /&gt;
dup() in/out/err failed&lt;br /&gt;
/dev/null&lt;br /&gt;
Sending command: %.*s&lt;br /&gt;
Sending subsystem: %.*s&lt;br /&gt;
Requesting authentication agent forwarding.&lt;br /&gt;
Requesting X11 forwarding with authentication spoofing.&lt;br /&gt;
TERM&lt;br /&gt;
ssh_session2_setup: id %d&lt;br /&gt;
LC_ALL&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_ALL&lt;br /&gt;
LC_MESSAGES&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_MESSAGES&lt;br /&gt;
LC_MONETARY&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_MONETARY&lt;br /&gt;
LC_NUMERIC&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_NUMERIC&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_COLLATE&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_COLLATE&lt;br /&gt;
LC_CTYPE&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_CTYPE&lt;br /&gt;
LANG&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LANG&lt;br /&gt;
Warning: remote port forwarding failed for listen port %d&lt;br /&gt;
remote forward %s for: listen %d, connect %s:%d&lt;br /&gt;
client_global_request_reply: too many replies %d &amp;gt; %d&lt;br /&gt;
Request for subsystem &#039;%.*s&#039; failed on channel %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Requesting shell.&lt;br /&gt;
Sending command: %.*s&lt;br /&gt;
daemon() failed: %.200s&lt;br /&gt;
Warning: Remote host denied authentication agent forwarding.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Requesting authentication agent forwarding.&lt;br /&gt;
Protocol error waiting for X11 forwarding&lt;br /&gt;
Warning: Remote host denied X11 forwarding.&lt;br /&gt;
Requesting X11 forwarding with authentication spoofing.&lt;br /&gt;
Protocol error waiting for pty request response.&lt;br /&gt;
Warning: Remote host failed or refused to allocate a pseudo tty.&lt;br /&gt;
TERM&lt;br /&gt;
Requesting pty.&lt;br /&gt;
Protocol error waiting for compression response.&lt;br /&gt;
Warning: Remote host refused compression.&lt;br /&gt;
Compression level must be from 1 (fast) to 9 (slow, best).&lt;br /&gt;
Requesting compression at level %d.&lt;br /&gt;
Connections to remote port %d forwarded to local address %.200s:%d&lt;br /&gt;
Could not request local forwarding.&lt;br /&gt;
Connections to local port %d forwarded to remote address %.200s:%d&lt;br /&gt;
%02x&lt;br /&gt;
MIT-MAGIC-COOKIE-1&lt;br /&gt;
Warning: No xauth data; using fake authentication data for X11 forwarding.&lt;br /&gt;
%*s %511s %511s&lt;br /&gt;
x11_get_proto: %s&lt;br /&gt;
%s list %.200s 2&amp;gt;/dev/null&lt;br /&gt;
%s list unix:%s 2&amp;gt;/dev/null&lt;br /&gt;
localhost:&lt;br /&gt;
x11_get_proto: DISPLAY not set&lt;br /&gt;
No xauth program.&lt;br /&gt;
clear hostkey %d&lt;br /&gt;
Could not create directory &#039;%.200s&#039;.&lt;br /&gt;
%.100s%s%.100s&lt;br /&gt;
/etc/ssh/ssh_host_rsa_key&lt;br /&gt;
/etc/ssh/ssh_host_dsa_key&lt;br /&gt;
/etc/ssh/ssh_host_rsa_key&lt;br /&gt;
/etc/ssh/ssh_host_dsa_key&lt;br /&gt;
/etc/ssh/ssh_host_key&lt;br /&gt;
rsh_connect returned&lt;br /&gt;
Rhosts Authentication disabled, originating port will not be trusted.&lt;br /&gt;
/etc/ssh/ssh_config&lt;br /&gt;
%.100s/%.100s&lt;br /&gt;
Can&#039;t open user config file %.100s: %.100s&lt;br /&gt;
Pseudo-terminal will not be allocated because stdin is not a terminal.&lt;br /&gt;
Cannot fork into background without a command to execute.&lt;br /&gt;
You must specify a subsystem to invoke.&lt;br /&gt;
1246ab:c:e:fgi:kl:m:no:p:qstvxACD:F:I:L:NPR:TVX&lt;br /&gt;
command-line&lt;br /&gt;
socks4&lt;br /&gt;
Bad dynamic port &#039;%s&#039;&lt;br /&gt;
Bad forwarding port(s) &#039;%s&#039;&lt;br /&gt;
Bad forwarding specification &#039;%s&#039;&lt;br /&gt;
%5[0-9]/%255[^/]/%5[0-9]&lt;br /&gt;
%5[0-9]:%255[^:]:%5[0-9]&lt;br /&gt;
Bad port &#039;%s&#039;&lt;br /&gt;
Unknown mac type &#039;%s&#039;&lt;br /&gt;
Unknown cipher type &#039;%s&#039;&lt;br /&gt;
Bad escape character &#039;%s&#039;.&lt;br /&gt;
none&lt;br /&gt;
%s, SSH protocols %d.%d/%d.%d, OpenSSL 0x%8.8lx&lt;br /&gt;
Too high debugging level.&lt;br /&gt;
no support for smartcards.&lt;br /&gt;
Too many identity files specified (max %d)&lt;br /&gt;
Warning: Identity file %s does not exist.&lt;br /&gt;
Warning: Option -P has been deprecated&lt;br /&gt;
1246ab:c:e:fgi:kl:m:no:p:qstvxACD:F:I:L:NPR:TVX&lt;br /&gt;
You don&#039;t exist, go away!&lt;br /&gt;
setrlimit failed: %.100s&lt;br /&gt;
Usage: %s [options] host [command]&lt;br /&gt;
Options:&lt;br /&gt;
  -l user     Log in using this user name.&lt;br /&gt;
  -n          Redirect input from /dev/null.&lt;br /&gt;
  -F config   Config file (default: ~/%s).&lt;br /&gt;
  -A          Enable authentication agent forwarding.&lt;br /&gt;
  -a          Disable authentication agent forwarding (default).&lt;br /&gt;
  -X          Enable X11 connection forwarding.&lt;br /&gt;
  -x          Disable X11 connection forwarding (default).&lt;br /&gt;
  -i file     Identity for public key authentication (default: ~/.ssh/identity)&lt;br /&gt;
  -t          Tty; allocate a tty even if command is given.&lt;br /&gt;
  -T          Do not allocate a tty.&lt;br /&gt;
  -v          Verbose; display verbose debugging messages.&lt;br /&gt;
              Multiple -v increases verbosity.&lt;br /&gt;
  -V          Display version number only.&lt;br /&gt;
  -q          Quiet; don&#039;t display any warning messages.&lt;br /&gt;
  -f          Fork into background after authentication.&lt;br /&gt;
  -e char     Set escape character; ``none&#039;&#039; = disable (default: ~).&lt;br /&gt;
  -c cipher   Select encryption algorithm&lt;br /&gt;
  -m macs     Specify MAC algorithms for protocol version 2.&lt;br /&gt;
  -p port     Connect to this port.  Server must be on the same port.&lt;br /&gt;
  -L listen-port:host:port   Forward local port to remote address&lt;br /&gt;
  -R listen-port:host:port   Forward remote port to local address&lt;br /&gt;
              These cause %s to listen for connections on a port, and&lt;br /&gt;
              forward them to the other side by connecting to host:port.&lt;br /&gt;
  -D port     Enable dynamic application-level port forwarding.&lt;br /&gt;
  -C          Enable compression.&lt;br /&gt;
  -N          Do not execute a shell or command.&lt;br /&gt;
  -g          Allow remote hosts to connect to forwarded ports.&lt;br /&gt;
  -1          Force protocol version 1.&lt;br /&gt;
  -2          Force protocol version 2.&lt;br /&gt;
  -4          Use IPv4 only.&lt;br /&gt;
  -6          Use IPv6 only.&lt;br /&gt;
  -o &#039;option&#039; Process the option as if it was read from a configuration file.&lt;br /&gt;
  -s          Invoke command (mandatory) as SSH2 subsystem.&lt;br /&gt;
  -b addr     Local IP address.&lt;br /&gt;
@(#)$OpenBSD: ssh.c,v 1.186 2002/09/19 01:58:18 djm Exp $&lt;br /&gt;
no key of type %d for host %s&lt;br /&gt;
WARNING: %s key found for host %s&lt;br /&gt;
in %s:%d&lt;br /&gt;
%s key fingerprint %s.&lt;br /&gt;
Are you sure you want to continue connecting (%s/%s)&lt;br /&gt;
Exiting, you have requested strict checking.&lt;br /&gt;
Matching host key in %s:%d&lt;br /&gt;
Warning: the %s host key for &#039;%.200s&#039; differs from the key for the IP address &#039;%.128s&#039;&lt;br /&gt;
Offending key for IP in %s:%d&lt;br /&gt;
internal error&lt;br /&gt;
Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
X11 forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Agent forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
%s host key for %.200s has changed and you have requested strict checking.&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
It is also possible that the %s host key has just been changed.&lt;br /&gt;
The fingerprint for the %s key sent by the remote host is&lt;br /&gt;
Please contact your system administrator.&lt;br /&gt;
Add correct host key in %.100s to get rid of this message.&lt;br /&gt;
Offending key in %s:%d&lt;br /&gt;
Offending key for IP in %s:%d&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
The %s host key for %s has changed,&lt;br /&gt;
and the key for the according IP address %s&lt;br /&gt;
%s. This could either mean that&lt;br /&gt;
DNS SPOOFING is happening or the IP address for the host&lt;br /&gt;
and its host key have changed at the same time.&lt;br /&gt;
Warning: The host key for host %s has changed; please update your known hosts file(s) (%s:%d)&lt;br /&gt;
Warning: Permanently added &#039;%.200s&#039; (%s) to the list of known hosts.&lt;br /&gt;
Failed to add the host to the list of known hosts (%.500s).&lt;br /&gt;
%s,%s&lt;br /&gt;
but keys of different type are already known for this host.&lt;br /&gt;
The authenticity of host &#039;%.200s (%s)&#039; can&#039;t be established%s&lt;br /&gt;
%s key fingerprint is %s.&lt;br /&gt;
Are you sure you want to continue connecting (%s/%s)? &lt;br /&gt;
No %s host key is known for %.200s and you have requested strict checking.&lt;br /&gt;
Warning: Permanently added the %s host key for IP address &#039;%.128s&#039; to the list of known hosts.&lt;br /&gt;
Failed to add the %s host key for IP address &#039;%.128s&#039; to the list of known hosts (%.30s).&lt;br /&gt;
%s host key for IP address &#039;%.128s&#039; not in list of known hosts.&lt;br /&gt;
Found key in %s:%d&lt;br /&gt;
Host &#039;%.200s&#039; is known and matches the %s host key.&lt;br /&gt;
Host &#039;%.200s&#039; is known and matches the advertised %s hostkey.&lt;br /&gt;
using hostkeyalias: %s&lt;br /&gt;
&amp;lt;no hostip for proxy command&amp;gt;&lt;br /&gt;
check_host_key: getnameinfo failed&lt;br /&gt;
Forcing accepting of host key for loopback/localhost.&lt;br /&gt;
Please type &#039;%s&#039; or &#039;%s&#039;: &lt;br /&gt;
Local version string %.100s&lt;br /&gt;
write: %.100s&lt;br /&gt;
SSH-%d.%d-%.100s&lt;br /&gt;
Protocol major versions differ: %d vs. %d&lt;br /&gt;
Agent forwarding disabled for protocol 1.3&lt;br /&gt;
Remote machine has too old SSH software version.&lt;br /&gt;
Remote protocol version %d.%d, remote software version %.100s&lt;br /&gt;
Bad remote protocol version identification: &#039;%.100s&#039;&lt;br /&gt;
SSH-%d.%d-%[^&lt;br /&gt;
ssh_exchange_identification: %s&lt;br /&gt;
SSH-&lt;br /&gt;
ssh_exchange_identification: Connection closed by remote host&lt;br /&gt;
ssh_exchange_identification: read: %.100s&lt;br /&gt;
setsockopt SO_KEEPALIVE: %.100s&lt;br /&gt;
Connection established.&lt;br /&gt;
ssh: connect to host %s port %s: %s&lt;br /&gt;
connect to address %s port %s: %s&lt;br /&gt;
Connecting to %.200s [%.100s] port %s.&lt;br /&gt;
ssh_connect: getnameinfo failed&lt;br /&gt;
Trying again...&lt;br /&gt;
%s: %.100s: %s&lt;br /&gt;
ssh_connect: needpriv %d&lt;br /&gt;
bind: %s: %s&lt;br /&gt;
getaddrinfo: %s: %s&lt;br /&gt;
socket: %.100s&lt;br /&gt;
Allocated local port %d.&lt;br /&gt;
rresvport: af=%d %.100s&lt;br /&gt;
fork failed: %.100s&lt;br /&gt;
dup2 stdout&lt;br /&gt;
dup2 stdin&lt;br /&gt;
Executing proxy command: %.500s&lt;br /&gt;
Could not create pipes to communicate with the proxy: %.100s&lt;br /&gt;
exec &lt;br /&gt;
exec&lt;br /&gt;
@(#)$OpenBSD: sshconnect.c,v 1.135 2002/09/19 01:58:18 djm Exp $&lt;br /&gt;
Permission denied.&lt;br /&gt;
%.30s@%.128s&#039;s password: &lt;br /&gt;
Protocol error: got %d in response to rhosts auth&lt;br /&gt;
Trying rhosts authentication.&lt;br /&gt;
Protocol error: got %d in response to SSH_CMSG_USER&lt;br /&gt;
ssh_userauth1: server supports no auth methods&lt;br /&gt;
Received encrypted confirmation.&lt;br /&gt;
Sent encrypted session key.&lt;br /&gt;
Encryption type: %.100s&lt;br /&gt;
Selected cipher type %.100s not supported by server.&lt;br /&gt;
No valid SSH1 cipher, using %.100s instead.&lt;br /&gt;
respond_to_rsa_challenge: server_key %d &amp;lt; host_key %d + SSH_KEY_BITS_RESERVED %d&lt;br /&gt;
respond_to_rsa_challenge: host_key %d &amp;lt; server_key %d + SSH_KEY_BITS_RESERVED %d&lt;br /&gt;
respond_to_rsa_challenge: BN_new failed&lt;br /&gt;
Host key verification failed.&lt;br /&gt;
Received server public key (%d bits) and host key (%d bits).&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Warning: This may be due to an old implementation of ssh.&lt;br /&gt;
Warning: Server lies about size of server host key: actual size is %d bits vs. announced %d.&lt;br /&gt;
Warning: This may be due to an old implementation of ssh.&lt;br /&gt;
Warning: Server lies about size of server public key: actual size is %d bits vs. announced %d.&lt;br /&gt;
Waiting for server public key.&lt;br /&gt;
Protocol error: got %d in response to passwd auth&lt;br /&gt;
Permission denied, please try again.&lt;br /&gt;
WARNING: Encryption is disabled! Password will be transmitted in clear text.&lt;br /&gt;
Doing password authentication.&lt;br /&gt;
Protocol error: got %d in response to SSH_CMSG_AUTH_TIS_RESPONSE&lt;br /&gt;
WARNING: Encryption is disabled! Response will be transmitted in clear text.&lt;br /&gt;
Permission denied, please try again.&lt;br /&gt;
Response: &lt;br /&gt;
%s%s&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
No challenge.&lt;br /&gt;
Protocol error: got %d in response to SSH_CMSG_AUTH_TIS&lt;br /&gt;
Doing challenge response authentication.&lt;br /&gt;
Rhosts or /etc/hosts.equiv with RSA host authentication refused.&lt;br /&gt;
Protocol error waiting RSA auth response: %d&lt;br /&gt;
Rhosts or /etc/hosts.equiv with RSA host authentication accepted by server.&lt;br /&gt;
Received RSA challenge for host key from server.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
try_rhosts_rsa_authentication: BN_new failed&lt;br /&gt;
Protocol error during RSA authentication: %d&lt;br /&gt;
Server refused our rhosts authentication or host key.&lt;br /&gt;
Trying rhosts or /etc/hosts.equiv with RSA host authentication.&lt;br /&gt;
RSA authentication refused.&lt;br /&gt;
Protocol error waiting RSA auth response: %d&lt;br /&gt;
RSA authentication accepted by server.&lt;br /&gt;
Bad passphrase.&lt;br /&gt;
bad passphrase given, try again...&lt;br /&gt;
no passphrase given, try next key&lt;br /&gt;
Enter passphrase for RSA key &#039;%.100s&#039;: &lt;br /&gt;
Received RSA challenge from server.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
try_rsa_authentication: BN_new failed&lt;br /&gt;
Protocol error during RSA authentication: %d&lt;br /&gt;
Server refused our key.&lt;br /&gt;
Trying RSA authentication with key &#039;%.100s&#039;&lt;br /&gt;
Sending response to host key RSA challenge.&lt;br /&gt;
respond_to_rsa_challenge: bad challenge length %d&lt;br /&gt;
respond_to_rsa_challenge: rsa_private_decrypt failed&lt;br /&gt;
RSA authentication using agent refused.&lt;br /&gt;
Protocol error waiting RSA auth response: %d&lt;br /&gt;
RSA authentication accepted by server.&lt;br /&gt;
Sending response to RSA challenge.&lt;br /&gt;
Authentication agent failed to decrypt challenge.&lt;br /&gt;
Received RSA challenge from server.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Protocol error during RSA authentication: %d&lt;br /&gt;
Server refused our key.&lt;br /&gt;
Trying RSA authentication via agent with &#039;%.100s&#039;&lt;br /&gt;
try_agent_authentication: BN_new failed&lt;br /&gt;
@(#)$OpenBSD: sshconnect1.c,v 1.52 2002/08/08 13:50:23 aaron Exp $&lt;br /&gt;
Next authentication method: %s&lt;br /&gt;
authmethod_is_enabled %s&lt;br /&gt;
remaining preferred: %s&lt;br /&gt;
authmethod_lookup %s&lt;br /&gt;
No more authentication methods to try.&lt;br /&gt;
preferred %s&lt;br /&gt;
start over, passed a different list %s&lt;br /&gt;
Unrecognized authentication method name: %s&lt;br /&gt;
key_sign failed&lt;br /&gt;
userauth_hostbased: chost %s, pkalg %s&lt;br /&gt;
userauth_hostbased: cannot get local ipaddr/name&lt;br /&gt;
No more client hostkeys for hostbased authentication&lt;br /&gt;
ssh_keysign: bad version&lt;br /&gt;
ssh_keysign: no reply&lt;br /&gt;
ssh_keysign: exec(%s): %s&lt;br /&gt;
/usr/lib/ssh/ssh-keysign&lt;br /&gt;
ssh_keysign: dup2: %s&lt;br /&gt;
ssh_keysign: fork: %s&lt;br /&gt;
ssh_keysign: pipe: %s&lt;br /&gt;
ssh_keysign: fflush: %s&lt;br /&gt;
ssh_keysign: no installed: %s&lt;br /&gt;
/usr/lib/ssh/ssh-keysign&lt;br /&gt;
ssh_keysign called&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
input_userauth_info_req: num_prompts %d&lt;br /&gt;
input_userauth_info_req: no authentication context&lt;br /&gt;
input_userauth_info_req&lt;br /&gt;
userauth_kbdint&lt;br /&gt;
userauth_kbdint: disable: no info_req_seen&lt;br /&gt;
Trying public key: %s&lt;br /&gt;
Trying private key: %s&lt;br /&gt;
userauth_pubkey_agent: no message sent&lt;br /&gt;
Offering agent key: %s&lt;br /&gt;
userauth_pubkey_agent: no more keys&lt;br /&gt;
userauth_pubkey_agent: no keys at all&lt;br /&gt;
bad passphrase given, try again...&lt;br /&gt;
no passphrase given, try next key&lt;br /&gt;
Enter passphrase for key &#039;%.100s&#039;: &lt;br /&gt;
no such identity: %s&lt;br /&gt;
send_pubkey_test: cannot handle key&lt;br /&gt;
send_pubkey_test&lt;br /&gt;
userauth_pubkey: internal error&lt;br /&gt;
sign_and_send_pubkey: cannot handle key&lt;br /&gt;
sign_and_send_pubkey&lt;br /&gt;
clear_auth_state: key_free %p&lt;br /&gt;
Mismatch; try again, EOF to quit.&lt;br /&gt;
Retype %.30s@%.128s&#039;s new password: &lt;br /&gt;
Enter %.30s@%.128s&#039;s new password: &lt;br /&gt;
Enter %.30s@%.128s&#039;s old password: &lt;br /&gt;
input_userauth_passwd_changereq: no authentication context&lt;br /&gt;
input_userauth_passwd_changereq&lt;br /&gt;
%.30s@%.128s&#039;s password: &lt;br /&gt;
Permission denied, please try again.&lt;br /&gt;
gssapi&lt;br /&gt;
Authentication with deprecated &amp;quot;external-keyx&amp;quot; method not supported&lt;br /&gt;
external-keyx&lt;br /&gt;
GSS_GetMIC() failed! - Abandoning GSSAPI userauth&lt;br /&gt;
Authenticating with GSS-API context from key exchange (w/ MIC)&lt;br /&gt;
gssapi-keyex&lt;br /&gt;
input_gssapi_response: no authentication context&lt;br /&gt;
Server GSSAPI Error:&lt;br /&gt;
%s (%d, %d)&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Server sent a GSS-API error token during GSS userauth -- %s&lt;br /&gt;
input_gssapi_response: no authentication context&lt;br /&gt;
GSS_GetMIC() failed! - Abandoning GSSAPI userauth&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
input_gssapi_response: no authentication context&lt;br /&gt;
Trying to start again&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Server returned different OID (%s) than expected (%s)&lt;br /&gt;
Badly encoded mechanism OID received&lt;br /&gt;
Server returned different OID (%s) than expected (%s)&lt;br /&gt;
input_gssapi_response: no authentication context&lt;br /&gt;
key != last_key&lt;br /&gt;
input_userauth_pk_ok: fp %s&lt;br /&gt;
input_userauth_pk_ok: type mismatch for decoded key (received %d, expected %d)&lt;br /&gt;
no key from blob. pkalg %s&lt;br /&gt;
unknown pkalg %s&lt;br /&gt;
no last key or no sign cb&lt;br /&gt;
Server accepts key: pkalg %s blen %u lastkey %p hint %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
input_userauth_pk_ok: SSH_BUG_PKOK&lt;br /&gt;
input_userauth_pk_ok: no authentication context&lt;br /&gt;
Authentications that can continue: %s&lt;br /&gt;
Authenticated with partial success.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
input_userauth_failure: no authentication context&lt;br /&gt;
input_userauth_success: no authentication context&lt;br /&gt;
input_userauth_banner&lt;br /&gt;
input_userauth_error: bad message during authentication: type %d&lt;br /&gt;
we did not send a packet, disable method&lt;br /&gt;
we sent a %s packet, wait for reply&lt;br /&gt;
Permission denied (%s).&lt;br /&gt;
Authentication succeeded (%s)&lt;br /&gt;
ssh_userauth2: internal error: cannot send userauth none request&lt;br /&gt;
none&lt;br /&gt;
ssh-connection&lt;br /&gt;
got SSH2_MSG_SERVICE_ACCEPT&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
buggy server: service_accept w/o service&lt;br /&gt;
service_accept: %s&lt;br /&gt;
Server denied authentication request: %d&lt;br /&gt;
send SSH2_MSG_SERVICE_REQUEST&lt;br /&gt;
ssh-userauth&lt;br /&gt;
done: ssh_kex2.&lt;br /&gt;
No valid ciphers for protocol version 2 given, using defaults.&lt;br /&gt;
GSS-API authenticated host key addition to known_hosts file failed&lt;br /&gt;
Host key verification failed.&lt;br /&gt;
@(#)$OpenBSD: sshconnect2.c,v 1.107 2002/07/01 19:48:46 markus Exp $&lt;br /&gt;
tcsetattr&lt;br /&gt;
tcgetattr&lt;br /&gt;
tcsetattr&lt;br /&gt;
@(#)$OpenBSD: sshtty.c,v 1.3 2002/03/04 17:27:39 stevesk Exp $&lt;br /&gt;
ssh&amp;gt; &lt;br /&gt;
client_input_global_request: rtype %s want_reply %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
exit-status&lt;br /&gt;
client_input_channel_req: channel %d: unknown channel&lt;br /&gt;
client_input_channel_req: channel %d: wrong channel: %d&lt;br /&gt;
client_input_channel_req: no channel %d&lt;br /&gt;
client_input_channel_req: channel %d rtype %s reply %d&lt;br /&gt;
open failed&lt;br /&gt;
failure %s&lt;br /&gt;
confirm %s&lt;br /&gt;
auth-agent@openssh.com&lt;br /&gt;
forwarded-tcpip&lt;br /&gt;
client_input_channel_open: ctype %s rchan %d win %d max %d&lt;br /&gt;
authentication agent connection&lt;br /&gt;
Warning: this is probably a break in attempt by a malicious server.&lt;br /&gt;
Warning: ssh server tried agent forwarding.&lt;br /&gt;
client_request_x11: request from %s %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
buggy server: x11 request w/o originator_port&lt;br /&gt;
Warning: this is probably a break in attempt by a malicious server.&lt;br /&gt;
Warning: ssh server tried X11 forwarding.&lt;br /&gt;
client_request_forwarded_tcpip: listen %s port %d, originator %s port %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Exit status %d&lt;br /&gt;
Bytes per second: stdin %.1f, stdout %.1f, stderr %.1f&lt;br /&gt;
Transferred: stdin %lu, stdout %lu, stderr %lu bytes in %.1f seconds&lt;br /&gt;
Write failed flushing stderr buffer.&lt;br /&gt;
Write failed flushing stdout buffer.&lt;br /&gt;
Connection to %.64s closed.&lt;br /&gt;
Killed by signal %d.&lt;br /&gt;
user requests rekeying&lt;br /&gt;
rekeying in progress&lt;br /&gt;
Entering interactive session.&lt;br /&gt;
client_channel_closed: id %d != session_ident %d&lt;br /&gt;
write stdout: %.50s&lt;br /&gt;
read: %.100s&lt;br /&gt;
Supported escape sequences:&lt;br /&gt;
%c.  - terminate connection&lt;br /&gt;
%cB  - send break&lt;br /&gt;
%cC  - open a command line&lt;br /&gt;
%cR  - Request rekey (SSH protocol 2 only)&lt;br /&gt;
%c^Z - suspend ssh&lt;br /&gt;
%c#  - list forwarded connections&lt;br /&gt;
%c&amp;amp;  - background ssh (when waiting for connections to terminate)&lt;br /&gt;
%c?  - this message&lt;br /&gt;
%c%c  - send the escape character by typing it twice&lt;br /&gt;
(Note that escapes are only recognized immediately after newline.)&lt;br /&gt;
fork: %.100s&lt;br /&gt;
%c&amp;amp; [backgrounded]&lt;br /&gt;
Server does not support re-keying&lt;br /&gt;
%cB [sent break]&lt;br /&gt;
%c^Z [suspend ssh]&lt;br /&gt;
Forwarding port.&lt;br /&gt;
Port forwarding failed.&lt;br /&gt;
Bad forwarding port(s).&lt;br /&gt;
Bad forwarding specification.&lt;br /&gt;
%5[0-9]/%255[^/]/%5[0-9]&lt;br /&gt;
%5[0-9]:%255[^:]:%5[0-9]&lt;br /&gt;
Not supported for SSH protocol version 1.&lt;br /&gt;
Invalid command.&lt;br /&gt;
Read from remote host %.300s: %.100s&lt;br /&gt;
Connection to %.300s closed by remote host.&lt;br /&gt;
select: %s&lt;br /&gt;
client_check_window_change: changed&lt;br /&gt;
Sending eof.&lt;br /&gt;
@(#)$OpenBSD: clientloop.c,v 1.104 2002/08/22 19:38:42 stevesk Exp $&lt;br /&gt;
calling GSS_Init_sec_context()&lt;br /&gt;
Delegating GSS-API credentials&lt;br /&gt;
%s(%p, %s, %d, %p, %p)&lt;br /&gt;
Failed to allocate resources (%s) for GSS-API&lt;br /&gt;
Skipping GSS-API mechanism %s (%s)&lt;br /&gt;
Failed to acquire GSS-API credentials for any mechanisms (%s)&lt;br /&gt;
Failed to allocate resources (%s) for GSS-API&lt;br /&gt;
No GSS-API mechanisms are installed&lt;br /&gt;
INTERNAL ERROR (%s)&lt;br /&gt;
@(#)$OpenBSD: atomicio.c,v 1.10 2001/05/08 22:48:07 markus Exp $&lt;br /&gt;
Bad response from authentication agent: %d&lt;br /&gt;
SSH_AGENT_FAILURE&lt;br /&gt;
Bad authentication response: %d&lt;br /&gt;
Agent admitted failure to sign using the key.&lt;br /&gt;
Bad authentication response: %d&lt;br /&gt;
Agent admitted failure to authenticate using the key.&lt;br /&gt;
Compatibility with ssh protocol version 1.0 no longer supported.&lt;br /&gt;
Warning: identity keysize mismatch: actual %d, announced %u&lt;br /&gt;
Too many identities in authentication reply: %d&lt;br /&gt;
Bad authentication reply message type: %d&lt;br /&gt;
SSH_AUTH_SOCK&lt;br /&gt;
Error reading response from authentication socket.&lt;br /&gt;
Authentication response too long: %d&lt;br /&gt;
Error reading response length from authentication socket.&lt;br /&gt;
Error writing to authentication socket.&lt;br /&gt;
SSH_AUTH_SOCK&lt;br /&gt;
@(#)$OpenBSD: authfd.c,v 1.57 2002/09/11 18:27:26 stevesk Exp $&lt;br /&gt;
.pub&lt;br /&gt;
bad permissions: ignore key: %s&lt;br /&gt;
This private key will be ignored.&lt;br /&gt;
It is recommended that your private key files are NOT accessible by others.&lt;br /&gt;
Permissions 0%3.3o for &#039;%s&#039; are too open.&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
read PEM private key done: type %s&lt;br /&gt;
PEM_read_PrivateKey: mismatch or unknown EVP_PKEY save_type %d&lt;br /&gt;
PEM_read_PrivateKey failed&lt;br /&gt;
fdopen failed: %s&lt;br /&gt;
Bad passphrase supplied for key file %.200s.&lt;br /&gt;
Unsupported cipher %d used in key file %.200s.&lt;br /&gt;
Not a RSA1 key file %.200s.&lt;br /&gt;
Read from key file %.200s failed: %.100s&lt;br /&gt;
Not a RSA1 key file %.200s.&lt;br /&gt;
Read from key file %.200s failed: %.100s&lt;br /&gt;
key_save_private: cannot save key type %d&lt;br /&gt;
fdopen %s failed: %s.&lt;br /&gt;
open %s failed: %s.&lt;br /&gt;
passphrase too short: have %d bytes, need &amp;gt; 4&lt;br /&gt;
write to key file %s failed: %s&lt;br /&gt;
open %s failed: %s.&lt;br /&gt;
save_private_key_rsa: bad cipher&lt;br /&gt;
@(#)$OpenBSD: authfile.c,v 1.50 2002/06/24 14:55:38 markus Exp $&lt;br /&gt;
buffer_put_utf8_string: input not a valid UTF-8 encoding; %s&lt;br /&gt;
buffer_put_cstring: s == NULL&lt;br /&gt;
buffer_put_ascii_cstring: non-ASCII string; %s&lt;br /&gt;
buffer_put_cstring: s == NULL&lt;br /&gt;
invalid UTF-8 sequence; %&lt;br /&gt;
buffer_get_string: bad string length %d&lt;br /&gt;
buffer_get_bignum2: cannot handle BN of size %d&lt;br /&gt;
negativ!&lt;br /&gt;
buffer_put_bignum: BN_bn2bin() failed: oi %d != bin_size %d&lt;br /&gt;
buffer_get_bignum: input buffer too small&lt;br /&gt;
buffer_get_bignum: cannot handle BN of size %d&lt;br /&gt;
buffer_put_bignum: BN_bn2bin() failed: oi %d != bin_size %d&lt;br /&gt;
@(#)$OpenBSD: bufaux.c,v 1.27 2002/06/26 08:53:12 markus Exp $&lt;br /&gt;
%02x&lt;br /&gt;
buffer_consume_end: trying to get more bytes than in buffer&lt;br /&gt;
buffer_consume: trying to get more bytes than in buffer&lt;br /&gt;
buffer_get: trying to get more bytes %d than in buffer %d&lt;br /&gt;
buffer_append_space: alloc %u not supported&lt;br /&gt;
buffer_append_space: len %u not supported&lt;br /&gt;
@(#)$OpenBSD: buffer.c,v 1.16 2002/06/26 08:54:18 markus Exp $&lt;br /&gt;
UNKNOWN&lt;br /&gt;
get_sock_port: getnameinfo NI_NUMERICSERV failed&lt;br /&gt;
getpeername failed: %.100s&lt;br /&gt;
getsockname failed: %.100s&lt;br /&gt;
get_socket_ipaddr: getnameinfo %d failed&lt;br /&gt;
get_socket_ipaddr: getsockname failed: %.100s&lt;br /&gt;
get_socket_ipaddr: getpeername failed: %.100s&lt;br /&gt;
Address %.100s maps to %.600s, but this does not map back to the address - POSSIBLE BREAKIN ATTEMPT!&lt;br /&gt;
reverse mapping checking getaddrinfo for %.700s failed - POSSIBLE BREAKIN ATTEMPT!&lt;br /&gt;
Trying to reverse map address %.100s.&lt;br /&gt;
get_remote_hostname: getnameinfo NI_NUMERICHOST failed: %d&lt;br /&gt;
getpeername failed: %.100s&lt;br /&gt;
@(#)$OpenBSD: canohost.c,v 1.34 2002/09/23 20:46:27 stevesk Exp $&lt;br /&gt;
DISPLAY&lt;br /&gt;
0.0.0.0&lt;br /&gt;
Forwarding authentication connection.&lt;br /&gt;
authentication agent connection&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
%02x&lt;br /&gt;
x11_request_forwarding: bad authentication data: %.100s&lt;br /&gt;
Warning: this is probably a break in attempt by a malicious server.&lt;br /&gt;
deny_input_open: type %d&lt;br /&gt;
Warning: ssh server tried X11 forwarding.&lt;br /&gt;
Warning: ssh server tried agent forwarding.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
unknown (remote did not supply name)&lt;br /&gt;
Received X11 open request.&lt;br /&gt;
connect %.100s port %d: %.100s&lt;br /&gt;
socket: %.100s&lt;br /&gt;
%.100s: unknown host. (%s)&lt;br /&gt;
Could not parse display number from DISPLAY: %.100s&lt;br /&gt;
Could not find &#039;:&#039; in DISPLAY: %.100s&lt;br /&gt;
Could not parse display number from DISPLAY: %.100s&lt;br /&gt;
unix:&lt;br /&gt;
DISPLAY not set.&lt;br /&gt;
connect %.100s: %.100s&lt;br /&gt;
/tmp/.X11-unix/X%u&lt;br /&gt;
socket: %.100s&lt;br /&gt;
X11 inet listener&lt;br /&gt;
listen: %.100s&lt;br /&gt;
Failed to allocate internet-domain X11 display socket.&lt;br /&gt;
bind port %d: %.100s; skipping this port&lt;br /&gt;
setsockopt IPV6_V6ONLY: %.100s&lt;br /&gt;
x11_create_display_inet: Socket family %d not supported&lt;br /&gt;
socket: %.100s&lt;br /&gt;
getaddrinfo: %.100s&lt;br /&gt;
Received request to connect to host %.100s port %d, but the request was denied.&lt;br /&gt;
WARNING: Server requests forwarding for unknown listen_port %d&lt;br /&gt;
connect_to %.100s port %d: failed.&lt;br /&gt;
connect_to %.100s port %s: %.100s&lt;br /&gt;
connect_to: F_SETFL: %s&lt;br /&gt;
socket: %.100s&lt;br /&gt;
connect_to: getnameinfo failed&lt;br /&gt;
connect_to %.100s: unknown host (%s)&lt;br /&gt;
allow port forwarding to host %s port %d&lt;br /&gt;
channel_request_remote_forwarding: too many forwards&lt;br /&gt;
Requested forwarding of port %d but user is not root.&lt;br /&gt;
Protocol error for port forward request:received packet type %d.&lt;br /&gt;
Warning: Server denied remote port forwarding.&lt;br /&gt;
tcpip-forward&lt;br /&gt;
channel_request_remote_forwarding: too many forwards&lt;br /&gt;
channel_setup_fwd_listener: cannot listen to port: %d&lt;br /&gt;
port listener&lt;br /&gt;
listen: %.100s&lt;br /&gt;
bind: %.100s&lt;br /&gt;
Local forwarding listening on %s port %s.&lt;br /&gt;
setsockopt SO_REUSEADDR: %s&lt;br /&gt;
socket: %.100s&lt;br /&gt;
channel_setup_fwd_listener: getnameinfo failed&lt;br /&gt;
getaddrinfo: fatal error&lt;br /&gt;
Forward host name too long.&lt;br /&gt;
No forward host name.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
unknown (remote did not supply name)&lt;br /&gt;
channel %d: rcvd adjust %u&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Received window adjust for non-open channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: open failed: %s%s%s&lt;br /&gt;
Received open failure for non-opening channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: open confirm rwindow %u rmax %u&lt;br /&gt;
callback done&lt;br /&gt;
callback start&lt;br /&gt;
Received open confirmation for non-opening channel %d.&lt;br /&gt;
Received close confirmation for non-closed channel %d (type %d).&lt;br /&gt;
Received close confirmation for out-of-range channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Received oclose for nonexistent channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Received close for nonexistent channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: FORCE input drain&lt;br /&gt;
Received ieof for nonexistent channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: rcvd ext data %d&lt;br /&gt;
channel %d: rcvd too much extended_data %d, win %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: bad ext data&lt;br /&gt;
Received extended_data after EOF on channel %d.&lt;br /&gt;
channel %d: accepting ext data after eof&lt;br /&gt;
channel %d: ext data for non open&lt;br /&gt;
Received extended_data for bad channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: rcvd too much data %d, win %d&lt;br /&gt;
channel %d: rcvd big packet %d, maxpack %d&lt;br /&gt;
Received data for nonexistent channel %d.&lt;br /&gt;
channel %d: sent ext data %d&lt;br /&gt;
channel %d: rwin %u elen %u euse %d&lt;br /&gt;
channel %d: ibuf_empty delayed efd %d/(%d)&lt;br /&gt;
cannot happen: istate == INPUT_WAIT_DRAIN for proto 1.3&lt;br /&gt;
channel %d: will not send data after close&lt;br /&gt;
channel %d: garbage collecting&lt;br /&gt;
channel %d: gc: user detached&lt;br /&gt;
channel %d: gc: notify user&lt;br /&gt;
channel %d: window %d sent adjust %d&lt;br /&gt;
channel %d: closing read-efd %d&lt;br /&gt;
channel %d: read %d from efd %d&lt;br /&gt;
channel %d: closing write-efd %d&lt;br /&gt;
channel %d: written %d to efd %d&lt;br /&gt;
channel %d: input draining.&lt;br /&gt;
channel %d: not open&lt;br /&gt;
channel %d: filter stops&lt;br /&gt;
channel %d: input draining.&lt;br /&gt;
channel %d: not open&lt;br /&gt;
channel %d: read&amp;lt;=0 rfd %d len %d&lt;br /&gt;
channel %d: not connected: %s&lt;br /&gt;
channel %d: connected&lt;br /&gt;
getsockopt SO_ERROR failed&lt;br /&gt;
auth-agent@openssh.com&lt;br /&gt;
accepted auth socket&lt;br /&gt;
accept from auth socket: %.100s&lt;br /&gt;
accept: %.100s&lt;br /&gt;
Connection to port %d forwarding to %.100s port %d requested.&lt;br /&gt;
%s: listening port %d for %.100s port %d, connect from %.200s port %d&lt;br /&gt;
direct-tcpip&lt;br /&gt;
ssh2 x11 bug compat mode&lt;br /&gt;
X11 connection from %.200s port %d&lt;br /&gt;
accept: %.100s&lt;br /&gt;
single_connection: closing X11 listener.&lt;br /&gt;
X11 connection requested.&lt;br /&gt;
channel %d: pre_dynamic: need more&lt;br /&gt;
channel %d: pre_dynamic: have %d&lt;br /&gt;
channel %d: cannot handle: socks4 cn %d&lt;br /&gt;
channel %d: dynamic request: socks4 host %s port %u command %u&lt;br /&gt;
channel %d: decode socks4: len %d &amp;gt; have %d&lt;br /&gt;
channel %d: decode socks4: user %s/%d&lt;br /&gt;
channel %d: decode socks4: too long&lt;br /&gt;
channel %d: decode socks4&lt;br /&gt;
X11 closed %d i%d/o%d&lt;br /&gt;
X11 rejected %d i%d/o%d&lt;br /&gt;
X11 connection rejected because of wrong authentication.&lt;br /&gt;
X11 fake_data_len %d != saved_data_len %d&lt;br /&gt;
X11 auth data does not match fake data.&lt;br /&gt;
X11 connection uses different authentication protocol.&lt;br /&gt;
Initial X11 packet contains bad byte order byte: 0x%x&lt;br /&gt;
channel %d: closing after input drain.&lt;br /&gt;
channel %d: obuf_empty delayed efd %d/(%d)&lt;br /&gt;
channel %d: waiting for connection&lt;br /&gt;
channel_set_wait_for_exit %d, %d (type: %d)&lt;br /&gt;
channel_set_wait_for_exit for non-open channel %d.&lt;br /&gt;
channel_activate for non-larval channel %d.&lt;br /&gt;
channel_register_filter: %d: bad id&lt;br /&gt;
channel_cancel_cleanup: %d: bad id&lt;br /&gt;
channel_register_cleanup: %d: bad id&lt;br /&gt;
channel_register_comfirm: %d: bad id&lt;br /&gt;
channel request %d: %s&lt;br /&gt;
channel_request_start: %d: unknown channel id&lt;br /&gt;
send channel open %d&lt;br /&gt;
channel_send_open: %d: bad id&lt;br /&gt;
channel_open_message: bad channel type %d&lt;br /&gt;
  #%d %.300s (t%d r%d i%d/%d o%d/%d fd %d/%d)&lt;br /&gt;
The following connections are open:&lt;br /&gt;
channel_find_open: bad channel type %d&lt;br /&gt;
cannot happen: OUT_DRAIN&lt;br /&gt;
channel_still_open: bad channel type %d&lt;br /&gt;
cannot happen: OUT_DRAIN&lt;br /&gt;
cannot happen: SSH_CHANNEL_LARVAL&lt;br /&gt;
channel %d: big output buffer %d &amp;gt; %d&lt;br /&gt;
channel_free: status: %s&lt;br /&gt;
channel_free: channel %d: %s, nchannels %d&lt;br /&gt;
channel_close_fds: channel %d: r %d w %d e %d&lt;br /&gt;
channel %d: new [%s]&lt;br /&gt;
channel: expanding %d&lt;br /&gt;
channel_new: internal error: channels_alloc %d too big.&lt;br /&gt;
channel %d: wfd %d is not a tty?&lt;br /&gt;
channel %d: rfd %d isatty&lt;br /&gt;
channel_lookup: %d: bad id: channel free&lt;br /&gt;
channel_lookup: %d: bad id&lt;br /&gt;
@(#)$OpenBSD: channels.c,v 1.183 2002/09/17 07:47:02 itojun Exp $&lt;br /&gt;
%s: bad cipher %d&lt;br /&gt;
%s: Installed 3DES IV&lt;br /&gt;
%s: no 3des context&lt;br /&gt;
%s: bad cipher %d&lt;br /&gt;
%s: Copying 3DES IV&lt;br /&gt;
%s: no 3des context&lt;br /&gt;
%s: bad 3des iv length: %d&lt;br /&gt;
%s: wrong iv length %d != %d&lt;br /&gt;
ssh1_3des_cbc: no context&lt;br /&gt;
cipher_cleanup: EVP_CIPHER_CTX_cleanup failed&lt;br /&gt;
evp_crypt: EVP_Cipher failed&lt;br /&gt;
cipher_encrypt: bad plaintext length %d&lt;br /&gt;
cipher_init: EVP_CipherInit: set key failed for %s&lt;br /&gt;
cipher_init: set keylen failed (%d -&amp;gt; %d)&lt;br /&gt;
cipher_init: set keylen (%d -&amp;gt; %d)&lt;br /&gt;
cipher_init: EVP_CipherInit failed for %s&lt;br /&gt;
cipher_init: iv length %d is insufficient for %s.&lt;br /&gt;
cipher_init: key length %d is insufficient for %s.&lt;br /&gt;
Warning: use of DES is strongly discouraged due to cryptographic weaknesses&lt;br /&gt;
ciphers ok: [%s]&lt;br /&gt;
cipher ok: %s [%s]&lt;br /&gt;
bad cipher %s [%s]&lt;br /&gt;
@(#)$OpenBSD: cipher.c,v 1.61 2002/07/12 15:50:17 markus Exp $&lt;br /&gt;
ssh_aes_ctr_iv: no context&lt;br /&gt;
@(#)$OpenBSD: cipher-ctr.c,v 1.4 2004/02/06 23:41:13 dtucker Exp $&lt;br /&gt;
No available ciphers found.&lt;br /&gt;
Compat cipher proposal: %s&lt;br /&gt;
Original cipher proposal: %s&lt;br /&gt;
ignoring bad proto spec: &#039;%s&#039;.&lt;br /&gt;
no match: %s&lt;br /&gt;
match: %s pat %s&lt;br /&gt;
Enabling compatibility mode for protocol 1.3&lt;br /&gt;
Enabling compatibility mode for protocol 2.0&lt;br /&gt;
@(#)$OpenBSD: compat.c,v 1.65 2002/09/27 10:42:09 mickey Exp $&lt;br /&gt;
protocol error: rcvd type %d&lt;br /&gt;
dispatch_protocol_ignore: type %d seq %u&lt;br /&gt;
protocol error&lt;br /&gt;
dispatch_protocol_error: type %d seq %u&lt;br /&gt;
@(#)$OpenBSD: dispatch.c,v 1.15 2002/01/11 13:39:36 markus Exp $&lt;br /&gt;
@(#)$OpenBSD: fatal.c,v 1.1 2002/02/22 12:20:34 markus Exp $&lt;br /&gt;
UTF-8&lt;br /&gt;
UTF8&lt;br /&gt;
UTF-8&lt;br /&gt;
US-ASCII&lt;br /&gt;
ASCII&lt;br /&gt;
UTF-8&lt;br /&gt;
UTF8&lt;br /&gt;
UTF-8&lt;br /&gt;
US-ASCII&lt;br /&gt;
ASCII&lt;br /&gt;
common&lt;br /&gt;
POSIX&lt;br /&gt;
common&lt;br /&gt;
POSIX&lt;br /&gt;
common&lt;br /&gt;
POSIX&lt;br /&gt;
common&lt;br /&gt;
POSIX&lt;br /&gt;
UTF-8&lt;br /&gt;
i-default&lt;br /&gt;
SSH_LANGS&lt;br /&gt;
iso_8859&lt;br /&gt;
/usr/bin/locale -a&lt;br /&gt;
SUNW_OST_OSCMD&lt;br /&gt;
POSIX&lt;br /&gt;
i-default&lt;br /&gt;
%.*s-%.*s&lt;br /&gt;
POSIX&lt;br /&gt;
macs ok: [%s]&lt;br /&gt;
mac ok: %s [%s]&lt;br /&gt;
bad mac %s [%s]&lt;br /&gt;
mac_compute: mac too long&lt;br /&gt;
mac_compute: no key&lt;br /&gt;
mac_init: unknown %s&lt;br /&gt;
mac_init: found %s&lt;br /&gt;
@(#)$OpenBSD: mac.c,v 1.5 2002/05/16 22:02:50 markus Exp $&lt;br /&gt;
ssh_msg_recv: read: %ld != msg_len&lt;br /&gt;
ssh_msg_recv: read: bad msg_len %u&lt;br /&gt;
ssh_msg_recv: read: header %ld&lt;br /&gt;
ssh_msg_recv entering&lt;br /&gt;
ssh_msg_send: write&lt;br /&gt;
ssh_msg_send: type %u&lt;br /&gt;
@(#)$OpenBSD: msg.c,v 1.4 2002/07/01 16:15:25 deraadt Exp $&lt;br /&gt;
add_host_to_hostfile: saving key in %s failed&lt;br /&gt;
no key to look up&lt;br /&gt;
check_host_in_hostfile: match line %d&lt;br /&gt;
check_host_in_hostfile: filename %s&lt;br /&gt;
Warning: replace %d with %d in %s, line %d.&lt;br /&gt;
Warning: %s, line %d: keysize mismatch for host %s: actual %d vs. announced %d.&lt;br /&gt;
@(#)$OpenBSD: hostfile.c,v 1.30 2002/07/24 16:11:18 markus Exp $&lt;br /&gt;
ssh-dss&lt;br /&gt;
ssh-rsa&lt;br /&gt;
key_free: bad key type %d&lt;br /&gt;
key_demote: BN_dup failed&lt;br /&gt;
key_demote: DSA_new failed&lt;br /&gt;
key_demote: BN_dup failed&lt;br /&gt;
key_demote: RSA_new failed&lt;br /&gt;
key_verify: illegal key type %d&lt;br /&gt;
key_sign: illegal key type %d&lt;br /&gt;
key_to_blob: unsupported key type %d&lt;br /&gt;
key_to_blob: key == NULL&lt;br /&gt;
key_from_blob: remaining bytes in key blob %d&lt;br /&gt;
key_from_blob: cannot handle type %s&lt;br /&gt;
key names ok: [%s]&lt;br /&gt;
key_type_from_name: unknown key type &#039;%s&#039;&lt;br /&gt;
null&lt;br /&gt;
rsa1&lt;br /&gt;
key_from_private: unknown type %d&lt;br /&gt;
key_generate: unknown type %d&lt;br /&gt;
dsa_generate_private_key: NULL.&lt;br /&gt;
dsa_generate_private_key: DSA_generate_key failed.&lt;br /&gt;
dsa_generate_private_key: DSA_generate_parameters failed&lt;br /&gt;
rsa_generate_private_key: key generation failed.&lt;br /&gt;
%s %s&lt;br /&gt;
key_write: failed for RSA key&lt;br /&gt;
key_read: bad key type: %d&lt;br /&gt;
key_read: type mismatch: encoding error&lt;br /&gt;
key_read: key_from_blob %s failed&lt;br /&gt;
key_read: uudecode %s failed&lt;br /&gt;
key_read: type mismatch&lt;br /&gt;
key_read: short string&lt;br /&gt;
key_read: no key found&lt;br /&gt;
key_read: no space&lt;br /&gt;
write_bignum: BN_bn2dec() failed&lt;br /&gt;
key_fingerprint_ex: bad digest representation %d&lt;br /&gt;
key_fingerprint: null from key_fingerprint_raw()&lt;br /&gt;
%02x:&lt;br /&gt;
key_fingerprint_raw: blob is null&lt;br /&gt;
key_fingerprint_raw: bad key type %d&lt;br /&gt;
key_fingerprint_raw: bad digest type %d&lt;br /&gt;
key_equal: bad key type %d&lt;br /&gt;
key_free: bad key type %d&lt;br /&gt;
key_new_private: BN_new failed&lt;br /&gt;
key_new: bad key type %d&lt;br /&gt;
key_new: BN_new failed&lt;br /&gt;
key_new: DSA_new failed&lt;br /&gt;
key_new: BN_new failed&lt;br /&gt;
key_new: RSA_new failed&lt;br /&gt;
@(#)$OpenBSD: key.c,v 1.49 2002/09/09 14:54:14 markus Exp $&lt;br /&gt;
kex_derive_keys&lt;br /&gt;
Negotiated lang: %s&lt;br /&gt;
Negotiated messages locale: %s&lt;br /&gt;
Negotiated main locale: %s&lt;br /&gt;
We proposed langtags, stoc: %s&lt;br /&gt;
We proposed langtags, ctos: %s&lt;br /&gt;
Peer sent proposed langtags, stoc: %s&lt;br /&gt;
Peer sent proposed langtags, ctos: %s&lt;br /&gt;
skipping next packet (type %u)&lt;br /&gt;
kex: %s %s %s %s&lt;br /&gt;
proposals match&lt;br /&gt;
proposal mismatch: my %s peer %s&lt;br /&gt;
bad hostkey alg &#039;%s&#039;&lt;br /&gt;
no hostkey alg&lt;br /&gt;
bad kex alg %s&lt;br /&gt;
gss-group1-sha1-&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
no kex alg&lt;br /&gt;
unsupported comp %s&lt;br /&gt;
none&lt;br /&gt;
zlib&lt;br /&gt;
no matching comp found: client %s server %s&lt;br /&gt;
unsupported mac %s&lt;br /&gt;
no matching mac found: client %s server %s&lt;br /&gt;
matching cipher is not supported: %s&lt;br /&gt;
no matching cipher found: client %s server %s&lt;br /&gt;
Unsupported key exchange %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
kex_input_kexinit: no kex, cannot rekey&lt;br /&gt;
SSH2_MSG_KEXINIT received&lt;br /&gt;
SSH2_MSG_KEXINIT sent&lt;br /&gt;
kex_send_kexinit: kex proposal too short&lt;br /&gt;
KEX_INIT_SENT&lt;br /&gt;
kex_send_kexinit: no kex, cannot rekey&lt;br /&gt;
SSH2_MSG_NEWKEYS received&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
expecting SSH2_MSG_NEWKEYS&lt;br /&gt;
SSH2_MSG_NEWKEYS sent&lt;br /&gt;
kex_reset_dispatch -- skipping dispatch_set(KEXINIT) in unpriv proc&lt;br /&gt;
kex_reset_dispatch -- should we dispatch_set(KEXINIT) here? %d &amp;amp;&amp;amp; !%d&lt;br /&gt;
Hm, kex protocol error: type %d seq %u&lt;br /&gt;
kex_parse_kexinit: reserved %d &lt;br /&gt;
kex_parse_kexinit: first_kex_follows %d &lt;br /&gt;
kex_parse_kexinit: %s&lt;br /&gt;
@(#)$OpenBSD: kex.c,v 1.51 2002/06/24 14:55:38 markus Exp $&lt;br /&gt;
key_verify failed for server_host_key&lt;br /&gt;
kexdh_client: BN_new failed&lt;br /&gt;
bad server public DH value&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
dh_server_pub == NULL&lt;br /&gt;
server_host_key verification failed&lt;br /&gt;
cannot verify server_host_key&lt;br /&gt;
type mismatch for decoded server_host_key_blob&lt;br /&gt;
cannot decode server_host_key_blob&lt;br /&gt;
expecting SSH2_MSG_KEXDH_REPLY&lt;br /&gt;
sending SSH2_MSG_KEXDH_INIT&lt;br /&gt;
@(#)$OpenBSD: kexdh.c,v 1.18 2002/03/18 17:50:31 provos Exp $&lt;br /&gt;
key_verify failed for server_host_key&lt;br /&gt;
kexgex_client: BN_new failed&lt;br /&gt;
bad server public DH value&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
dh_server_pub == NULL&lt;br /&gt;
server_host_key verification failed&lt;br /&gt;
cannot verify server_host_key&lt;br /&gt;
type mismatch for decoded server_host_key_blob&lt;br /&gt;
cannot decode server_host_key_blob&lt;br /&gt;
expecting SSH2_MSG_KEX_DH_GEX_REPLY&lt;br /&gt;
SSH2_MSG_KEX_DH_GEX_INIT sent&lt;br /&gt;
DH_GEX group out of range: %d !&amp;lt; %d !&amp;lt; %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
BN_new&lt;br /&gt;
expecting SSH2_MSG_KEX_DH_GEX_GROUP&lt;br /&gt;
SSH2_MSG_KEX_DH_GEX_REQUEST sent&lt;br /&gt;
SSH2_MSG_KEX_DH_GEX_REQUEST_OLD sent&lt;br /&gt;
@(#)$OpenBSD: kexgex.c,v 1.22 2002/03/24 17:27:03 stevesk Exp $&lt;br /&gt;
Use the GssKeyEx option to disable GSS-API key exchange and try again.&lt;br /&gt;
The GSS-API protected key exchange has failed without indication&lt;br /&gt;
from the server, possibly due to misconfiguration of the server.&lt;br /&gt;
Hash&#039;s MIC didn&#039;t verify&lt;br /&gt;
bad server public DH value&lt;br /&gt;
Internal error in GSS-API protected SSHv2 key exchange&lt;br /&gt;
Expected SSH2_MSG_KEXGSS_COMPLETE never arrived&lt;br /&gt;
Not complete, and no token output&lt;br /&gt;
Protocol error: didn&#039;t expect packet type %d&lt;br /&gt;
The server had a GSS-API error during GSS-API protected SSHv2 key exchange&lt;br /&gt;
Use the GssKeyEx option to disable GSS-API key exchange and try again.&lt;br /&gt;
Server had a GSS-API error; the connection will close (%d/%d):&lt;br /&gt;
Protocol error: did not receive expected GSS-API context token&lt;br /&gt;
Protocol error: received GSS-API context token though the context was already established&lt;br /&gt;
Received GSSAPI_COMPLETE&lt;br /&gt;
Protocol error: received GSS-API context token though the context was already established&lt;br /&gt;
Received GSSAPI_CONTINUE&lt;br /&gt;
Received KEXGSS_HOSTKEY&lt;br /&gt;
Integrity check failed&lt;br /&gt;
Mutual authentication failed&lt;br /&gt;
A GSS-API error occurred during GSS-API protected SSHv2 key exchange&lt;br /&gt;
performing GSS-API protected SSHv2 key exchange&lt;br /&gt;
Calling gss_init_sec_context&lt;br /&gt;
dh_server_pub == NULL&lt;br /&gt;
Couldn&#039;t match the negotiated GSS key exchange&lt;br /&gt;
VERBOSE&lt;br /&gt;
%.500s&lt;br /&gt;
%s%s: %s&lt;br /&gt;
Unrecognized internal syslog facility code %d&lt;br /&gt;
Unrecognized internal syslog level code %d&lt;br /&gt;
Calling cleanup 0x%lx(0x%lx)&lt;br /&gt;
fatal_remove_cleanup: no such cleanup function: 0x%lx 0x%lx&lt;br /&gt;
DEBUG3&lt;br /&gt;
DEBUG2&lt;br /&gt;
DEBUG1&lt;br /&gt;
DEBUG&lt;br /&gt;
INFO&lt;br /&gt;
NOTICE&lt;br /&gt;
ERROR&lt;br /&gt;
FATAL&lt;br /&gt;
QUIET&lt;br /&gt;
LOCAL7&lt;br /&gt;
LOCAL6&lt;br /&gt;
LOCAL5&lt;br /&gt;
LOCAL4&lt;br /&gt;
LOCAL3&lt;br /&gt;
LOCAL2&lt;br /&gt;
LOCAL1&lt;br /&gt;
LOCAL0&lt;br /&gt;
AUTH&lt;br /&gt;
USER&lt;br /&gt;
DAEMON&lt;br /&gt;
@(#)$OpenBSD: log.c,v 1.24 2002/07/19 15:43:33 markus Exp $&lt;br /&gt;
@(#)$OpenBSD: match.c,v 1.19 2002/03/01 13:12:10 markus Exp $&lt;br /&gt;
setsockopt TCP_NODELAY: %.100s&lt;br /&gt;
fd %d setting TCP_NODELAY&lt;br /&gt;
fd %d is TCP_NODELAY&lt;br /&gt;
getsockopt TCP_NODELAY: %.100s&lt;br /&gt;
fcntl(%d, F_SETFL, O_NONBLOCK): %s&lt;br /&gt;
fd %d clearing O_NONBLOCK&lt;br /&gt;
fd %d is not O_NONBLOCK&lt;br /&gt;
fcntl(%d, F_GETFL, 0): %s&lt;br /&gt;
fcntl(%d, F_SETFL, O_NONBLOCK): %s&lt;br /&gt;
fd %d setting O_NONBLOCK&lt;br /&gt;
fd %d is O_NONBLOCK&lt;br /&gt;
fcntl(%d, F_GETFL, 0): %s&lt;br /&gt;
@(#)$OpenBSD: misc.c,v 1.19 2002/03/04 17:27:39 stevesk Exp $&lt;br /&gt;
@(#)$OpenBSD: mpaux.c,v 1.16 2001/02/08 19:30:52 itojun Exp $&lt;br /&gt;
channel %d: chan_shutdown_read: close() failed for fd%d: %.100s&lt;br /&gt;
channel %d: chan_shutdown_read: shutdown() failed for fd%d [i%d o%d]: %.100s&lt;br /&gt;
channel %d: close_read&lt;br /&gt;
channel %d: chan_shutdown_write: close() failed for fd%d: %.100s&lt;br /&gt;
channel %d: chan_shutdown_write: shutdown() failed for fd%d: %.100s&lt;br /&gt;
channel %d: close_write&lt;br /&gt;
channel %d: is dead&lt;br /&gt;
channel %d: almost dead&lt;br /&gt;
channel %d: active efd: %d len %d&lt;br /&gt;
channel %d: is dead&lt;br /&gt;
channel %d: zombie&lt;br /&gt;
channel %d: already sent close&lt;br /&gt;
channel %d: cannot send close for istate/ostate %d/%d&lt;br /&gt;
channel %d: send close&lt;br /&gt;
channel %d: cannot send eof for istate %d&lt;br /&gt;
channel %d: send eof&lt;br /&gt;
channel %d: chan_write_failed for ostate %d&lt;br /&gt;
channel %d: write failed&lt;br /&gt;
channel %d: rcvd eof&lt;br /&gt;
channel %d: protocol error: close rcvd twice&lt;br /&gt;
channel %d: rcvd close&lt;br /&gt;
channel %d: cannot send oclose for ostate %d&lt;br /&gt;
channel %d: send oclose&lt;br /&gt;
channel %d: cannot send ieof for istate %d&lt;br /&gt;
channel %d: send ieof&lt;br /&gt;
channel %d: internal error: obuf_empty for ostate %d&lt;br /&gt;
channel %d: chan_obuf_empty for non empty buffer&lt;br /&gt;
channel %d: obuf empty&lt;br /&gt;
channel %d: chan_write_failed for ostate %d&lt;br /&gt;
channel %d: write failed&lt;br /&gt;
channel %d: protocol error: rcvd_ieof for ostate %d&lt;br /&gt;
channel %d: rcvd ieof&lt;br /&gt;
channel %d: chan_ibuf_empty for istate %d&lt;br /&gt;
channel %d: chan_ibuf_empty for non empty buffer&lt;br /&gt;
channel %d: ibuf empty&lt;br /&gt;
channel %d: chan_read_failed for istate %d&lt;br /&gt;
channel %d: read failed&lt;br /&gt;
channel %d: protocol error: rcvd_oclose for istate %d&lt;br /&gt;
channel %d: rcvd oclose&lt;br /&gt;
channel %d: output %s -&amp;gt; %s&lt;br /&gt;
chan_set_ostate: bad state %d -&amp;gt; %d&lt;br /&gt;
channel %d: input %s -&amp;gt; %s&lt;br /&gt;
chan_set_istate: bad state %d -&amp;gt; %d&lt;br /&gt;
@(#)$OpenBSD: nchan.c,v 1.47 2002/06/19 00:27:55 deraadt Exp $&lt;br /&gt;
Monitor failed to start: %s&lt;br /&gt;
packet_set_maxsize: setting to %d&lt;br /&gt;
packet_set_maxsize: bad size %d&lt;br /&gt;
packet_set_maxsize: called twice: old %d new %d&lt;br /&gt;
Write failed: %.100s&lt;br /&gt;
Disconnecting: %.100s&lt;br /&gt;
packet_disconnect called recursively.&lt;br /&gt;
packet_send_debug: %s&lt;br /&gt;
Received disconnect from %s: %.400s&lt;br /&gt;
Remote: %.900s&lt;br /&gt;
Received SSH2_MSG_UNIMPLEMENTED for %u&lt;br /&gt;
Received disconnect from %s: %u: %.400s&lt;br /&gt;
Remote: %.900s&lt;br /&gt;
Corrupted padlen %d on input.&lt;br /&gt;
incoming seqnr wraps around&lt;br /&gt;
Corrupted MAC on input.&lt;br /&gt;
padding error: need %d block %d mod %d&lt;br /&gt;
Bad packet length %d.&lt;br /&gt;
Corrupted check bytes on input.&lt;br /&gt;
packet_read_poll1: len %d != buffer_len %d.&lt;br /&gt;
deattack denial of service detected&lt;br /&gt;
crc32 compensation attack: network attack detected&lt;br /&gt;
Bad packet length %d.&lt;br /&gt;
Protocol error: expected packet type %d, got %d&lt;br /&gt;
Read from socket failed: %.100s&lt;br /&gt;
Connection closed by %.200s&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
outgoing seqnr wraps around&lt;br /&gt;
packet_send2: adding %d (len %d padlen %d extra_pad %d)&lt;br /&gt;
newkeys: no keys for mode %d&lt;br /&gt;
newkeys: rekeying&lt;br /&gt;
newkeys: mode %d&lt;br /&gt;
packet_set_encryption_key: keylen too big: %d&lt;br /&gt;
packet_set_encryption_key: keylen too small: %d&lt;br /&gt;
packet_set_encryption_key: unknown cipher number %d&lt;br /&gt;
Compression already enabled.&lt;br /&gt;
INTERNAL ERROR: The monitor cannot compress.&lt;br /&gt;
fcntl O_NONBLOCK: %.100s&lt;br /&gt;
packet_set_seqnr: bad mode %d&lt;br /&gt;
packet_set_connection: cannot load cipher &#039;none&#039;&lt;br /&gt;
none&lt;br /&gt;
@(#)$OpenBSD: packet.c,v 1.97 2002/07/04 08:12:15 deraadt Exp $&lt;br /&gt;
OpenSSL version mismatch. Built against %lx, you have %lx&lt;br /&gt;
PRNG is not seeded&lt;br /&gt;
@(#)$Id: entropy.c,v 1.44 2002/06/09 19:41:48 mouring Exp $&lt;br /&gt;
DISPLAY&lt;br /&gt;
SSH_ASKPASS&lt;br /&gt;
/dev/tty&lt;br /&gt;
ssh_askpass: exec(%s): %s&lt;br /&gt;
ssh_askpass: dup2: %s&lt;br /&gt;
ssh_askpass: fork: %s&lt;br /&gt;
ssh_askpass: pipe: %s&lt;br /&gt;
internal error: askpass undefined&lt;br /&gt;
ssh_askpass: fflush: %s&lt;br /&gt;
@(#)$OpenBSD: readpass.c,v 1.27 2002/03/26 15:58:46 markus Exp $&lt;br /&gt;
rsa_generate_additional_parameters: BN_CTX_new failed&lt;br /&gt;
rsa_generate_additional_parameters: BN_new failed&lt;br /&gt;
rsa_private_decrypt() failed&lt;br /&gt;
rsa_public_encrypt() failed&lt;br /&gt;
rsa_public_encrypt() exponent too small or not odd&lt;br /&gt;
@(#)$OpenBSD: rsa.c,v 1.24 2001/12/27 18:22:16 markus Exp $&lt;br /&gt;
ssh-dss&lt;br /&gt;
ssh_dss_verify: signature %s&lt;br /&gt;
ssh_dss_verify: BN_new failed&lt;br /&gt;
ssh_dss_verify: DSA_SIG_new failed&lt;br /&gt;
bad sigbloblen %u != SIGBLOB_LEN&lt;br /&gt;
ssh_dss_verify: remaining bytes in signature %d&lt;br /&gt;
ssh_dss_verify: cannot handle type %s&lt;br /&gt;
ssh_dss_verify: no DSA key&lt;br /&gt;
bad sig size %u %u&lt;br /&gt;
ssh_dss_sign: sign failed&lt;br /&gt;
ssh_dss_sign: no DSA key&lt;br /&gt;
@(#)$OpenBSD: ssh-dss.c,v 1.17 2002/07/04 10:41:47 markus Exp $&lt;br /&gt;
%s,null&lt;br /&gt;
while verifying MIC&lt;br /&gt;
while getting MIC&lt;br /&gt;
calling GSS_Import_name()&lt;br /&gt;
%s: snprintf() returned %d, expected %d&lt;br /&gt;
%s@%s&lt;br /&gt;
host&lt;br /&gt;
GSS-API error: %s&lt;br /&gt;
GSS-API error while %s: %s&lt;br /&gt;
&amp;lt;gss_oid_to_str() failed&amp;gt;&lt;br /&gt;
null&lt;br /&gt;
gss-group1-sha1-&lt;br /&gt;
INTERNAL ERROR (%s)&lt;br /&gt;
%s,%s&lt;br /&gt;
GSS-API Mechanism encoded as %s&lt;br /&gt;
gss-group1-sha1-&lt;br /&gt;
ssh-rsa&lt;br /&gt;
hash mismatch&lt;br /&gt;
oid mismatch&lt;br /&gt;
bad decrypted len: %d != %d + %d&lt;br /&gt;
RSA_public_decrypt failed: %s&lt;br /&gt;
bad siglen&lt;br /&gt;
bad hashlen&lt;br /&gt;
ssh_rsa_verify: signature %scorrect&lt;br /&gt;
ssh_rsa_verify: EVP_get_digestbynid %d failed&lt;br /&gt;
ssh_rsa_verify: add padding: modlen %u &amp;gt; len %u&lt;br /&gt;
ssh_rsa_verify: len %u &amp;gt; modlen %u&lt;br /&gt;
ssh_rsa_verify: remaining bytes in signature %d&lt;br /&gt;
ssh_rsa_verify: cannot handle type %s&lt;br /&gt;
ssh_rsa_verify: RSA modulus too small: %d &amp;lt; minimum %d bits&lt;br /&gt;
ssh_rsa_verify: no RSA key&lt;br /&gt;
ssh_rsa_sign: slen %u slen2 %u&lt;br /&gt;
slen %u &amp;gt; len %u&lt;br /&gt;
ssh_rsa_sign: RSA_sign failed: %s&lt;br /&gt;
ssh_rsa_sign: EVP_get_digestbynid %d failed&lt;br /&gt;
ssh_rsa_sign: no RSA key&lt;br /&gt;
@(#)$OpenBSD: ssh-rsa.c,v 1.26 2002/08/27 17:13:56 stevesk Exp $&lt;br /&gt;
%s%s%s&lt;br /&gt;
Home directory too long (%d &amp;gt; %d&lt;br /&gt;
Unknown user %100s.&lt;br /&gt;
User name after tilde too long.&lt;br /&gt;
@(#)$OpenBSD: tildexpand.c,v 1.13 2002/06/23 03:25:50 deraadt Exp $&lt;br /&gt;
Setting tty modes failed: %.100s&lt;br /&gt;
parse_tty_modes: n_bytes_ptr != n_bytes: %d %d&lt;br /&gt;
parse_tty_modes: unknown opcode %d&lt;br /&gt;
Ignoring unsupported tty mode opcode %d (0x%x)&lt;br /&gt;
tty_parse_modes: %d %d&lt;br /&gt;
cfsetospeed failed for %d&lt;br /&gt;
tty_parse_modes: ospeed %d&lt;br /&gt;
cfsetispeed failed for %d&lt;br /&gt;
tty_parse_modes: ispeed %d&lt;br /&gt;
tcgetattr: %.100s&lt;br /&gt;
tty_parse_modes: SSH2 n_bytes %d&lt;br /&gt;
tty_make_modes: %d %d&lt;br /&gt;
tty_make_modes: ispeed %d&lt;br /&gt;
tty_make_modes: ospeed %d&lt;br /&gt;
tcgetattr: %.100s&lt;br /&gt;
@(#)$OpenBSD: ttymodes.c,v 1.18 2002/06/19 00:27:55 deraadt Exp $&lt;br /&gt;
@(#)$OpenBSD: uuencode.c,v 1.16 2002/09/09 14:54:15 markus Exp $&lt;br /&gt;
xfree: NULL pointer given as argument&lt;br /&gt;
xrealloc: out of memory (new_size %lu bytes)&lt;br /&gt;
xrealloc: zero size&lt;br /&gt;
xmalloc: out of memory (allocating %lu bytes)&lt;br /&gt;
xmalloc: zero size&lt;br /&gt;
@(#)$OpenBSD: xmalloc.c,v 1.16 2001/07/23 18:21:46 stevesk Exp $&lt;br /&gt;
ciphers&lt;br /&gt;
~/%.100s&lt;br /&gt;
.ssh/id_dsa&lt;br /&gt;
~/%.100s&lt;br /&gt;
.ssh/id_rsa&lt;br /&gt;
~/%.100s&lt;br /&gt;
.ssh/identity&lt;br /&gt;
%s: terminating, %d bad configuration options&lt;br /&gt;
Reading configuration data %.200s&lt;br /&gt;
%.200s line %d: garbage at end of line; &amp;quot;%.200s&amp;quot;.&lt;br /&gt;
process_config_line: Unimplemented opcode %d&lt;br /&gt;
%s line %d: Deprecated option &amp;quot;%s&amp;quot;&lt;br /&gt;
%.200s line %d: Bad escape character.&lt;br /&gt;
none&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
Applying options for %.100s&lt;br /&gt;
socks4&lt;br /&gt;
%.200s line %d: Badly formatted port number.&lt;br /&gt;
%.200s line %d: Missing port argument.&lt;br /&gt;
%.200s line %d: Bad forwarding port.&lt;br /&gt;
%.200s line %d: Bad forwarding specification.&lt;br /&gt;
%255[^/]/%5[0-9]&lt;br /&gt;
%255[^:]:%5[0-9]&lt;br /&gt;
%.200s line %d: Missing second argument.&lt;br /&gt;
%.200s line %d: Bad listen port.&lt;br /&gt;
%.200s line %d: Missing port argument.&lt;br /&gt;
%.200s line %d: unsupported log level &#039;%s&#039;&lt;br /&gt;
%.200s line %d: Bad protocol spec &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad protocol 2 host key algorithms &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad SSH2 Mac spec &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad SSH2 cipher spec &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad cipher &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad number.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Too many identity files specified (max %d).&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad yes/no/ask argument.&lt;br /&gt;
false&lt;br /&gt;
true&lt;br /&gt;
%.200s line %d: Missing yes/no/ask argument.&lt;br /&gt;
%.200s line %d: Bad yes/no argument.&lt;br /&gt;
false&lt;br /&gt;
true&lt;br /&gt;
%.200s line %d: Missing yes/no argument.&lt;br /&gt;
%s: line %d: Bad configuration option: %s&lt;br /&gt;
Too many remote forwards (max %d).&lt;br /&gt;
Too many local forwards (max %d).&lt;br /&gt;
Privileged ports can only be forwarded by root.&lt;br /&gt;
nohostauthenticationforlocalhost&lt;br /&gt;
clearallforwardings&lt;br /&gt;
smartcarddevice&lt;br /&gt;
bindaddress&lt;br /&gt;
hostkeyalgorithms&lt;br /&gt;
preferredauthentications&lt;br /&gt;
dynamicforward&lt;br /&gt;
loglevel&lt;br /&gt;
numberofpasswordprompts&lt;br /&gt;
keepalive&lt;br /&gt;
compressionlevel&lt;br /&gt;
compression&lt;br /&gt;
stricthostkeychecking&lt;br /&gt;
checkhostip&lt;br /&gt;
batchmode&lt;br /&gt;
connectionattempts&lt;br /&gt;
userknownhostsfile2&lt;br /&gt;
globalknownhostsfile2&lt;br /&gt;
userknownhostsfile&lt;br /&gt;
globalknownhostsfile&lt;br /&gt;
escapechar&lt;br /&gt;
host&lt;br /&gt;
user&lt;br /&gt;
localforward&lt;br /&gt;
remoteforward&lt;br /&gt;
protocol&lt;br /&gt;
macs&lt;br /&gt;
cipher&lt;br /&gt;
port&lt;br /&gt;
proxycommand&lt;br /&gt;
hostkeyalias&lt;br /&gt;
hostname&lt;br /&gt;
identityfile2&lt;br /&gt;
identityfile&lt;br /&gt;
usersh&lt;br /&gt;
fallbacktorsh&lt;br /&gt;
gssdelegatecreds&lt;br /&gt;
gssauthentication&lt;br /&gt;
gsskeyex&lt;br /&gt;
gssapidelegatecredentials&lt;br /&gt;
gssapiauthentication&lt;br /&gt;
gssapikeyexchange&lt;br /&gt;
tisauthentication&lt;br /&gt;
skeyauthentication&lt;br /&gt;
challengeresponseauthentication&lt;br /&gt;
hostbasedauthentication&lt;br /&gt;
rhostsrsaauthentication&lt;br /&gt;
dsaauthentication&lt;br /&gt;
pubkeyauthentication&lt;br /&gt;
rsaauthentication&lt;br /&gt;
kbdinteractivedevices&lt;br /&gt;
kbdinteractiveauthentication&lt;br /&gt;
passwordauthentication&lt;br /&gt;
rhostsauthentication&lt;br /&gt;
useprivilegedport&lt;br /&gt;
gatewayports&lt;br /&gt;
xauthlocation&lt;br /&gt;
forwardx11&lt;br /&gt;
forwardagent&lt;br /&gt;
@(#)$OpenBSD: readconf.c,v 1.100 2002/06/19 00:27:55 deraadt Exp $&lt;br /&gt;
buffer_uncompress: inflate returned %d&lt;br /&gt;
buffer_compress: deflate returned %d&lt;br /&gt;
compress incoming: raw data %lu, compressed %lu, factor %.2f&lt;br /&gt;
compress outgoing: raw data %lu, compressed %lu, factor %.2f&lt;br /&gt;
1.1.4&lt;br /&gt;
Bad compression level %d.&lt;br /&gt;
Enabling compression at level %d.&lt;br /&gt;
@(#)$OpenBSD: compress.c,v 1.19 2002/03/18 17:31:54 provos Exp $&lt;br /&gt;
@(#)$OpenBSD: crc32.c,v 1.8 2000/12/19 23:17:56 markus Exp $&lt;br /&gt;
Installing crc compensation attack detector.&lt;br /&gt;
detect_attack: bad length %d&lt;br /&gt;
@(#)$OpenBSD: deattack.c,v 1.18 2002/03/04 17:27:39 stevesk Exp $&lt;br /&gt;
dh_new_group: DH_new&lt;br /&gt;
BN_hex2bn g&lt;br /&gt;
BN_hex2bn p&lt;br /&gt;
dh_new_group_asc: DH_new&lt;br /&gt;
dh_gen_key: too many bad keys: giving up&lt;br /&gt;
dh_gen_key: priv key bits set: %d/%d&lt;br /&gt;
DH_generate_key&lt;br /&gt;
dh_gen_key: BN_rand failed&lt;br /&gt;
dh_gen_key: BN_new failed&lt;br /&gt;
dh_gen_key: group too small: %d (2*need %d)&lt;br /&gt;
dh_gen_key: dh-&amp;gt;p == NULL&lt;br /&gt;
invalid public DH value (%d/%d)&lt;br /&gt;
bits set: %d/%d&lt;br /&gt;
invalid public DH value: negativ&lt;br /&gt;
WARNING: line %d disappeared in %s, giving up&lt;br /&gt;
WARNING: no suitable primes in %s&lt;br /&gt;
WARNING: %s does not exist, using old modulus&lt;br /&gt;
/etc/ssh/primes&lt;br /&gt;
/etc/ssh/moduli&lt;br /&gt;
Bad prime description in line %d&lt;br /&gt;
parse_prime: BN_new failed&lt;br /&gt;
@(#)$OpenBSD: dh.c,v 1.22 2002/06/27 08:49:44 markus Exp $&lt;br /&gt;
@(#)$OpenBSD: kexdh.c,v 1.18 2002/03/18 17:50:31 provos Exp $&lt;br /&gt;
@(#)$OpenBSD: kexgex.c,v 1.22 2002/03/24 17:27:03 stevesk Exp $&lt;br /&gt;
Couldn&#039;t obtain random bytes (error %ld)&lt;br /&gt;
@(#)$Id: bsd-arc4random.c,v 1.5 2002/05/08 22:57:18 tim Exp $&lt;br /&gt;
@(#)$Id: bsd-misc.c,v 1.10 2002/07/08 21:09:41 mouring Exp $&lt;br /&gt;
/dev/null&lt;br /&gt;
%s: option requires an argument -- %c&lt;br /&gt;
%s: illegal option -- %c&lt;br /&gt;
/dev/tty&lt;br /&gt;
ÿßûÛïÏëË÷×óÓçÇãÃþÞúÚîÎêÊöÖòÒæÆâÂ&lt;br /&gt;
ÿÿÿÿ&lt;br /&gt;
ýÿÿÿ&lt;br /&gt;
þÿÿÿ&lt;br /&gt;
ÿÿÿÿ&lt;br /&gt;
ÿÿÿÿ¸7&lt;br /&gt;
ÿÿÿÿÄ&lt;br /&gt;
ÿÿÿÿÿÿÿÿ&lt;br /&gt;
ôjp5¥cé£&lt;br /&gt;
¤¸Üy&lt;br /&gt;
½|±~&lt;br /&gt;
ò °jHq¹óÞA¾&lt;br /&gt;
ëäÝmQµÔôÇ&lt;br /&gt;
À¨kdzùbýìÉe&lt;br /&gt;
È n;^&lt;br /&gt;
iLäA`Õrqg¢Ñä&lt;br /&gt;
¥ú¨µ5l&lt;br /&gt;
²BÖÉ»Û@ù¼¬ãlØ2u\ßEÏ&lt;br /&gt;
ÖÜY=Ñ«¬0Ù&amp;amp;:&lt;br /&gt;
aÐ¿µô´!#Ä³V&lt;br /&gt;
LhX«&lt;br /&gt;
aÁ=-f¶&lt;br /&gt;
3Ô¸è¢É&lt;br /&gt;
\cæôQkkbal&lt;br /&gt;
õÆÙ°ePé·&lt;br /&gt;
ÝbI-Ú&lt;br /&gt;
eLÔûXa²MÎQµ:t&lt;br /&gt;
¼£â0»ÔA¥ßJ×&lt;br /&gt;
Ø=mÄÑ¤ûôÖÓjéiCüÙn4F&lt;br /&gt;
Ð¸`Ús-&lt;br /&gt;
É%µhW³&lt;br /&gt;
ÉÙ)&amp;quot;&lt;br /&gt;
Ð°´¨×Ç&lt;br /&gt;
´.;\½·&lt;br /&gt;
lºÀ &lt;br /&gt;
¸í¶³¿&lt;br /&gt;
Ò±t9GÕê¯wÒ&lt;br /&gt;
¨Zjz&lt;br /&gt;
i]Wb÷Ëge&lt;br /&gt;
Ôþà+Ó&lt;br /&gt;
ÌJÝgoß¹ùùï¾&lt;br /&gt;
°`è£ÖÖ~&lt;br /&gt;
Ñ¡ÄÂØ8RòßOñg»ÑgW¼¦Ý&lt;br /&gt;
µ?K6²HÚ+&lt;br /&gt;
AÃï`ßUßg¨ï&lt;br /&gt;
n1y¾iF&lt;br /&gt;
f¼ Òo%6âhR&lt;br /&gt;
U¾;ºÅ(&lt;br /&gt;
j³\§ÿ×Â1ÏÐµ&lt;br /&gt;
®Þ[°Âd&lt;br /&gt;
&amp;amp;òcì&lt;br /&gt;
z¸â®+±{8&lt;br /&gt;
¾Õå·ïÜ|!ßÛ&lt;br /&gt;
BâÔñø³Ýhn&lt;br /&gt;
[&amp;amp;¹öáw°owG·&lt;br /&gt;
i®bøÓÿkaEÏl&lt;br /&gt;
9a&amp;amp;g§÷&lt;br /&gt;
`ÐMGiIÛwn&amp;gt;JjÑ®ÜZÖÙf&lt;br /&gt;
ß@ð;Ø7S®¼©Å&lt;br /&gt;
Ï²Géÿµ0&lt;br /&gt;
ÂºÊ0&lt;br /&gt;
³S¦£´$&lt;br /&gt;
×Í)WÞT¿gÙ#.zf³¸JaÄ&lt;br /&gt;
+o*7¾&lt;br /&gt;
session&lt;br /&gt;
pty-req&lt;br /&gt;
LC_TIME&lt;br /&gt;
failure&lt;br /&gt;
success&lt;br /&gt;
/usr/bin/rsh&lt;br /&gt;
shell&lt;br /&gt;
exec&lt;br /&gt;
subsystem&lt;br /&gt;
auth-agent-req@openssh.com&lt;br /&gt;
LC_ALL&lt;br /&gt;
LC_MESSAGES&lt;br /&gt;
LC_MONETARY&lt;br /&gt;
LC_NUMERIC&lt;br /&gt;
LC_COLLATE&lt;br /&gt;
LC_CTYPE&lt;br /&gt;
LANG&lt;br /&gt;
ssh.c&lt;br /&gt;
.ssh&lt;br /&gt;
.ssh/config&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
3des-cbc&lt;br /&gt;
Sun_SSH_1.1&lt;br /&gt;
.ssh/config&lt;br /&gt;
/bin/sh&lt;br /&gt;
has a different value&lt;br /&gt;
is unchanged&lt;br /&gt;
is unknown&lt;br /&gt;
Sun_SSH_1.1&lt;br /&gt;
sshconnect1.c&lt;br /&gt;
NULL&lt;br /&gt;
ssh-userauth&lt;br /&gt;
/usr/lib/ssh/ssh-keysign&lt;br /&gt;
sshconnect2.c&lt;br /&gt;
ssh-userauth&lt;br /&gt;
sshconnect2.c&lt;br /&gt;
none&lt;br /&gt;
password&lt;br /&gt;
keyboard-interactive&lt;br /&gt;
publickey&lt;br /&gt;
hostbased&lt;br /&gt;
gssapi-with-mic&lt;br /&gt;
gssapi-keyex&lt;br /&gt;
none,zlib&lt;br /&gt;
zlib,none&lt;br /&gt;
none,zlib&lt;br /&gt;
hmac-md5,hmac-sha1,hmac-sha1-96,hmac-md5-96&lt;br /&gt;
aes128-ctr,aes128-cbc,arcfour,3des-cbc,blowfish-cbc&lt;br /&gt;
ssh-rsa,ssh-dss&lt;br /&gt;
diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1&lt;br /&gt;
clientloop.c&lt;br /&gt;
authentication agent connection&lt;br /&gt;
clientloop.c&lt;br /&gt;
forwarded-tcpip&lt;br /&gt;
clientloop.c&lt;br /&gt;
break&lt;br /&gt;
window-change&lt;br /&gt;
&amp;lt;unknown&amp;gt;&lt;br /&gt;
dsa w/o comment&lt;br /&gt;
rsa w/o comment&lt;br /&gt;
&amp;lt;no key&amp;gt;&lt;br /&gt;
x11-req&lt;br /&gt;
../common/channels.c&lt;br /&gt;
connected x11 socket&lt;br /&gt;
../common/channels.c&lt;br /&gt;
x11 listener&lt;br /&gt;
port listener&lt;br /&gt;
connected socket&lt;br /&gt;
../common/channels.c&lt;br /&gt;
unknown reason&lt;br /&gt;
resource shortage&lt;br /&gt;
unknown channel type&lt;br /&gt;
connect failed&lt;br /&gt;
administratively prohibited&lt;br /&gt;
../common/channels.c&lt;br /&gt;
accepted auth socket&lt;br /&gt;
direct-tcpip&lt;br /&gt;
dynamic-tcpip&lt;br /&gt;
forwarded-tcpip&lt;br /&gt;
accepted x11 socket&lt;br /&gt;
direct-tcpip&lt;br /&gt;
arcfour&lt;br /&gt;
&amp;lt;unknown&amp;gt;&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes128-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish&lt;br /&gt;
3des&lt;br /&gt;
none&lt;br /&gt;
Probe-*&lt;br /&gt;
*SSH_Version_Mapper*&lt;br /&gt;
*OSU_0*,OSU_1.0*,OSU_1.1*,OSU_1.2*,OSU_1.3*,OSU_1.4*,OSU_1.5alpha1*,OSU_1.5alpha2*,OSU_1.5alpha3*&lt;br /&gt;
*SSH Compatible Server*&lt;br /&gt;
1.2.1*,1.2.2*,1.2.3*&lt;br /&gt;
1.3.2*&lt;br /&gt;
1.2.18*,1.2.19*,1.2.20*,1.2.21*,1.2.22*&lt;br /&gt;
1.7 SecureFX*&lt;br /&gt;
3.0 SecureCRT*&lt;br /&gt;
3.0.*&lt;br /&gt;
2.3.*&lt;br /&gt;
2.2.0*,2.3.0*&lt;br /&gt;
2.0.*&lt;br /&gt;
2.0.11*,2.0.12*&lt;br /&gt;
2.0.13*,2.0.14*,2.0.15*,2.0.16*,2.0.17*,2.0.18*,2.0.19*&lt;br /&gt;
2.1 *&lt;br /&gt;
2.1.0*&lt;br /&gt;
*MindTerm*&lt;br /&gt;
Sun_SSH_1.0*&lt;br /&gt;
Sun_SSH_1.0.*&lt;br /&gt;
OpenSSH*&lt;br /&gt;
OpenSSH_3.6*,OpenSSH_3.7*,OpenSSH_3.8*&lt;br /&gt;
OpenSSH_3.2*,OpenSSH_3.3*,OpenSSH_3.4*,OpenSSH_3.5*&lt;br /&gt;
OpenSSH_2.*,OpenSSH_3.0*,OpenSSH_3.1*&lt;br /&gt;
OpenSSH_2.9p*&lt;br /&gt;
OpenSSH_2.5.3*&lt;br /&gt;
OpenSSH_2.5.0*,OpenSSH_2.5.1*,OpenSSH_2.5.2*&lt;br /&gt;
OpenSSH_2.5.0p1*,OpenSSH_2.5.1p1*&lt;br /&gt;
OpenSSH_2.3.*&lt;br /&gt;
OpenSSH_2.3.0*&lt;br /&gt;
OpenSSH-2.0*,OpenSSH-2.1*,OpenSSH_2.1*,OpenSSH_2.2*&lt;br /&gt;
Conversion to UTF-8 failed due topreposterous space requirements&lt;br /&gt;
Cannot convert UTF-8 strings to the local codeset&lt;br /&gt;
Cannot convert ASCII strings to the local codeset&lt;br /&gt;
i-default&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha1&lt;br /&gt;
ssh-dss&lt;br /&gt;
ssh-rsa&lt;br /&gt;
unknown&lt;br /&gt;
ssh-unknown&lt;br /&gt;
RSA1&lt;br /&gt;
server-&amp;gt;client&lt;br /&gt;
client-&amp;gt;server&lt;br /&gt;
../common/kex.c&lt;br /&gt;
../common/kexdhc.c&lt;br /&gt;
../common/kexgexc.c&lt;br /&gt;
internal error&lt;br /&gt;
debug3&lt;br /&gt;
debug2&lt;br /&gt;
debug1&lt;br /&gt;
error&lt;br /&gt;
fatal&lt;br /&gt;
closed&lt;br /&gt;
wait_oclose&lt;br /&gt;
drain&lt;br /&gt;
open&lt;br /&gt;
closed&lt;br /&gt;
wait_ieof&lt;br /&gt;
drain&lt;br /&gt;
open&lt;br /&gt;
../common/packet.c&lt;br /&gt;
/usr/lib/ssh/ssh-askpass&lt;br /&gt;
correct&lt;br /&gt;
error&lt;br /&gt;
incorrect&lt;br /&gt;
host&lt;br /&gt;
~/.ssh/known_hosts2&lt;br /&gt;
/etc/ssh/ssh_known_hosts2&lt;br /&gt;
~/.ssh/known_hosts&lt;br /&gt;
/etc/ssh/ssh_known_hosts&lt;br /&gt;
.ssh/id_dsa&lt;br /&gt;
.ssh/id_rsa&lt;br /&gt;
.ssh/identity&lt;br /&gt;
/usr/openwin/bin/xauth&lt;br /&gt;
&amp;lt;NONE&amp;gt;&lt;br /&gt;
FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF&lt;br /&gt;
/etc/ssh/primes&lt;br /&gt;
/etc/ssh/moduli&lt;br /&gt;
unknown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Solaris|binary files quick reference]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Unix_command_jokes&amp;diff=2262</id>
		<title>Unix command jokes</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Unix_command_jokes&amp;diff=2262"/>
		<updated>2009-10-13T10:06:46Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Here&amp;#039;s some funny Unix command and error messages.  A few I&amp;#039;ve come up with, and the rest I&amp;#039;ve borrow.  For the ones with %, they work inside of csh shell. The ones with the $ pr…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here&#039;s some funny Unix command and error messages.  A few I&#039;ve come up with, and the rest I&#039;ve borrow.  For the ones with %, they work inside of csh shell. The ones with the $ prompt work in bash. Thanks jimbo@statsci.com.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% %perfect&lt;br /&gt;
%perfect: No such job&lt;br /&gt;
$ date &amp;quot;with supermodel&amp;quot;&lt;br /&gt;
date: invalid date `with supermodel&#039;&lt;br /&gt;
$ who mom likes&lt;br /&gt;
begge1   pts/84       Oct 13 18:41 (x.x.x.x)&lt;br /&gt;
$ prove Hell&lt;br /&gt;
Hell...Hell does not exist&lt;br /&gt;
% How&#039;s my scripting skills?&lt;br /&gt;
Unmatched &#039;&lt;br /&gt;
% [Where is Jimmy Hoffa?&lt;br /&gt;
Missing ]&lt;br /&gt;
% ^How did the sex change^ operation go?&lt;br /&gt;
Modifier failed&lt;br /&gt;
% If I had a ( for every $ Congress spent, what would I have?&lt;br /&gt;
Too many (&#039;s&lt;br /&gt;
% man: why did you get a divorce?&lt;br /&gt;
man:: Too many arguments&lt;br /&gt;
%blow&lt;br /&gt;
%blow: No such job&lt;br /&gt;
% \(-&lt;br /&gt;
(-: Command not found&lt;br /&gt;
$ PATH=pretending! /usr/bin/which sense&lt;br /&gt;
no sense in pretending!&lt;br /&gt;
%  !bluemoon&lt;br /&gt;
bluemoon: Event not found&lt;br /&gt;
scan for &amp;lt;&amp;lt;&amp;quot;Arnold Schwarzenegger&amp;quot;^D&lt;br /&gt;
&amp;quot;Arnold Schwarzenegger&amp;quot;: &amp;lt;&amp;lt; terminator not found&lt;br /&gt;
% look into &amp;quot;my eyes&amp;quot;&lt;br /&gt;
look: can&#039;t open my eyes&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Unix]]&lt;br /&gt;
[[Category:Bash]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=HttPerf&amp;diff=2261</id>
		<title>HttPerf</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=HttPerf&amp;diff=2261"/>
		<updated>2009-10-12T06:22:49Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First, compile [http://linux.die.net/man/1/httperf httperf] for your platform.  It works just fine under 32 or 64 bit.  Use &#039;&#039;&#039;file&#039;&#039;&#039; to verify the binary matches your platform.&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ file /home/ec2/bin/httperf &lt;br /&gt;
/home/ec2/bin/httperf: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped&lt;br /&gt;
$ file /usr/local/bin/httperf &lt;br /&gt;
/usr/local/bin/httperf: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll want ssl compiled in.  You can either check to see if the &#039;--ssl&#039; option is available in help, or better yet, check to see if the executable links to the ssl libaries.  In Ubuntu I had to make sure I had &#039;libc6&#039;, &#039;libssl0.9.8&#039;, and &#039;libssl-dev&#039; installed before compiling. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ldd /usr/local/bin/httperf &lt;br /&gt;
	libresolv.so.2 =&amp;gt; /lib/libresolv.so.2 (0x00002b3181afe000)&lt;br /&gt;
	libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x00002b3181d13000)&lt;br /&gt;
	libssl.so.0.9.8 =&amp;gt; /usr/lib/libssl.so.0.9.8 (0x00002b3181f2c000)&lt;br /&gt;
	libcrypto.so.0.9.8 =&amp;gt; /usr/lib/libcrypto.so.0.9.8 (0x00002b3182175000)&lt;br /&gt;
	libm.so.6 =&amp;gt; /lib/libm.so.6 (0x00002b31824f7000)&lt;br /&gt;
	libc.so.6 =&amp;gt; /lib/libc.so.6 (0x00002b3182778000)&lt;br /&gt;
	libdl.so.2 =&amp;gt; /lib/libdl.so.2 (0x00002b3182ad3000)&lt;br /&gt;
	libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x00002b3182cd8000)&lt;br /&gt;
	/lib64/ld-linux-x86-64.so.2 (0x00002b31818e0000)&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ran a quick test against Amazon to get an idea of the capacity of my client machine.  Looks like I can sustain about 45 conn/s and 455 req/s.&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ httperf --timeout=5 --client=0/1 --server=www.amazon.com --port=443 --uri=/favicon.ico --rate=60 --send-buffer=4096 \&lt;br /&gt;
--recv-buffer=16384 --ssl --num-conns=500 --num-calls=10&lt;br /&gt;
httperf --timeout=5 --client=0/1 --server=www.amazon.com --port=443 --uri=/favicon.ico --rate=60 --send-buffer=4096 --recv-buffer=16384 --ssl --num-conns=500 --num-calls=10&lt;br /&gt;
Maximum connect burst length: 5&lt;br /&gt;
&lt;br /&gt;
Total: connections 500 requests 5000 replies 5000 test-duration 10.982 s&lt;br /&gt;
&lt;br /&gt;
Connection rate: 45.5 conn/s (22.0 ms/conn, &amp;lt;=94 concurrent connections)&lt;br /&gt;
Connection time [ms]: min 385.9 avg 1014.7 max 5818.1 median 503.5 stddev 1004.4&lt;br /&gt;
Connection time [ms]: connect 220.6&lt;br /&gt;
Connection length [replies/conn]: 10.000&lt;br /&gt;
&lt;br /&gt;
Request rate: 455.3 req/s (2.2 ms/req)&lt;br /&gt;
Request size [B]: 78.0&lt;br /&gt;
&lt;br /&gt;
Reply rate [replies/s]: min 452.6 avg 490.6 max 528.6 stddev 53.7 (2 samples)&lt;br /&gt;
Reply time [ms]: response 69.1 transfer 10.3&lt;br /&gt;
Reply size [B]: header 272.0 content 1406.0 footer 0.0 (total 1678.0)&lt;br /&gt;
Reply status: 1xx=0 2xx=5000 3xx=0 4xx=0 5xx=0&lt;br /&gt;
&lt;br /&gt;
CPU time [s]: user 1.10 system 6.54 (user 10.0% system 59.6% total 69.6%)&lt;br /&gt;
Net I/O: 781.1 KB/s (6.4*10^6 bps)&lt;br /&gt;
&lt;br /&gt;
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0&lt;br /&gt;
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cygwin ==&lt;br /&gt;
&lt;br /&gt;
Httperf works great from Cygwin.  It&#039;s not a standard package, but it&#039;s easy to build from source.  The usual ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install works fine.  &lt;br /&gt;
&lt;br /&gt;
The only caveat is that you can&#039;t use the &#039;--hog&#039; option.  This option allows httperf to use non ephemeral ports (in the range from 1024 to 5000).  If you use the --hog option, you may get this error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
httperf: connection failed with unexpected error 106&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slicehost ==&lt;br /&gt;
&lt;br /&gt;
I ran a quick test again my own host.  Unfortunately, the host I ran it from is in Australia, and is on a slow DSL line. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ httperf --timeout=5 --client=0/1 --server=www.theeggeadventure.com --port=80 --uri=/wikimedia/index.php/HttPerf --rate=60 --num-conns=10 --num-calls=10&lt;br /&gt;
httperf --timeout=5 --client=0/1 --server=www.theeggeadventure.com --port=80 --uri=/wikimedia/index.php/HttPerf --rate=60 --send-buffer=4096 --recv-buffer=16384 --num-conns=10 --num-calls=10&lt;br /&gt;
httperf: warning: open file limit &amp;gt; FD_SETSIZE; limiting max. # of open files to FD_SETSIZE&lt;br /&gt;
Maximum connect burst length: 1&lt;br /&gt;
&lt;br /&gt;
Total: connections 10 requests 100 replies 100 test-duration 21.612 s&lt;br /&gt;
&lt;br /&gt;
Connection rate: 0.5 conn/s (2161.2 ms/conn, &amp;lt;=10 concurrent connections)&lt;br /&gt;
Connection time [ms]: min 18249.0 avg 19896.4 max 21460.8 median 20134.5 stddev 1111.7&lt;br /&gt;
Connection time [ms]: connect 219.4&lt;br /&gt;
Connection length [replies/conn]: 10.000&lt;br /&gt;
&lt;br /&gt;
Request rate: 4.6 req/s (216.1 ms/req)&lt;br /&gt;
Request size [B]: 104.0&lt;br /&gt;
&lt;br /&gt;
Reply rate [replies/s]: min 3.2 avg 4.6 max 6.2 stddev 1.3 (4 samples)&lt;br /&gt;
Reply time [ms]: response 1242.7 transfer 725.0&lt;br /&gt;
Reply size [B]: header 728.0 content 23325.0 footer 2.0 (total 24055.0)&lt;br /&gt;
Reply status: 1xx=0 2xx=100 3xx=0 4xx=0 5xx=0&lt;br /&gt;
&lt;br /&gt;
CPU time [s]: user 2.02 system 19.58 (user 9.3% system 90.6% total 99.9%)&lt;br /&gt;
Net I/O: 109.2 KB/s (0.9*10^6 bps)&lt;br /&gt;
&lt;br /&gt;
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0&lt;br /&gt;
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other tests ==&lt;br /&gt;
&lt;br /&gt;
While there are some pay sites which will do stress tests, and you can do your own with EC2, you can get some good metrics from [http://tools.pingdom.com/?url=http://www.theeggeadventure.com/wikimedia/index.php/HttPerf&amp;amp;treeview=0&amp;amp;column=objectID&amp;amp;order=1&amp;amp;type=0&amp;amp;save=true Pingdom.com] and [http://browsershots.org/http://www.theeggeadventure.com/wikimedia/index.php/Cygwin_Tips Browsershots.org].  Browsershots is quite neat because a whole bunch of different browser will hit your site.  You don&#039;t have control or metrics, but it&#039;s a pretty good gauge of what web users will see.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Cygwin]]&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Title_Case_to_Camel_Case&amp;diff=2259</id>
		<title>Title Case to Camel Case</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Title_Case_to_Camel_Case&amp;diff=2259"/>
		<updated>2009-10-12T06:14:26Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Here&amp;#039;s a couple of one liners for converting text to a Camel Case, useful for Java code generation.  &amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt; echo &amp;quot;Title Case to Camel Case&amp;quot; | ruby -ne &amp;#039;puts $_.gsub(…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here&#039;s a couple of one liners for converting text to a Camel Case, useful for Java code generation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;Title Case to Camel Case&amp;quot; | ruby -ne &#039;puts $_.gsub(/\b\w/){$&amp;amp;.upcase}.gsub(/ /, &amp;quot;&amp;quot;).gsub(/^(.)/){$&amp;amp;.downcase}&#039;&lt;br /&gt;
titleCaseToCamelCase&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;Title Case to Camel Case&amp;quot; | perl -e &#039;while(&amp;lt;&amp;gt;) { split(/ /); print lcfirst(shift(@_)); print map(ucfirst,@_); }&#039;&lt;br /&gt;
titleCaseToCamelCase&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;br /&gt;
[[Category:Ruby]]&lt;br /&gt;
[[Category:Perl]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Ruby_Yaml_to_Enum&amp;diff=2256</id>
		<title>Ruby Yaml to Enum</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Ruby_Yaml_to_Enum&amp;diff=2256"/>
		<updated>2009-10-09T06:49:26Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Generate Java 1.5 enums from a YAML file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env ruby&lt;br /&gt;
#&lt;br /&gt;
# Single value enums are frequently needed and they usually require additional code to lookup or access the enum&lt;br /&gt;
# based on a value.  This Ruby script generates a .java enum based on a YAML input file&lt;br /&gt;
#&lt;br /&gt;
require &#039;yaml&#039;&lt;br /&gt;
require &#039;erb&#039;&lt;br /&gt;
&lt;br /&gt;
def java_name(s)&lt;br /&gt;
    s.upcase.gsub(&#039;/&#039;, &#039;_&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
template = ERB.new &amp;lt;&amp;lt;-EOF&lt;br /&gt;
package &amp;lt;%= @package %&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
public enum &amp;lt;%= @enum %&amp;gt; {&lt;br /&gt;
    EMPTY(&amp;quot;&amp;quot;),&amp;lt;% @enums.each do |i| %&amp;gt;&lt;br /&gt;
    &amp;lt;%= java_name(i) %&amp;gt;(&amp;quot;&amp;lt;%= i %&amp;gt;&amp;quot;)&amp;lt;%= (i == @enums[-1]) ? &#039;;&#039; : &#039;,&#039; %&amp;gt;&amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    private final String value;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;%= @enum %&amp;gt;(String value) {&lt;br /&gt;
        this.value = value;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return value;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public static &amp;lt;%= @enum %&amp;gt; getValue(String value) {&lt;br /&gt;
        for (&amp;lt;%= @enum %&amp;gt; e : values()) {&lt;br /&gt;
            if (e.value.equals(value)) {&lt;br /&gt;
                return e;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return EMPTY;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
if ARGV.size == 0 then&lt;br /&gt;
    srcDir = &#039;C:\\dev\\src\\java\\com&#039;&lt;br /&gt;
    destDir = &#039;C:\\dev\\generated-src\\java\\com&#039;&lt;br /&gt;
else&lt;br /&gt;
    srcDir = ARGV[0]&lt;br /&gt;
    destDir = ARGV[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
class Fields&lt;br /&gt;
    attr_accessor :enums, :name, :package, :enum&lt;br /&gt;
    def initialize(file)&lt;br /&gt;
        @name = /(com.*)/.match( file.gsub(&#039;\\&#039;, &#039;.&#039;).gsub(&#039;/&#039;, &#039;.&#039;) )[1].gsub(/\.yml$/, &#039;.java&#039;)&lt;br /&gt;
        @package = @name.split(&#039;.&#039;)[0..-3].join(&#039;.&#039;)&lt;br /&gt;
        @enum = @name.split(&#039;.&#039;)[-2]&lt;br /&gt;
    end&lt;br /&gt;
    # Support templating of member data.&lt;br /&gt;
    def get_binding&lt;br /&gt;
        binding&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if !File.directory?(destDir) then&lt;br /&gt;
    Dir.mkdir(destDir)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Dir.entries(srcDir).select{|f| File.file?(File.join(srcDir, f)) &amp;amp;&amp;amp; File.extname(f) == &amp;quot;.yml&amp;quot; }.each do |f|&lt;br /&gt;
&lt;br /&gt;
    file = File.join(srcDir, f)&lt;br /&gt;
&lt;br /&gt;
    data = Fields.new(file)&lt;br /&gt;
    File.open( file, &amp;quot;r&amp;quot; ) do |yf|&lt;br /&gt;
        data.enums = YAML::load( yf )&lt;br /&gt;
        output = template.result(data.get_binding)&lt;br /&gt;
        destFile = File.join(destDir, data.enum + &#039;.java&#039;)&lt;br /&gt;
        if !File.exists?(destFile) || File.read(destFile) != output then&lt;br /&gt;
            File.open(destFile, &#039;a+&#039;) do |dest|&lt;br /&gt;
                dest.write output&lt;br /&gt;
                dest.truncate(dest.pos)&lt;br /&gt;
            end&lt;br /&gt;
            puts &amp;quot;Updated #{destFile}&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            puts &amp;quot;#{destFile} is up to date&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample Colors.yml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 - red&lt;br /&gt;
 - green&lt;br /&gt;
 - blue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby|Yaml to Enum]]&lt;br /&gt;
[[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Ruby_Tips&amp;diff=2255</id>
		<title>Ruby Tips</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Ruby_Tips&amp;diff=2255"/>
		<updated>2009-10-09T06:49:05Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Shuffle a word ==&lt;br /&gt;
&lt;br /&gt;
The same technique to shuffle an array of numbers can be used to shuffle words.  This is great if you want to scramble words, as in creating anagram puzzles.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
&#039;anagram&#039;.split(//).shuffle.join&lt;br /&gt;
=&amp;gt; &amp;quot;gnaarma&amp;quot;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shuffle a list of numbers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
(1..14).to_a.sort {rand &amp;lt;=&amp;gt; 0.5}&lt;br /&gt;
=&amp;gt; [14, 8, 1, 9, 3, 10, 5, 11, 7, 12, 4, 13, 2, 6]&lt;br /&gt;
# or&lt;br /&gt;
(1..14).to_a.shuffle&lt;br /&gt;
=&amp;gt; [2, 5, 8, 12, 4, 3, 6, 13, 7, 11, 10, 1, 9, 14]&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rename files ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for f in `ls`; do mv -u $f $(ruby -e &amp;quot;puts &#039;$f&#039;.gsub(&#039;14&#039;,&#039;13&#039;)&amp;quot;); done&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check CLASSPATH ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env ruby&lt;br /&gt;
#&lt;br /&gt;
# Checks to make sure all the entries on the classpath are valid&lt;br /&gt;
&lt;br /&gt;
# We only want to emit color codes if we&#039;re outputting to a terminal.  If this is getting piped into grep or less, we&#039;ll ignore these&lt;br /&gt;
red=STDOUT.isatty ? &amp;quot;\e[1;31m&amp;quot; :&amp;quot;&amp;quot;&lt;br /&gt;
normal=STDOUT.isatty ? &amp;quot;\e[0;0m&amp;quot; : &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp = ENV[&#039;CLASSPATH&#039;]&lt;br /&gt;
&lt;br /&gt;
if cp == nil then&lt;br /&gt;
  STDERR.puts &amp;quot;No CLASSPATH set&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
else&lt;br /&gt;
  # We&#039;ll assume a Windows CP.  We could do something ticky, but we have to be very tricky, because we&#039;re probably in Cygwin&lt;br /&gt;
  cp.split(&#039;;&#039;).each do |file|&lt;br /&gt;
    if !File.readable?(file) then&lt;br /&gt;
      STDERR.puts &amp;quot;Warning: Classpath file #{red}#{file}#{normal} can&#039;t be read&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== nextPrime ==&lt;br /&gt;
&lt;br /&gt;
Short script to return the next prime number.&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env ruby&lt;br /&gt;
&lt;br /&gt;
def isPrime(n)&lt;br /&gt;
  prime = true&lt;br /&gt;
  3.step(Math::sqrt(n), 2) do |i|&lt;br /&gt;
    if (n % i == 0) then&lt;br /&gt;
      prime = false&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  if (( n%2 !=0 &amp;amp;&amp;amp; prime &amp;amp;&amp;amp; n &amp;gt; 2) || n == 2) then&lt;br /&gt;
    return true&lt;br /&gt;
  else&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
i = ARGV[0].to_i&lt;br /&gt;
&lt;br /&gt;
while !isPrime(i)&lt;br /&gt;
  i += 1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
puts i&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Colorize Glimpse]] ==&lt;br /&gt;
&lt;br /&gt;
== Tab Completion in IRb ==&lt;br /&gt;
&lt;br /&gt;
Add this to your .irbrc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
 require &#039;irb/completion&#039;&lt;br /&gt;
 ARGV.concat [ &amp;quot;--readline&amp;quot;, &amp;quot;--prompt-mode&amp;quot;, &amp;quot;simple&amp;quot; ]&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks [[http://whytheluckystiff.net/clog/ruby/tabCompletionInIRb.html why]].&lt;br /&gt;
&lt;br /&gt;
== [[Ruby Patch to Zip]] ==&lt;br /&gt;
&lt;br /&gt;
A script to take an Eclipse generated patch file, and zip every file which is referenced in the patch.&lt;br /&gt;
&lt;br /&gt;
== Ruby gems on Cygwin ==&lt;br /&gt;
aka how to fix &#039;&#039;ruby: no such file to load -- ubygem (LoadError)&#039;&#039; or &#039;&#039;/usr/bin/ruby: no such file to load -- ubygems (LoadError)&#039;&#039;&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ unset RUBYOPT&lt;br /&gt;
$ cd /tmp/&lt;br /&gt;
$ wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz&lt;br /&gt;
$ tar -zxf rubygems-0.9.4.tgz&lt;br /&gt;
$ cd rubygems-0.9.4&lt;br /&gt;
$ ruby setup.rb&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Ruby detab]] ==&lt;br /&gt;
&lt;br /&gt;
A script for removing tabs from source files&lt;br /&gt;
&lt;br /&gt;
== [[Ruby Sybase Solaris]] ==&lt;br /&gt;
&lt;br /&gt;
== Error Messages ==&lt;br /&gt;
&lt;br /&gt;
*[[uninitialized constant PStore]]&lt;br /&gt;
*[[nonexistent sybase adapter]]&lt;br /&gt;
&lt;br /&gt;
== irb ==&lt;br /&gt;
&lt;br /&gt;
Setup tab completion and history here:&lt;br /&gt;
http://wiki.rubygarden.org/Ruby/page/show/Irb/TipsAndTricks&lt;br /&gt;
&lt;br /&gt;
==[[Ruby Sybase Install]]==&lt;br /&gt;
&lt;br /&gt;
==Escape invalid XML characters.==&lt;br /&gt;
&lt;br /&gt;
This is useful for running stuff through before posting it to the wiki.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;&amp;lt;a href=\&amp;quot;foo\&amp;quot;&amp;gt;&amp;quot; | ruby -pe &#039;gsub!(/\&amp;amp;/, &amp;quot;&amp;amp;amp;&amp;quot;); gsub!(/&amp;quot;/, &amp;quot;&amp;amp;quot;&amp;quot;); gsub!(/&amp;lt;/, &amp;quot;&amp;amp;lt;&amp;quot;); gsub!(/&amp;gt;/, &amp;quot;&amp;amp;gt;&amp;quot;); &#039;&lt;br /&gt;
&amp;amp;amp;lt;a href=&amp;amp;amp;quot;foo&amp;amp;amp;quot;&amp;amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby|Tips]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Ruby_Yaml_to_Enum&amp;diff=2254</id>
		<title>Ruby Yaml to Enum</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Ruby_Yaml_to_Enum&amp;diff=2254"/>
		<updated>2009-10-09T06:46:07Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env ruby&lt;br /&gt;
#&lt;br /&gt;
# Single value enums are frequently needed and they usually require additional code to lookup or access the enum&lt;br /&gt;
# based on a value.  This Ruby script generates a .java enum based on a YAML input file&lt;br /&gt;
#&lt;br /&gt;
require &#039;yaml&#039;&lt;br /&gt;
require &#039;erb&#039;&lt;br /&gt;
&lt;br /&gt;
def java_name(s)&lt;br /&gt;
    s.upcase.gsub(&#039;/&#039;, &#039;_&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
template = ERB.new &amp;lt;&amp;lt;-EOF&lt;br /&gt;
package &amp;lt;%= @package %&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
public enum &amp;lt;%= @enum %&amp;gt; {&lt;br /&gt;
    EMPTY(&amp;quot;&amp;quot;),&amp;lt;% @enums.each do |i| %&amp;gt;&lt;br /&gt;
    &amp;lt;%= java_name(i) %&amp;gt;(&amp;quot;&amp;lt;%= i %&amp;gt;&amp;quot;)&amp;lt;%= (i == @enums[-1]) ? &#039;;&#039; : &#039;,&#039; %&amp;gt;&amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    private final String value;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;%= @enum %&amp;gt;(String value) {&lt;br /&gt;
        this.value = value;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return value;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public static &amp;lt;%= @enum %&amp;gt; getValue(String value) {&lt;br /&gt;
        for (&amp;lt;%= @enum %&amp;gt; e : values()) {&lt;br /&gt;
            if (e.value.equals(value)) {&lt;br /&gt;
                return e;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return EMPTY;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
if ARGV.size == 0 then&lt;br /&gt;
    srcDir = &#039;C:\\dev\\src\\java\\com&#039;&lt;br /&gt;
    destDir = &#039;C:\\dev\\generated-src\\java\\com&#039;&lt;br /&gt;
else&lt;br /&gt;
    srcDir = ARGV[0]&lt;br /&gt;
    destDir = ARGV[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
class Fields&lt;br /&gt;
    attr_accessor :enums, :name, :package, :enum&lt;br /&gt;
    def initialize(file)&lt;br /&gt;
        @name = /(com.*)/.match( file.gsub(&#039;\\&#039;, &#039;.&#039;).gsub(&#039;/&#039;, &#039;.&#039;) )[1].gsub(/\.yml$/, &#039;.java&#039;)&lt;br /&gt;
        @package = @name.split(&#039;.&#039;)[0..-3].join(&#039;.&#039;)&lt;br /&gt;
        @enum = @name.split(&#039;.&#039;)[-2]&lt;br /&gt;
    end&lt;br /&gt;
    # Support templating of member data.&lt;br /&gt;
    def get_binding&lt;br /&gt;
        binding&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if !File.directory?(destDir) then&lt;br /&gt;
    Dir.mkdir(destDir)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Dir.entries(srcDir).select{|f| File.file?(File.join(srcDir, f)) &amp;amp;&amp;amp; File.extname(f) == &amp;quot;.yml&amp;quot; }.each do |f|&lt;br /&gt;
&lt;br /&gt;
    file = File.join(srcDir, f)&lt;br /&gt;
&lt;br /&gt;
    data = Fields.new(file)&lt;br /&gt;
    File.open( file, &amp;quot;r&amp;quot; ) do |yf|&lt;br /&gt;
        data.enums = YAML::load( yf )&lt;br /&gt;
        output = template.result(data.get_binding)&lt;br /&gt;
        destFile = File.join(destDir, data.enum + &#039;.java&#039;)&lt;br /&gt;
        if !File.exists?(destFile) || File.read(destFile) != output then&lt;br /&gt;
            File.open(destFile, &#039;a+&#039;) do |dest|&lt;br /&gt;
                dest.write output&lt;br /&gt;
                dest.truncate(dest.pos)&lt;br /&gt;
            end&lt;br /&gt;
            puts &amp;quot;Updated #{destFile}&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            puts &amp;quot;#{destFile} is up to date&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample Colors.yml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 - red&lt;br /&gt;
 - green&lt;br /&gt;
 - blue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby|Yaml to Enum]]&lt;br /&gt;
[[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=EggeWiki:Privacy_policy&amp;diff=2253</id>
		<title>EggeWiki:Privacy policy</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=EggeWiki:Privacy_policy&amp;diff=2253"/>
		<updated>2009-10-09T06:02:26Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Policy: all your browser are belong to us&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Policy: all your browser are belong to us&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=EggeWiki:About&amp;diff=2252</id>
		<title>EggeWiki:About</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=EggeWiki:About&amp;diff=2252"/>
		<updated>2009-10-09T06:00:31Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Part of the enjoyment of being a computer programmer is solving new problems every day.  This wiki is my &amp;#039;engineering notebook&amp;#039;.    Other sites of interest:  * http://ring3softwa…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Part of the enjoyment of being a computer programmer is solving new problems every day.  This wiki is my &#039;engineering notebook&#039;.  &lt;br /&gt;
&lt;br /&gt;
Other sites of interest:&lt;br /&gt;
&lt;br /&gt;
* http://ring3software.com - my iphone app development&lt;br /&gt;
* http://stackoverflow.com/users/14139/brianegge - my profile on Stackoverflow&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=File:Wiki146.png&amp;diff=2251</id>
		<title>File:Wiki146.png</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=File:Wiki146.png&amp;diff=2251"/>
		<updated>2009-10-09T05:45:33Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Java_File.listFiles_order&amp;diff=2249</id>
		<title>Java File.listFiles order</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Java_File.listFiles_order&amp;diff=2249"/>
		<updated>2009-10-09T04:30:30Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The documentation for the Java JDK specifically mentions that the files returns can be in any order.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;There is no guarantee that the name strings in the resulting array will appear in any specific order; they are not, in particular, guaranteed to appear in alphabetical order.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The actual ordering of the files varies from platform to platform, and often is a result of the physical order of the files in the directory structure.  On Solaris, this order will often reverse if you copy a folder.  Generally this is not noticeable, as most tools sort the files in some order before returning them to the user.  &lt;br /&gt;
&lt;br /&gt;
Unfortunately, file ordering is important when the files are added to a classloader.  As files at the front of the classpath are searched before files at the end, if you have two different classes in your classpath, the order may not be stable.  This isn&#039;t a problem if you specify the full classpath when you launch Java, but if you load files dynamically, like [https://jira.jboss.org/jira/browse/JBAS-5467 JBoss] does, then your behavior is subject to change.  The following is a test case which may pass depending on your platform and file system.  For me, it fails on Windows XP, but passes on Solaris 10. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	public static void main(String[] args) throws IOException {&lt;br /&gt;
		final List&amp;lt;String&amp;gt; files =  java.util.Arrays.asList(&amp;quot;c&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;);&lt;br /&gt;
		for (String f : files) {&lt;br /&gt;
			File file = new File(f);&lt;br /&gt;
			file.createNewFile();&lt;br /&gt;
			file.deleteOnExit();	&lt;br /&gt;
		}&lt;br /&gt;
		FilenameFilter filenameFilter = new FilenameFilter() {&lt;br /&gt;
			public boolean accept(File dir, String name) {&lt;br /&gt;
				return files.contains(name);&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
		File[] ondisk = new File(&amp;quot;.&amp;quot;).listFiles(filenameFilter);&lt;br /&gt;
		for(int i = 0; i &amp;lt; files.size(); i++) {&lt;br /&gt;
			assert ondisk[i].getName().equals(files.get(i)) : &amp;quot;Expected file &amp;quot; + files.get(i) + &amp;quot; but found &amp;quot; + ondisk[i].getName();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your application, you may want to sort the files alphabetically, or by last modified.  The following example emulates the &#039;&#039;&#039;ls -ta&#039;&#039;&#039; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	private static final Comparator&amp;lt;File&amp;gt; lastModified = new Comparator&amp;lt;File&amp;gt;() {&lt;br /&gt;
		@Override&lt;br /&gt;
		public int compare(File o1, File o2) {&lt;br /&gt;
			return o1.lastModified() == o2.lastModified() ? 0 : (o1.lastModified() &amp;lt; o2.lastModified() ? 1 : -1 ) ;&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
	public void testFileSort() throws Exception {&lt;br /&gt;
		File[] files = new File(&amp;quot;.&amp;quot;).listFiles();&lt;br /&gt;
		Arrays.sort(files, lastModified);&lt;br /&gt;
		System.out.println(Arrays.toString(files));&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Java_File.listFiles_order&amp;diff=2248</id>
		<title>Java File.listFiles order</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Java_File.listFiles_order&amp;diff=2248"/>
		<updated>2009-10-09T04:28:54Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The documentation for the Java JDK specifically mentions that the files returns can be in any order.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
     There is no guarantee that the name strings in the resulting array&lt;br /&gt;
     will appear in any specific order; they are not, in particular,&lt;br /&gt;
     guaranteed to appear in alphabetical order.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The actual ordering of the files varies from platform to platform, and often is a result of the physical order of the files in the directory structure.  On Solaris, this order will often reverse if you copy a folder.  Generally this is not noticeable, as most tools sort the files in some order before returning them to the user.  &lt;br /&gt;
&lt;br /&gt;
Unfortunately, file ordering is important when the files are added to a classloader.  As files at the front of the classpath are searched before files at the end, if you have two different classes in your classpath, the order may not be stable.  This isn&#039;t a problem if you specify the full classpath when you launch Java, but if you load files dynamically, like [https://jira.jboss.org/jira/browse/JBAS-5467 JBoss] does, then your behavior is subject to change.  The following is a test case which may pass depending on your platform and file system.  For me, it fails on Windows XP, but passes on Solaris 10. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	public static void main(String[] args) throws IOException {&lt;br /&gt;
		final List&amp;lt;String&amp;gt; files =  java.util.Arrays.asList(&amp;quot;c&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;);&lt;br /&gt;
		for (String f : files) {&lt;br /&gt;
			File file = new File(f);&lt;br /&gt;
			file.createNewFile();&lt;br /&gt;
			file.deleteOnExit();	&lt;br /&gt;
		}&lt;br /&gt;
		FilenameFilter filenameFilter = new FilenameFilter() {&lt;br /&gt;
			public boolean accept(File dir, String name) {&lt;br /&gt;
				return files.contains(name);&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
		File[] ondisk = new File(&amp;quot;.&amp;quot;).listFiles(filenameFilter);&lt;br /&gt;
		for(int i = 0; i &amp;lt; files.size(); i++) {&lt;br /&gt;
			assert ondisk[i].getName().equals(files.get(i)) : &amp;quot;Expected file &amp;quot; + files.get(i) + &amp;quot; but found &amp;quot; + ondisk[i].getName();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your application, you may want to sort the files alphabetically, or by last modified.  The following example emulates the &#039;&#039;&#039;ls -ta&#039;&#039;&#039; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
	private static final Comparator&amp;lt;File&amp;gt; lastModified = new Comparator&amp;lt;File&amp;gt;() {&lt;br /&gt;
		@Override&lt;br /&gt;
		public int compare(File o1, File o2) {&lt;br /&gt;
			return o1.lastModified() == o2.lastModified() ? 0 : (o1.lastModified() &amp;lt; o2.lastModified() ? 1 : -1 ) ;&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
	public void testFileSort() throws Exception {&lt;br /&gt;
		File[] files = new File(&amp;quot;.&amp;quot;).listFiles();&lt;br /&gt;
		Arrays.sort(files, lastModified);&lt;br /&gt;
		System.out.println(Arrays.toString(files));&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Mkmf_not_found&amp;diff=2227</id>
		<title>Mkmf not found</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Mkmf_not_found&amp;diff=2227"/>
		<updated>2009-09-19T08:02:02Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Today, on Ubuntu I tried to manually install mysql.  My first problem was this error:  &amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;  sudo ruby extconf.rb extconf.rb:1:in `require&amp;#039;: no such file to load -…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Today, on Ubuntu I tried to manually install mysql.  My first problem was this error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo ruby extconf.rb&lt;br /&gt;
extconf.rb:1:in `require&#039;: no such file to load -- mkmf (LoadError)&lt;br /&gt;
        from extconf.rb:1:in `&amp;lt;main&amp;gt;&#039;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This was fixed with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
 sudo aptitude install ruby1.9-dev&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby]]&lt;br /&gt;
[[Category:Mysql]]&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=File:Blankmap.png&amp;diff=2217</id>
		<title>File:Blankmap.png</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=File:Blankmap.png&amp;diff=2217"/>
		<updated>2009-09-12T12:17:22Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=File:Spam.png&amp;diff=2215</id>
		<title>File:Spam.png</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=File:Spam.png&amp;diff=2215"/>
		<updated>2009-09-10T12:48:20Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=File:Overload.png&amp;diff=2201</id>
		<title>File:Overload.png</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=File:Overload.png&amp;diff=2201"/>
		<updated>2009-08-30T09:02:51Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=File:StamfordPlaza.png&amp;diff=2199</id>
		<title>File:StamfordPlaza.png</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=File:StamfordPlaza.png&amp;diff=2199"/>
		<updated>2009-08-30T08:54:36Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=File:EdwardSt.png&amp;diff=2198</id>
		<title>File:EdwardSt.png</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=File:EdwardSt.png&amp;diff=2198"/>
		<updated>2009-08-30T08:53:41Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Main_Page&amp;diff=2156</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Main_Page&amp;diff=2156"/>
		<updated>2009-07-22T12:31:53Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* Technical Tips&lt;br /&gt;
** [[Linux Tips]]&lt;br /&gt;
** [[:Category:Solaris]]&lt;br /&gt;
** [[Windows Tips]]&lt;br /&gt;
*** [[Cygwin Tips]]&lt;br /&gt;
** [[OS X Tips]]&lt;br /&gt;
*** [[Emacs.app Intel Mac]]&lt;br /&gt;
** [[PHP Tips]]&lt;br /&gt;
** [[Java Tips]]&lt;br /&gt;
*** [[Curiously recurring template pattern]]&lt;br /&gt;
*** [[Java Plus Plus]]&lt;br /&gt;
*** [[Method Overloading]]&lt;br /&gt;
** [[Cxx Tips]]&lt;br /&gt;
** Python [[metasend]]&lt;br /&gt;
** [[Ruby Tips]]&lt;br /&gt;
** [[Sybase Tips]]&lt;br /&gt;
** [[Interview Questions]]&lt;br /&gt;
** [[Top 10 ways to increase traffic to your wiki]]&lt;br /&gt;
|&lt;br /&gt;
* Projects&lt;br /&gt;
** [[FINSIA]]&lt;br /&gt;
** [[Slicehost]]&lt;br /&gt;
** [[Parsers Presentation]]&lt;br /&gt;
** [[BeachProjects]]&lt;br /&gt;
** [[CCNJ Podcast]]&lt;br /&gt;
** [[CruiseControl Build Status]]&lt;br /&gt;
** [[GPS Meets Google Maps]]&lt;br /&gt;
** [[Xbox Linux Project]]&lt;br /&gt;
|&lt;br /&gt;
* Blogs&lt;br /&gt;
** [[Stack Overflow page design]]&lt;br /&gt;
** [[mimetex]]&lt;br /&gt;
** [[LG DV7821P]]&lt;br /&gt;
** [[Email Authentication]]&lt;br /&gt;
** [[Quotes]]&lt;br /&gt;
** [[Software Ungineering]]&lt;br /&gt;
** [[Password Security]]&lt;br /&gt;
** [[Visa Signature Concierge Service]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Template:728x90_as}}&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Main_Page&amp;diff=2155</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Main_Page&amp;diff=2155"/>
		<updated>2009-07-22T12:22:11Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Technical Tips&lt;br /&gt;
** [[Linux Tips]]&lt;br /&gt;
** [[:Category:Solaris]]&lt;br /&gt;
** [[Windows Tips]]&lt;br /&gt;
*** [[Cygwin Tips]]&lt;br /&gt;
** [[OS X Tips]]&lt;br /&gt;
*** [[Emacs.app Intel Mac]]&lt;br /&gt;
** [[PHP Tips]]&lt;br /&gt;
** [[Java Tips]]&lt;br /&gt;
*** [[Curiously recurring template pattern]]&lt;br /&gt;
*** [[Java Plus Plus]]&lt;br /&gt;
*** [[Method Overloading]]&lt;br /&gt;
** [[Cxx Tips]]&lt;br /&gt;
** Python [[metasend]]&lt;br /&gt;
** [[Ruby Tips]]&lt;br /&gt;
** [[Sybase Tips]]&lt;br /&gt;
** [[Interview Questions]]&lt;br /&gt;
** [[Top 10 ways to increase traffic to your wiki]]&lt;br /&gt;
&lt;br /&gt;
* Projects&lt;br /&gt;
** [[FINSIA]]&lt;br /&gt;
** [[Slicehost]]&lt;br /&gt;
** [[Parsers Presentation]]&lt;br /&gt;
** [[BeachProjects]]&lt;br /&gt;
** [[CCNJ Podcast]]&lt;br /&gt;
** [[CruiseControl Build Status]]&lt;br /&gt;
** [[GPS Meets Google Maps]]&lt;br /&gt;
** [[Xbox Linux Project]]&lt;br /&gt;
&lt;br /&gt;
* Blogs&lt;br /&gt;
** [[Stack Overflow page design]]&lt;br /&gt;
** [[mimetex]]&lt;br /&gt;
** [[LG DV7821P]]&lt;br /&gt;
** [[Email Authentication]]&lt;br /&gt;
** [[Quotes]]&lt;br /&gt;
** [[Software Ungineering]]&lt;br /&gt;
** [[Password Security]]&lt;br /&gt;
** [[Visa Signature Concierge Service]]&lt;br /&gt;
&lt;br /&gt;
{{Template:728x90_as}}&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Php_Expires_Header&amp;diff=2151</id>
		<title>Php Expires Header</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Php_Expires_Header&amp;diff=2151"/>
		<updated>2009-07-19T09:46:26Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add an expires header to cause the page to expire in 24 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$offset = 60 * 60 * 24; &lt;br /&gt;
$ExpStr = &amp;quot;Expires: &amp;quot; . gmdate(&amp;quot;D, d M Y H:i:s&amp;quot;, time() + $offset) . &amp;quot; GMT&amp;quot;; &lt;br /&gt;
header($ExpStr); &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Php|Expires header]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Php_Expires_Header&amp;diff=2150</id>
		<title>Php Expires Header</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Php_Expires_Header&amp;diff=2150"/>
		<updated>2009-07-19T09:45:42Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Add an expires header to cause the page to expire in 24 hours.  &amp;lt;geshi lang=&amp;quot;php&amp;quot;&amp;gt; $offset = 60 * 60 * 24;  $ExpStr = &amp;quot;Expires: &amp;quot; . gmdate(&amp;quot;D, d M Y H:i:s&amp;quot;, time() + $offset) . &amp;quot;…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add an expires header to cause the page to expire in 24 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$offset = 60 * 60 * 24; &lt;br /&gt;
$ExpStr = &amp;quot;Expires: &amp;quot; . gmdate(&amp;quot;D, d M Y H:i:s&amp;quot;, time() + $offset) . &amp;quot; GMT&amp;quot;; &lt;br /&gt;
header($ExpStr); &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Php]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=HttPerf&amp;diff=2137</id>
		<title>HttPerf</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=HttPerf&amp;diff=2137"/>
		<updated>2009-07-15T13:25:43Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First, compile [http://linux.die.net/man/1/httperf httperf] for your platform.  It works just fine under 32 or 64 bit.  Use &#039;&#039;&#039;file&#039;&#039;&#039; to verify the binary matches your platform.&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ file /home/ec2/bin/httperf &lt;br /&gt;
/home/ec2/bin/httperf: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped&lt;br /&gt;
$ file /usr/local/bin/httperf &lt;br /&gt;
/usr/local/bin/httperf: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll want ssl compiled in.  You can either check to see if the &#039;--ssl&#039; option is available in help, or better yet, check to see if the executable links to the ssl libaries.  In Ubuntu I had to make sure I had &#039;libc6&#039;, &#039;libssl0.9.8&#039;, and &#039;libssl-dev&#039; installed before compiling. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ldd /usr/local/bin/httperf &lt;br /&gt;
	libresolv.so.2 =&amp;gt; /lib/libresolv.so.2 (0x00002b3181afe000)&lt;br /&gt;
	libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x00002b3181d13000)&lt;br /&gt;
	libssl.so.0.9.8 =&amp;gt; /usr/lib/libssl.so.0.9.8 (0x00002b3181f2c000)&lt;br /&gt;
	libcrypto.so.0.9.8 =&amp;gt; /usr/lib/libcrypto.so.0.9.8 (0x00002b3182175000)&lt;br /&gt;
	libm.so.6 =&amp;gt; /lib/libm.so.6 (0x00002b31824f7000)&lt;br /&gt;
	libc.so.6 =&amp;gt; /lib/libc.so.6 (0x00002b3182778000)&lt;br /&gt;
	libdl.so.2 =&amp;gt; /lib/libdl.so.2 (0x00002b3182ad3000)&lt;br /&gt;
	libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x00002b3182cd8000)&lt;br /&gt;
	/lib64/ld-linux-x86-64.so.2 (0x00002b31818e0000)&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ran a quick test against Amazon to get an idea of the capacity of my client machine.  Looks like I can sustain about 45 conn/s and 455 req/s.&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ httperf --timeout=5 --client=0/1 --server=www.amazon.com --port=443 --uri=/favicon.ico --rate=60 --send-buffer=4096 \&lt;br /&gt;
--recv-buffer=16384 --ssl --num-conns=500 --num-calls=10&lt;br /&gt;
httperf --timeout=5 --client=0/1 --server=www.amazon.com --port=443 --uri=/favicon.ico --rate=60 --send-buffer=4096 --recv-buffer=16384 --ssl --num-conns=500 --num-calls=10&lt;br /&gt;
Maximum connect burst length: 5&lt;br /&gt;
&lt;br /&gt;
Total: connections 500 requests 5000 replies 5000 test-duration 10.982 s&lt;br /&gt;
&lt;br /&gt;
Connection rate: 45.5 conn/s (22.0 ms/conn, &amp;lt;=94 concurrent connections)&lt;br /&gt;
Connection time [ms]: min 385.9 avg 1014.7 max 5818.1 median 503.5 stddev 1004.4&lt;br /&gt;
Connection time [ms]: connect 220.6&lt;br /&gt;
Connection length [replies/conn]: 10.000&lt;br /&gt;
&lt;br /&gt;
Request rate: 455.3 req/s (2.2 ms/req)&lt;br /&gt;
Request size [B]: 78.0&lt;br /&gt;
&lt;br /&gt;
Reply rate [replies/s]: min 452.6 avg 490.6 max 528.6 stddev 53.7 (2 samples)&lt;br /&gt;
Reply time [ms]: response 69.1 transfer 10.3&lt;br /&gt;
Reply size [B]: header 272.0 content 1406.0 footer 0.0 (total 1678.0)&lt;br /&gt;
Reply status: 1xx=0 2xx=5000 3xx=0 4xx=0 5xx=0&lt;br /&gt;
&lt;br /&gt;
CPU time [s]: user 1.10 system 6.54 (user 10.0% system 59.6% total 69.6%)&lt;br /&gt;
Net I/O: 781.1 KB/s (6.4*10^6 bps)&lt;br /&gt;
&lt;br /&gt;
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0&lt;br /&gt;
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cygwin ==&lt;br /&gt;
&lt;br /&gt;
Httperf works great from Cygwin.  It&#039;s not a standard package, but it&#039;s easy to build from source.  The usual ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install works fine.  &lt;br /&gt;
&lt;br /&gt;
The only caveat is that you can&#039;t use the &#039;--hog&#039; option.  This option allows httperf to use non ephemeral ports (in the range from 1024 to 5000).  If you use the --hog option, you may get this error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
httperf: connection failed with unexpected error 106&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slicehost ==&lt;br /&gt;
&lt;br /&gt;
I ran a quick test again my own host.  Unfortunately, the host I ran it from is in Australia, and is on a slow DSL line. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ httperf --timeout=5 --client=0/1 --server=www.theeggeadventure.com --port=80 --uri=/wikimedia/index.php/HttPerf --rate=60 --num-conns=10 --num-calls=10&lt;br /&gt;
httperf --timeout=5 --client=0/1 --server=www.theeggeadventure.com --port=80 --uri=/wikimedia/index.php/HttPerf --rate=60 --send-buffer=4096 --recv-buffer=16384 --num-conns=10 --num-calls=10&lt;br /&gt;
httperf: warning: open file limit &amp;gt; FD_SETSIZE; limiting max. # of open files to FD_SETSIZE&lt;br /&gt;
Maximum connect burst length: 1&lt;br /&gt;
&lt;br /&gt;
Total: connections 10 requests 100 replies 100 test-duration 21.612 s&lt;br /&gt;
&lt;br /&gt;
Connection rate: 0.5 conn/s (2161.2 ms/conn, &amp;lt;=10 concurrent connections)&lt;br /&gt;
Connection time [ms]: min 18249.0 avg 19896.4 max 21460.8 median 20134.5 stddev 1111.7&lt;br /&gt;
Connection time [ms]: connect 219.4&lt;br /&gt;
Connection length [replies/conn]: 10.000&lt;br /&gt;
&lt;br /&gt;
Request rate: 4.6 req/s (216.1 ms/req)&lt;br /&gt;
Request size [B]: 104.0&lt;br /&gt;
&lt;br /&gt;
Reply rate [replies/s]: min 3.2 avg 4.6 max 6.2 stddev 1.3 (4 samples)&lt;br /&gt;
Reply time [ms]: response 1242.7 transfer 725.0&lt;br /&gt;
Reply size [B]: header 728.0 content 23325.0 footer 2.0 (total 24055.0)&lt;br /&gt;
Reply status: 1xx=0 2xx=100 3xx=0 4xx=0 5xx=0&lt;br /&gt;
&lt;br /&gt;
CPU time [s]: user 2.02 system 19.58 (user 9.3% system 90.6% total 99.9%)&lt;br /&gt;
Net I/O: 109.2 KB/s (0.9*10^6 bps)&lt;br /&gt;
&lt;br /&gt;
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0&lt;br /&gt;
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other tests ==&lt;br /&gt;
&lt;br /&gt;
While there are some pay sites which will do stress tests, and you can do your own with EC2, you can get some good metrics from [http://tools.pingdom.com/?url=http://www.theeggeadventure.com/wikimedia/index.php/HttPerf&amp;amp;treeview=0&amp;amp;column=objectID&amp;amp;order=1&amp;amp;type=0&amp;amp;save=true Pingdom.com] and [http://browsershots.org/http://www.theeggeadventure.com/wikimedia/index.php/Cygwin_Tips Browsershots.org].  Browsershots is quite neat because a whole bunch of different browser will hit your site.  You don&#039;t have control or metrics, but it&#039;s a pretty good gauge of what web users will see.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Cygwin]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Slicehost&amp;diff=2136</id>
		<title>Slicehost</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Slicehost&amp;diff=2136"/>
		<updated>2009-07-15T13:20:54Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 512MB Slice ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve upgraded my slice to 512 megs.  This was out of frustration that I couldn&#039;t get ruby gems to update, and my desire to speed up the website.  The gems problem would have fixed itself once the update completed, but a bug several version ago required a huge amount of memory to do an update.  &lt;br /&gt;
&lt;br /&gt;
Initially my slice didn&#039;t get any faster, requiring me to decide how to spend the next 256MB of ram.  The biggest improvement has come from increasing my spare apache workers.  &lt;br /&gt;
&lt;br /&gt;
You can see literally a three times increase in speed on [http://tools.pingdom.com/fpt/?url=http://www.theeggeadventure.com/wikimedia/index.php/HttPerf/&amp;amp;id=1085808 Pingdom.com] when I did this.  After running a test I have about 21 [http://www.theeggeadventure.com/server-status workers running].  Here&#039;s my current Apache config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
&amp;lt;IfModule mpm_prefork_module&amp;gt;&lt;br /&gt;
    StartServers          5&lt;br /&gt;
    MinSpareServers       5&lt;br /&gt;
    MaxSpareServers      20&lt;br /&gt;
    MaxClients           40&lt;br /&gt;
    MaxRequestsPerChild 400&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Switch to Slicehost (July 2008) == &lt;br /&gt;
I&#039;ve finally moved off from my shared hosting provider to a VPS.  I&#039;m using [http://www.slicehost.com/ Slicehost] and couldn&#039;t be happier.  I&#039;m paying $20 a month for VPS with 256MB and 10GB of storage.  I do miss some of what cPanel had to offer, but I&#039;m learning how to do the same sorts of things as what cPanel does for you.  &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; &lt;br /&gt;
|+ &#039;&#039;&#039;Features which I&#039;ve setup&#039;&#039;&#039;&lt;br /&gt;
! Feature !! Shared !! Ubuntu VPS !&lt;br /&gt;
|-&lt;br /&gt;
| Apache2 / Php &lt;br /&gt;
| Yes, but only a very restrictive Php was allowed to run &lt;br /&gt;
| Latest Apache, full Php&lt;br /&gt;
|-&lt;br /&gt;
| MySQL &lt;br /&gt;
| Yes - limited to 20 databases &lt;br /&gt;
| Had to modify MySQL to run with less memory&lt;br /&gt;
|- &lt;br /&gt;
| Awstats&lt;br /&gt;
| Works well&lt;br /&gt;
| https://{{SERVERNAME}}/awstats/awstats.pl it took a bit to get setup, but it&#039;s working now.  I had to install cronlog, as well as schedule the update to run.  [[https://{{SERVERNAME}}/awstats/awstats.pl?config=cheyennecentral95.com cheyennecentral95.com]]&lt;br /&gt;
|-&lt;br /&gt;
| mailman&lt;br /&gt;
| installed&lt;br /&gt;
| It&#039;ll be quite a bit of work to get mailman installed for just a couple of mailing lists.  Mailman was taking up too much memory, so I disabled it.&lt;br /&gt;
|-&lt;br /&gt;
| an MTA&lt;br /&gt;
| worked, but not configurable&lt;br /&gt;
| installed postfix, courier-imap-ssl, saslauth - a real pain, but I have what I want.  IMAP with SSL only, courier with SPF check&lt;br /&gt;
|-&lt;br /&gt;
| phpmyadmin&lt;br /&gt;
| worked fine, restricted to your own databases&lt;br /&gt;
| works, shows all databases, I need to remember my root db password though (r).  https://www.theeggeadventure.com/phpmyadmin/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== awstats ===&lt;br /&gt;
&lt;br /&gt;
I had to create a couple of tiny scripts.  The first to process my historical log files, and the second to run all configs by cron.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot; source=&amp;quot;file&amp;quot;&amp;gt;../../logs/rerun.sh&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot; source=&amp;quot;file&amp;quot;&amp;gt;../../bin/runstats.sh&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gallery2 ===&lt;br /&gt;
&lt;br /&gt;
I enabled the rss module, which seemed to work, but I started getting all sorts of 500 errors from Google.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* http://www.theeggeadventure.com/gallery/srss/12392 = 500 Not permitted to view comments for this item&lt;br /&gt;
&lt;br /&gt;
To fix this, I edited &#039;&#039;&#039;gallery/modules/rss/classes/RssGenerator.class&#039;&#039;&#039; and disabled the check for comments.&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;php&amp;gt;&lt;br /&gt;
    if (false || isset($item[&#039;comments&#039;])) {&lt;br /&gt;
        $data .= &#039; &amp;lt;comments&amp;gt;&#039; . GalleryUtilities::markup($item[&#039;comments&#039;]) .&lt;br /&gt;
           &#039;&amp;lt;/comments&amp;gt;&#039; . $lf;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Munin ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve had my server run out of memory a few times since setting up mail services.  I&#039;ve installed [[https://www.theeggeadventure.com/munin/localdomain/localhost.localdomain.html Munin]] to help monitor server performance.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Ruby_regular_expressions&amp;diff=2106</id>
		<title>Ruby regular expressions</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Ruby_regular_expressions&amp;diff=2106"/>
		<updated>2009-06-29T01:53:27Z</updated>

		<summary type="html">&lt;p&gt;Egge: Created page with &amp;#039;Comments are one of the great, yet little used, features of modern regular expression engines.  Consider the following:  &amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt; &amp;quot;Ruby is fun&amp;quot; =~ /(?#a)r(?#e you able…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comments are one of the great, yet little used, features of modern regular expression engines.  Consider the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;Ruby is fun&amp;quot; =~ /(?#a)r(?#e you able to )u(?#nderstand what this )b(?#eautiful, yet sill)y(?# regular expression will match?)/i&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Robots.txt&amp;diff=2105</id>
		<title>Robots.txt</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Robots.txt&amp;diff=2105"/>
		<updated>2009-06-28T07:36:28Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I decided to take a look at what parts of my site are getting index, and see what I can do to increase the effectiveness of the crawlers.  I while back, crawlers started searching deeper, often using the parameters at the end of the URL.  While I feel that URLs should be kept clean, and search engines should ignore any parameters, there a billions which can only be accessed using parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this results in a lot of duplicate and meaningless stuff getting index.  For example, every page on my wiki has a printable version.  The printable version doesn&#039;t need to get indexed, but often does.  I figured there were about three ways to fix this:&lt;br /&gt;
&lt;br /&gt;
# add a rel=&amp;quot;nofollow&amp;quot; to links such as printable view or edit&lt;br /&gt;
# add a meta tag into headers of such pages&lt;br /&gt;
# alter my robots.txt file&lt;br /&gt;
&lt;br /&gt;
The problem with the first two is that it would make it difficult for me to update my software.  If I submitted a patch to the project, there&#039;s a good change a lot of people would disagree with it.  Adding the meta tag is worse, because the crawler reads your page and then discards it.  I&#039;ve opted to go with the last approach, which seems to offer the most benifit for me, but doesn&#039;t help other people who use the same software.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my current robots.txt file:&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;robots.txt&amp;quot; source=&amp;quot;file&amp;quot;&amp;gt;../robots.txt&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I received some inspiration from [http://confluence.atlassian.com/display/DISC/robots.txt Atlassian&#039;s robots.txt] file which they use with their wiki.&lt;br /&gt;
&lt;br /&gt;
=== https ===&lt;br /&gt;
&lt;br /&gt;
Recently, (May 2009), Google starting crawling the https version of the site.  I don&#039;t know why it picked this up, as there aren&#039;t any real https links.  I&#039;ve had a self-signed certificate on the https site, which generally prevents most crawler and bots from visiting it.  As I don&#039;t want the same site crawled twice, I disabled crawling server side, via a mod_rewrite filter.  I added this to my https site config in Apache.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
  &amp;lt;Directory /home/egge/public_html/&amp;gt;&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
    RewriteEngine on&lt;br /&gt;
    RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
    RewriteRule ^robots\.txt$ robots_ssl.txt&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sitemaps ==&lt;br /&gt;
&lt;br /&gt;
I created a static [http://www.theeggeadventure.com/sitemap.xml sitemaps.xml] file which points to my now three dynamically generated sitemaps.  This way crawlers can find my sitemaps, see what pages have changed, and go visit those pages.  &lt;br /&gt;
&lt;br /&gt;
Gallery2 and MediaWiki both had sitemaps built in to the version which I&#039;m currently running.  However, for PhpGedView I had to update to version 4.0.x, and then install a module.  My upload steps basically went like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl -vL#ophpgedview-4.1beta6.zip http://downloads.sourceforge.net/phpgedview/phpgedview-4.1beta6.zip?use_mirror=optusnet&lt;br /&gt;
$ curl -vL#ophpgedview-modules.zip http://downloads.sourceforge.net/phpgedview/modules-4.1-beta6.zip?use_mirror=optusnet&lt;br /&gt;
$ unzip phpgedview-4.1beta6.zip&lt;br /&gt;
$ mv phpgedview-4.1beta6 ../www/&lt;br /&gt;
$ unzip phpgedview-modules.zip&lt;br /&gt;
$ cd ~/www&lt;br /&gt;
$ mv phpGedView phpGedView-3.3.9&lt;br /&gt;
$ ln -s phpgedview-4.1beta6 phpGedView&lt;br /&gt;
$ cd phpGedView&lt;br /&gt;
$ cp -fr ../phpGedView-3.3.9/media .&lt;br /&gt;
$ cp -r ~/tmp/modules-4.1-beta6/* modules/&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The phpGedView sitemap module was written to generate a static site map.  This doesn&#039;t seem to make a lot of sense to me.  So, I copied the wizard to create a static sitemap and created a dynamic one instead.  You can see the source of my sitemap  here http://www.theeggeadventure.com/phpGedView/sitemap.xml.phps .&lt;br /&gt;
&lt;br /&gt;
Now, I should only have to sit back and watch my site get indexed.&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Robots.txt&amp;diff=2104</id>
		<title>Robots.txt</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Robots.txt&amp;diff=2104"/>
		<updated>2009-06-28T07:35:58Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I decided to take a look at what parts of my site are getting index, and see what I can do to increase the effectiveness of the crawlers.  I while back, crawlers started searching deeper, often using the parameters at the end of the URL.  While I feel that URLs should be kept clean, and search engines should ignore any parameters, there a billions which can only be accessed using parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this results in a lot of duplicate and meaningless stuff getting index.  For example, every page on my wiki has a printable version.  The printable version doesn&#039;t need to get indexed, but often does.  I figured there were about three ways to fix this:&lt;br /&gt;
&lt;br /&gt;
# add a rel=&amp;quot;nofollow&amp;quot; to links such as printable view or edit&lt;br /&gt;
# add a meta tag into headers of such pages&lt;br /&gt;
# alter my robots.txt file&lt;br /&gt;
&lt;br /&gt;
The problem with the first two is that it would make it difficult for me to update my software.  If I submitted a patch to the project, there&#039;s a good change a lot of people would disagree with it.  Adding the meta tag is worse, because the crawler reads your page and then discards it.  I&#039;ve opted to go with the last approach, which seems to offer the most benifit for me, but doesn&#039;t help other people who use the same software.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my current robots.txt file:&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;robots.txt&amp;quot; source=&amp;quot;file&amp;quot;&amp;gt;../robots.txt&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I received some inspiration from [http://confluence.atlassian.com/display/DISC/robots.txt Atlassian&#039;s robots.txt] file which they use with their wiki.&lt;br /&gt;
&lt;br /&gt;
=== https ===&lt;br /&gt;
&lt;br /&gt;
Recently, (May 2009), Google starting crawling the https version of the site.  I don&#039;t know why it picked this up, as there aren&#039;t any real https links.  I&#039;ve had a self-signed certificate on the https site, which generally prevents most crawler and bots from visiting it.  As I don&#039;t want the same site crawled twice, I disabled crawling server side, via a mod_rewrite filter.  I added this to my https site config in Apache.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
  &amp;lt;Directory /home/egge/public_html/&amp;gt;&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
    RewriteEngine on&lt;br /&gt;
    RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
    RewriteRule ^robots\.txt$ robots_ssl.txt&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sitemaps ==&lt;br /&gt;
&lt;br /&gt;
I created a static [http://www.theeggeadventure.com/sitemap.xml sitemaps.xml] file which points to my now three dynamically generated sitemaps.  This way crawlers can find my sitemaps, see what pages have changed, and go visit those pages.  &lt;br /&gt;
&lt;br /&gt;
Gallery2 and MediaWiki both had sitemaps built in to the version which I&#039;m currently running.  However, for PhpGedView I had to update to version 4.0.x, and then install a module.  My upload steps basically went like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl -vL#ophpgedview-4.1beta6.zip http://downloads.sourceforge.net/phpgedview/phpgedview-4.1beta6.zip?use_mirror=optusnet&lt;br /&gt;
$ curl -vL#ophpgedview-modules.zip http://downloads.sourceforge.net/phpgedview/modules-4.1-beta6.zip?use_mirror=optusnet&lt;br /&gt;
$ unzip phpgedview-4.1beta6.zip&lt;br /&gt;
$ mv phpgedview-4.1beta6 ../www/&lt;br /&gt;
$ unzip phpgedview-modules.zip&lt;br /&gt;
$ cd ~/www&lt;br /&gt;
$ mv phpGedView phpGedView-3.3.9&lt;br /&gt;
$ ln -s phpgedview-4.1beta6 phpGedView&lt;br /&gt;
$ cd phpGedView&lt;br /&gt;
$ cp -fr ../phpGedView-3.3.9/media .&lt;br /&gt;
$ cp -r ~/tmp/modules-4.1-beta6/* modules/&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The phpGedView sitemap module was written to generate a static site map.  This doesn&#039;t seem to make a lot of sense to me.  So, I copied the wizard to create a static sitemap and created a dynamic one instead.  You can see the source of my sitemap  here http://www.theeggeadventure.com/phpGedView/sitemap.xml.phps .&lt;br /&gt;
&lt;br /&gt;
Now, I should only have to sit back and watch my site get indexed.&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Vim_arrow_keys&amp;diff=2103</id>
		<title>Vim arrow keys</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Vim_arrow_keys&amp;diff=2103"/>
		<updated>2009-06-26T00:58:36Z</updated>

		<summary type="html">&lt;p&gt;Egge: New page: Using rxvt and vim 7.1, sometimes the arrow keys produce &amp;#039;A&amp;#039;, &amp;#039;B&amp;#039;, &amp;#039;C&amp;#039;, &amp;#039;D&amp;#039; instead of navigating.  Adding this to my ~/.vimrc seems to fix the problem. &amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt; :set term=built...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Using rxvt and vim 7.1, sometimes the arrow keys produce &#039;A&#039;, &#039;B&#039;, &#039;C&#039;, &#039;D&#039; instead of navigating.&lt;br /&gt;
&lt;br /&gt;
Adding this to my ~/.vimrc seems to fix the problem.&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
:set term=builtin_ansi &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:bash]]&lt;br /&gt;
[[Category:cygwin]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2102</id>
		<title>Stack Overflow page design</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2102"/>
		<updated>2009-06-25T11:26:02Z</updated>

		<summary type="html">&lt;p&gt;Egge: /* header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What do the smart people at Stack Overflow put in their HTML pages? ==&lt;br /&gt;
&lt;br /&gt;
=== header ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Strict html4 - this should make the page look good on all modern browsers.  Strict can be a bit difficult to achieve - especially if your pulling in third party content&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Develop iPhone app without a Mac? - Stack Overflow&amp;lt;/title&amp;gt; &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For title, they put the most important bit first, and also include the site name at the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/content/all.css?v=3706&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* CSS - they put everything into one big file and specify a version.  I&#039;m not sure if the version number is auto-incremented or manual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;/favicon.ico&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;apple-itouch-icon&amp;quot; href=&amp;quot;/apple-touch-icon.png&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* The favicon I expected - but I had to read about the Apple Touch icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; title=&amp;quot;Stack Overflow&amp;quot; href=&amp;quot;/opensearch.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* Open search is fairly popular these days.  I&#039;d expect this on any site with a search feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/content/js/master.js?v=3567&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;var imagePath = &#039;/content/img/so/&#039;;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* All the JavaScript is in one file - just like the CSS.  The image path variable is interesting.  With this you could easily repoint your images to a CDN - but why not just include it in the master.js file itself?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;RSS&amp;quot; href=&amp;quot;/feeds/question/1041623&amp;quot;&amp;gt;   &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* About every page has an RSS feed associated with it these days.  I&#039;m not sure how useful feeds on item pages are, but maybe people want to know when questions they&#039;ve asked are updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;   &lt;br /&gt;
    &amp;lt;script src=&amp;quot;/content/js/question.js?v=3591&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* More JavaScript.  I assume master applied to the entire site, and this file only applies to question pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var fkey = &amp;quot;4205033...3179b6&amp;quot;;&lt;br /&gt;
        var isRegistered = true;&lt;br /&gt;
        &lt;br /&gt;
        $(function() {&lt;br /&gt;
            vote.init(1041623); &lt;br /&gt;
            styleCode();&lt;br /&gt;
        });&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* Since I&#039;m logged in, I can vote.  This minimal JavaScript tells the scripts on the page who I am (I think), and what the question number is.&lt;br /&gt;
&lt;br /&gt;
=== body ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/questions/1041623/develop-iphone-app-without-a-mac&amp;quot; class=&amp;quot;question-hyperlink&amp;quot; rel=&amp;quot;canonical&amp;quot;&amp;gt;Develop iPhone app without a Mac?&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* The use of rel=&amp;quot;canonical&amp;quot; is interesting.  This is good SEO practice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/editor.js?v=3656&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/wmd.js?v=3297&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(function() { editorReady(1); });&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* load the WMD script when/where it&#039;s needed.  This should help the page load speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;/posts/1041623/increment-view-count/bfb6&amp;quot; style=&amp;quot;display:none&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* this is an interesting way to do a page counter.  It makes the write somewhat asynchronous, and prevents robots from incrementing the page view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
document.write(&#039;&amp;lt;s&#039;+&#039;cript lang&#039; + &#039;uage=&amp;quot;jav&#039; + &#039;ascript&amp;quot; src=&amp;quot;http://ads.stackoverflow.com/a.aspx?ZoneID=&#039; +  4 + &#039;&amp;amp;amp;Task=Get&amp;amp;amp;IFR=False&amp;amp;amp;PageID=52405&amp;amp;amp;SiteID=&#039; + 1 + &#039;&amp;amp;amp;Random=&#039; + (new Date()).getTime()  + &#039;&amp;amp;amp;Keywords=iphone,ruby,sinatra&amp;quot;&amp;gt;&#039;); &lt;br /&gt;
document.write(&#039;&amp;lt;/&#039;+&#039;scr&#039;+&#039;ipt&amp;gt;&#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* they run their own ad selection.  A bit of code to help prevent ad block.&lt;br /&gt;
&lt;br /&gt;
=== footer ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;mailto:team@stackoverflow.com&amp;quot;&amp;gt;contact us&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt; |&lt;br /&gt;
                &amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;http://stackoverflow.uservoice.com&amp;quot;&amp;gt;feedback always welcome&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* user voice is cool, a real email address is surprising&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div id=&amp;quot;svnrev&amp;quot;&amp;gt;svn revision: 3707&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* visible svn revision on each page&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;noscript&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;noscript-warning&amp;quot;&amp;gt;Stack Overflow works best with JavaScript enabled&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* no script warning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        document.write(unescape(&amp;quot;%3Cscript src=&#039;http://www.google-analytics.com/ga.js&#039; type=&#039;text/javascript&#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var pageTracker = _gat._getTracker(&amp;quot;UA-5620270-1&amp;quot;);&lt;br /&gt;
        pageTracker._trackPageview();&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* Google analytics&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    _qoptions = { qacct : &amp;quot;p-c1rF4kxgLUzNc&amp;quot; };&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://edge.quantserve.com/quant.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;noscript&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* quant serve analytics&lt;br /&gt;
&lt;br /&gt;
[[Category:html]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Main_Page&amp;diff=2101</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Main_Page&amp;diff=2101"/>
		<updated>2009-06-25T04:52:10Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Technical Tips&lt;br /&gt;
** [[Linux Tips]]&lt;br /&gt;
** [[Solaris Tips]]&lt;br /&gt;
** [[Windows Tips]]&lt;br /&gt;
*** [[Cygwin Tips]]&lt;br /&gt;
** [[OS X Tips]]&lt;br /&gt;
*** [[Emacs.app Intel Mac]]&lt;br /&gt;
** [[PHP Tips]]&lt;br /&gt;
** [[Java Tips]]&lt;br /&gt;
*** [[Curiously recurring template pattern]]&lt;br /&gt;
*** [[Java Plus Plus]]&lt;br /&gt;
*** [[Method Overloading]]&lt;br /&gt;
** [[Cxx Tips]]&lt;br /&gt;
** Python [[metasend]]&lt;br /&gt;
** [[Ruby Tips]]&lt;br /&gt;
** [[Stack Overflow page design]]&lt;br /&gt;
** [[Sybase Tips]]&lt;br /&gt;
** [[Interview Questions]]&lt;br /&gt;
** [[Top 10 ways to increase traffic to your wiki]]&lt;br /&gt;
&lt;br /&gt;
* Projects&lt;br /&gt;
** [[FINSIA]]&lt;br /&gt;
** [[Slicehost]]&lt;br /&gt;
** [[Parsers Presentation]]&lt;br /&gt;
** [[BeachProjects]]&lt;br /&gt;
** [[CCNJ Podcast]]&lt;br /&gt;
** [[CruiseControl Build Status]]&lt;br /&gt;
** [[GPS Meets Google Maps]]&lt;br /&gt;
** [[Xbox Linux Project]]&lt;br /&gt;
&lt;br /&gt;
* Blogs&lt;br /&gt;
** [[iPhone Annoyances]]&lt;br /&gt;
** [[mimetex]]&lt;br /&gt;
** [[LG DV7821P]]&lt;br /&gt;
** [[Email Authentication]]&lt;br /&gt;
** [[Is the GPL3 good for business?]]&lt;br /&gt;
** [[SAPLING 071]]&lt;br /&gt;
** [[Quotes]]&lt;br /&gt;
** [[Software Ungineering]]&lt;br /&gt;
** [[Second Life]]&lt;br /&gt;
** [[Password Security]]&lt;br /&gt;
** [[ADSL Australia]]&lt;br /&gt;
** [[Visa Signature Concierge Service]]&lt;br /&gt;
** [[Jersey City, New Jersey]]&lt;br /&gt;
** [[Cat Microchips]]&lt;br /&gt;
** [[Tux Measurements]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2100</id>
		<title>Stack Overflow page design</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2100"/>
		<updated>2009-06-25T04:51:27Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What do the smart people at Stack Overflow put in their HTML pages? ==&lt;br /&gt;
&lt;br /&gt;
=== header ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Strict html4 - this should make the page look good on all modern browsers.  Strict can be a bit difficult to achieve - especially if your pulling in third party content&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Develop iPhone app without a Mac? - Stack Overflow&amp;lt;/title&amp;gt; &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For title, they put the most important bit first, and also include the site name at the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/content/all.css?v=3706&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* CSS - they put everything into one big file and specify a version.  I&#039;m not sure if the version number is auto-incremented or manual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;/favicon.ico&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;apple-itouch-icon&amp;quot; href=&amp;quot;/apple-touch-icon.png&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* The favicon I expected - but I had to read about the Apple Touch icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; title=&amp;quot;Stack Overflow&amp;quot; href=&amp;quot;/opensearch.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Open search is fairly popular these days.  I&#039;d expect this on any site with a search feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/content/js/master.js?v=3567&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;var imagePath = &#039;/content/img/so/&#039;;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* All the JavaScript is in one file - just like the CSS.  The image path variable is interesting.  With this you could easily repoint your images to a CDN - but why not just include it in the master.js file itself?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;RSS&amp;quot; href=&amp;quot;/feeds/question/1041623&amp;quot;&amp;gt;   &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* About every page has an RSS feed associated with it these days.  I&#039;m not sure how useful feeds on item pages are, but maybe people want to know when questions they&#039;ve asked are updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;   &lt;br /&gt;
    &amp;lt;script src=&amp;quot;/content/js/question.js?v=3591&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* More JavaScript.  I assume master applied to the entire site, and this file only applies to question pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var fkey = &amp;quot;4205033...3179b6&amp;quot;;&lt;br /&gt;
        var isRegistered = true;&lt;br /&gt;
        &lt;br /&gt;
        $(function() {&lt;br /&gt;
            vote.init(1041623); &lt;br /&gt;
            styleCode();&lt;br /&gt;
        });&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* Since I&#039;m logged in, I can vote.  This minimal JavaScript tells the scripts on the page who I am (I think), and what the question number is.  &lt;br /&gt;
&lt;br /&gt;
=== body ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/questions/1041623/develop-iphone-app-without-a-mac&amp;quot; class=&amp;quot;question-hyperlink&amp;quot; rel=&amp;quot;canonical&amp;quot;&amp;gt;Develop iPhone app without a Mac?&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* The use of rel=&amp;quot;canonical&amp;quot; is interesting.  This is good SEO practice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/editor.js?v=3656&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/wmd.js?v=3297&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(function() { editorReady(1); });&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* load the WMD script when/where it&#039;s needed.  This should help the page load speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;/posts/1041623/increment-view-count/bfb6&amp;quot; style=&amp;quot;display:none&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* this is an interesting way to do a page counter.  It makes the write somewhat asynchronous, and prevents robots from incrementing the page view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
document.write(&#039;&amp;lt;s&#039;+&#039;cript lang&#039; + &#039;uage=&amp;quot;jav&#039; + &#039;ascript&amp;quot; src=&amp;quot;http://ads.stackoverflow.com/a.aspx?ZoneID=&#039; +  4 + &#039;&amp;amp;amp;Task=Get&amp;amp;amp;IFR=False&amp;amp;amp;PageID=52405&amp;amp;amp;SiteID=&#039; + 1 + &#039;&amp;amp;amp;Random=&#039; + (new Date()).getTime()  + &#039;&amp;amp;amp;Keywords=iphone,ruby,sinatra&amp;quot;&amp;gt;&#039;); &lt;br /&gt;
document.write(&#039;&amp;lt;/&#039;+&#039;scr&#039;+&#039;ipt&amp;gt;&#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* they run their own ad selection.  A bit of code to help prevent ad block.&lt;br /&gt;
&lt;br /&gt;
=== footer ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;mailto:team@stackoverflow.com&amp;quot;&amp;gt;contact us&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt; |&lt;br /&gt;
                &amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;http://stackoverflow.uservoice.com&amp;quot;&amp;gt;feedback always welcome&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* user voice is cool, a real email address is surprising&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div id=&amp;quot;svnrev&amp;quot;&amp;gt;svn revision: 3707&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* visible svn revision on each page&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;noscript&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;noscript-warning&amp;quot;&amp;gt;Stack Overflow works best with JavaScript enabled&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* no script warning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        document.write(unescape(&amp;quot;%3Cscript src=&#039;http://www.google-analytics.com/ga.js&#039; type=&#039;text/javascript&#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var pageTracker = _gat._getTracker(&amp;quot;UA-5620270-1&amp;quot;);&lt;br /&gt;
        pageTracker._trackPageview();&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* Google analytics&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    _qoptions = { qacct : &amp;quot;p-c1rF4kxgLUzNc&amp;quot; };&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://edge.quantserve.com/quant.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;noscript&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* quant serve analytics&lt;br /&gt;
&lt;br /&gt;
[[Category:html]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2099</id>
		<title>Stack Overflow page design</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2099"/>
		<updated>2009-06-25T04:46:50Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What do the smart people at Stack Overflow put in their HTML pages? ==&lt;br /&gt;
&lt;br /&gt;
=== header ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Strict html4 - this should make the page look good on all modern browsers.  Strict can be a bit difficult to achieve - especially if your pulling in third party content&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Develop iPhone app without a Mac? - Stack Overflow&amp;lt;/title&amp;gt; &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For title, they put the most important bit first, and also include the site name at the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/content/all.css?v=3706&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* CSS - they put everything into one big file and specify a version.  I&#039;m not sure if the version number is auto-incremented or manual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;/favicon.ico&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;apple-itouch-icon&amp;quot; href=&amp;quot;/apple-touch-icon.png&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* The favicon I expected - but I had to read about the Apple Touch icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; title=&amp;quot;Stack Overflow&amp;quot; href=&amp;quot;/opensearch.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Open search is fairly popular these days.  I&#039;d expect this on any site with a search feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/content/js/master.js?v=3567&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;var imagePath = &#039;/content/img/so/&#039;;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* All the JavaScript is in one file - just like the CSS.  The image path variable is interesting.  With this you could easily repoint your images to a CDN - but why not just include it in the master.js file itself?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;RSS&amp;quot; href=&amp;quot;/feeds/question/1041623&amp;quot;&amp;gt;   &lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* About every page has an RSS feed associated with it these days.  I&#039;m not sure how useful feeds on item pages are, but maybe people want to know when questions they&#039;ve asked are updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;   &lt;br /&gt;
    &amp;lt;script src=&amp;quot;/content/js/question.js?v=3591&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* More JavaScript.  I assume master applied to the entire site, and this file only applies to question pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var fkey = &amp;quot;4205033...3179b6&amp;quot;;&lt;br /&gt;
        var isRegistered = true;&lt;br /&gt;
        &lt;br /&gt;
        $(function() {&lt;br /&gt;
            vote.init(1041623); &lt;br /&gt;
            styleCode();&lt;br /&gt;
        });&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* Since I&#039;m logged in, I can vote.  This minimal JavaScript tells the scripts on the page who I am (I think), and what the question number is.  &lt;br /&gt;
&lt;br /&gt;
=== body ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/questions/1041623/develop-iphone-app-without-a-mac&amp;quot; class=&amp;quot;question-hyperlink&amp;quot; rel=&amp;quot;canonical&amp;quot;&amp;gt;Develop iPhone app without a Mac?&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* The use of rel=&amp;quot;canonical&amp;quot; is interesting.  This is good SEO practice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/editor.js?v=3656&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/wmd.js?v=3297&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(function() { editorReady(1); });&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* load the WMD script when/where it&#039;s needed.  This should help the page load speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;/posts/1041623/increment-view-count/bfb6&amp;quot; style=&amp;quot;display:none&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* this is an interesting way to do a page counter.  It makes the write somewhat asynchronous, and prevents robots from incrementing the page view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
document.write(&#039;&amp;lt;s&#039;+&#039;cript lang&#039; + &#039;uage=&amp;quot;jav&#039; + &#039;ascript&amp;quot; src=&amp;quot;http://ads.stackoverflow.com/a.aspx?ZoneID=&#039; +  4 + &#039;&amp;amp;amp;Task=Get&amp;amp;amp;IFR=False&amp;amp;amp;PageID=52405&amp;amp;amp;SiteID=&#039; + 1 + &#039;&amp;amp;amp;Random=&#039; + (new Date()).getTime()  + &#039;&amp;amp;amp;Keywords=iphone,ruby,sinatra&amp;quot;&amp;gt;&#039;); &lt;br /&gt;
document.write(&#039;&amp;lt;/&#039;+&#039;scr&#039;+&#039;ipt&amp;gt;&#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* they run their own ad selection.  A bit of code to help prevent ad block.&lt;br /&gt;
&lt;br /&gt;
=== footer ===&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;mailto:team@stackoverflow.com&amp;quot;&amp;gt;contact us&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt; |&lt;br /&gt;
                &amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;http://stackoverflow.uservoice.com&amp;quot;&amp;gt;feedback always welcome&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* user voice is cool, a real email address is surprising&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div id=&amp;quot;svnrev&amp;quot;&amp;gt;svn revision: 3707&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* visible svn revision on each page&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;noscript&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;noscript-warning&amp;quot;&amp;gt;Stack Overflow works best with JavaScript enabled&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* no script warning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        document.write(unescape(&amp;quot;%3Cscript src=&#039;http://www.google-analytics.com/ga.js&#039; type=&#039;text/javascript&#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var pageTracker = _gat._getTracker(&amp;quot;UA-5620270-1&amp;quot;);&lt;br /&gt;
        pageTracker._trackPageview();&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* Google analytics&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    _qoptions = { qacct : &amp;quot;p-c1rF4kxgLUzNc&amp;quot; };&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://edge.quantserve.com/quant.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;noscript&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
* quant serve analytics&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2098</id>
		<title>Stack Overflow page design</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2098"/>
		<updated>2009-06-25T04:42:00Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What do the smart people at Stack Overflow put in their HTML pages? ==&lt;br /&gt;
&lt;br /&gt;
=== header ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Strict html4 - this should make the page look good on all modern browsers.  Strict can be a bit difficult to achieve - especially if your pulling in third party content&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Develop iPhone app without a Mac? - Stack Overflow&amp;lt;/title&amp;gt; &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For title, they put the most important bit first, and also include the site name at the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/content/all.css?v=3706&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* CSS - they put everything into one big file and specify a version.  I&#039;m not sure if the version number is auto-incremented or manual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;/favicon.ico&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;apple-itouch-icon&amp;quot; href=&amp;quot;/apple-touch-icon.png&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* The favicon I expected - but I had to read about the Apple Touch icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; title=&amp;quot;Stack Overflow&amp;quot; href=&amp;quot;/opensearch.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Open search is fairly popular these days.  I&#039;d expect this on any site with a search feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/content/js/master.js?v=3567&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;var imagePath = &#039;/content/img/so/&#039;;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* All the JavaScript is in one file - just like the CSS.  The image path variable is interesting.  With this you could easily repoint your images to a CDN - but why not just include it in the master.js file itself?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;RSS&amp;quot; href=&amp;quot;/feeds/question/1041623&amp;quot;&amp;gt;   &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* About every page has an RSS feed associated with it these days.  I&#039;m not sure how useful feeds on item pages are, but maybe people want to know when questions they&#039;ve asked are updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    &amp;lt;script src=&amp;quot;/content/js/question.js?v=3591&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* More JavaScript.  I assume master applied to the entire site, and this file only applies to question pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var fkey = &amp;quot;4205033...3179b6&amp;quot;;&lt;br /&gt;
        var isRegistered = true;&lt;br /&gt;
        &lt;br /&gt;
        $(function() {&lt;br /&gt;
            vote.init(1041623); &lt;br /&gt;
            styleCode();&lt;br /&gt;
        });&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Since I&#039;m logged in, I can vote.  This minimal JavaScript tells the scripts on the page who I am (I think), and what the question number is.  &lt;br /&gt;
&lt;br /&gt;
=== body ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/questions/1041623/develop-iphone-app-without-a-mac&amp;quot; class=&amp;quot;question-hyperlink&amp;quot; rel=&amp;quot;canonical&amp;quot;&amp;gt;Develop iPhone app without a Mac?&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* The use of rel=&amp;quot;canonical&amp;quot; is interesting.  This is good SEO practice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/editor.js?v=3656&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/wmd.js?v=3297&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(function() { editorReady(1); });&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* load the WMD script when/where it&#039;s needed.  This should help the page load speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;/posts/1041623/increment-view-count/bfb6&amp;quot; style=&amp;quot;display:none&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* this is an interesting way to do a page counter.  It makes the write somewhat asynchronous, and prevents robots from incrementing the page view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
document.write(&#039;&amp;lt;s&#039;+&#039;cript lang&#039; + &#039;uage=&amp;quot;jav&#039; + &#039;ascript&amp;quot; src=&amp;quot;http://ads.stackoverflow.com/a.aspx?ZoneID=&#039; +  4 + &#039;&amp;amp;amp;Task=Get&amp;amp;amp;IFR=False&amp;amp;amp;PageID=52405&amp;amp;amp;SiteID=&#039; + 1 + &#039;&amp;amp;amp;Random=&#039; + (new Date()).getTime()  + &#039;&amp;amp;amp;Keywords=iphone,ruby,sinatra&amp;quot;&amp;gt;&#039;); &lt;br /&gt;
document.write(&#039;&amp;lt;/&#039;+&#039;scr&#039;+&#039;ipt&amp;gt;&#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* they run their own ad selection.  A bit of code to help prevent ad block.&lt;br /&gt;
&lt;br /&gt;
=== footer ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
                &amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;mailto:team@stackoverflow.com&amp;quot;&amp;gt;contact us&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt; |&lt;br /&gt;
                &amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;http://stackoverflow.uservoice.com&amp;quot;&amp;gt;feedback always welcome&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* user voice is cool, a real email address is surprising&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
                &amp;lt;div id=&amp;quot;svnrev&amp;quot;&amp;gt;svn revision: 3707&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* visible svn revision on each page&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;noscript&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;noscript-warning&amp;quot;&amp;gt;Stack Overflow works best with JavaScript enabled&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* no script warning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        document.write(unescape(&amp;quot;%3Cscript src=&#039;http://www.google-analytics.com/ga.js&#039; type=&#039;text/javascript&#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var pageTracker = _gat._getTracker(&amp;quot;UA-5620270-1&amp;quot;);&lt;br /&gt;
        pageTracker._trackPageview();&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Google analytics&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    _qoptions = { qacct : &amp;quot;p-c1rF4kxgLUzNc&amp;quot; };&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://edge.quantserve.com/quant.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;noscript&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* quant serve analytics&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2097</id>
		<title>Stack Overflow page design</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Stack_Overflow_page_design&amp;diff=2097"/>
		<updated>2009-06-25T03:05:56Z</updated>

		<summary type="html">&lt;p&gt;Egge: New page: == What do the smart people at Stack Overflow put in their HTML pages? ==  === header === &amp;lt;code&amp;gt; &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot; &amp;gt;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What do the smart people at Stack Overflow put in their HTML pages? ==&lt;br /&gt;
&lt;br /&gt;
=== header ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Strict html4 - this should make the page look good on all modern browsers.  Strict can be a bit difficult to achieve - especially if your pulling in third party content&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Develop iPhone app without a Mac? - Stack Overflow&amp;lt;/title&amp;gt; &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For title, they put the most important bit first, and also include the site name at the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/content/all.css?v=3706&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* CSS - they put everything into one big file and specify a version.  I&#039;m not sure if the version number is auto-incremented or manual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;/favicon.ico&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;apple-itouch-icon&amp;quot; href=&amp;quot;/apple-touch-icon.png&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* The favicon I expected - but I had to read about the Apple Touch icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; title=&amp;quot;Stack Overflow&amp;quot; href=&amp;quot;/opensearch.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Open search is fairly popular these days.  I&#039;d expect this on any site with a search feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/content/js/master.js?v=3567&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;var imagePath = &#039;/content/img/so/&#039;;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* All the JavaScript is in one file - just like the CSS.  The image path variable is interesting.  With this you could easily repoint your images to a CDN - but why not just include it in the master.js file itself?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;RSS&amp;quot; href=&amp;quot;/feeds/question/1041623&amp;quot;&amp;gt;   &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* About every page has an RSS feed associated with it these days.  I&#039;m not sure how useful feeds on item pages are, but maybe people want to know when questions they&#039;ve asked are updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    &amp;lt;script src=&amp;quot;/content/js/question.js?v=3591&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* More JavaScript.  I assume master applied to the entire site, and this file only applies to question pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var fkey = &amp;quot;4205033...3179b6&amp;quot;;&lt;br /&gt;
        var isRegistered = true;&lt;br /&gt;
        &lt;br /&gt;
        $(function() {&lt;br /&gt;
            vote.init(1041623); &lt;br /&gt;
            styleCode();&lt;br /&gt;
        });&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Since I&#039;m logged in, I can vote.  This minimal JavaScript tells the scripts on the page who I am (I think), and what the question number is.  &lt;br /&gt;
&lt;br /&gt;
=== body ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/questions/1041623/develop-iphone-app-without-a-mac&amp;quot; class=&amp;quot;question-hyperlink&amp;quot; rel=&amp;quot;canonical&amp;quot;&amp;gt;Develop iPhone app without a Mac?&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* The use of rel=&amp;quot;canonical&amp;quot; is interesting.  This is good SEO practice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/editor.js?v=3656&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;/Content/Js/wmd.js?v=3297&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    $(function() { editorReady(1); });&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* load the WMD script when/where it&#039;s needed.  This should help the page load speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Oracle_DBMS_OUTPUT.PUT_LINE&amp;diff=2095</id>
		<title>Oracle DBMS OUTPUT.PUT LINE</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Oracle_DBMS_OUTPUT.PUT_LINE&amp;diff=2095"/>
		<updated>2009-06-24T01:56:02Z</updated>

		<summary type="html">&lt;p&gt;Egge: New page: Q: How do I view the output from DBMS_OUTPUT.PUT_LINE statements in a stored procedure.  A: You can have the output sent to your screen if you run the following statement before executing ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Q: How do I view the output from DBMS_OUTPUT.PUT_LINE statements in a stored procedure.&lt;br /&gt;
&lt;br /&gt;
A: You can have the output sent to your screen if you run the following statement before executing the stored proc:&lt;br /&gt;
&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
&lt;br /&gt;
Q: Is there any other way to get the output?  &lt;br /&gt;
&lt;br /&gt;
A: Programatically, you can call DBMS_OUTPUT.GET_LINE, and dump the results to the screen/log.  SQLPlus does this for you, but most programs don&#039;t.  &lt;br /&gt;
&lt;br /&gt;
http://docstore.mik.ua/orelly/oracle/bipack/ch06_01.htm&lt;br /&gt;
You will see output from this package only after your program completes its execution. You cannot use DBMS_OUTPUT to examine the results of a program while it is running. And if your program terminates with an unhandled exception, you may not see anything at all!&lt;br /&gt;
&lt;br /&gt;
http://www.cs.umbc.edu/help/oracle8/server.815/a68001/dbms_out.htm&lt;br /&gt;
&lt;br /&gt;
In a separate PL/SQL procedure or anonymous block, you can display the buffered information by calling the GET_LINE procedure. If you do not call GET_LINE, or if you do not display the messages on your screen in SQL*Plus or Enterprise Manager, then the buffered messages are ignored. The DBMS_OUTPUT package is especially useful for displaying PL/SQL debugging information.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=Solaris_binary_files_quick_reference&amp;diff=2094</id>
		<title>Solaris binary files quick reference</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=Solaris_binary_files_quick_reference&amp;diff=2094"/>
		<updated>2009-06-19T00:43:30Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;file&#039;&#039;&#039; - determine what kind of executable you have&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ file /usr/bin/ssh&lt;br /&gt;
/usr/bin/ssh:   ELF 32-bit LSB executable 80386 Version 1, dynamically linked, stripped&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ldd&#039;&#039;&#039; - display the dynamic linking information&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ldd /usr/bin/ssh&lt;br /&gt;
        libsocket.so.1 =&amp;gt;        /lib/libsocket.so.1&lt;br /&gt;
        libnsl.so.1 =&amp;gt;   /lib/libnsl.so.1&lt;br /&gt;
        libz.so.1 =&amp;gt;     /usr/lib/libz.so.1&lt;br /&gt;
        libcrypto.so.0.9.7 =&amp;gt;    /usr/sfw/lib/libcrypto.so.0.9.7&lt;br /&gt;
        libgss.so.1 =&amp;gt;   /usr/lib/libgss.so.1&lt;br /&gt;
        libc.so.1 =&amp;gt;     /lib/libc.so.1&lt;br /&gt;
        libmp.so.2 =&amp;gt;    /lib/libmp.so.2&lt;br /&gt;
        libmd.so.1 =&amp;gt;    /lib/libmd.so.1&lt;br /&gt;
        libscf.so.1 =&amp;gt;   /lib/libscf.so.1&lt;br /&gt;
        libcmd.so.1 =&amp;gt;   /lib/libcmd.so.1&lt;br /&gt;
        libdoor.so.1 =&amp;gt;  /lib/libdoor.so.1&lt;br /&gt;
        libuutil.so.1 =&amp;gt;         /lib/libuutil.so.1&lt;br /&gt;
        libgen.so.1 =&amp;gt;   /lib/libgen.so.1&lt;br /&gt;
        libcrypto_extra.so.0.9.7 =&amp;gt;      /usr/sfw/lib/libcrypto_extra.so.0.9.7&lt;br /&gt;
        libm.so.2 =&amp;gt;     /lib/libm.so.2&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dump&#039;&#039;&#039; display the RPATH and RUNPATH information&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
$ dump -Lv  /usr/bin/ssh&lt;br /&gt;
&lt;br /&gt;
/usr/bin/ssh:&lt;br /&gt;
&lt;br /&gt;
  **** DYNAMIC SECTION INFORMATION ****&lt;br /&gt;
.dynamic:&lt;br /&gt;
[INDEX] Tag         Value&lt;br /&gt;
[1]     NEEDED          libsocket.so.1&lt;br /&gt;
[2]     NEEDED          libnsl.so.1&lt;br /&gt;
[3]     NEEDED          libz.so.1&lt;br /&gt;
[4]     NEEDED          libcrypto.so.0.9.7&lt;br /&gt;
[5]     NEEDED          libgss.so.1&lt;br /&gt;
[6]     NEEDED          libc.so.1&lt;br /&gt;
[7]     INIT            0x80794c8&lt;br /&gt;
[8]     FINI            0x80794dc&lt;br /&gt;
[9]     RUNPATH         /usr/sfw/lib&lt;br /&gt;
[10]    RPATH           /usr/sfw/lib&lt;br /&gt;
[11]    HASH            0x8050108&lt;br /&gt;
[12]    STRTAB          0x8054570&lt;br /&gt;
[13]    STRSZ           0x2a38&lt;br /&gt;
[14]    SYMTAB          0x80517e0&lt;br /&gt;
[15]    SYMENT          0x10&lt;br /&gt;
[16]    CHECKSUM        0xe45&lt;br /&gt;
[17]    VERNEED         0x8056fa8&lt;br /&gt;
[18]    VERNEEDNUM      0x5&lt;br /&gt;
[19]    PLTSZ           0x730&lt;br /&gt;
[20]    PLTREL          0x11&lt;br /&gt;
[21]    JMPREL          0x8057088&lt;br /&gt;
[22]    REL             0x8057068&lt;br /&gt;
[23]    RELSZ           0x750&lt;br /&gt;
[24]    RELENT          0x8&lt;br /&gt;
[25]    DEBUG           0&lt;br /&gt;
[26]    FEATURE_1       PARINIT&lt;br /&gt;
[27]    FLAGS           0&lt;br /&gt;
[28]    FLAGS_1         0&lt;br /&gt;
[29]    PLTGOT          0x8097000&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;elfdump&#039;&#039;&#039; can display the functions which the dynamic linker will link.  Any of these functions can be intercepted with a proxy sub or interposer.&lt;br /&gt;
&amp;lt;geshi&amp;gt;&lt;br /&gt;
$ elfdump -G /usr/bin/ssh&lt;br /&gt;
&lt;br /&gt;
Global Offset Table Section:  .got&lt;br /&gt;
     index    addr        value     pending relocation&lt;br /&gt;
       [0]  0x08097000  0x080973a4&lt;br /&gt;
       [1]  0x08097004  0x00000000&lt;br /&gt;
       [2]  0x08097008  0x00000000&lt;br /&gt;
       [3]  0x0809700c  0x080577ce  R_386_JMP_SLOT            atexit&lt;br /&gt;
       [4]  0x08097010  0x080577de  R_386_JMP_SLOT            __fpstart&lt;br /&gt;
       [5]  0x08097014  0x080577ee  R_386_JMP_SLOT            exit&lt;br /&gt;
       [6]  0x08097018  0x080577fe  R_386_JMP_SLOT            gettext&lt;br /&gt;
       [7]  0x0809701c  0x0805780e  R_386_JMP_SLOT            fprintf&lt;br /&gt;
       [8]  0x08097020  0x0805781e  R_386_JMP_SLOT            getuid&lt;br /&gt;
       [9]  0x08097024  0x0805782e  R_386_JMP_SLOT            geteuid&lt;br /&gt;
      [10]  0x08097028  0x0805783e  R_386_JMP_SLOT            ___errno&lt;br /&gt;
      [11]  0x0809702c  0x0805784e  R_386_JMP_SLOT            seteuid&lt;br /&gt;
      [12]  0x08097030  0x0805785e  R_386_JMP_SLOT            setrlimit64&lt;br /&gt;
      [13]  0x08097034  0x0805786e  R_386_JMP_SLOT            getpwuid&lt;br /&gt;
      [14]  0x08097038  0x0805787e  R_386_JMP_SLOT            umask&lt;br /&gt;
      [15]  0x0809703c  0x0805788e  R_386_JMP_SLOT            sscanf&lt;br /&gt;
      [16]  0x08097040  0x0805789e  R_386_JMP_SLOT            strlen&lt;br /&gt;
      [17]  0x08097044  0x080578ae  R_386_JMP_SLOT            strcmp&lt;br /&gt;
      [18]  0x08097048  0x080578be  R_386_JMP_SLOT            SSLeay&lt;br /&gt;
      [19]  0x0809704c  0x080578ce  R_386_JMP_SLOT            stat64&lt;br /&gt;
      [20]  0x08097050  0x080578de  R_386_JMP_SLOT            strchr&lt;br /&gt;
      [21]  0x08097054  0x080578ee  R_386_JMP_SLOT            OPENSSL_add_all_algorithms_noconf&lt;br /&gt;
      [22]  0x08097058  0x080578fe  R_386_JMP_SLOT            ERR_load_crypto_strings&lt;br /&gt;
      [23]  0x0809705c  0x0805790e  R_386_JMP_SLOT            fileno&lt;br /&gt;
      [24]  0x08097060  0x0805791e  R_386_JMP_SLOT            isatty&lt;br /&gt;
      [25]  0x08097064  0x0805792e  R_386_JMP_SLOT            snprintf&lt;br /&gt;
      [26]  0x08097068  0x0805793e  R_386_JMP_SLOT            setuid&lt;br /&gt;
      [27]  0x0809706c  0x0805794e  R_386_JMP_SLOT            mkdir&lt;br /&gt;
      [28]  0x08097070  0x0805795e  R_386_JMP_SLOT            signal&lt;br /&gt;
      [29]  0x08097074  0x0805796e  R_386_JMP_SLOT            kill&lt;br /&gt;
      [30]  0x08097078  0x0805797e  R_386_JMP_SLOT            strerror&lt;br /&gt;
      [31]  0x0809707c  0x0805798e  R_386_JMP_SLOT            getenv&lt;br /&gt;
      [32]  0x08097080  0x0805799e  R_386_JMP_SLOT            strncmp&lt;br /&gt;
      [33]  0x08097084  0x080579ae  R_386_JMP_SLOT            popen&lt;br /&gt;
      [34]  0x08097088  0x080579be  R_386_JMP_SLOT            fgets&lt;br /&gt;
      [35]  0x0809708c  0x080579ce  R_386_JMP_SLOT            pclose&lt;br /&gt;
      [36]  0x08097090  0x080579de  R_386_JMP_SLOT            strlcpy&lt;br /&gt;
      [37]  0x08097094  0x080579ee  R_386_JMP_SLOT            ioctl&lt;br /&gt;
      [38]  0x08097098  0x080579fe  R_386_JMP_SLOT            memset&lt;br /&gt;
      [39]  0x0809709c  0x08057a0e  R_386_JMP_SLOT            dup&lt;br /&gt;
      [40]  0x080970a0  0x08057a1e  R_386_JMP_SLOT            open64&lt;br /&gt;
      [41]  0x080970a4  0x08057a2e  R_386_JMP_SLOT            execv&lt;br /&gt;
      [42]  0x080970a8  0x08057a3e  R_386_JMP_SLOT            perror&lt;br /&gt;
      [43]  0x080970ac  0x08057a4e  R_386_JMP_SLOT            pipe&lt;br /&gt;
      [44]  0x080970b0  0x08057a5e  R_386_JMP_SLOT            fork&lt;br /&gt;
      [45]  0x080970b4  0x08057a6e  R_386_JMP_SLOT            close&lt;br /&gt;
      [46]  0x080970b8  0x08057a7e  R_386_JMP_SLOT            dup2&lt;br /&gt;
      [47]  0x080970bc  0x08057a8e  R_386_JMP_SLOT            socket&lt;br /&gt;
      [48]  0x080970c0  0x08057a9e  R_386_JMP_SLOT            getaddrinfo&lt;br /&gt;
      [49]  0x080970c4  0x08057aae  R_386_JMP_SLOT            bind&lt;br /&gt;
      [50]  0x080970c8  0x08057abe  R_386_JMP_SLOT            freeaddrinfo&lt;br /&gt;
      [51]  0x080970cc  0x08057ace  R_386_JMP_SLOT            rresvport_af&lt;br /&gt;
      [52]  0x080970d0  0x08057ade  R_386_JMP_SLOT            gai_strerror&lt;br /&gt;
      [53]  0x080970d4  0x08057aee  R_386_JMP_SLOT            getservbyname&lt;br /&gt;
      [54]  0x080970d8  0x08057afe  R_386_JMP_SLOT            ntohs&lt;br /&gt;
      [55]  0x080970dc  0x08057b0e  R_386_JMP_SLOT            getnameinfo&lt;br /&gt;
      [56]  0x080970e0  0x08057b1e  R_386_JMP_SLOT            connect&lt;br /&gt;
      [57]  0x080970e4  0x08057b2e  R_386_JMP_SLOT            memcpy&lt;br /&gt;
      [58]  0x080970e8  0x08057b3e  R_386_JMP_SLOT            sleep&lt;br /&gt;
      [59]  0x080970ec  0x08057b4e  R_386_JMP_SLOT            setsockopt&lt;br /&gt;
      [60]  0x080970f0  0x08057b5e  R_386_JMP_SLOT            read&lt;br /&gt;
      [61]  0x080970f4  0x08057b6e  R_386_JMP_SLOT            write&lt;br /&gt;
      [62]  0x080970f8  0x08057b7e  R_386_JMP_SLOT            nl_langinfo&lt;br /&gt;
      [63]  0x080970fc  0x08057b8e  R_386_JMP_SLOT            strcasecmp&lt;br /&gt;
      [64]  0x08097100  0x08057b9e  R_386_JMP_SLOT            ntohl&lt;br /&gt;
      [65]  0x08097104  0x08057bae  R_386_JMP_SLOT            tolower&lt;br /&gt;
      [66]  0x08097108  0x08057bbe  R_386_JMP_SLOT            BN_new&lt;br /&gt;
      [67]  0x0809710c  0x08057bce  R_386_JMP_SLOT            BN_clear_free&lt;br /&gt;
      [68]  0x08097110  0x08057bde  R_386_JMP_SLOT            BN_num_bits&lt;br /&gt;
      [69]  0x08097114  0x08057bee  R_386_JMP_SLOT            BN_bn2bin&lt;br /&gt;
      [70]  0x08097118  0x08057bfe  R_386_JMP_SLOT            MD5_Init&lt;br /&gt;
      [71]  0x0809711c  0x08057c0e  R_386_JMP_SLOT            MD5_Update&lt;br /&gt;
      [72]  0x08097120  0x08057c1e  R_386_JMP_SLOT            MD5_Final&lt;br /&gt;
      [73]  0x08097124  0x08057c2e  R_386_JMP_SLOT            BN_set_word&lt;br /&gt;
      [74]  0x08097128  0x08057c3e  R_386_JMP_SLOT            BN_lshift&lt;br /&gt;
      [75]  0x0809712c  0x08057c4e  R_386_JMP_SLOT            BN_add_word&lt;br /&gt;
      [76]  0x08097130  0x08057c5e  R_386_JMP_SLOT            BN_cmp&lt;br /&gt;
      [77]  0x08097134  0x08057c6e  R_386_JMP_SLOT            setlocale&lt;br /&gt;
      [78]  0x08097138  0x08057c7e  R_386_JMP_SLOT            gss_release_buffer&lt;br /&gt;
      [79]  0x0809713c  0x08057c8e  R_386_JMP_SLOT            fflush&lt;br /&gt;
      [80]  0x08097140  0x08057c9e  R_386_JMP_SLOT            waitpid&lt;br /&gt;
      [81]  0x08097144  0x08057cae  R_386_JMP_SLOT            execl&lt;br /&gt;
      [82]  0x08097148  0x08057cbe  R_386_JMP_SLOT            strlcat&lt;br /&gt;
      [83]  0x0809714c  0x08057cce  R_386_JMP_SLOT            tcsetattr&lt;br /&gt;
      [84]  0x08097150  0x08057cde  R_386_JMP_SLOT            tcgetattr&lt;br /&gt;
      [85]  0x08097154  0x08057cee  R_386_JMP_SLOT            fcntl&lt;br /&gt;
      [86]  0x08097158  0x08057cfe  R_386_JMP_SLOT            gettimeofday&lt;br /&gt;
      [87]  0x0809715c  0x08057d0e  R_386_JMP_SLOT            select&lt;br /&gt;
      [88]  0x08097160  0x08057d1e  R_386_JMP_SLOT            getpid&lt;br /&gt;
      [89]  0x08097164  0x08057d2e  R_386_JMP_SLOT            gss_indicate_mechs&lt;br /&gt;
      [90]  0x08097168  0x08057d3e  R_386_JMP_SLOT            gss_create_empty_oid_set&lt;br /&gt;
      [91]  0x0809716c  0x08057d4e  R_386_JMP_SLOT            gss_acquire_cred&lt;br /&gt;
      [92]  0x08097170  0x08057d5e  R_386_JMP_SLOT            gss_release_cred&lt;br /&gt;
      [93]  0x08097174  0x08057d6e  R_386_JMP_SLOT            gss_add_oid_set_member&lt;br /&gt;
      [94]  0x08097178  0x08057d7e  R_386_JMP_SLOT            gss_release_oid_set&lt;br /&gt;
      [95]  0x0809717c  0x08057d8e  R_386_JMP_SLOT            gss_init_sec_context&lt;br /&gt;
      [96]  0x08097180  0x08057d9e  R_386_JMP_SLOT            unlink&lt;br /&gt;
      [97]  0x08097184  0x08057dae  R_386_JMP_SLOT            EVP_des_ede3_cbc&lt;br /&gt;
      [98]  0x08097188  0x08057dbe  R_386_JMP_SLOT            fdopen&lt;br /&gt;
      [99]  0x0809718c  0x08057dce  R_386_JMP_SLOT            PEM_write_DSAPrivateKey&lt;br /&gt;
     [100]  0x08097190  0x08057dde  R_386_JMP_SLOT            PEM_write_RSAPrivateKey&lt;br /&gt;
     [101]  0x08097194  0x08057dee  R_386_JMP_SLOT            fclose&lt;br /&gt;
     [102]  0x08097198  0x08057dfe  R_386_JMP_SLOT            lseek64&lt;br /&gt;
     [103]  0x0809719c  0x08057e0e  R_386_JMP_SLOT            PEM_read_PrivateKey&lt;br /&gt;
     [104]  0x080971a0  0x08057e1e  R_386_JMP_SLOT            EVP_PKEY_get1_DSA&lt;br /&gt;
     [105]  0x080971a4  0x08057e2e  R_386_JMP_SLOT            EVP_PKEY_get1_RSA&lt;br /&gt;
     [106]  0x080971a8  0x08057e3e  R_386_JMP_SLOT            EVP_PKEY_free&lt;br /&gt;
     [107]  0x080971ac  0x08057e4e  R_386_JMP_SLOT            ERR_get_error&lt;br /&gt;
     [108]  0x080971b0  0x08057e5e  R_386_JMP_SLOT            fstat64&lt;br /&gt;
     [109]  0x080971b4  0x08057e6e  R_386_JMP_SLOT            fopen64&lt;br /&gt;
     [110]  0x080971b8  0x08057e7e  R_386_JMP_SLOT            BN_bin2bn&lt;br /&gt;
     [111]  0x080971bc  0x08057e8e  R_386_JMP_SLOT            memmove&lt;br /&gt;
     [112]  0x080971c0  0x08057e9e  R_386_JMP_SLOT            getpeername&lt;br /&gt;
     [113]  0x080971c4  0x08057eae  R_386_JMP_SLOT            getsockname&lt;br /&gt;
     [114]  0x080971c8  0x08057ebe  R_386_JMP_SLOT            atoi&lt;br /&gt;
     [115]  0x080971cc  0x08057ece  R_386_JMP_SLOT            inet_ntop&lt;br /&gt;
     [116]  0x080971d0  0x08057ede  R_386_JMP_SLOT            shutdown&lt;br /&gt;
     [117]  0x080971d4  0x08057eee  R_386_JMP_SLOT            memcmp&lt;br /&gt;
     [118]  0x080971d8  0x08057efe  R_386_JMP_SLOT            inet_ntoa&lt;br /&gt;
     [119]  0x080971dc  0x08057f0e  R_386_JMP_SLOT            accept&lt;br /&gt;
     [120]  0x080971e0  0x08057f1e  R_386_JMP_SLOT            getsockopt&lt;br /&gt;
     [121]  0x080971e4  0x08057f2e  R_386_JMP_SLOT            listen&lt;br /&gt;
     [122]  0x080971e8  0x08057f3e  R_386_JMP_SLOT            strrchr&lt;br /&gt;
     [123]  0x080971ec  0x08057f4e  R_386_JMP_SLOT            EVP_CIPHER_CTX_init&lt;br /&gt;
     [124]  0x080971f0  0x08057f5e  R_386_JMP_SLOT            EVP_CipherInit&lt;br /&gt;
     [125]  0x080971f4  0x08057f6e  R_386_JMP_SLOT            EVP_CIPHER_CTX_set_key_length&lt;br /&gt;
     [126]  0x080971f8  0x08057f7e  R_386_JMP_SLOT            EVP_CIPHER_CTX_cleanup&lt;br /&gt;
     [127]  0x080971fc  0x08057f8e  R_386_JMP_SLOT            EVP_des_cbc&lt;br /&gt;
     [128]  0x08097200  0x08057f9e  R_386_JMP_SLOT            EVP_bf_cbc&lt;br /&gt;
     [129]  0x08097204  0x08057fae  R_386_JMP_SLOT            EVP_rc4&lt;br /&gt;
     [130]  0x08097208  0x08057fbe  R_386_JMP_SLOT            AES_encrypt&lt;br /&gt;
     [131]  0x0809720c  0x08057fce  R_386_JMP_SLOT            AES_set_encrypt_key&lt;br /&gt;
     [132]  0x08097210  0x08057fde  R_386_JMP_SLOT            strncpy&lt;br /&gt;
     [133]  0x08097214  0x08057fee  R_386_JMP_SLOT            strncasecmp&lt;br /&gt;
     [134]  0x08097218  0x08057ffe  R_386_JMP_SLOT            textdomain&lt;br /&gt;
     [135]  0x0809721c  0x0805800e  R_386_JMP_SLOT            qsort&lt;br /&gt;
     [136]  0x08097220  0x0805801e  R_386_JMP_SLOT            iconv_open&lt;br /&gt;
     [137]  0x08097224  0x0805802e  R_386_JMP_SLOT            iconv&lt;br /&gt;
     [138]  0x08097228  0x0805803e  R_386_JMP_SLOT            HMAC_Init&lt;br /&gt;
     [139]  0x0809722c  0x0805804e  R_386_JMP_SLOT            HMAC_Update&lt;br /&gt;
     [140]  0x08097230  0x0805805e  R_386_JMP_SLOT            HMAC_Final&lt;br /&gt;
     [141]  0x08097234  0x0805806e  R_386_JMP_SLOT            HMAC_CTX_cleanup&lt;br /&gt;
     [142]  0x08097238  0x0805807e  R_386_JMP_SLOT            DSA_new&lt;br /&gt;
     [143]  0x0809723c  0x0805808e  R_386_JMP_SLOT            RSA_new&lt;br /&gt;
     [144]  0x08097240  0x0805809e  R_386_JMP_SLOT            DSA_free&lt;br /&gt;
     [145]  0x08097244  0x080580ae  R_386_JMP_SLOT            RSA_free&lt;br /&gt;
     [146]  0x08097248  0x080580be  R_386_JMP_SLOT            EVP_md5&lt;br /&gt;
     [147]  0x0809724c  0x080580ce  R_386_JMP_SLOT            EVP_sha1&lt;br /&gt;
     [148]  0x08097250  0x080580de  R_386_JMP_SLOT            EVP_DigestInit&lt;br /&gt;
     [149]  0x08097254  0x080580ee  R_386_JMP_SLOT            EVP_DigestUpdate&lt;br /&gt;
     [150]  0x08097258  0x080580fe  R_386_JMP_SLOT            EVP_DigestFinal&lt;br /&gt;
     [151]  0x0809725c  0x0805810e  R_386_JMP_SLOT            BN_dec2bn&lt;br /&gt;
     [152]  0x08097260  0x0805811e  R_386_JMP_SLOT            BN_bn2dec&lt;br /&gt;
     [153]  0x08097264  0x0805812e  R_386_JMP_SLOT            CRYPTO_free&lt;br /&gt;
     [154]  0x08097268  0x0805813e  R_386_JMP_SLOT            RSA_generate_key&lt;br /&gt;
     [155]  0x0809726c  0x0805814e  R_386_JMP_SLOT            DSA_generate_parameters&lt;br /&gt;
     [156]  0x08097270  0x0805815e  R_386_JMP_SLOT            DSA_generate_key&lt;br /&gt;
     [157]  0x08097274  0x0805816e  R_386_JMP_SLOT            BN_copy&lt;br /&gt;
     [158]  0x08097278  0x0805817e  R_386_JMP_SLOT            BN_dup&lt;br /&gt;
     [159]  0x0809727c  0x0805818e  R_386_JMP_SLOT            DH_size&lt;br /&gt;
     [160]  0x08097280  0x0805819e  R_386_JMP_SLOT            DH_compute_key&lt;br /&gt;
     [161]  0x08097284  0x080581ae  R_386_JMP_SLOT            DH_free&lt;br /&gt;
     [162]  0x08097288  0x080581be  R_386_JMP_SLOT            gss_verify_mic&lt;br /&gt;
     [163]  0x0809728c  0x080581ce  R_386_JMP_SLOT            vsnprintf&lt;br /&gt;
     [164]  0x08097290  0x080581de  R_386_JMP_SLOT            openlog&lt;br /&gt;
     [165]  0x08097294  0x080581ee  R_386_JMP_SLOT            syslog&lt;br /&gt;
     [166]  0x08097298  0x080581fe  R_386_JMP_SLOT            closelog&lt;br /&gt;
     [167]  0x0809729c  0x0805820e  R_386_JMP_SLOT            strpbrk&lt;br /&gt;
     [168]  0x080972a0  0x0805821e  R_386_JMP_SLOT            strspn&lt;br /&gt;
     [169]  0x080972a4  0x0805822e  R_386_JMP_SLOT            strtol&lt;br /&gt;
     [170]  0x080972a8  0x0805823e  R_386_JMP_SLOT            sigaction&lt;br /&gt;
     [171]  0x080972ac  0x0805824e  R_386_JMP_SLOT            sigemptyset&lt;br /&gt;
     [172]  0x080972b0  0x0805825e  R_386_JMP_SLOT            RAND_status&lt;br /&gt;
     [173]  0x080972b4  0x0805826e  R_386_JMP_SLOT            strcspn&lt;br /&gt;
     [174]  0x080972b8  0x0805827e  R_386_JMP_SLOT            execlp&lt;br /&gt;
     [175]  0x080972bc  0x0805828e  R_386_JMP_SLOT            RSA_public_encrypt&lt;br /&gt;
     [176]  0x080972c0  0x0805829e  R_386_JMP_SLOT            RSA_private_decrypt&lt;br /&gt;
     [177]  0x080972c4  0x080582ae  R_386_JMP_SLOT            BN_CTX_new&lt;br /&gt;
     [178]  0x080972c8  0x080582be  R_386_JMP_SLOT            BN_value_one&lt;br /&gt;
     [179]  0x080972cc  0x080582ce  R_386_JMP_SLOT            BN_sub&lt;br /&gt;
     [180]  0x080972d0  0x080582de  R_386_JMP_SLOT            BN_div&lt;br /&gt;
     [181]  0x080972d4  0x080582ee  R_386_JMP_SLOT            BN_CTX_free&lt;br /&gt;
     [182]  0x080972d8  0x080582fe  R_386_JMP_SLOT            DSA_do_sign&lt;br /&gt;
     [183]  0x080972dc  0x0805830e  R_386_JMP_SLOT            DSA_SIG_free&lt;br /&gt;
     [184]  0x080972e0  0x0805831e  R_386_JMP_SLOT            DSA_SIG_new&lt;br /&gt;
     [185]  0x080972e4  0x0805832e  R_386_JMP_SLOT            DSA_do_verify&lt;br /&gt;
     [186]  0x080972e8  0x0805833e  R_386_JMP_SLOT            gss_test_oid_set_member&lt;br /&gt;
     [187]  0x080972ec  0x0805834e  R_386_JMP_SLOT            __gss_oid_to_mech&lt;br /&gt;
     [188]  0x080972f0  0x0805835e  R_386_JMP_SLOT            gss_oid_to_str&lt;br /&gt;
     [189]  0x080972f4  0x0805836e  R_386_JMP_SLOT            gss_display_status&lt;br /&gt;
     [190]  0x080972f8  0x0805837e  R_386_JMP_SLOT            gss_release_oid&lt;br /&gt;
     [191]  0x080972fc  0x0805838e  R_386_JMP_SLOT            gss_delete_sec_context&lt;br /&gt;
     [192]  0x08097300  0x0805839e  R_386_JMP_SLOT            gss_release_name&lt;br /&gt;
     [193]  0x08097304  0x080583ae  R_386_JMP_SLOT            gss_import_name&lt;br /&gt;
     [194]  0x08097308  0x080583be  R_386_JMP_SLOT            gss_get_mic&lt;br /&gt;
     [195]  0x0809730c  0x080583ce  R_386_JMP_SLOT            OBJ_nid2sn&lt;br /&gt;
     [196]  0x08097310  0x080583de  R_386_JMP_SLOT            EVP_get_digestbyname&lt;br /&gt;
     [197]  0x08097314  0x080583ee  R_386_JMP_SLOT            RSA_size&lt;br /&gt;
     [198]  0x08097318  0x080583fe  R_386_JMP_SLOT            RSA_sign&lt;br /&gt;
     [199]  0x0809731c  0x0805840e  R_386_JMP_SLOT            ERR_error_string&lt;br /&gt;
     [200]  0x08097320  0x0805841e  R_386_JMP_SLOT            RSA_public_decrypt&lt;br /&gt;
     [201]  0x08097324  0x0805842e  R_386_JMP_SLOT            getpwnam&lt;br /&gt;
     [202]  0x08097328  0x0805843e  R_386_JMP_SLOT            cfgetospeed&lt;br /&gt;
     [203]  0x0809732c  0x0805844e  R_386_JMP_SLOT            cfgetispeed&lt;br /&gt;
     [204]  0x08097330  0x0805845e  R_386_JMP_SLOT            cfsetospeed&lt;br /&gt;
     [205]  0x08097334  0x0805846e  R_386_JMP_SLOT            cfsetispeed&lt;br /&gt;
     [206]  0x08097338  0x0805847e  R_386_JMP_SLOT            malloc&lt;br /&gt;
     [207]  0x0809733c  0x0805848e  R_386_JMP_SLOT            realloc&lt;br /&gt;
     [208]  0x08097340  0x0805849e  R_386_JMP_SLOT            free&lt;br /&gt;
     [209]  0x08097344  0x080584ae  R_386_JMP_SLOT            strcat&lt;br /&gt;
     [210]  0x08097348  0x080584be  R_386_JMP_SLOT            deflateEnd&lt;br /&gt;
     [211]  0x0809734c  0x080584ce  R_386_JMP_SLOT            deflateInit_&lt;br /&gt;
     [212]  0x08097350  0x080584de  R_386_JMP_SLOT            inflateEnd&lt;br /&gt;
     [213]  0x08097354  0x080584ee  R_386_JMP_SLOT            inflateInit_&lt;br /&gt;
     [214]  0x08097358  0x080584fe  R_386_JMP_SLOT            deflate&lt;br /&gt;
     [215]  0x0809735c  0x0805850e  R_386_JMP_SLOT            inflate&lt;br /&gt;
     [216]  0x08097360  0x0805851e  R_386_JMP_SLOT            BN_hex2bn&lt;br /&gt;
     [217]  0x08097364  0x0805852e  R_386_JMP_SLOT            rewind&lt;br /&gt;
     [218]  0x08097368  0x0805853e  R_386_JMP_SLOT            BN_is_bit_set&lt;br /&gt;
     [219]  0x0809736c  0x0805854e  R_386_JMP_SLOT            BN_rand&lt;br /&gt;
     [220]  0x08097370  0x0805855e  R_386_JMP_SLOT            DH_generate_key&lt;br /&gt;
     [221]  0x08097374  0x0805856e  R_386_JMP_SLOT            DH_new&lt;br /&gt;
     [222]  0x08097378  0x0805857e  R_386_JMP_SLOT            RC4&lt;br /&gt;
     [223]  0x0809737c  0x0805858e  R_386_JMP_SLOT            RAND_bytes&lt;br /&gt;
     [224]  0x08097380  0x0805859e  R_386_JMP_SLOT            RC4_set_key&lt;br /&gt;
     [225]  0x08097384  0x080585ae  R_386_JMP_SLOT            abort&lt;br /&gt;
     [226]  0x08097388  0x080585be  R_386_JMP_SLOT            _exit&lt;br /&gt;
     [227]  0x0809738c  0x080585ce  R_386_JMP_SLOT            setsid&lt;br /&gt;
     [228]  0x08097390  0x080585de  R_386_JMP_SLOT            chdir&lt;br /&gt;
     [229]  0x08097394  0x080585ee  R_386_JMP_SLOT            toupper&lt;br /&gt;
     [230]  0x08097398  0x080585fe  R_386_JMP_SLOT            _get_exit_frame_monitor&lt;br /&gt;
     [231]  0x0809739c  0x0805860e  R_386_JMP_SLOT            EVP_enc_null&lt;br /&gt;
     [232]  0x080973a0  0x0805861e  R_386_JMP_SLOT            EVP_aes_128_cbc&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;strings&#039;&#039;&#039; display everything else which might be interesting&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ strings  /usr/bin/ssh | uniq&lt;br /&gt;
ÿÿÿÿ&lt;br /&gt;
Ossh_gssapi_init_ctx&lt;br /&gt;
ssh_gssapi_client_kex_hook&lt;br /&gt;
SSH PRIVATE KEY FILE FORMAT 1.1&lt;br /&gt;
cipher_set_keyiv&lt;br /&gt;
cipher_get_keyiv&lt;br /&gt;
bcdfghklmnprstvzxaeiouy&lt;br /&gt;
ssh_gssapi_import_name&lt;br /&gt;
ssh_gssapi_modify_kex&lt;br /&gt;
=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&lt;br /&gt;
DISPLAY&lt;br /&gt;
LC_TIME&lt;br /&gt;
DISPLAY&lt;br /&gt;
/usr/bin/rsh&lt;br /&gt;
Using rsh.  WARNING: Connection will not be encrypted.&lt;br /&gt;
identity file %s type %d&lt;br /&gt;
daemon() failed: %.200s&lt;br /&gt;
ssh_session2_open: channel_new: %d&lt;br /&gt;
client-session&lt;br /&gt;
dup() in/out/err failed&lt;br /&gt;
/dev/null&lt;br /&gt;
Sending command: %.*s&lt;br /&gt;
Sending subsystem: %.*s&lt;br /&gt;
Requesting authentication agent forwarding.&lt;br /&gt;
Requesting X11 forwarding with authentication spoofing.&lt;br /&gt;
TERM&lt;br /&gt;
ssh_session2_setup: id %d&lt;br /&gt;
LC_ALL&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_ALL&lt;br /&gt;
LC_MESSAGES&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_MESSAGES&lt;br /&gt;
LC_MONETARY&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_MONETARY&lt;br /&gt;
LC_NUMERIC&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_NUMERIC&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_COLLATE&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_COLLATE&lt;br /&gt;
LC_CTYPE&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LC_CTYPE&lt;br /&gt;
LANG&lt;br /&gt;
Sent request for environment variable %s=%s&lt;br /&gt;
LANG&lt;br /&gt;
Warning: remote port forwarding failed for listen port %d&lt;br /&gt;
remote forward %s for: listen %d, connect %s:%d&lt;br /&gt;
client_global_request_reply: too many replies %d &amp;gt; %d&lt;br /&gt;
Request for subsystem &#039;%.*s&#039; failed on channel %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Requesting shell.&lt;br /&gt;
Sending command: %.*s&lt;br /&gt;
daemon() failed: %.200s&lt;br /&gt;
Warning: Remote host denied authentication agent forwarding.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Requesting authentication agent forwarding.&lt;br /&gt;
Protocol error waiting for X11 forwarding&lt;br /&gt;
Warning: Remote host denied X11 forwarding.&lt;br /&gt;
Requesting X11 forwarding with authentication spoofing.&lt;br /&gt;
Protocol error waiting for pty request response.&lt;br /&gt;
Warning: Remote host failed or refused to allocate a pseudo tty.&lt;br /&gt;
TERM&lt;br /&gt;
Requesting pty.&lt;br /&gt;
Protocol error waiting for compression response.&lt;br /&gt;
Warning: Remote host refused compression.&lt;br /&gt;
Compression level must be from 1 (fast) to 9 (slow, best).&lt;br /&gt;
Requesting compression at level %d.&lt;br /&gt;
Connections to remote port %d forwarded to local address %.200s:%d&lt;br /&gt;
Could not request local forwarding.&lt;br /&gt;
Connections to local port %d forwarded to remote address %.200s:%d&lt;br /&gt;
%02x&lt;br /&gt;
MIT-MAGIC-COOKIE-1&lt;br /&gt;
Warning: No xauth data; using fake authentication data for X11 forwarding.&lt;br /&gt;
%*s %511s %511s&lt;br /&gt;
x11_get_proto: %s&lt;br /&gt;
%s list %.200s 2&amp;gt;/dev/null&lt;br /&gt;
%s list unix:%s 2&amp;gt;/dev/null&lt;br /&gt;
localhost:&lt;br /&gt;
x11_get_proto: DISPLAY not set&lt;br /&gt;
No xauth program.&lt;br /&gt;
clear hostkey %d&lt;br /&gt;
Could not create directory &#039;%.200s&#039;.&lt;br /&gt;
%.100s%s%.100s&lt;br /&gt;
/etc/ssh/ssh_host_rsa_key&lt;br /&gt;
/etc/ssh/ssh_host_dsa_key&lt;br /&gt;
/etc/ssh/ssh_host_rsa_key&lt;br /&gt;
/etc/ssh/ssh_host_dsa_key&lt;br /&gt;
/etc/ssh/ssh_host_key&lt;br /&gt;
rsh_connect returned&lt;br /&gt;
Rhosts Authentication disabled, originating port will not be trusted.&lt;br /&gt;
/etc/ssh/ssh_config&lt;br /&gt;
%.100s/%.100s&lt;br /&gt;
Can&#039;t open user config file %.100s: %.100s&lt;br /&gt;
Pseudo-terminal will not be allocated because stdin is not a terminal.&lt;br /&gt;
Cannot fork into background without a command to execute.&lt;br /&gt;
You must specify a subsystem to invoke.&lt;br /&gt;
1246ab:c:e:fgi:kl:m:no:p:qstvxACD:F:I:L:NPR:TVX&lt;br /&gt;
command-line&lt;br /&gt;
socks4&lt;br /&gt;
Bad dynamic port &#039;%s&#039;&lt;br /&gt;
Bad forwarding port(s) &#039;%s&#039;&lt;br /&gt;
Bad forwarding specification &#039;%s&#039;&lt;br /&gt;
%5[0-9]/%255[^/]/%5[0-9]&lt;br /&gt;
%5[0-9]:%255[^:]:%5[0-9]&lt;br /&gt;
Bad port &#039;%s&#039;&lt;br /&gt;
Unknown mac type &#039;%s&#039;&lt;br /&gt;
Unknown cipher type &#039;%s&#039;&lt;br /&gt;
Bad escape character &#039;%s&#039;.&lt;br /&gt;
none&lt;br /&gt;
%s, SSH protocols %d.%d/%d.%d, OpenSSL 0x%8.8lx&lt;br /&gt;
Too high debugging level.&lt;br /&gt;
no support for smartcards.&lt;br /&gt;
Too many identity files specified (max %d)&lt;br /&gt;
Warning: Identity file %s does not exist.&lt;br /&gt;
Warning: Option -P has been deprecated&lt;br /&gt;
1246ab:c:e:fgi:kl:m:no:p:qstvxACD:F:I:L:NPR:TVX&lt;br /&gt;
You don&#039;t exist, go away!&lt;br /&gt;
setrlimit failed: %.100s&lt;br /&gt;
Usage: %s [options] host [command]&lt;br /&gt;
Options:&lt;br /&gt;
  -l user     Log in using this user name.&lt;br /&gt;
  -n          Redirect input from /dev/null.&lt;br /&gt;
  -F config   Config file (default: ~/%s).&lt;br /&gt;
  -A          Enable authentication agent forwarding.&lt;br /&gt;
  -a          Disable authentication agent forwarding (default).&lt;br /&gt;
  -X          Enable X11 connection forwarding.&lt;br /&gt;
  -x          Disable X11 connection forwarding (default).&lt;br /&gt;
  -i file     Identity for public key authentication (default: ~/.ssh/identity)&lt;br /&gt;
  -t          Tty; allocate a tty even if command is given.&lt;br /&gt;
  -T          Do not allocate a tty.&lt;br /&gt;
  -v          Verbose; display verbose debugging messages.&lt;br /&gt;
              Multiple -v increases verbosity.&lt;br /&gt;
  -V          Display version number only.&lt;br /&gt;
  -q          Quiet; don&#039;t display any warning messages.&lt;br /&gt;
  -f          Fork into background after authentication.&lt;br /&gt;
  -e char     Set escape character; ``none&#039;&#039; = disable (default: ~).&lt;br /&gt;
  -c cipher   Select encryption algorithm&lt;br /&gt;
  -m macs     Specify MAC algorithms for protocol version 2.&lt;br /&gt;
  -p port     Connect to this port.  Server must be on the same port.&lt;br /&gt;
  -L listen-port:host:port   Forward local port to remote address&lt;br /&gt;
  -R listen-port:host:port   Forward remote port to local address&lt;br /&gt;
              These cause %s to listen for connections on a port, and&lt;br /&gt;
              forward them to the other side by connecting to host:port.&lt;br /&gt;
  -D port     Enable dynamic application-level port forwarding.&lt;br /&gt;
  -C          Enable compression.&lt;br /&gt;
  -N          Do not execute a shell or command.&lt;br /&gt;
  -g          Allow remote hosts to connect to forwarded ports.&lt;br /&gt;
  -1          Force protocol version 1.&lt;br /&gt;
  -2          Force protocol version 2.&lt;br /&gt;
  -4          Use IPv4 only.&lt;br /&gt;
  -6          Use IPv6 only.&lt;br /&gt;
  -o &#039;option&#039; Process the option as if it was read from a configuration file.&lt;br /&gt;
  -s          Invoke command (mandatory) as SSH2 subsystem.&lt;br /&gt;
  -b addr     Local IP address.&lt;br /&gt;
@(#)$OpenBSD: ssh.c,v 1.186 2002/09/19 01:58:18 djm Exp $&lt;br /&gt;
no key of type %d for host %s&lt;br /&gt;
WARNING: %s key found for host %s&lt;br /&gt;
in %s:%d&lt;br /&gt;
%s key fingerprint %s.&lt;br /&gt;
Are you sure you want to continue connecting (%s/%s)&lt;br /&gt;
Exiting, you have requested strict checking.&lt;br /&gt;
Matching host key in %s:%d&lt;br /&gt;
Warning: the %s host key for &#039;%.200s&#039; differs from the key for the IP address &#039;%.128s&#039;&lt;br /&gt;
Offending key for IP in %s:%d&lt;br /&gt;
internal error&lt;br /&gt;
Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
X11 forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Agent forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
%s host key for %.200s has changed and you have requested strict checking.&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
It is also possible that the %s host key has just been changed.&lt;br /&gt;
The fingerprint for the %s key sent by the remote host is&lt;br /&gt;
Please contact your system administrator.&lt;br /&gt;
Add correct host key in %.100s to get rid of this message.&lt;br /&gt;
Offending key in %s:%d&lt;br /&gt;
Offending key for IP in %s:%d&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
The %s host key for %s has changed,&lt;br /&gt;
and the key for the according IP address %s&lt;br /&gt;
%s. This could either mean that&lt;br /&gt;
DNS SPOOFING is happening or the IP address for the host&lt;br /&gt;
and its host key have changed at the same time.&lt;br /&gt;
Warning: The host key for host %s has changed; please update your known hosts file(s) (%s:%d)&lt;br /&gt;
Warning: Permanently added &#039;%.200s&#039; (%s) to the list of known hosts.&lt;br /&gt;
Failed to add the host to the list of known hosts (%.500s).&lt;br /&gt;
%s,%s&lt;br /&gt;
but keys of different type are already known for this host.&lt;br /&gt;
The authenticity of host &#039;%.200s (%s)&#039; can&#039;t be established%s&lt;br /&gt;
%s key fingerprint is %s.&lt;br /&gt;
Are you sure you want to continue connecting (%s/%s)? &lt;br /&gt;
No %s host key is known for %.200s and you have requested strict checking.&lt;br /&gt;
Warning: Permanently added the %s host key for IP address &#039;%.128s&#039; to the list of known hosts.&lt;br /&gt;
Failed to add the %s host key for IP address &#039;%.128s&#039; to the list of known hosts (%.30s).&lt;br /&gt;
%s host key for IP address &#039;%.128s&#039; not in list of known hosts.&lt;br /&gt;
Found key in %s:%d&lt;br /&gt;
Host &#039;%.200s&#039; is known and matches the %s host key.&lt;br /&gt;
Host &#039;%.200s&#039; is known and matches the advertised %s hostkey.&lt;br /&gt;
using hostkeyalias: %s&lt;br /&gt;
&amp;lt;no hostip for proxy command&amp;gt;&lt;br /&gt;
check_host_key: getnameinfo failed&lt;br /&gt;
Forcing accepting of host key for loopback/localhost.&lt;br /&gt;
Please type &#039;%s&#039; or &#039;%s&#039;: &lt;br /&gt;
Local version string %.100s&lt;br /&gt;
write: %.100s&lt;br /&gt;
SSH-%d.%d-%.100s&lt;br /&gt;
Protocol major versions differ: %d vs. %d&lt;br /&gt;
Agent forwarding disabled for protocol 1.3&lt;br /&gt;
Remote machine has too old SSH software version.&lt;br /&gt;
Remote protocol version %d.%d, remote software version %.100s&lt;br /&gt;
Bad remote protocol version identification: &#039;%.100s&#039;&lt;br /&gt;
SSH-%d.%d-%[^&lt;br /&gt;
ssh_exchange_identification: %s&lt;br /&gt;
SSH-&lt;br /&gt;
ssh_exchange_identification: Connection closed by remote host&lt;br /&gt;
ssh_exchange_identification: read: %.100s&lt;br /&gt;
setsockopt SO_KEEPALIVE: %.100s&lt;br /&gt;
Connection established.&lt;br /&gt;
ssh: connect to host %s port %s: %s&lt;br /&gt;
connect to address %s port %s: %s&lt;br /&gt;
Connecting to %.200s [%.100s] port %s.&lt;br /&gt;
ssh_connect: getnameinfo failed&lt;br /&gt;
Trying again...&lt;br /&gt;
%s: %.100s: %s&lt;br /&gt;
ssh_connect: needpriv %d&lt;br /&gt;
bind: %s: %s&lt;br /&gt;
getaddrinfo: %s: %s&lt;br /&gt;
socket: %.100s&lt;br /&gt;
Allocated local port %d.&lt;br /&gt;
rresvport: af=%d %.100s&lt;br /&gt;
fork failed: %.100s&lt;br /&gt;
dup2 stdout&lt;br /&gt;
dup2 stdin&lt;br /&gt;
Executing proxy command: %.500s&lt;br /&gt;
Could not create pipes to communicate with the proxy: %.100s&lt;br /&gt;
exec &lt;br /&gt;
exec&lt;br /&gt;
@(#)$OpenBSD: sshconnect.c,v 1.135 2002/09/19 01:58:18 djm Exp $&lt;br /&gt;
Permission denied.&lt;br /&gt;
%.30s@%.128s&#039;s password: &lt;br /&gt;
Protocol error: got %d in response to rhosts auth&lt;br /&gt;
Trying rhosts authentication.&lt;br /&gt;
Protocol error: got %d in response to SSH_CMSG_USER&lt;br /&gt;
ssh_userauth1: server supports no auth methods&lt;br /&gt;
Received encrypted confirmation.&lt;br /&gt;
Sent encrypted session key.&lt;br /&gt;
Encryption type: %.100s&lt;br /&gt;
Selected cipher type %.100s not supported by server.&lt;br /&gt;
No valid SSH1 cipher, using %.100s instead.&lt;br /&gt;
respond_to_rsa_challenge: server_key %d &amp;lt; host_key %d + SSH_KEY_BITS_RESERVED %d&lt;br /&gt;
respond_to_rsa_challenge: host_key %d &amp;lt; server_key %d + SSH_KEY_BITS_RESERVED %d&lt;br /&gt;
respond_to_rsa_challenge: BN_new failed&lt;br /&gt;
Host key verification failed.&lt;br /&gt;
Received server public key (%d bits) and host key (%d bits).&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Warning: This may be due to an old implementation of ssh.&lt;br /&gt;
Warning: Server lies about size of server host key: actual size is %d bits vs. announced %d.&lt;br /&gt;
Warning: This may be due to an old implementation of ssh.&lt;br /&gt;
Warning: Server lies about size of server public key: actual size is %d bits vs. announced %d.&lt;br /&gt;
Waiting for server public key.&lt;br /&gt;
Protocol error: got %d in response to passwd auth&lt;br /&gt;
Permission denied, please try again.&lt;br /&gt;
WARNING: Encryption is disabled! Password will be transmitted in clear text.&lt;br /&gt;
Doing password authentication.&lt;br /&gt;
Protocol error: got %d in response to SSH_CMSG_AUTH_TIS_RESPONSE&lt;br /&gt;
WARNING: Encryption is disabled! Response will be transmitted in clear text.&lt;br /&gt;
Permission denied, please try again.&lt;br /&gt;
Response: &lt;br /&gt;
%s%s&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
No challenge.&lt;br /&gt;
Protocol error: got %d in response to SSH_CMSG_AUTH_TIS&lt;br /&gt;
Doing challenge response authentication.&lt;br /&gt;
Rhosts or /etc/hosts.equiv with RSA host authentication refused.&lt;br /&gt;
Protocol error waiting RSA auth response: %d&lt;br /&gt;
Rhosts or /etc/hosts.equiv with RSA host authentication accepted by server.&lt;br /&gt;
Received RSA challenge for host key from server.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
try_rhosts_rsa_authentication: BN_new failed&lt;br /&gt;
Protocol error during RSA authentication: %d&lt;br /&gt;
Server refused our rhosts authentication or host key.&lt;br /&gt;
Trying rhosts or /etc/hosts.equiv with RSA host authentication.&lt;br /&gt;
RSA authentication refused.&lt;br /&gt;
Protocol error waiting RSA auth response: %d&lt;br /&gt;
RSA authentication accepted by server.&lt;br /&gt;
Bad passphrase.&lt;br /&gt;
bad passphrase given, try again...&lt;br /&gt;
no passphrase given, try next key&lt;br /&gt;
Enter passphrase for RSA key &#039;%.100s&#039;: &lt;br /&gt;
Received RSA challenge from server.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
try_rsa_authentication: BN_new failed&lt;br /&gt;
Protocol error during RSA authentication: %d&lt;br /&gt;
Server refused our key.&lt;br /&gt;
Trying RSA authentication with key &#039;%.100s&#039;&lt;br /&gt;
Sending response to host key RSA challenge.&lt;br /&gt;
respond_to_rsa_challenge: bad challenge length %d&lt;br /&gt;
respond_to_rsa_challenge: rsa_private_decrypt failed&lt;br /&gt;
RSA authentication using agent refused.&lt;br /&gt;
Protocol error waiting RSA auth response: %d&lt;br /&gt;
RSA authentication accepted by server.&lt;br /&gt;
Sending response to RSA challenge.&lt;br /&gt;
Authentication agent failed to decrypt challenge.&lt;br /&gt;
Received RSA challenge from server.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Protocol error during RSA authentication: %d&lt;br /&gt;
Server refused our key.&lt;br /&gt;
Trying RSA authentication via agent with &#039;%.100s&#039;&lt;br /&gt;
try_agent_authentication: BN_new failed&lt;br /&gt;
@(#)$OpenBSD: sshconnect1.c,v 1.52 2002/08/08 13:50:23 aaron Exp $&lt;br /&gt;
Next authentication method: %s&lt;br /&gt;
authmethod_is_enabled %s&lt;br /&gt;
remaining preferred: %s&lt;br /&gt;
authmethod_lookup %s&lt;br /&gt;
No more authentication methods to try.&lt;br /&gt;
preferred %s&lt;br /&gt;
start over, passed a different list %s&lt;br /&gt;
Unrecognized authentication method name: %s&lt;br /&gt;
key_sign failed&lt;br /&gt;
userauth_hostbased: chost %s, pkalg %s&lt;br /&gt;
userauth_hostbased: cannot get local ipaddr/name&lt;br /&gt;
No more client hostkeys for hostbased authentication&lt;br /&gt;
ssh_keysign: bad version&lt;br /&gt;
ssh_keysign: no reply&lt;br /&gt;
ssh_keysign: exec(%s): %s&lt;br /&gt;
/usr/lib/ssh/ssh-keysign&lt;br /&gt;
ssh_keysign: dup2: %s&lt;br /&gt;
ssh_keysign: fork: %s&lt;br /&gt;
ssh_keysign: pipe: %s&lt;br /&gt;
ssh_keysign: fflush: %s&lt;br /&gt;
ssh_keysign: no installed: %s&lt;br /&gt;
/usr/lib/ssh/ssh-keysign&lt;br /&gt;
ssh_keysign called&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
input_userauth_info_req: num_prompts %d&lt;br /&gt;
input_userauth_info_req: no authentication context&lt;br /&gt;
input_userauth_info_req&lt;br /&gt;
userauth_kbdint&lt;br /&gt;
userauth_kbdint: disable: no info_req_seen&lt;br /&gt;
Trying public key: %s&lt;br /&gt;
Trying private key: %s&lt;br /&gt;
userauth_pubkey_agent: no message sent&lt;br /&gt;
Offering agent key: %s&lt;br /&gt;
userauth_pubkey_agent: no more keys&lt;br /&gt;
userauth_pubkey_agent: no keys at all&lt;br /&gt;
bad passphrase given, try again...&lt;br /&gt;
no passphrase given, try next key&lt;br /&gt;
Enter passphrase for key &#039;%.100s&#039;: &lt;br /&gt;
no such identity: %s&lt;br /&gt;
send_pubkey_test: cannot handle key&lt;br /&gt;
send_pubkey_test&lt;br /&gt;
userauth_pubkey: internal error&lt;br /&gt;
sign_and_send_pubkey: cannot handle key&lt;br /&gt;
sign_and_send_pubkey&lt;br /&gt;
clear_auth_state: key_free %p&lt;br /&gt;
Mismatch; try again, EOF to quit.&lt;br /&gt;
Retype %.30s@%.128s&#039;s new password: &lt;br /&gt;
Enter %.30s@%.128s&#039;s new password: &lt;br /&gt;
Enter %.30s@%.128s&#039;s old password: &lt;br /&gt;
input_userauth_passwd_changereq: no authentication context&lt;br /&gt;
input_userauth_passwd_changereq&lt;br /&gt;
%.30s@%.128s&#039;s password: &lt;br /&gt;
Permission denied, please try again.&lt;br /&gt;
gssapi&lt;br /&gt;
Authentication with deprecated &amp;quot;external-keyx&amp;quot; method not supported&lt;br /&gt;
external-keyx&lt;br /&gt;
GSS_GetMIC() failed! - Abandoning GSSAPI userauth&lt;br /&gt;
Authenticating with GSS-API context from key exchange (w/ MIC)&lt;br /&gt;
gssapi-keyex&lt;br /&gt;
input_gssapi_response: no authentication context&lt;br /&gt;
Server GSSAPI Error:&lt;br /&gt;
%s (%d, %d)&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Server sent a GSS-API error token during GSS userauth -- %s&lt;br /&gt;
input_gssapi_response: no authentication context&lt;br /&gt;
GSS_GetMIC() failed! - Abandoning GSSAPI userauth&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
input_gssapi_response: no authentication context&lt;br /&gt;
Trying to start again&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Server returned different OID (%s) than expected (%s)&lt;br /&gt;
Badly encoded mechanism OID received&lt;br /&gt;
Server returned different OID (%s) than expected (%s)&lt;br /&gt;
input_gssapi_response: no authentication context&lt;br /&gt;
key != last_key&lt;br /&gt;
input_userauth_pk_ok: fp %s&lt;br /&gt;
input_userauth_pk_ok: type mismatch for decoded key (received %d, expected %d)&lt;br /&gt;
no key from blob. pkalg %s&lt;br /&gt;
unknown pkalg %s&lt;br /&gt;
no last key or no sign cb&lt;br /&gt;
Server accepts key: pkalg %s blen %u lastkey %p hint %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
input_userauth_pk_ok: SSH_BUG_PKOK&lt;br /&gt;
input_userauth_pk_ok: no authentication context&lt;br /&gt;
Authentications that can continue: %s&lt;br /&gt;
Authenticated with partial success.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
input_userauth_failure: no authentication context&lt;br /&gt;
input_userauth_success: no authentication context&lt;br /&gt;
input_userauth_banner&lt;br /&gt;
input_userauth_error: bad message during authentication: type %d&lt;br /&gt;
we did not send a packet, disable method&lt;br /&gt;
we sent a %s packet, wait for reply&lt;br /&gt;
Permission denied (%s).&lt;br /&gt;
Authentication succeeded (%s)&lt;br /&gt;
ssh_userauth2: internal error: cannot send userauth none request&lt;br /&gt;
none&lt;br /&gt;
ssh-connection&lt;br /&gt;
got SSH2_MSG_SERVICE_ACCEPT&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
buggy server: service_accept w/o service&lt;br /&gt;
service_accept: %s&lt;br /&gt;
Server denied authentication request: %d&lt;br /&gt;
send SSH2_MSG_SERVICE_REQUEST&lt;br /&gt;
ssh-userauth&lt;br /&gt;
done: ssh_kex2.&lt;br /&gt;
No valid ciphers for protocol version 2 given, using defaults.&lt;br /&gt;
GSS-API authenticated host key addition to known_hosts file failed&lt;br /&gt;
Host key verification failed.&lt;br /&gt;
@(#)$OpenBSD: sshconnect2.c,v 1.107 2002/07/01 19:48:46 markus Exp $&lt;br /&gt;
tcsetattr&lt;br /&gt;
tcgetattr&lt;br /&gt;
tcsetattr&lt;br /&gt;
@(#)$OpenBSD: sshtty.c,v 1.3 2002/03/04 17:27:39 stevesk Exp $&lt;br /&gt;
ssh&amp;gt; &lt;br /&gt;
client_input_global_request: rtype %s want_reply %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
exit-status&lt;br /&gt;
client_input_channel_req: channel %d: unknown channel&lt;br /&gt;
client_input_channel_req: channel %d: wrong channel: %d&lt;br /&gt;
client_input_channel_req: no channel %d&lt;br /&gt;
client_input_channel_req: channel %d rtype %s reply %d&lt;br /&gt;
open failed&lt;br /&gt;
failure %s&lt;br /&gt;
confirm %s&lt;br /&gt;
auth-agent@openssh.com&lt;br /&gt;
forwarded-tcpip&lt;br /&gt;
client_input_channel_open: ctype %s rchan %d win %d max %d&lt;br /&gt;
authentication agent connection&lt;br /&gt;
Warning: this is probably a break in attempt by a malicious server.&lt;br /&gt;
Warning: ssh server tried agent forwarding.&lt;br /&gt;
client_request_x11: request from %s %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
buggy server: x11 request w/o originator_port&lt;br /&gt;
Warning: this is probably a break in attempt by a malicious server.&lt;br /&gt;
Warning: ssh server tried X11 forwarding.&lt;br /&gt;
client_request_forwarded_tcpip: listen %s port %d, originator %s port %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Exit status %d&lt;br /&gt;
Bytes per second: stdin %.1f, stdout %.1f, stderr %.1f&lt;br /&gt;
Transferred: stdin %lu, stdout %lu, stderr %lu bytes in %.1f seconds&lt;br /&gt;
Write failed flushing stderr buffer.&lt;br /&gt;
Write failed flushing stdout buffer.&lt;br /&gt;
Connection to %.64s closed.&lt;br /&gt;
Killed by signal %d.&lt;br /&gt;
user requests rekeying&lt;br /&gt;
rekeying in progress&lt;br /&gt;
Entering interactive session.&lt;br /&gt;
client_channel_closed: id %d != session_ident %d&lt;br /&gt;
write stdout: %.50s&lt;br /&gt;
read: %.100s&lt;br /&gt;
Supported escape sequences:&lt;br /&gt;
%c.  - terminate connection&lt;br /&gt;
%cB  - send break&lt;br /&gt;
%cC  - open a command line&lt;br /&gt;
%cR  - Request rekey (SSH protocol 2 only)&lt;br /&gt;
%c^Z - suspend ssh&lt;br /&gt;
%c#  - list forwarded connections&lt;br /&gt;
%c&amp;amp;  - background ssh (when waiting for connections to terminate)&lt;br /&gt;
%c?  - this message&lt;br /&gt;
%c%c  - send the escape character by typing it twice&lt;br /&gt;
(Note that escapes are only recognized immediately after newline.)&lt;br /&gt;
fork: %.100s&lt;br /&gt;
%c&amp;amp; [backgrounded]&lt;br /&gt;
Server does not support re-keying&lt;br /&gt;
%cB [sent break]&lt;br /&gt;
%c^Z [suspend ssh]&lt;br /&gt;
Forwarding port.&lt;br /&gt;
Port forwarding failed.&lt;br /&gt;
Bad forwarding port(s).&lt;br /&gt;
Bad forwarding specification.&lt;br /&gt;
%5[0-9]/%255[^/]/%5[0-9]&lt;br /&gt;
%5[0-9]:%255[^:]:%5[0-9]&lt;br /&gt;
Not supported for SSH protocol version 1.&lt;br /&gt;
Invalid command.&lt;br /&gt;
Read from remote host %.300s: %.100s&lt;br /&gt;
Connection to %.300s closed by remote host.&lt;br /&gt;
select: %s&lt;br /&gt;
client_check_window_change: changed&lt;br /&gt;
Sending eof.&lt;br /&gt;
@(#)$OpenBSD: clientloop.c,v 1.104 2002/08/22 19:38:42 stevesk Exp $&lt;br /&gt;
calling GSS_Init_sec_context()&lt;br /&gt;
Delegating GSS-API credentials&lt;br /&gt;
%s(%p, %s, %d, %p, %p)&lt;br /&gt;
Failed to allocate resources (%s) for GSS-API&lt;br /&gt;
Skipping GSS-API mechanism %s (%s)&lt;br /&gt;
Failed to acquire GSS-API credentials for any mechanisms (%s)&lt;br /&gt;
Failed to allocate resources (%s) for GSS-API&lt;br /&gt;
No GSS-API mechanisms are installed&lt;br /&gt;
INTERNAL ERROR (%s)&lt;br /&gt;
@(#)$OpenBSD: atomicio.c,v 1.10 2001/05/08 22:48:07 markus Exp $&lt;br /&gt;
Bad response from authentication agent: %d&lt;br /&gt;
SSH_AGENT_FAILURE&lt;br /&gt;
Bad authentication response: %d&lt;br /&gt;
Agent admitted failure to sign using the key.&lt;br /&gt;
Bad authentication response: %d&lt;br /&gt;
Agent admitted failure to authenticate using the key.&lt;br /&gt;
Compatibility with ssh protocol version 1.0 no longer supported.&lt;br /&gt;
Warning: identity keysize mismatch: actual %d, announced %u&lt;br /&gt;
Too many identities in authentication reply: %d&lt;br /&gt;
Bad authentication reply message type: %d&lt;br /&gt;
SSH_AUTH_SOCK&lt;br /&gt;
Error reading response from authentication socket.&lt;br /&gt;
Authentication response too long: %d&lt;br /&gt;
Error reading response length from authentication socket.&lt;br /&gt;
Error writing to authentication socket.&lt;br /&gt;
SSH_AUTH_SOCK&lt;br /&gt;
@(#)$OpenBSD: authfd.c,v 1.57 2002/09/11 18:27:26 stevesk Exp $&lt;br /&gt;
.pub&lt;br /&gt;
bad permissions: ignore key: %s&lt;br /&gt;
This private key will be ignored.&lt;br /&gt;
It is recommended that your private key files are NOT accessible by others.&lt;br /&gt;
Permissions 0%3.3o for &#039;%s&#039; are too open.&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
read PEM private key done: type %s&lt;br /&gt;
PEM_read_PrivateKey: mismatch or unknown EVP_PKEY save_type %d&lt;br /&gt;
PEM_read_PrivateKey failed&lt;br /&gt;
fdopen failed: %s&lt;br /&gt;
Bad passphrase supplied for key file %.200s.&lt;br /&gt;
Unsupported cipher %d used in key file %.200s.&lt;br /&gt;
Not a RSA1 key file %.200s.&lt;br /&gt;
Read from key file %.200s failed: %.100s&lt;br /&gt;
Not a RSA1 key file %.200s.&lt;br /&gt;
Read from key file %.200s failed: %.100s&lt;br /&gt;
key_save_private: cannot save key type %d&lt;br /&gt;
fdopen %s failed: %s.&lt;br /&gt;
open %s failed: %s.&lt;br /&gt;
passphrase too short: have %d bytes, need &amp;gt; 4&lt;br /&gt;
write to key file %s failed: %s&lt;br /&gt;
open %s failed: %s.&lt;br /&gt;
save_private_key_rsa: bad cipher&lt;br /&gt;
@(#)$OpenBSD: authfile.c,v 1.50 2002/06/24 14:55:38 markus Exp $&lt;br /&gt;
buffer_put_utf8_string: input not a valid UTF-8 encoding; %s&lt;br /&gt;
buffer_put_cstring: s == NULL&lt;br /&gt;
buffer_put_ascii_cstring: non-ASCII string; %s&lt;br /&gt;
buffer_put_cstring: s == NULL&lt;br /&gt;
invalid UTF-8 sequence; %&lt;br /&gt;
buffer_get_string: bad string length %d&lt;br /&gt;
buffer_get_bignum2: cannot handle BN of size %d&lt;br /&gt;
negativ!&lt;br /&gt;
buffer_put_bignum: BN_bn2bin() failed: oi %d != bin_size %d&lt;br /&gt;
buffer_get_bignum: input buffer too small&lt;br /&gt;
buffer_get_bignum: cannot handle BN of size %d&lt;br /&gt;
buffer_put_bignum: BN_bn2bin() failed: oi %d != bin_size %d&lt;br /&gt;
@(#)$OpenBSD: bufaux.c,v 1.27 2002/06/26 08:53:12 markus Exp $&lt;br /&gt;
%02x&lt;br /&gt;
buffer_consume_end: trying to get more bytes than in buffer&lt;br /&gt;
buffer_consume: trying to get more bytes than in buffer&lt;br /&gt;
buffer_get: trying to get more bytes %d than in buffer %d&lt;br /&gt;
buffer_append_space: alloc %u not supported&lt;br /&gt;
buffer_append_space: len %u not supported&lt;br /&gt;
@(#)$OpenBSD: buffer.c,v 1.16 2002/06/26 08:54:18 markus Exp $&lt;br /&gt;
UNKNOWN&lt;br /&gt;
get_sock_port: getnameinfo NI_NUMERICSERV failed&lt;br /&gt;
getpeername failed: %.100s&lt;br /&gt;
getsockname failed: %.100s&lt;br /&gt;
get_socket_ipaddr: getnameinfo %d failed&lt;br /&gt;
get_socket_ipaddr: getsockname failed: %.100s&lt;br /&gt;
get_socket_ipaddr: getpeername failed: %.100s&lt;br /&gt;
Address %.100s maps to %.600s, but this does not map back to the address - POSSIBLE BREAKIN ATTEMPT!&lt;br /&gt;
reverse mapping checking getaddrinfo for %.700s failed - POSSIBLE BREAKIN ATTEMPT!&lt;br /&gt;
Trying to reverse map address %.100s.&lt;br /&gt;
get_remote_hostname: getnameinfo NI_NUMERICHOST failed: %d&lt;br /&gt;
getpeername failed: %.100s&lt;br /&gt;
@(#)$OpenBSD: canohost.c,v 1.34 2002/09/23 20:46:27 stevesk Exp $&lt;br /&gt;
DISPLAY&lt;br /&gt;
0.0.0.0&lt;br /&gt;
Forwarding authentication connection.&lt;br /&gt;
authentication agent connection&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
%02x&lt;br /&gt;
x11_request_forwarding: bad authentication data: %.100s&lt;br /&gt;
Warning: this is probably a break in attempt by a malicious server.&lt;br /&gt;
deny_input_open: type %d&lt;br /&gt;
Warning: ssh server tried X11 forwarding.&lt;br /&gt;
Warning: ssh server tried agent forwarding.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
unknown (remote did not supply name)&lt;br /&gt;
Received X11 open request.&lt;br /&gt;
connect %.100s port %d: %.100s&lt;br /&gt;
socket: %.100s&lt;br /&gt;
%.100s: unknown host. (%s)&lt;br /&gt;
Could not parse display number from DISPLAY: %.100s&lt;br /&gt;
Could not find &#039;:&#039; in DISPLAY: %.100s&lt;br /&gt;
Could not parse display number from DISPLAY: %.100s&lt;br /&gt;
unix:&lt;br /&gt;
DISPLAY not set.&lt;br /&gt;
connect %.100s: %.100s&lt;br /&gt;
/tmp/.X11-unix/X%u&lt;br /&gt;
socket: %.100s&lt;br /&gt;
X11 inet listener&lt;br /&gt;
listen: %.100s&lt;br /&gt;
Failed to allocate internet-domain X11 display socket.&lt;br /&gt;
bind port %d: %.100s; skipping this port&lt;br /&gt;
setsockopt IPV6_V6ONLY: %.100s&lt;br /&gt;
x11_create_display_inet: Socket family %d not supported&lt;br /&gt;
socket: %.100s&lt;br /&gt;
getaddrinfo: %.100s&lt;br /&gt;
Received request to connect to host %.100s port %d, but the request was denied.&lt;br /&gt;
WARNING: Server requests forwarding for unknown listen_port %d&lt;br /&gt;
connect_to %.100s port %d: failed.&lt;br /&gt;
connect_to %.100s port %s: %.100s&lt;br /&gt;
connect_to: F_SETFL: %s&lt;br /&gt;
socket: %.100s&lt;br /&gt;
connect_to: getnameinfo failed&lt;br /&gt;
connect_to %.100s: unknown host (%s)&lt;br /&gt;
allow port forwarding to host %s port %d&lt;br /&gt;
channel_request_remote_forwarding: too many forwards&lt;br /&gt;
Requested forwarding of port %d but user is not root.&lt;br /&gt;
Protocol error for port forward request:received packet type %d.&lt;br /&gt;
Warning: Server denied remote port forwarding.&lt;br /&gt;
tcpip-forward&lt;br /&gt;
channel_request_remote_forwarding: too many forwards&lt;br /&gt;
channel_setup_fwd_listener: cannot listen to port: %d&lt;br /&gt;
port listener&lt;br /&gt;
listen: %.100s&lt;br /&gt;
bind: %.100s&lt;br /&gt;
Local forwarding listening on %s port %s.&lt;br /&gt;
setsockopt SO_REUSEADDR: %s&lt;br /&gt;
socket: %.100s&lt;br /&gt;
channel_setup_fwd_listener: getnameinfo failed&lt;br /&gt;
getaddrinfo: fatal error&lt;br /&gt;
Forward host name too long.&lt;br /&gt;
No forward host name.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
unknown (remote did not supply name)&lt;br /&gt;
channel %d: rcvd adjust %u&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Received window adjust for non-open channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: open failed: %s%s%s&lt;br /&gt;
Received open failure for non-opening channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: open confirm rwindow %u rmax %u&lt;br /&gt;
callback done&lt;br /&gt;
callback start&lt;br /&gt;
Received open confirmation for non-opening channel %d.&lt;br /&gt;
Received close confirmation for non-closed channel %d (type %d).&lt;br /&gt;
Received close confirmation for out-of-range channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Received oclose for nonexistent channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
Received close for nonexistent channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: FORCE input drain&lt;br /&gt;
Received ieof for nonexistent channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: rcvd ext data %d&lt;br /&gt;
channel %d: rcvd too much extended_data %d, win %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: bad ext data&lt;br /&gt;
Received extended_data after EOF on channel %d.&lt;br /&gt;
channel %d: accepting ext data after eof&lt;br /&gt;
channel %d: ext data for non open&lt;br /&gt;
Received extended_data for bad channel %d.&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
channel %d: rcvd too much data %d, win %d&lt;br /&gt;
channel %d: rcvd big packet %d, maxpack %d&lt;br /&gt;
Received data for nonexistent channel %d.&lt;br /&gt;
channel %d: sent ext data %d&lt;br /&gt;
channel %d: rwin %u elen %u euse %d&lt;br /&gt;
channel %d: ibuf_empty delayed efd %d/(%d)&lt;br /&gt;
cannot happen: istate == INPUT_WAIT_DRAIN for proto 1.3&lt;br /&gt;
channel %d: will not send data after close&lt;br /&gt;
channel %d: garbage collecting&lt;br /&gt;
channel %d: gc: user detached&lt;br /&gt;
channel %d: gc: notify user&lt;br /&gt;
channel %d: window %d sent adjust %d&lt;br /&gt;
channel %d: closing read-efd %d&lt;br /&gt;
channel %d: read %d from efd %d&lt;br /&gt;
channel %d: closing write-efd %d&lt;br /&gt;
channel %d: written %d to efd %d&lt;br /&gt;
channel %d: input draining.&lt;br /&gt;
channel %d: not open&lt;br /&gt;
channel %d: filter stops&lt;br /&gt;
channel %d: input draining.&lt;br /&gt;
channel %d: not open&lt;br /&gt;
channel %d: read&amp;lt;=0 rfd %d len %d&lt;br /&gt;
channel %d: not connected: %s&lt;br /&gt;
channel %d: connected&lt;br /&gt;
getsockopt SO_ERROR failed&lt;br /&gt;
auth-agent@openssh.com&lt;br /&gt;
accepted auth socket&lt;br /&gt;
accept from auth socket: %.100s&lt;br /&gt;
accept: %.100s&lt;br /&gt;
Connection to port %d forwarding to %.100s port %d requested.&lt;br /&gt;
%s: listening port %d for %.100s port %d, connect from %.200s port %d&lt;br /&gt;
direct-tcpip&lt;br /&gt;
ssh2 x11 bug compat mode&lt;br /&gt;
X11 connection from %.200s port %d&lt;br /&gt;
accept: %.100s&lt;br /&gt;
single_connection: closing X11 listener.&lt;br /&gt;
X11 connection requested.&lt;br /&gt;
channel %d: pre_dynamic: need more&lt;br /&gt;
channel %d: pre_dynamic: have %d&lt;br /&gt;
channel %d: cannot handle: socks4 cn %d&lt;br /&gt;
channel %d: dynamic request: socks4 host %s port %u command %u&lt;br /&gt;
channel %d: decode socks4: len %d &amp;gt; have %d&lt;br /&gt;
channel %d: decode socks4: user %s/%d&lt;br /&gt;
channel %d: decode socks4: too long&lt;br /&gt;
channel %d: decode socks4&lt;br /&gt;
X11 closed %d i%d/o%d&lt;br /&gt;
X11 rejected %d i%d/o%d&lt;br /&gt;
X11 connection rejected because of wrong authentication.&lt;br /&gt;
X11 fake_data_len %d != saved_data_len %d&lt;br /&gt;
X11 auth data does not match fake data.&lt;br /&gt;
X11 connection uses different authentication protocol.&lt;br /&gt;
Initial X11 packet contains bad byte order byte: 0x%x&lt;br /&gt;
channel %d: closing after input drain.&lt;br /&gt;
channel %d: obuf_empty delayed efd %d/(%d)&lt;br /&gt;
channel %d: waiting for connection&lt;br /&gt;
channel_set_wait_for_exit %d, %d (type: %d)&lt;br /&gt;
channel_set_wait_for_exit for non-open channel %d.&lt;br /&gt;
channel_activate for non-larval channel %d.&lt;br /&gt;
channel_register_filter: %d: bad id&lt;br /&gt;
channel_cancel_cleanup: %d: bad id&lt;br /&gt;
channel_register_cleanup: %d: bad id&lt;br /&gt;
channel_register_comfirm: %d: bad id&lt;br /&gt;
channel request %d: %s&lt;br /&gt;
channel_request_start: %d: unknown channel id&lt;br /&gt;
send channel open %d&lt;br /&gt;
channel_send_open: %d: bad id&lt;br /&gt;
channel_open_message: bad channel type %d&lt;br /&gt;
  #%d %.300s (t%d r%d i%d/%d o%d/%d fd %d/%d)&lt;br /&gt;
The following connections are open:&lt;br /&gt;
channel_find_open: bad channel type %d&lt;br /&gt;
cannot happen: OUT_DRAIN&lt;br /&gt;
channel_still_open: bad channel type %d&lt;br /&gt;
cannot happen: OUT_DRAIN&lt;br /&gt;
cannot happen: SSH_CHANNEL_LARVAL&lt;br /&gt;
channel %d: big output buffer %d &amp;gt; %d&lt;br /&gt;
channel_free: status: %s&lt;br /&gt;
channel_free: channel %d: %s, nchannels %d&lt;br /&gt;
channel_close_fds: channel %d: r %d w %d e %d&lt;br /&gt;
channel %d: new [%s]&lt;br /&gt;
channel: expanding %d&lt;br /&gt;
channel_new: internal error: channels_alloc %d too big.&lt;br /&gt;
channel %d: wfd %d is not a tty?&lt;br /&gt;
channel %d: rfd %d isatty&lt;br /&gt;
channel_lookup: %d: bad id: channel free&lt;br /&gt;
channel_lookup: %d: bad id&lt;br /&gt;
@(#)$OpenBSD: channels.c,v 1.183 2002/09/17 07:47:02 itojun Exp $&lt;br /&gt;
%s: bad cipher %d&lt;br /&gt;
%s: Installed 3DES IV&lt;br /&gt;
%s: no 3des context&lt;br /&gt;
%s: bad cipher %d&lt;br /&gt;
%s: Copying 3DES IV&lt;br /&gt;
%s: no 3des context&lt;br /&gt;
%s: bad 3des iv length: %d&lt;br /&gt;
%s: wrong iv length %d != %d&lt;br /&gt;
ssh1_3des_cbc: no context&lt;br /&gt;
cipher_cleanup: EVP_CIPHER_CTX_cleanup failed&lt;br /&gt;
evp_crypt: EVP_Cipher failed&lt;br /&gt;
cipher_encrypt: bad plaintext length %d&lt;br /&gt;
cipher_init: EVP_CipherInit: set key failed for %s&lt;br /&gt;
cipher_init: set keylen failed (%d -&amp;gt; %d)&lt;br /&gt;
cipher_init: set keylen (%d -&amp;gt; %d)&lt;br /&gt;
cipher_init: EVP_CipherInit failed for %s&lt;br /&gt;
cipher_init: iv length %d is insufficient for %s.&lt;br /&gt;
cipher_init: key length %d is insufficient for %s.&lt;br /&gt;
Warning: use of DES is strongly discouraged due to cryptographic weaknesses&lt;br /&gt;
ciphers ok: [%s]&lt;br /&gt;
cipher ok: %s [%s]&lt;br /&gt;
bad cipher %s [%s]&lt;br /&gt;
@(#)$OpenBSD: cipher.c,v 1.61 2002/07/12 15:50:17 markus Exp $&lt;br /&gt;
ssh_aes_ctr_iv: no context&lt;br /&gt;
@(#)$OpenBSD: cipher-ctr.c,v 1.4 2004/02/06 23:41:13 dtucker Exp $&lt;br /&gt;
No available ciphers found.&lt;br /&gt;
Compat cipher proposal: %s&lt;br /&gt;
Original cipher proposal: %s&lt;br /&gt;
ignoring bad proto spec: &#039;%s&#039;.&lt;br /&gt;
no match: %s&lt;br /&gt;
match: %s pat %s&lt;br /&gt;
Enabling compatibility mode for protocol 1.3&lt;br /&gt;
Enabling compatibility mode for protocol 2.0&lt;br /&gt;
@(#)$OpenBSD: compat.c,v 1.65 2002/09/27 10:42:09 mickey Exp $&lt;br /&gt;
protocol error: rcvd type %d&lt;br /&gt;
dispatch_protocol_ignore: type %d seq %u&lt;br /&gt;
protocol error&lt;br /&gt;
dispatch_protocol_error: type %d seq %u&lt;br /&gt;
@(#)$OpenBSD: dispatch.c,v 1.15 2002/01/11 13:39:36 markus Exp $&lt;br /&gt;
@(#)$OpenBSD: fatal.c,v 1.1 2002/02/22 12:20:34 markus Exp $&lt;br /&gt;
UTF-8&lt;br /&gt;
UTF8&lt;br /&gt;
UTF-8&lt;br /&gt;
US-ASCII&lt;br /&gt;
ASCII&lt;br /&gt;
UTF-8&lt;br /&gt;
UTF8&lt;br /&gt;
UTF-8&lt;br /&gt;
US-ASCII&lt;br /&gt;
ASCII&lt;br /&gt;
common&lt;br /&gt;
POSIX&lt;br /&gt;
common&lt;br /&gt;
POSIX&lt;br /&gt;
common&lt;br /&gt;
POSIX&lt;br /&gt;
common&lt;br /&gt;
POSIX&lt;br /&gt;
UTF-8&lt;br /&gt;
i-default&lt;br /&gt;
SSH_LANGS&lt;br /&gt;
iso_8859&lt;br /&gt;
/usr/bin/locale -a&lt;br /&gt;
SUNW_OST_OSCMD&lt;br /&gt;
POSIX&lt;br /&gt;
i-default&lt;br /&gt;
%.*s-%.*s&lt;br /&gt;
POSIX&lt;br /&gt;
macs ok: [%s]&lt;br /&gt;
mac ok: %s [%s]&lt;br /&gt;
bad mac %s [%s]&lt;br /&gt;
mac_compute: mac too long&lt;br /&gt;
mac_compute: no key&lt;br /&gt;
mac_init: unknown %s&lt;br /&gt;
mac_init: found %s&lt;br /&gt;
@(#)$OpenBSD: mac.c,v 1.5 2002/05/16 22:02:50 markus Exp $&lt;br /&gt;
ssh_msg_recv: read: %ld != msg_len&lt;br /&gt;
ssh_msg_recv: read: bad msg_len %u&lt;br /&gt;
ssh_msg_recv: read: header %ld&lt;br /&gt;
ssh_msg_recv entering&lt;br /&gt;
ssh_msg_send: write&lt;br /&gt;
ssh_msg_send: type %u&lt;br /&gt;
@(#)$OpenBSD: msg.c,v 1.4 2002/07/01 16:15:25 deraadt Exp $&lt;br /&gt;
add_host_to_hostfile: saving key in %s failed&lt;br /&gt;
no key to look up&lt;br /&gt;
check_host_in_hostfile: match line %d&lt;br /&gt;
check_host_in_hostfile: filename %s&lt;br /&gt;
Warning: replace %d with %d in %s, line %d.&lt;br /&gt;
Warning: %s, line %d: keysize mismatch for host %s: actual %d vs. announced %d.&lt;br /&gt;
@(#)$OpenBSD: hostfile.c,v 1.30 2002/07/24 16:11:18 markus Exp $&lt;br /&gt;
ssh-dss&lt;br /&gt;
ssh-rsa&lt;br /&gt;
key_free: bad key type %d&lt;br /&gt;
key_demote: BN_dup failed&lt;br /&gt;
key_demote: DSA_new failed&lt;br /&gt;
key_demote: BN_dup failed&lt;br /&gt;
key_demote: RSA_new failed&lt;br /&gt;
key_verify: illegal key type %d&lt;br /&gt;
key_sign: illegal key type %d&lt;br /&gt;
key_to_blob: unsupported key type %d&lt;br /&gt;
key_to_blob: key == NULL&lt;br /&gt;
key_from_blob: remaining bytes in key blob %d&lt;br /&gt;
key_from_blob: cannot handle type %s&lt;br /&gt;
key names ok: [%s]&lt;br /&gt;
key_type_from_name: unknown key type &#039;%s&#039;&lt;br /&gt;
null&lt;br /&gt;
rsa1&lt;br /&gt;
key_from_private: unknown type %d&lt;br /&gt;
key_generate: unknown type %d&lt;br /&gt;
dsa_generate_private_key: NULL.&lt;br /&gt;
dsa_generate_private_key: DSA_generate_key failed.&lt;br /&gt;
dsa_generate_private_key: DSA_generate_parameters failed&lt;br /&gt;
rsa_generate_private_key: key generation failed.&lt;br /&gt;
%s %s&lt;br /&gt;
key_write: failed for RSA key&lt;br /&gt;
key_read: bad key type: %d&lt;br /&gt;
key_read: type mismatch: encoding error&lt;br /&gt;
key_read: key_from_blob %s failed&lt;br /&gt;
key_read: uudecode %s failed&lt;br /&gt;
key_read: type mismatch&lt;br /&gt;
key_read: short string&lt;br /&gt;
key_read: no key found&lt;br /&gt;
key_read: no space&lt;br /&gt;
write_bignum: BN_bn2dec() failed&lt;br /&gt;
key_fingerprint_ex: bad digest representation %d&lt;br /&gt;
key_fingerprint: null from key_fingerprint_raw()&lt;br /&gt;
%02x:&lt;br /&gt;
key_fingerprint_raw: blob is null&lt;br /&gt;
key_fingerprint_raw: bad key type %d&lt;br /&gt;
key_fingerprint_raw: bad digest type %d&lt;br /&gt;
key_equal: bad key type %d&lt;br /&gt;
key_free: bad key type %d&lt;br /&gt;
key_new_private: BN_new failed&lt;br /&gt;
key_new: bad key type %d&lt;br /&gt;
key_new: BN_new failed&lt;br /&gt;
key_new: DSA_new failed&lt;br /&gt;
key_new: BN_new failed&lt;br /&gt;
key_new: RSA_new failed&lt;br /&gt;
@(#)$OpenBSD: key.c,v 1.49 2002/09/09 14:54:14 markus Exp $&lt;br /&gt;
kex_derive_keys&lt;br /&gt;
Negotiated lang: %s&lt;br /&gt;
Negotiated messages locale: %s&lt;br /&gt;
Negotiated main locale: %s&lt;br /&gt;
We proposed langtags, stoc: %s&lt;br /&gt;
We proposed langtags, ctos: %s&lt;br /&gt;
Peer sent proposed langtags, stoc: %s&lt;br /&gt;
Peer sent proposed langtags, ctos: %s&lt;br /&gt;
skipping next packet (type %u)&lt;br /&gt;
kex: %s %s %s %s&lt;br /&gt;
proposals match&lt;br /&gt;
proposal mismatch: my %s peer %s&lt;br /&gt;
bad hostkey alg &#039;%s&#039;&lt;br /&gt;
no hostkey alg&lt;br /&gt;
bad kex alg %s&lt;br /&gt;
gss-group1-sha1-&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
no kex alg&lt;br /&gt;
unsupported comp %s&lt;br /&gt;
none&lt;br /&gt;
zlib&lt;br /&gt;
no matching comp found: client %s server %s&lt;br /&gt;
unsupported mac %s&lt;br /&gt;
no matching mac found: client %s server %s&lt;br /&gt;
matching cipher is not supported: %s&lt;br /&gt;
no matching cipher found: client %s server %s&lt;br /&gt;
Unsupported key exchange %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
kex_input_kexinit: no kex, cannot rekey&lt;br /&gt;
SSH2_MSG_KEXINIT received&lt;br /&gt;
SSH2_MSG_KEXINIT sent&lt;br /&gt;
kex_send_kexinit: kex proposal too short&lt;br /&gt;
KEX_INIT_SENT&lt;br /&gt;
kex_send_kexinit: no kex, cannot rekey&lt;br /&gt;
SSH2_MSG_NEWKEYS received&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
expecting SSH2_MSG_NEWKEYS&lt;br /&gt;
SSH2_MSG_NEWKEYS sent&lt;br /&gt;
kex_reset_dispatch -- skipping dispatch_set(KEXINIT) in unpriv proc&lt;br /&gt;
kex_reset_dispatch -- should we dispatch_set(KEXINIT) here? %d &amp;amp;&amp;amp; !%d&lt;br /&gt;
Hm, kex protocol error: type %d seq %u&lt;br /&gt;
kex_parse_kexinit: reserved %d &lt;br /&gt;
kex_parse_kexinit: first_kex_follows %d &lt;br /&gt;
kex_parse_kexinit: %s&lt;br /&gt;
@(#)$OpenBSD: kex.c,v 1.51 2002/06/24 14:55:38 markus Exp $&lt;br /&gt;
key_verify failed for server_host_key&lt;br /&gt;
kexdh_client: BN_new failed&lt;br /&gt;
bad server public DH value&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
dh_server_pub == NULL&lt;br /&gt;
server_host_key verification failed&lt;br /&gt;
cannot verify server_host_key&lt;br /&gt;
type mismatch for decoded server_host_key_blob&lt;br /&gt;
cannot decode server_host_key_blob&lt;br /&gt;
expecting SSH2_MSG_KEXDH_REPLY&lt;br /&gt;
sending SSH2_MSG_KEXDH_INIT&lt;br /&gt;
@(#)$OpenBSD: kexdh.c,v 1.18 2002/03/18 17:50:31 provos Exp $&lt;br /&gt;
key_verify failed for server_host_key&lt;br /&gt;
kexgex_client: BN_new failed&lt;br /&gt;
bad server public DH value&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
dh_server_pub == NULL&lt;br /&gt;
server_host_key verification failed&lt;br /&gt;
cannot verify server_host_key&lt;br /&gt;
type mismatch for decoded server_host_key_blob&lt;br /&gt;
cannot decode server_host_key_blob&lt;br /&gt;
expecting SSH2_MSG_KEX_DH_GEX_REPLY&lt;br /&gt;
SSH2_MSG_KEX_DH_GEX_INIT sent&lt;br /&gt;
DH_GEX group out of range: %d !&amp;lt; %d !&amp;lt; %d&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
BN_new&lt;br /&gt;
expecting SSH2_MSG_KEX_DH_GEX_GROUP&lt;br /&gt;
SSH2_MSG_KEX_DH_GEX_REQUEST sent&lt;br /&gt;
SSH2_MSG_KEX_DH_GEX_REQUEST_OLD sent&lt;br /&gt;
@(#)$OpenBSD: kexgex.c,v 1.22 2002/03/24 17:27:03 stevesk Exp $&lt;br /&gt;
Use the GssKeyEx option to disable GSS-API key exchange and try again.&lt;br /&gt;
The GSS-API protected key exchange has failed without indication&lt;br /&gt;
from the server, possibly due to misconfiguration of the server.&lt;br /&gt;
Hash&#039;s MIC didn&#039;t verify&lt;br /&gt;
bad server public DH value&lt;br /&gt;
Internal error in GSS-API protected SSHv2 key exchange&lt;br /&gt;
Expected SSH2_MSG_KEXGSS_COMPLETE never arrived&lt;br /&gt;
Not complete, and no token output&lt;br /&gt;
Protocol error: didn&#039;t expect packet type %d&lt;br /&gt;
The server had a GSS-API error during GSS-API protected SSHv2 key exchange&lt;br /&gt;
Use the GssKeyEx option to disable GSS-API key exchange and try again.&lt;br /&gt;
Server had a GSS-API error; the connection will close (%d/%d):&lt;br /&gt;
Protocol error: did not receive expected GSS-API context token&lt;br /&gt;
Protocol error: received GSS-API context token though the context was already established&lt;br /&gt;
Received GSSAPI_COMPLETE&lt;br /&gt;
Protocol error: received GSS-API context token though the context was already established&lt;br /&gt;
Received GSSAPI_CONTINUE&lt;br /&gt;
Received KEXGSS_HOSTKEY&lt;br /&gt;
Integrity check failed&lt;br /&gt;
Mutual authentication failed&lt;br /&gt;
A GSS-API error occurred during GSS-API protected SSHv2 key exchange&lt;br /&gt;
performing GSS-API protected SSHv2 key exchange&lt;br /&gt;
Calling gss_init_sec_context&lt;br /&gt;
dh_server_pub == NULL&lt;br /&gt;
Couldn&#039;t match the negotiated GSS key exchange&lt;br /&gt;
VERBOSE&lt;br /&gt;
%.500s&lt;br /&gt;
%s%s: %s&lt;br /&gt;
Unrecognized internal syslog facility code %d&lt;br /&gt;
Unrecognized internal syslog level code %d&lt;br /&gt;
Calling cleanup 0x%lx(0x%lx)&lt;br /&gt;
fatal_remove_cleanup: no such cleanup function: 0x%lx 0x%lx&lt;br /&gt;
DEBUG3&lt;br /&gt;
DEBUG2&lt;br /&gt;
DEBUG1&lt;br /&gt;
DEBUG&lt;br /&gt;
INFO&lt;br /&gt;
NOTICE&lt;br /&gt;
ERROR&lt;br /&gt;
FATAL&lt;br /&gt;
QUIET&lt;br /&gt;
LOCAL7&lt;br /&gt;
LOCAL6&lt;br /&gt;
LOCAL5&lt;br /&gt;
LOCAL4&lt;br /&gt;
LOCAL3&lt;br /&gt;
LOCAL2&lt;br /&gt;
LOCAL1&lt;br /&gt;
LOCAL0&lt;br /&gt;
AUTH&lt;br /&gt;
USER&lt;br /&gt;
DAEMON&lt;br /&gt;
@(#)$OpenBSD: log.c,v 1.24 2002/07/19 15:43:33 markus Exp $&lt;br /&gt;
@(#)$OpenBSD: match.c,v 1.19 2002/03/01 13:12:10 markus Exp $&lt;br /&gt;
setsockopt TCP_NODELAY: %.100s&lt;br /&gt;
fd %d setting TCP_NODELAY&lt;br /&gt;
fd %d is TCP_NODELAY&lt;br /&gt;
getsockopt TCP_NODELAY: %.100s&lt;br /&gt;
fcntl(%d, F_SETFL, O_NONBLOCK): %s&lt;br /&gt;
fd %d clearing O_NONBLOCK&lt;br /&gt;
fd %d is not O_NONBLOCK&lt;br /&gt;
fcntl(%d, F_GETFL, 0): %s&lt;br /&gt;
fcntl(%d, F_SETFL, O_NONBLOCK): %s&lt;br /&gt;
fd %d setting O_NONBLOCK&lt;br /&gt;
fd %d is O_NONBLOCK&lt;br /&gt;
fcntl(%d, F_GETFL, 0): %s&lt;br /&gt;
@(#)$OpenBSD: misc.c,v 1.19 2002/03/04 17:27:39 stevesk Exp $&lt;br /&gt;
@(#)$OpenBSD: mpaux.c,v 1.16 2001/02/08 19:30:52 itojun Exp $&lt;br /&gt;
channel %d: chan_shutdown_read: close() failed for fd%d: %.100s&lt;br /&gt;
channel %d: chan_shutdown_read: shutdown() failed for fd%d [i%d o%d]: %.100s&lt;br /&gt;
channel %d: close_read&lt;br /&gt;
channel %d: chan_shutdown_write: close() failed for fd%d: %.100s&lt;br /&gt;
channel %d: chan_shutdown_write: shutdown() failed for fd%d: %.100s&lt;br /&gt;
channel %d: close_write&lt;br /&gt;
channel %d: is dead&lt;br /&gt;
channel %d: almost dead&lt;br /&gt;
channel %d: active efd: %d len %d&lt;br /&gt;
channel %d: is dead&lt;br /&gt;
channel %d: zombie&lt;br /&gt;
channel %d: already sent close&lt;br /&gt;
channel %d: cannot send close for istate/ostate %d/%d&lt;br /&gt;
channel %d: send close&lt;br /&gt;
channel %d: cannot send eof for istate %d&lt;br /&gt;
channel %d: send eof&lt;br /&gt;
channel %d: chan_write_failed for ostate %d&lt;br /&gt;
channel %d: write failed&lt;br /&gt;
channel %d: rcvd eof&lt;br /&gt;
channel %d: protocol error: close rcvd twice&lt;br /&gt;
channel %d: rcvd close&lt;br /&gt;
channel %d: cannot send oclose for ostate %d&lt;br /&gt;
channel %d: send oclose&lt;br /&gt;
channel %d: cannot send ieof for istate %d&lt;br /&gt;
channel %d: send ieof&lt;br /&gt;
channel %d: internal error: obuf_empty for ostate %d&lt;br /&gt;
channel %d: chan_obuf_empty for non empty buffer&lt;br /&gt;
channel %d: obuf empty&lt;br /&gt;
channel %d: chan_write_failed for ostate %d&lt;br /&gt;
channel %d: write failed&lt;br /&gt;
channel %d: protocol error: rcvd_ieof for ostate %d&lt;br /&gt;
channel %d: rcvd ieof&lt;br /&gt;
channel %d: chan_ibuf_empty for istate %d&lt;br /&gt;
channel %d: chan_ibuf_empty for non empty buffer&lt;br /&gt;
channel %d: ibuf empty&lt;br /&gt;
channel %d: chan_read_failed for istate %d&lt;br /&gt;
channel %d: read failed&lt;br /&gt;
channel %d: protocol error: rcvd_oclose for istate %d&lt;br /&gt;
channel %d: rcvd oclose&lt;br /&gt;
channel %d: output %s -&amp;gt; %s&lt;br /&gt;
chan_set_ostate: bad state %d -&amp;gt; %d&lt;br /&gt;
channel %d: input %s -&amp;gt; %s&lt;br /&gt;
chan_set_istate: bad state %d -&amp;gt; %d&lt;br /&gt;
@(#)$OpenBSD: nchan.c,v 1.47 2002/06/19 00:27:55 deraadt Exp $&lt;br /&gt;
Monitor failed to start: %s&lt;br /&gt;
packet_set_maxsize: setting to %d&lt;br /&gt;
packet_set_maxsize: bad size %d&lt;br /&gt;
packet_set_maxsize: called twice: old %d new %d&lt;br /&gt;
Write failed: %.100s&lt;br /&gt;
Disconnecting: %.100s&lt;br /&gt;
packet_disconnect called recursively.&lt;br /&gt;
packet_send_debug: %s&lt;br /&gt;
Received disconnect from %s: %.400s&lt;br /&gt;
Remote: %.900s&lt;br /&gt;
Received SSH2_MSG_UNIMPLEMENTED for %u&lt;br /&gt;
Received disconnect from %s: %u: %.400s&lt;br /&gt;
Remote: %.900s&lt;br /&gt;
Corrupted padlen %d on input.&lt;br /&gt;
incoming seqnr wraps around&lt;br /&gt;
Corrupted MAC on input.&lt;br /&gt;
padding error: need %d block %d mod %d&lt;br /&gt;
Bad packet length %d.&lt;br /&gt;
Corrupted check bytes on input.&lt;br /&gt;
packet_read_poll1: len %d != buffer_len %d.&lt;br /&gt;
deattack denial of service detected&lt;br /&gt;
crc32 compensation attack: network attack detected&lt;br /&gt;
Bad packet length %d.&lt;br /&gt;
Protocol error: expected packet type %d, got %d&lt;br /&gt;
Read from socket failed: %.100s&lt;br /&gt;
Connection closed by %.200s&lt;br /&gt;
Packet integrity error.&lt;br /&gt;
Packet integrity error (%d bytes remaining) at %s:%d&lt;br /&gt;
outgoing seqnr wraps around&lt;br /&gt;
packet_send2: adding %d (len %d padlen %d extra_pad %d)&lt;br /&gt;
newkeys: no keys for mode %d&lt;br /&gt;
newkeys: rekeying&lt;br /&gt;
newkeys: mode %d&lt;br /&gt;
packet_set_encryption_key: keylen too big: %d&lt;br /&gt;
packet_set_encryption_key: keylen too small: %d&lt;br /&gt;
packet_set_encryption_key: unknown cipher number %d&lt;br /&gt;
Compression already enabled.&lt;br /&gt;
INTERNAL ERROR: The monitor cannot compress.&lt;br /&gt;
fcntl O_NONBLOCK: %.100s&lt;br /&gt;
packet_set_seqnr: bad mode %d&lt;br /&gt;
packet_set_connection: cannot load cipher &#039;none&#039;&lt;br /&gt;
none&lt;br /&gt;
@(#)$OpenBSD: packet.c,v 1.97 2002/07/04 08:12:15 deraadt Exp $&lt;br /&gt;
OpenSSL version mismatch. Built against %lx, you have %lx&lt;br /&gt;
PRNG is not seeded&lt;br /&gt;
@(#)$Id: entropy.c,v 1.44 2002/06/09 19:41:48 mouring Exp $&lt;br /&gt;
DISPLAY&lt;br /&gt;
SSH_ASKPASS&lt;br /&gt;
/dev/tty&lt;br /&gt;
ssh_askpass: exec(%s): %s&lt;br /&gt;
ssh_askpass: dup2: %s&lt;br /&gt;
ssh_askpass: fork: %s&lt;br /&gt;
ssh_askpass: pipe: %s&lt;br /&gt;
internal error: askpass undefined&lt;br /&gt;
ssh_askpass: fflush: %s&lt;br /&gt;
@(#)$OpenBSD: readpass.c,v 1.27 2002/03/26 15:58:46 markus Exp $&lt;br /&gt;
rsa_generate_additional_parameters: BN_CTX_new failed&lt;br /&gt;
rsa_generate_additional_parameters: BN_new failed&lt;br /&gt;
rsa_private_decrypt() failed&lt;br /&gt;
rsa_public_encrypt() failed&lt;br /&gt;
rsa_public_encrypt() exponent too small or not odd&lt;br /&gt;
@(#)$OpenBSD: rsa.c,v 1.24 2001/12/27 18:22:16 markus Exp $&lt;br /&gt;
ssh-dss&lt;br /&gt;
ssh_dss_verify: signature %s&lt;br /&gt;
ssh_dss_verify: BN_new failed&lt;br /&gt;
ssh_dss_verify: DSA_SIG_new failed&lt;br /&gt;
bad sigbloblen %u != SIGBLOB_LEN&lt;br /&gt;
ssh_dss_verify: remaining bytes in signature %d&lt;br /&gt;
ssh_dss_verify: cannot handle type %s&lt;br /&gt;
ssh_dss_verify: no DSA key&lt;br /&gt;
bad sig size %u %u&lt;br /&gt;
ssh_dss_sign: sign failed&lt;br /&gt;
ssh_dss_sign: no DSA key&lt;br /&gt;
@(#)$OpenBSD: ssh-dss.c,v 1.17 2002/07/04 10:41:47 markus Exp $&lt;br /&gt;
%s,null&lt;br /&gt;
while verifying MIC&lt;br /&gt;
while getting MIC&lt;br /&gt;
calling GSS_Import_name()&lt;br /&gt;
%s: snprintf() returned %d, expected %d&lt;br /&gt;
%s@%s&lt;br /&gt;
host&lt;br /&gt;
GSS-API error: %s&lt;br /&gt;
GSS-API error while %s: %s&lt;br /&gt;
&amp;lt;gss_oid_to_str() failed&amp;gt;&lt;br /&gt;
null&lt;br /&gt;
gss-group1-sha1-&lt;br /&gt;
INTERNAL ERROR (%s)&lt;br /&gt;
%s,%s&lt;br /&gt;
GSS-API Mechanism encoded as %s&lt;br /&gt;
gss-group1-sha1-&lt;br /&gt;
ssh-rsa&lt;br /&gt;
hash mismatch&lt;br /&gt;
oid mismatch&lt;br /&gt;
bad decrypted len: %d != %d + %d&lt;br /&gt;
RSA_public_decrypt failed: %s&lt;br /&gt;
bad siglen&lt;br /&gt;
bad hashlen&lt;br /&gt;
ssh_rsa_verify: signature %scorrect&lt;br /&gt;
ssh_rsa_verify: EVP_get_digestbynid %d failed&lt;br /&gt;
ssh_rsa_verify: add padding: modlen %u &amp;gt; len %u&lt;br /&gt;
ssh_rsa_verify: len %u &amp;gt; modlen %u&lt;br /&gt;
ssh_rsa_verify: remaining bytes in signature %d&lt;br /&gt;
ssh_rsa_verify: cannot handle type %s&lt;br /&gt;
ssh_rsa_verify: RSA modulus too small: %d &amp;lt; minimum %d bits&lt;br /&gt;
ssh_rsa_verify: no RSA key&lt;br /&gt;
ssh_rsa_sign: slen %u slen2 %u&lt;br /&gt;
slen %u &amp;gt; len %u&lt;br /&gt;
ssh_rsa_sign: RSA_sign failed: %s&lt;br /&gt;
ssh_rsa_sign: EVP_get_digestbynid %d failed&lt;br /&gt;
ssh_rsa_sign: no RSA key&lt;br /&gt;
@(#)$OpenBSD: ssh-rsa.c,v 1.26 2002/08/27 17:13:56 stevesk Exp $&lt;br /&gt;
%s%s%s&lt;br /&gt;
Home directory too long (%d &amp;gt; %d&lt;br /&gt;
Unknown user %100s.&lt;br /&gt;
User name after tilde too long.&lt;br /&gt;
@(#)$OpenBSD: tildexpand.c,v 1.13 2002/06/23 03:25:50 deraadt Exp $&lt;br /&gt;
Setting tty modes failed: %.100s&lt;br /&gt;
parse_tty_modes: n_bytes_ptr != n_bytes: %d %d&lt;br /&gt;
parse_tty_modes: unknown opcode %d&lt;br /&gt;
Ignoring unsupported tty mode opcode %d (0x%x)&lt;br /&gt;
tty_parse_modes: %d %d&lt;br /&gt;
cfsetospeed failed for %d&lt;br /&gt;
tty_parse_modes: ospeed %d&lt;br /&gt;
cfsetispeed failed for %d&lt;br /&gt;
tty_parse_modes: ispeed %d&lt;br /&gt;
tcgetattr: %.100s&lt;br /&gt;
tty_parse_modes: SSH2 n_bytes %d&lt;br /&gt;
tty_make_modes: %d %d&lt;br /&gt;
tty_make_modes: ispeed %d&lt;br /&gt;
tty_make_modes: ospeed %d&lt;br /&gt;
tcgetattr: %.100s&lt;br /&gt;
@(#)$OpenBSD: ttymodes.c,v 1.18 2002/06/19 00:27:55 deraadt Exp $&lt;br /&gt;
@(#)$OpenBSD: uuencode.c,v 1.16 2002/09/09 14:54:15 markus Exp $&lt;br /&gt;
xfree: NULL pointer given as argument&lt;br /&gt;
xrealloc: out of memory (new_size %lu bytes)&lt;br /&gt;
xrealloc: zero size&lt;br /&gt;
xmalloc: out of memory (allocating %lu bytes)&lt;br /&gt;
xmalloc: zero size&lt;br /&gt;
@(#)$OpenBSD: xmalloc.c,v 1.16 2001/07/23 18:21:46 stevesk Exp $&lt;br /&gt;
ciphers&lt;br /&gt;
~/%.100s&lt;br /&gt;
.ssh/id_dsa&lt;br /&gt;
~/%.100s&lt;br /&gt;
.ssh/id_rsa&lt;br /&gt;
~/%.100s&lt;br /&gt;
.ssh/identity&lt;br /&gt;
%s: terminating, %d bad configuration options&lt;br /&gt;
Reading configuration data %.200s&lt;br /&gt;
%.200s line %d: garbage at end of line; &amp;quot;%.200s&amp;quot;.&lt;br /&gt;
process_config_line: Unimplemented opcode %d&lt;br /&gt;
%s line %d: Deprecated option &amp;quot;%s&amp;quot;&lt;br /&gt;
%.200s line %d: Bad escape character.&lt;br /&gt;
none&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
Applying options for %.100s&lt;br /&gt;
socks4&lt;br /&gt;
%.200s line %d: Badly formatted port number.&lt;br /&gt;
%.200s line %d: Missing port argument.&lt;br /&gt;
%.200s line %d: Bad forwarding port.&lt;br /&gt;
%.200s line %d: Bad forwarding specification.&lt;br /&gt;
%255[^/]/%5[0-9]&lt;br /&gt;
%255[^:]:%5[0-9]&lt;br /&gt;
%.200s line %d: Missing second argument.&lt;br /&gt;
%.200s line %d: Bad listen port.&lt;br /&gt;
%.200s line %d: Missing port argument.&lt;br /&gt;
%.200s line %d: unsupported log level &#039;%s&#039;&lt;br /&gt;
%.200s line %d: Bad protocol spec &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad protocol 2 host key algorithms &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad SSH2 Mac spec &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad SSH2 cipher spec &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad cipher &#039;%s&#039;.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad number.&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Too many identity files specified (max %d).&lt;br /&gt;
%.200s line %d: Missing argument.&lt;br /&gt;
%.200s line %d: Bad yes/no/ask argument.&lt;br /&gt;
false&lt;br /&gt;
true&lt;br /&gt;
%.200s line %d: Missing yes/no/ask argument.&lt;br /&gt;
%.200s line %d: Bad yes/no argument.&lt;br /&gt;
false&lt;br /&gt;
true&lt;br /&gt;
%.200s line %d: Missing yes/no argument.&lt;br /&gt;
%s: line %d: Bad configuration option: %s&lt;br /&gt;
Too many remote forwards (max %d).&lt;br /&gt;
Too many local forwards (max %d).&lt;br /&gt;
Privileged ports can only be forwarded by root.&lt;br /&gt;
nohostauthenticationforlocalhost&lt;br /&gt;
clearallforwardings&lt;br /&gt;
smartcarddevice&lt;br /&gt;
bindaddress&lt;br /&gt;
hostkeyalgorithms&lt;br /&gt;
preferredauthentications&lt;br /&gt;
dynamicforward&lt;br /&gt;
loglevel&lt;br /&gt;
numberofpasswordprompts&lt;br /&gt;
keepalive&lt;br /&gt;
compressionlevel&lt;br /&gt;
compression&lt;br /&gt;
stricthostkeychecking&lt;br /&gt;
checkhostip&lt;br /&gt;
batchmode&lt;br /&gt;
connectionattempts&lt;br /&gt;
userknownhostsfile2&lt;br /&gt;
globalknownhostsfile2&lt;br /&gt;
userknownhostsfile&lt;br /&gt;
globalknownhostsfile&lt;br /&gt;
escapechar&lt;br /&gt;
host&lt;br /&gt;
user&lt;br /&gt;
localforward&lt;br /&gt;
remoteforward&lt;br /&gt;
protocol&lt;br /&gt;
macs&lt;br /&gt;
cipher&lt;br /&gt;
port&lt;br /&gt;
proxycommand&lt;br /&gt;
hostkeyalias&lt;br /&gt;
hostname&lt;br /&gt;
identityfile2&lt;br /&gt;
identityfile&lt;br /&gt;
usersh&lt;br /&gt;
fallbacktorsh&lt;br /&gt;
gssdelegatecreds&lt;br /&gt;
gssauthentication&lt;br /&gt;
gsskeyex&lt;br /&gt;
gssapidelegatecredentials&lt;br /&gt;
gssapiauthentication&lt;br /&gt;
gssapikeyexchange&lt;br /&gt;
tisauthentication&lt;br /&gt;
skeyauthentication&lt;br /&gt;
challengeresponseauthentication&lt;br /&gt;
hostbasedauthentication&lt;br /&gt;
rhostsrsaauthentication&lt;br /&gt;
dsaauthentication&lt;br /&gt;
pubkeyauthentication&lt;br /&gt;
rsaauthentication&lt;br /&gt;
kbdinteractivedevices&lt;br /&gt;
kbdinteractiveauthentication&lt;br /&gt;
passwordauthentication&lt;br /&gt;
rhostsauthentication&lt;br /&gt;
useprivilegedport&lt;br /&gt;
gatewayports&lt;br /&gt;
xauthlocation&lt;br /&gt;
forwardx11&lt;br /&gt;
forwardagent&lt;br /&gt;
@(#)$OpenBSD: readconf.c,v 1.100 2002/06/19 00:27:55 deraadt Exp $&lt;br /&gt;
buffer_uncompress: inflate returned %d&lt;br /&gt;
buffer_compress: deflate returned %d&lt;br /&gt;
compress incoming: raw data %lu, compressed %lu, factor %.2f&lt;br /&gt;
compress outgoing: raw data %lu, compressed %lu, factor %.2f&lt;br /&gt;
1.1.4&lt;br /&gt;
Bad compression level %d.&lt;br /&gt;
Enabling compression at level %d.&lt;br /&gt;
@(#)$OpenBSD: compress.c,v 1.19 2002/03/18 17:31:54 provos Exp $&lt;br /&gt;
@(#)$OpenBSD: crc32.c,v 1.8 2000/12/19 23:17:56 markus Exp $&lt;br /&gt;
Installing crc compensation attack detector.&lt;br /&gt;
detect_attack: bad length %d&lt;br /&gt;
@(#)$OpenBSD: deattack.c,v 1.18 2002/03/04 17:27:39 stevesk Exp $&lt;br /&gt;
dh_new_group: DH_new&lt;br /&gt;
BN_hex2bn g&lt;br /&gt;
BN_hex2bn p&lt;br /&gt;
dh_new_group_asc: DH_new&lt;br /&gt;
dh_gen_key: too many bad keys: giving up&lt;br /&gt;
dh_gen_key: priv key bits set: %d/%d&lt;br /&gt;
DH_generate_key&lt;br /&gt;
dh_gen_key: BN_rand failed&lt;br /&gt;
dh_gen_key: BN_new failed&lt;br /&gt;
dh_gen_key: group too small: %d (2*need %d)&lt;br /&gt;
dh_gen_key: dh-&amp;gt;p == NULL&lt;br /&gt;
invalid public DH value (%d/%d)&lt;br /&gt;
bits set: %d/%d&lt;br /&gt;
invalid public DH value: negativ&lt;br /&gt;
WARNING: line %d disappeared in %s, giving up&lt;br /&gt;
WARNING: no suitable primes in %s&lt;br /&gt;
WARNING: %s does not exist, using old modulus&lt;br /&gt;
/etc/ssh/primes&lt;br /&gt;
/etc/ssh/moduli&lt;br /&gt;
Bad prime description in line %d&lt;br /&gt;
parse_prime: BN_new failed&lt;br /&gt;
@(#)$OpenBSD: dh.c,v 1.22 2002/06/27 08:49:44 markus Exp $&lt;br /&gt;
@(#)$OpenBSD: kexdh.c,v 1.18 2002/03/18 17:50:31 provos Exp $&lt;br /&gt;
@(#)$OpenBSD: kexgex.c,v 1.22 2002/03/24 17:27:03 stevesk Exp $&lt;br /&gt;
Couldn&#039;t obtain random bytes (error %ld)&lt;br /&gt;
@(#)$Id: bsd-arc4random.c,v 1.5 2002/05/08 22:57:18 tim Exp $&lt;br /&gt;
@(#)$Id: bsd-misc.c,v 1.10 2002/07/08 21:09:41 mouring Exp $&lt;br /&gt;
/dev/null&lt;br /&gt;
%s: option requires an argument -- %c&lt;br /&gt;
%s: illegal option -- %c&lt;br /&gt;
/dev/tty&lt;br /&gt;
ÿßûÛïÏëË÷×óÓçÇãÃþÞúÚîÎêÊöÖòÒæÆâÂ&lt;br /&gt;
ÿÿÿÿ&lt;br /&gt;
ýÿÿÿ&lt;br /&gt;
þÿÿÿ&lt;br /&gt;
ÿÿÿÿ&lt;br /&gt;
ÿÿÿÿ¸7&lt;br /&gt;
ÿÿÿÿÄ&lt;br /&gt;
ÿÿÿÿÿÿÿÿ&lt;br /&gt;
ôjp5¥cé£&lt;br /&gt;
¤¸Üy&lt;br /&gt;
½|±~&lt;br /&gt;
ò °jHq¹óÞA¾&lt;br /&gt;
ëäÝmQµÔôÇ&lt;br /&gt;
À¨kdzùbýìÉe&lt;br /&gt;
È n;^&lt;br /&gt;
iLäA`Õrqg¢Ñä&lt;br /&gt;
¥ú¨µ5l&lt;br /&gt;
²BÖÉ»Û@ù¼¬ãlØ2u\ßEÏ&lt;br /&gt;
ÖÜY=Ñ«¬0Ù&amp;amp;:&lt;br /&gt;
aÐ¿µô´!#Ä³V&lt;br /&gt;
LhX«&lt;br /&gt;
aÁ=-f¶&lt;br /&gt;
3Ô¸è¢É&lt;br /&gt;
\cæôQkkbal&lt;br /&gt;
õÆÙ°ePé·&lt;br /&gt;
ÝbI-Ú&lt;br /&gt;
eLÔûXa²MÎQµ:t&lt;br /&gt;
¼£â0»ÔA¥ßJ×&lt;br /&gt;
Ø=mÄÑ¤ûôÖÓjéiCüÙn4F&lt;br /&gt;
Ð¸`Ús-&lt;br /&gt;
É%µhW³&lt;br /&gt;
ÉÙ)&amp;quot;&lt;br /&gt;
Ð°´¨×Ç&lt;br /&gt;
´.;\½·&lt;br /&gt;
lºÀ &lt;br /&gt;
¸í¶³¿&lt;br /&gt;
Ò±t9GÕê¯wÒ&lt;br /&gt;
¨Zjz&lt;br /&gt;
i]Wb÷Ëge&lt;br /&gt;
Ôþà+Ó&lt;br /&gt;
ÌJÝgoß¹ùùï¾&lt;br /&gt;
°`è£ÖÖ~&lt;br /&gt;
Ñ¡ÄÂØ8RòßOñg»ÑgW¼¦Ý&lt;br /&gt;
µ?K6²HÚ+&lt;br /&gt;
AÃï`ßUßg¨ï&lt;br /&gt;
n1y¾iF&lt;br /&gt;
f¼ Òo%6âhR&lt;br /&gt;
U¾;ºÅ(&lt;br /&gt;
j³\§ÿ×Â1ÏÐµ&lt;br /&gt;
®Þ[°Âd&lt;br /&gt;
&amp;amp;òcì&lt;br /&gt;
z¸â®+±{8&lt;br /&gt;
¾Õå·ïÜ|!ßÛ&lt;br /&gt;
BâÔñø³Ýhn&lt;br /&gt;
[&amp;amp;¹öáw°owG·&lt;br /&gt;
i®bøÓÿkaEÏl&lt;br /&gt;
9a&amp;amp;g§÷&lt;br /&gt;
`ÐMGiIÛwn&amp;gt;JjÑ®ÜZÖÙf&lt;br /&gt;
ß@ð;Ø7S®¼©Å&lt;br /&gt;
Ï²Géÿµ0&lt;br /&gt;
ÂºÊ0&lt;br /&gt;
³S¦£´$&lt;br /&gt;
×Í)WÞT¿gÙ#.zf³¸JaÄ&lt;br /&gt;
+o*7¾&lt;br /&gt;
session&lt;br /&gt;
pty-req&lt;br /&gt;
LC_TIME&lt;br /&gt;
failure&lt;br /&gt;
success&lt;br /&gt;
/usr/bin/rsh&lt;br /&gt;
shell&lt;br /&gt;
exec&lt;br /&gt;
subsystem&lt;br /&gt;
auth-agent-req@openssh.com&lt;br /&gt;
LC_ALL&lt;br /&gt;
LC_MESSAGES&lt;br /&gt;
LC_MONETARY&lt;br /&gt;
LC_NUMERIC&lt;br /&gt;
LC_COLLATE&lt;br /&gt;
LC_CTYPE&lt;br /&gt;
LANG&lt;br /&gt;
ssh.c&lt;br /&gt;
.ssh&lt;br /&gt;
.ssh/config&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
3des-cbc&lt;br /&gt;
Sun_SSH_1.1&lt;br /&gt;
.ssh/config&lt;br /&gt;
/bin/sh&lt;br /&gt;
has a different value&lt;br /&gt;
is unchanged&lt;br /&gt;
is unknown&lt;br /&gt;
Sun_SSH_1.1&lt;br /&gt;
sshconnect1.c&lt;br /&gt;
NULL&lt;br /&gt;
ssh-userauth&lt;br /&gt;
/usr/lib/ssh/ssh-keysign&lt;br /&gt;
sshconnect2.c&lt;br /&gt;
ssh-userauth&lt;br /&gt;
sshconnect2.c&lt;br /&gt;
none&lt;br /&gt;
password&lt;br /&gt;
keyboard-interactive&lt;br /&gt;
publickey&lt;br /&gt;
hostbased&lt;br /&gt;
gssapi-with-mic&lt;br /&gt;
gssapi-keyex&lt;br /&gt;
none,zlib&lt;br /&gt;
zlib,none&lt;br /&gt;
none,zlib&lt;br /&gt;
hmac-md5,hmac-sha1,hmac-sha1-96,hmac-md5-96&lt;br /&gt;
aes128-ctr,aes128-cbc,arcfour,3des-cbc,blowfish-cbc&lt;br /&gt;
ssh-rsa,ssh-dss&lt;br /&gt;
diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1&lt;br /&gt;
clientloop.c&lt;br /&gt;
authentication agent connection&lt;br /&gt;
clientloop.c&lt;br /&gt;
forwarded-tcpip&lt;br /&gt;
clientloop.c&lt;br /&gt;
break&lt;br /&gt;
window-change&lt;br /&gt;
&amp;lt;unknown&amp;gt;&lt;br /&gt;
dsa w/o comment&lt;br /&gt;
rsa w/o comment&lt;br /&gt;
&amp;lt;no key&amp;gt;&lt;br /&gt;
x11-req&lt;br /&gt;
../common/channels.c&lt;br /&gt;
connected x11 socket&lt;br /&gt;
../common/channels.c&lt;br /&gt;
x11 listener&lt;br /&gt;
port listener&lt;br /&gt;
connected socket&lt;br /&gt;
../common/channels.c&lt;br /&gt;
unknown reason&lt;br /&gt;
resource shortage&lt;br /&gt;
unknown channel type&lt;br /&gt;
connect failed&lt;br /&gt;
administratively prohibited&lt;br /&gt;
../common/channels.c&lt;br /&gt;
accepted auth socket&lt;br /&gt;
direct-tcpip&lt;br /&gt;
dynamic-tcpip&lt;br /&gt;
forwarded-tcpip&lt;br /&gt;
accepted x11 socket&lt;br /&gt;
direct-tcpip&lt;br /&gt;
arcfour&lt;br /&gt;
&amp;lt;unknown&amp;gt;&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes128-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish&lt;br /&gt;
3des&lt;br /&gt;
none&lt;br /&gt;
Probe-*&lt;br /&gt;
*SSH_Version_Mapper*&lt;br /&gt;
*OSU_0*,OSU_1.0*,OSU_1.1*,OSU_1.2*,OSU_1.3*,OSU_1.4*,OSU_1.5alpha1*,OSU_1.5alpha2*,OSU_1.5alpha3*&lt;br /&gt;
*SSH Compatible Server*&lt;br /&gt;
1.2.1*,1.2.2*,1.2.3*&lt;br /&gt;
1.3.2*&lt;br /&gt;
1.2.18*,1.2.19*,1.2.20*,1.2.21*,1.2.22*&lt;br /&gt;
1.7 SecureFX*&lt;br /&gt;
3.0 SecureCRT*&lt;br /&gt;
3.0.*&lt;br /&gt;
2.3.*&lt;br /&gt;
2.2.0*,2.3.0*&lt;br /&gt;
2.0.*&lt;br /&gt;
2.0.11*,2.0.12*&lt;br /&gt;
2.0.13*,2.0.14*,2.0.15*,2.0.16*,2.0.17*,2.0.18*,2.0.19*&lt;br /&gt;
2.1 *&lt;br /&gt;
2.1.0*&lt;br /&gt;
*MindTerm*&lt;br /&gt;
Sun_SSH_1.0*&lt;br /&gt;
Sun_SSH_1.0.*&lt;br /&gt;
OpenSSH*&lt;br /&gt;
OpenSSH_3.6*,OpenSSH_3.7*,OpenSSH_3.8*&lt;br /&gt;
OpenSSH_3.2*,OpenSSH_3.3*,OpenSSH_3.4*,OpenSSH_3.5*&lt;br /&gt;
OpenSSH_2.*,OpenSSH_3.0*,OpenSSH_3.1*&lt;br /&gt;
OpenSSH_2.9p*&lt;br /&gt;
OpenSSH_2.5.3*&lt;br /&gt;
OpenSSH_2.5.0*,OpenSSH_2.5.1*,OpenSSH_2.5.2*&lt;br /&gt;
OpenSSH_2.5.0p1*,OpenSSH_2.5.1p1*&lt;br /&gt;
OpenSSH_2.3.*&lt;br /&gt;
OpenSSH_2.3.0*&lt;br /&gt;
OpenSSH-2.0*,OpenSSH-2.1*,OpenSSH_2.1*,OpenSSH_2.2*&lt;br /&gt;
Conversion to UTF-8 failed due topreposterous space requirements&lt;br /&gt;
Cannot convert UTF-8 strings to the local codeset&lt;br /&gt;
Cannot convert ASCII strings to the local codeset&lt;br /&gt;
i-default&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha1&lt;br /&gt;
ssh-dss&lt;br /&gt;
ssh-rsa&lt;br /&gt;
unknown&lt;br /&gt;
ssh-unknown&lt;br /&gt;
RSA1&lt;br /&gt;
server-&amp;gt;client&lt;br /&gt;
client-&amp;gt;server&lt;br /&gt;
../common/kex.c&lt;br /&gt;
../common/kexdhc.c&lt;br /&gt;
../common/kexgexc.c&lt;br /&gt;
internal error&lt;br /&gt;
debug3&lt;br /&gt;
debug2&lt;br /&gt;
debug1&lt;br /&gt;
error&lt;br /&gt;
fatal&lt;br /&gt;
closed&lt;br /&gt;
wait_oclose&lt;br /&gt;
drain&lt;br /&gt;
open&lt;br /&gt;
closed&lt;br /&gt;
wait_ieof&lt;br /&gt;
drain&lt;br /&gt;
open&lt;br /&gt;
../common/packet.c&lt;br /&gt;
/usr/lib/ssh/ssh-askpass&lt;br /&gt;
correct&lt;br /&gt;
error&lt;br /&gt;
incorrect&lt;br /&gt;
host&lt;br /&gt;
~/.ssh/known_hosts2&lt;br /&gt;
/etc/ssh/ssh_known_hosts2&lt;br /&gt;
~/.ssh/known_hosts&lt;br /&gt;
/etc/ssh/ssh_known_hosts&lt;br /&gt;
.ssh/id_dsa&lt;br /&gt;
.ssh/id_rsa&lt;br /&gt;
.ssh/identity&lt;br /&gt;
/usr/openwin/bin/xauth&lt;br /&gt;
&amp;lt;NONE&amp;gt;&lt;br /&gt;
FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF&lt;br /&gt;
/etc/ssh/primes&lt;br /&gt;
/etc/ssh/moduli&lt;br /&gt;
unknown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Solaris]]&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
	<entry>
		<id>https://www.theeggeadventure.com/wikimedia/index.php?title=File:Vintage.jpg&amp;diff=2092</id>
		<title>File:Vintage.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.theeggeadventure.com/wikimedia/index.php?title=File:Vintage.jpg&amp;diff=2092"/>
		<updated>2009-06-18T03:53:36Z</updated>

		<summary type="html">&lt;p&gt;Egge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Egge</name></author>
	</entry>
</feed>