<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.lensovet.net/~sysadmin/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wadmin</id>
	<title>lensowiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.lensovet.net/~sysadmin/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wadmin"/>
	<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/Special:Contributions/Wadmin"/>
	<updated>2026-05-06T02:59:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Main_Page&amp;diff=24269</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Main_Page&amp;diff=24269"/>
		<updated>2023-02-20T03:47:13Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Changed protection level for &amp;quot;Main Page&amp;quot; ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[CS]]&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.2&amp;diff=24242</id>
		<title>FMenu/1.2</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.2&amp;diff=24242"/>
		<updated>2011-04-02T21:29:00Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FaceMenu-1.2.app.zip?modtime=1167670144&amp;amp;big_mirror=0&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Class_schedule&amp;diff=24241</id>
		<title>Class schedule</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Class_schedule&amp;diff=24241"/>
		<updated>2011-04-02T21:14:58Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class schedules, in their various iterations, will be placed here, in reverse chronological order (last semester first).&lt;br /&gt;
To put a pretty table taken from [http://www.ocf.berkeley.edu/~amanb/makeSched/ Aman's schedule maker] here, copy the HTML and then perform the following search/replace functions in SubEthaEdit:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;a\sclass=subtle\stitle=&amp;quot;CCN:\s\d\d\d\d\d\&amp;quot;\shref=\&amp;quot;javascript:ccn\(\'\d\d\d\d\d\'\)&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; ''[[w:regexp|regexp]]''&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;a\sclass=del\shref=&amp;quot;javascript:del\(\'\d\d\d\d\d\'\)&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; ''[[w:regexp|regexp]]''&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/A&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;img border=0 src=&amp;quot;../x.gif&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spring 08==&lt;br /&gt;
CS:160-LEC TuTh 330-5P  306 SODA CCN=26479&lt;br /&gt;
CS:160-DIS-:102 Tu 2-3P  310 SODA CCN=26485&lt;br /&gt;
STAT:131A-LEC TuTh 1230-2P  155 KROEBER CCN=87444&lt;br /&gt;
STAT:131A-LAB-:101 MW 11-12P  332 EVANS CCN=87447&lt;br /&gt;
SLAL:46-LEC MWF 12-1P  174 BARROWS CCN=79754&lt;br /&gt;
CAEE:155-LEC TuTh 10-11A  3106 ETCHEVERRY CCN=14044&lt;br /&gt;
CAEE:155-LAB-:101 F 12-3P  502 DAVIS CCN=14047&lt;br /&gt;
PE:4-LAB MW 3-4P  HEARST POOL CCN=68264&lt;br /&gt;
ES,-P,-AM:102D-LEC TuTh 11-1230P  150 GSPP CCN=29265&lt;br /&gt;
ES,-P,-AM:102D-DIS-:102 W 1-2P  321 HAVILAND CCN=29271&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Spring 07==&lt;br /&gt;
===Pre-planning stages===&lt;br /&gt;
Here I'm undecided about which of Math 55 and CS 70 to take. I'm also waiting on a music class to find out when it meets. apart from that this schedule is set.&lt;br /&gt;
&amp;lt;TABLE class=stbl cellpadding=5&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD class=shead&amp;gt;SCHEDULE&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Mon&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Tue&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Wed&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Thu&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=2&amp;gt;Fri&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1000&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MUS:51 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  135 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MUS:51 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  135 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MUS:51 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  135 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=8&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1000&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1030&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1030&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1100&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fec2c7'&amp;gt;SLAL:105B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  258 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fec2c7'&amp;gt;SLAL:105B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  258 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fec2c7'&amp;gt;SLAL:105B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  258 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1100&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1130&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1130&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1200&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;IS:4 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2030 VALLEY LSB   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;IS:4 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2030 VALLEY LSB   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;IS:4 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2030 VALLEY LSB   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;IS:4 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2030 VALLEY LSB   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;IS:4 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2030 VALLEY LSB   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1200&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1230&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1230&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1300&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;CS:61C LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2050 VALLEY LSB   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=5&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;CS:61C LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2050 VALLEY LSB   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=5&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;CS:61C LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2050 VALLEY LSB   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1300&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1330&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1330&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1400&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;MATH:55 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  277 CORY   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;MATH:55 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  277 CORY   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f5d4cd'&amp;gt;CS:70 DIS :103&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  85 EVANS   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;MATH:55 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  277 CORY   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1400&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1430&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1430&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1500&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1500&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1530&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#f5d4cd'&amp;gt;CS:70 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2 LECONTE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#f5d4cd'&amp;gt;CS:70 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  2 LECONTE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1530&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1600&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1600&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1630&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1630&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
==Fall 06==&lt;br /&gt;
===As of Sep 8===&lt;br /&gt;
&amp;lt;TABLE class=stbl cellpadding=5 style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD class=shead&amp;gt;SCHEDULE&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Mon&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Tue&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Wed&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Thu&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Fri&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;800&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#cfcfc4'&amp;gt;MATH:54 DIS :101&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  61 EVANS   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#cfcfc4'&amp;gt;MATH:54 DIS :101&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  61 EVANS   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;800&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;830&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;830&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;900&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;900&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;930&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#fec2c7'&amp;gt;FRENCH:102 LEC:002&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  B4 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#fec2c7'&amp;gt;FRENCH:102 LEC:002&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  B4 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;930&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1000&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;MUS:50 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  124 MORRISON   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;MUS:50 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  124 MORRISON   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;MUS:50 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  124 MORRISON   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1000&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1030&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1030&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1100&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;SLAL:105A LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  205 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;SLAL:105A LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  205 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;SLAL:114 SLF&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  205 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;SLAL:105A LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  205 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1100&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1130&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1130&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1200&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f5d4cd'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  283 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f5d4cd'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  283 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f5d4cd'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  283 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f5d4cd'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  283 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f5d4cd'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  283 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1200&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1230&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1230&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1300&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#d2e3c7'&amp;gt;MUS:61 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  117 MORRISON   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=4 style='background:#c9e5cb'&amp;gt;CS:61B LAB :013&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  277 SODA   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#d2e3c7'&amp;gt;MUS:61 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  117 MORRISON   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#d2e3c7'&amp;gt;MUS:61 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  117 MORRISON   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1300&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1330&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1330&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1400&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#c9e5cb'&amp;gt;CS:61B DIS :113&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  101 BARROWS   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1400&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1430&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1430&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1500&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MATH:54 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  155 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#edd5f8'&amp;gt;PE:4 LAB:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  HEARST POOL   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MATH:54 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  155 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#edd5f8'&amp;gt;PE:4 LAB:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  HEARST POOL   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MATH:54 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  155 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1500&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1530&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1530&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1600&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#c9e5cb'&amp;gt;CS:61B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  145 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#c9e5cb'&amp;gt;CS:61B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  145 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#c9e5cb'&amp;gt;CS:61B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  145 DWINELLE   &amp;lt;br&amp;gt;&amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1600&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1630&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1630&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Before the start of classes (Aug 28)===&lt;br /&gt;
&amp;lt;TABLE class=stbl cellpadding=5 cellspacing=0 border=0 style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD class=shead&amp;gt;SCHEDULE&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Mon&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Tue&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Wed&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Thu&amp;lt;/TD&amp;gt;&amp;lt;TD class=shead colspan=1&amp;gt;Fri&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;800&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#cfcfc4'&amp;gt;MATH:54 DIS :101&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  61 EVANS   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#cfcfc4'&amp;gt;MATH:54 DIS :101&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  61 EVANS   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;800&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;830&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;830&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;900&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;900&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;930&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#fec2c7'&amp;gt;FRENCH:102 LEC:002&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  B4 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=3 style='background:#fec2c7'&amp;gt;FRENCH:102 LEC:002&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  B4 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;930&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1000&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;MUS:50 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  124 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;MUS:50 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  124 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#fbd1d0'&amp;gt;MUS:50 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  124 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1000&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1030&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1030&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1100&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;MUS:61 LEC:002&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  128 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;MUS:61 LEC:002&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  128 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#f0fbef'&amp;gt;MUS:61 LEC:002&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  128 MORRISON   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1100&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1130&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1130&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1200&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  C320 CHEIT   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  C320 CHEIT   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  C320 CHEIT   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  C320 CHEIT   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#dde9d7'&amp;gt;IS:3 LEC:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  C320 CHEIT   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1200&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1230&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1230&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1300&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=4 style='background:#f5d4cd'&amp;gt;PE:1 LAB:007&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  234 HEARST GYM   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=4 style='background:#d2e3c7'&amp;gt;CS:61B LAB :013&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  277 SODA   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty1 rowspan=4&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1300&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1330&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1330&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1400&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#d2e3c7'&amp;gt;CS:61B DIS :113&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  78 BARROWS   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1400&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1430&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1430&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1500&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MATH:54 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  155 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#c9e5cb'&amp;gt;PE:4 LAB:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  HEARST POOL   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MATH:54 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  155 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#c9e5cb'&amp;gt;PE:4 LAB:003&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  HEARST POOL   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#cfcfc4'&amp;gt;MATH:54 LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  155 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1500&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1530&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1530&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1600&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#d2e3c7'&amp;gt;CS:61B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  145 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#d2e3c7'&amp;gt;CS:61B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  145 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sempty rowspan=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD class=sdata rowspan=2 style='background:#d2e3c7'&amp;gt;CS:61B LEC&amp;lt;BR&amp;gt;&amp;lt;SMALL&amp;gt;  145 DWINELLE   &amp;lt;/SMALL&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1600&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1630&amp;lt;/TD&amp;gt;&amp;lt;TD nowrap class=shead&amp;gt;1630&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
There’s also another class that doesn’t have a scheduled meeting time, Slavic 114.&lt;br /&gt;
&lt;br /&gt;
==Spring 06==&lt;br /&gt;
&lt;br /&gt;
==Fall 05==&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Help:Editing&amp;diff=24240</id>
		<title>Help:Editing</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Help:Editing&amp;diff=24240"/>
		<updated>2011-04-02T21:05:55Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{H:h|editor toc}}&lt;br /&gt;
This &amp;quot;Editing Overview&amp;quot; is intended to be a '''very brief and short introduction''' to wiki editing. &lt;br /&gt;
Each of the topics covered here is covered somewhere else in more detail. Look at the right hand side of the table (the one with many clickable links).&lt;br /&gt;
&lt;br /&gt;
You may want to keep '''[[Help:Wikitext examples]]''' or '''[[Help:Wikitext_reference]]''' open while editing when you need more advanced wikitext and editing skills. If you want view a full guide in one page, please go to '''[[Help:Editing all-in-one guide]]'''.&lt;br /&gt;
&lt;br /&gt;
== Editing Basics ==&lt;br /&gt;
&amp;lt;!--It is intended to be brief, or as an overview. Otherwise why we separate the materials into different pages? Thus it's best NOT to add new materials or expand here. Add more examples or expand in other areas like Wikitext examples. Thanks!--&amp;gt;&lt;br /&gt;
&amp;quot;Edit this page&amp;quot; starts and restarts an edit.  Below the edit box,&amp;quot;Cancel&amp;quot; stops an edit. &amp;quot;Show changes&amp;quot; compares the current text with your text. &amp;quot;Edit summary&amp;quot; is where you tell the page history what you did. &amp;quot;Show preview&amp;quot; shows your text and lets you make corrections.  Only &amp;quot;Save page&amp;quot; makes your edit the current text and puts a link to it on the page history. &lt;br /&gt;
To experiment, go to &amp;quot;sandbox&amp;quot;. See also: [[help:Talk page|talk pages]], [[w:MediaWiki|MediaWiki]], [[w:wikitext|wikitext]], [[Help:Edit summary|edit summary]], [[Wikipedia:Edit_summary_legend]], [[Help:Show preview|Show preview]], &amp;amp;  [[sandbox]].&lt;br /&gt;
&lt;br /&gt;
== Basic formatting ==&lt;br /&gt;
Wikipedia was the first &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.wikimedia.org/ Wikimedia]&amp;lt;/span&amp;gt; project.&lt;br /&gt;
[[Image:Cheatsheet-en.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Most Frequent Wiki Markup Explained==&lt;br /&gt;
&amp;lt;!--It is intended to be brief, or as an overview. Otherwise why we separate the materials into different pages? Thus it's best NOT to add new materials or expand here. Add more examples or expand in other areas like Wikitext examples. Thanks!--&amp;gt;&lt;br /&gt;
This section is intended to introduce wiki markups to new comers. That's why we just pick up about 6 most frequently used wiki markups from Wikitext examples. It is not intended to be a comprehensive explanation of all wiki markups. Otherwise you should take a look at the following: &lt;br /&gt;
*[[Help:Wikitext examples]]&lt;br /&gt;
*[[Help:Wikitext_reference]]&lt;br /&gt;
*[[Help:Reference card]] - a one-page summary of important commands, to be printed out and used next to the computer&lt;br /&gt;
*[[Help:HTML in wikitext]]&lt;br /&gt;
*[[w:HTML element|HTML elements]] - introduction to HTML&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
!width=&amp;quot;1000&amp;quot; style=&amp;quot;background:#FFFF99&amp;quot;|What it looks like&lt;br /&gt;
!width=&amp;quot;500&amp;quot; style=&amp;quot;background:#FFFF99&amp;quot;|What you type&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
You can ''italicize text'' by putting 2 &lt;br /&gt;
apostrophes on each side&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
You can ''italicize text'' by putting 2 &lt;br /&gt;
apostrophes on each side.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
3 apostrophes will bold '''the text'''. &lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
3 apostrophes will bold '''the text'''. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
5 apostrophes will bold and italicize &lt;br /&gt;
'''''the text'''''.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
5 apostrophes will bold and italicize &lt;br /&gt;
'''''the text'''''.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
(4 apostrophes don't do anything special &lt;br /&gt;
&lt;br /&gt;
-- there's just ''''one left over''''.)&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
(4 apostrophes don't do anything special &lt;br /&gt;
&lt;br /&gt;
-- there's just ''''one left over''''.)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
You should &amp;quot;sign&amp;quot; your comments on talk&lt;br /&gt;
&lt;br /&gt;
pages: &amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
You should &amp;quot;sign&amp;quot; your comments on talk&lt;br /&gt;
&lt;br /&gt;
 pages: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Three tildes gives your user name:&lt;br /&gt;
&lt;br /&gt;
User Name&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
Three tildes gives your user name:&lt;br /&gt;
&lt;br /&gt;
~~~&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Four tildes give your user name plus &lt;br /&gt;
&lt;br /&gt;
date/time: User Name  &lt;br /&gt;
&lt;br /&gt;
07:46, 27 November 2005 (UTC) &amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
Four tildes give your user name plus&lt;br /&gt;
&lt;br /&gt;
date/time: ~~~~ &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Five tildes gives the date/time alone:&lt;br /&gt;
&lt;br /&gt;
07:46, 27 November 2005 (UTC) &amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
Five tildes gives the date/time alone: &lt;br /&gt;
&lt;br /&gt;
~~~~~&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
== Section headings ==&lt;br /&gt;
&lt;br /&gt;
''Headings'' organize your writing into&lt;br /&gt;
&lt;br /&gt;
sections.&lt;br /&gt;
The Wiki software can automatically &lt;br /&gt;
&lt;br /&gt;
generate&lt;br /&gt;
a table of contents from them.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
== Section headings ==&lt;br /&gt;
&lt;br /&gt;
Start with 2 equals signs not 1 &lt;br /&gt;
because 1 creates H1 tags&lt;br /&gt;
which should be reserved for page title.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Subsection ===&lt;br /&gt;
&lt;br /&gt;
Using more equals signs creates a &lt;br /&gt;
&lt;br /&gt;
subsection.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
=== Subsection ===&lt;br /&gt;
&lt;br /&gt;
Using more equals signs creates a &lt;br /&gt;
&lt;br /&gt;
subsection.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==== A smaller subsection ====&lt;br /&gt;
&lt;br /&gt;
Don't skip levels, &lt;br /&gt;
like from two to four equals signs.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
==== A smaller subsection ====&lt;br /&gt;
&lt;br /&gt;
Don't skip levels, &lt;br /&gt;
like from two to four equals signs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* ''Unordered [[Help:List|list]]s'' &lt;br /&gt;
* Start every line with a star.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
* ''Unordered [[Help:List|list]]s'' &lt;br /&gt;
* Start every line with a star.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
#''Numbered lists'' &lt;br /&gt;
#use number sign&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
#''Numbered lists'' &lt;br /&gt;
#use number sign&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Link to a page named [[Official position]].&lt;br /&gt;
You can even say [[official position]]s&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
Link to a page named [[Official position]].&lt;br /&gt;
You can even say [[official position]]s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[The weather in Moscow]] is a page&lt;br /&gt;
&lt;br /&gt;
that doesn't exist&lt;br /&gt;
yet. You could create it by clicking&lt;br /&gt;
&lt;br /&gt;
on the link.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
[[The weather in Moscow]] is a page&lt;br /&gt;
that doesn't exist&lt;br /&gt;
yet. You could create it by clicking &lt;br /&gt;
&lt;br /&gt;
on the link.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
You can link to a page's section by its title:&lt;br /&gt;
*[[List of cities by country#Morocco]].&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
You can link to a page's section by its title:&lt;br /&gt;
*[[List of cities by country#Morocco]].&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
If multiple sections have the same title, add&lt;br /&gt;
a number. [[#Example section 3]] goes to the&lt;br /&gt;
third section named &amp;quot;Example section&amp;quot;.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
If multiple sections have the same title, add&lt;br /&gt;
a number. [[#Example section 3]] goes to the&lt;br /&gt;
third section named &amp;quot;Example section&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Further Reading==&lt;br /&gt;
&amp;lt;!--More relevant links are welcome--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===About Editing===&lt;br /&gt;
*[[Help:Editing FAQ]]&lt;br /&gt;
*[[Help:Editing toolbar]]&lt;br /&gt;
*[[Help:Editing tips and tricks]]&lt;br /&gt;
*[[Help:Minor_edit]]&lt;br /&gt;
&lt;br /&gt;
===About Wiki Markups and Codes===&lt;br /&gt;
{{Meta}}&lt;br /&gt;
*[[Help:Wikitext examples]]&lt;br /&gt;
*[[Help:Wikitext_reference]]&lt;br /&gt;
*[[Help:Reference card]] - a one-page summary of important commands, to be printed out and used next to the computer&lt;br /&gt;
*[[Help:HTML in wikitext]]&lt;br /&gt;
*[[w:HTML element|HTML elements]] - introduction to HTML&lt;br /&gt;
&lt;br /&gt;
===Page Management===&lt;br /&gt;
*[[Help:Starting a new page]]&lt;br /&gt;
*[[Wikipedia:Merging_and_moving_pages|Merging_and_moving_pages]]&lt;br /&gt;
*[[Help:Administration#Page_protection| Protecting pages]]&lt;br /&gt;
*[[Meta:Deletion_policy|Deletion policy]]&lt;br /&gt;
**[[Wikipedia:Pure_wiki_deletion_system|Pure wiki deletion system]]&lt;br /&gt;
* For others, look at the table (&amp;quot;tools&amp;quot; part) on your right hand side&lt;br /&gt;
&lt;br /&gt;
===Others===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{h:f|enname=Editing}}&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu/archive&amp;diff=24239</id>
		<title>Talk:FMenu/archive</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu/archive&amp;diff=24239"/>
		<updated>2011-03-14T04:14:41Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: /* FMenu Crashes after login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem with ZIP archive? ==&lt;br /&gt;
&lt;br /&gt;
I can't open the archive—StuffIt Expander 10 stalls approximately 95% through and doesn't start again, and StuffIt Expander 11 returns an error. Is there a place for me to download the app that's not compressed? [[User:129.137.158.156|129.137.158.156]] 16:06, 29 January 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Never mind, it seems I got a bad download from the link on the wiki. It worked the next time I tried it. [[User:129.137.158.156|129.137.158.156]] 16:18, 29 January 2007 (EST)&lt;br /&gt;
::Hm, that's weird, but I strongly discourage anyone from using Stuffit at all. Mac OS X's built-in BOMArchiveHelper.app does the job much better. Happy to hear that you were able to resolve the problem, however.[[User:Lensovet|lensovet]] 21:04, 29 January 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Friends opting out of Terms of Service and Update frequency ==&lt;br /&gt;
&lt;br /&gt;
I have three questions.  First, exactly what effect does it have when a friend unchecks the Terms of Service box?  Will FMenu not even be able to tell me when they poke or message me?  Second, is there any way I can tell which friends have opted out of this?  My third question is how frequent is &amp;quot;too frequent&amp;quot; for the update frequency?  How frequently can I have it update without hitting the request limit?  Thanks!&lt;br /&gt;
:Here we go!&lt;br /&gt;
:#If the friend unchecks this box, they are completely invisible to the program. That means that anything about ''them'' is inaccessible, like their profile and their status. However, when they poke ''you'', this is still accessible, because it is ''your'' information that's retrieved to find out the number of current pokes. So anything they do to you is available, because your info is retrieved, but anything they do to their profiles is not.&lt;br /&gt;
:#Yes, there is. click on the arrow at the right of the text field in the Quicklaunch panel. That lists all the friends that are available to you through the app &amp;lt;s&amp;gt;(in a random order, unfortunately)&amp;lt;/s&amp;gt;, which are alphabetized by first name as of version 1.5.&lt;br /&gt;
:#This is essentially a guess-and-check process. As of version 1.4, it appears that 7 seconds is in fact the most frequent update interval. I personally  had it running with 6 seconds, but that would randomly give me incorrect notifications.&lt;br /&gt;
:Hope that clears things up a bit!&amp;amp;nbsp;[[User:Lensovet|lensovet]] 14:40, 3 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Duplicate notifications ==&lt;br /&gt;
&lt;br /&gt;
I keep getting the same notifications over and over.  I have moved my interval up to 30 seconds thinking it could have been cause by too frequent of an interval but I am continuing to see duplicate messages.  It's a series of 5 or 6 messages, same messages each time.&lt;br /&gt;
&lt;br /&gt;
I have the exact same problem and it is the same two updates from the same exact person. --[[User:70.158.150.128|70.158.150.128]] 15:24, 13 February 2007 (EST)&lt;br /&gt;
:If the update you're getting is &amp;quot;XXX has updated his profile&amp;quot;, that means that they are actually updating their profile that frequently. If it's something else, let me know. Thanks. [[User:Lensovet|lensovet]] 00:48, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
The one that keeps repeating for me is &amp;quot;XXXX wrote a new note&amp;quot; and &amp;quot;XXXX has updated her profile&amp;quot;  It is always the same person and I've looked at their profile and it doesn't look like it's changing to me. --[[User:70.158.150.128|70.158.150.128]] 15:23, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I can verify the above problem.  I have one friend that has consistently showed up as &amp;quot;XXXX has updated her profile&amp;quot; and &amp;quot;XXXX wrote a new note.&amp;quot;  They show side by side, often with any other events from other friends.  Its been showing up nonstop since I downloaded it two days ago.  She only has one note from last year, so she hasn't written a new note every 5 minutes over the last two days.  --[[User:146.151.11.242|146.151.11.242]] 03:24, 14 February 2007 (EST)&lt;br /&gt;
:Wow, I just started getting this myself. Will def look into it. [[User:Lensovet|lensovet]] 11:54, 14 February 2007 (EST)&lt;br /&gt;
:Haha, now I get New note wrote a new note or profile updated his profile. --[[User:65.82.99.3|65.82.99.3]] 12:16, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Just curious, to all who have reported this problem, what happens if you restart the app (or choose Logout from the menu and log back in)? Thanks... [[User:Lensovet|lensovet]] 21:38, 14 February 2007 (EST)&lt;br /&gt;
::Do try that as an interim solution, but I think that I've found the problem. Apparently the information sent by Facebook's API would sometimes contain profiles with a blank &amp;quot;name&amp;quot; field, and I think this is what was setting off the erroneous notifications. I'll be testing a [http://fmenu.svn.sourceforge.net/viewvc/fmenu/UpdateMethods.mm?r1=16&amp;amp;r2=19&amp;amp;sortby=date possible fix] to see if the problem goes away. I should have a new release out this weekend. Stay tuned and thanks for the reports! [[User:Lensovet|lensovet]] 22:28, 14 February 2007 (EST)&lt;br /&gt;
:::Any news on when we can see that update? I'd be glad to test it to see if it resolves the duplicate notification issue [[User:Loudestnoise|Loudestnoise]] 11:56, 24 February 2007 (EST)&lt;br /&gt;
::::I hope to get it out this weekend...however I have a question for you, are you still getting those duplicate updates? After putting in the fix I mentioned above, I still got a few bogus notifications...but since then they've gone away, and I never had them in the first place, so their cause is hard for me to track/figure out. Are you still getting repeated notifications? Thanks! [[User:Lensovet|lensovet]] 14:02, 24 February 2007 (EST)&lt;br /&gt;
:::::I have the newest version and I am experiencing the same problems I reported before (with new note/updated profile notifications appearing tandem, and alongside almost all other legitimate notifications.  It is from the same person all the time, and they have not made any new notes.  --[[User:146.151.11.242|146.151.11.242]] 16:54, 24 February 2007 (EST)&lt;br /&gt;
::::::Please try the newest version, which just came out, and let me know if this is still happening. Thanks! [[User:Lensovet|lensovet]] 03:52, 26 February 2007 (EST)&lt;br /&gt;
:::::::I have just updated to the new version and have yet to receive any duplicate or incorrect notifications. Will keep watching and hoping there are none to come. [[User:Loudestnoise|Loudestnoise]] 15:11, 26 February 2007 (EST)&lt;br /&gt;
::::::::Still happens. I even went ahead and used appzapper to remove all existing pieces of FMenu and install v2.0. Same exact person same exact notices as before. [[User:Loudestnoise|Loudestnoise]] 15:24, 26 February 2007 (EST)&lt;br /&gt;
::::::::Agreed.  I've updated and within 5 minutes have gotten the same person, same problem. --[[User:Shaun|Shaun]] 02:23, 1 March 2007 (EST)&lt;br /&gt;
:::::::::Check to see if that person has two separate facebook accounts. That happened to be the problem with the other user. [[User:Lensovet|lensovet]] 03:32, 1 March 2007 (EST)&lt;br /&gt;
::::::::::Indeed, this seems to have solved it.  Thanks!  --[[User:146.151.11.242|146.151.11.242]] 02:56, 12 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Spinning Beachball ==&lt;br /&gt;
&lt;br /&gt;
During normal use of FMenu sometimes the loading of the menu can take a minute plus during which when you mouse over the menubar and you see the spinning beachball of death. --[[User:Loudestnoise|Loudestnoise]] 12:14, 14 February 2007 (EST)&lt;br /&gt;
:I will look into this, but i'm changing the heading since the app never actually crashes. [[User:Lensovet|lensovet]] 13:49, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Ha, this is true, my apologies --[[User:Loudestnoise|Loudestnoise]] 15:50, 15 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Solution to your authentication problem and one feature request ==&lt;br /&gt;
Use Apple Keychain&lt;br /&gt;
Why don't you use Apple's Keychain for the Username and Password of Facebook. When you start up the FMenu, you can get then the user/pass from the keychain and auto login. The user had to authorize the addition of the data to the keychain so you are perfectly valid in using that. This situation is what the keychain was designed for, just go ahead and use it.&lt;br /&gt;
:That is precisely what I plan on doing, I just need to figure out how to code it. [[User:Lensovet|lensovet]] 17:15, 14 February 2007 (EST)&lt;br /&gt;
Sparkle for updates:&lt;br /&gt;
The feature request I have is that you use the Sparkle framework for updates. That will allow us to not have to worry about updating and you'll get an auto-update engine for free.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Aslam&lt;br /&gt;
:Right, Sparkle requires an RSS feed with release info though, which is why it will take a bit to set up. I do plan on implementing it though. [[User:Lensovet|lensovet]] 17:15, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
-=-&lt;br /&gt;
Follow up:&lt;br /&gt;
&lt;br /&gt;
I'm so glad to hear you're going to be using Keychain. It's great to see developers use the awesome tools that Apple gives us. I'm sure you've already found this recently updated document but just in case, I found info on programming with the Keychain here: http://developer.apple.com/documentation/Security/Reference/keychainservices/keychainServRef.pdf&lt;br /&gt;
&lt;br /&gt;
Secondly, you probably know about this also but I found the easiest way to setup an RSS feed was to use iWeb (part of iLife) and create a Blog page. iWeb automatically creates an RSS feed for you and then you can use that to regularly update the feed. If that doesn't provide enough customization, then tools like PodcastMaker from potionfactory.com or FeedForAll (http://www.feedforall.com/feedforall-mac.htm) or one of the other RSS Feed builder tools that are available for OSX might be helpful.&lt;br /&gt;
&lt;br /&gt;
== FMenu Going Nuts ==&lt;br /&gt;
&lt;br /&gt;
A couple of times, I have had FMenu go nuts and start giving me notifications about all my friends, the same three or four notifications (new note, updated status, etc.), even though they had done none of the above. One time, it happened right when I plugged my MacBook into an external monitor. This went on ''ad infinitum'', repeating notifications. The notifications stickied, and even though I turned both FMenu and Growl off, they kept coming. It bogged my system down so much (and kept notifying) that I had to do a hard shut-down of the MacBook. I've had FMenu disabled since. --Carl Peterson&lt;br /&gt;
:I'm sorry to hear that you had such bad problems. I don't know why they were sticking; none of the notifications are set to sticky by default. I will be releasing a new version soon that will hopefully eliminate these repeated notifications once and for all, and hope that you will give it a try and let me know how it works for you. Thanks! [[User:Lensovet|lensovet]] 02:50, 21 February 2007 (EST)&lt;br /&gt;
::::I can hardly wait for the update. I've considered not using FMenu until the duplicates are fixed, but it's just so darn handy. [[User:Loudestnoise|Loudestnoise]] 12:39, 21 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Integration with Firefox? ==&lt;br /&gt;
&lt;br /&gt;
Great work with this app.  I've been using the Facebook Toolbar for Firefox but I think I like this better.  My question is if there's any way to pick the browser you'd like to use with FMenu.  My main browser is Firefox and I would love for links to open in that instead of Safari.  I didn't see anything in the FMenu/Growl preferences so I'm guessing there's no way to change it from Safari currently.  Keep up the good work.&lt;br /&gt;
:FMenu just uses the default browser set by the system; this preference can be changed from Safari. Open Safari, then open its Preferences. In the General tab, the first item there should be &amp;quot;Default Web Browser:&amp;quot; – simply choose Firefox from that list. Thanks! [[User:Lensovet|lensovet]] 12:35, 22 February 2007 (EST)&lt;br /&gt;
::Awesome.  You would think something like that would be in the system preferences.  Thanks!&lt;br /&gt;
:::It used to be, up until 10.2, when Safari was introduced. After that they got rid of the pref pane. And people think Microsoft is bad ;) [[User:Lensovet|lensovet]] 22:27, 22 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== FMenu and Growl notifications ==&lt;br /&gt;
&lt;br /&gt;
Great app, but a couple of suggestions.&lt;br /&gt;
&lt;br /&gt;
1. It would be nice if you could click on the Growl notifications and be taken to the relevant page, e.g. if my friend updates a status and I click, it goes to her page or if someone posts on the wall, it takes me there.&lt;br /&gt;
&lt;br /&gt;
2. The menu icon should also indicate whether people have posted or not. Perhaps by colour or counter?&lt;br /&gt;
:#Thanks! The first one is definitely something I will be looking into, hopefully soon.&lt;br /&gt;
:#As for the second one, I'm not exactly sure what you mean. What do you mean by &amp;quot;whether people have posted&amp;quot;? Posted what? Wall posts? Please clarify...thanks again! [[User:Lensovet|lensovet]] 14:47, 11 February 2007 (EST)&lt;br /&gt;
Basically, I think the Fmenu icon should have status indications. So if someone posts on your wall, it would be nice to have a number or something appear by or on the icon to let you know.&lt;br /&gt;
:I see, so you want the updates to happen not only through Growl, but also through some change in the icon, correct? This can be set in the preferences for the unread messages, unseen pokes, upcoming events, friend requests; i figured the wall post counter would not be of much use since most people probably have hundreds of posts, but I can definitely add it if you think it will be useful. [[User:Lensovet|lensovet]] 22:26, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Future Features ==&lt;br /&gt;
How about auto updates? I'm pretty sure theres a cocoa plugin which helps with that (Adium, cyberduck and others use it) --[[User:212.85.20.100|212.85.20.100]] 04:14, 14 February 2007 (EST)&lt;br /&gt;
:Yes, it's called Sparkle, but the setup for it is a bit intensive. It will happen eventually though. [[User:Lensovet|lensovet]] 11:55, 14 February 2007 (EST)&lt;br /&gt;
::This is now implemented as of version 3.0[[User:Lensovet|lensove†]] 19:32, 18 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Random Quitting? ==&lt;br /&gt;
&lt;br /&gt;
So during normal usage of my computer I will look up to the menu bar only to see that FMenu is missing. I never quit it, but it just disappears from my menu bar. [[User:Loudestnoise|Loudestnoise]] 20:12, 27 February 2007 (EST)&lt;br /&gt;
:Does quicklaunch remain visible or no? If not, then that means that FMenu is crashing. Otherwise, it could be that just the icon is disappearing. Which is it? thanks... [[User:Lensovet|lensovet]] 23:03, 27 February 2007 (EST)&lt;br /&gt;
::I'm not sure what you mean by quicklaunch remaining visible. The icon just disappears and according to activity monitor nothing named FMenu is running. [[User:Loudestnoise|Loudestnoise]] 01:09, 2 March 2007 (EST)&lt;br /&gt;
:::So yeah, it's crashing. Is it still happening on a regular basis, or did it just happen once? [[User:Lensovet|lensovet]] 01:12, 2 March 2007 (EST)&lt;br /&gt;
::::Sorry for not checking back, I can provide no more details really. It's quite random. I usually don't notice it has  happened until I look up to the menu bar and see that the icon is gone. [[User:Loudestnoise|Loudestnoise]] 23:43, 24 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
This happens to me as well, fairly regularly, about 2/3 times per day. --[[User:82.43.144.131|82.43.144.131]] 13:15, 3 March 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Me too, 10+ times per day! [[User:70.176.17.62|70.176.17.62]] 22:48, 4 March 2007 (EST)&lt;br /&gt;
:Please try the latest release and see if this problem still exists. Thanks! [[User:Lensovet|lensovet]] 22:29, 31 March 2007 (EDT)&lt;br /&gt;
::On all day so far --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
&lt;br /&gt;
This happens to me as well but i have noticed it only does it when returning to sleep. I am interested in helping track it down my email is macman64 at gmail dot com&lt;br /&gt;
&lt;br /&gt;
This happens to me a lot. It will start up and run for a minute or two and then quit (I guess it crashes) is this UB? I'm using a macbook and wondering if there are issues with the intel processor and this software. Thanks so much! If there are any fixes please email me jen.horne06 at gmail dot com THANKS!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This happens to me quite a bit, it looks to me like bad memory management.  I have uploaded my crash logs to http://www.dre.vanderbilt.edu/~wotte/FMenu.crash.log&lt;br /&gt;
:BTW, I will be happy to help try to track this down, if you can provide me with a build with debug on and optimization off, I can probably supply a better stack trace than crashreporter gives.  my email is wotte at dre dot vanderbilt dot edu.&lt;br /&gt;
:Alright, done a bit more digging around.  Spent a few minutes compiling the source, and discovered I didn't need it - I believe I have found the cause.  The last couple lines of the FMenu Log:&lt;br /&gt;
&lt;br /&gt;
::2007-08-24 01:06:06.886 FMenu[1053] getting all events&lt;br /&gt;
::2007-08-24 01:06:10.667 FMenu[1053] Connection failed! Error - lost network connection, URL http://api.facebook.com/restserver.php?method=facebook.events.get&amp;amp;api_key=242feaa6ed4030cd6b1c93b359d53eb4&amp;amp;session_key=40fb3942f7d37dbd678ef260-4702303&amp;amp;call_id=1187935566.885509&amp;amp;v=1.0&amp;amp;format=XML&amp;amp;sig=27392813797a2bbd0e6adece9ef6050c&lt;br /&gt;
::2007-08-24 01:06:12.786 FMenu[1053] getting upcoming events&lt;br /&gt;
&lt;br /&gt;
: so it would appear that you lose the connection, and the next update attempt operates on a null pointer, causing the crash.  Given that my expertise lies in C++ programming, I can't provide a patch, but this should be fairly straightforward to fix.&lt;br /&gt;
&lt;br /&gt;
== Photo comments fiction ==&lt;br /&gt;
&lt;br /&gt;
Occasionally, say every hour or two, a growl thingy pops up saying &amp;quot;You have new photo comments&amp;quot;, when I don't. I appreciate it trying to make me feel wanted, but there is an inevitable let-down when I find out it's been lying to me. Why?? I advise you to teach your program the value of honesty :p --[[User:82.43.144.131|82.43.144.131]] 13:19, 3 March 2007 (EST) PS can you put back the total pokes thing which was in 1.6 i think&lt;br /&gt;
:Two things: what's your update frequency, and when the popup does show up, what is the number of photo comments shown in the menu? Thanks. [[User:Lensovet|lensovet]] 14:35, 3 March 2007 (EST)&lt;br /&gt;
:: Update frequency of 7 seconds, and it always stays at 30 photo comments, but I don't think that's true. --[[User:82.43.144.131|82.43.144.131]] 20:05, 3 March 2007 (EST)&lt;br /&gt;
:::No need to think twice – just click on the menu item and compare it to the counter shown at the top of the page. It might be off by 2 or so. So you're saying that it always says 30, even after the popup notification?&lt;br /&gt;
:::: Hmm, this is odd. I have 30 pictures overall. Facebook says I have 30 picture comments, but in fact i have 20 comments - there is one picture with 10 comments, which is reported twice in the 'My photo comments' bit - strange, no? So your program is reporting what Facebook says, but facebook is wrong. But in answer to your question, yes it always says 30. Oh wait. Ok it just popped up a growl picture comments message now. Now it says I have 103 photo comments. Now it's back to 30. Wha? --[[User:82.43.144.131|82.43.144.131]] 10:46, 4 March 2007 (EST)&lt;br /&gt;
:::::AHA! Thanks. That makes sense – the 103 is actually an error. I'll fix this in the next release, sounds good. [[User:Lensovet|lensovet]] 13:59, 4 March 2007 (EST)&lt;br /&gt;
::::::Cool. could you also put 'total pokes' back in the menu please, and fix the random quitting (If that's possible)??? cheers. Do you want a crash log? or some other kinda log for the random quit? --[[User:82.43.144.131|82.43.144.131]] 17:35, 4 March 2007 (EST)&lt;br /&gt;
:::::::Unfortunately, Facebook has eliminated 'total pokes' functionality a few weeks back (and in fact, the photo comments will cease functioning on March 22 as well). As for random quitting – I'm guessing that this is due to memory leaks which I'm currently trying to resolve, but if you know how to get the crash log, feel free to paste it into [[/crashlog]]. Thanks! [[User:Lensovet|lensovet]] 19:23, 4 March 2007 (EST)&lt;br /&gt;
::::::::Ah right. What I think is the crash log is there now. --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
:The crashes should be fixed in 2.1 – please give it a try and let me know if it's any better! [[User:Lensovet|lensovet]] 22:29, 31 March 2007 (EDT)&lt;br /&gt;
:: Hasn't happened yet! --[[User:82.43.144.131|82.43.144.131]] 16:58, 2 April 2007 (EDT)&lt;br /&gt;
::: Okay I am still getting photo comments messages when I wake the computer from sleep or reboot.&lt;br /&gt;
::::My apologies, this is a known issue in version 2.1; I should have a fix out soon. Sorry about that, I fixed the memory issues but other stuff came back in the process, blame Apple for writing bad Cocoa ... :/ [[User:Lensovet|lensovet]] 23:27, 14 April 2007 (EDT)&lt;br /&gt;
:This should be fixed once and for all in the latest release – please give it a try. [[User:Lensovet|lensovet]] 01:34, 5 July 2007 (EDT)&lt;br /&gt;
:I have version 2.5, and it crashes quite regularly, usually when I am away from my computer (I don't put my computer to sleep very often).  I can forward a crash log if it would be useful - just let me know where to send it.&lt;br /&gt;
&lt;br /&gt;
I have the same problem, it quits every few minutes or so. I'm using a macbook, is this software UB?&lt;br /&gt;
&lt;br /&gt;
I have just begun to have this problem with the latest version. It quits and then refuses to log in again when I relaunch. Also, reinstalling it allowed it to work for about 5 minutes then I noticed it had quit again and wouldn't log in. What's going on?! - Talya (24 Aug 2007)&lt;br /&gt;
&lt;br /&gt;
== login problem ==&lt;br /&gt;
When i launch FMenu and open the Login window, all that shows up is a blank window. I see a load status bar load on the bottom left but nothing shows up. Tried keeping it up for hours but nothing shows up ever.&lt;br /&gt;
&lt;br /&gt;
== Massive update splurge ==&lt;br /&gt;
&lt;br /&gt;
New version is much improved! However, occasionally I get a flood of growl messages going off the bottom of the screen, 2 for what seems to be each of my contacts. i can't remember what they say, i'll try and get a screen cap. --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
: et voilà - http://mickeymoose.pwp.blueyonder.co.uk/notes.jpg --[[User:82.43.144.131|82.43.144.131]] 19:03, 2 April 2007 (EDT)&lt;br /&gt;
::Thanks, I'm going to fix this in the next release (I know exactly why this happens...) [[User:Lensovet|lensovet]] 17:44, 8 April 2007 (EDT)&lt;br /&gt;
:::Hoping to see this get resolved. Started happening to me the other day :-( ~pianomansam &amp;quot;at&amp;quot; yahoo 01:24, 29 May 2007 (EDT)&lt;br /&gt;
::::This should be fixed in the latest release, please let me know if it's fixed. [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Several small problems ==&lt;br /&gt;
&lt;br /&gt;
I keep getting a New Version Available Growl alert. When I select &amp;quot;Force Update Now&amp;quot; I just get the alert again an nothing is updated or downloaded. I have had to turn this notification off.&lt;br /&gt;
&lt;br /&gt;
About FMenu does nothing, either. Finder tells me I have version 2.1.&lt;br /&gt;
&lt;br /&gt;
Menu tells me I have &amp;quot;1 Shares in Inbox&amp;quot;, but my account says otherwise.&lt;br /&gt;
:Sorry about that, that was a slip-up of mine. However, please do download again as there were some changes I made (without releasing a new &amp;quot;version&amp;quot;). Sorry for the confusion... [[User:Lensovet|lensovet]] 00:41, 3 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::I'm having the same &amp;quot;1 Shares in Inbox&amp;quot; issue, redownloaded twice no change. — May 7&lt;br /&gt;
&lt;br /&gt;
:::Ditto for my acount on May 9th 2007. - Snorre Milde&lt;br /&gt;
::::Thanks for drawing my attention to this, I was parsing the data returned from Facebook incorrectly. [http://fmenu.svn.sourceforge.net/viewvc/fmenu/UpdateMethods.mm?r1=40&amp;amp;r2=42 I've fixed this in the code] and should have a new release out relatively soon (once I'm done with finals). [[User:Lensovet|lensovet]] 14:51, 10 May 2007 (EDT)&lt;br /&gt;
::::Both issues should be fixed as of the latest release, please give it a try. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Help from Fmenu screen capture ==&lt;br /&gt;
&lt;br /&gt;
Mr. Borokhov:&lt;br /&gt;
&lt;br /&gt;
I found your program FMenu on MacUpdate and have a question regarding the screen capture graphic provided entitled &amp;quot;Facebox-ss.png.&amp;quot; What is the menubar program indicated by the musical note icon two positions to the right of the Fmenu icon? Is it some kind of iTunes controller? I have been looking for this icon for some time and would appreciate your help.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
Peter Mellis&lt;br /&gt;
&lt;br /&gt;
pedserdoc@mac.com&lt;br /&gt;
:Hi there, it's not an iTunes controller but a plugin for [http://last.fm last.fm] that submits the songs I play to [http://www.last.fm/user/lensovet/ my last.fm account]. You can find it at http://www.last.fm/tools/downloadplugin/?id=11&lt;br /&gt;
&lt;br /&gt;
== FMenu Crashes after login ==&lt;br /&gt;
&lt;br /&gt;
Hi there,&lt;br /&gt;
&lt;br /&gt;
Been using FMenu for a while, it's a great distraction! Now, however, it immediately quits after I log in. Seems to only happen when I log in using my profile, but not with a friend's. Here's what I get in the console. Any help would be appreciated!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;2007-04-11 10:12:06.251 FMenu[22567] Performing full update&lt;br /&gt;
2007-04-11 10:12:06.383 FMenu[22567] got wall&lt;br /&gt;
2007-04-11 10:12:06.931 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;users_getInfo_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot; list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;user&amp;gt;&amp;lt;uid&amp;gt;72600023&amp;lt;/uid&amp;gt;&amp;lt;wall_count&amp;gt;132&amp;lt;/wall_count&amp;gt;&amp;lt;/user&amp;gt;&amp;lt;/users_getInfo_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:07.529 FMenu[22567] got notifications&lt;br /&gt;
2007-04-11 10:12:08.394 FMenu[22567] got all events&lt;br /&gt;
2007-04-11 10:12:08.403 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;notifications_get_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot;&amp;gt;&amp;lt;messages&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;1176214194&amp;lt;/most_recent&amp;gt;&amp;lt;/messages&amp;gt;&amp;lt;pokes&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;0&amp;lt;/most_recent&amp;gt;&amp;lt;/pokes&amp;gt;&amp;lt;shares&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;0&amp;lt;/most_recent&amp;gt;&amp;lt;/shares&amp;gt;&amp;lt;friend_requests list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/friend_requests&amp;gt;&amp;lt;group_invites list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/group_invites&amp;gt;&amp;lt;event_invites list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/event_invites&amp;gt;&amp;lt;/notifications_get_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:09.357 FMenu[22567] got upcoming events&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x485e590 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x441bd20 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4809460 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x3c3f30 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x48ef1f0 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f314 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4418620 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f154 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x48b4d80 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61afc20 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61afc80 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61d24b0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61ea850 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x442d1e0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x442c620 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f144 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4433560 of class NSConcreteMutableData autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x445f4c0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4877310 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x441caa0 of class NSURL autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x3c99b0 of class NSURLRequest autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.378 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4851560 of class NSURLConnection autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.651 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;events_get_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot; list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/events_get_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:10.374 FMenu[22567] got friend profiles&lt;br /&gt;
Apr 11 10:12:10 Ana crashdump[22568]: FMenu crashed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit: this does not happen with version 2.0&lt;br /&gt;
:Hi there, thanks for the feedback! It looks like you might have gotten a bad release – try downloading again and let me know if this still happens...thanks! [[User:Lensovet|lensovet]] 00:16, 12 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
The same thing happens when I try a new version. Have tried to delete preferences as well. As I said, it still only happens when I log in with my username, pochaf at mcmaster dot ca and not any other profile.&lt;br /&gt;
: That's really strange. I know there are issues that need to be fixed in 2.1; maybe fixing them will fix your problem too. Stay tuned and please accept my apologies... [[User:Lensovet|lensovet]] 23:28, 14 April 2007 (EDT)&lt;br /&gt;
::Please give the latest version a try and let me know if the error still occurs. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
i get the same error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ea10d0 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ea7b20 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5071080 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5004110 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e1f890 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x321eb0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cc2930 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f314 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x311210 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f154 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x3dacb0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e24270 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cac5e0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cbc660 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e4a6c0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cca6b0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c6f610 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f144 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c96390 of class NSConcreteMutableData autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c888d0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ca4f10 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c768e0 of class NSURL autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5060840 of class NSURLRequest autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x38d170 of class NSURLConnection autoreleased with no pool in place - just leaking&lt;br /&gt;
Jun 14 00:50:58 Fusion-G5 crashdump[264]: FMenu crashed&lt;br /&gt;
Jun 14 00:50:58 Fusion-G5 crashdump[264]: crash report written to: /Users/plasmicmac/Library/Logs/CrashReporter/FMenu.crash.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== updating issues with the new facebook layout ==&lt;br /&gt;
&lt;br /&gt;
Hello!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems with the launch of the new Facebook layout that I'm not getting updates to FMenu anymore.  No notification of new messages, comments, profile changes, nothing.&lt;br /&gt;
&lt;br /&gt;
Didn't see this here as a documented bug so I wanted to post and see if you knew what was up.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
:As far as I know, FMenu shouldn't be affected by the new layout. Try restarting the program to see if it fixes the problem and let me know. [[User:Lensovet|lensovet]] 23:29, 14 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
http://developers.facebook.com/news.php?blog=1&amp;amp;story=18&lt;br /&gt;
Infinate sessions now availible from Facebook! =)&lt;br /&gt;
:Yes, and they are now implemented as of 2.5! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu quitting on MBP sleep ==&lt;br /&gt;
&lt;br /&gt;
Whenever I sleep my MBP for any length of time, FMenu 2.1 will quit. - johnl1479 13:04, 6 May 2007 (CST)&lt;br /&gt;
:I have a rough idea as to why this is happening and hope to release a fix soon. Thanks! [[User:Lensovet|lensovet]] 03:09, 7 May 2007 (EDT)&lt;br /&gt;
:Please give the latest release a try and let me know if it's any better. Thanks again! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
I have a crash log for FMenu, which keeps crashing when the computer sleeps (or at least thats what I think). How should I send it to you?&lt;br /&gt;
&lt;br /&gt;
== Better handling of loosing internet connection ==&lt;br /&gt;
&lt;br /&gt;
Whenever I disconnect my computer from the internet I get a weird error message. Would like to see this handled better. Screencap to come...&lt;br /&gt;
:Please let me know if this has been resolved in the latest version. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Quitting (safari 3?) ==&lt;br /&gt;
&lt;br /&gt;
I also posted this on the facebook group, but thought you'd check this more often.&lt;br /&gt;
Ever since installing safari 3, fmenu quits a couple of minutes after logging in. the login and checking stuff works fine but then I look up and FMenu is gone... --[[User:82.43.144.131|82.43.144.131]] 06:21, 15 June 2007 (EDT)&lt;br /&gt;
:Please give the latest version a try and let me know if it's gotten any better. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu 2.5 Login Window doesn't show up ==&lt;br /&gt;
&lt;br /&gt;
This is the error that the console shows: &amp;quot;2007-07-05 01:36:45.080 FMenu[8801] Could not gen auth token&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SOLVED: Deleted the preference file for FMenu and it worked.&lt;br /&gt;
&lt;br /&gt;
== Fmenu Greyed out? ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
Just started to use your Fmenu menubar app, its great except that I cannot get it to work now.&lt;br /&gt;
Heres the scenario.&lt;br /&gt;
I added the app at work, and it ran fine. I then installed the app at home, again it worked a treat. After a couple of days I quit the app at my home and on restarting it, it now only displays a grey F logo, going to the login option does nothing except kind of make the menu item flash once. Ok I thought I can live without it at home. &lt;br /&gt;
Now the same situation has happened on my work computer. Grey F Logo and no way to log in.&lt;br /&gt;
I have removed the app, and re-installed but this did not solve the problem. I have looked for a preference file but a search for fmenu only reveals the applicaton.&lt;br /&gt;
Is there a solution ? Is there a pref file I can throw? &lt;br /&gt;
&lt;br /&gt;
Any help will be appreciated. Thanks&lt;br /&gt;
:Hey there, the preference file is actually net.lensovet.FaceMenu.plist, due to the program's older name. Try deleting that to see if the problem is resolved. [[User:Lensovet|lensove†]] 05:08, 11 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::Hi! I've had the same problem as described above and tested to delete the preference file. After this, when opening the login window and logging in, the icon is still grey but the login window is showing my Facbook homepage.. Any solutions..??&lt;br /&gt;
:::Please download the latest version, 3.0, and let me know if this is still a problem...thanks![[User:Lensovet|lensove†]]&lt;br /&gt;
&lt;br /&gt;
== New wall posts (rather than just the number?) ==&lt;br /&gt;
&lt;br /&gt;
I was wondering if there was a way that new wall posts could appear in FMenu. &lt;br /&gt;
&lt;br /&gt;
I know there's no API support for these in the same way that there is for a new message, but perhaps the number of posts you had when you last checked FMenu could be compared with the latest value? I don't know if this is possible, but it would be easier to see 123 posts (1 new) than remembering that you last had 122.&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
-Also, is there any way that only the new wall post # can be incorporated into the number that appears in the menu bar, rather than selecting wall posts and  seeing 1860 (this might be the same as what previous commenter wrote)? This way if you had one new wall post, next to the Facebook logo, a 1 would appear.&lt;br /&gt;
&lt;br /&gt;
== Unsupported Architecture ==&lt;br /&gt;
When trying to update to 3.0 (downloaded from sourceforge via the link on this wiki) I get an error message that &amp;quot;You can't open the application &amp;quot;FMenu 2&amp;quot; because it is not supported on this architecture.&amp;quot;  I'm running on a recent Mac Book Pro.&lt;br /&gt;
&lt;br /&gt;
The error message &amp;amp; quickview icon appearance are here: http://jeffmlr.net/images/error.jpg  http://jeffmlr.net/images/quickview.jpg&lt;br /&gt;
:Hi there, I have no idea why this happens but I did have one other report of this. Please make sure that you delete all other versions of FMenu from your machine, then redownload the file and try to drag it to your applications folder. Also, see if relaunching the Finder or restarting your computer solves the issue...sorry! [[User:Lensovet|lensove†]] 05:41, 6 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu just does not work? ==&lt;br /&gt;
&lt;br /&gt;
I have downloaded FMenu and Growl, but when i double-click on FMenu nothing happens. When I go to my Growl preferences, and go to the applications tab, I can't do anything on it, does that mean that I do not have an application that works with growl on my mac? I have a Macbook with OS X 10.5.3.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu&amp;diff=24238</id>
		<title>Talk:FMenu</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu&amp;diff=24238"/>
		<updated>2011-03-14T04:11:45Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: clean spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{/flash}}&lt;br /&gt;
If you have a bug to report or a suggestion that you want to make, first read what's already on this page, the [[/archive|archives]], and the [[FMenu/FAQ|FAQ]] to see if your question has already been answered, and if not, click the '''+''' at the top of the page (next to the '''edit''' tab) and tell me about it! I will get back to you here and appreciate your feedback.&lt;br /&gt;
&lt;br /&gt;
=Thank you=&lt;br /&gt;
Not a bug report (though mine's been [[#Random_Quitting.3F|disappearing]] too occasionally), but I want to thank you for this fantastic app. Now I can be sure to be distracted by Facebook at any time of day, without even opening my browser! Facebook really will cost me my degree!&lt;br /&gt;
&lt;br /&gt;
Feel free to remove this; I just wanted to say thanks! [http://en.wikipedia.org/wiki/User:Smiler_jerg smiler] 08:16, 11 May 2007 (BST)&lt;br /&gt;
:Thanks for the kind words. I really wish the crashes would stop, but I will integrate infinite sessions into the next release so that at least it won't be necessary to log into the app each time you start it up. [[User:Lensovet|lensovet]] 03:36, 11 May 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=Bug reports &amp;amp; suggestions=&lt;br /&gt;
&lt;br /&gt;
== Future Features ==&lt;br /&gt;
&lt;br /&gt;
Not sure if this is feasible, but it would be fantastic if you could do things through the program, e.g. poke specified people. Or if that wasn't possible, it should be fairly easy to link to the relevant page - the /poke.php? bit makes that easy, right? Just a thought. --[[User:82.43.144.131|82.43.144.131]] 18:48, 12 February 2007 (EST)&lt;br /&gt;
:This is definitely doable. I'm thinking of using keyboard modifiers for each action – for example, pressing option-enter instead of enter to send a message, ctrl-enter to poke, etc. What do you think? [[User:Lensovet|lensovet]] 20:47, 12 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:This is similar to the question above I think, but would it be possible to make the keyboard shortcuts usable without having to click on the menu icon ie. being able to open the quicklaunch panel (which i think is great) --[[User:70.158.150.128|70.158.150.128]] 15:24, 13 February 2007 (EST)&lt;br /&gt;
::I really want this as well, so I will try to get it into the next release. It is definitely doable. [[User:Lensovet|lensovet]] 23:08, 12 February 2007 (EST)&lt;br /&gt;
:::You know what would also be super great, the ability to have the cursor automatically appear inside the QuickLaunch Panel when it is launched, and when you complete a search that the panel would disappear. Then my life would be complete. --[[User:Loudestnoise|Loudestnoise]] 16:51, 15 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Also, possibly a Quicksilver plugin? that would be awesome. --[[User:82.43.144.131|82.43.144.131]] 04:45, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I'd love to see the ability for the app to update our status with what we are currently listening to in iTunes. Not sure if this is technically possible but would be really cool to see implemented! [[User:99.237.4.226|99.237.4.226]] 14:46, 15 July 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
* I would like to be able to choose which notifications I receive.. for example I don't want to see profile updates. If this is already a feature, I can't find it. [--[[User:97.87.111.56|97.87.111.56]] 17:32, 23 July 2008 (EDT)]&lt;br /&gt;
**Choosing which notifications you get is done via the Growl preference pane. You can open it easily from FMenu's preferences.[[User:Lensovet|lensove†]] 00:32, 2 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Updating status ==&lt;br /&gt;
&lt;br /&gt;
It would be cool if you could update your own status using this program.&lt;br /&gt;
:&amp;lt;s&amp;gt;This would indeed be very cool, but unfortunately implementing such functionality is at this time against the Facebook API's [http://developers.facebook.com/tos.php Terms of Service]. You should e-mail them at developers-help@facebook.com to let them know that you want such a feature so that they are aware of the interest. [[User:Lensovet|lensovet]] 16:57, 21 February 2007 (EST)&amp;lt;/s&amp;gt;&lt;br /&gt;
:This is now possible with extended API functions and I will look into implementing it for the next release.[[User:Lensovet|lensove†]] 19:32, 18 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== QuickLaunch Cursor == &lt;br /&gt;
When using the QuickLaunch feature it would be amazing if when you either click on the menu item, or use the keyboard shortcut that the cursor appears within the text box.  Reducing the use of the mouse or trackpad is always a nice thing.  Additionally the ability to launch QuickLaunch without having to click on the FMenu icon would be amazing. If I could set a global OS X shortcut to do this or something. My life would be complete. Or perhaps some kind of quicksilver intergration with the QuickLaunch feature. Oh the possibilities. --[[User:Loudestnoise|Loudestnoise]] 17:14, 2 April 2007 (EDT)&lt;br /&gt;
:Hey there, the text box should now gain focus as soon as the QuickLaunch panel gets focus as of the latest version (2.5). I'm still looking at implementing a system-wide shortcut for getting Quicklaunch to appear, however. Hopefully in the next version :) [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Status Updates with Profile Pictures? ==&lt;br /&gt;
&lt;br /&gt;
So, obviously, Growl shows the FMenu app icon in the notification.  Would it be possible to change that icon (in the Growl notification) to the Facebook profile picture of the person the notification is referring to?&lt;br /&gt;
&lt;br /&gt;
This wouldn't apply in all situations, but it would work amazingly well for status updates.  (Can you tell I'm a Twitteriffic user?)&lt;br /&gt;
&lt;br /&gt;
Also, personally, I don't care much for the &amp;quot;now&amp;quot; that is inserted in the status update messages.  I think it throws off the flow of some updates, since people don't expect it to be there.&lt;br /&gt;
&lt;br /&gt;
But seriously, this is an amazingly great app, and it's head-and-shoulders above the other amateur-ish work that's being done with the Facebook API.  Thanks.&lt;br /&gt;
&lt;br /&gt;
--Thomas Duesing--[[User:138.38.226.204|138.38.226.204]] 22:48, 13 May 2007 (EDT)&lt;br /&gt;
:Thanks for the encouragement! I've just checked in a change that allows you to choose the phrase inserted into status update messages [http://fmenu.svn.sourceforge.net/viewvc/fmenu/GNotifier.mm?r1=47&amp;amp;r2=46&amp;amp;pathrev=47 to be anything you want].&lt;br /&gt;
:As for your other suggestion, it's definitely doable, but I think I'll hold off that for a bit. Currently I'm working on crash-proofing the app (and preventing memory leaks), ignoring bad results coming from the server, and supporting infinite sessions so you have to log in once...forever. I'm also adding upcoming events and groups to Quicklaunch. Look for a new release this week!&lt;br /&gt;
:Thanks again. [[User:Lensovet|lensovet]] 02:03, 21 May 2007 (EDT)&lt;br /&gt;
::The release is out and will let you change the phrase used in the notification as I mentioned. Using photos from friends' profiles is something I will look into for the next version. [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Delayed sleep ==&lt;br /&gt;
&lt;br /&gt;
Hi -- I posted this over on the Facebook FMenu Users page, sorry for the reposting, but it's unclear where bug reports should go...&lt;br /&gt;
&lt;br /&gt;
When I have FMenu running, there is a 27-28 second delay between initiating sleep and when the system actually starts sleeping. The screen goes blank, but the mouse cursor remains on the screen. After the delay it starts sleeping normally. Without FMenu running, sleep is immediate.&lt;br /&gt;
&lt;br /&gt;
No messages in system or user logs. Here is my configuration: PB G4, OS X 10.4.11, FMenu 3.0, Growl 1.1.4&lt;br /&gt;
&lt;br /&gt;
== Bug 3.1 ==&lt;br /&gt;
&lt;br /&gt;
As of 10th June 2010, roughly, launching FMenu 3.1 via login items or through normal launch causes the application to hang.&lt;br /&gt;
The icon is grey and the QuickLaunch bar appears.&lt;br /&gt;
Sometimes this flashes constantly and then dies after 5 minutes or so.&lt;br /&gt;
Activity monitor on Intel says nothing is wrong, but G5 says that application is not responding.&lt;br /&gt;
I have tried deleting the pref and the application and reinstalling, but nothing improves.&lt;br /&gt;
This also has an issue on my G5 Mac.&lt;br /&gt;
&lt;br /&gt;
Was checking little snitch activity, and FMenu is trying to communicate with the api.facebook.com, but then after some minutes the et services stops the connection.&lt;br /&gt;
I have Facebook Notification installed aswell and that is working fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE! A system restart made the login window appear and all works now.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu&amp;diff=6089</id>
		<title>Talk:FMenu</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu&amp;diff=6089"/>
		<updated>2011-01-14T19:35:47Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{/flash}}&lt;br /&gt;
If you have a bug to report or a suggestion that you want to make, first read what's already on this page, the [[/archive|archives]], and the [[FMenu/FAQ|FAQ]] to see if your question has already been answered, and if not, click the '''+''' at the top of the page (next to the '''edit''' tab) and tell me about it! I will get back to you here and appreciate your feedback.&lt;br /&gt;
&lt;br /&gt;
=Thank you=&lt;br /&gt;
Not a bug report (though mine's been [[#Random_Quitting.3F|disappearing]] too occasionally), but I want to thank you for this fantastic app. Now I can be sure to be distracted by Facebook at any time of day, without even opening my browser! Facebook really will cost me my degree!&lt;br /&gt;
&lt;br /&gt;
Feel free to remove this; I just wanted to say thanks! [http://en.wikipedia.org/wiki/User:Smiler_jerg smiler] 08:16, 11 May 2007 (BST)&lt;br /&gt;
:Thanks for the kind words. I really wish the crashes would stop, but I will integrate infinite sessions into the next release so that at least it won't be necessary to log into the app each time you start it up. [[User:Lensovet|lensovet]] 03:36, 11 May 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=Bug reports &amp;amp; suggestions=&lt;br /&gt;
&lt;br /&gt;
Y2HLjX  &amp;lt;a href=&amp;quot;http://oioqkjqxbuly.com/&amp;quot;&amp;gt;oioqkjqxbuly&amp;lt;/a&amp;gt;, [url=http://paucaxwzrduh.com/]paucaxwzrduh[/url], [link=http://yntijountamk.com/]yntijountamk[/link], http://veryuwkhheis.com/&lt;br /&gt;
&lt;br /&gt;
== Updating status ==&lt;br /&gt;
&lt;br /&gt;
It would be cool if you could update your own status using this program.&lt;br /&gt;
:&amp;lt;s&amp;gt;This would indeed be very cool, but unfortunately implementing such functionality is at this time against the Facebook API's [http://developers.facebook.com/tos.php Terms of Service]. You should e-mail them at developers-help@facebook.com to let them know that you want such a feature so that they are aware of the interest. [[User:Lensovet|lensovet]] 16:57, 21 February 2007 (EST)&amp;lt;/s&amp;gt;&lt;br /&gt;
:This is now possible with extended API functions and I will look into implementing it for the next release.[[User:Lensovet|lensove†]] 19:32, 18 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== QuickLaunch Cursor == &lt;br /&gt;
When using the QuickLaunch feature it would be amazing if when you either click on the menu item, or use the keyboard shortcut that the cursor appears within the text box.  Reducing the use of the mouse or trackpad is always a nice thing.  Additionally the ability to launch QuickLaunch without having to click on the FMenu icon would be amazing. If I could set a global OS X shortcut to do this or something. My life would be complete. Or perhaps some kind of quicksilver intergration with the QuickLaunch feature. Oh the possibilities. --[[User:Loudestnoise|Loudestnoise]] 17:14, 2 April 2007 (EDT)&lt;br /&gt;
:Hey there, the text box should now gain focus as soon as the QuickLaunch panel gets focus as of the latest version (2.5). I'm still looking at implementing a system-wide shortcut for getting Quicklaunch to appear, however. Hopefully in the next version :) [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Status Updates with Profile Pictures? ==&lt;br /&gt;
&lt;br /&gt;
So, obviously, Growl shows the FMenu app icon in the notification.  Would it be possible to change that icon (in the Growl notification) to the Facebook profile picture of the person the notification is referring to?&lt;br /&gt;
&lt;br /&gt;
This wouldn't apply in all situations, but it would work amazingly well for status updates.  (Can you tell I'm a Twitteriffic user?)&lt;br /&gt;
&lt;br /&gt;
Also, personally, I don't care much for the &amp;quot;now&amp;quot; that is inserted in the status update messages.  I think it throws off the flow of some updates, since people don't expect it to be there.&lt;br /&gt;
&lt;br /&gt;
But seriously, this is an amazingly great app, and it's head-and-shoulders above the other amateur-ish work that's being done with the Facebook API.  Thanks.&lt;br /&gt;
&lt;br /&gt;
--Thomas Duesing--[[User:138.38.226.204|138.38.226.204]] 22:48, 13 May 2007 (EDT)&lt;br /&gt;
:Thanks for the encouragement! I've just checked in a change that allows you to choose the phrase inserted into status update messages [http://fmenu.svn.sourceforge.net/viewvc/fmenu/GNotifier.mm?r1=47&amp;amp;r2=46&amp;amp;pathrev=47 to be anything you want].&lt;br /&gt;
:As for your other suggestion, it's definitely doable, but I think I'll hold off that for a bit. Currently I'm working on crash-proofing the app (and preventing memory leaks), ignoring bad results coming from the server, and supporting infinite sessions so you have to log in once...forever. I'm also adding upcoming events and groups to Quicklaunch. Look for a new release this week!&lt;br /&gt;
:Thanks again. [[User:Lensovet|lensovet]] 02:03, 21 May 2007 (EDT)&lt;br /&gt;
::The release is out and will let you change the phrase used in the notification as I mentioned. Using photos from friends' profiles is something I will look into for the next version. [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Delayed sleep ==&lt;br /&gt;
&lt;br /&gt;
Hi -- I posted this over on the Facebook FMenu Users page, sorry for the reposting, but it's unclear where bug reports should go...&lt;br /&gt;
&lt;br /&gt;
When I have FMenu running, there is a 27-28 second delay between initiating sleep and when the system actually starts sleeping. The screen goes blank, but the mouse cursor remains on the screen. After the delay it starts sleeping normally. Without FMenu running, sleep is immediate.&lt;br /&gt;
&lt;br /&gt;
No messages in system or user logs. Here is my configuration: PB G4, OS X 10.4.11, FMenu 3.0, Growl 1.1.4&lt;br /&gt;
&lt;br /&gt;
== Bug 3.1 ==&lt;br /&gt;
&lt;br /&gt;
As of 10th June 2010, roughly, launching FMenu 3.1 via login items or through normal launch causes the application to hang.&lt;br /&gt;
The icon is grey and the QuickLaunch bar appears.&lt;br /&gt;
Sometimes this flashes constantly and then dies after 5 minutes or so.&lt;br /&gt;
Activity monitor on Intel says nothing is wrong, but G5 says that application is not responding.&lt;br /&gt;
I have tried deleting the pref and the application and reinstalling, but nothing improves.&lt;br /&gt;
This also has an issue on my G5 Mac.&lt;br /&gt;
&lt;br /&gt;
Was checking little snitch activity, and FMenu is trying to communicate with the api.facebook.com, but then after some minutes the et services stops the connection.&lt;br /&gt;
I have Facebook Notification installed aswell and that is working fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE! A system restart made the login window appear and all works now.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.1&amp;diff=6088</id>
		<title>FMenu/1.1</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.1&amp;diff=6088"/>
		<updated>2011-01-14T19:35:00Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;FMenu/1.1&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FaceMenu-1.1.app.zip?modtime=1167410783&amp;amp;big_mirror=0&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.1&amp;diff=6087</id>
		<title>FMenu/1.1</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.1&amp;diff=6087"/>
		<updated>2011-01-14T19:34:47Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FaceMenu-1.1.app.zip?modtime=1167410783&amp;amp;big_mirror=0&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu/archive&amp;diff=6086</id>
		<title>Talk:FMenu/archive</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu/archive&amp;diff=6086"/>
		<updated>2011-01-14T19:34:42Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;Talk:FMenu/archive&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem with ZIP archive? ==&lt;br /&gt;
&lt;br /&gt;
I can't open the archive—StuffIt Expander 10 stalls approximately 95% through and doesn't start again, and StuffIt Expander 11 returns an error. Is there a place for me to download the app that's not compressed? [[User:129.137.158.156|129.137.158.156]] 16:06, 29 January 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Never mind, it seems I got a bad download from the link on the wiki. It worked the next time I tried it. [[User:129.137.158.156|129.137.158.156]] 16:18, 29 January 2007 (EST)&lt;br /&gt;
::Hm, that's weird, but I strongly discourage anyone from using Stuffit at all. Mac OS X's built-in BOMArchiveHelper.app does the job much better. Happy to hear that you were able to resolve the problem, however.[[User:Lensovet|lensovet]] 21:04, 29 January 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Friends opting out of Terms of Service and Update frequency ==&lt;br /&gt;
&lt;br /&gt;
I have three questions.  First, exactly what effect does it have when a friend unchecks the Terms of Service box?  Will FMenu not even be able to tell me when they poke or message me?  Second, is there any way I can tell which friends have opted out of this?  My third question is how frequent is &amp;quot;too frequent&amp;quot; for the update frequency?  How frequently can I have it update without hitting the request limit?  Thanks!&lt;br /&gt;
:Here we go!&lt;br /&gt;
:#If the friend unchecks this box, they are completely invisible to the program. That means that anything about ''them'' is inaccessible, like their profile and their status. However, when they poke ''you'', this is still accessible, because it is ''your'' information that's retrieved to find out the number of current pokes. So anything they do to you is available, because your info is retrieved, but anything they do to their profiles is not.&lt;br /&gt;
:#Yes, there is. click on the arrow at the right of the text field in the Quicklaunch panel. That lists all the friends that are available to you through the app &amp;lt;s&amp;gt;(in a random order, unfortunately)&amp;lt;/s&amp;gt;, which are alphabetized by first name as of version 1.5.&lt;br /&gt;
:#This is essentially a guess-and-check process. As of version 1.4, it appears that 7 seconds is in fact the most frequent update interval. I personally  had it running with 6 seconds, but that would randomly give me incorrect notifications.&lt;br /&gt;
:Hope that clears things up a bit!&amp;amp;nbsp;[[User:Lensovet|lensovet]] 14:40, 3 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Duplicate notifications ==&lt;br /&gt;
&lt;br /&gt;
I keep getting the same notifications over and over.  I have moved my interval up to 30 seconds thinking it could have been cause by too frequent of an interval but I am continuing to see duplicate messages.  It's a series of 5 or 6 messages, same messages each time.&lt;br /&gt;
&lt;br /&gt;
I have the exact same problem and it is the same two updates from the same exact person. --[[User:70.158.150.128|70.158.150.128]] 15:24, 13 February 2007 (EST)&lt;br /&gt;
:If the update you're getting is &amp;quot;XXX has updated his profile&amp;quot;, that means that they are actually updating their profile that frequently. If it's something else, let me know. Thanks. [[User:Lensovet|lensovet]] 00:48, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
The one that keeps repeating for me is &amp;quot;XXXX wrote a new note&amp;quot; and &amp;quot;XXXX has updated her profile&amp;quot;  It is always the same person and I've looked at their profile and it doesn't look like it's changing to me. --[[User:70.158.150.128|70.158.150.128]] 15:23, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I can verify the above problem.  I have one friend that has consistently showed up as &amp;quot;XXXX has updated her profile&amp;quot; and &amp;quot;XXXX wrote a new note.&amp;quot;  They show side by side, often with any other events from other friends.  Its been showing up nonstop since I downloaded it two days ago.  She only has one note from last year, so she hasn't written a new note every 5 minutes over the last two days.  --[[User:146.151.11.242|146.151.11.242]] 03:24, 14 February 2007 (EST)&lt;br /&gt;
:Wow, I just started getting this myself. Will def look into it. [[User:Lensovet|lensovet]] 11:54, 14 February 2007 (EST)&lt;br /&gt;
:Haha, now I get New note wrote a new note or profile updated his profile. --[[User:65.82.99.3|65.82.99.3]] 12:16, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Just curious, to all who have reported this problem, what happens if you restart the app (or choose Logout from the menu and log back in)? Thanks... [[User:Lensovet|lensovet]] 21:38, 14 February 2007 (EST)&lt;br /&gt;
::Do try that as an interim solution, but I think that I've found the problem. Apparently the information sent by Facebook's API would sometimes contain profiles with a blank &amp;quot;name&amp;quot; field, and I think this is what was setting off the erroneous notifications. I'll be testing a [http://fmenu.svn.sourceforge.net/viewvc/fmenu/UpdateMethods.mm?r1=16&amp;amp;r2=19&amp;amp;sortby=date possible fix] to see if the problem goes away. I should have a new release out this weekend. Stay tuned and thanks for the reports! [[User:Lensovet|lensovet]] 22:28, 14 February 2007 (EST)&lt;br /&gt;
:::Any news on when we can see that update? I'd be glad to test it to see if it resolves the duplicate notification issue [[User:Loudestnoise|Loudestnoise]] 11:56, 24 February 2007 (EST)&lt;br /&gt;
::::I hope to get it out this weekend...however I have a question for you, are you still getting those duplicate updates? After putting in the fix I mentioned above, I still got a few bogus notifications...but since then they've gone away, and I never had them in the first place, so their cause is hard for me to track/figure out. Are you still getting repeated notifications? Thanks! [[User:Lensovet|lensovet]] 14:02, 24 February 2007 (EST)&lt;br /&gt;
:::::I have the newest version and I am experiencing the same problems I reported before (with new note/updated profile notifications appearing tandem, and alongside almost all other legitimate notifications.  It is from the same person all the time, and they have not made any new notes.  --[[User:146.151.11.242|146.151.11.242]] 16:54, 24 February 2007 (EST)&lt;br /&gt;
::::::Please try the newest version, which just came out, and let me know if this is still happening. Thanks! [[User:Lensovet|lensovet]] 03:52, 26 February 2007 (EST)&lt;br /&gt;
:::::::I have just updated to the new version and have yet to receive any duplicate or incorrect notifications. Will keep watching and hoping there are none to come. [[User:Loudestnoise|Loudestnoise]] 15:11, 26 February 2007 (EST)&lt;br /&gt;
::::::::Still happens. I even went ahead and used appzapper to remove all existing pieces of FMenu and install v2.0. Same exact person same exact notices as before. [[User:Loudestnoise|Loudestnoise]] 15:24, 26 February 2007 (EST)&lt;br /&gt;
::::::::Agreed.  I've updated and within 5 minutes have gotten the same person, same problem. --[[User:Shaun|Shaun]] 02:23, 1 March 2007 (EST)&lt;br /&gt;
:::::::::Check to see if that person has two separate facebook accounts. That happened to be the problem with the other user. [[User:Lensovet|lensovet]] 03:32, 1 March 2007 (EST)&lt;br /&gt;
::::::::::Indeed, this seems to have solved it.  Thanks!  --[[User:146.151.11.242|146.151.11.242]] 02:56, 12 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Spinning Beachball ==&lt;br /&gt;
&lt;br /&gt;
During normal use of FMenu sometimes the loading of the menu can take a minute plus during which when you mouse over the menubar and you see the spinning beachball of death. --[[User:Loudestnoise|Loudestnoise]] 12:14, 14 February 2007 (EST)&lt;br /&gt;
:I will look into this, but i'm changing the heading since the app never actually crashes. [[User:Lensovet|lensovet]] 13:49, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Ha, this is true, my apologies --[[User:Loudestnoise|Loudestnoise]] 15:50, 15 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Solution to your authentication problem and one feature request ==&lt;br /&gt;
Use Apple Keychain&lt;br /&gt;
Why don't you use Apple's Keychain for the Username and Password of Facebook. When you start up the FMenu, you can get then the user/pass from the keychain and auto login. The user had to authorize the addition of the data to the keychain so you are perfectly valid in using that. This situation is what the keychain was designed for, just go ahead and use it.&lt;br /&gt;
:That is precisely what I plan on doing, I just need to figure out how to code it. [[User:Lensovet|lensovet]] 17:15, 14 February 2007 (EST)&lt;br /&gt;
Sparkle for updates:&lt;br /&gt;
The feature request I have is that you use the Sparkle framework for updates. That will allow us to not have to worry about updating and you'll get an auto-update engine for free.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Aslam&lt;br /&gt;
:Right, Sparkle requires an RSS feed with release info though, which is why it will take a bit to set up. I do plan on implementing it though. [[User:Lensovet|lensovet]] 17:15, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
-=-&lt;br /&gt;
Follow up:&lt;br /&gt;
&lt;br /&gt;
I'm so glad to hear you're going to be using Keychain. It's great to see developers use the awesome tools that Apple gives us. I'm sure you've already found this recently updated document but just in case, I found info on programming with the Keychain here: http://developer.apple.com/documentation/Security/Reference/keychainservices/keychainServRef.pdf&lt;br /&gt;
&lt;br /&gt;
Secondly, you probably know about this also but I found the easiest way to setup an RSS feed was to use iWeb (part of iLife) and create a Blog page. iWeb automatically creates an RSS feed for you and then you can use that to regularly update the feed. If that doesn't provide enough customization, then tools like PodcastMaker from potionfactory.com or FeedForAll (http://www.feedforall.com/feedforall-mac.htm) or one of the other RSS Feed builder tools that are available for OSX might be helpful.&lt;br /&gt;
&lt;br /&gt;
== FMenu Going Nuts ==&lt;br /&gt;
&lt;br /&gt;
A couple of times, I have had FMenu go nuts and start giving me notifications about all my friends, the same three or four notifications (new note, updated status, etc.), even though they had done none of the above. One time, it happened right when I plugged my MacBook into an external monitor. This went on ''ad infinitum'', repeating notifications. The notifications stickied, and even though I turned both FMenu and Growl off, they kept coming. It bogged my system down so much (and kept notifying) that I had to do a hard shut-down of the MacBook. I've had FMenu disabled since. --Carl Peterson&lt;br /&gt;
:I'm sorry to hear that you had such bad problems. I don't know why they were sticking; none of the notifications are set to sticky by default. I will be releasing a new version soon that will hopefully eliminate these repeated notifications once and for all, and hope that you will give it a try and let me know how it works for you. Thanks! [[User:Lensovet|lensovet]] 02:50, 21 February 2007 (EST)&lt;br /&gt;
::::I can hardly wait for the update. I've considered not using FMenu until the duplicates are fixed, but it's just so darn handy. [[User:Loudestnoise|Loudestnoise]] 12:39, 21 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Integration with Firefox? ==&lt;br /&gt;
&lt;br /&gt;
Great work with this app.  I've been using the Facebook Toolbar for Firefox but I think I like this better.  My question is if there's any way to pick the browser you'd like to use with FMenu.  My main browser is Firefox and I would love for links to open in that instead of Safari.  I didn't see anything in the FMenu/Growl preferences so I'm guessing there's no way to change it from Safari currently.  Keep up the good work.&lt;br /&gt;
:FMenu just uses the default browser set by the system; this preference can be changed from Safari. Open Safari, then open its Preferences. In the General tab, the first item there should be &amp;quot;Default Web Browser:&amp;quot; – simply choose Firefox from that list. Thanks! [[User:Lensovet|lensovet]] 12:35, 22 February 2007 (EST)&lt;br /&gt;
::Awesome.  You would think something like that would be in the system preferences.  Thanks!&lt;br /&gt;
:::It used to be, up until 10.2, when Safari was introduced. After that they got rid of the pref pane. And people think Microsoft is bad ;) [[User:Lensovet|lensovet]] 22:27, 22 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== FMenu and Growl notifications ==&lt;br /&gt;
&lt;br /&gt;
Great app, but a couple of suggestions.&lt;br /&gt;
&lt;br /&gt;
1. It would be nice if you could click on the Growl notifications and be taken to the relevant page, e.g. if my friend updates a status and I click, it goes to her page or if someone posts on the wall, it takes me there.&lt;br /&gt;
&lt;br /&gt;
2. The menu icon should also indicate whether people have posted or not. Perhaps by colour or counter?&lt;br /&gt;
:#Thanks! The first one is definitely something I will be looking into, hopefully soon.&lt;br /&gt;
:#As for the second one, I'm not exactly sure what you mean. What do you mean by &amp;quot;whether people have posted&amp;quot;? Posted what? Wall posts? Please clarify...thanks again! [[User:Lensovet|lensovet]] 14:47, 11 February 2007 (EST)&lt;br /&gt;
Basically, I think the Fmenu icon should have status indications. So if someone posts on your wall, it would be nice to have a number or something appear by or on the icon to let you know.&lt;br /&gt;
:I see, so you want the updates to happen not only through Growl, but also through some change in the icon, correct? This can be set in the preferences for the unread messages, unseen pokes, upcoming events, friend requests; i figured the wall post counter would not be of much use since most people probably have hundreds of posts, but I can definitely add it if you think it will be useful. [[User:Lensovet|lensovet]] 22:26, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Future Features ==&lt;br /&gt;
How about auto updates? I'm pretty sure theres a cocoa plugin which helps with that (Adium, cyberduck and others use it) --[[User:212.85.20.100|212.85.20.100]] 04:14, 14 February 2007 (EST)&lt;br /&gt;
:Yes, it's called Sparkle, but the setup for it is a bit intensive. It will happen eventually though. [[User:Lensovet|lensovet]] 11:55, 14 February 2007 (EST)&lt;br /&gt;
::This is now implemented as of version 3.0[[User:Lensovet|lensove†]] 19:32, 18 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Random Quitting? ==&lt;br /&gt;
&lt;br /&gt;
So during normal usage of my computer I will look up to the menu bar only to see that FMenu is missing. I never quit it, but it just disappears from my menu bar. [[User:Loudestnoise|Loudestnoise]] 20:12, 27 February 2007 (EST)&lt;br /&gt;
:Does quicklaunch remain visible or no? If not, then that means that FMenu is crashing. Otherwise, it could be that just the icon is disappearing. Which is it? thanks... [[User:Lensovet|lensovet]] 23:03, 27 February 2007 (EST)&lt;br /&gt;
::I'm not sure what you mean by quicklaunch remaining visible. The icon just disappears and according to activity monitor nothing named FMenu is running. [[User:Loudestnoise|Loudestnoise]] 01:09, 2 March 2007 (EST)&lt;br /&gt;
:::So yeah, it's crashing. Is it still happening on a regular basis, or did it just happen once? [[User:Lensovet|lensovet]] 01:12, 2 March 2007 (EST)&lt;br /&gt;
::::Sorry for not checking back, I can provide no more details really. It's quite random. I usually don't notice it has  happened until I look up to the menu bar and see that the icon is gone. [[User:Loudestnoise|Loudestnoise]] 23:43, 24 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
This happens to me as well, fairly regularly, about 2/3 times per day. --[[User:82.43.144.131|82.43.144.131]] 13:15, 3 March 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Me too, 10+ times per day! [[User:70.176.17.62|70.176.17.62]] 22:48, 4 March 2007 (EST)&lt;br /&gt;
:Please try the latest release and see if this problem still exists. Thanks! [[User:Lensovet|lensovet]] 22:29, 31 March 2007 (EDT)&lt;br /&gt;
::On all day so far --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
&lt;br /&gt;
This happens to me as well but i have noticed it only does it when returning to sleep. I am interested in helping track it down my email is macman64 at gmail dot com&lt;br /&gt;
&lt;br /&gt;
This happens to me a lot. It will start up and run for a minute or two and then quit (I guess it crashes) is this UB? I'm using a macbook and wondering if there are issues with the intel processor and this software. Thanks so much! If there are any fixes please email me jen.horne06 at gmail dot com THANKS!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This happens to me quite a bit, it looks to me like bad memory management.  I have uploaded my crash logs to http://www.dre.vanderbilt.edu/~wotte/FMenu.crash.log&lt;br /&gt;
:BTW, I will be happy to help try to track this down, if you can provide me with a build with debug on and optimization off, I can probably supply a better stack trace than crashreporter gives.  my email is wotte at dre dot vanderbilt dot edu.&lt;br /&gt;
:Alright, done a bit more digging around.  Spent a few minutes compiling the source, and discovered I didn't need it - I believe I have found the cause.  The last couple lines of the FMenu Log:&lt;br /&gt;
&lt;br /&gt;
::2007-08-24 01:06:06.886 FMenu[1053] getting all events&lt;br /&gt;
::2007-08-24 01:06:10.667 FMenu[1053] Connection failed! Error - lost network connection, URL http://api.facebook.com/restserver.php?method=facebook.events.get&amp;amp;api_key=242feaa6ed4030cd6b1c93b359d53eb4&amp;amp;session_key=40fb3942f7d37dbd678ef260-4702303&amp;amp;call_id=1187935566.885509&amp;amp;v=1.0&amp;amp;format=XML&amp;amp;sig=27392813797a2bbd0e6adece9ef6050c&lt;br /&gt;
::2007-08-24 01:06:12.786 FMenu[1053] getting upcoming events&lt;br /&gt;
&lt;br /&gt;
: so it would appear that you lose the connection, and the next update attempt operates on a null pointer, causing the crash.  Given that my expertise lies in C++ programming, I can't provide a patch, but this should be fairly straightforward to fix.&lt;br /&gt;
&lt;br /&gt;
== Photo comments fiction ==&lt;br /&gt;
&lt;br /&gt;
Occasionally, say every hour or two, a growl thingy pops up saying &amp;quot;You have new photo comments&amp;quot;, when I don't. I appreciate it trying to make me feel wanted, but there is an inevitable let-down when I find out it's been lying to me. Why?? I advise you to teach your program the value of honesty :p --[[User:82.43.144.131|82.43.144.131]] 13:19, 3 March 2007 (EST) PS can you put back the total pokes thing which was in 1.6 i think&lt;br /&gt;
:Two things: what's your update frequency, and when the popup does show up, what is the number of photo comments shown in the menu? Thanks. [[User:Lensovet|lensovet]] 14:35, 3 March 2007 (EST)&lt;br /&gt;
:: Update frequency of 7 seconds, and it always stays at 30 photo comments, but I don't think that's true. --[[User:82.43.144.131|82.43.144.131]] 20:05, 3 March 2007 (EST)&lt;br /&gt;
:::No need to think twice – just click on the menu item and compare it to the counter shown at the top of the page. It might be off by 2 or so. So you're saying that it always says 30, even after the popup notification?&lt;br /&gt;
:::: Hmm, this is odd. I have 30 pictures overall. Facebook says I have 30 picture comments, but in fact i have 20 comments - there is one picture with 10 comments, which is reported twice in the 'My photo comments' bit - strange, no? So your program is reporting what Facebook says, but facebook is wrong. But in answer to your question, yes it always says 30. Oh wait. Ok it just popped up a growl picture comments message now. Now it says I have 103 photo comments. Now it's back to 30. Wha? --[[User:82.43.144.131|82.43.144.131]] 10:46, 4 March 2007 (EST)&lt;br /&gt;
:::::AHA! Thanks. That makes sense – the 103 is actually an error. I'll fix this in the next release, sounds good. [[User:Lensovet|lensovet]] 13:59, 4 March 2007 (EST)&lt;br /&gt;
::::::Cool. could you also put 'total pokes' back in the menu please, and fix the random quitting (If that's possible)??? cheers. Do you want a crash log? or some other kinda log for the random quit? --[[User:82.43.144.131|82.43.144.131]] 17:35, 4 March 2007 (EST)&lt;br /&gt;
:::::::Unfortunately, Facebook has eliminated 'total pokes' functionality a few weeks back (and in fact, the photo comments will cease functioning on March 22 as well). As for random quitting – I'm guessing that this is due to memory leaks which I'm currently trying to resolve, but if you know how to get the crash log, feel free to paste it into [[/crashlog]]. Thanks! [[User:Lensovet|lensovet]] 19:23, 4 March 2007 (EST)&lt;br /&gt;
::::::::Ah right. What I think is the crash log is there now. --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
:The crashes should be fixed in 2.1 – please give it a try and let me know if it's any better! [[User:Lensovet|lensovet]] 22:29, 31 March 2007 (EDT)&lt;br /&gt;
:: Hasn't happened yet! --[[User:82.43.144.131|82.43.144.131]] 16:58, 2 April 2007 (EDT)&lt;br /&gt;
::: Okay I am still getting photo comments messages when I wake the computer from sleep or reboot.&lt;br /&gt;
::::My apologies, this is a known issue in version 2.1; I should have a fix out soon. Sorry about that, I fixed the memory issues but other stuff came back in the process, blame Apple for writing bad Cocoa ... :/ [[User:Lensovet|lensovet]] 23:27, 14 April 2007 (EDT)&lt;br /&gt;
:This should be fixed once and for all in the latest release – please give it a try. [[User:Lensovet|lensovet]] 01:34, 5 July 2007 (EDT)&lt;br /&gt;
:I have version 2.5, and it crashes quite regularly, usually when I am away from my computer (I don't put my computer to sleep very often).  I can forward a crash log if it would be useful - just let me know where to send it.&lt;br /&gt;
&lt;br /&gt;
I have the same problem, it quits every few minutes or so. I'm using a macbook, is this software UB?&lt;br /&gt;
&lt;br /&gt;
I have just begun to have this problem with the latest version. It quits and then refuses to log in again when I relaunch. Also, reinstalling it allowed it to work for about 5 minutes then I noticed it had quit again and wouldn't log in. What's going on?! - Talya (24 Aug 2007)&lt;br /&gt;
&lt;br /&gt;
== login problem ==&lt;br /&gt;
When i launch FMenu and open the Login window, all that shows up is a blank window. I see a load status bar load on the bottom left but nothing shows up. Tried keeping it up for hours but nothing shows up ever.&lt;br /&gt;
&lt;br /&gt;
== Massive update splurge ==&lt;br /&gt;
&lt;br /&gt;
New version is much improved! However, occasionally I get a flood of growl messages going off the bottom of the screen, 2 for what seems to be each of my contacts. i can't remember what they say, i'll try and get a screen cap. --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
: et voilà - http://mickeymoose.pwp.blueyonder.co.uk/notes.jpg --[[User:82.43.144.131|82.43.144.131]] 19:03, 2 April 2007 (EDT)&lt;br /&gt;
::Thanks, I'm going to fix this in the next release (I know exactly why this happens...) [[User:Lensovet|lensovet]] 17:44, 8 April 2007 (EDT)&lt;br /&gt;
:::Hoping to see this get resolved. Started happening to me the other day :-( ~pianomansam &amp;quot;at&amp;quot; yahoo 01:24, 29 May 2007 (EDT)&lt;br /&gt;
::::This should be fixed in the latest release, please let me know if it's fixed. [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Several small problems ==&lt;br /&gt;
&lt;br /&gt;
I keep getting a New Version Available Growl alert. When I select &amp;quot;Force Update Now&amp;quot; I just get the alert again an nothing is updated or downloaded. I have had to turn this notification off.&lt;br /&gt;
&lt;br /&gt;
About FMenu does nothing, either. Finder tells me I have version 2.1.&lt;br /&gt;
&lt;br /&gt;
Menu tells me I have &amp;quot;1 Shares in Inbox&amp;quot;, but my account says otherwise.&lt;br /&gt;
:Sorry about that, that was a slip-up of mine. However, please do download again as there were some changes I made (without releasing a new &amp;quot;version&amp;quot;). Sorry for the confusion... [[User:Lensovet|lensovet]] 00:41, 3 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::I'm having the same &amp;quot;1 Shares in Inbox&amp;quot; issue, redownloaded twice no change. — May 7&lt;br /&gt;
&lt;br /&gt;
:::Ditto for my acount on May 9th 2007. - Snorre Milde&lt;br /&gt;
::::Thanks for drawing my attention to this, I was parsing the data returned from Facebook incorrectly. [http://fmenu.svn.sourceforge.net/viewvc/fmenu/UpdateMethods.mm?r1=40&amp;amp;r2=42 I've fixed this in the code] and should have a new release out relatively soon (once I'm done with finals). [[User:Lensovet|lensovet]] 14:51, 10 May 2007 (EDT)&lt;br /&gt;
::::Both issues should be fixed as of the latest release, please give it a try. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Help from Fmenu screen capture ==&lt;br /&gt;
&lt;br /&gt;
Mr. Borokhov:&lt;br /&gt;
&lt;br /&gt;
I found your program FMenu on MacUpdate and have a question regarding the screen capture graphic provided entitled &amp;quot;Facebox-ss.png.&amp;quot; What is the menubar program indicated by the musical note icon two positions to the right of the Fmenu icon? Is it some kind of iTunes controller? I have been looking for this icon for some time and would appreciate your help.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
Peter Mellis&lt;br /&gt;
&lt;br /&gt;
pedserdoc@mac.com&lt;br /&gt;
:Hi there, it's not an iTunes controller but a plugin for [http://last.fm last.fm] that submits the songs I play to [http://www.last.fm/user/lensovet/ my last.fm account]. You can find it at http://www.last.fm/tools/downloadplugin/?id=11&lt;br /&gt;
&lt;br /&gt;
== FMenu Crashes after login ==&lt;br /&gt;
&lt;br /&gt;
Hi there,&lt;br /&gt;
&lt;br /&gt;
Been using FMenu for a while, it's a great distraction! Now, however, it immediately quits after I log in. Seems to only happen when I log in using my profile, but not with a friend's. Here's what I get in the console. Any help would be appreciated!&lt;br /&gt;
&lt;br /&gt;
2007-04-11 10:12:06.251 FMenu[22567] Performing full update&lt;br /&gt;
2007-04-11 10:12:06.383 FMenu[22567] got wall&lt;br /&gt;
2007-04-11 10:12:06.931 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;users_getInfo_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot; list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;user&amp;gt;&amp;lt;uid&amp;gt;72600023&amp;lt;/uid&amp;gt;&amp;lt;wall_count&amp;gt;132&amp;lt;/wall_count&amp;gt;&amp;lt;/user&amp;gt;&amp;lt;/users_getInfo_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:07.529 FMenu[22567] got notifications&lt;br /&gt;
2007-04-11 10:12:08.394 FMenu[22567] got all events&lt;br /&gt;
2007-04-11 10:12:08.403 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;notifications_get_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot;&amp;gt;&amp;lt;messages&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;1176214194&amp;lt;/most_recent&amp;gt;&amp;lt;/messages&amp;gt;&amp;lt;pokes&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;0&amp;lt;/most_recent&amp;gt;&amp;lt;/pokes&amp;gt;&amp;lt;shares&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;0&amp;lt;/most_recent&amp;gt;&amp;lt;/shares&amp;gt;&amp;lt;friend_requests list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/friend_requests&amp;gt;&amp;lt;group_invites list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/group_invites&amp;gt;&amp;lt;event_invites list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/event_invites&amp;gt;&amp;lt;/notifications_get_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:09.357 FMenu[22567] got upcoming events&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x485e590 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x441bd20 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4809460 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x3c3f30 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x48ef1f0 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f314 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4418620 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f154 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x48b4d80 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61afc20 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61afc80 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61d24b0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61ea850 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x442d1e0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x442c620 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f144 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4433560 of class NSConcreteMutableData autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x445f4c0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4877310 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x441caa0 of class NSURL autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x3c99b0 of class NSURLRequest autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.378 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4851560 of class NSURLConnection autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.651 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;events_get_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot; list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/events_get_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:10.374 FMenu[22567] got friend profiles&lt;br /&gt;
Apr 11 10:12:10 Ana crashdump[22568]: FMenu crashed&lt;br /&gt;
&lt;br /&gt;
Edit: this does not happen with version 2.0&lt;br /&gt;
:Hi there, thanks for the feedback! It looks like you might have gotten a bad release – try downloading again and let me know if this still happens...thanks! [[User:Lensovet|lensovet]] 00:16, 12 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
The same thing happens when I try a new version. Have tried to delete preferences as well. As I said, it still only happens when I log in with my username, pochaf at mcmaster dot ca and not any other profile.&lt;br /&gt;
: That's really strange. I know there are issues that need to be fixed in 2.1; maybe fixing them will fix your problem too. Stay tuned and please accept my apologies... [[User:Lensovet|lensovet]] 23:28, 14 April 2007 (EDT)&lt;br /&gt;
::Please give the latest version a try and let me know if the error still occurs. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
i get the same error:&lt;br /&gt;
&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ea10d0 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ea7b20 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5071080 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5004110 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e1f890 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x321eb0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cc2930 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f314 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x311210 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f154 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x3dacb0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e24270 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cac5e0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cbc660 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e4a6c0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cca6b0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c6f610 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f144 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c96390 of class NSConcreteMutableData autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c888d0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ca4f10 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c768e0 of class NSURL autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5060840 of class NSURLRequest autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x38d170 of class NSURLConnection autoreleased with no pool in place - just leaking&lt;br /&gt;
Jun 14 00:50:58 Fusion-G5 crashdump[264]: FMenu crashed&lt;br /&gt;
Jun 14 00:50:58 Fusion-G5 crashdump[264]: crash report written to: /Users/plasmicmac/Library/Logs/CrashReporter/FMenu.crash.log&lt;br /&gt;
&lt;br /&gt;
== updating issues with the new facebook layout ==&lt;br /&gt;
&lt;br /&gt;
Hello!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems with the launch of the new Facebook layout that I'm not getting updates to FMenu anymore.  No notification of new messages, comments, profile changes, nothing.&lt;br /&gt;
&lt;br /&gt;
Didn't see this here as a documented bug so I wanted to post and see if you knew what was up.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
:As far as I know, FMenu shouldn't be affected by the new layout. Try restarting the program to see if it fixes the problem and let me know. [[User:Lensovet|lensovet]] 23:29, 14 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
http://developers.facebook.com/news.php?blog=1&amp;amp;story=18&lt;br /&gt;
Infinate sessions now availible from Facebook! =)&lt;br /&gt;
:Yes, and they are now implemented as of 2.5! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu quitting on MBP sleep ==&lt;br /&gt;
&lt;br /&gt;
Whenever I sleep my MBP for any length of time, FMenu 2.1 will quit. - johnl1479 13:04, 6 May 2007 (CST)&lt;br /&gt;
:I have a rough idea as to why this is happening and hope to release a fix soon. Thanks! [[User:Lensovet|lensovet]] 03:09, 7 May 2007 (EDT)&lt;br /&gt;
:Please give the latest release a try and let me know if it's any better. Thanks again! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
I have a crash log for FMenu, which keeps crashing when the computer sleeps (or at least thats what I think). How should I send it to you?&lt;br /&gt;
&lt;br /&gt;
== Better handling of loosing internet connection ==&lt;br /&gt;
&lt;br /&gt;
Whenever I disconnect my computer from the internet I get a weird error message. Would like to see this handled better. Screencap to come...&lt;br /&gt;
:Please let me know if this has been resolved in the latest version. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Quitting (safari 3?) ==&lt;br /&gt;
&lt;br /&gt;
I also posted this on the facebook group, but thought you'd check this more often.&lt;br /&gt;
Ever since installing safari 3, fmenu quits a couple of minutes after logging in. the login and checking stuff works fine but then I look up and FMenu is gone... --[[User:82.43.144.131|82.43.144.131]] 06:21, 15 June 2007 (EDT)&lt;br /&gt;
:Please give the latest version a try and let me know if it's gotten any better. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu 2.5 Login Window doesn't show up ==&lt;br /&gt;
&lt;br /&gt;
This is the error that the console shows: &amp;quot;2007-07-05 01:36:45.080 FMenu[8801] Could not gen auth token&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SOLVED: Deleted the preference file for FMenu and it worked.&lt;br /&gt;
&lt;br /&gt;
== Fmenu Greyed out? ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
Just started to use your Fmenu menubar app, its great except that I cannot get it to work now.&lt;br /&gt;
Heres the scenario.&lt;br /&gt;
I added the app at work, and it ran fine. I then installed the app at home, again it worked a treat. After a couple of days I quit the app at my home and on restarting it, it now only displays a grey F logo, going to the login option does nothing except kind of make the menu item flash once. Ok I thought I can live without it at home. &lt;br /&gt;
Now the same situation has happened on my work computer. Grey F Logo and no way to log in.&lt;br /&gt;
I have removed the app, and re-installed but this did not solve the problem. I have looked for a preference file but a search for fmenu only reveals the applicaton.&lt;br /&gt;
Is there a solution ? Is there a pref file I can throw? &lt;br /&gt;
&lt;br /&gt;
Any help will be appreciated. Thanks&lt;br /&gt;
:Hey there, the preference file is actually net.lensovet.FaceMenu.plist, due to the program's older name. Try deleting that to see if the problem is resolved. [[User:Lensovet|lensove†]] 05:08, 11 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::Hi! I've had the same problem as described above and tested to delete the preference file. After this, when opening the login window and logging in, the icon is still grey but the login window is showing my Facbook homepage.. Any solutions..??&lt;br /&gt;
:::Please download the latest version, 3.0, and let me know if this is still a problem...thanks![[User:Lensovet|lensove†]]&lt;br /&gt;
&lt;br /&gt;
== New wall posts (rather than just the number?) ==&lt;br /&gt;
&lt;br /&gt;
I was wondering if there was a way that new wall posts could appear in FMenu. &lt;br /&gt;
&lt;br /&gt;
I know there's no API support for these in the same way that there is for a new message, but perhaps the number of posts you had when you last checked FMenu could be compared with the latest value? I don't know if this is possible, but it would be easier to see 123 posts (1 new) than remembering that you last had 122.&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
-Also, is there any way that only the new wall post # can be incorporated into the number that appears in the menu bar, rather than selecting wall posts and  seeing 1860 (this might be the same as what previous commenter wrote)? This way if you had one new wall post, next to the Facebook logo, a 1 would appear.&lt;br /&gt;
&lt;br /&gt;
== Unsupported Architecture ==&lt;br /&gt;
When trying to update to 3.0 (downloaded from sourceforge via the link on this wiki) I get an error message that &amp;quot;You can't open the application &amp;quot;FMenu 2&amp;quot; because it is not supported on this architecture.&amp;quot;  I'm running on a recent Mac Book Pro.&lt;br /&gt;
&lt;br /&gt;
The error message &amp;amp; quickview icon appearance are here: http://jeffmlr.net/images/error.jpg  http://jeffmlr.net/images/quickview.jpg&lt;br /&gt;
:Hi there, I have no idea why this happens but I did have one other report of this. Please make sure that you delete all other versions of FMenu from your machine, then redownload the file and try to drag it to your applications folder. Also, see if relaunching the Finder or restarting your computer solves the issue...sorry! [[User:Lensovet|lensove†]] 05:41, 6 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu just does not work? ==&lt;br /&gt;
&lt;br /&gt;
I have downloaded FMenu and Growl, but when i double-click on FMenu nothing happens. When I go to my Growl preferences, and go to the applications tab, I can't do anything on it, does that mean that I do not have an application that works with growl on my mac? I have a Macbook with OS X 10.5.3.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Template:Code&amp;diff=6085</id>
		<title>Template:Code</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Template:Code&amp;diff=6085"/>
		<updated>2011-01-14T19:34:31Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;Template:Code&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&amp;lt;div style=&amp;quot;background: #ececec; font-style: italic;&amp;quot;&amp;gt;This page contains computer code. Unlike all articles on the '''lensowiki''', which are released under the [[GFDL]], this code is released under the [[GPL]].&amp;lt;p&amp;gt;Copyright 2006, 2007 Paul Borokhov. All rights reserved.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;This code is free software; you can redistribute it and/or modify it under the terms of the [[GNU General Public License]] [http://www.gnu.org/licenses/gpl.html as published] by the [http://www.fsf.org/ Free Software Foundation]; either version 2 of the License, or (at your option) any later version.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;The code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu/archive&amp;diff=6084</id>
		<title>Talk:FMenu/archive</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu/archive&amp;diff=6084"/>
		<updated>2011-01-14T19:34:20Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem with ZIP archive? ==&lt;br /&gt;
&lt;br /&gt;
I can't open the archive—StuffIt Expander 10 stalls approximately 95% through and doesn't start again, and StuffIt Expander 11 returns an error. Is there a place for me to download the app that's not compressed? [[User:129.137.158.156|129.137.158.156]] 16:06, 29 January 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Never mind, it seems I got a bad download from the link on the wiki. It worked the next time I tried it. [[User:129.137.158.156|129.137.158.156]] 16:18, 29 January 2007 (EST)&lt;br /&gt;
::Hm, that's weird, but I strongly discourage anyone from using Stuffit at all. Mac OS X's built-in BOMArchiveHelper.app does the job much better. Happy to hear that you were able to resolve the problem, however.[[User:Lensovet|lensovet]] 21:04, 29 January 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Friends opting out of Terms of Service and Update frequency ==&lt;br /&gt;
&lt;br /&gt;
I have three questions.  First, exactly what effect does it have when a friend unchecks the Terms of Service box?  Will FMenu not even be able to tell me when they poke or message me?  Second, is there any way I can tell which friends have opted out of this?  My third question is how frequent is &amp;quot;too frequent&amp;quot; for the update frequency?  How frequently can I have it update without hitting the request limit?  Thanks!&lt;br /&gt;
:Here we go!&lt;br /&gt;
:#If the friend unchecks this box, they are completely invisible to the program. That means that anything about ''them'' is inaccessible, like their profile and their status. However, when they poke ''you'', this is still accessible, because it is ''your'' information that's retrieved to find out the number of current pokes. So anything they do to you is available, because your info is retrieved, but anything they do to their profiles is not.&lt;br /&gt;
:#Yes, there is. click on the arrow at the right of the text field in the Quicklaunch panel. That lists all the friends that are available to you through the app &amp;lt;s&amp;gt;(in a random order, unfortunately)&amp;lt;/s&amp;gt;, which are alphabetized by first name as of version 1.5.&lt;br /&gt;
:#This is essentially a guess-and-check process. As of version 1.4, it appears that 7 seconds is in fact the most frequent update interval. I personally  had it running with 6 seconds, but that would randomly give me incorrect notifications.&lt;br /&gt;
:Hope that clears things up a bit!&amp;amp;nbsp;[[User:Lensovet|lensovet]] 14:40, 3 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Duplicate notifications ==&lt;br /&gt;
&lt;br /&gt;
I keep getting the same notifications over and over.  I have moved my interval up to 30 seconds thinking it could have been cause by too frequent of an interval but I am continuing to see duplicate messages.  It's a series of 5 or 6 messages, same messages each time.&lt;br /&gt;
&lt;br /&gt;
I have the exact same problem and it is the same two updates from the same exact person. --[[User:70.158.150.128|70.158.150.128]] 15:24, 13 February 2007 (EST)&lt;br /&gt;
:If the update you're getting is &amp;quot;XXX has updated his profile&amp;quot;, that means that they are actually updating their profile that frequently. If it's something else, let me know. Thanks. [[User:Lensovet|lensovet]] 00:48, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
The one that keeps repeating for me is &amp;quot;XXXX wrote a new note&amp;quot; and &amp;quot;XXXX has updated her profile&amp;quot;  It is always the same person and I've looked at their profile and it doesn't look like it's changing to me. --[[User:70.158.150.128|70.158.150.128]] 15:23, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I can verify the above problem.  I have one friend that has consistently showed up as &amp;quot;XXXX has updated her profile&amp;quot; and &amp;quot;XXXX wrote a new note.&amp;quot;  They show side by side, often with any other events from other friends.  Its been showing up nonstop since I downloaded it two days ago.  She only has one note from last year, so she hasn't written a new note every 5 minutes over the last two days.  --[[User:146.151.11.242|146.151.11.242]] 03:24, 14 February 2007 (EST)&lt;br /&gt;
:Wow, I just started getting this myself. Will def look into it. [[User:Lensovet|lensovet]] 11:54, 14 February 2007 (EST)&lt;br /&gt;
:Haha, now I get New note wrote a new note or profile updated his profile. --[[User:65.82.99.3|65.82.99.3]] 12:16, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Just curious, to all who have reported this problem, what happens if you restart the app (or choose Logout from the menu and log back in)? Thanks... [[User:Lensovet|lensovet]] 21:38, 14 February 2007 (EST)&lt;br /&gt;
::Do try that as an interim solution, but I think that I've found the problem. Apparently the information sent by Facebook's API would sometimes contain profiles with a blank &amp;quot;name&amp;quot; field, and I think this is what was setting off the erroneous notifications. I'll be testing a [http://fmenu.svn.sourceforge.net/viewvc/fmenu/UpdateMethods.mm?r1=16&amp;amp;r2=19&amp;amp;sortby=date possible fix] to see if the problem goes away. I should have a new release out this weekend. Stay tuned and thanks for the reports! [[User:Lensovet|lensovet]] 22:28, 14 February 2007 (EST)&lt;br /&gt;
:::Any news on when we can see that update? I'd be glad to test it to see if it resolves the duplicate notification issue [[User:Loudestnoise|Loudestnoise]] 11:56, 24 February 2007 (EST)&lt;br /&gt;
::::I hope to get it out this weekend...however I have a question for you, are you still getting those duplicate updates? After putting in the fix I mentioned above, I still got a few bogus notifications...but since then they've gone away, and I never had them in the first place, so their cause is hard for me to track/figure out. Are you still getting repeated notifications? Thanks! [[User:Lensovet|lensovet]] 14:02, 24 February 2007 (EST)&lt;br /&gt;
:::::I have the newest version and I am experiencing the same problems I reported before (with new note/updated profile notifications appearing tandem, and alongside almost all other legitimate notifications.  It is from the same person all the time, and they have not made any new notes.  --[[User:146.151.11.242|146.151.11.242]] 16:54, 24 February 2007 (EST)&lt;br /&gt;
::::::Please try the newest version, which just came out, and let me know if this is still happening. Thanks! [[User:Lensovet|lensovet]] 03:52, 26 February 2007 (EST)&lt;br /&gt;
:::::::I have just updated to the new version and have yet to receive any duplicate or incorrect notifications. Will keep watching and hoping there are none to come. [[User:Loudestnoise|Loudestnoise]] 15:11, 26 February 2007 (EST)&lt;br /&gt;
::::::::Still happens. I even went ahead and used appzapper to remove all existing pieces of FMenu and install v2.0. Same exact person same exact notices as before. [[User:Loudestnoise|Loudestnoise]] 15:24, 26 February 2007 (EST)&lt;br /&gt;
::::::::Agreed.  I've updated and within 5 minutes have gotten the same person, same problem. --[[User:Shaun|Shaun]] 02:23, 1 March 2007 (EST)&lt;br /&gt;
:::::::::Check to see if that person has two separate facebook accounts. That happened to be the problem with the other user. [[User:Lensovet|lensovet]] 03:32, 1 March 2007 (EST)&lt;br /&gt;
::::::::::Indeed, this seems to have solved it.  Thanks!  --[[User:146.151.11.242|146.151.11.242]] 02:56, 12 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Spinning Beachball ==&lt;br /&gt;
&lt;br /&gt;
During normal use of FMenu sometimes the loading of the menu can take a minute plus during which when you mouse over the menubar and you see the spinning beachball of death. --[[User:Loudestnoise|Loudestnoise]] 12:14, 14 February 2007 (EST)&lt;br /&gt;
:I will look into this, but i'm changing the heading since the app never actually crashes. [[User:Lensovet|lensovet]] 13:49, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Ha, this is true, my apologies --[[User:Loudestnoise|Loudestnoise]] 15:50, 15 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Solution to your authentication problem and one feature request ==&lt;br /&gt;
Use Apple Keychain&lt;br /&gt;
Why don't you use Apple's Keychain for the Username and Password of Facebook. When you start up the FMenu, you can get then the user/pass from the keychain and auto login. The user had to authorize the addition of the data to the keychain so you are perfectly valid in using that. This situation is what the keychain was designed for, just go ahead and use it.&lt;br /&gt;
:That is precisely what I plan on doing, I just need to figure out how to code it. [[User:Lensovet|lensovet]] 17:15, 14 February 2007 (EST)&lt;br /&gt;
Sparkle for updates:&lt;br /&gt;
The feature request I have is that you use the Sparkle framework for updates. That will allow us to not have to worry about updating and you'll get an auto-update engine for free.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Aslam&lt;br /&gt;
:Right, Sparkle requires an RSS feed with release info though, which is why it will take a bit to set up. I do plan on implementing it though. [[User:Lensovet|lensovet]] 17:15, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
-=-&lt;br /&gt;
Follow up:&lt;br /&gt;
&lt;br /&gt;
I'm so glad to hear you're going to be using Keychain. It's great to see developers use the awesome tools that Apple gives us. I'm sure you've already found this recently updated document but just in case, I found info on programming with the Keychain here: http://developer.apple.com/documentation/Security/Reference/keychainservices/keychainServRef.pdf&lt;br /&gt;
&lt;br /&gt;
Secondly, you probably know about this also but I found the easiest way to setup an RSS feed was to use iWeb (part of iLife) and create a Blog page. iWeb automatically creates an RSS feed for you and then you can use that to regularly update the feed. If that doesn't provide enough customization, then tools like PodcastMaker from potionfactory.com or FeedForAll (http://www.feedforall.com/feedforall-mac.htm) or one of the other RSS Feed builder tools that are available for OSX might be helpful.&lt;br /&gt;
&lt;br /&gt;
== FMenu Going Nuts ==&lt;br /&gt;
&lt;br /&gt;
A couple of times, I have had FMenu go nuts and start giving me notifications about all my friends, the same three or four notifications (new note, updated status, etc.), even though they had done none of the above. One time, it happened right when I plugged my MacBook into an external monitor. This went on ''ad infinitum'', repeating notifications. The notifications stickied, and even though I turned both FMenu and Growl off, they kept coming. It bogged my system down so much (and kept notifying) that I had to do a hard shut-down of the MacBook. I've had FMenu disabled since. --Carl Peterson&lt;br /&gt;
:I'm sorry to hear that you had such bad problems. I don't know why they were sticking; none of the notifications are set to sticky by default. I will be releasing a new version soon that will hopefully eliminate these repeated notifications once and for all, and hope that you will give it a try and let me know how it works for you. Thanks! [[User:Lensovet|lensovet]] 02:50, 21 February 2007 (EST)&lt;br /&gt;
::::I can hardly wait for the update. I've considered not using FMenu until the duplicates are fixed, but it's just so darn handy. [[User:Loudestnoise|Loudestnoise]] 12:39, 21 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Integration with Firefox? ==&lt;br /&gt;
&lt;br /&gt;
Great work with this app.  I've been using the Facebook Toolbar for Firefox but I think I like this better.  My question is if there's any way to pick the browser you'd like to use with FMenu.  My main browser is Firefox and I would love for links to open in that instead of Safari.  I didn't see anything in the FMenu/Growl preferences so I'm guessing there's no way to change it from Safari currently.  Keep up the good work.&lt;br /&gt;
:FMenu just uses the default browser set by the system; this preference can be changed from Safari. Open Safari, then open its Preferences. In the General tab, the first item there should be &amp;quot;Default Web Browser:&amp;quot; – simply choose Firefox from that list. Thanks! [[User:Lensovet|lensovet]] 12:35, 22 February 2007 (EST)&lt;br /&gt;
::Awesome.  You would think something like that would be in the system preferences.  Thanks!&lt;br /&gt;
:::It used to be, up until 10.2, when Safari was introduced. After that they got rid of the pref pane. And people think Microsoft is bad ;) [[User:Lensovet|lensovet]] 22:27, 22 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== FMenu and Growl notifications ==&lt;br /&gt;
&lt;br /&gt;
Great app, but a couple of suggestions.&lt;br /&gt;
&lt;br /&gt;
1. It would be nice if you could click on the Growl notifications and be taken to the relevant page, e.g. if my friend updates a status and I click, it goes to her page or if someone posts on the wall, it takes me there.&lt;br /&gt;
&lt;br /&gt;
2. The menu icon should also indicate whether people have posted or not. Perhaps by colour or counter?&lt;br /&gt;
:#Thanks! The first one is definitely something I will be looking into, hopefully soon.&lt;br /&gt;
:#As for the second one, I'm not exactly sure what you mean. What do you mean by &amp;quot;whether people have posted&amp;quot;? Posted what? Wall posts? Please clarify...thanks again! [[User:Lensovet|lensovet]] 14:47, 11 February 2007 (EST)&lt;br /&gt;
Basically, I think the Fmenu icon should have status indications. So if someone posts on your wall, it would be nice to have a number or something appear by or on the icon to let you know.&lt;br /&gt;
:I see, so you want the updates to happen not only through Growl, but also through some change in the icon, correct? This can be set in the preferences for the unread messages, unseen pokes, upcoming events, friend requests; i figured the wall post counter would not be of much use since most people probably have hundreds of posts, but I can definitely add it if you think it will be useful. [[User:Lensovet|lensovet]] 22:26, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Future Features ==&lt;br /&gt;
How about auto updates? I'm pretty sure theres a cocoa plugin which helps with that (Adium, cyberduck and others use it) --[[User:212.85.20.100|212.85.20.100]] 04:14, 14 February 2007 (EST)&lt;br /&gt;
:Yes, it's called Sparkle, but the setup for it is a bit intensive. It will happen eventually though. [[User:Lensovet|lensovet]] 11:55, 14 February 2007 (EST)&lt;br /&gt;
::This is now implemented as of version 3.0[[User:Lensovet|lensove†]] 19:32, 18 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Random Quitting? ==&lt;br /&gt;
&lt;br /&gt;
So during normal usage of my computer I will look up to the menu bar only to see that FMenu is missing. I never quit it, but it just disappears from my menu bar. [[User:Loudestnoise|Loudestnoise]] 20:12, 27 February 2007 (EST)&lt;br /&gt;
:Does quicklaunch remain visible or no? If not, then that means that FMenu is crashing. Otherwise, it could be that just the icon is disappearing. Which is it? thanks... [[User:Lensovet|lensovet]] 23:03, 27 February 2007 (EST)&lt;br /&gt;
::I'm not sure what you mean by quicklaunch remaining visible. The icon just disappears and according to activity monitor nothing named FMenu is running. [[User:Loudestnoise|Loudestnoise]] 01:09, 2 March 2007 (EST)&lt;br /&gt;
:::So yeah, it's crashing. Is it still happening on a regular basis, or did it just happen once? [[User:Lensovet|lensovet]] 01:12, 2 March 2007 (EST)&lt;br /&gt;
::::Sorry for not checking back, I can provide no more details really. It's quite random. I usually don't notice it has  happened until I look up to the menu bar and see that the icon is gone. [[User:Loudestnoise|Loudestnoise]] 23:43, 24 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
This happens to me as well, fairly regularly, about 2/3 times per day. --[[User:82.43.144.131|82.43.144.131]] 13:15, 3 March 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Me too, 10+ times per day! [[User:70.176.17.62|70.176.17.62]] 22:48, 4 March 2007 (EST)&lt;br /&gt;
:Please try the latest release and see if this problem still exists. Thanks! [[User:Lensovet|lensovet]] 22:29, 31 March 2007 (EDT)&lt;br /&gt;
::On all day so far --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
&lt;br /&gt;
This happens to me as well but i have noticed it only does it when returning to sleep. I am interested in helping track it down my email is macman64 at gmail dot com&lt;br /&gt;
&lt;br /&gt;
This happens to me a lot. It will start up and run for a minute or two and then quit (I guess it crashes) is this UB? I'm using a macbook and wondering if there are issues with the intel processor and this software. Thanks so much! If there are any fixes please email me jen.horne06 at gmail dot com THANKS!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This happens to me quite a bit, it looks to me like bad memory management.  I have uploaded my crash logs to http://www.dre.vanderbilt.edu/~wotte/FMenu.crash.log&lt;br /&gt;
:BTW, I will be happy to help try to track this down, if you can provide me with a build with debug on and optimization off, I can probably supply a better stack trace than crashreporter gives.  my email is wotte at dre dot vanderbilt dot edu.&lt;br /&gt;
:Alright, done a bit more digging around.  Spent a few minutes compiling the source, and discovered I didn't need it - I believe I have found the cause.  The last couple lines of the FMenu Log:&lt;br /&gt;
&lt;br /&gt;
::2007-08-24 01:06:06.886 FMenu[1053] getting all events&lt;br /&gt;
::2007-08-24 01:06:10.667 FMenu[1053] Connection failed! Error - lost network connection, URL http://api.facebook.com/restserver.php?method=facebook.events.get&amp;amp;api_key=242feaa6ed4030cd6b1c93b359d53eb4&amp;amp;session_key=40fb3942f7d37dbd678ef260-4702303&amp;amp;call_id=1187935566.885509&amp;amp;v=1.0&amp;amp;format=XML&amp;amp;sig=27392813797a2bbd0e6adece9ef6050c&lt;br /&gt;
::2007-08-24 01:06:12.786 FMenu[1053] getting upcoming events&lt;br /&gt;
&lt;br /&gt;
: so it would appear that you lose the connection, and the next update attempt operates on a null pointer, causing the crash.  Given that my expertise lies in C++ programming, I can't provide a patch, but this should be fairly straightforward to fix.&lt;br /&gt;
&lt;br /&gt;
== Photo comments fiction ==&lt;br /&gt;
&lt;br /&gt;
Occasionally, say every hour or two, a growl thingy pops up saying &amp;quot;You have new photo comments&amp;quot;, when I don't. I appreciate it trying to make me feel wanted, but there is an inevitable let-down when I find out it's been lying to me. Why?? I advise you to teach your program the value of honesty :p --[[User:82.43.144.131|82.43.144.131]] 13:19, 3 March 2007 (EST) PS can you put back the total pokes thing which was in 1.6 i think&lt;br /&gt;
:Two things: what's your update frequency, and when the popup does show up, what is the number of photo comments shown in the menu? Thanks. [[User:Lensovet|lensovet]] 14:35, 3 March 2007 (EST)&lt;br /&gt;
:: Update frequency of 7 seconds, and it always stays at 30 photo comments, but I don't think that's true. --[[User:82.43.144.131|82.43.144.131]] 20:05, 3 March 2007 (EST)&lt;br /&gt;
:::No need to think twice – just click on the menu item and compare it to the counter shown at the top of the page. It might be off by 2 or so. So you're saying that it always says 30, even after the popup notification?&lt;br /&gt;
:::: Hmm, this is odd. I have 30 pictures overall. Facebook says I have 30 picture comments, but in fact i have 20 comments - there is one picture with 10 comments, which is reported twice in the 'My photo comments' bit - strange, no? So your program is reporting what Facebook says, but facebook is wrong. But in answer to your question, yes it always says 30. Oh wait. Ok it just popped up a growl picture comments message now. Now it says I have 103 photo comments. Now it's back to 30. Wha? --[[User:82.43.144.131|82.43.144.131]] 10:46, 4 March 2007 (EST)&lt;br /&gt;
:::::AHA! Thanks. That makes sense – the 103 is actually an error. I'll fix this in the next release, sounds good. [[User:Lensovet|lensovet]] 13:59, 4 March 2007 (EST)&lt;br /&gt;
::::::Cool. could you also put 'total pokes' back in the menu please, and fix the random quitting (If that's possible)??? cheers. Do you want a crash log? or some other kinda log for the random quit? --[[User:82.43.144.131|82.43.144.131]] 17:35, 4 March 2007 (EST)&lt;br /&gt;
:::::::Unfortunately, Facebook has eliminated 'total pokes' functionality a few weeks back (and in fact, the photo comments will cease functioning on March 22 as well). As for random quitting – I'm guessing that this is due to memory leaks which I'm currently trying to resolve, but if you know how to get the crash log, feel free to paste it into [[/crashlog]]. Thanks! [[User:Lensovet|lensovet]] 19:23, 4 March 2007 (EST)&lt;br /&gt;
::::::::Ah right. What I think is the crash log is there now. --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
:The crashes should be fixed in 2.1 – please give it a try and let me know if it's any better! [[User:Lensovet|lensovet]] 22:29, 31 March 2007 (EDT)&lt;br /&gt;
:: Hasn't happened yet! --[[User:82.43.144.131|82.43.144.131]] 16:58, 2 April 2007 (EDT)&lt;br /&gt;
::: Okay I am still getting photo comments messages when I wake the computer from sleep or reboot.&lt;br /&gt;
::::My apologies, this is a known issue in version 2.1; I should have a fix out soon. Sorry about that, I fixed the memory issues but other stuff came back in the process, blame Apple for writing bad Cocoa ... :/ [[User:Lensovet|lensovet]] 23:27, 14 April 2007 (EDT)&lt;br /&gt;
:This should be fixed once and for all in the latest release – please give it a try. [[User:Lensovet|lensovet]] 01:34, 5 July 2007 (EDT)&lt;br /&gt;
:I have version 2.5, and it crashes quite regularly, usually when I am away from my computer (I don't put my computer to sleep very often).  I can forward a crash log if it would be useful - just let me know where to send it.&lt;br /&gt;
&lt;br /&gt;
I have the same problem, it quits every few minutes or so. I'm using a macbook, is this software UB?&lt;br /&gt;
&lt;br /&gt;
I have just begun to have this problem with the latest version. It quits and then refuses to log in again when I relaunch. Also, reinstalling it allowed it to work for about 5 minutes then I noticed it had quit again and wouldn't log in. What's going on?! - Talya (24 Aug 2007)&lt;br /&gt;
&lt;br /&gt;
== login problem ==&lt;br /&gt;
When i launch FMenu and open the Login window, all that shows up is a blank window. I see a load status bar load on the bottom left but nothing shows up. Tried keeping it up for hours but nothing shows up ever.&lt;br /&gt;
&lt;br /&gt;
== Massive update splurge ==&lt;br /&gt;
&lt;br /&gt;
New version is much improved! However, occasionally I get a flood of growl messages going off the bottom of the screen, 2 for what seems to be each of my contacts. i can't remember what they say, i'll try and get a screen cap. --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
: et voilà - http://mickeymoose.pwp.blueyonder.co.uk/notes.jpg --[[User:82.43.144.131|82.43.144.131]] 19:03, 2 April 2007 (EDT)&lt;br /&gt;
::Thanks, I'm going to fix this in the next release (I know exactly why this happens...) [[User:Lensovet|lensovet]] 17:44, 8 April 2007 (EDT)&lt;br /&gt;
:::Hoping to see this get resolved. Started happening to me the other day :-( ~pianomansam &amp;quot;at&amp;quot; yahoo 01:24, 29 May 2007 (EDT)&lt;br /&gt;
::::This should be fixed in the latest release, please let me know if it's fixed. [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Several small problems ==&lt;br /&gt;
&lt;br /&gt;
I keep getting a New Version Available Growl alert. When I select &amp;quot;Force Update Now&amp;quot; I just get the alert again an nothing is updated or downloaded. I have had to turn this notification off.&lt;br /&gt;
&lt;br /&gt;
About FMenu does nothing, either. Finder tells me I have version 2.1.&lt;br /&gt;
&lt;br /&gt;
Menu tells me I have &amp;quot;1 Shares in Inbox&amp;quot;, but my account says otherwise.&lt;br /&gt;
:Sorry about that, that was a slip-up of mine. However, please do download again as there were some changes I made (without releasing a new &amp;quot;version&amp;quot;). Sorry for the confusion... [[User:Lensovet|lensovet]] 00:41, 3 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::I'm having the same &amp;quot;1 Shares in Inbox&amp;quot; issue, redownloaded twice no change. — May 7&lt;br /&gt;
&lt;br /&gt;
:::Ditto for my acount on May 9th 2007. - Snorre Milde&lt;br /&gt;
::::Thanks for drawing my attention to this, I was parsing the data returned from Facebook incorrectly. [http://fmenu.svn.sourceforge.net/viewvc/fmenu/UpdateMethods.mm?r1=40&amp;amp;r2=42 I've fixed this in the code] and should have a new release out relatively soon (once I'm done with finals). [[User:Lensovet|lensovet]] 14:51, 10 May 2007 (EDT)&lt;br /&gt;
::::Both issues should be fixed as of the latest release, please give it a try. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Help from Fmenu screen capture ==&lt;br /&gt;
&lt;br /&gt;
Mr. Borokhov:&lt;br /&gt;
&lt;br /&gt;
I found your program FMenu on MacUpdate and have a question regarding the screen capture graphic provided entitled &amp;quot;Facebox-ss.png.&amp;quot; What is the menubar program indicated by the musical note icon two positions to the right of the Fmenu icon? Is it some kind of iTunes controller? I have been looking for this icon for some time and would appreciate your help.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
Peter Mellis&lt;br /&gt;
&lt;br /&gt;
pedserdoc@mac.com&lt;br /&gt;
:Hi there, it's not an iTunes controller but a plugin for [http://last.fm last.fm] that submits the songs I play to [http://www.last.fm/user/lensovet/ my last.fm account]. You can find it at http://www.last.fm/tools/downloadplugin/?id=11&lt;br /&gt;
&lt;br /&gt;
== FMenu Crashes after login ==&lt;br /&gt;
&lt;br /&gt;
Hi there,&lt;br /&gt;
&lt;br /&gt;
Been using FMenu for a while, it's a great distraction! Now, however, it immediately quits after I log in. Seems to only happen when I log in using my profile, but not with a friend's. Here's what I get in the console. Any help would be appreciated!&lt;br /&gt;
&lt;br /&gt;
2007-04-11 10:12:06.251 FMenu[22567] Performing full update&lt;br /&gt;
2007-04-11 10:12:06.383 FMenu[22567] got wall&lt;br /&gt;
2007-04-11 10:12:06.931 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;users_getInfo_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot; list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;user&amp;gt;&amp;lt;uid&amp;gt;72600023&amp;lt;/uid&amp;gt;&amp;lt;wall_count&amp;gt;132&amp;lt;/wall_count&amp;gt;&amp;lt;/user&amp;gt;&amp;lt;/users_getInfo_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:07.529 FMenu[22567] got notifications&lt;br /&gt;
2007-04-11 10:12:08.394 FMenu[22567] got all events&lt;br /&gt;
2007-04-11 10:12:08.403 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;notifications_get_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot;&amp;gt;&amp;lt;messages&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;1176214194&amp;lt;/most_recent&amp;gt;&amp;lt;/messages&amp;gt;&amp;lt;pokes&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;0&amp;lt;/most_recent&amp;gt;&amp;lt;/pokes&amp;gt;&amp;lt;shares&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;0&amp;lt;/most_recent&amp;gt;&amp;lt;/shares&amp;gt;&amp;lt;friend_requests list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/friend_requests&amp;gt;&amp;lt;group_invites list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/group_invites&amp;gt;&amp;lt;event_invites list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/event_invites&amp;gt;&amp;lt;/notifications_get_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:09.357 FMenu[22567] got upcoming events&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x485e590 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x441bd20 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4809460 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x3c3f30 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x48ef1f0 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f314 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4418620 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f154 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x48b4d80 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61afc20 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61afc80 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61d24b0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61ea850 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x442d1e0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x442c620 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f144 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4433560 of class NSConcreteMutableData autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x445f4c0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4877310 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x441caa0 of class NSURL autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x3c99b0 of class NSURLRequest autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.378 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4851560 of class NSURLConnection autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.651 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;events_get_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot; list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/events_get_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:10.374 FMenu[22567] got friend profiles&lt;br /&gt;
Apr 11 10:12:10 Ana crashdump[22568]: FMenu crashed&lt;br /&gt;
&lt;br /&gt;
Edit: this does not happen with version 2.0&lt;br /&gt;
:Hi there, thanks for the feedback! It looks like you might have gotten a bad release – try downloading again and let me know if this still happens...thanks! [[User:Lensovet|lensovet]] 00:16, 12 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
The same thing happens when I try a new version. Have tried to delete preferences as well. As I said, it still only happens when I log in with my username, pochaf at mcmaster dot ca and not any other profile.&lt;br /&gt;
: That's really strange. I know there are issues that need to be fixed in 2.1; maybe fixing them will fix your problem too. Stay tuned and please accept my apologies... [[User:Lensovet|lensovet]] 23:28, 14 April 2007 (EDT)&lt;br /&gt;
::Please give the latest version a try and let me know if the error still occurs. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
i get the same error:&lt;br /&gt;
&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ea10d0 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ea7b20 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5071080 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5004110 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e1f890 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x321eb0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cc2930 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f314 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x311210 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f154 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x3dacb0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e24270 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cac5e0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cbc660 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e4a6c0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cca6b0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c6f610 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f144 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c96390 of class NSConcreteMutableData autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c888d0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ca4f10 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c768e0 of class NSURL autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5060840 of class NSURLRequest autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x38d170 of class NSURLConnection autoreleased with no pool in place - just leaking&lt;br /&gt;
Jun 14 00:50:58 Fusion-G5 crashdump[264]: FMenu crashed&lt;br /&gt;
Jun 14 00:50:58 Fusion-G5 crashdump[264]: crash report written to: /Users/plasmicmac/Library/Logs/CrashReporter/FMenu.crash.log&lt;br /&gt;
&lt;br /&gt;
== updating issues with the new facebook layout ==&lt;br /&gt;
&lt;br /&gt;
Hello!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems with the launch of the new Facebook layout that I'm not getting updates to FMenu anymore.  No notification of new messages, comments, profile changes, nothing.&lt;br /&gt;
&lt;br /&gt;
Didn't see this here as a documented bug so I wanted to post and see if you knew what was up.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
:As far as I know, FMenu shouldn't be affected by the new layout. Try restarting the program to see if it fixes the problem and let me know. [[User:Lensovet|lensovet]] 23:29, 14 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
http://developers.facebook.com/news.php?blog=1&amp;amp;story=18&lt;br /&gt;
Infinate sessions now availible from Facebook! =)&lt;br /&gt;
:Yes, and they are now implemented as of 2.5! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu quitting on MBP sleep ==&lt;br /&gt;
&lt;br /&gt;
Whenever I sleep my MBP for any length of time, FMenu 2.1 will quit. - johnl1479 13:04, 6 May 2007 (CST)&lt;br /&gt;
:I have a rough idea as to why this is happening and hope to release a fix soon. Thanks! [[User:Lensovet|lensovet]] 03:09, 7 May 2007 (EDT)&lt;br /&gt;
:Please give the latest release a try and let me know if it's any better. Thanks again! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
I have a crash log for FMenu, which keeps crashing when the computer sleeps (or at least thats what I think). How should I send it to you?&lt;br /&gt;
&lt;br /&gt;
== Better handling of loosing internet connection ==&lt;br /&gt;
&lt;br /&gt;
Whenever I disconnect my computer from the internet I get a weird error message. Would like to see this handled better. Screencap to come...&lt;br /&gt;
:Please let me know if this has been resolved in the latest version. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Quitting (safari 3?) ==&lt;br /&gt;
&lt;br /&gt;
I also posted this on the facebook group, but thought you'd check this more often.&lt;br /&gt;
Ever since installing safari 3, fmenu quits a couple of minutes after logging in. the login and checking stuff works fine but then I look up and FMenu is gone... --[[User:82.43.144.131|82.43.144.131]] 06:21, 15 June 2007 (EDT)&lt;br /&gt;
:Please give the latest version a try and let me know if it's gotten any better. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu 2.5 Login Window doesn't show up ==&lt;br /&gt;
&lt;br /&gt;
This is the error that the console shows: &amp;quot;2007-07-05 01:36:45.080 FMenu[8801] Could not gen auth token&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SOLVED: Deleted the preference file for FMenu and it worked.&lt;br /&gt;
&lt;br /&gt;
== Fmenu Greyed out? ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
Just started to use your Fmenu menubar app, its great except that I cannot get it to work now.&lt;br /&gt;
Heres the scenario.&lt;br /&gt;
I added the app at work, and it ran fine. I then installed the app at home, again it worked a treat. After a couple of days I quit the app at my home and on restarting it, it now only displays a grey F logo, going to the login option does nothing except kind of make the menu item flash once. Ok I thought I can live without it at home. &lt;br /&gt;
Now the same situation has happened on my work computer. Grey F Logo and no way to log in.&lt;br /&gt;
I have removed the app, and re-installed but this did not solve the problem. I have looked for a preference file but a search for fmenu only reveals the applicaton.&lt;br /&gt;
Is there a solution ? Is there a pref file I can throw? &lt;br /&gt;
&lt;br /&gt;
Any help will be appreciated. Thanks&lt;br /&gt;
:Hey there, the preference file is actually net.lensovet.FaceMenu.plist, due to the program's older name. Try deleting that to see if the problem is resolved. [[User:Lensovet|lensove†]] 05:08, 11 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::Hi! I've had the same problem as described above and tested to delete the preference file. After this, when opening the login window and logging in, the icon is still grey but the login window is showing my Facbook homepage.. Any solutions..??&lt;br /&gt;
:::Please download the latest version, 3.0, and let me know if this is still a problem...thanks![[User:Lensovet|lensove†]]&lt;br /&gt;
&lt;br /&gt;
== New wall posts (rather than just the number?) ==&lt;br /&gt;
&lt;br /&gt;
I was wondering if there was a way that new wall posts could appear in FMenu. &lt;br /&gt;
&lt;br /&gt;
I know there's no API support for these in the same way that there is for a new message, but perhaps the number of posts you had when you last checked FMenu could be compared with the latest value? I don't know if this is possible, but it would be easier to see 123 posts (1 new) than remembering that you last had 122.&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
-Also, is there any way that only the new wall post # can be incorporated into the number that appears in the menu bar, rather than selecting wall posts and  seeing 1860 (this might be the same as what previous commenter wrote)? This way if you had one new wall post, next to the Facebook logo, a 1 would appear.&lt;br /&gt;
&lt;br /&gt;
== Unsupported Architecture ==&lt;br /&gt;
When trying to update to 3.0 (downloaded from sourceforge via the link on this wiki) I get an error message that &amp;quot;You can't open the application &amp;quot;FMenu 2&amp;quot; because it is not supported on this architecture.&amp;quot;  I'm running on a recent Mac Book Pro.&lt;br /&gt;
&lt;br /&gt;
The error message &amp;amp; quickview icon appearance are here: http://jeffmlr.net/images/error.jpg  http://jeffmlr.net/images/quickview.jpg&lt;br /&gt;
:Hi there, I have no idea why this happens but I did have one other report of this. Please make sure that you delete all other versions of FMenu from your machine, then redownload the file and try to drag it to your applications folder. Also, see if relaunching the Finder or restarting your computer solves the issue...sorry! [[User:Lensovet|lensove†]] 05:41, 6 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu just does not work? ==&lt;br /&gt;
&lt;br /&gt;
I have downloaded FMenu and Growl, but when i double-click on FMenu nothing happens. When I go to my Growl preferences, and go to the applications tab, I can't do anything on it, does that mean that I do not have an application that works with growl on my mac? I have a Macbook with OS X 10.5.3.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Template:Code&amp;diff=6083</id>
		<title>Template:Code</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Template:Code&amp;diff=6083"/>
		<updated>2011-01-14T19:34:09Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&amp;lt;div style=&amp;quot;background: #ececec; font-style: italic;&amp;quot;&amp;gt;This page contains computer code. Unlike all articles on the '''lensowiki''', which are released under the [[GFDL]], this code is released under the [[GPL]].&amp;lt;p&amp;gt;Copyright 2006, 2007 Paul Borokhov. All rights reserved.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;This code is free software; you can redistribute it and/or modify it under the terms of the [[GNU General Public License]] [http://www.gnu.org/licenses/gpl.html as published] by the [http://www.fsf.org/ Free Software Foundation]; either version 2 of the License, or (at your option) any later version.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;The code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.5&amp;diff=6082</id>
		<title>FMenu/1.5</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.5&amp;diff=6082"/>
		<updated>2011-01-14T19:33:54Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;FMenu/1.5&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FMenu-1.5.app.zip?modtime=1170695337&amp;amp;big_mirror=0&amp;amp;filesize=283944&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.5&amp;diff=6081</id>
		<title>FMenu/1.5</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.5&amp;diff=6081"/>
		<updated>2011-01-14T19:33:43Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FMenu-1.5.app.zip?modtime=1170695337&amp;amp;big_mirror=0&amp;amp;filesize=283944&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/2.5&amp;diff=6008</id>
		<title>FMenu/2.5</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/2.5&amp;diff=6008"/>
		<updated>2011-01-13T07:21:10Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;FMenu/2.5&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FMenu-2.5.app.zip?modtime=1183587589&amp;amp;big_mirror=0&amp;amp;filesize=318286&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/2.5&amp;diff=6007</id>
		<title>FMenu/2.5</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/2.5&amp;diff=6007"/>
		<updated>2011-01-13T07:20:58Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FMenu-2.5.app.zip?modtime=1183587589&amp;amp;big_mirror=0&amp;amp;filesize=318286&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/3.0&amp;diff=6005</id>
		<title>FMenu/3.0</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/3.0&amp;diff=6005"/>
		<updated>2011-01-13T07:18:22Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;FMenu/3.0&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FMenu.app_build12.zip?modtime=1208478945&amp;amp;big_mirror=0&amp;amp;filesize=1108060&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/3.0&amp;diff=6004</id>
		<title>FMenu/3.0</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/3.0&amp;diff=6004"/>
		<updated>2011-01-13T07:18:03Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FMenu.app_build12.zip?modtime=1208478945&amp;amp;big_mirror=0&amp;amp;filesize=1108060&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu/archive&amp;diff=6003</id>
		<title>Talk:FMenu/archive</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Talk:FMenu/archive&amp;diff=6003"/>
		<updated>2011-01-13T07:17:46Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem with ZIP archive? ==&lt;br /&gt;
&lt;br /&gt;
I can't open the archive—StuffIt Expander 10 stalls approximately 95% through and doesn't start again, and StuffIt Expander 11 returns an error. Is there a place for me to download the app that's not compressed? [[User:129.137.158.156|129.137.158.156]] 16:06, 29 January 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Never mind, it seems I got a bad download from the link on the wiki. It worked the next time I tried it. [[User:129.137.158.156|129.137.158.156]] 16:18, 29 January 2007 (EST)&lt;br /&gt;
::Hm, that's weird, but I strongly discourage anyone from using Stuffit at all. Mac OS X's built-in BOMArchiveHelper.app does the job much better. Happy to hear that you were able to resolve the problem, however.[[User:Lensovet|lensovet]] 21:04, 29 January 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Friends opting out of Terms of Service and Update frequency ==&lt;br /&gt;
&lt;br /&gt;
I have three questions.  First, exactly what effect does it have when a friend unchecks the Terms of Service box?  Will FMenu not even be able to tell me when they poke or message me?  Second, is there any way I can tell which friends have opted out of this?  My third question is how frequent is &amp;quot;too frequent&amp;quot; for the update frequency?  How frequently can I have it update without hitting the request limit?  Thanks!&lt;br /&gt;
:Here we go!&lt;br /&gt;
:#If the friend unchecks this box, they are completely invisible to the program. That means that anything about ''them'' is inaccessible, like their profile and their status. However, when they poke ''you'', this is still accessible, because it is ''your'' information that's retrieved to find out the number of current pokes. So anything they do to you is available, because your info is retrieved, but anything they do to their profiles is not.&lt;br /&gt;
:#Yes, there is. click on the arrow at the right of the text field in the Quicklaunch panel. That lists all the friends that are available to you through the app &amp;lt;s&amp;gt;(in a random order, unfortunately)&amp;lt;/s&amp;gt;, which are alphabetized by first name as of version 1.5.&lt;br /&gt;
:#This is essentially a guess-and-check process. As of version 1.4, it appears that 7 seconds is in fact the most frequent update interval. I personally  had it running with 6 seconds, but that would randomly give me incorrect notifications.&lt;br /&gt;
:Hope that clears things up a bit!&amp;amp;nbsp;[[User:Lensovet|lensovet]] 14:40, 3 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Duplicate notifications ==&lt;br /&gt;
&lt;br /&gt;
I keep getting the same notifications over and over.  I have moved my interval up to 30 seconds thinking it could have been cause by too frequent of an interval but I am continuing to see duplicate messages.  It's a series of 5 or 6 messages, same messages each time.&lt;br /&gt;
&lt;br /&gt;
I have the exact same problem and it is the same two updates from the same exact person. --[[User:70.158.150.128|70.158.150.128]] 15:24, 13 February 2007 (EST)&lt;br /&gt;
:If the update you're getting is &amp;quot;XXX has updated his profile&amp;quot;, that means that they are actually updating their profile that frequently. If it's something else, let me know. Thanks. [[User:Lensovet|lensovet]] 00:48, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
The one that keeps repeating for me is &amp;quot;XXXX wrote a new note&amp;quot; and &amp;quot;XXXX has updated her profile&amp;quot;  It is always the same person and I've looked at their profile and it doesn't look like it's changing to me. --[[User:70.158.150.128|70.158.150.128]] 15:23, 13 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I can verify the above problem.  I have one friend that has consistently showed up as &amp;quot;XXXX has updated her profile&amp;quot; and &amp;quot;XXXX wrote a new note.&amp;quot;  They show side by side, often with any other events from other friends.  Its been showing up nonstop since I downloaded it two days ago.  She only has one note from last year, so she hasn't written a new note every 5 minutes over the last two days.  --[[User:146.151.11.242|146.151.11.242]] 03:24, 14 February 2007 (EST)&lt;br /&gt;
:Wow, I just started getting this myself. Will def look into it. [[User:Lensovet|lensovet]] 11:54, 14 February 2007 (EST)&lt;br /&gt;
:Haha, now I get New note wrote a new note or profile updated his profile. --[[User:65.82.99.3|65.82.99.3]] 12:16, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Just curious, to all who have reported this problem, what happens if you restart the app (or choose Logout from the menu and log back in)? Thanks... [[User:Lensovet|lensovet]] 21:38, 14 February 2007 (EST)&lt;br /&gt;
::Do try that as an interim solution, but I think that I've found the problem. Apparently the information sent by Facebook's API would sometimes contain profiles with a blank &amp;quot;name&amp;quot; field, and I think this is what was setting off the erroneous notifications. I'll be testing a [http://fmenu.svn.sourceforge.net/viewvc/fmenu/UpdateMethods.mm?r1=16&amp;amp;r2=19&amp;amp;sortby=date possible fix] to see if the problem goes away. I should have a new release out this weekend. Stay tuned and thanks for the reports! [[User:Lensovet|lensovet]] 22:28, 14 February 2007 (EST)&lt;br /&gt;
:::Any news on when we can see that update? I'd be glad to test it to see if it resolves the duplicate notification issue [[User:Loudestnoise|Loudestnoise]] 11:56, 24 February 2007 (EST)&lt;br /&gt;
::::I hope to get it out this weekend...however I have a question for you, are you still getting those duplicate updates? After putting in the fix I mentioned above, I still got a few bogus notifications...but since then they've gone away, and I never had them in the first place, so their cause is hard for me to track/figure out. Are you still getting repeated notifications? Thanks! [[User:Lensovet|lensovet]] 14:02, 24 February 2007 (EST)&lt;br /&gt;
:::::I have the newest version and I am experiencing the same problems I reported before (with new note/updated profile notifications appearing tandem, and alongside almost all other legitimate notifications.  It is from the same person all the time, and they have not made any new notes.  --[[User:146.151.11.242|146.151.11.242]] 16:54, 24 February 2007 (EST)&lt;br /&gt;
::::::Please try the newest version, which just came out, and let me know if this is still happening. Thanks! [[User:Lensovet|lensovet]] 03:52, 26 February 2007 (EST)&lt;br /&gt;
:::::::I have just updated to the new version and have yet to receive any duplicate or incorrect notifications. Will keep watching and hoping there are none to come. [[User:Loudestnoise|Loudestnoise]] 15:11, 26 February 2007 (EST)&lt;br /&gt;
::::::::Still happens. I even went ahead and used appzapper to remove all existing pieces of FMenu and install v2.0. Same exact person same exact notices as before. [[User:Loudestnoise|Loudestnoise]] 15:24, 26 February 2007 (EST)&lt;br /&gt;
::::::::Agreed.  I've updated and within 5 minutes have gotten the same person, same problem. --[[User:Shaun|Shaun]] 02:23, 1 March 2007 (EST)&lt;br /&gt;
:::::::::Check to see if that person has two separate facebook accounts. That happened to be the problem with the other user. [[User:Lensovet|lensovet]] 03:32, 1 March 2007 (EST)&lt;br /&gt;
::::::::::Indeed, this seems to have solved it.  Thanks!  --[[User:146.151.11.242|146.151.11.242]] 02:56, 12 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Spinning Beachball ==&lt;br /&gt;
&lt;br /&gt;
During normal use of FMenu sometimes the loading of the menu can take a minute plus during which when you mouse over the menubar and you see the spinning beachball of death. --[[User:Loudestnoise|Loudestnoise]] 12:14, 14 February 2007 (EST)&lt;br /&gt;
:I will look into this, but i'm changing the heading since the app never actually crashes. [[User:Lensovet|lensovet]] 13:49, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Ha, this is true, my apologies --[[User:Loudestnoise|Loudestnoise]] 15:50, 15 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Solution to your authentication problem and one feature request ==&lt;br /&gt;
Use Apple Keychain&lt;br /&gt;
Why don't you use Apple's Keychain for the Username and Password of Facebook. When you start up the FMenu, you can get then the user/pass from the keychain and auto login. The user had to authorize the addition of the data to the keychain so you are perfectly valid in using that. This situation is what the keychain was designed for, just go ahead and use it.&lt;br /&gt;
:That is precisely what I plan on doing, I just need to figure out how to code it. [[User:Lensovet|lensovet]] 17:15, 14 February 2007 (EST)&lt;br /&gt;
Sparkle for updates:&lt;br /&gt;
The feature request I have is that you use the Sparkle framework for updates. That will allow us to not have to worry about updating and you'll get an auto-update engine for free.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Aslam&lt;br /&gt;
:Right, Sparkle requires an RSS feed with release info though, which is why it will take a bit to set up. I do plan on implementing it though. [[User:Lensovet|lensovet]] 17:15, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
-=-&lt;br /&gt;
Follow up:&lt;br /&gt;
&lt;br /&gt;
I'm so glad to hear you're going to be using Keychain. It's great to see developers use the awesome tools that Apple gives us. I'm sure you've already found this recently updated document but just in case, I found info on programming with the Keychain here: http://developer.apple.com/documentation/Security/Reference/keychainservices/keychainServRef.pdf&lt;br /&gt;
&lt;br /&gt;
Secondly, you probably know about this also but I found the easiest way to setup an RSS feed was to use iWeb (part of iLife) and create a Blog page. iWeb automatically creates an RSS feed for you and then you can use that to regularly update the feed. If that doesn't provide enough customization, then tools like PodcastMaker from potionfactory.com or FeedForAll (http://www.feedforall.com/feedforall-mac.htm) or one of the other RSS Feed builder tools that are available for OSX might be helpful.&lt;br /&gt;
&lt;br /&gt;
== FMenu Going Nuts ==&lt;br /&gt;
&lt;br /&gt;
A couple of times, I have had FMenu go nuts and start giving me notifications about all my friends, the same three or four notifications (new note, updated status, etc.), even though they had done none of the above. One time, it happened right when I plugged my MacBook into an external monitor. This went on ''ad infinitum'', repeating notifications. The notifications stickied, and even though I turned both FMenu and Growl off, they kept coming. It bogged my system down so much (and kept notifying) that I had to do a hard shut-down of the MacBook. I've had FMenu disabled since. --Carl Peterson&lt;br /&gt;
:I'm sorry to hear that you had such bad problems. I don't know why they were sticking; none of the notifications are set to sticky by default. I will be releasing a new version soon that will hopefully eliminate these repeated notifications once and for all, and hope that you will give it a try and let me know how it works for you. Thanks! [[User:Lensovet|lensovet]] 02:50, 21 February 2007 (EST)&lt;br /&gt;
::::I can hardly wait for the update. I've considered not using FMenu until the duplicates are fixed, but it's just so darn handy. [[User:Loudestnoise|Loudestnoise]] 12:39, 21 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Integration with Firefox? ==&lt;br /&gt;
&lt;br /&gt;
Great work with this app.  I've been using the Facebook Toolbar for Firefox but I think I like this better.  My question is if there's any way to pick the browser you'd like to use with FMenu.  My main browser is Firefox and I would love for links to open in that instead of Safari.  I didn't see anything in the FMenu/Growl preferences so I'm guessing there's no way to change it from Safari currently.  Keep up the good work.&lt;br /&gt;
:FMenu just uses the default browser set by the system; this preference can be changed from Safari. Open Safari, then open its Preferences. In the General tab, the first item there should be &amp;quot;Default Web Browser:&amp;quot; – simply choose Firefox from that list. Thanks! [[User:Lensovet|lensovet]] 12:35, 22 February 2007 (EST)&lt;br /&gt;
::Awesome.  You would think something like that would be in the system preferences.  Thanks!&lt;br /&gt;
:::It used to be, up until 10.2, when Safari was introduced. After that they got rid of the pref pane. And people think Microsoft is bad ;) [[User:Lensovet|lensovet]] 22:27, 22 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== FMenu and Growl notifications ==&lt;br /&gt;
&lt;br /&gt;
Great app, but a couple of suggestions.&lt;br /&gt;
&lt;br /&gt;
1. It would be nice if you could click on the Growl notifications and be taken to the relevant page, e.g. if my friend updates a status and I click, it goes to her page or if someone posts on the wall, it takes me there.&lt;br /&gt;
&lt;br /&gt;
2. The menu icon should also indicate whether people have posted or not. Perhaps by colour or counter?&lt;br /&gt;
:#Thanks! The first one is definitely something I will be looking into, hopefully soon.&lt;br /&gt;
:#As for the second one, I'm not exactly sure what you mean. What do you mean by &amp;quot;whether people have posted&amp;quot;? Posted what? Wall posts? Please clarify...thanks again! [[User:Lensovet|lensovet]] 14:47, 11 February 2007 (EST)&lt;br /&gt;
Basically, I think the Fmenu icon should have status indications. So if someone posts on your wall, it would be nice to have a number or something appear by or on the icon to let you know.&lt;br /&gt;
:I see, so you want the updates to happen not only through Growl, but also through some change in the icon, correct? This can be set in the preferences for the unread messages, unseen pokes, upcoming events, friend requests; i figured the wall post counter would not be of much use since most people probably have hundreds of posts, but I can definitely add it if you think it will be useful. [[User:Lensovet|lensovet]] 22:26, 14 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Future Features ==&lt;br /&gt;
How about auto updates? I'm pretty sure theres a cocoa plugin which helps with that (Adium, cyberduck and others use it) --[[User:212.85.20.100|212.85.20.100]] 04:14, 14 February 2007 (EST)&lt;br /&gt;
:Yes, it's called Sparkle, but the setup for it is a bit intensive. It will happen eventually though. [[User:Lensovet|lensovet]] 11:55, 14 February 2007 (EST)&lt;br /&gt;
::This is now implemented as of version 3.0[[User:Lensovet|lensove†]] 19:32, 18 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Random Quitting? ==&lt;br /&gt;
&lt;br /&gt;
So during normal usage of my computer I will look up to the menu bar only to see that FMenu is missing. I never quit it, but it just disappears from my menu bar. [[User:Loudestnoise|Loudestnoise]] 20:12, 27 February 2007 (EST)&lt;br /&gt;
:Does quicklaunch remain visible or no? If not, then that means that FMenu is crashing. Otherwise, it could be that just the icon is disappearing. Which is it? thanks... [[User:Lensovet|lensovet]] 23:03, 27 February 2007 (EST)&lt;br /&gt;
::I'm not sure what you mean by quicklaunch remaining visible. The icon just disappears and according to activity monitor nothing named FMenu is running. [[User:Loudestnoise|Loudestnoise]] 01:09, 2 March 2007 (EST)&lt;br /&gt;
:::So yeah, it's crashing. Is it still happening on a regular basis, or did it just happen once? [[User:Lensovet|lensovet]] 01:12, 2 March 2007 (EST)&lt;br /&gt;
::::Sorry for not checking back, I can provide no more details really. It's quite random. I usually don't notice it has  happened until I look up to the menu bar and see that the icon is gone. [[User:Loudestnoise|Loudestnoise]] 23:43, 24 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
This happens to me as well, fairly regularly, about 2/3 times per day. --[[User:82.43.144.131|82.43.144.131]] 13:15, 3 March 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Me too, 10+ times per day! [[User:70.176.17.62|70.176.17.62]] 22:48, 4 March 2007 (EST)&lt;br /&gt;
:Please try the latest release and see if this problem still exists. Thanks! [[User:Lensovet|lensovet]] 22:29, 31 March 2007 (EDT)&lt;br /&gt;
::On all day so far --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
&lt;br /&gt;
This happens to me as well but i have noticed it only does it when returning to sleep. I am interested in helping track it down my email is macman64 at gmail dot com&lt;br /&gt;
&lt;br /&gt;
This happens to me a lot. It will start up and run for a minute or two and then quit (I guess it crashes) is this UB? I'm using a macbook and wondering if there are issues with the intel processor and this software. Thanks so much! If there are any fixes please email me jen.horne06 at gmail dot com THANKS!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This happens to me quite a bit, it looks to me like bad memory management.  I have uploaded my crash logs to http://www.dre.vanderbilt.edu/~wotte/FMenu.crash.log&lt;br /&gt;
:BTW, I will be happy to help try to track this down, if you can provide me with a build with debug on and optimization off, I can probably supply a better stack trace than crashreporter gives.  my email is wotte at dre dot vanderbilt dot edu.&lt;br /&gt;
:Alright, done a bit more digging around.  Spent a few minutes compiling the source, and discovered I didn't need it - I believe I have found the cause.  The last couple lines of the FMenu Log:&lt;br /&gt;
&lt;br /&gt;
::2007-08-24 01:06:06.886 FMenu[1053] getting all events&lt;br /&gt;
::2007-08-24 01:06:10.667 FMenu[1053] Connection failed! Error - lost network connection, URL http://api.facebook.com/restserver.php?method=facebook.events.get&amp;amp;api_key=242feaa6ed4030cd6b1c93b359d53eb4&amp;amp;session_key=40fb3942f7d37dbd678ef260-4702303&amp;amp;call_id=1187935566.885509&amp;amp;v=1.0&amp;amp;format=XML&amp;amp;sig=27392813797a2bbd0e6adece9ef6050c&lt;br /&gt;
::2007-08-24 01:06:12.786 FMenu[1053] getting upcoming events&lt;br /&gt;
&lt;br /&gt;
: so it would appear that you lose the connection, and the next update attempt operates on a null pointer, causing the crash.  Given that my expertise lies in C++ programming, I can't provide a patch, but this should be fairly straightforward to fix.&lt;br /&gt;
&lt;br /&gt;
== Photo comments fiction ==&lt;br /&gt;
&lt;br /&gt;
Occasionally, say every hour or two, a growl thingy pops up saying &amp;quot;You have new photo comments&amp;quot;, when I don't. I appreciate it trying to make me feel wanted, but there is an inevitable let-down when I find out it's been lying to me. Why?? I advise you to teach your program the value of honesty :p --[[User:82.43.144.131|82.43.144.131]] 13:19, 3 March 2007 (EST) PS can you put back the total pokes thing which was in 1.6 i think&lt;br /&gt;
:Two things: what's your update frequency, and when the popup does show up, what is the number of photo comments shown in the menu? Thanks. [[User:Lensovet|lensovet]] 14:35, 3 March 2007 (EST)&lt;br /&gt;
:: Update frequency of 7 seconds, and it always stays at 30 photo comments, but I don't think that's true. --[[User:82.43.144.131|82.43.144.131]] 20:05, 3 March 2007 (EST)&lt;br /&gt;
:::No need to think twice – just click on the menu item and compare it to the counter shown at the top of the page. It might be off by 2 or so. So you're saying that it always says 30, even after the popup notification?&lt;br /&gt;
:::: Hmm, this is odd. I have 30 pictures overall. Facebook says I have 30 picture comments, but in fact i have 20 comments - there is one picture with 10 comments, which is reported twice in the 'My photo comments' bit - strange, no? So your program is reporting what Facebook says, but facebook is wrong. But in answer to your question, yes it always says 30. Oh wait. Ok it just popped up a growl picture comments message now. Now it says I have 103 photo comments. Now it's back to 30. Wha? --[[User:82.43.144.131|82.43.144.131]] 10:46, 4 March 2007 (EST)&lt;br /&gt;
:::::AHA! Thanks. That makes sense – the 103 is actually an error. I'll fix this in the next release, sounds good. [[User:Lensovet|lensovet]] 13:59, 4 March 2007 (EST)&lt;br /&gt;
::::::Cool. could you also put 'total pokes' back in the menu please, and fix the random quitting (If that's possible)??? cheers. Do you want a crash log? or some other kinda log for the random quit? --[[User:82.43.144.131|82.43.144.131]] 17:35, 4 March 2007 (EST)&lt;br /&gt;
:::::::Unfortunately, Facebook has eliminated 'total pokes' functionality a few weeks back (and in fact, the photo comments will cease functioning on March 22 as well). As for random quitting – I'm guessing that this is due to memory leaks which I'm currently trying to resolve, but if you know how to get the crash log, feel free to paste it into [[/crashlog]]. Thanks! [[User:Lensovet|lensovet]] 19:23, 4 March 2007 (EST)&lt;br /&gt;
::::::::Ah right. What I think is the crash log is there now. --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
:The crashes should be fixed in 2.1 – please give it a try and let me know if it's any better! [[User:Lensovet|lensovet]] 22:29, 31 March 2007 (EDT)&lt;br /&gt;
:: Hasn't happened yet! --[[User:82.43.144.131|82.43.144.131]] 16:58, 2 April 2007 (EDT)&lt;br /&gt;
::: Okay I am still getting photo comments messages when I wake the computer from sleep or reboot.&lt;br /&gt;
::::My apologies, this is a known issue in version 2.1; I should have a fix out soon. Sorry about that, I fixed the memory issues but other stuff came back in the process, blame Apple for writing bad Cocoa ... :/ [[User:Lensovet|lensovet]] 23:27, 14 April 2007 (EDT)&lt;br /&gt;
:This should be fixed once and for all in the latest release – please give it a try. [[User:Lensovet|lensovet]] 01:34, 5 July 2007 (EDT)&lt;br /&gt;
:I have version 2.5, and it crashes quite regularly, usually when I am away from my computer (I don't put my computer to sleep very often).  I can forward a crash log if it would be useful - just let me know where to send it.&lt;br /&gt;
&lt;br /&gt;
I have the same problem, it quits every few minutes or so. I'm using a macbook, is this software UB?&lt;br /&gt;
&lt;br /&gt;
I have just begun to have this problem with the latest version. It quits and then refuses to log in again when I relaunch. Also, reinstalling it allowed it to work for about 5 minutes then I noticed it had quit again and wouldn't log in. What's going on?! - Talya (24 Aug 2007)&lt;br /&gt;
&lt;br /&gt;
== login problem ==&lt;br /&gt;
When i launch FMenu and open the Login window, all that shows up is a blank window. I see a load status bar load on the bottom left but nothing shows up. Tried keeping it up for hours but nothing shows up ever.&lt;br /&gt;
&lt;br /&gt;
== Massive update splurge ==&lt;br /&gt;
&lt;br /&gt;
New version is much improved! However, occasionally I get a flood of growl messages going off the bottom of the screen, 2 for what seems to be each of my contacts. i can't remember what they say, i'll try and get a screen cap. --[[User:82.43.144.131|82.43.144.131]]&lt;br /&gt;
: et voilà - http://mickeymoose.pwp.blueyonder.co.uk/notes.jpg --[[User:82.43.144.131|82.43.144.131]] 19:03, 2 April 2007 (EDT)&lt;br /&gt;
::Thanks, I'm going to fix this in the next release (I know exactly why this happens...) [[User:Lensovet|lensovet]] 17:44, 8 April 2007 (EDT)&lt;br /&gt;
:::Hoping to see this get resolved. Started happening to me the other day :-( ~pianomansam &amp;quot;at&amp;quot; yahoo 01:24, 29 May 2007 (EDT)&lt;br /&gt;
::::This should be fixed in the latest release, please let me know if it's fixed. [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Several small problems ==&lt;br /&gt;
&lt;br /&gt;
I keep getting a New Version Available Growl alert. When I select &amp;quot;Force Update Now&amp;quot; I just get the alert again an nothing is updated or downloaded. I have had to turn this notification off.&lt;br /&gt;
&lt;br /&gt;
About FMenu does nothing, either. Finder tells me I have version 2.1.&lt;br /&gt;
&lt;br /&gt;
Menu tells me I have &amp;quot;1 Shares in Inbox&amp;quot;, but my account says otherwise.&lt;br /&gt;
:Sorry about that, that was a slip-up of mine. However, please do download again as there were some changes I made (without releasing a new &amp;quot;version&amp;quot;). Sorry for the confusion... [[User:Lensovet|lensovet]] 00:41, 3 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::I'm having the same &amp;quot;1 Shares in Inbox&amp;quot; issue, redownloaded twice no change. — May 7&lt;br /&gt;
&lt;br /&gt;
:::Ditto for my acount on May 9th 2007. - Snorre Milde&lt;br /&gt;
::::Thanks for drawing my attention to this, I was parsing the data returned from Facebook incorrectly. [http://fmenu.svn.sourceforge.net/viewvc/fmenu/UpdateMethods.mm?r1=40&amp;amp;r2=42 I've fixed this in the code] and should have a new release out relatively soon (once I'm done with finals). [[User:Lensovet|lensovet]] 14:51, 10 May 2007 (EDT)&lt;br /&gt;
::::Both issues should be fixed as of the latest release, please give it a try. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Help from Fmenu screen capture ==&lt;br /&gt;
&lt;br /&gt;
Mr. Borokhov:&lt;br /&gt;
&lt;br /&gt;
I found your program FMenu on MacUpdate and have a question regarding the screen capture graphic provided entitled &amp;quot;Facebox-ss.png.&amp;quot; What is the menubar program indicated by the musical note icon two positions to the right of the Fmenu icon? Is it some kind of iTunes controller? I have been looking for this icon for some time and would appreciate your help.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
Peter Mellis&lt;br /&gt;
&lt;br /&gt;
pedserdoc@mac.com&lt;br /&gt;
:Hi there, it's not an iTunes controller but a plugin for [http://last.fm last.fm] that submits the songs I play to [http://www.last.fm/user/lensovet/ my last.fm account]. You can find it at http://www.last.fm/tools/downloadplugin/?id=11&lt;br /&gt;
&lt;br /&gt;
== FMenu Crashes after login ==&lt;br /&gt;
&lt;br /&gt;
Hi there,&lt;br /&gt;
&lt;br /&gt;
Been using FMenu for a while, it's a great distraction! Now, however, it immediately quits after I log in. Seems to only happen when I log in using my profile, but not with a friend's. Here's what I get in the console. Any help would be appreciated!&lt;br /&gt;
&lt;br /&gt;
2007-04-11 10:12:06.251 FMenu[22567] Performing full update&lt;br /&gt;
2007-04-11 10:12:06.383 FMenu[22567] got wall&lt;br /&gt;
2007-04-11 10:12:06.931 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;users_getInfo_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot; list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;user&amp;gt;&amp;lt;uid&amp;gt;72600023&amp;lt;/uid&amp;gt;&amp;lt;wall_count&amp;gt;132&amp;lt;/wall_count&amp;gt;&amp;lt;/user&amp;gt;&amp;lt;/users_getInfo_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:07.529 FMenu[22567] got notifications&lt;br /&gt;
2007-04-11 10:12:08.394 FMenu[22567] got all events&lt;br /&gt;
2007-04-11 10:12:08.403 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;notifications_get_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot;&amp;gt;&amp;lt;messages&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;1176214194&amp;lt;/most_recent&amp;gt;&amp;lt;/messages&amp;gt;&amp;lt;pokes&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;0&amp;lt;/most_recent&amp;gt;&amp;lt;/pokes&amp;gt;&amp;lt;shares&amp;gt;&amp;lt;unread&amp;gt;0&amp;lt;/unread&amp;gt;&amp;lt;most_recent&amp;gt;0&amp;lt;/most_recent&amp;gt;&amp;lt;/shares&amp;gt;&amp;lt;friend_requests list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/friend_requests&amp;gt;&amp;lt;group_invites list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/group_invites&amp;gt;&amp;lt;event_invites list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/event_invites&amp;gt;&amp;lt;/notifications_get_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:09.357 FMenu[22567] got upcoming events&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x485e590 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x441bd20 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.375 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4809460 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x3c3f30 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x48ef1f0 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f314 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4418620 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f154 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x48b4d80 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61afc20 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61afc80 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61d24b0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x61ea850 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x442d1e0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x442c620 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x1f144 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.376 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4433560 of class NSConcreteMutableData autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x445f4c0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4877310 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x441caa0 of class NSURL autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.377 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x3c99b0 of class NSURLRequest autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.378 FMenu[22567] *** _NSAutoreleaseNoPool(): Object 0x4851560 of class NSURLConnection autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-04-11 10:12:09.651 FMenu[22567] &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;events_get_response xmlns=&amp;quot;http://api.facebook.com/1.0/&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&amp;quot; list=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/events_get_response&amp;gt;&lt;br /&gt;
2007-04-11 10:12:10.374 FMenu[22567] got friend profiles&lt;br /&gt;
Apr 11 10:12:10 Ana crashdump[22568]: FMenu crashed&lt;br /&gt;
&lt;br /&gt;
Edit: this does not happen with version 2.0&lt;br /&gt;
:Hi there, thanks for the feedback! It looks like you might have gotten a bad release – try downloading again and let me know if this still happens...thanks! [[User:Lensovet|lensovet]] 00:16, 12 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
The same thing happens when I try a new version. Have tried to delete preferences as well. As I said, it still only happens when I log in with my username, pochaf at mcmaster dot ca and not any other profile.&lt;br /&gt;
: That's really strange. I know there are issues that need to be fixed in 2.1; maybe fixing them will fix your problem too. Stay tuned and please accept my apologies... [[User:Lensovet|lensovet]] 23:28, 14 April 2007 (EDT)&lt;br /&gt;
::Please give the latest version a try and let me know if the error still occurs. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
i get the same error:&lt;br /&gt;
&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ea10d0 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ea7b20 of class NSCFDate autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5071080 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5004110 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e1f890 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x321eb0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cc2930 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f314 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x311210 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f154 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x3dacb0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e24270 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cac5e0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.406 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cbc660 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4e4a6c0 of class NSCFArray autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4cca6b0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c6f610 of class NSIdEnumerator autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x1f144 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c96390 of class NSConcreteMutableData autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c888d0 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4ca4f10 of class NSCFString autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x4c768e0 of class NSURL autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x5060840 of class NSURLRequest autoreleased with no pool in place - just leaking&lt;br /&gt;
2007-06-14 00:50:57.407 FMenu[263] *** _NSAutoreleaseNoPool(): Object 0x38d170 of class NSURLConnection autoreleased with no pool in place - just leaking&lt;br /&gt;
Jun 14 00:50:58 Fusion-G5 crashdump[264]: FMenu crashed&lt;br /&gt;
Jun 14 00:50:58 Fusion-G5 crashdump[264]: crash report written to: /Users/plasmicmac/Library/Logs/CrashReporter/FMenu.crash.log&lt;br /&gt;
&lt;br /&gt;
== updating issues with the new facebook layout ==&lt;br /&gt;
&lt;br /&gt;
Hello!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems with the launch of the new Facebook layout that I'm not getting updates to FMenu anymore.  No notification of new messages, comments, profile changes, nothing.&lt;br /&gt;
&lt;br /&gt;
Didn't see this here as a documented bug so I wanted to post and see if you knew what was up.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
:As far as I know, FMenu shouldn't be affected by the new layout. Try restarting the program to see if it fixes the problem and let me know. [[User:Lensovet|lensovet]] 23:29, 14 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
http://developers.facebook.com/news.php?blog=1&amp;amp;story=18&lt;br /&gt;
Infinate sessions now availible from Facebook! =)&lt;br /&gt;
:Yes, and they are now implemented as of 2.5! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu quitting on MBP sleep ==&lt;br /&gt;
&lt;br /&gt;
Whenever I sleep my MBP for any length of time, FMenu 2.1 will quit. - johnl1479 13:04, 6 May 2007 (CST)&lt;br /&gt;
:I have a rough idea as to why this is happening and hope to release a fix soon. Thanks! [[User:Lensovet|lensovet]] 03:09, 7 May 2007 (EDT)&lt;br /&gt;
:Please give the latest release a try and let me know if it's any better. Thanks again! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
I have a crash log for FMenu, which keeps crashing when the computer sleeps (or at least thats what I think). How should I send it to you?&lt;br /&gt;
&lt;br /&gt;
== Better handling of loosing internet connection ==&lt;br /&gt;
&lt;br /&gt;
Whenever I disconnect my computer from the internet I get a weird error message. Would like to see this handled better. Screencap to come...&lt;br /&gt;
:Please let me know if this has been resolved in the latest version. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Quitting (safari 3?) ==&lt;br /&gt;
&lt;br /&gt;
I also posted this on the facebook group, but thought you'd check this more often.&lt;br /&gt;
Ever since installing safari 3, fmenu quits a couple of minutes after logging in. the login and checking stuff works fine but then I look up and FMenu is gone... --[[User:82.43.144.131|82.43.144.131]] 06:21, 15 June 2007 (EDT)&lt;br /&gt;
:Please give the latest version a try and let me know if it's gotten any better. Thanks! [[User:Lensovet|lensovet]] 01:49, 5 July 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu 2.5 Login Window doesn't show up ==&lt;br /&gt;
&lt;br /&gt;
This is the error that the console shows: &amp;quot;2007-07-05 01:36:45.080 FMenu[8801] Could not gen auth token&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SOLVED: Deleted the preference file for FMenu and it worked.&lt;br /&gt;
&lt;br /&gt;
== Fmenu Greyed out? ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
Just started to use your Fmenu menubar app, its great except that I cannot get it to work now.&lt;br /&gt;
Heres the scenario.&lt;br /&gt;
I added the app at work, and it ran fine. I then installed the app at home, again it worked a treat. After a couple of days I quit the app at my home and on restarting it, it now only displays a grey F logo, going to the login option does nothing except kind of make the menu item flash once. Ok I thought I can live without it at home. &lt;br /&gt;
Now the same situation has happened on my work computer. Grey F Logo and no way to log in.&lt;br /&gt;
I have removed the app, and re-installed but this did not solve the problem. I have looked for a preference file but a search for fmenu only reveals the applicaton.&lt;br /&gt;
Is there a solution ? Is there a pref file I can throw? &lt;br /&gt;
&lt;br /&gt;
Any help will be appreciated. Thanks&lt;br /&gt;
:Hey there, the preference file is actually net.lensovet.FaceMenu.plist, due to the program's older name. Try deleting that to see if the problem is resolved. [[User:Lensovet|lensove†]] 05:08, 11 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::Hi! I've had the same problem as described above and tested to delete the preference file. After this, when opening the login window and logging in, the icon is still grey but the login window is showing my Facbook homepage.. Any solutions..??&lt;br /&gt;
:::Please download the latest version, 3.0, and let me know if this is still a problem...thanks![[User:Lensovet|lensove†]]&lt;br /&gt;
&lt;br /&gt;
== New wall posts (rather than just the number?) ==&lt;br /&gt;
&lt;br /&gt;
I was wondering if there was a way that new wall posts could appear in FMenu. &lt;br /&gt;
&lt;br /&gt;
I know there's no API support for these in the same way that there is for a new message, but perhaps the number of posts you had when you last checked FMenu could be compared with the latest value? I don't know if this is possible, but it would be easier to see 123 posts (1 new) than remembering that you last had 122.&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
-Also, is there any way that only the new wall post # can be incorporated into the number that appears in the menu bar, rather than selecting wall posts and  seeing 1860 (this might be the same as what previous commenter wrote)? This way if you had one new wall post, next to the Facebook logo, a 1 would appear.&lt;br /&gt;
&lt;br /&gt;
== Unsupported Architecture ==&lt;br /&gt;
When trying to update to 3.0 (downloaded from sourceforge via the link on this wiki) I get an error message that &amp;quot;You can't open the application &amp;quot;FMenu 2&amp;quot; because it is not supported on this architecture.&amp;quot;  I'm running on a recent Mac Book Pro.&lt;br /&gt;
&lt;br /&gt;
The error message &amp;amp; quickview icon appearance are here: http://jeffmlr.net/images/error.jpg  http://jeffmlr.net/images/quickview.jpg&lt;br /&gt;
:Hi there, I have no idea why this happens but I did have one other report of this. Please make sure that you delete all other versions of FMenu from your machine, then redownload the file and try to drag it to your applications folder. Also, see if relaunching the Finder or restarting your computer solves the issue...sorry! [[User:Lensovet|lensove†]] 05:41, 6 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== FMenu just does not work? ==&lt;br /&gt;
&lt;br /&gt;
I have downloaded FMenu and Growl, but when i double-click on FMenu nothing happens. When I go to my Growl preferences, and go to the applications tab, I can't do anything on it, does that mean that I do not have an application that works with growl on my mac? I have a Macbook with OS X 10.5.3.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Help:Edit_conflict&amp;diff=6002</id>
		<title>Help:Edit conflict</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Help:Edit_conflict&amp;diff=6002"/>
		<updated>2011-01-13T07:14:47Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;Help:Edit conflict&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{H:h|editor toc}}&lt;br /&gt;
&lt;br /&gt;
This page discusses '''edit conflicts''', and how to deal with them. To understand what an edit conflict is, consider the following situation:&lt;br /&gt;
&lt;br /&gt;
* Alice clicks &amp;quot;Edit this page&amp;quot; on a page.&lt;br /&gt;
* Bob clicks &amp;quot;Edit this page&amp;quot; on the same page.&lt;br /&gt;
* Alice finishes her edits and clicks &amp;quot;Save page&amp;quot;. The page is saved with Alice's version.&lt;br /&gt;
* Bob finished his edits and clicks &amp;quot;Save page&amp;quot;. Bob gets an &amp;quot;'''edit conflict'''&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
== Layout of the edit conflict page ==&lt;br /&gt;
&lt;br /&gt;
At the top is Alice's version of the whole page, even if Bob is doing section editing.&lt;br /&gt;
&lt;br /&gt;
At the bottom is the text Bob was going to submit. This will be Bob's version of the page, if he edited the entire page, or Bob's version of the section he edited, if he was editing just one section.&lt;br /&gt;
&lt;br /&gt;
In the middle is a diff of the two pieces of text. For the section Bob is editing it shows Bob's changes and Alice's possible changes, except what both have changed in the same way. For the other sections it shows the full new text as if all that text was added.&lt;br /&gt;
&lt;br /&gt;
Bob can edit the upper text and press Save. ''In the case Bob was doing section editing this will be interpreted as the new version of the section, hence produce duplication of the other sections, unless Bob deletes them before saving.'' (This seems to be a bug.)  The best solution in this case is to ''save your new text'' (e.g., to the Windows Clipboard), cancel out, then try again.&lt;br /&gt;
&lt;br /&gt;
When pressing Save and the system is slow, one may be able to make another edit and press Save again before the system responds. ''This gives an '''edit conflict''' with oneself.'' In this case the upper text may be the old version instead of the one involving the first edit, i.e. the system notices the earlier change but has not processed it yet. A moment later. while one is looking at the edit conflict page, the first change is carried out in the background, and the upper text no longer is the current one. Hence, the diff shows the combined edit, and in the case of section editing, like before, the &amp;quot;addition&amp;quot; of the other sections.&lt;br /&gt;
&lt;br /&gt;
== Resolving an edit conflict ==&lt;br /&gt;
&lt;br /&gt;
If Bob only made small changes, and Alice made large changes, he may choose to work from Alice's version, and re-merge his changes in. Bob might choose to add some text like &amp;quot;via edit conflict&amp;quot; to warn Alice and others that he had to do this - Alice can then [[Meatball:PeerReview|peer review]] his merging for accuracy.&lt;br /&gt;
&lt;br /&gt;
If Bob made large changes, and Alice made small changes, he may choose to work from his version. One option is for Bob to copy the bottom text into the top text (or just copy over the one section of the top text, if Bob was section editing), with an appropriate [[Help:Edit summary|edit summary]] (eg &amp;quot;via edit conflict, will remerge&amp;quot;). Then Bob can view the page history, determine Alice's changes, and re-apply them to his version, in a separate edit.&lt;br /&gt;
&lt;br /&gt;
If both Alice and Bob made large changes, matters become complicated, and Alice and Bob just have to do the best they can. For example, if both Alice and Bob simultaneously add a large section of text on the same subject, then it may be best for Bob to submit his changes, and then for Alice and Bob to both have a look at the two versions and decide between themselves which version is better.&lt;br /&gt;
&lt;br /&gt;
Bob should not just post his changes over the top of Alice's. We assume good faith - mistakes are occasionally made, and newcomers may not understand the edit conflict window. However, Bob must not routinely ignore edit conflicts. It is absolutely not acceptable for Bob to overwrite Alice out of laziness. We encourage contributors to double-check their merges by using the [[Help:Diff|diff]] feature.&lt;br /&gt;
&lt;br /&gt;
== Logical edit conflicts ==&lt;br /&gt;
&lt;br /&gt;
(This is a conflict between editors that is undetectable by the mechanism that decides whether to give the &amp;quot;edit conflict&amp;quot; message.)&lt;br /&gt;
&lt;br /&gt;
Some people edit by copying the source text into a text editor, making lots of changes (reorganising, adding new content, etc...), and then, when they're done, pasting the whole thing back onto Wikipedia as a single (new) edit. If someone else has made changes in the meantime these changes would get lost in the paste back. People who edit in this manner should either:&lt;br /&gt;
&lt;br /&gt;
* paste only into the same edit box that was originally copied from, or&lt;br /&gt;
* check the page history for such edits, and merge the changes before pasting back.&lt;br /&gt;
&lt;br /&gt;
==Mistakes==&lt;br /&gt;
&lt;br /&gt;
Sometimes mistakes will be made in the merging process, because Bob is human, and this may cause some of Alice's changes to be accidentally reversed. Logical edit conflicts aren't always immediately visible. Sometimes Bob may have good reasons for thinking that Alice's improvements aren't useful. In these case, Alice and Bob are expected to resolve their differences amicably.&lt;br /&gt;
&lt;br /&gt;
If Alice made a small change, which Bob accidentally reversed, then Alice must not revert to her version. It is absolutely not acceptable for Alice to reverse Bob's major improvements to the page out of a desire to protect her minor improvements, or to punish Bob for his carelessness. This is particularly important if the page has subsequently been edited by, say, Sarah and Jonathan.&lt;br /&gt;
&lt;br /&gt;
The best approach for Alice in this circumstance is for Alice to edit Bob's version, reinstate her minor improvements, and leave Bob's major improvements intact. She may also add something to the edit summary to indicate that she had to do this - for example: &amp;quot;Reinstating link which Bob accidentally removed&amp;quot;. Bob should then apologise to Alice for his mistake, and thank her for reinstating her improvement.&lt;br /&gt;
&lt;br /&gt;
If Bob repeats his error, then the best approach is for Alice to have a friendly word on his talk page, point him to this page, and ask him if he could take a little more care in the future. This is particularly important for newcomers, who may not understand the correct way to resolve edit conflicts, though even experienced users may need the occasional friendly '''reminder'''.&lt;br /&gt;
&lt;br /&gt;
==Reverting==&lt;br /&gt;
&lt;br /&gt;
When saving a previous version (i.e. when reverting) or a new version based on that (a modified reversion) the edit conflict warning and prevention system is not triggered and a possible new edit made in the meantime is unintentionally reverted also, see [[Help:Reverting|Reverting a page to an earlier version]]. To avoid this problem one can copy the text from the edit box of the old version into the edit box of the latest version. In some sense, this can cause ''hidden edit conflicts'': you may overwrite someone else's changes without realising that you are doing so. It's always wise to check the [[Help:Diff|diff]] after performing a revert, just as you would after posting via edit conflict. Preferably, one can simply try to avoid reversion wars.&lt;br /&gt;
&lt;br /&gt;
== Prevention ==&lt;br /&gt;
&lt;br /&gt;
Because edit conflicts are irritating and time-consuming, you may choose to alter your editing habits to render them less frequent: aiming to make more edits to pages that have not been edited recently, such as those listed on [[Special:Ancientpages|ancient pages]], for example.&lt;br /&gt;
&lt;br /&gt;
Another means of avoiding edit conflicts is to make a single larger change, rather than frequent smaller changes: this makes it more likely that you will get an edit conflict, but less likely that you will cause others to get an edit conflict. Using the &amp;quot;[[Help:Show preview|Show preview]]&amp;quot; button helps here.&lt;br /&gt;
&lt;br /&gt;
To reduce the chance of edit conflicts, Wikipedia has an &amp;quot;In Use&amp;quot; notice in its [[Help:Template|Template]] namespace that people may use when editing a page over a long period of time.  Simply put &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{{inuse}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; on an article before proceeding with a major edit, and remove the template when the editing is complete.&lt;br /&gt;
&lt;br /&gt;
New since v.1.3 is CVS-style edit conflict merging, based on the diff3 utility. This feature will only trigger an edit conflict if users attempt to edit the same few lines. See also [[Meatball:MergingAutomatically|automatic merge]].&lt;br /&gt;
&lt;br /&gt;
{{H:f|langs=|enname=Edit conflict}}&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Help:Edit_conflict&amp;diff=6001</id>
		<title>Help:Edit conflict</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Help:Edit_conflict&amp;diff=6001"/>
		<updated>2011-01-13T07:14:35Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{H:h|editor toc}}&lt;br /&gt;
&lt;br /&gt;
This page discusses '''edit conflicts''', and how to deal with them. To understand what an edit conflict is, consider the following situation:&lt;br /&gt;
&lt;br /&gt;
* Alice clicks &amp;quot;Edit this page&amp;quot; on a page.&lt;br /&gt;
* Bob clicks &amp;quot;Edit this page&amp;quot; on the same page.&lt;br /&gt;
* Alice finishes her edits and clicks &amp;quot;Save page&amp;quot;. The page is saved with Alice's version.&lt;br /&gt;
* Bob finished his edits and clicks &amp;quot;Save page&amp;quot;. Bob gets an &amp;quot;'''edit conflict'''&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
== Layout of the edit conflict page ==&lt;br /&gt;
&lt;br /&gt;
At the top is Alice's version of the whole page, even if Bob is doing section editing.&lt;br /&gt;
&lt;br /&gt;
At the bottom is the text Bob was going to submit. This will be Bob's version of the page, if he edited the entire page, or Bob's version of the section he edited, if he was editing just one section.&lt;br /&gt;
&lt;br /&gt;
In the middle is a diff of the two pieces of text. For the section Bob is editing it shows Bob's changes and Alice's possible changes, except what both have changed in the same way. For the other sections it shows the full new text as if all that text was added.&lt;br /&gt;
&lt;br /&gt;
Bob can edit the upper text and press Save. ''In the case Bob was doing section editing this will be interpreted as the new version of the section, hence produce duplication of the other sections, unless Bob deletes them before saving.'' (This seems to be a bug.)  The best solution in this case is to ''save your new text'' (e.g., to the Windows Clipboard), cancel out, then try again.&lt;br /&gt;
&lt;br /&gt;
When pressing Save and the system is slow, one may be able to make another edit and press Save again before the system responds. ''This gives an '''edit conflict''' with oneself.'' In this case the upper text may be the old version instead of the one involving the first edit, i.e. the system notices the earlier change but has not processed it yet. A moment later. while one is looking at the edit conflict page, the first change is carried out in the background, and the upper text no longer is the current one. Hence, the diff shows the combined edit, and in the case of section editing, like before, the &amp;quot;addition&amp;quot; of the other sections.&lt;br /&gt;
&lt;br /&gt;
== Resolving an edit conflict ==&lt;br /&gt;
&lt;br /&gt;
If Bob only made small changes, and Alice made large changes, he may choose to work from Alice's version, and re-merge his changes in. Bob might choose to add some text like &amp;quot;via edit conflict&amp;quot; to warn Alice and others that he had to do this - Alice can then [[Meatball:PeerReview|peer review]] his merging for accuracy.&lt;br /&gt;
&lt;br /&gt;
If Bob made large changes, and Alice made small changes, he may choose to work from his version. One option is for Bob to copy the bottom text into the top text (or just copy over the one section of the top text, if Bob was section editing), with an appropriate [[Help:Edit summary|edit summary]] (eg &amp;quot;via edit conflict, will remerge&amp;quot;). Then Bob can view the page history, determine Alice's changes, and re-apply them to his version, in a separate edit.&lt;br /&gt;
&lt;br /&gt;
If both Alice and Bob made large changes, matters become complicated, and Alice and Bob just have to do the best they can. For example, if both Alice and Bob simultaneously add a large section of text on the same subject, then it may be best for Bob to submit his changes, and then for Alice and Bob to both have a look at the two versions and decide between themselves which version is better.&lt;br /&gt;
&lt;br /&gt;
Bob should not just post his changes over the top of Alice's. We assume good faith - mistakes are occasionally made, and newcomers may not understand the edit conflict window. However, Bob must not routinely ignore edit conflicts. It is absolutely not acceptable for Bob to overwrite Alice out of laziness. We encourage contributors to double-check their merges by using the [[Help:Diff|diff]] feature.&lt;br /&gt;
&lt;br /&gt;
== Logical edit conflicts ==&lt;br /&gt;
&lt;br /&gt;
(This is a conflict between editors that is undetectable by the mechanism that decides whether to give the &amp;quot;edit conflict&amp;quot; message.)&lt;br /&gt;
&lt;br /&gt;
Some people edit by copying the source text into a text editor, making lots of changes (reorganising, adding new content, etc...), and then, when they're done, pasting the whole thing back onto Wikipedia as a single (new) edit. If someone else has made changes in the meantime these changes would get lost in the paste back. People who edit in this manner should either:&lt;br /&gt;
&lt;br /&gt;
* paste only into the same edit box that was originally copied from, or&lt;br /&gt;
* check the page history for such edits, and merge the changes before pasting back.&lt;br /&gt;
&lt;br /&gt;
==Mistakes==&lt;br /&gt;
&lt;br /&gt;
Sometimes mistakes will be made in the merging process, because Bob is human, and this may cause some of Alice's changes to be accidentally reversed. Logical edit conflicts aren't always immediately visible. Sometimes Bob may have good reasons for thinking that Alice's improvements aren't useful. In these case, Alice and Bob are expected to resolve their differences amicably.&lt;br /&gt;
&lt;br /&gt;
If Alice made a small change, which Bob accidentally reversed, then Alice must not revert to her version. It is absolutely not acceptable for Alice to reverse Bob's major improvements to the page out of a desire to protect her minor improvements, or to punish Bob for his carelessness. This is particularly important if the page has subsequently been edited by, say, Sarah and Jonathan.&lt;br /&gt;
&lt;br /&gt;
The best approach for Alice in this circumstance is for Alice to edit Bob's version, reinstate her minor improvements, and leave Bob's major improvements intact. She may also add something to the edit summary to indicate that she had to do this - for example: &amp;quot;Reinstating link which Bob accidentally removed&amp;quot;. Bob should then apologise to Alice for his mistake, and thank her for reinstating her improvement.&lt;br /&gt;
&lt;br /&gt;
If Bob repeats his error, then the best approach is for Alice to have a friendly word on his talk page, point him to this page, and ask him if he could take a little more care in the future. This is particularly important for newcomers, who may not understand the correct way to resolve edit conflicts, though even experienced users may need the occasional friendly '''reminder'''.&lt;br /&gt;
&lt;br /&gt;
==Reverting==&lt;br /&gt;
&lt;br /&gt;
When saving a previous version (i.e. when reverting) or a new version based on that (a modified reversion) the edit conflict warning and prevention system is not triggered and a possible new edit made in the meantime is unintentionally reverted also, see [[Help:Reverting|Reverting a page to an earlier version]]. To avoid this problem one can copy the text from the edit box of the old version into the edit box of the latest version. In some sense, this can cause ''hidden edit conflicts'': you may overwrite someone else's changes without realising that you are doing so. It's always wise to check the [[Help:Diff|diff]] after performing a revert, just as you would after posting via edit conflict. Preferably, one can simply try to avoid reversion wars.&lt;br /&gt;
&lt;br /&gt;
== Prevention ==&lt;br /&gt;
&lt;br /&gt;
Because edit conflicts are irritating and time-consuming, you may choose to alter your editing habits to render them less frequent: aiming to make more edits to pages that have not been edited recently, such as those listed on [[Special:Ancientpages|ancient pages]], for example.&lt;br /&gt;
&lt;br /&gt;
Another means of avoiding edit conflicts is to make a single larger change, rather than frequent smaller changes: this makes it more likely that you will get an edit conflict, but less likely that you will cause others to get an edit conflict. Using the &amp;quot;[[Help:Show preview|Show preview]]&amp;quot; button helps here.&lt;br /&gt;
&lt;br /&gt;
To reduce the chance of edit conflicts, Wikipedia has an &amp;quot;In Use&amp;quot; notice in its [[Help:Template|Template]] namespace that people may use when editing a page over a long period of time.  Simply put &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{{inuse}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; on an article before proceeding with a major edit, and remove the template when the editing is complete.&lt;br /&gt;
&lt;br /&gt;
New since v.1.3 is CVS-style edit conflict merging, based on the diff3 utility. This feature will only trigger an edit conflict if users attempt to edit the same few lines. See also [[Meatball:MergingAutomatically|automatic merge]].&lt;br /&gt;
&lt;br /&gt;
{{H:f|langs=|enname=Edit conflict}}&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Help:Editing&amp;diff=6000</id>
		<title>Help:Editing</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Help:Editing&amp;diff=6000"/>
		<updated>2011-01-13T07:11:37Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{H:h|editor toc}}&lt;br /&gt;
This &amp;quot;Editing Overview&amp;quot; is intended to be a '''very brief and short introduction''' to wiki editing. &lt;br /&gt;
Each of the topics covered here is covered somewhere else in more detail. Look at the right hand side of the table (the one with many clickable links).&lt;br /&gt;
&lt;br /&gt;
You may want to keep '''[[Help:Wikitext examples]]''' or '''[[Help:Wikitext_reference]]''' open while editing when you need more advanced wikitext and editing skills. If you want view a full guide in one page, please go to '''[[Help:Editing all-in-one guide]]'''.&lt;br /&gt;
&lt;br /&gt;
== Editing Basics ==&lt;br /&gt;
&amp;lt;!--It is intended to be brief, or as an overview. Otherwise why we separate the materials into different pages? Thus it's best NOT to add new materials or expand here. Add more examples or expand in other areas like Wikitext examples. Thanks!--&amp;gt;&lt;br /&gt;
&amp;quot;Edit this page&amp;quot; starts and restarts an edit.  Below the edit box,&amp;quot;Cancel&amp;quot; stops an edit. &amp;quot;Show changes&amp;quot; compares the current text with your text. &amp;quot;Edit summary&amp;quot; is where you tell the page history what you did. &amp;quot;Show preview&amp;quot; shows your text and lets you make corrections.  Only &amp;quot;Save page&amp;quot; makes your edit the current text and puts a link to it on the page history. &lt;br /&gt;
To experiment, go to &amp;quot;sandbox&amp;quot;. See also: [[help:Talk page|talk pages]], [[w:MediaWiki|MediaWiki]], [[w:wikitext|wikitext]], [[Help:Edit summary|edit summary]], [[Wikipedia:Edit_summary_legend]], [[Help:Show preview|Show preview]], &amp;amp;  [[sandbox]].&lt;br /&gt;
&lt;br /&gt;
== Basic formatting ==&lt;br /&gt;
Wikipedia was the first &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.wikimedia.org/ Wikimedia]&amp;lt;/span&amp;gt; project.&lt;br /&gt;
[[Image:Cheatsheet-en.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Most Frequent Wiki Markup Explained==&lt;br /&gt;
&amp;lt;!--It is intended to be brief, or as an overview. Otherwise why we separate the materials into different pages? Thus it's best NOT to add new materials or expand here. Add more examples or expand in other areas like Wikitext examples. Thanks!--&amp;gt;&lt;br /&gt;
This section is intended to introduce wiki markups to new comers. That's why we just pick up about 6 most frequently used wiki markups from Wikitext examples. It is not intended to be a comprehensive explanation of all wiki markups. Otherwise you should take a look at the following: &lt;br /&gt;
*[[Help:Wikitext examples]]&lt;br /&gt;
*[[Help:Wikitext_reference]]&lt;br /&gt;
*[[Help:Reference card]] - a one-page summary of important commands, to be printed out and used next to the computer&lt;br /&gt;
*[[Help:HTML in wikitext]]&lt;br /&gt;
*[[w:HTML element|HTML elements]] - introduction to HTML&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
!width=&amp;quot;1000&amp;quot; style=&amp;quot;background:#FFFF99&amp;quot;|What it looks like&lt;br /&gt;
!width=&amp;quot;500&amp;quot; style=&amp;quot;background:#FFFF99&amp;quot;|What you type&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
You can ''italicize text'' by putting 2 &lt;br /&gt;
apostrophes on each side&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
You can ''italicize text'' by putting 2 &lt;br /&gt;
apostrophes on each side.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
3 apostrophes will bold '''the text'''. &lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
3 apostrophes will bold '''the text'''. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
5 apostrophes will bold and italicize &lt;br /&gt;
'''''the text'''''.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
5 apostrophes will bold and italicize &lt;br /&gt;
'''''the text'''''.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
(4 apostrophes don't do anything special &lt;br /&gt;
&lt;br /&gt;
-- there's just ''''one left over''''.)&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
(4 apostrophes don't do anything special &lt;br /&gt;
&lt;br /&gt;
-- there's just ''''one left over''''.)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
You should &amp;quot;sign&amp;quot; your comments on talk&lt;br /&gt;
&lt;br /&gt;
pages: &amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
You should &amp;quot;sign&amp;quot; your comments on talk&lt;br /&gt;
&lt;br /&gt;
 pages: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Three tildes gives your user name:&lt;br /&gt;
&lt;br /&gt;
User Name&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
Three tildes gives your user name:&lt;br /&gt;
&lt;br /&gt;
~~~&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Four tildes give your user name plus &lt;br /&gt;
&lt;br /&gt;
date/time: User Name  &lt;br /&gt;
&lt;br /&gt;
07:46, 27 November 2005 (UTC) &amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
Four tildes give your user name plus&lt;br /&gt;
&lt;br /&gt;
date/time: ~~~~ &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Five tildes gives the date/time alone:&lt;br /&gt;
&lt;br /&gt;
07:46, 27 November 2005 (UTC) &amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
Five tildes gives the date/time alone: &lt;br /&gt;
&lt;br /&gt;
~~~~~&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
== Section headings ==&lt;br /&gt;
&lt;br /&gt;
''Headings'' organize your writing into&lt;br /&gt;
&lt;br /&gt;
sections.&lt;br /&gt;
The Wiki software can automatically &lt;br /&gt;
&lt;br /&gt;
generate&lt;br /&gt;
a table of contents from them.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
== Section headings ==&lt;br /&gt;
&lt;br /&gt;
Start with 2 equals signs not 1 &lt;br /&gt;
because 1 creates H1 tags&lt;br /&gt;
which should be reserved for page title.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Subsection ===&lt;br /&gt;
&lt;br /&gt;
Using more equals signs creates a &lt;br /&gt;
&lt;br /&gt;
subsection.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
=== Subsection ===&lt;br /&gt;
&lt;br /&gt;
Using more equals signs creates a &lt;br /&gt;
&lt;br /&gt;
subsection.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==== A smaller subsection ====&lt;br /&gt;
&lt;br /&gt;
Don't skip levels, &lt;br /&gt;
like from two to four equals signs.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
==== A smaller subsection ====&lt;br /&gt;
&lt;br /&gt;
Don't skip levels, &lt;br /&gt;
like from two to four equals signs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* ''Unordered [[Help:List|list]]s'' &lt;br /&gt;
* Start every line with a star.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
* ''Unordered [[Help:List|list]]s'' &lt;br /&gt;
* Start every line with a star.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
#''Numbered lists'' &lt;br /&gt;
#use number sign&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
#''Numbered lists'' &lt;br /&gt;
#use number sign&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Link to a page named [[Official position]].&lt;br /&gt;
You can even say [[official position]]s&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
Link to a page named [[Official position]].&lt;br /&gt;
You can even say [[official position]]s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[The weather in Moscow]] is a page&lt;br /&gt;
&lt;br /&gt;
that doesn't exist&lt;br /&gt;
yet. You could create it by clicking&lt;br /&gt;
&lt;br /&gt;
on the link.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
[[The weather in Moscow]] is a page&lt;br /&gt;
that doesn't exist&lt;br /&gt;
yet. You could create it by clicking &lt;br /&gt;
&lt;br /&gt;
on the link.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
You can link to a page's section by its title:&lt;br /&gt;
*[[List of cities by country#Morocco]].&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
You can link to a page's section by its title:&lt;br /&gt;
*[[List of cities by country#Morocco]].&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
If multiple sections have the same title, add&lt;br /&gt;
a number. [[#Example section 3]] goes to the&lt;br /&gt;
third section named &amp;quot;Example section&amp;quot;.&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
If multiple sections have the same title, add&lt;br /&gt;
a number. [[#Example section 3]] goes to the&lt;br /&gt;
third section named &amp;quot;Example section&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Further Reading==&lt;br /&gt;
&amp;lt;!--More relevant links are welcome--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===About Editing===&lt;br /&gt;
*[[Help:Editing FAQ]]&lt;br /&gt;
*[[Help:Editing toolbar]]&lt;br /&gt;
*[[Help:Editing tips and tricks]]&lt;br /&gt;
*[[Help:Minor_edit]]&lt;br /&gt;
&lt;br /&gt;
===About Wiki Markups and Codes===&lt;br /&gt;
{{Meta}}&lt;br /&gt;
*[[Help:Wikitext examples]]&lt;br /&gt;
*[[Help:Wikitext_reference]]&lt;br /&gt;
*[[Help:Reference card]] - a one-page summary of important commands, to be printed out and used next to the computer&lt;br /&gt;
*[[Help:HTML in wikitext]]&lt;br /&gt;
*[[w:HTML element|HTML elements]] - introduction to HTML&lt;br /&gt;
&lt;br /&gt;
===Page Management===&lt;br /&gt;
*[[Help:Starting a new page]]&lt;br /&gt;
*[[Wikipedia:Merging_and_moving_pages|Merging_and_moving_pages]]&lt;br /&gt;
*[[Help:Administration#Page_protection| Protecting pages]]&lt;br /&gt;
*[[Meta:Deletion_policy|Deletion policy]]&lt;br /&gt;
**[[Wikipedia:Pure_wiki_deletion_system|Pure wiki deletion system]]&lt;br /&gt;
* For others, look at the table (&amp;quot;tools&amp;quot; part) on your right hand side&lt;br /&gt;
&lt;br /&gt;
===Others===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{h:f|enname=Editing}}&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Template:CS_projects&amp;diff=5999</id>
		<title>Template:CS projects</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Template:CS_projects&amp;diff=5999"/>
		<updated>2011-01-13T07:11:20Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;Template:CS projects&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=wikitable style = &amp;quot;margin: 1em auto; width: 45em; clear: both;&amp;quot; &lt;br /&gt;
! colspan=2| CS projects&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: right; width: 10em;&amp;quot; | Production software || style=&amp;quot;text-align: center; background: white;&amp;quot; | [[FMenu]] — [[WebGrabber]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: right; width: 10em;&amp;quot; | Class projects || style=&amp;quot;text-align: center; background: white;&amp;quot; | [[CS/61b/Projects|CS 61b]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: right; width: 10em;&amp;quot; | Misc || style=&amp;quot;text-align: center; background: white;&amp;quot; | [[lensowiki:Installation caveats|MediaWiki Installation caveats]] – [[Sony Clie on Mac OS X]] – [[Black screensaver]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Community_Portal&amp;diff=5998</id>
		<title>lensowiki:Community Portal</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Community_Portal&amp;diff=5998"/>
		<updated>2011-01-13T07:10:23Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;lensowiki:Community Portal&amp;quot;: Excessive spamming ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the '''Community Portal'''! For more information about the lensowiki project, see the [[lensowiki:About|About]] page.&lt;br /&gt;
&lt;br /&gt;
New articles will be announced and listed here, listed by subject.&lt;br /&gt;
&lt;br /&gt;
==Computer Science/IT==&lt;br /&gt;
*[[CS]] ''list of various CS projects, including personal projects and classwork''&lt;br /&gt;
*[[DC|DC++]] ''config instructions for Cal hub''&lt;br /&gt;
*[[lensowiki:Installation caveats|Installation caveats]] ''details the problems inherent in a MediaWiki installation with a UTF-8 encoding for the database tables and functional workarounds''&lt;br /&gt;
*[[Sony Clie on Mac OS X]] ''provides instructions for syncing Sony Clie handhelds on Mac OS X without Missing Sync''&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
*[[History of Alsace and Lorraine]] ''in French''&lt;br /&gt;
&lt;br /&gt;
==Personal records==&lt;br /&gt;
*[[Caltrain]] ''a nasty incident on Caltrain in which I was forced off a train after paying my fare with Translink''&lt;br /&gt;
*[[Photo shoots]] ''photo-shooting locations and notes''&lt;br /&gt;
*[[Swimming]] ''includes swimming workouts''&lt;br /&gt;
*[[Class schedule]] ''class schedules for past and current semesters''&lt;br /&gt;
*[[Academic plans]] ''4-year plans for graduation''&lt;br /&gt;
&lt;br /&gt;
Stay tuned.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Community_Portal&amp;diff=5997</id>
		<title>lensowiki:Community Portal</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Community_Portal&amp;diff=5997"/>
		<updated>2011-01-13T07:10:08Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the '''Community Portal'''! For more information about the lensowiki project, see the [[lensowiki:About|About]] page.&lt;br /&gt;
&lt;br /&gt;
New articles will be announced and listed here, listed by subject.&lt;br /&gt;
&lt;br /&gt;
==Computer Science/IT==&lt;br /&gt;
*[[CS]] ''list of various CS projects, including personal projects and classwork''&lt;br /&gt;
*[[DC|DC++]] ''config instructions for Cal hub''&lt;br /&gt;
*[[lensowiki:Installation caveats|Installation caveats]] ''details the problems inherent in a MediaWiki installation with a UTF-8 encoding for the database tables and functional workarounds''&lt;br /&gt;
*[[Sony Clie on Mac OS X]] ''provides instructions for syncing Sony Clie handhelds on Mac OS X without Missing Sync''&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
*[[History of Alsace and Lorraine]] ''in French''&lt;br /&gt;
&lt;br /&gt;
==Personal records==&lt;br /&gt;
*[[Caltrain]] ''a nasty incident on Caltrain in which I was forced off a train after paying my fare with Translink''&lt;br /&gt;
*[[Photo shoots]] ''photo-shooting locations and notes''&lt;br /&gt;
*[[Swimming]] ''includes swimming workouts''&lt;br /&gt;
*[[Class schedule]] ''class schedules for past and current semesters''&lt;br /&gt;
*[[Academic plans]] ''4-year plans for graduation''&lt;br /&gt;
&lt;br /&gt;
Stay tuned.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu&amp;diff=5996</id>
		<title>FMenu</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu&amp;diff=5996"/>
		<updated>2011-01-13T07:08:32Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;FMenu&amp;quot;: Excessive spamming ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{/flash}}&lt;br /&gt;
[[Image:FMenu-main.png|thumb|400px|Screenshot of FMenu]]&lt;br /&gt;
[[Image:Fmenu-prefs.png|thumb|400px|Screenshot of FMenu prefs window]]&lt;br /&gt;
'''FMenu''' is a program for [[w:Mac OS X|Mac OS X]] and [[w:Facebook|Facebook]] that sits in the menu bar (near the clock) and provides notifications about various events. In addition, it provides a menu to easily access common Facebook pages and keeps a count of your messages, pokes, events, friend requests, wall posts, and photo comments. It also features a &amp;quot;Quicklaunch&amp;quot; box which gives you immediate access to your friends' profiles, groups, and events, as well as Facebook searches (type a phrase and press enter). Notifications are issued using [[w:Growl|Growl]] and can be customized to the user's liking (including turning on/off and customizing display style). They are:&lt;br /&gt;
*A friend updated his profile&lt;br /&gt;
*A friend changed his status&lt;br /&gt;
*A friend wrote a new note&lt;br /&gt;
*Someone wrote on your wall&lt;br /&gt;
*You have new messages&lt;br /&gt;
*You have new pokes&lt;br /&gt;
*You have new friend requests&lt;br /&gt;
FMenu checks for updates by default every 7 seconds (or at whatever interval you set), but checks for each kind of notification (friend details, friend requests, wall, messages/pokes, events) separately. Consequently each particular type of notification is refreshed once every 42 seconds.&lt;br /&gt;
&lt;br /&gt;
'''Please note:''' this application will work with most of your friends. However, if you are not getting notifications for some friends, it probably means that they have opted out of releasing their info to applications using the Facebook API. Tell your friends to go to [http://www.facebook.com/settings/?tab=privacy&amp;amp;section=applications&amp;amp;field=friends_share Facebook's Applications &amp;amp; Websites privacy settings] and make sure that the checkbox labeled ''Status updates'' is '''checked'''. Otherwise, FMenu has absolutely no way of retrieving that user's profile.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
{{/buttons}}&lt;br /&gt;
The latest version is {{/version}}. It is a [[w:Universal Binary|Universal Binary]] and requires Mac OS X 10.4 or better. Note that since version 3.1, there are separate downloads for users of Mac OS X 10.4 and 10.5 and above, due to 64-bit loading issues with Growl. However, there is no functional difference between the versions. The 10.5 and above binary is 64-bit and fully compatible with Snow Leopard.&lt;br /&gt;
*FMenu for users of [{{/latestversion/10.4}} 10.4 only] and [{{/latestversion/10.5}} 10.5 and above] who ''already have Growl installed on their system'' (.zip file)&lt;br /&gt;
*[{{/3.0/Growl}} FMenu for all other users] – if you do not have Growl installed, FMenu will prompt you to install it automatically with no additional downloads required (.zip file). Note that this is version 3.0; after installation of Growl, check for updates in the menu to update to the latest version.&lt;br /&gt;
FMenu is released under the [http://www.gnu.org/licenses/gpl.html GNU General Public License]. Source code can be found inside the application package by going to &amp;lt;tt&amp;gt;FMenu.app/Contents/Resources/Source&amp;lt;/tt&amp;gt; or checked out using [[w:Subversion (software)|SVN]] [http://sourceforge.net/svn/?group_id=188286 from SourceForge].&lt;br /&gt;
&lt;br /&gt;
Older versions can be obtained below; however, they are unsupported, generally inferior, and only provided for archival purposes.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Simply download the appropriate file above, then double-click it. FMenu.app will appear in the same folder as the .zip file you just downloaded. Move FMenu.app to your Applications and double-click it to open. You might also want to add it to your startup items by going to System Preferences→Accounts, selecting your account on the left, then clicking on the '''Login items''' tab. Click the '''+''' button and choose FMenu from the window that appears.&lt;br /&gt;
&lt;br /&gt;
As of version 2.5, you can have your Facebook credentials saved by checking the according checkbox on the login page. Note that FMenu does not store your actual password and that this procedure does '''not''' compromise the security of your Facebook account in any way.&lt;br /&gt;
&lt;br /&gt;
==Acknowledgments==&lt;br /&gt;
This application completely relies on [http://pointlesscrap.net/mkabefook/ MKAbeFook framework] written by Mike Kinney to communicate with the [http://developers.facebook.com/documentation.php Facebook API]. In addition, the first version of the app was written by Logan Rockmore of [http://www.burgundylogan.com Logan Design].&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
*If you put your computer to sleep for an extended period of time, FMenu will obviously give a large number of notifications that happened during the time that your computer was turned off the first time it updates. Make sure that the number of &amp;quot;sticky&amp;quot; notifications is not very high, because otherwise you will spend a lot of time dismissing all of them (Workaround: Alt-click on any growl notifications's close (X) button to dismiss all the messages on-screen).&lt;br /&gt;
*If you remove a friend while FMenu is running (or a friend disables their account, etc), you will get a notice saying they changed their profile and published a note.&lt;br /&gt;
*If you change your Facebook password, you will stop receiving notifications. Choose Log out… from the menu and then log back in to resume receiving notifications.&lt;br /&gt;
&lt;br /&gt;
There is also a [[/FAQ|FAQ]] of common questions and problems. If you have other questions or problems, please follow the instructions on the [[Talk:{{PAGENAME}}|discussion page]].&lt;br /&gt;
&lt;br /&gt;
==Version history==&lt;br /&gt;
{{/changelog}}&lt;br /&gt;
&lt;br /&gt;
{{cs projects}}&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu&amp;diff=5995</id>
		<title>FMenu</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu&amp;diff=5995"/>
		<updated>2011-01-13T07:08:12Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{/flash}}&lt;br /&gt;
[[Image:FMenu-main.png|thumb|400px|Screenshot of FMenu]]&lt;br /&gt;
[[Image:Fmenu-prefs.png|thumb|400px|Screenshot of FMenu prefs window]]&lt;br /&gt;
'''FMenu''' is a program for [[w:Mac OS X|Mac OS X]] and [[w:Facebook|Facebook]] that sits in the menu bar (near the clock) and provides notifications about various events. In addition, it provides a menu to easily access common Facebook pages and keeps a count of your messages, pokes, events, friend requests, wall posts, and photo comments. It also features a &amp;quot;Quicklaunch&amp;quot; box which gives you immediate access to your friends' profiles, groups, and events, as well as Facebook searches (type a phrase and press enter). Notifications are issued using [[w:Growl|Growl]] and can be customized to the user's liking (including turning on/off and customizing display style). They are:&lt;br /&gt;
*A friend updated his profile&lt;br /&gt;
*A friend changed his status&lt;br /&gt;
*A friend wrote a new note&lt;br /&gt;
*Someone wrote on your wall&lt;br /&gt;
*You have new messages&lt;br /&gt;
*You have new pokes&lt;br /&gt;
*You have new friend requests&lt;br /&gt;
FMenu checks for updates by default every 7 seconds (or at whatever interval you set), but checks for each kind of notification (friend details, friend requests, wall, messages/pokes, events) separately. Consequently each particular type of notification is refreshed once every 42 seconds.&lt;br /&gt;
&lt;br /&gt;
'''Please note:''' this application will work with most of your friends. However, if you are not getting notifications for some friends, it probably means that they have opted out of releasing their info to applications using the Facebook API. Tell your friends to go to [http://www.facebook.com/settings/?tab=privacy&amp;amp;section=applications&amp;amp;field=friends_share Facebook's Applications &amp;amp; Websites privacy settings] and make sure that the checkbox labeled ''Status updates'' is '''checked'''. Otherwise, FMenu has absolutely no way of retrieving that user's profile.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
{{/buttons}}&lt;br /&gt;
The latest version is {{/version}}. It is a [[w:Universal Binary|Universal Binary]] and requires Mac OS X 10.4 or better. Note that since version 3.1, there are separate downloads for users of Mac OS X 10.4 and 10.5 and above, due to 64-bit loading issues with Growl. However, there is no functional difference between the versions. The 10.5 and above binary is 64-bit and fully compatible with Snow Leopard.&lt;br /&gt;
*FMenu for users of [{{/latestversion/10.4}} 10.4 only] and [{{/latestversion/10.5}} 10.5 and above] who ''already have Growl installed on their system'' (.zip file)&lt;br /&gt;
*[{{/3.0/Growl}} FMenu for all other users] – if you do not have Growl installed, FMenu will prompt you to install it automatically with no additional downloads required (.zip file). Note that this is version 3.0; after installation of Growl, check for updates in the menu to update to the latest version.&lt;br /&gt;
FMenu is released under the [http://www.gnu.org/licenses/gpl.html GNU General Public License]. Source code can be found inside the application package by going to &amp;lt;tt&amp;gt;FMenu.app/Contents/Resources/Source&amp;lt;/tt&amp;gt; or checked out using [[w:Subversion (software)|SVN]] [http://sourceforge.net/svn/?group_id=188286 from SourceForge].&lt;br /&gt;
&lt;br /&gt;
Older versions can be obtained below; however, they are unsupported, generally inferior, and only provided for archival purposes.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Simply download the appropriate file above, then double-click it. FMenu.app will appear in the same folder as the .zip file you just downloaded. Move FMenu.app to your Applications and double-click it to open. You might also want to add it to your startup items by going to System Preferences→Accounts, selecting your account on the left, then clicking on the '''Login items''' tab. Click the '''+''' button and choose FMenu from the window that appears.&lt;br /&gt;
&lt;br /&gt;
As of version 2.5, you can have your Facebook credentials saved by checking the according checkbox on the login page. Note that FMenu does not store your actual password and that this procedure does '''not''' compromise the security of your Facebook account in any way.&lt;br /&gt;
&lt;br /&gt;
==Acknowledgments==&lt;br /&gt;
This application completely relies on [http://pointlesscrap.net/mkabefook/ MKAbeFook framework] written by Mike Kinney to communicate with the [http://developers.facebook.com/documentation.php Facebook API]. In addition, the first version of the app was written by Logan Rockmore of [http://www.burgundylogan.com Logan Design].&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
*If you put your computer to sleep for an extended period of time, FMenu will obviously give a large number of notifications that happened during the time that your computer was turned off the first time it updates. Make sure that the number of &amp;quot;sticky&amp;quot; notifications is not very high, because otherwise you will spend a lot of time dismissing all of them (Workaround: Alt-click on any growl notifications's close (X) button to dismiss all the messages on-screen).&lt;br /&gt;
*If you remove a friend while FMenu is running (or a friend disables their account, etc), you will get a notice saying they changed their profile and published a note.&lt;br /&gt;
*If you change your Facebook password, you will stop receiving notifications. Choose Log out… from the menu and then log back in to resume receiving notifications.&lt;br /&gt;
&lt;br /&gt;
There is also a [[/FAQ|FAQ]] of common questions and problems. If you have other questions or problems, please follow the instructions on the [[Talk:{{PAGENAME}}|discussion page]].&lt;br /&gt;
&lt;br /&gt;
==Version history==&lt;br /&gt;
{{/changelog}}&lt;br /&gt;
&lt;br /&gt;
{{cs projects}}&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.5&amp;diff=5994</id>
		<title>FMenu/1.5</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/1.5&amp;diff=5994"/>
		<updated>2011-01-13T07:07:36Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://downloads.sourceforge.net/fmenu/FMenu-1.5.app.zip?modtime=1170695337&amp;amp;big_mirror=0&amp;amp;filesize=283944&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/changelog&amp;diff=5993</id>
		<title>FMenu/changelog</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/changelog&amp;diff=5993"/>
		<updated>2011-01-13T07:07:21Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;FMenu/changelog&amp;quot;: Excessive spamming ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===3.1===&lt;br /&gt;
''released January 17, 2010'' – current version download for [{{:FMenu/3.1/10.4}} 10.4 only] and [{{:FMenu/3.1/10.5}} 10.5 and above (including Snow Leopard)]&lt;br /&gt;
{{:FMenu/changelog/3.1}}&lt;br /&gt;
&lt;br /&gt;
===3.0===&lt;br /&gt;
''released April 18, 2008'' – [{{:FMenu/3.0}} archived download]&lt;br /&gt;
{{:FMenu/changelog/3.0}}&lt;br /&gt;
&lt;br /&gt;
===2.5===&lt;br /&gt;
''released July 4, 2007'' – [{{:FMenu/2.5}} archived download]&lt;br /&gt;
* Infinite sessions support thanks to work by Josh Wiseman at Facebook&lt;br /&gt;
* Better error handling&lt;br /&gt;
* Correctly parse number of Shares in inbox&lt;br /&gt;
* Better notification strings handling&lt;br /&gt;
* Enable customization of status phrase displayed for status notifications&lt;br /&gt;
* Upcoming events and groups can now be added to Quicklaunch&lt;br /&gt;
* Text box inside the Quicklaunch panel now always gains focus whenever the panel itself gains focus&lt;br /&gt;
* Messages, friends, and marketplace submenus&lt;br /&gt;
* Updates to menu items to reflect site redesign&lt;br /&gt;
* General code cleanup&lt;br /&gt;
* More crash-prone data retrieval procedure&lt;br /&gt;
* Preferences saved earlier so that data is saved in case of crashes&lt;br /&gt;
&lt;br /&gt;
===2.1===&lt;br /&gt;
''released Mar 31, 2007'' – [{{:FMenu/2.1}} archived download]&lt;br /&gt;
* Huge memory leak (finally) fixed&lt;br /&gt;
* Better storage of user data should reduce repeated friend notifications&lt;br /&gt;
* Eliminate duplicate message, shares, and pokes notifications&lt;br /&gt;
&lt;br /&gt;
===2.0===&lt;br /&gt;
''released Feb 26, 2007'' – [{{:FMenu/2.0}} archived version download]&lt;br /&gt;
*Upgraded to Facebook API v.1. Consequently some menu items have disappeared, but all the submenus are back and there is now a Shares counter as well&lt;br /&gt;
*All counters can be put in the menubar, including shares, photo comments, and wall posts&lt;br /&gt;
*&amp;quot;f&amp;quot; icon can now be hidden (note that this can be dangerous, since it can make the menu nearly inaccessible)&lt;br /&gt;
*Interface should be more responsive as updates are performed in separate threads&lt;br /&gt;
*Repeated friend notifications should hopefully be eliminated&lt;br /&gt;
*Errors should be handled more gracefully&lt;br /&gt;
*Rudimentary update checking will notify you through Growl when a new version is released&lt;br /&gt;
*Quicklaunch now properly loses focus after return is pressed&lt;br /&gt;
*New messages, pokes, and shares are detected even if the number of unreads remains unchanged&lt;br /&gt;
&lt;br /&gt;
===1.7===&lt;br /&gt;
''released Feb 12, 2007'' – [{{:FMenu/1.7}} archived version download]&lt;br /&gt;
*Thanks to tuaw.com featuring FMenu, I got a lot more users...and lot more testers. This latest version brings no new features, but disables a number of submenu items that did not (and currently cannot) work correctly. The Groups submenu, as well as the &amp;quot;Notes about me&amp;quot; and &amp;quot;Photos of me&amp;quot; items went to my (that is, the developer's) pages, instead of the currently logged in user's.&lt;br /&gt;
&lt;br /&gt;
===1.6===&lt;br /&gt;
''released Feb 10, 2007'' – [{{:FMenu/1.6}} archived version download]&lt;br /&gt;
*Friend updates (notes, profile, and status) are now actually functional (they were accidentally broken in the 1.5 release)&lt;br /&gt;
*Logging preferences are now available&lt;br /&gt;
*Blank status updates are fixed for real this time&lt;br /&gt;
&lt;br /&gt;
===1.5===&lt;br /&gt;
''released Feb 5, 2007'' – [{{:FMenu/1.5}} archived version download]&lt;br /&gt;
*Instantly update menu bar counter when preferences are changed&lt;br /&gt;
*Names in the Quicklaunch box are now alphabetized and fill in immediately after login&lt;br /&gt;
*Better handling of bad internet connections&lt;br /&gt;
*(Hopefully) Elimination of &amp;quot;blank&amp;quot; (i.e. no-name and no-text) status update notifications&lt;br /&gt;
*&amp;quot;Growl preferences...&amp;quot; button now correctly detects presence of Growl prefpane&lt;br /&gt;
*Keyboard shortcuts added to common destinations (however, currently only work if some element (i.e. Quicklaunch) of the program is active)&lt;br /&gt;
*The Photos, Shares, Groups, and Notes menu items now have submenus (which can be turned off)&lt;br /&gt;
*Full update no longer performed upon Pref window close (as it's no longer necessary)&lt;br /&gt;
*Keyboard editing shortcuts (cut, copy, paste, etc) now work properly in the Quicklaunch box&lt;br /&gt;
&lt;br /&gt;
===1.4===&lt;br /&gt;
''released Jan 18, 2007'' – [{{:FMenu/1.4}} archived download]&lt;br /&gt;
:'''Note''': due to the name change from FaceMenu to FMenu, you will need to recreate your Growl notification settings after installing 1.4. Application preferences will carry over, however.&lt;br /&gt;
*You can now hide the counter if it's 0 (i.e. only the icon is shown)&lt;br /&gt;
*A floating textbox can now be used to search and view friends' profiles. THe box stays on top of all windows. Begin typing, and matches for friends' names will appear. Press enter to open the friend's profile in your browser. If the text you type does not match any names, pressing enter will search facebook for the phrase you entered.&lt;br /&gt;
*Full update is now performed after preferences window is closed&lt;br /&gt;
*Update explanatory wall preference text due to facebook.com site changes&lt;br /&gt;
*FMenu no longer performs a last full update upon quit&lt;br /&gt;
&lt;br /&gt;
===1.3===&lt;br /&gt;
''released Jan 13, 2007'' – [{{:FMenu/1.3}} archived download]&lt;br /&gt;
*Wall can now be accessed either from your profile or from the wall posts page (with preference)&lt;br /&gt;
*Profile updated notifications now detect the gender of the person who updated his profile&lt;br /&gt;
*Update frequency pref is now observed correctly&lt;br /&gt;
*Growl preferences... button now correctly detects Growl installations outside the user's home directory&lt;br /&gt;
*FMenu now properly detects the lack of a network connection, eliminating repeated profile update notifications and other quirks&lt;br /&gt;
&lt;br /&gt;
===1.2===&lt;br /&gt;
''released Jan 1, 2007'' – [{{:FMenu/1.2}} archived download]&lt;br /&gt;
*Made dynamic menu items localizable&lt;br /&gt;
*Added pref to change update frequency (default is 7 seconds)&lt;br /&gt;
*Cosmetic/UI improvements &amp;amp; code cleanup&lt;br /&gt;
*Huge memory leak fixed thanks to an update from Mike Kinney to the MKAbeFook framework&lt;br /&gt;
&lt;br /&gt;
===1.1===&lt;br /&gt;
''released Dec 26, 2006'' – [{{:FMenu/1.1}} archived download]&lt;br /&gt;
*Split up updates to provide the ability to check for new info more frequently&lt;br /&gt;
*Added ability to logout and force manual updates&lt;br /&gt;
*Added tracking of friends' details (status, notes, and profile details)&lt;br /&gt;
*Added Growl notifications&lt;br /&gt;
*Universal Binary&lt;br /&gt;
&lt;br /&gt;
===1.0===&lt;br /&gt;
*Initial release by Logan&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/changelog&amp;diff=5992</id>
		<title>FMenu/changelog</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/changelog&amp;diff=5992"/>
		<updated>2011-01-13T07:06:44Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===3.1===&lt;br /&gt;
''released January 17, 2010'' – current version download for [{{:FMenu/3.1/10.4}} 10.4 only] and [{{:FMenu/3.1/10.5}} 10.5 and above (including Snow Leopard)]&lt;br /&gt;
{{:FMenu/changelog/3.1}}&lt;br /&gt;
&lt;br /&gt;
===3.0===&lt;br /&gt;
''released April 18, 2008'' – [{{:FMenu/3.0}} archived download]&lt;br /&gt;
{{:FMenu/changelog/3.0}}&lt;br /&gt;
&lt;br /&gt;
===2.5===&lt;br /&gt;
''released July 4, 2007'' – [{{:FMenu/2.5}} archived download]&lt;br /&gt;
* Infinite sessions support thanks to work by Josh Wiseman at Facebook&lt;br /&gt;
* Better error handling&lt;br /&gt;
* Correctly parse number of Shares in inbox&lt;br /&gt;
* Better notification strings handling&lt;br /&gt;
* Enable customization of status phrase displayed for status notifications&lt;br /&gt;
* Upcoming events and groups can now be added to Quicklaunch&lt;br /&gt;
* Text box inside the Quicklaunch panel now always gains focus whenever the panel itself gains focus&lt;br /&gt;
* Messages, friends, and marketplace submenus&lt;br /&gt;
* Updates to menu items to reflect site redesign&lt;br /&gt;
* General code cleanup&lt;br /&gt;
* More crash-prone data retrieval procedure&lt;br /&gt;
* Preferences saved earlier so that data is saved in case of crashes&lt;br /&gt;
&lt;br /&gt;
===2.1===&lt;br /&gt;
''released Mar 31, 2007'' – [{{:FMenu/2.1}} archived download]&lt;br /&gt;
* Huge memory leak (finally) fixed&lt;br /&gt;
* Better storage of user data should reduce repeated friend notifications&lt;br /&gt;
* Eliminate duplicate message, shares, and pokes notifications&lt;br /&gt;
&lt;br /&gt;
===2.0===&lt;br /&gt;
''released Feb 26, 2007'' – [{{:FMenu/2.0}} archived version download]&lt;br /&gt;
*Upgraded to Facebook API v.1. Consequently some menu items have disappeared, but all the submenus are back and there is now a Shares counter as well&lt;br /&gt;
*All counters can be put in the menubar, including shares, photo comments, and wall posts&lt;br /&gt;
*&amp;quot;f&amp;quot; icon can now be hidden (note that this can be dangerous, since it can make the menu nearly inaccessible)&lt;br /&gt;
*Interface should be more responsive as updates are performed in separate threads&lt;br /&gt;
*Repeated friend notifications should hopefully be eliminated&lt;br /&gt;
*Errors should be handled more gracefully&lt;br /&gt;
*Rudimentary update checking will notify you through Growl when a new version is released&lt;br /&gt;
*Quicklaunch now properly loses focus after return is pressed&lt;br /&gt;
*New messages, pokes, and shares are detected even if the number of unreads remains unchanged&lt;br /&gt;
&lt;br /&gt;
===1.7===&lt;br /&gt;
''released Feb 12, 2007'' – [{{:FMenu/1.7}} archived version download]&lt;br /&gt;
*Thanks to tuaw.com featuring FMenu, I got a lot more users...and lot more testers. This latest version brings no new features, but disables a number of submenu items that did not (and currently cannot) work correctly. The Groups submenu, as well as the &amp;quot;Notes about me&amp;quot; and &amp;quot;Photos of me&amp;quot; items went to my (that is, the developer's) pages, instead of the currently logged in user's.&lt;br /&gt;
&lt;br /&gt;
===1.6===&lt;br /&gt;
''released Feb 10, 2007'' – [{{:FMenu/1.6}} archived version download]&lt;br /&gt;
*Friend updates (notes, profile, and status) are now actually functional (they were accidentally broken in the 1.5 release)&lt;br /&gt;
*Logging preferences are now available&lt;br /&gt;
*Blank status updates are fixed for real this time&lt;br /&gt;
&lt;br /&gt;
===1.5===&lt;br /&gt;
''released Feb 5, 2007'' – [{{:FMenu/1.5}} archived version download]&lt;br /&gt;
*Instantly update menu bar counter when preferences are changed&lt;br /&gt;
*Names in the Quicklaunch box are now alphabetized and fill in immediately after login&lt;br /&gt;
*Better handling of bad internet connections&lt;br /&gt;
*(Hopefully) Elimination of &amp;quot;blank&amp;quot; (i.e. no-name and no-text) status update notifications&lt;br /&gt;
*&amp;quot;Growl preferences...&amp;quot; button now correctly detects presence of Growl prefpane&lt;br /&gt;
*Keyboard shortcuts added to common destinations (however, currently only work if some element (i.e. Quicklaunch) of the program is active)&lt;br /&gt;
*The Photos, Shares, Groups, and Notes menu items now have submenus (which can be turned off)&lt;br /&gt;
*Full update no longer performed upon Pref window close (as it's no longer necessary)&lt;br /&gt;
*Keyboard editing shortcuts (cut, copy, paste, etc) now work properly in the Quicklaunch box&lt;br /&gt;
&lt;br /&gt;
===1.4===&lt;br /&gt;
''released Jan 18, 2007'' – [{{:FMenu/1.4}} archived download]&lt;br /&gt;
:'''Note''': due to the name change from FaceMenu to FMenu, you will need to recreate your Growl notification settings after installing 1.4. Application preferences will carry over, however.&lt;br /&gt;
*You can now hide the counter if it's 0 (i.e. only the icon is shown)&lt;br /&gt;
*A floating textbox can now be used to search and view friends' profiles. THe box stays on top of all windows. Begin typing, and matches for friends' names will appear. Press enter to open the friend's profile in your browser. If the text you type does not match any names, pressing enter will search facebook for the phrase you entered.&lt;br /&gt;
*Full update is now performed after preferences window is closed&lt;br /&gt;
*Update explanatory wall preference text due to facebook.com site changes&lt;br /&gt;
*FMenu no longer performs a last full update upon quit&lt;br /&gt;
&lt;br /&gt;
===1.3===&lt;br /&gt;
''released Jan 13, 2007'' – [{{:FMenu/1.3}} archived download]&lt;br /&gt;
*Wall can now be accessed either from your profile or from the wall posts page (with preference)&lt;br /&gt;
*Profile updated notifications now detect the gender of the person who updated his profile&lt;br /&gt;
*Update frequency pref is now observed correctly&lt;br /&gt;
*Growl preferences... button now correctly detects Growl installations outside the user's home directory&lt;br /&gt;
*FMenu now properly detects the lack of a network connection, eliminating repeated profile update notifications and other quirks&lt;br /&gt;
&lt;br /&gt;
===1.2===&lt;br /&gt;
''released Jan 1, 2007'' – [{{:FMenu/1.2}} archived download]&lt;br /&gt;
*Made dynamic menu items localizable&lt;br /&gt;
*Added pref to change update frequency (default is 7 seconds)&lt;br /&gt;
*Cosmetic/UI improvements &amp;amp; code cleanup&lt;br /&gt;
*Huge memory leak fixed thanks to an update from Mike Kinney to the MKAbeFook framework&lt;br /&gt;
&lt;br /&gt;
===1.1===&lt;br /&gt;
''released Dec 26, 2006'' – [{{:FMenu/1.1}} archived download]&lt;br /&gt;
*Split up updates to provide the ability to check for new info more frequently&lt;br /&gt;
*Added ability to logout and force manual updates&lt;br /&gt;
*Added tracking of friends' details (status, notes, and profile details)&lt;br /&gt;
*Added Growl notifications&lt;br /&gt;
*Universal Binary&lt;br /&gt;
&lt;br /&gt;
===1.0===&lt;br /&gt;
*Initial release by Logan&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/FAQ&amp;diff=5991</id>
		<title>FMenu/FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/FAQ&amp;diff=5991"/>
		<updated>2011-01-13T07:06:17Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;FMenu/FAQ&amp;quot;: Excessive spamming ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Questions==&lt;br /&gt;
===Why do I keep getting the &amp;quot;XXX has updated his profile&amp;quot; notification?===&lt;br /&gt;
Most likely because your friend is actually updating his profile right now, and every change triggers this notification. If you don't want it, just open Growl preferences, go to the Applications tab, select FMenu from the list, and uncheck the appropriate box.&lt;br /&gt;
&lt;br /&gt;
Also, some users have reported that notifications for profile updates and new notes keep showing up despite neither being true. This seems to occur rarely and I am currently looking into what could be causing it. For the time being, try restarting FMenu to see if the problem goes away.&lt;br /&gt;
&lt;br /&gt;
===Why won't the ZIP archive extract properly?===&lt;br /&gt;
Most likely because you're using Stuffit Expander to open it. Use Mac OS X's built-in BOMArchiveHelper.app instead.&lt;br /&gt;
&lt;br /&gt;
===What effect does it have when a friend unchecks the Terms of Service box?===&lt;br /&gt;
If the friend unchecks this box, they are completely invisible to the program. That means that anything about them is inaccessible, like their profile and their status. However, when they poke ''you'', this is still accessible, because it is your information that's retrieved to find out the number of current pokes. So anything they do to you is available, because your info is retrieved, but anything they do to their profiles is not. Consequently, since their profiles are not visible, their names won't show up in the Quicklaunch box.&lt;br /&gt;
&lt;br /&gt;
===Is there any way I can tell which friends have opted out of the Facebook API?===&lt;br /&gt;
Yes! Simply click on the arrow at the right of the text field in the Quicklaunch panel. That lists all the friends that are available to you through the app, alphabetized by first name. Friends that have opted out will be missing from this list.&lt;br /&gt;
&lt;br /&gt;
===How frequent is &amp;quot;too frequent&amp;quot; for the update frequency?===&lt;br /&gt;
This is essentially a guess-and-check process. As of version 1.4, it appears that 7 seconds is in fact the most frequent update interval. I personally had it running with 6 seconds, but that would randomly give me incorrect notifications.&lt;br /&gt;
&lt;br /&gt;
===My friends say that their information will be sold if they check that API checkbox!===&lt;br /&gt;
Um, no. Tell your friends to let you get their profiles through apps that you want to use.&lt;br /&gt;
&lt;br /&gt;
==Common problems==&lt;br /&gt;
===Not all my friends show up in the Quicklaunch box!===&lt;br /&gt;
They probably have opted out of the Facebook API, as [[#What effect does it have when a friend unchecks the Terms of Service box?|described above]]. Tell your friends to go to [http://www.facebook.com/settings/?tab=privacy&amp;amp;section=applications&amp;amp;field=friends_share Facebook's Applications &amp;amp; Websites privacy settings] and make sure that the checkbox labeled ''Status updates'' is '''checked'''. Otherwise, FMenu has absolutely no way of retrieving that user's profile.&lt;br /&gt;
&lt;br /&gt;
===I get a &amp;quot;Could not gen auth token&amp;quot; error===&lt;br /&gt;
Go to ~/Library/Preferences and move the net.lensovet.FaceMenu.plist file to the Trash, then restart FMenu.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/FAQ&amp;diff=5990</id>
		<title>FMenu/FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=FMenu/FAQ&amp;diff=5990"/>
		<updated>2011-01-13T07:06:01Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Questions==&lt;br /&gt;
===Why do I keep getting the &amp;quot;XXX has updated his profile&amp;quot; notification?===&lt;br /&gt;
Most likely because your friend is actually updating his profile right now, and every change triggers this notification. If you don't want it, just open Growl preferences, go to the Applications tab, select FMenu from the list, and uncheck the appropriate box.&lt;br /&gt;
&lt;br /&gt;
Also, some users have reported that notifications for profile updates and new notes keep showing up despite neither being true. This seems to occur rarely and I am currently looking into what could be causing it. For the time being, try restarting FMenu to see if the problem goes away.&lt;br /&gt;
&lt;br /&gt;
===Why won't the ZIP archive extract properly?===&lt;br /&gt;
Most likely because you're using Stuffit Expander to open it. Use Mac OS X's built-in BOMArchiveHelper.app instead.&lt;br /&gt;
&lt;br /&gt;
===What effect does it have when a friend unchecks the Terms of Service box?===&lt;br /&gt;
If the friend unchecks this box, they are completely invisible to the program. That means that anything about them is inaccessible, like their profile and their status. However, when they poke ''you'', this is still accessible, because it is your information that's retrieved to find out the number of current pokes. So anything they do to you is available, because your info is retrieved, but anything they do to their profiles is not. Consequently, since their profiles are not visible, their names won't show up in the Quicklaunch box.&lt;br /&gt;
&lt;br /&gt;
===Is there any way I can tell which friends have opted out of the Facebook API?===&lt;br /&gt;
Yes! Simply click on the arrow at the right of the text field in the Quicklaunch panel. That lists all the friends that are available to you through the app, alphabetized by first name. Friends that have opted out will be missing from this list.&lt;br /&gt;
&lt;br /&gt;
===How frequent is &amp;quot;too frequent&amp;quot; for the update frequency?===&lt;br /&gt;
This is essentially a guess-and-check process. As of version 1.4, it appears that 7 seconds is in fact the most frequent update interval. I personally had it running with 6 seconds, but that would randomly give me incorrect notifications.&lt;br /&gt;
&lt;br /&gt;
===My friends say that their information will be sold if they check that API checkbox!===&lt;br /&gt;
Um, no. Tell your friends to let you get their profiles through apps that you want to use.&lt;br /&gt;
&lt;br /&gt;
==Common problems==&lt;br /&gt;
===Not all my friends show up in the Quicklaunch box!===&lt;br /&gt;
They probably have opted out of the Facebook API, as [[#What effect does it have when a friend unchecks the Terms of Service box?|described above]]. Tell your friends to go to [http://www.facebook.com/settings/?tab=privacy&amp;amp;section=applications&amp;amp;field=friends_share Facebook's Applications &amp;amp; Websites privacy settings] and make sure that the checkbox labeled ''Status updates'' is '''checked'''. Otherwise, FMenu has absolutely no way of retrieving that user's profile.&lt;br /&gt;
&lt;br /&gt;
===I get a &amp;quot;Could not gen auth token&amp;quot; error===&lt;br /&gt;
Go to ~/Library/Preferences and move the net.lensovet.FaceMenu.plist file to the Trash, then restart FMenu.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Homework/hw6/SimpleBoard.java&amp;diff=5989</id>
		<title>Computer Science/61b/Homework/hw6/SimpleBoard.java</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Homework/hw6/SimpleBoard.java&amp;diff=5989"/>
		<updated>2011-01-13T07:03:58Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;CS/61b/Homework/hw6/SimpleBoard.java&amp;quot;: Excessive spamming ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{code}}&lt;br /&gt;
 /* SimpleBoard.java */&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
 *  Simple class that implements an 8x8 game board with three possible values&lt;br /&gt;
  *  for each cell:  0, 1 or 2.&lt;br /&gt;
  *&lt;br /&gt;
  *  DO NOT CHANGE ANY PROTOTYPES IN THIS FILE.&lt;br /&gt;
  **/&lt;br /&gt;
 &lt;br /&gt;
 public class SimpleBoard {&lt;br /&gt;
 	private final static int DIMENSION = 8;&lt;br /&gt;
 	private int[][] grid;&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Invariants:  &lt;br /&gt;
 	 *  (1) grid.length == DIMENSION.&lt;br /&gt;
 	 *  (2) for all 0 &amp;lt;= i &amp;lt; DIMENSION, grid[i].length == DIMENSION.&lt;br /&gt;
 	 *  (3) for all 0 &amp;lt;= i, j &amp;lt; DIMENSION, grid[i][j] &amp;gt;= 0 and grid[i][j] &amp;lt;= 2.&lt;br /&gt;
 	 **/&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Construct a new board in which all cells are zero.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public SimpleBoard() {&lt;br /&gt;
 		grid = new int[DIMENSION][DIMENSION];&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Set the cell (x, y) in the board to the given value mod 3.&lt;br /&gt;
 	 *  @param value to which the element should be set (normally 0, 1, or 2).&lt;br /&gt;
 	 *  @param x is the x-index.&lt;br /&gt;
 	 *  @param y is the y-index.&lt;br /&gt;
 	 *  @exception ArrayIndexOutOfBoundsException is thrown if an invalid index&lt;br /&gt;
 	 *  is given.&lt;br /&gt;
 	 **/&lt;br /&gt;
 	&lt;br /&gt;
 	public void setElementAt(int x, int y, int value) {&lt;br /&gt;
 		grid[x][y] = value % 3;&lt;br /&gt;
 		if (grid[x][y] &amp;lt; 0) {&lt;br /&gt;
 			grid[x][y] = grid[x][y] + 3;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Get the valued stored in cell (x, y).&lt;br /&gt;
 	 *  @param x is the x-index.&lt;br /&gt;
 	 *  @param y is the y-index.&lt;br /&gt;
 	 *  @return the stored value (between 0 and 2).&lt;br /&gt;
 	 *  @exception ArrayIndexOutOfBoundsException is thrown if an invalid index&lt;br /&gt;
 	 *  is given.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public int elementAt(int x, int y) {&lt;br /&gt;
 		return grid[x][y];&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Returns true if &amp;quot;this&amp;quot; SimpleBoard and &amp;quot;board&amp;quot; have identical values in&lt;br /&gt;
 	 *    every cell.&lt;br /&gt;
 	 *  @param board is the second SimpleBoard.&lt;br /&gt;
 	 *  @return true if the boards are equal, false otherwise.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public boolean equals(Object board) {&lt;br /&gt;
 		if (board.getClass() == this.getClass()) {&lt;br /&gt;
 			return (this.hashCode() == board.hashCode());&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Returns a hash code for this SimpleBoard.&lt;br /&gt;
 	 *  @return a number between Integer.MIN_VALUE and Integer.MAX_VALUE.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public int hashCode() {&lt;br /&gt;
 		int hash = 0;&lt;br /&gt;
 		for (int io=0; io&amp;lt;DIMENSION; io++) {&lt;br /&gt;
 			for (int ii=0; ii&amp;lt;DIMENSION; ii++) {&lt;br /&gt;
 				hash = hash * 3 + grid[io][ii];&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		return hash;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Projects/Network/player/Gameboard.java&amp;diff=5988</id>
		<title>Computer Science/61b/Projects/Network/player/Gameboard.java</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Projects/Network/player/Gameboard.java&amp;diff=5988"/>
		<updated>2011-01-13T07:03:14Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;CS/61b/Projects/Network/player/Gameboard.java&amp;quot;: Excessive spamming ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{code}}&lt;br /&gt;
 package player;&lt;br /&gt;
 &lt;br /&gt;
 /* Gameboard class&lt;br /&gt;
  * contains the gameboard ADT and methods for handling it&lt;br /&gt;
  * in addition, contains methods for generating and evaluating new moves&lt;br /&gt;
 **/&lt;br /&gt;
 &lt;br /&gt;
 public class Gameboard {&lt;br /&gt;
 	&lt;br /&gt;
 	// Allows for a hypothetical expansion of the board&lt;br /&gt;
 	public final static int DIMENSION = 8;&lt;br /&gt;
 	public final static int ADD = 1;&lt;br /&gt;
 	public final static int STEP = 2;&lt;br /&gt;
 	// used for signaling a white/black win; needs to be large and prime&lt;br /&gt;
 	public final static int WHITEWIN = 2047;&lt;br /&gt;
 	public final static int BLACKWIN = -2047;&lt;br /&gt;
 	&lt;br /&gt;
 	private Chip[][] board = new Chip[DIMENSION][DIMENSION];&lt;br /&gt;
 	private int x = DIMENSION;&lt;br /&gt;
 	private int y = DIMENSION;&lt;br /&gt;
 	private int pieces;&lt;br /&gt;
 	&lt;br /&gt;
 	// returns the Chip at a given x &amp;amp; y coord&lt;br /&gt;
 	/* we use a &amp;quot;try&amp;quot; so that if we try to access a location that is off the board,&lt;br /&gt;
 		i.e. we attempt to get non-existent coords, then just return null */&lt;br /&gt;
 	public Chip cellContents(int x, int y) {&lt;br /&gt;
 		try {&lt;br /&gt;
 		return board[x][y];&lt;br /&gt;
 		} catch (ArrayIndexOutOfBoundsException e) {&lt;br /&gt;
 			return null;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/** @return an array of Chip neighbors around a given position (x,y) **/&lt;br /&gt;
 	public Chip[] neighborarray(int x, int y) {&lt;br /&gt;
 		Chip[] array = new Chip[8];&lt;br /&gt;
 		array[0] = cellContents(x-1, y-1); // nw&lt;br /&gt;
 		array[1] = cellContents(x, y-1); // n&lt;br /&gt;
 		array[2] = cellContents(x+1, y-1); // ne&lt;br /&gt;
 		array[3] = cellContents(x+1, y); // e&lt;br /&gt;
 		array[4] = cellContents(x+1, y+1); // se&lt;br /&gt;
 		array[5] = cellContents(x, y+1); // s&lt;br /&gt;
 		array[6] = cellContents(x-1, y+1); // sw&lt;br /&gt;
 		array[7] = cellContents(x-1, y); // w&lt;br /&gt;
 		return array;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/** takes in rec = 1 on initial search&lt;br /&gt;
 		@return the number of the same-color neighbors around a given position (x, y) **/&lt;br /&gt;
 	public int neighbor(int color, int x, int y, int rec) {&lt;br /&gt;
 		if (rec &amp;lt; 0) {&lt;br /&gt;
 			return 0;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			Chip[] array = neighborarray(x, y);&lt;br /&gt;
 			int number = 0;&lt;br /&gt;
 			for (int i=0; i&amp;lt;array.length; i++) {&lt;br /&gt;
 				Chip target = array[i];&lt;br /&gt;
 				if (target != null &amp;amp;&amp;amp; target.getColor()==color) {&lt;br /&gt;
 					number = number + neighbor(color, target.getX(), target.getY(), rec-1);&lt;br /&gt;
 					number++;&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			return number;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* inserts a chip of the given color at (x, y) if this is acceptable&lt;br /&gt;
 		returns true if the insertion is legal, false otherwise */&lt;br /&gt;
 	public boolean insertChip(int color, int x, int y) {&lt;br /&gt;
 		if (validMove(color, new Move(x, y))) {&lt;br /&gt;
 			board[x][y] = new Chip(color, x, y);&lt;br /&gt;
 			pieces++;&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* moves Chip c to a new location at (x, y)&lt;br /&gt;
 		returns true if the move is legal, false otherwise */&lt;br /&gt;
 	public boolean moveChip(Chip c, int x, int y) {&lt;br /&gt;
 		if (validMove(c.getColor(), new Move(x, y))) {&lt;br /&gt;
 			board[c.getX()][c.getY()] = null;&lt;br /&gt;
 			board[x][y] = new Chip(c.getColor(), x, y);&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* performs the requested move for a player of the given color&lt;br /&gt;
 		returns true if the move is legal, false otherwise */&lt;br /&gt;
 	public boolean performMove(int color, Move m) {&lt;br /&gt;
 		if (m.moveKind == Move.ADD) {&lt;br /&gt;
 			return insertChip(color, m.x1, m.y1);&lt;br /&gt;
 		} else if (m.moveKind == Move.STEP) {&lt;br /&gt;
 			return moveChip(retrieveChip(m.x2, m.y2), m.x1, m.y1);&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// legacy method for returning a chip at (x, y)&lt;br /&gt;
 	public Chip retrieveChip(int x, int y) {&lt;br /&gt;
 		return cellContents(x, y);&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**	Verifies that a given move is valid for a plyer of the given color.&lt;br /&gt;
 		* the following conditions must be met:&lt;br /&gt;
 		* No chip may be placed in any of the four corners&lt;br /&gt;
 		* No chip may be placed in a goal of the opposite color&lt;br /&gt;
 		* No chip may be placed in a square that is already occupied&lt;br /&gt;
 		* A player may not have more than two chips in a connected group, whether connected orthogonally or diagonally&lt;br /&gt;
 		takes a move and the player's color performing the move&lt;br /&gt;
 		@return true if move is valid&lt;br /&gt;
 	*/&lt;br /&gt;
 	public boolean validMove(int color, Move m) {&lt;br /&gt;
 		if (m.moveKind == Move.QUIT) {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			if ((m.x1==0 &amp;amp;&amp;amp; (m.y1==0 || m.y1==DIMENSION-1)) || (m.y1==DIMENSION-1 &amp;amp;&amp;amp; (m.x1==0 || m.x1==DIMENSION-1))) {&lt;br /&gt;
 				return false; // in the corners&lt;br /&gt;
 			} else if (board[m.x1][m.y1] != null) {&lt;br /&gt;
 				return false; // target cell isn't empty&lt;br /&gt;
 			} else if (((color == Chip.BLACK) &amp;amp;&amp;amp; (m.x1==0 || m.x1==DIMENSION-1)) || ((color == Chip.WHITE) &amp;amp;&amp;amp; (m.y1==0 || m.y1==DIMENSION-1))) {&lt;br /&gt;
 				return false; // target cell is in opponent's goal&lt;br /&gt;
 			} else if (!checkClusterSize(color, m.x1, m.y1)) {&lt;br /&gt;
 				return false; // resulting cluster too big&lt;br /&gt;
 			} else {&lt;br /&gt;
 				return true; // looks like this move is good&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// helper method for validMove()&lt;br /&gt;
 	// @return true if an insertion at the given position is possible w/respect to cluster size; false otherwise&lt;br /&gt;
 	public boolean checkClusterSize(int color, int x, int y) {&lt;br /&gt;
 		if (neighbor(color, x, y, 1) &amp;gt; 1) {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// generates a 2-d array of moves and resulting gameboards for a given color&lt;br /&gt;
 	// @return[0] is an array of Gameboards (Gameboard[x])&lt;br /&gt;
 	// @return[1] is an array of Moves corresponding to each board in return[0] (Move[x])&lt;br /&gt;
 	// thus the board after performing g.performMove(color, return[1][i]) is return[0][i]&lt;br /&gt;
 	public Object[][] generateMoves(int color) {&lt;br /&gt;
 	{{notmine|Chanh Vo|fragment=yes}} 	&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// @return an exact clone of &amp;quot;this&amp;quot; gameboard&lt;br /&gt;
 	public Gameboard clone() {&lt;br /&gt;
 	{{notmine|Chanh Vo|fragment=yes}} 	&lt;br /&gt;
 	}&lt;br /&gt;
 	 	&lt;br /&gt;
 	// return the current Move kind for this gameboard, depending on number of pieces&lt;br /&gt;
 	// @return either STEP or ADD&lt;br /&gt;
 	public int moveKind() {&lt;br /&gt;
 		if (pieces &amp;lt; 20) {&lt;br /&gt;
 			return ADD;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return STEP;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* chooses a move to a given depth for a given color using alpha-beta pruning (hopefully)&lt;br /&gt;
 	/ first two moves involve the random placement of a chip in each of the goals without any analysis&lt;br /&gt;
 	/ @param color - current player's color&lt;br /&gt;
 		depth - number of levels remaining to search (i.e. depth = 1 means no look-ahead)&lt;br /&gt;
 		alpha, beta - best-case and worst-case scores&lt;br /&gt;
 		side - true for white, false for black&lt;br /&gt;
 		factor - multiplier used to score a win many levels down lower than a win in the first level&lt;br /&gt;
 	/ @return an Alphamove with the best move and its corresponding score */&lt;br /&gt;
 	public Alphamove chooseMove(int color, int depth, int alpha, int beta, boolean side, int factor) {&lt;br /&gt;
 		Alphamove bestme = new Alphamove();&lt;br /&gt;
 		Alphamove bestopp;&lt;br /&gt;
 		if (side) {&lt;br /&gt;
 			bestme.score = alpha;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			bestme.score = beta;&lt;br /&gt;
 		}&lt;br /&gt;
 		if (pieces &amp;lt; 2) { // first move for each color&lt;br /&gt;
 						  // place a random piece in the top (black) or left (white) goal&lt;br /&gt;
 			int target = (((int) (Math.random() * 10.0)) % (DIMENSION - 2)) + 1;&lt;br /&gt;
 			if (color == Chip.BLACK) {&lt;br /&gt;
 				bestme.move = new Move(target, 0);&lt;br /&gt;
 			} else {&lt;br /&gt;
 				bestme.move = new Move(0, target);&lt;br /&gt;
 			}&lt;br /&gt;
 			return bestme;&lt;br /&gt;
 		} else if (pieces &amp;lt; 4) { // second move for each color&lt;br /&gt;
 								 // place a random piece in the bottom (black) or right (white) goal&lt;br /&gt;
 			int target = (((int) (Math.random() * 10.0)) % (DIMENSION - 2)) + 1;&lt;br /&gt;
 			if (color == Chip.BLACK) {&lt;br /&gt;
 				bestme.move = new Move(target, DIMENSION-1);&lt;br /&gt;
 			} else {&lt;br /&gt;
 				bestme.move = new Move(DIMENSION-1, target);&lt;br /&gt;
 			}&lt;br /&gt;
 			return bestme;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			// at least 4 pieces are on the board now, so this is the 3rd+ move&lt;br /&gt;
 			// go ahead and generate the possible moves from the current board&lt;br /&gt;
 			Object[][] arr = generateMoves(color);&lt;br /&gt;
 			if (depth == 1) {&lt;br /&gt;
 				// this is our last level, so end the recursion&lt;br /&gt;
 				for (int i=0; i&amp;lt;arr[0].length; i++) {&lt;br /&gt;
 					if (arr[0][i] != null) {&lt;br /&gt;
 						Move targetmove = (Move) arr[1][i];&lt;br /&gt;
 						int score = ((Gameboard) arr[0][i]).winner()*factor;&lt;br /&gt;
 						System.out.println(&amp;quot;Got score &amp;quot; + score + &amp;quot; for board &amp;quot; + ((Gameboard) arr[0][i]) + &amp;quot;, factor &amp;quot; + factor);&lt;br /&gt;
 						if ((((score/factor)==WHITEWIN) &amp;amp;&amp;amp; (color==Chip.WHITE)) || (((score/factor)==BLACKWIN) &amp;amp;&amp;amp; (color==Chip.BLACK))) {&lt;br /&gt;
 							// we've reached a winner, so stop here and return it&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 							return bestme;&lt;br /&gt;
 						} else if ((score &amp;gt; bestme.score &amp;amp;&amp;amp; side) || (score &amp;lt; bestme.score &amp;amp;&amp;amp; !side)) {&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 						}&lt;br /&gt;
 					} else { // we've run out of moves to evalute; stop&lt;br /&gt;
 						break;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 				return bestme;&lt;br /&gt;
 			} else {&lt;br /&gt;
 				for (int ii=0; ii&amp;lt;arr[0].length; ii++) {&lt;br /&gt;
 					if (arr[0][ii] != null) {&lt;br /&gt;
 						// eventually, this is where we will check to make sure we still have enough time&lt;br /&gt;
 						System.out.println(&amp;quot;side: &amp;quot; + side);&lt;br /&gt;
 						Move targetmove = (Move) arr[1][ii];&lt;br /&gt;
 						int score = ((Gameboard) arr[0][ii]).winner()*factor;&lt;br /&gt;
 						if (depth ==2) { System.out.println(&amp;quot;Got score &amp;quot; + score + &amp;quot; for board &amp;quot; + ((Gameboard) arr[0][ii]) + &amp;quot;, factor &amp;quot; + factor); }&lt;br /&gt;
 						if ((((score/factor)==WHITEWIN) &amp;amp;&amp;amp; (color==Chip.WHITE)) || (((score/factor)==BLACKWIN) &amp;amp;&amp;amp; (color==Chip.BLACK))) {&lt;br /&gt;
 							// we've reached a winner, so stop here and return it&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 							return bestme;&lt;br /&gt;
 						} else {&lt;br /&gt;
 							bestopp = ((Gameboard) arr[0][ii]).chooseMove(generateOpponent(color), depth-1, alpha, beta, !side, factor-1); //hopefully we never search for more than 9 levels...&lt;br /&gt;
 							System.out.println(&amp;quot;Opponent's best response is &amp;quot; + bestopp.score + &amp;quot;, current best score is &amp;quot; + bestme.score + &amp;quot; (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) returns &amp;quot; + (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) + &amp;quot; for side = &amp;quot; + side);&lt;br /&gt;
 							targetmove = (Move) arr[1][ii];&lt;br /&gt;
 							if (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) {&lt;br /&gt;
 								bestme.move = targetmove;&lt;br /&gt;
 								bestme.score = bestopp.score;&lt;br /&gt;
 								alpha = bestopp.score;&lt;br /&gt;
 								System.out.println(&amp;quot;Found better move for white, score is &amp;quot; + bestopp.score + &amp;quot; move is &amp;quot; + bestme.move);&lt;br /&gt;
 							} else if (!side &amp;amp;&amp;amp; (bestopp.score &amp;lt; bestme.score)) {&lt;br /&gt;
 								bestme.move = targetmove;&lt;br /&gt;
 								bestme.score = bestopp.score;&lt;br /&gt;
 								beta = bestopp.score;&lt;br /&gt;
 								// System.out.println(&amp;quot;Found better move for black, score is &amp;quot; + bestopp.score);&lt;br /&gt;
 							} if (alpha &amp;gt;= beta) {&lt;br /&gt;
 								return bestme;&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					} else { // we've run out of moves to evalute; stop&lt;br /&gt;
 						break;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 				return bestme;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// returns the best possible move that can be made by the given color to a search depth of &amp;quot;depth&amp;quot; using the &amp;quot;this&amp;quot; board&lt;br /&gt;
 	// @return the best current Move&lt;br /&gt;
 	public Move evalTree(int color, int depth) {&lt;br /&gt;
 		int alpha = (BLACKWIN*10)-1;&lt;br /&gt;
 		int beta = (WHITEWIN*10)+1;&lt;br /&gt;
 		boolean side;&lt;br /&gt;
 		if (color == Chip.BLACK) {&lt;br /&gt;
 			side = false;&lt;br /&gt;
 		} else { &lt;br /&gt;
 			side = true;&lt;br /&gt;
 		}&lt;br /&gt;
 		Alphamove winningmove = this.chooseMove(color, depth, alpha, beta, side, 10);&lt;br /&gt;
 		return winningmove.move;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// simple method to generate the opponent's color&lt;br /&gt;
 	// given a color, @return the color of the opponent&lt;br /&gt;
 	public static int generateOpponent(int color) {&lt;br /&gt;
 		if (color == Chip.WHITE) {&lt;br /&gt;
 			return Chip.BLACK;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return Chip.WHITE;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// evaluates the given network for a winning color&lt;br /&gt;
 	// returns a probability of winning if there is no win (positive for white advantage, negative for black advantage)&lt;br /&gt;
 	// returns WHITEWIN if WHITE wins, BLACKWIN if BLACK wins&lt;br /&gt;
 	// @return an int with this board's score&lt;br /&gt;
 	public int winner() {&lt;br /&gt;
 	{{notmine|Jordan Berk|fragment=yes}}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// helper function for winner - recursively finds networks and assigns 1 point per connection and 10000 for a win&lt;br /&gt;
 	// @return an int with the score of the network&lt;br /&gt;
 	int findNetwork(Gameboard g, int x, int y, int color, int num, String currentDirection, String lastDirection) {&lt;br /&gt;
 	{{notmine|Jordan Berk|fragment=yes}}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// debugging method to print a gameboard&lt;br /&gt;
 	// @return a string represeting the board&lt;br /&gt;
 	public String toString() {&lt;br /&gt;
 		String output = &amp;quot;\n|&amp;quot;;&lt;br /&gt;
 		for (y=0; y&amp;lt;DIMENSION; y++) {&lt;br /&gt;
 			for (x=0; x&amp;lt;DIMENSION; x++) {&lt;br /&gt;
 				if (board[x][y] == null) {&lt;br /&gt;
 					output = output + &amp;quot; .&amp;quot;;&lt;br /&gt;
 				} else {&lt;br /&gt;
 					output = output + &amp;quot; &amp;quot; + ((Chip) board[x][y]).getColor();&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			output = output + &amp;quot;|\n|&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		return output;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Projects/Network/player/Gameboard.java&amp;diff=5987</id>
		<title>Computer Science/61b/Projects/Network/player/Gameboard.java</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Projects/Network/player/Gameboard.java&amp;diff=5987"/>
		<updated>2011-01-13T07:02:43Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{code}}&lt;br /&gt;
 package player;&lt;br /&gt;
 &lt;br /&gt;
 /* Gameboard class&lt;br /&gt;
  * contains the gameboard ADT and methods for handling it&lt;br /&gt;
  * in addition, contains methods for generating and evaluating new moves&lt;br /&gt;
 **/&lt;br /&gt;
 &lt;br /&gt;
 public class Gameboard {&lt;br /&gt;
 	&lt;br /&gt;
 	// Allows for a hypothetical expansion of the board&lt;br /&gt;
 	public final static int DIMENSION = 8;&lt;br /&gt;
 	public final static int ADD = 1;&lt;br /&gt;
 	public final static int STEP = 2;&lt;br /&gt;
 	// used for signaling a white/black win; needs to be large and prime&lt;br /&gt;
 	public final static int WHITEWIN = 2047;&lt;br /&gt;
 	public final static int BLACKWIN = -2047;&lt;br /&gt;
 	&lt;br /&gt;
 	private Chip[][] board = new Chip[DIMENSION][DIMENSION];&lt;br /&gt;
 	private int x = DIMENSION;&lt;br /&gt;
 	private int y = DIMENSION;&lt;br /&gt;
 	private int pieces;&lt;br /&gt;
 	&lt;br /&gt;
 	// returns the Chip at a given x &amp;amp; y coord&lt;br /&gt;
 	/* we use a &amp;quot;try&amp;quot; so that if we try to access a location that is off the board,&lt;br /&gt;
 		i.e. we attempt to get non-existent coords, then just return null */&lt;br /&gt;
 	public Chip cellContents(int x, int y) {&lt;br /&gt;
 		try {&lt;br /&gt;
 		return board[x][y];&lt;br /&gt;
 		} catch (ArrayIndexOutOfBoundsException e) {&lt;br /&gt;
 			return null;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/** @return an array of Chip neighbors around a given position (x,y) **/&lt;br /&gt;
 	public Chip[] neighborarray(int x, int y) {&lt;br /&gt;
 		Chip[] array = new Chip[8];&lt;br /&gt;
 		array[0] = cellContents(x-1, y-1); // nw&lt;br /&gt;
 		array[1] = cellContents(x, y-1); // n&lt;br /&gt;
 		array[2] = cellContents(x+1, y-1); // ne&lt;br /&gt;
 		array[3] = cellContents(x+1, y); // e&lt;br /&gt;
 		array[4] = cellContents(x+1, y+1); // se&lt;br /&gt;
 		array[5] = cellContents(x, y+1); // s&lt;br /&gt;
 		array[6] = cellContents(x-1, y+1); // sw&lt;br /&gt;
 		array[7] = cellContents(x-1, y); // w&lt;br /&gt;
 		return array;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/** takes in rec = 1 on initial search&lt;br /&gt;
 		@return the number of the same-color neighbors around a given position (x, y) **/&lt;br /&gt;
 	public int neighbor(int color, int x, int y, int rec) {&lt;br /&gt;
 		if (rec &amp;lt; 0) {&lt;br /&gt;
 			return 0;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			Chip[] array = neighborarray(x, y);&lt;br /&gt;
 			int number = 0;&lt;br /&gt;
 			for (int i=0; i&amp;lt;array.length; i++) {&lt;br /&gt;
 				Chip target = array[i];&lt;br /&gt;
 				if (target != null &amp;amp;&amp;amp; target.getColor()==color) {&lt;br /&gt;
 					number = number + neighbor(color, target.getX(), target.getY(), rec-1);&lt;br /&gt;
 					number++;&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			return number;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* inserts a chip of the given color at (x, y) if this is acceptable&lt;br /&gt;
 		returns true if the insertion is legal, false otherwise */&lt;br /&gt;
 	public boolean insertChip(int color, int x, int y) {&lt;br /&gt;
 		if (validMove(color, new Move(x, y))) {&lt;br /&gt;
 			board[x][y] = new Chip(color, x, y);&lt;br /&gt;
 			pieces++;&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* moves Chip c to a new location at (x, y)&lt;br /&gt;
 		returns true if the move is legal, false otherwise */&lt;br /&gt;
 	public boolean moveChip(Chip c, int x, int y) {&lt;br /&gt;
 		if (validMove(c.getColor(), new Move(x, y))) {&lt;br /&gt;
 			board[c.getX()][c.getY()] = null;&lt;br /&gt;
 			board[x][y] = new Chip(c.getColor(), x, y);&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* performs the requested move for a player of the given color&lt;br /&gt;
 		returns true if the move is legal, false otherwise */&lt;br /&gt;
 	public boolean performMove(int color, Move m) {&lt;br /&gt;
 		if (m.moveKind == Move.ADD) {&lt;br /&gt;
 			return insertChip(color, m.x1, m.y1);&lt;br /&gt;
 		} else if (m.moveKind == Move.STEP) {&lt;br /&gt;
 			return moveChip(retrieveChip(m.x2, m.y2), m.x1, m.y1);&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// legacy method for returning a chip at (x, y)&lt;br /&gt;
 	public Chip retrieveChip(int x, int y) {&lt;br /&gt;
 		return cellContents(x, y);&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**	Verifies that a given move is valid for a plyer of the given color.&lt;br /&gt;
 		* the following conditions must be met:&lt;br /&gt;
 		* No chip may be placed in any of the four corners&lt;br /&gt;
 		* No chip may be placed in a goal of the opposite color&lt;br /&gt;
 		* No chip may be placed in a square that is already occupied&lt;br /&gt;
 		* A player may not have more than two chips in a connected group, whether connected orthogonally or diagonally&lt;br /&gt;
 		takes a move and the player's color performing the move&lt;br /&gt;
 		@return true if move is valid&lt;br /&gt;
 	*/&lt;br /&gt;
 	public boolean validMove(int color, Move m) {&lt;br /&gt;
 		if (m.moveKind == Move.QUIT) {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			if ((m.x1==0 &amp;amp;&amp;amp; (m.y1==0 || m.y1==DIMENSION-1)) || (m.y1==DIMENSION-1 &amp;amp;&amp;amp; (m.x1==0 || m.x1==DIMENSION-1))) {&lt;br /&gt;
 				return false; // in the corners&lt;br /&gt;
 			} else if (board[m.x1][m.y1] != null) {&lt;br /&gt;
 				return false; // target cell isn't empty&lt;br /&gt;
 			} else if (((color == Chip.BLACK) &amp;amp;&amp;amp; (m.x1==0 || m.x1==DIMENSION-1)) || ((color == Chip.WHITE) &amp;amp;&amp;amp; (m.y1==0 || m.y1==DIMENSION-1))) {&lt;br /&gt;
 				return false; // target cell is in opponent's goal&lt;br /&gt;
 			} else if (!checkClusterSize(color, m.x1, m.y1)) {&lt;br /&gt;
 				return false; // resulting cluster too big&lt;br /&gt;
 			} else {&lt;br /&gt;
 				return true; // looks like this move is good&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// helper method for validMove()&lt;br /&gt;
 	// @return true if an insertion at the given position is possible w/respect to cluster size; false otherwise&lt;br /&gt;
 	public boolean checkClusterSize(int color, int x, int y) {&lt;br /&gt;
 		if (neighbor(color, x, y, 1) &amp;gt; 1) {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// generates a 2-d array of moves and resulting gameboards for a given color&lt;br /&gt;
 	// @return[0] is an array of Gameboards (Gameboard[x])&lt;br /&gt;
 	// @return[1] is an array of Moves corresponding to each board in return[0] (Move[x])&lt;br /&gt;
 	// thus the board after performing g.performMove(color, return[1][i]) is return[0][i]&lt;br /&gt;
 	public Object[][] generateMoves(int color) {&lt;br /&gt;
 	{{notmine|Chanh Vo|fragment=yes}} 	&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// @return an exact clone of &amp;quot;this&amp;quot; gameboard&lt;br /&gt;
 	public Gameboard clone() {&lt;br /&gt;
 	{{notmine|Chanh Vo|fragment=yes}} 	&lt;br /&gt;
 	}&lt;br /&gt;
 	 	&lt;br /&gt;
 	// return the current Move kind for this gameboard, depending on number of pieces&lt;br /&gt;
 	// @return either STEP or ADD&lt;br /&gt;
 	public int moveKind() {&lt;br /&gt;
 		if (pieces &amp;lt; 20) {&lt;br /&gt;
 			return ADD;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return STEP;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* chooses a move to a given depth for a given color using alpha-beta pruning (hopefully)&lt;br /&gt;
 	/ first two moves involve the random placement of a chip in each of the goals without any analysis&lt;br /&gt;
 	/ @param color - current player's color&lt;br /&gt;
 		depth - number of levels remaining to search (i.e. depth = 1 means no look-ahead)&lt;br /&gt;
 		alpha, beta - best-case and worst-case scores&lt;br /&gt;
 		side - true for white, false for black&lt;br /&gt;
 		factor - multiplier used to score a win many levels down lower than a win in the first level&lt;br /&gt;
 	/ @return an Alphamove with the best move and its corresponding score */&lt;br /&gt;
 	public Alphamove chooseMove(int color, int depth, int alpha, int beta, boolean side, int factor) {&lt;br /&gt;
 		Alphamove bestme = new Alphamove();&lt;br /&gt;
 		Alphamove bestopp;&lt;br /&gt;
 		if (side) {&lt;br /&gt;
 			bestme.score = alpha;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			bestme.score = beta;&lt;br /&gt;
 		}&lt;br /&gt;
 		if (pieces &amp;lt; 2) { // first move for each color&lt;br /&gt;
 						  // place a random piece in the top (black) or left (white) goal&lt;br /&gt;
 			int target = (((int) (Math.random() * 10.0)) % (DIMENSION - 2)) + 1;&lt;br /&gt;
 			if (color == Chip.BLACK) {&lt;br /&gt;
 				bestme.move = new Move(target, 0);&lt;br /&gt;
 			} else {&lt;br /&gt;
 				bestme.move = new Move(0, target);&lt;br /&gt;
 			}&lt;br /&gt;
 			return bestme;&lt;br /&gt;
 		} else if (pieces &amp;lt; 4) { // second move for each color&lt;br /&gt;
 								 // place a random piece in the bottom (black) or right (white) goal&lt;br /&gt;
 			int target = (((int) (Math.random() * 10.0)) % (DIMENSION - 2)) + 1;&lt;br /&gt;
 			if (color == Chip.BLACK) {&lt;br /&gt;
 				bestme.move = new Move(target, DIMENSION-1);&lt;br /&gt;
 			} else {&lt;br /&gt;
 				bestme.move = new Move(DIMENSION-1, target);&lt;br /&gt;
 			}&lt;br /&gt;
 			return bestme;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			// at least 4 pieces are on the board now, so this is the 3rd+ move&lt;br /&gt;
 			// go ahead and generate the possible moves from the current board&lt;br /&gt;
 			Object[][] arr = generateMoves(color);&lt;br /&gt;
 			if (depth == 1) {&lt;br /&gt;
 				// this is our last level, so end the recursion&lt;br /&gt;
 				for (int i=0; i&amp;lt;arr[0].length; i++) {&lt;br /&gt;
 					if (arr[0][i] != null) {&lt;br /&gt;
 						Move targetmove = (Move) arr[1][i];&lt;br /&gt;
 						int score = ((Gameboard) arr[0][i]).winner()*factor;&lt;br /&gt;
 						System.out.println(&amp;quot;Got score &amp;quot; + score + &amp;quot; for board &amp;quot; + ((Gameboard) arr[0][i]) + &amp;quot;, factor &amp;quot; + factor);&lt;br /&gt;
 						if ((((score/factor)==WHITEWIN) &amp;amp;&amp;amp; (color==Chip.WHITE)) || (((score/factor)==BLACKWIN) &amp;amp;&amp;amp; (color==Chip.BLACK))) {&lt;br /&gt;
 							// we've reached a winner, so stop here and return it&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 							return bestme;&lt;br /&gt;
 						} else if ((score &amp;gt; bestme.score &amp;amp;&amp;amp; side) || (score &amp;lt; bestme.score &amp;amp;&amp;amp; !side)) {&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 						}&lt;br /&gt;
 					} else { // we've run out of moves to evalute; stop&lt;br /&gt;
 						break;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 				return bestme;&lt;br /&gt;
 			} else {&lt;br /&gt;
 				for (int ii=0; ii&amp;lt;arr[0].length; ii++) {&lt;br /&gt;
 					if (arr[0][ii] != null) {&lt;br /&gt;
 						// eventually, this is where we will check to make sure we still have enough time&lt;br /&gt;
 						System.out.println(&amp;quot;side: &amp;quot; + side);&lt;br /&gt;
 						Move targetmove = (Move) arr[1][ii];&lt;br /&gt;
 						int score = ((Gameboard) arr[0][ii]).winner()*factor;&lt;br /&gt;
 						if (depth ==2) { System.out.println(&amp;quot;Got score &amp;quot; + score + &amp;quot; for board &amp;quot; + ((Gameboard) arr[0][ii]) + &amp;quot;, factor &amp;quot; + factor); }&lt;br /&gt;
 						if ((((score/factor)==WHITEWIN) &amp;amp;&amp;amp; (color==Chip.WHITE)) || (((score/factor)==BLACKWIN) &amp;amp;&amp;amp; (color==Chip.BLACK))) {&lt;br /&gt;
 							// we've reached a winner, so stop here and return it&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 							return bestme;&lt;br /&gt;
 						} else {&lt;br /&gt;
 							bestopp = ((Gameboard) arr[0][ii]).chooseMove(generateOpponent(color), depth-1, alpha, beta, !side, factor-1); //hopefully we never search for more than 9 levels...&lt;br /&gt;
 							System.out.println(&amp;quot;Opponent's best response is &amp;quot; + bestopp.score + &amp;quot;, current best score is &amp;quot; + bestme.score + &amp;quot; (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) returns &amp;quot; + (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) + &amp;quot; for side = &amp;quot; + side);&lt;br /&gt;
 							targetmove = (Move) arr[1][ii];&lt;br /&gt;
 							if (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) {&lt;br /&gt;
 								bestme.move = targetmove;&lt;br /&gt;
 								bestme.score = bestopp.score;&lt;br /&gt;
 								alpha = bestopp.score;&lt;br /&gt;
 								System.out.println(&amp;quot;Found better move for white, score is &amp;quot; + bestopp.score + &amp;quot; move is &amp;quot; + bestme.move);&lt;br /&gt;
 							} else if (!side &amp;amp;&amp;amp; (bestopp.score &amp;lt; bestme.score)) {&lt;br /&gt;
 								bestme.move = targetmove;&lt;br /&gt;
 								bestme.score = bestopp.score;&lt;br /&gt;
 								beta = bestopp.score;&lt;br /&gt;
 								// System.out.println(&amp;quot;Found better move for black, score is &amp;quot; + bestopp.score);&lt;br /&gt;
 							} if (alpha &amp;gt;= beta) {&lt;br /&gt;
 								return bestme;&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					} else { // we've run out of moves to evalute; stop&lt;br /&gt;
 						break;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 				return bestme;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// returns the best possible move that can be made by the given color to a search depth of &amp;quot;depth&amp;quot; using the &amp;quot;this&amp;quot; board&lt;br /&gt;
 	// @return the best current Move&lt;br /&gt;
 	public Move evalTree(int color, int depth) {&lt;br /&gt;
 		int alpha = (BLACKWIN*10)-1;&lt;br /&gt;
 		int beta = (WHITEWIN*10)+1;&lt;br /&gt;
 		boolean side;&lt;br /&gt;
 		if (color == Chip.BLACK) {&lt;br /&gt;
 			side = false;&lt;br /&gt;
 		} else { &lt;br /&gt;
 			side = true;&lt;br /&gt;
 		}&lt;br /&gt;
 		Alphamove winningmove = this.chooseMove(color, depth, alpha, beta, side, 10);&lt;br /&gt;
 		return winningmove.move;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// simple method to generate the opponent's color&lt;br /&gt;
 	// given a color, @return the color of the opponent&lt;br /&gt;
 	public static int generateOpponent(int color) {&lt;br /&gt;
 		if (color == Chip.WHITE) {&lt;br /&gt;
 			return Chip.BLACK;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return Chip.WHITE;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// evaluates the given network for a winning color&lt;br /&gt;
 	// returns a probability of winning if there is no win (positive for white advantage, negative for black advantage)&lt;br /&gt;
 	// returns WHITEWIN if WHITE wins, BLACKWIN if BLACK wins&lt;br /&gt;
 	// @return an int with this board's score&lt;br /&gt;
 	public int winner() {&lt;br /&gt;
 	{{notmine|Jordan Berk|fragment=yes}}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// helper function for winner - recursively finds networks and assigns 1 point per connection and 10000 for a win&lt;br /&gt;
 	// @return an int with the score of the network&lt;br /&gt;
 	int findNetwork(Gameboard g, int x, int y, int color, int num, String currentDirection, String lastDirection) {&lt;br /&gt;
 	{{notmine|Jordan Berk|fragment=yes}}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// debugging method to print a gameboard&lt;br /&gt;
 	// @return a string represeting the board&lt;br /&gt;
 	public String toString() {&lt;br /&gt;
 		String output = &amp;quot;\n|&amp;quot;;&lt;br /&gt;
 		for (y=0; y&amp;lt;DIMENSION; y++) {&lt;br /&gt;
 			for (x=0; x&amp;lt;DIMENSION; x++) {&lt;br /&gt;
 				if (board[x][y] == null) {&lt;br /&gt;
 					output = output + &amp;quot; .&amp;quot;;&lt;br /&gt;
 				} else {&lt;br /&gt;
 					output = output + &amp;quot; &amp;quot; + ((Chip) board[x][y]).getColor();&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			output = output + &amp;quot;|\n|&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		return output;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Homework/hw6/SimpleBoard.java&amp;diff=5985</id>
		<title>Computer Science/61b/Homework/hw6/SimpleBoard.java</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Homework/hw6/SimpleBoard.java&amp;diff=5985"/>
		<updated>2011-01-13T07:00:34Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{code}}&lt;br /&gt;
 /* SimpleBoard.java */&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
 *  Simple class that implements an 8x8 game board with three possible values&lt;br /&gt;
  *  for each cell:  0, 1 or 2.&lt;br /&gt;
  *&lt;br /&gt;
  *  DO NOT CHANGE ANY PROTOTYPES IN THIS FILE.&lt;br /&gt;
  **/&lt;br /&gt;
 &lt;br /&gt;
 public class SimpleBoard {&lt;br /&gt;
 	private final static int DIMENSION = 8;&lt;br /&gt;
 	private int[][] grid;&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Invariants:  &lt;br /&gt;
 	 *  (1) grid.length == DIMENSION.&lt;br /&gt;
 	 *  (2) for all 0 &amp;lt;= i &amp;lt; DIMENSION, grid[i].length == DIMENSION.&lt;br /&gt;
 	 *  (3) for all 0 &amp;lt;= i, j &amp;lt; DIMENSION, grid[i][j] &amp;gt;= 0 and grid[i][j] &amp;lt;= 2.&lt;br /&gt;
 	 **/&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Construct a new board in which all cells are zero.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public SimpleBoard() {&lt;br /&gt;
 		grid = new int[DIMENSION][DIMENSION];&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Set the cell (x, y) in the board to the given value mod 3.&lt;br /&gt;
 	 *  @param value to which the element should be set (normally 0, 1, or 2).&lt;br /&gt;
 	 *  @param x is the x-index.&lt;br /&gt;
 	 *  @param y is the y-index.&lt;br /&gt;
 	 *  @exception ArrayIndexOutOfBoundsException is thrown if an invalid index&lt;br /&gt;
 	 *  is given.&lt;br /&gt;
 	 **/&lt;br /&gt;
 	&lt;br /&gt;
 	public void setElementAt(int x, int y, int value) {&lt;br /&gt;
 		grid[x][y] = value % 3;&lt;br /&gt;
 		if (grid[x][y] &amp;lt; 0) {&lt;br /&gt;
 			grid[x][y] = grid[x][y] + 3;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Get the valued stored in cell (x, y).&lt;br /&gt;
 	 *  @param x is the x-index.&lt;br /&gt;
 	 *  @param y is the y-index.&lt;br /&gt;
 	 *  @return the stored value (between 0 and 2).&lt;br /&gt;
 	 *  @exception ArrayIndexOutOfBoundsException is thrown if an invalid index&lt;br /&gt;
 	 *  is given.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public int elementAt(int x, int y) {&lt;br /&gt;
 		return grid[x][y];&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Returns true if &amp;quot;this&amp;quot; SimpleBoard and &amp;quot;board&amp;quot; have identical values in&lt;br /&gt;
 	 *    every cell.&lt;br /&gt;
 	 *  @param board is the second SimpleBoard.&lt;br /&gt;
 	 *  @return true if the boards are equal, false otherwise.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public boolean equals(Object board) {&lt;br /&gt;
 		if (board.getClass() == this.getClass()) {&lt;br /&gt;
 			return (this.hashCode() == board.hashCode());&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Returns a hash code for this SimpleBoard.&lt;br /&gt;
 	 *  @return a number between Integer.MIN_VALUE and Integer.MAX_VALUE.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public int hashCode() {&lt;br /&gt;
 		int hash = 0;&lt;br /&gt;
 		for (int io=0; io&amp;lt;DIMENSION; io++) {&lt;br /&gt;
 			for (int ii=0; ii&amp;lt;DIMENSION; ii++) {&lt;br /&gt;
 				hash = hash * 3 + grid[io][ii];&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		return hash;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Projects/Network/player/Gameboard.java&amp;diff=4229</id>
		<title>Computer Science/61b/Projects/Network/player/Gameboard.java</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Projects/Network/player/Gameboard.java&amp;diff=4229"/>
		<updated>2010-12-27T05:52:55Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{code}}&lt;br /&gt;
 package player;&lt;br /&gt;
 &lt;br /&gt;
 /* Gameboard class&lt;br /&gt;
  * contains the gameboard ADT and methods for handling it&lt;br /&gt;
  * in addition, contains methods for generating and evaluating new moves&lt;br /&gt;
 **/&lt;br /&gt;
 &lt;br /&gt;
 public class Gameboard {&lt;br /&gt;
 	&lt;br /&gt;
 	// Allows for a hypothetical expansion of the board&lt;br /&gt;
 	public final static int DIMENSION = 8;&lt;br /&gt;
 	public final static int ADD = 1;&lt;br /&gt;
 	public final static int STEP = 2;&lt;br /&gt;
 	// used for signaling a white/black win; needs to be large and prime&lt;br /&gt;
 	public final static int WHITEWIN = 2047;&lt;br /&gt;
 	public final static int BLACKWIN = -2047;&lt;br /&gt;
 	&lt;br /&gt;
 	private Chip[][] board = new Chip[DIMENSION][DIMENSION];&lt;br /&gt;
 	private int x = DIMENSION;&lt;br /&gt;
 	private int y = DIMENSION;&lt;br /&gt;
 	private int pieces;&lt;br /&gt;
 	&lt;br /&gt;
 	// returns the Chip at a given x &amp;amp; y coord&lt;br /&gt;
 	/* we use a &amp;quot;try&amp;quot; so that if we try to access a location that is off the board,&lt;br /&gt;
 		i.e. we attempt to get non-existent coords, then just return null */&lt;br /&gt;
 	public Chip cellContents(int x, int y) {&lt;br /&gt;
 		try {&lt;br /&gt;
 		return board[x][y];&lt;br /&gt;
 		} catch (ArrayIndexOutOfBoundsException e) {&lt;br /&gt;
 			return null;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/** @return an array of Chip neighbors around a given position (x,y) **/&lt;br /&gt;
 	public Chip[] neighborarray(int x, int y) {&lt;br /&gt;
 		Chip[] array = new Chip[8];&lt;br /&gt;
 		array[0] = cellContents(x-1, y-1); // nw&lt;br /&gt;
 		array[1] = cellContents(x, y-1); // n&lt;br /&gt;
 		array[2] = cellContents(x+1, y-1); // ne&lt;br /&gt;
 		array[3] = cellContents(x+1, y); // e&lt;br /&gt;
 		array[4] = cellContents(x+1, y+1); // se&lt;br /&gt;
 		array[5] = cellContents(x, y+1); // s&lt;br /&gt;
 		array[6] = cellContents(x-1, y+1); // sw&lt;br /&gt;
 		array[7] = cellContents(x-1, y); // w&lt;br /&gt;
 		return array;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/** takes in rec = 1 on initial search&lt;br /&gt;
 		@return the number of the same-color neighbors around a given position (x, y) **/&lt;br /&gt;
 	public int neighbor(int color, int x, int y, int rec) {&lt;br /&gt;
 		if (rec &amp;lt; 0) {&lt;br /&gt;
 			return 0;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			Chip[] array = neighborarray(x, y);&lt;br /&gt;
 			int number = 0;&lt;br /&gt;
 			for (int i=0; i&amp;lt;array.length; i++) {&lt;br /&gt;
 				Chip target = array[i];&lt;br /&gt;
 				if (target != null &amp;amp;&amp;amp; target.getColor()==color) {&lt;br /&gt;
 					number = number + neighbor(color, target.getX(), target.getY(), rec-1);&lt;br /&gt;
 					number++;&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			return number;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* inserts a chip of the given color at (x, y) if this is acceptable&lt;br /&gt;
 		returns true if the insertion is legal, false otherwise */&lt;br /&gt;
 	public boolean insertChip(int color, int x, int y) {&lt;br /&gt;
 		if (validMove(color, new Move(x, y))) {&lt;br /&gt;
 			board[x][y] = new Chip(color, x, y);&lt;br /&gt;
 			pieces++;&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* moves Chip c to a new location at (x, y)&lt;br /&gt;
 		returns true if the move is legal, false otherwise */&lt;br /&gt;
 	public boolean moveChip(Chip c, int x, int y) {&lt;br /&gt;
 		if (validMove(c.getColor(), new Move(x, y))) {&lt;br /&gt;
 			board[c.getX()][c.getY()] = null;&lt;br /&gt;
 			board[x][y] = new Chip(c.getColor(), x, y);&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* performs the requested move for a player of the given color&lt;br /&gt;
 		returns true if the move is legal, false otherwise */&lt;br /&gt;
 	public boolean performMove(int color, Move m) {&lt;br /&gt;
 		if (m.moveKind == Move.ADD) {&lt;br /&gt;
 			return insertChip(color, m.x1, m.y1);&lt;br /&gt;
 		} else if (m.moveKind == Move.STEP) {&lt;br /&gt;
 			return moveChip(retrieveChip(m.x2, m.y2), m.x1, m.y1);&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// legacy method for returning a chip at (x, y)&lt;br /&gt;
 	public Chip retrieveChip(int x, int y) {&lt;br /&gt;
 		return cellContents(x, y);&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**	Verifies that a given move is valid for a plyer of the given color.&lt;br /&gt;
 		* the following conditions must be met:&lt;br /&gt;
 		* No chip may be placed in any of the four corners&lt;br /&gt;
 		* No chip may be placed in a goal of the opposite color&lt;br /&gt;
 		* No chip may be placed in a square that is already occupied&lt;br /&gt;
 		* A player may not have more than two chips in a connected group, whether connected orthogonally or diagonally&lt;br /&gt;
 		takes a move and the player's color performing the move&lt;br /&gt;
 		@return true if move is valid&lt;br /&gt;
 	*/&lt;br /&gt;
 	public boolean validMove(int color, Move m) {&lt;br /&gt;
 		if (m.moveKind == Move.QUIT) {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			if ((m.x1==0 &amp;amp;&amp;amp; (m.y1==0 || m.y1==DIMENSION-1)) || (m.y1==DIMENSION-1 &amp;amp;&amp;amp; (m.x1==0 || m.x1==DIMENSION-1))) {&lt;br /&gt;
 				return false; // in the corners&lt;br /&gt;
 			} else if (board[m.x1][m.y1] != null) {&lt;br /&gt;
 				return false; // target cell isn't empty&lt;br /&gt;
 			} else if (((color == Chip.BLACK) &amp;amp;&amp;amp; (m.x1==0 || m.x1==DIMENSION-1)) || ((color == Chip.WHITE) &amp;amp;&amp;amp; (m.y1==0 || m.y1==DIMENSION-1))) {&lt;br /&gt;
 				return false; // target cell is in opponent's goal&lt;br /&gt;
 			} else if (!checkClusterSize(color, m.x1, m.y1)) {&lt;br /&gt;
 				return false; // resulting cluster too big&lt;br /&gt;
 			} else {&lt;br /&gt;
 				return true; // looks like this move is good&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// helper method for validMove()&lt;br /&gt;
 	// @return true if an insertion at the given position is possible w/respect to cluster size; false otherwise&lt;br /&gt;
 	public boolean checkClusterSize(int color, int x, int y) {&lt;br /&gt;
 		if (neighbor(color, x, y, 1) &amp;gt; 1) {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// generates a 2-d array of moves and resulting gameboards for a given color&lt;br /&gt;
 	// @return[0] is an array of Gameboards (Gameboard[x])&lt;br /&gt;
 	// @return[1] is an array of Moves corresponding to each board in return[0] (Move[x])&lt;br /&gt;
 	// thus the board after performing g.performMove(color, return[1][i]) is return[0][i]&lt;br /&gt;
 	public Object[][] generateMoves(int color) {&lt;br /&gt;
 	{{notmine|Chanh Vo|fragment=yes}} 	&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// @return an exact clone of &amp;quot;this&amp;quot; gameboard&lt;br /&gt;
 	public Gameboard clone() {&lt;br /&gt;
 	{{notmine|Chanh Vo|fragment=yes}} 	&lt;br /&gt;
 	}&lt;br /&gt;
 	 	&lt;br /&gt;
 	// return the current Move kind for this gameboard, depending on number of pieces&lt;br /&gt;
 	// @return either STEP or ADD&lt;br /&gt;
 	public int moveKind() {&lt;br /&gt;
 		if (pieces &amp;lt; 20) {&lt;br /&gt;
 			return ADD;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return STEP;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* chooses a move to a given depth for a given color using alpha-beta pruning (hopefully)&lt;br /&gt;
 	/ first two moves involve the random placement of a chip in each of the goals without any analysis&lt;br /&gt;
 	/ @param color - current player's color&lt;br /&gt;
 		depth - number of levels remaining to search (i.e. depth = 1 means no look-ahead)&lt;br /&gt;
 		alpha, beta - best-case and worst-case scores&lt;br /&gt;
 		side - true for white, false for black&lt;br /&gt;
 		factor - multiplier used to score a win many levels down lower than a win in the first level&lt;br /&gt;
 	/ @return an Alphamove with the best move and its corresponding score */&lt;br /&gt;
 	public Alphamove chooseMove(int color, int depth, int alpha, int beta, boolean side, int factor) {&lt;br /&gt;
 		Alphamove bestme = new Alphamove();&lt;br /&gt;
 		Alphamove bestopp;&lt;br /&gt;
 		if (side) {&lt;br /&gt;
 			bestme.score = alpha;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			bestme.score = beta;&lt;br /&gt;
 		}&lt;br /&gt;
 		if (pieces &amp;lt; 2) { // first move for each color&lt;br /&gt;
 						  // place a random piece in the top (black) or left (white) goal&lt;br /&gt;
 			int target = (((int) (Math.random() * 10.0)) % (DIMENSION - 2)) + 1;&lt;br /&gt;
 			if (color == Chip.BLACK) {&lt;br /&gt;
 				bestme.move = new Move(target, 0);&lt;br /&gt;
 			} else {&lt;br /&gt;
 				bestme.move = new Move(0, target);&lt;br /&gt;
 			}&lt;br /&gt;
 			return bestme;&lt;br /&gt;
 		} else if (pieces &amp;lt; 4) { // second move for each color&lt;br /&gt;
 								 // place a random piece in the bottom (black) or right (white) goal&lt;br /&gt;
 			int target = (((int) (Math.random() * 10.0)) % (DIMENSION - 2)) + 1;&lt;br /&gt;
 			if (color == Chip.BLACK) {&lt;br /&gt;
 				bestme.move = new Move(target, DIMENSION-1);&lt;br /&gt;
 			} else {&lt;br /&gt;
 				bestme.move = new Move(DIMENSION-1, target);&lt;br /&gt;
 			}&lt;br /&gt;
 			return bestme;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			// at least 4 pieces are on the board now, so this is the 3rd+ move&lt;br /&gt;
 			// go ahead and generate the possible moves from the current board&lt;br /&gt;
 			Object[][] arr = generateMoves(color);&lt;br /&gt;
 			if (depth == 1) {&lt;br /&gt;
 				// this is our last level, so end the recursion&lt;br /&gt;
 				for (int i=0; i&amp;lt;arr[0].length; i++) {&lt;br /&gt;
 					if (arr[0][i] != null) {&lt;br /&gt;
 						Move targetmove = (Move) arr[1][i];&lt;br /&gt;
 						int score = ((Gameboard) arr[0][i]).winner()*factor;&lt;br /&gt;
 						System.out.println(&amp;quot;Got score &amp;quot; + score + &amp;quot; for board &amp;quot; + ((Gameboard) arr[0][i]) + &amp;quot;, factor &amp;quot; + factor);&lt;br /&gt;
 						if ((((score/factor)==WHITEWIN) &amp;amp;&amp;amp; (color==Chip.WHITE)) || (((score/factor)==BLACKWIN) &amp;amp;&amp;amp; (color==Chip.BLACK))) {&lt;br /&gt;
 							// we've reached a winner, so stop here and return it&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 							return bestme;&lt;br /&gt;
 						} else if ((score &amp;gt; bestme.score &amp;amp;&amp;amp; side) || (score &amp;lt; bestme.score &amp;amp;&amp;amp; !side)) {&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 						}&lt;br /&gt;
 					} else { // we've run out of moves to evalute; stop&lt;br /&gt;
 						break;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 				return bestme;&lt;br /&gt;
 			} else {&lt;br /&gt;
 				for (int ii=0; ii&amp;lt;arr[0].length; ii++) {&lt;br /&gt;
 					if (arr[0][ii] != null) {&lt;br /&gt;
 						// eventually, this is where we will check to make sure we still have enough time&lt;br /&gt;
 						System.out.println(&amp;quot;side: &amp;quot; + side);&lt;br /&gt;
 						Move targetmove = (Move) arr[1][ii];&lt;br /&gt;
 						int score = ((Gameboard) arr[0][ii]).winner()*factor;&lt;br /&gt;
 						if (depth ==2) { System.out.println(&amp;quot;Got score &amp;quot; + score + &amp;quot; for board &amp;quot; + ((Gameboard) arr[0][ii]) + &amp;quot;, factor &amp;quot; + factor); }&lt;br /&gt;
 						if ((((score/factor)==WHITEWIN) &amp;amp;&amp;amp; (color==Chip.WHITE)) || (((score/factor)==BLACKWIN) &amp;amp;&amp;amp; (color==Chip.BLACK))) {&lt;br /&gt;
 							// we've reached a winner, so stop here and return it&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 							return bestme;&lt;br /&gt;
 						} else {&lt;br /&gt;
 							bestopp = ((Gameboard) arr[0][ii]).chooseMove(generateOpponent(color), depth-1, alpha, beta, !side, factor-1); //hopefully we never search for more than 9 levels...&lt;br /&gt;
 							System.out.println(&amp;quot;Opponent's best response is &amp;quot; + bestopp.score + &amp;quot;, current best score is &amp;quot; + bestme.score + &amp;quot; (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) returns &amp;quot; + (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) + &amp;quot; for side = &amp;quot; + side);&lt;br /&gt;
 							targetmove = (Move) arr[1][ii];&lt;br /&gt;
 							if (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) {&lt;br /&gt;
 								bestme.move = targetmove;&lt;br /&gt;
 								bestme.score = bestopp.score;&lt;br /&gt;
 								alpha = bestopp.score;&lt;br /&gt;
 								System.out.println(&amp;quot;Found better move for white, score is &amp;quot; + bestopp.score + &amp;quot; move is &amp;quot; + bestme.move);&lt;br /&gt;
 							} else if (!side &amp;amp;&amp;amp; (bestopp.score &amp;lt; bestme.score)) {&lt;br /&gt;
 								bestme.move = targetmove;&lt;br /&gt;
 								bestme.score = bestopp.score;&lt;br /&gt;
 								beta = bestopp.score;&lt;br /&gt;
 								// System.out.println(&amp;quot;Found better move for black, score is &amp;quot; + bestopp.score);&lt;br /&gt;
 							} if (alpha &amp;gt;= beta) {&lt;br /&gt;
 								return bestme;&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					} else { // we've run out of moves to evalute; stop&lt;br /&gt;
 						break;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 				return bestme;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// returns the best possible move that can be made by the given color to a search depth of &amp;quot;depth&amp;quot; using the &amp;quot;this&amp;quot; board&lt;br /&gt;
 	// @return the best current Move&lt;br /&gt;
 	public Move evalTree(int color, int depth) {&lt;br /&gt;
 		int alpha = (BLACKWIN*10)-1;&lt;br /&gt;
 		int beta = (WHITEWIN*10)+1;&lt;br /&gt;
 		boolean side;&lt;br /&gt;
 		if (color == Chip.BLACK) {&lt;br /&gt;
 			side = false;&lt;br /&gt;
 		} else { &lt;br /&gt;
 			side = true;&lt;br /&gt;
 		}&lt;br /&gt;
 		Alphamove winningmove = this.chooseMove(color, depth, alpha, beta, side, 10);&lt;br /&gt;
 		return winningmove.move;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// simple method to generate the opponent's color&lt;br /&gt;
 	// given a color, @return the color of the opponent&lt;br /&gt;
 	public static int generateOpponent(int color) {&lt;br /&gt;
 		if (color == Chip.WHITE) {&lt;br /&gt;
 			return Chip.BLACK;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return Chip.WHITE;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// evaluates the given network for a winning color&lt;br /&gt;
 	// returns a probability of winning if there is no win (positive for white advantage, negative for black advantage)&lt;br /&gt;
 	// returns WHITEWIN if WHITE wins, BLACKWIN if BLACK wins&lt;br /&gt;
 	// @return an int with this board's score&lt;br /&gt;
 	public int winner() {&lt;br /&gt;
 	{{notmine|Jordan Berk|fragment=yes}}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// helper function for winner - recursively finds networks and assigns 1 point per connection and 10000 for a win&lt;br /&gt;
 	// @return an int with the score of the network&lt;br /&gt;
 	int findNetwork(Gameboard g, int x, int y, int color, int num, String currentDirection, String lastDirection) {&lt;br /&gt;
 	{{notmine|Jordan Berk|fragment=yes}}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// debugging method to print a gameboard&lt;br /&gt;
 	// @return a string represeting the board&lt;br /&gt;
 	public String toString() {&lt;br /&gt;
 		String output = &amp;quot;\n|&amp;quot;;&lt;br /&gt;
 		for (y=0; y&amp;lt;DIMENSION; y++) {&lt;br /&gt;
 			for (x=0; x&amp;lt;DIMENSION; x++) {&lt;br /&gt;
 				if (board[x][y] == null) {&lt;br /&gt;
 					output = output + &amp;quot; .&amp;quot;;&lt;br /&gt;
 				} else {&lt;br /&gt;
 					output = output + &amp;quot; &amp;quot; + ((Chip) board[x][y]).getColor();&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			output = output + &amp;quot;|\n|&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		return output;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Homework/hw6/SimpleBoard.java&amp;diff=4228</id>
		<title>Computer Science/61b/Homework/hw6/SimpleBoard.java</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Homework/hw6/SimpleBoard.java&amp;diff=4228"/>
		<updated>2010-12-27T05:52:43Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{code}}&lt;br /&gt;
 /* SimpleBoard.java */&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
 *  Simple class that implements an 8x8 game board with three possible values&lt;br /&gt;
  *  for each cell:  0, 1 or 2.&lt;br /&gt;
  *&lt;br /&gt;
  *  DO NOT CHANGE ANY PROTOTYPES IN THIS FILE.&lt;br /&gt;
  **/&lt;br /&gt;
 &lt;br /&gt;
 public class SimpleBoard {&lt;br /&gt;
 	private final static int DIMENSION = 8;&lt;br /&gt;
 	private int[][] grid;&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Invariants:  &lt;br /&gt;
 	 *  (1) grid.length == DIMENSION.&lt;br /&gt;
 	 *  (2) for all 0 &amp;lt;= i &amp;lt; DIMENSION, grid[i].length == DIMENSION.&lt;br /&gt;
 	 *  (3) for all 0 &amp;lt;= i, j &amp;lt; DIMENSION, grid[i][j] &amp;gt;= 0 and grid[i][j] &amp;lt;= 2.&lt;br /&gt;
 	 **/&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Construct a new board in which all cells are zero.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public SimpleBoard() {&lt;br /&gt;
 		grid = new int[DIMENSION][DIMENSION];&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Set the cell (x, y) in the board to the given value mod 3.&lt;br /&gt;
 	 *  @param value to which the element should be set (normally 0, 1, or 2).&lt;br /&gt;
 	 *  @param x is the x-index.&lt;br /&gt;
 	 *  @param y is the y-index.&lt;br /&gt;
 	 *  @exception ArrayIndexOutOfBoundsException is thrown if an invalid index&lt;br /&gt;
 	 *  is given.&lt;br /&gt;
 	 **/&lt;br /&gt;
 	&lt;br /&gt;
 	public void setElementAt(int x, int y, int value) {&lt;br /&gt;
 		grid[x][y] = value % 3;&lt;br /&gt;
 		if (grid[x][y] &amp;lt; 0) {&lt;br /&gt;
 			grid[x][y] = grid[x][y] + 3;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Get the valued stored in cell (x, y).&lt;br /&gt;
 	 *  @param x is the x-index.&lt;br /&gt;
 	 *  @param y is the y-index.&lt;br /&gt;
 	 *  @return the stored value (between 0 and 2).&lt;br /&gt;
 	 *  @exception ArrayIndexOutOfBoundsException is thrown if an invalid index&lt;br /&gt;
 	 *  is given.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public int elementAt(int x, int y) {&lt;br /&gt;
 		return grid[x][y];&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Returns true if &amp;quot;this&amp;quot; SimpleBoard and &amp;quot;board&amp;quot; have identical values in&lt;br /&gt;
 	 *    every cell.&lt;br /&gt;
 	 *  @param board is the second SimpleBoard.&lt;br /&gt;
 	 *  @return true if the boards are equal, false otherwise.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public boolean equals(Object board) {&lt;br /&gt;
 		if (board.getClass() == this.getClass()) {&lt;br /&gt;
 			return (this.hashCode() == board.hashCode());&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 		*  Returns a hash code for this SimpleBoard.&lt;br /&gt;
 	 *  @return a number between Integer.MIN_VALUE and Integer.MAX_VALUE.&lt;br /&gt;
 	 */&lt;br /&gt;
 	&lt;br /&gt;
 	public int hashCode() {&lt;br /&gt;
 		int hash = 0;&lt;br /&gt;
 		for (int io=0; io&amp;lt;DIMENSION; io++) {&lt;br /&gt;
 			for (int ii=0; ii&amp;lt;DIMENSION; ii++) {&lt;br /&gt;
 				hash = hash * 3 + grid[io][ii];&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		return hash;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Projects/Network/player/Gameboard.java&amp;diff=4095</id>
		<title>Computer Science/61b/Projects/Network/player/Gameboard.java</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science/61b/Projects/Network/player/Gameboard.java&amp;diff=4095"/>
		<updated>2010-12-24T10:19:05Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{code}}&lt;br /&gt;
 package player;&lt;br /&gt;
 &lt;br /&gt;
 /* Gameboard class&lt;br /&gt;
  * contains the gameboard ADT and methods for handling it&lt;br /&gt;
  * in addition, contains methods for generating and evaluating new moves&lt;br /&gt;
 **/&lt;br /&gt;
 &lt;br /&gt;
 public class Gameboard {&lt;br /&gt;
 	&lt;br /&gt;
 	// Allows for a hypothetical expansion of the board&lt;br /&gt;
 	public final static int DIMENSION = 8;&lt;br /&gt;
 	public final static int ADD = 1;&lt;br /&gt;
 	public final static int STEP = 2;&lt;br /&gt;
 	// used for signaling a white/black win; needs to be large and prime&lt;br /&gt;
 	public final static int WHITEWIN = 2047;&lt;br /&gt;
 	public final static int BLACKWIN = -2047;&lt;br /&gt;
 	&lt;br /&gt;
 	private Chip[][] board = new Chip[DIMENSION][DIMENSION];&lt;br /&gt;
 	private int x = DIMENSION;&lt;br /&gt;
 	private int y = DIMENSION;&lt;br /&gt;
 	private int pieces;&lt;br /&gt;
 	&lt;br /&gt;
 	// returns the Chip at a given x &amp;amp; y coord&lt;br /&gt;
 	/* we use a &amp;quot;try&amp;quot; so that if we try to access a location that is off the board,&lt;br /&gt;
 		i.e. we attempt to get non-existent coords, then just return null */&lt;br /&gt;
 	public Chip cellContents(int x, int y) {&lt;br /&gt;
 		try {&lt;br /&gt;
 		return board[x][y];&lt;br /&gt;
 		} catch (ArrayIndexOutOfBoundsException e) {&lt;br /&gt;
 			return null;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/** @return an array of Chip neighbors around a given position (x,y) **/&lt;br /&gt;
 	public Chip[] neighborarray(int x, int y) {&lt;br /&gt;
 		Chip[] array = new Chip[8];&lt;br /&gt;
 		array[0] = cellContents(x-1, y-1); // nw&lt;br /&gt;
 		array[1] = cellContents(x, y-1); // n&lt;br /&gt;
 		array[2] = cellContents(x+1, y-1); // ne&lt;br /&gt;
 		array[3] = cellContents(x+1, y); // e&lt;br /&gt;
 		array[4] = cellContents(x+1, y+1); // se&lt;br /&gt;
 		array[5] = cellContents(x, y+1); // s&lt;br /&gt;
 		array[6] = cellContents(x-1, y+1); // sw&lt;br /&gt;
 		array[7] = cellContents(x-1, y); // w&lt;br /&gt;
 		return array;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/** takes in rec = 1 on initial search&lt;br /&gt;
 		@return the number of the same-color neighbors around a given position (x, y) **/&lt;br /&gt;
 	public int neighbor(int color, int x, int y, int rec) {&lt;br /&gt;
 		if (rec &amp;lt; 0) {&lt;br /&gt;
 			return 0;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			Chip[] array = neighborarray(x, y);&lt;br /&gt;
 			int number = 0;&lt;br /&gt;
 			for (int i=0; i&amp;lt;array.length; i++) {&lt;br /&gt;
 				Chip target = array[i];&lt;br /&gt;
 				if (target != null &amp;amp;&amp;amp; target.getColor()==color) {&lt;br /&gt;
 					number = number + neighbor(color, target.getX(), target.getY(), rec-1);&lt;br /&gt;
 					number++;&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			return number;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* inserts a chip of the given color at (x, y) if this is acceptable&lt;br /&gt;
 		returns true if the insertion is legal, false otherwise */&lt;br /&gt;
 	public boolean insertChip(int color, int x, int y) {&lt;br /&gt;
 		if (validMove(color, new Move(x, y))) {&lt;br /&gt;
 			board[x][y] = new Chip(color, x, y);&lt;br /&gt;
 			pieces++;&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* moves Chip c to a new location at (x, y)&lt;br /&gt;
 		returns true if the move is legal, false otherwise */&lt;br /&gt;
 	public boolean moveChip(Chip c, int x, int y) {&lt;br /&gt;
 		if (validMove(c.getColor(), new Move(x, y))) {&lt;br /&gt;
 			board[c.getX()][c.getY()] = null;&lt;br /&gt;
 			board[x][y] = new Chip(c.getColor(), x, y);&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* performs the requested move for a player of the given color&lt;br /&gt;
 		returns true if the move is legal, false otherwise */&lt;br /&gt;
 	public boolean performMove(int color, Move m) {&lt;br /&gt;
 		if (m.moveKind == Move.ADD) {&lt;br /&gt;
 			return insertChip(color, m.x1, m.y1);&lt;br /&gt;
 		} else if (m.moveKind == Move.STEP) {&lt;br /&gt;
 			return moveChip(retrieveChip(m.x2, m.y2), m.x1, m.y1);&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// legacy method for returning a chip at (x, y)&lt;br /&gt;
 	public Chip retrieveChip(int x, int y) {&lt;br /&gt;
 		return cellContents(x, y);&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/**	Verifies that a given move is valid for a plyer of the given color.&lt;br /&gt;
 		* the following conditions must be met:&lt;br /&gt;
 		* No chip may be placed in any of the four corners&lt;br /&gt;
 		* No chip may be placed in a goal of the opposite color&lt;br /&gt;
 		* No chip may be placed in a square that is already occupied&lt;br /&gt;
 		* A player may not have more than two chips in a connected group, whether connected orthogonally or diagonally&lt;br /&gt;
 		takes a move and the player's color performing the move&lt;br /&gt;
 		@return true if move is valid&lt;br /&gt;
 	*/&lt;br /&gt;
 	public boolean validMove(int color, Move m) {&lt;br /&gt;
 		if (m.moveKind == Move.QUIT) {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			if ((m.x1==0 &amp;amp;&amp;amp; (m.y1==0 || m.y1==DIMENSION-1)) || (m.y1==DIMENSION-1 &amp;amp;&amp;amp; (m.x1==0 || m.x1==DIMENSION-1))) {&lt;br /&gt;
 				return false; // in the corners&lt;br /&gt;
 			} else if (board[m.x1][m.y1] != null) {&lt;br /&gt;
 				return false; // target cell isn't empty&lt;br /&gt;
 			} else if (((color == Chip.BLACK) &amp;amp;&amp;amp; (m.x1==0 || m.x1==DIMENSION-1)) || ((color == Chip.WHITE) &amp;amp;&amp;amp; (m.y1==0 || m.y1==DIMENSION-1))) {&lt;br /&gt;
 				return false; // target cell is in opponent's goal&lt;br /&gt;
 			} else if (!checkClusterSize(color, m.x1, m.y1)) {&lt;br /&gt;
 				return false; // resulting cluster too big&lt;br /&gt;
 			} else {&lt;br /&gt;
 				return true; // looks like this move is good&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// helper method for validMove()&lt;br /&gt;
 	// @return true if an insertion at the given position is possible w/respect to cluster size; false otherwise&lt;br /&gt;
 	public boolean checkClusterSize(int color, int x, int y) {&lt;br /&gt;
 		if (neighbor(color, x, y, 1) &amp;gt; 1) {&lt;br /&gt;
 			return false;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// generates a 2-d array of moves and resulting gameboards for a given color&lt;br /&gt;
 	// @return[0] is an array of Gameboards (Gameboard[x])&lt;br /&gt;
 	// @return[1] is an array of Moves corresponding to each board in return[0] (Move[x])&lt;br /&gt;
 	// thus the board after performing g.performMove(color, return[1][i]) is return[0][i]&lt;br /&gt;
 	public Object[][] generateMoves(int color) {&lt;br /&gt;
 	{{notmine|Chanh Vo|fragment=yes}} 	&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// @return an exact clone of &amp;quot;this&amp;quot; gameboard&lt;br /&gt;
 	public Gameboard clone() {&lt;br /&gt;
 	{{notmine|Chanh Vo|fragment=yes}} 	&lt;br /&gt;
 	}&lt;br /&gt;
 	 	&lt;br /&gt;
 	// return the current Move kind for this gameboard, depending on number of pieces&lt;br /&gt;
 	// @return either STEP or ADD&lt;br /&gt;
 	public int moveKind() {&lt;br /&gt;
 		if (pieces &amp;lt; 20) {&lt;br /&gt;
 			return ADD;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return STEP;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	/* chooses a move to a given depth for a given color using alpha-beta pruning (hopefully)&lt;br /&gt;
 	/ first two moves involve the random placement of a chip in each of the goals without any analysis&lt;br /&gt;
 	/ @param color - current player's color&lt;br /&gt;
 		depth - number of levels remaining to search (i.e. depth = 1 means no look-ahead)&lt;br /&gt;
 		alpha, beta - best-case and worst-case scores&lt;br /&gt;
 		side - true for white, false for black&lt;br /&gt;
 		factor - multiplier used to score a win many levels down lower than a win in the first level&lt;br /&gt;
 	/ @return an Alphamove with the best move and its corresponding score */&lt;br /&gt;
 	public Alphamove chooseMove(int color, int depth, int alpha, int beta, boolean side, int factor) {&lt;br /&gt;
 		Alphamove bestme = new Alphamove();&lt;br /&gt;
 		Alphamove bestopp;&lt;br /&gt;
 		if (side) {&lt;br /&gt;
 			bestme.score = alpha;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			bestme.score = beta;&lt;br /&gt;
 		}&lt;br /&gt;
 		if (pieces &amp;lt; 2) { // first move for each color&lt;br /&gt;
 						  // place a random piece in the top (black) or left (white) goal&lt;br /&gt;
 			int target = (((int) (Math.random() * 10.0)) % (DIMENSION - 2)) + 1;&lt;br /&gt;
 			if (color == Chip.BLACK) {&lt;br /&gt;
 				bestme.move = new Move(target, 0);&lt;br /&gt;
 			} else {&lt;br /&gt;
 				bestme.move = new Move(0, target);&lt;br /&gt;
 			}&lt;br /&gt;
 			return bestme;&lt;br /&gt;
 		} else if (pieces &amp;lt; 4) { // second move for each color&lt;br /&gt;
 								 // place a random piece in the bottom (black) or right (white) goal&lt;br /&gt;
 			int target = (((int) (Math.random() * 10.0)) % (DIMENSION - 2)) + 1;&lt;br /&gt;
 			if (color == Chip.BLACK) {&lt;br /&gt;
 				bestme.move = new Move(target, DIMENSION-1);&lt;br /&gt;
 			} else {&lt;br /&gt;
 				bestme.move = new Move(DIMENSION-1, target);&lt;br /&gt;
 			}&lt;br /&gt;
 			return bestme;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			// at least 4 pieces are on the board now, so this is the 3rd+ move&lt;br /&gt;
 			// go ahead and generate the possible moves from the current board&lt;br /&gt;
 			Object[][] arr = generateMoves(color);&lt;br /&gt;
 			if (depth == 1) {&lt;br /&gt;
 				// this is our last level, so end the recursion&lt;br /&gt;
 				for (int i=0; i&amp;lt;arr[0].length; i++) {&lt;br /&gt;
 					if (arr[0][i] != null) {&lt;br /&gt;
 						Move targetmove = (Move) arr[1][i];&lt;br /&gt;
 						int score = ((Gameboard) arr[0][i]).winner()*factor;&lt;br /&gt;
 						System.out.println(&amp;quot;Got score &amp;quot; + score + &amp;quot; for board &amp;quot; + ((Gameboard) arr[0][i]) + &amp;quot;, factor &amp;quot; + factor);&lt;br /&gt;
 						if ((((score/factor)==WHITEWIN) &amp;amp;&amp;amp; (color==Chip.WHITE)) || (((score/factor)==BLACKWIN) &amp;amp;&amp;amp; (color==Chip.BLACK))) {&lt;br /&gt;
 							// we've reached a winner, so stop here and return it&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 							return bestme;&lt;br /&gt;
 						} else if ((score &amp;gt; bestme.score &amp;amp;&amp;amp; side) || (score &amp;lt; bestme.score &amp;amp;&amp;amp; !side)) {&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 						}&lt;br /&gt;
 					} else { // we've run out of moves to evalute; stop&lt;br /&gt;
 						break;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 				return bestme;&lt;br /&gt;
 			} else {&lt;br /&gt;
 				for (int ii=0; ii&amp;lt;arr[0].length; ii++) {&lt;br /&gt;
 					if (arr[0][ii] != null) {&lt;br /&gt;
 						// eventually, this is where we will check to make sure we still have enough time&lt;br /&gt;
 						System.out.println(&amp;quot;side: &amp;quot; + side);&lt;br /&gt;
 						Move targetmove = (Move) arr[1][ii];&lt;br /&gt;
 						int score = ((Gameboard) arr[0][ii]).winner()*factor;&lt;br /&gt;
 						if (depth ==2) { System.out.println(&amp;quot;Got score &amp;quot; + score + &amp;quot; for board &amp;quot; + ((Gameboard) arr[0][ii]) + &amp;quot;, factor &amp;quot; + factor); }&lt;br /&gt;
 						if ((((score/factor)==WHITEWIN) &amp;amp;&amp;amp; (color==Chip.WHITE)) || (((score/factor)==BLACKWIN) &amp;amp;&amp;amp; (color==Chip.BLACK))) {&lt;br /&gt;
 							// we've reached a winner, so stop here and return it&lt;br /&gt;
 							bestme.score = score;&lt;br /&gt;
 							bestme.move = targetmove;&lt;br /&gt;
 							return bestme;&lt;br /&gt;
 						} else {&lt;br /&gt;
 							bestopp = ((Gameboard) arr[0][ii]).chooseMove(generateOpponent(color), depth-1, alpha, beta, !side, factor-1); //hopefully we never search for more than 9 levels...&lt;br /&gt;
 							System.out.println(&amp;quot;Opponent's best response is &amp;quot; + bestopp.score + &amp;quot;, current best score is &amp;quot; + bestme.score + &amp;quot; (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) returns &amp;quot; + (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) + &amp;quot; for side = &amp;quot; + side);&lt;br /&gt;
 							targetmove = (Move) arr[1][ii];&lt;br /&gt;
 							if (side &amp;amp;&amp;amp; (bestopp.score &amp;gt; bestme.score)) {&lt;br /&gt;
 								bestme.move = targetmove;&lt;br /&gt;
 								bestme.score = bestopp.score;&lt;br /&gt;
 								alpha = bestopp.score;&lt;br /&gt;
 								System.out.println(&amp;quot;Found better move for white, score is &amp;quot; + bestopp.score + &amp;quot; move is &amp;quot; + bestme.move);&lt;br /&gt;
 							} else if (!side &amp;amp;&amp;amp; (bestopp.score &amp;lt; bestme.score)) {&lt;br /&gt;
 								bestme.move = targetmove;&lt;br /&gt;
 								bestme.score = bestopp.score;&lt;br /&gt;
 								beta = bestopp.score;&lt;br /&gt;
 								// System.out.println(&amp;quot;Found better move for black, score is &amp;quot; + bestopp.score);&lt;br /&gt;
 							} if (alpha &amp;gt;= beta) {&lt;br /&gt;
 								return bestme;&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					} else { // we've run out of moves to evalute; stop&lt;br /&gt;
 						break;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 				return bestme;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// returns the best possible move that can be made by the given color to a search depth of &amp;quot;depth&amp;quot; using the &amp;quot;this&amp;quot; board&lt;br /&gt;
 	// @return the best current Move&lt;br /&gt;
 	public Move evalTree(int color, int depth) {&lt;br /&gt;
 		int alpha = (BLACKWIN*10)-1;&lt;br /&gt;
 		int beta = (WHITEWIN*10)+1;&lt;br /&gt;
 		boolean side;&lt;br /&gt;
 		if (color == Chip.BLACK) {&lt;br /&gt;
 			side = false;&lt;br /&gt;
 		} else { &lt;br /&gt;
 			side = true;&lt;br /&gt;
 		}&lt;br /&gt;
 		Alphamove winningmove = this.chooseMove(color, depth, alpha, beta, side, 10);&lt;br /&gt;
 		return winningmove.move;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// simple method to generate the opponent's color&lt;br /&gt;
 	// given a color, @return the color of the opponent&lt;br /&gt;
 	public static int generateOpponent(int color) {&lt;br /&gt;
 		if (color == Chip.WHITE) {&lt;br /&gt;
 			return Chip.BLACK;&lt;br /&gt;
 		} else {&lt;br /&gt;
 			return Chip.WHITE;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// evaluates the given network for a winning color&lt;br /&gt;
 	// returns a probability of winning if there is no win (positive for white advantage, negative for black advantage)&lt;br /&gt;
 	// returns WHITEWIN if WHITE wins, BLACKWIN if BLACK wins&lt;br /&gt;
 	// @return an int with this board's score&lt;br /&gt;
 	public int winner() {&lt;br /&gt;
 	{{notmine|Jordan Berk|fragment=yes}}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// helper function for winner - recursively finds networks and assigns 1 point per connection and 10000 for a win&lt;br /&gt;
 	// @return an int with the score of the network&lt;br /&gt;
 	int findNetwork(Gameboard g, int x, int y, int color, int num, String currentDirection, String lastDirection) {&lt;br /&gt;
 	{{notmine|Jordan Berk|fragment=yes}}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// debugging method to print a gameboard&lt;br /&gt;
 	// @return a string represeting the board&lt;br /&gt;
 	public String toString() {&lt;br /&gt;
 		String output = &amp;quot;\n|&amp;quot;;&lt;br /&gt;
 		for (y=0; y&amp;lt;DIMENSION; y++) {&lt;br /&gt;
 			for (x=0; x&amp;lt;DIMENSION; x++) {&lt;br /&gt;
 				if (board[x][y] == null) {&lt;br /&gt;
 					output = output + &amp;quot; .&amp;quot;;&lt;br /&gt;
 				} else {&lt;br /&gt;
 					output = output + &amp;quot; &amp;quot; + ((Chip) board[x][y]).getColor();&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			output = output + &amp;quot;|\n|&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		return output;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=MediaWiki:Sidebar&amp;diff=3870</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=MediaWiki:Sidebar&amp;diff=3870"/>
		<updated>2010-05-05T09:14:10Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: rm current events since it's never been used&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=DriveTracker/consent&amp;diff=3855</id>
		<title>DriveTracker/consent</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=DriveTracker/consent&amp;diff=3855"/>
		<updated>2010-03-30T21:05:41Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;DriveTracker/consent&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BY TAPPING ON “I AGREE” BELOW, YOU CONSENT TO SUBMITTING DATA ABOUT YOUR GPS LOCATION, SPEED, ACCELEROMETER STATE, AND ADDITIONAL DATA FOR EDUCATIONAL PURPOSES AND CERTIFY THAT YOU ARE AGE 18 OR OLDER. SCROLL DOWN AND READ THIS TEXT IN ITS ENTIRETY FOR COMPLETE DETAILS. YOU DO NOT NEED TO AGREE TO USE THIS APPLICATION and can make the decision to do so at a later time. This research is being conducted by Paul Borokhov under supervision from Alex Bayen, UC Berkeley.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The data collected and shown to you by this application is of interest to researchers conducting a study on the impact of speed variation and cruise control usage on fuel consumption and auto emissions, conducted by University of California, Berkeley Environmental Science Department in collaboration with Mobile Millennium and California Center for Innovative Transportation (CCIT).&lt;br /&gt;
&lt;br /&gt;
You are being invited to participate in this study because you have installed the DriveTracker application on your iPhone, whose main purpose is to serve as a tool for helping us collect this data.&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
The purpose of this study is to study the impacts of speed variation on fuel consumption and emissions, and the impact of cruise control on speed variation.&lt;br /&gt;
&lt;br /&gt;
==Procedures==&lt;br /&gt;
If you agree to be in this study, you will be asked to tap the “Start trip” button when you begin a trip in your vehicle and tap the “End trip” button when your trip ends. At all times, please keep your eyes and focus on the road. Your safety is always the top priority.&lt;br /&gt;
&lt;br /&gt;
The data collected and sent to CCIT servers includes the time, GPS location, speed, and accelerometer state of the reading. In addition, if correct OBD-II WiFi hardware is present, data on fuel consumption and emissions will be sent.&lt;br /&gt;
&lt;br /&gt;
'''Study time:''' The amount of time you contribute to study participation is completely up to you. However, the more data you can provide to us, the better. In general, commute data from routes you travel on frequently is most useful.&lt;br /&gt;
Study location: The locations from which you submit data are entirely up to you.&lt;br /&gt;
&lt;br /&gt;
==Benefits==&lt;br /&gt;
You will have an opportunity to view data about trip duration and average speed for the current and previous trips. If OBD WiFi hardware is present, you will also be able to view your fuel consumption and emissions. It is hoped that the data you provide will also enable us to increase scientific knowledge of driver behavior patterns.&lt;br /&gt;
&lt;br /&gt;
==Risks/Discomforts==&lt;br /&gt;
*Data submitted by the application contains detailed information about your driving patterns and locations. All data from your device is tied to a unique identifier randomly generated the first time the app is launched. This identifier can in no way be used to personally identify you, your device, or your telephone number. Because no individual data points are stored on your phone, in case of loss or theft, no personal information will be in danger.&lt;br /&gt;
*Breach of confidentiality: As with all research, there is a chance that confidentiality could be compromised; however, we are taking precautions to minimize this risk. In case of a breach, users will be notified via Apple’s Push Service (APS) and an announcement will be posted on the project website. Note that even in case of such a breach, the amount of harm is minimal, because no personally identifiable information is ever stored or recorded.&lt;br /&gt;
&lt;br /&gt;
==Confidentiality==&lt;br /&gt;
Your study data will be handled as confidentially as possible. If results of this study are published or presented, no personally identifiable information will be used.&lt;br /&gt;
&lt;br /&gt;
To minimize the risks to confidentiality, we do not store any personally-identifiable information with the data you provide to us.&lt;br /&gt;
&lt;br /&gt;
'''Retaining research records:''' When the research is completed, CCIT may save the collected data for use in future research. This data maybe retained indefinitely. The same measures described above will be taken to protect confidentiality of this study data.&lt;br /&gt;
&lt;br /&gt;
==Compensation==&lt;br /&gt;
You will not be paid for taking part in this study.&lt;br /&gt;
&lt;br /&gt;
==Rights==&lt;br /&gt;
Participation in research is completely voluntary. You have the right to decline to participate or to withdraw at any point in this study without penalty or loss of benefits to which you are otherwise entitled. If you tap “I decline” at this time, you may still continue using the application for viewing summary data on speed (and fuel consumption and emissions if OBD WiFi hardware is present) on your own device. At any time, you may join the study again by opening data collection settings and tapping the “Start sending data to CCIT.” You may stop your participation in the study at any time by going to the same screen and tapping the “Stop sending data to CCIT” button. Application functionality remains unchanged regardless of your participation in the study.&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
If you have any questions or concerns about this study, you may contact Paul Borokhov at lensovetp@gmail.com or consult the project website. Note that because the data you submit will '''not''' be used for published research, this data is '''not''' being used for &amp;quot;research&amp;quot; purposes and as a result falls outside the protocol for the protection of human subjects.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==CONSENT==&lt;br /&gt;
By tapping “I agree” below, you agree to have the data described above transmitted to CCIT’s servers over the cellular or WiFi networks to which your phone is connected at the time. Furthermore, you certify that you are age 18 or older.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=DriveTracker&amp;diff=3854</id>
		<title>DriveTracker</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=DriveTracker&amp;diff=3854"/>
		<updated>2010-03-30T21:05:28Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Protected &amp;quot;DriveTracker&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''DriveTracker''' is an iPhone application designed to contribute data on driving behavior to researchers at UC Berkeley.&lt;br /&gt;
&lt;br /&gt;
We are looking for volunteers to contribute data on driver behavior with an aim to see how fuel consumption and traffic flows can be improved on a large scale. Download this app to provide data on how you drive to us!&lt;br /&gt;
&lt;br /&gt;
==How does it work?==&lt;br /&gt;
Download the app and start it whenever you take a regular trip, such as your commute to work. Use it every time you drive. Your location is transmitted to [http://www.calccit.org/ UC Berkeley CCIT] servers in a completely anonymous fashion. No individual data is ever stored on your device.&lt;br /&gt;
&lt;br /&gt;
==What's in it for me?==&lt;br /&gt;
Right now, you get a warm fuzzy feeling knowing that you're contributing to research! In the near future, we will also provide the ability for you to see where you've gone and integration with the Kiwi WiFi device. Download today so that you can get these updates as soon as we roll them out.&lt;br /&gt;
&lt;br /&gt;
==What about privacy?==&lt;br /&gt;
The data you submit is tied to a randomly-generated identifier created when you first launch the app. It is impossible to tie this identifier back to your device or phone number. No individual datapoints are stored on your device, so there is no breach of privacy if your device is lost. You can also stop submission of data at any time within the app if you feel uncomfortable. You may also view [[/consent|the consent statement in its entirety]].&lt;br /&gt;
&lt;br /&gt;
==Support==&lt;br /&gt;
If you have any questions or concerns, [[Talk:DriveTracker|please leave a comment on the talk page]] and we will get back to you as soon as possible.&lt;br /&gt;
&lt;br /&gt;
The project is receiving significant financial and logistical support from [http://traffic.berkeley.edu/ UC Berkeley's Mobile Millennium project].&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science&amp;diff=3853</id>
		<title>Computer Science</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Computer_Science&amp;diff=3853"/>
		<updated>2010-03-30T21:04:45Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: /* Current applications */ +dt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CS''', short for '''Computer Science''', is a section of the lensowiki related to various programming projects and links. You can find classwork as well as my personal projects.&lt;br /&gt;
&lt;br /&gt;
==Current applications==&lt;br /&gt;
*[[FMenu]]&lt;br /&gt;
*[[WebGrabber]]&lt;br /&gt;
*[[DriveTracker]]&lt;br /&gt;
&lt;br /&gt;
==Class work==&lt;br /&gt;
*[[/61b]]&lt;br /&gt;
*[[/61c]]&lt;br /&gt;
*[[/162]]&lt;br /&gt;
*[[/164]]&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
*[[Sony Clié on Mac OS X]] – instructions for using [[w:Sony Clié|Sony Clié]] PDAs with Mac OS X ''without'' the use of MissingSync&lt;br /&gt;
*[[lensowiki:Installation caveats|Installation caveats]] – some bugs in the MediaWiki software and workarounds for them&lt;br /&gt;
*[[Recovering offline, never-uploaded Mail messages on iPhone OS]] – how to move messages to your IMAP server when your iPhone refuses to do so on its own&lt;br /&gt;
*[[Navlang]] – a navigation bar specification language for webpages&lt;br /&gt;
*[[iPhone development tips]] – things that took me time to debug and figure out and might be helpful to you&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Main_Page&amp;diff=3842</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Main_Page&amp;diff=3842"/>
		<updated>2010-03-20T07:22:26Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: Redirected page to CS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[CS]]&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=Navlang&amp;diff=3841</id>
		<title>Navlang</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=Navlang&amp;diff=3841"/>
		<updated>2010-03-20T07:21:45Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: /* Availability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Navlang''' is an easy-to-use navigation bar specification language. Its goal is to allow the web designer to create a usable, decent-looking navigation bar with minimal typing or markup creation. For those who want to really fine-tune their navigation, it also allows simple specification of CSS attributes to control the appearance of individual menu items.&lt;br /&gt;
&lt;br /&gt;
Since examples are always more fun than reading boring text, here's a few. Note that these are not live but images at the moment.&lt;br /&gt;
&lt;br /&gt;
==Demo==&lt;br /&gt;
{|&lt;br /&gt;
! Code || Preview&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{ color: #82c753; background: #6d6d6d; text-decoration: none; padding: 0.35em 0.5em;&lt;br /&gt;
	hover: { background: white; text-decoration: underline; };&lt;br /&gt;
layout: vertical; layout-width: 10em; }&lt;br /&gt;
*One | /one.htm&lt;br /&gt;
{ color: #84b6d5; marker: &amp;amp;#9758; }&lt;br /&gt;
**Two | /two.htm&lt;br /&gt;
*Fun | /fun/&lt;br /&gt;
{ background: white; }&lt;br /&gt;
**Funtwooverride | /override&lt;br /&gt;
***Third level | /goodtimes.htm&lt;br /&gt;
{ background: gray; }&lt;br /&gt;
****Fourth | /four&lt;br /&gt;
*Oneback | /oneback&lt;br /&gt;
{ marker: dot; }&lt;br /&gt;
**Choo choo | /choo&lt;br /&gt;
***Overrides | /woo&lt;br /&gt;
****Gray | /gray&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; || [[Image:Navlang-overrides.png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{ layout: horizontal; }&lt;br /&gt;
*About us&lt;br /&gt;
{ direction: below; }&lt;br /&gt;
**Directors | /directors&lt;br /&gt;
**Developers | /developers&lt;br /&gt;
**Users | /users&lt;br /&gt;
*Support&lt;br /&gt;
**FAQs | /faq&lt;br /&gt;
**Knowledge Base | /kb&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; || [[Image:Navlang-horizontal.png|thumb|A horizontal menu with the first menu item highlighted (moused over)]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{ layout: vertical; layout-width: 200px; element-style: rounded-tab; border: yellow thin solid; hover: { border: red thin solid; }; }&lt;br /&gt;
*Roadmap | /roadmap.html&lt;br /&gt;
*Projects | /projects&lt;br /&gt;
*Coding | /developer&lt;br /&gt;
{ direction: right; marker: dot; }&lt;br /&gt;
**Module Owners | /about/owners.html&lt;br /&gt;
**More modules | /owners&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; || [[Image:Navlang-vertical.png|thumb|A vertical menu with the third menu item highlighted (moused over)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Succinct description of all language features==&lt;br /&gt;
To those who want a written explanation of what's going above, here goes:&lt;br /&gt;
&lt;br /&gt;
Formatting declarations, surrounded by curly braces, can precede any increase of menu level but cannot be placed in the middle of the menu (to override, for example, a single menu item). The formatting declaration inside the curly braces can contain any CSS properties you desire, which will be passed and set to the nav bar items' &amp;lt;nowiki&amp;gt;&amp;lt;a&amp;gt; and &amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt; tags. A number of special keywords allow additional features. Namely:&lt;br /&gt;
*&amp;lt;tt&amp;gt;layout&amp;lt;/tt&amp;gt; determines the direction of the navigation bar. choices are &amp;lt;tt&amp;gt;horizontal&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;vertical&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;horizontal&amp;lt;/tt&amp;gt; default.&lt;br /&gt;
*&amp;lt;tt&amp;gt;hover&amp;lt;/tt&amp;gt; allows you to specify CSS attributes which apply to nav bar elements only when they are hovered over (i.e. the &amp;lt;tt&amp;gt;a:hover&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;span:hover&amp;lt;/tt&amp;gt; CSS selectors). uses exact same syntax as the &amp;quot;normal&amp;quot; formatting declaration.&lt;br /&gt;
*&amp;lt;tt&amp;gt;direction&amp;lt;/tt&amp;gt; determines the direction of submenus (i.e. items with level &amp;gt; 1) relative to their parent item. valid choices are &amp;lt;tt&amp;gt;right&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;left&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;above&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;below&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;same&amp;lt;/tt&amp;gt;. The last is the default and does not create pop-out menus (as in the first example above).&lt;br /&gt;
*&amp;lt;tt&amp;gt;marker&amp;lt;/tt&amp;gt; specifies a marker which precedes all nav bar items. either &amp;lt;tt&amp;gt;none&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt;, or any HTML entity such as &amp;lt;tt&amp;gt;&amp;amp;amp;#9758;&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;none&amp;lt;/tt&amp;gt; default.&lt;br /&gt;
*&amp;lt;tt&amp;gt;layout-width&amp;lt;/tt&amp;gt; specifies the width of the nav bar for vertical nav bars. default is 100% as per standard CSS.&lt;br /&gt;
*&amp;lt;tt&amp;gt;element-style&amp;lt;/tt&amp;gt; specifies the style of the nav bar item. current either &amp;lt;tt&amp;gt;rounded-tab&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;regular&amp;lt;/tt&amp;gt;; latter is default.&lt;br /&gt;
&lt;br /&gt;
In general, formatting specs are inherited in much the same way as in CSS when a class name is appended to the element's class field. In particular, this means that children of any given element will inherit all of its properties unless they are manually overridden. Furthermore, the first time a level (i.e. *, **, ***, etc.) appears, its formatting declaration (including a lack of one) is made as that level's &amp;quot;prototype&amp;quot; formatting specification. All further items in the same nav bar with the same level will have the same formatting, as will their children, unless they are overridden themselves.&lt;br /&gt;
&lt;br /&gt;
However, it is possible to override this prototype inheritance on a per-branch basis by specifying a different formatting spec before beginning the branch (i.e. as if declaring a prototype for the first time). Note that this override will complement the existing prototype, so any values not explicitly overridden will be inherited as usual. Such an override lasts for the duration of the branch in which it was introduced and is discarded once the branch is complete.&lt;br /&gt;
&lt;br /&gt;
==Availability==&lt;br /&gt;
Navlang is still currently in development. Features remaining to be implemented are pop-out menus more than one level deep (i.e. *** and above) and compatibility with non-spec-conforming browsers such as Internet Explorer. Look for a release in first half of 2010.&lt;br /&gt;
&lt;br /&gt;
==Authors==&lt;br /&gt;
This project is the work of Paul Borokhov and Brian Alker. The parser is generated by the [http://jscc.jmksf.com/ JS/CC] [http://jscc.jmksf.com/jscc/jscc.html web environment], so we are much indebted to Jan Max Meyer for it.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=MediaWiki:Common.css&amp;diff=3738</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=MediaWiki:Common.css&amp;diff=3738"/>
		<updated>2009-10-25T01:14:50Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: add wikitable styles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/** CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* wikitable/prettytable class for skinning normal tables */&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.prettytable {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.wikitable th, .wikitable td,&lt;br /&gt;
.prettytable th, .prettytable td {&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.wikitable th,&lt;br /&gt;
.prettytable th {&lt;br /&gt;
    background: #f2f2f2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.wikitable caption,&lt;br /&gt;
.prettytable caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Sandbox&amp;diff=3601</id>
		<title>lensowiki:Sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Sandbox&amp;diff=3601"/>
		<updated>2008-09-24T22:55:10Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: clean&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This can be used for testing out wiki markup. Enjoy.&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Sandbox&amp;diff=3600</id>
		<title>lensowiki:Sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Sandbox&amp;diff=3600"/>
		<updated>2008-09-24T22:50:32Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This can be used for testing out wiki markup. Enjoy.&lt;br /&gt;
----&lt;br /&gt;
==Questions 1 - Thread.Join()==&lt;br /&gt;
Implementation:adding some text on this line&lt;br /&gt;
KThread has a new state variable joinedOnMe, a ThreadQueue.&lt;br /&gt;
 &lt;br /&gt;
If (CurrentThread == self or joinedOnMe != null){&lt;br /&gt;
        Return;                 // conditions for join not satisfied&lt;br /&gt;
} else if (status == Finished){&lt;br /&gt;
Return;&lt;br /&gt;
}&lt;br /&gt;
Else {&lt;br /&gt;
currentThread.sleep;&lt;br /&gt;
joinedOnMe = currentThread;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
Finished(){&lt;br /&gt;
…&lt;br /&gt;
joinedOnMe.ready();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
Testing:&lt;br /&gt;
ThreadA prints out a few statements, calls ThreadB.join(), then prints out a few more statements.  ThreadB also prints out a series of statements.  We want to check that ThreadB executes contiguously to completion before ThreadA resumes its execution.&lt;br /&gt;
 &lt;br /&gt;
==Question 2 - Condition2==&lt;br /&gt;
Implementation:&lt;br /&gt;
Condition2 has a new state variable waitQueue, a ThreadQueue of Threads transferPriority false.&lt;br /&gt;
In the sleep() method we add the calling (current) thread to the waitQueue of threads. After the thread releases its condition lock, we disable interrupts and it is put to sleep. When it wakes up, interrupts are re-enabled and the thread attempts to reacquire the condition lock.&lt;br /&gt;
 &lt;br /&gt;
In the wait() method, if the waitQueue is not empty we ;&lt;br /&gt;
Sleep(){&lt;br /&gt;
disableInterrupts&lt;br /&gt;
waitQueue.waitforaccess(currentThread) // WAITFORACCESS&lt;br /&gt;
conditionLock.release&lt;br /&gt;
currentThread.sleep&lt;br /&gt;
conditionLock.acquire&lt;br /&gt;
enableInterrupts&lt;br /&gt;
}&lt;br /&gt;
Wake(){&lt;br /&gt;
Disable interrupts&lt;br /&gt;
Nt = waitqueue .nextthread&lt;br /&gt;
        If (nt is not null){&lt;br /&gt;
Ready nt&lt;br /&gt;
}&lt;br /&gt;
Re-enable interrupts&lt;br /&gt;
 &lt;br /&gt;
wakeAll&lt;br /&gt;
while (waitqueue.nextthread != null)&lt;br /&gt;
wake()&lt;br /&gt;
 &lt;br /&gt;
Testing: DO MOE &lt;br /&gt;
 &lt;br /&gt;
==Question 3 - WaitUntil()==&lt;br /&gt;
;Implementation&lt;br /&gt;
Alarm has a new sorted PriorityQueue waitingThreads to keep track of when waiting threads should be woken, sorted on their wake times from lowest to highest.&lt;br /&gt;
It also has a new inner class named waitingThread which contains a reference to the KThread and its associated wakeTime(long).&lt;br /&gt;
&lt;br /&gt;
waitUntil(time){&lt;br /&gt;
WaitingThread wt = new WaitingThread (currentThread, currentTime + time);&lt;br /&gt;
waitingThreads.add (wt);&lt;br /&gt;
currentThread.sleep;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
timerInterrupt(){&lt;br /&gt;
while (WaitingThreads.peek().time &amp;lt;= currentTime){&lt;br /&gt;
WaitingThreads.pop().wake();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
Class WaitingThread (){&lt;br /&gt;
KThread currentThread;&lt;br /&gt;
Long time;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
;Testing&lt;br /&gt;
For or while loop that prints out a series of statements. Check that statements for different threads are all printed contiguously according to their respective wake times.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Question 4 - Communicator==&lt;br /&gt;
;Implementation&lt;br /&gt;
We recognize the invariant that there will always be an unequal amount of speakers and listeners, because speakers and listeners are almost immediately paired off and return. The S/L on the larger queue will acquire lock, perform their actions, wake opposing queue and immediately return (if they slept they would be put on the end of the queue). S/L on smaller queue will acquire lock, perform their actions, sleep, and once woken up again by opposing queue, return.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Special condition for 1 on 1. Use a Boolean flag which indicates a transfer is in progress. The 2nd S/L will set the flag to true, perform its actions and wake the 1st S/L; any intruding 3rd S/L will not attempt to acquire the lock as long as this flag is true—this 3rdSL will sleep in its respective queue. The 1st S/L will be woken up by the 2nd S/L, set the Boolean to false, and return.&lt;br /&gt;
 &lt;br /&gt;
;Testing&lt;br /&gt;
DO ME.&lt;br /&gt;
&lt;br /&gt;
==Question 5 - Priority Scheduler==&lt;br /&gt;
PriorityQueue&lt;br /&gt;
----&lt;br /&gt;
NextThread get most important member off Priority and Time queue. LastThread variable is set when NextThread or acquire is called. Also triggers recalculation on popped off LastThread and popped off thread which becomes the LastThread.&lt;br /&gt;
 &lt;br /&gt;
PickNextThread inspect first thread without removing it and return ThreadState.&lt;br /&gt;
 &lt;br /&gt;
New Instance variable of effectivepriority&lt;br /&gt;
GetEffectivePriority returns cached effective priority of a thread capped @ maxpriority&lt;br /&gt;
 &lt;br /&gt;
SetPriority&lt;br /&gt;
Change actual priority of current thread&lt;br /&gt;
Change effective priority of lastthread by difference between current threads priority and new priority.&lt;br /&gt;
 &lt;br /&gt;
If set priority is called on a thread with effective priority must make sure effective priority is still present, ex: 5+5, set priority to 0, thread should still have 5.&lt;br /&gt;
 &lt;br /&gt;
Make sure to check for transfer priority—procedure is different: ex: always return regular priority if transferpriority== false&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
PriorityScheduler.waitforaccess(thread)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
ThreadState.WaitForAccess(priorityQueue)&lt;br /&gt;
Put thread onto time&amp;amp;priority wait queue. Sorts all by priority , time.&lt;br /&gt;
Recalculates effective priority.&lt;br /&gt;
 &lt;br /&gt;
Acquire&lt;br /&gt;
recalculate LastThread effective priority.&lt;br /&gt;
Set CurrentThread = LastThread and recalculate priority.&lt;br /&gt;
 &lt;br /&gt;
Recalculation: iterate through structure and add up all priorities.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
When thread calls threadstate.acquire you get donation of all threads on waitqueue&lt;br /&gt;
Three things that change your priority: when another thread is added to queue waiting on you, when you acquire, when you release&lt;br /&gt;
Use treeset to keep track of all threads sorted on time&lt;br /&gt;
 &lt;br /&gt;
Every thread has a cached effective priority integer&lt;br /&gt;
Set when acquire / next thread&lt;br /&gt;
Wait for thread doesn’t call calculate priority on itself, calls calculate priority on current thread&lt;br /&gt;
Waitforaccess add to something that keeps track of priority and time&lt;br /&gt;
 &lt;br /&gt;
TESTING: DO ME. &lt;br /&gt;
 &lt;br /&gt;
==Question 6 - Boat==&lt;br /&gt;
CHILD who thinks he’s the last person must sleep, but communicate to begin and say he’s done. In that case, pilot must go to sleep instead of immediately piloting back.&lt;br /&gt;
# of children seen == # of children gone&lt;br /&gt;
 &lt;br /&gt;
            TESTING: set up some test cases i.e. 2 children 0 adults, 2 children 1 adult, 2 children 2 adults, 3 children 2 adults, 5 children 3 adults and work them out mathematically. then verify that threads execute the same solution.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
	<entry>
		<id>http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Sandbox&amp;diff=3598</id>
		<title>lensowiki:Sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.lensovet.net/~sysadmin/w/index.php?title=lensowiki:Sandbox&amp;diff=3598"/>
		<updated>2008-09-24T22:34:37Z</updated>

		<summary type="html">&lt;p&gt;Wadmin: /* Question 4 - Communicator */ testing concurrent editing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This can be used for testing out wiki markup. Enjoy.&lt;br /&gt;
----&lt;br /&gt;
==Questions 1 - Thread.Join()==&lt;br /&gt;
Implementation:&lt;br /&gt;
KThread has a new state variable joinedOnMe, a ThreadQueue.&lt;br /&gt;
 &lt;br /&gt;
If (CurrentThread == self or joinedOnMe != null){&lt;br /&gt;
        Return;                 // conditions for join not satisfied&lt;br /&gt;
} else if (status == Finished){&lt;br /&gt;
Return;&lt;br /&gt;
}&lt;br /&gt;
Else {&lt;br /&gt;
currentThread.sleep;&lt;br /&gt;
joinedOnMe = currentThread;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
Finished(){&lt;br /&gt;
…&lt;br /&gt;
joinedOnMe.ready();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
Testing:&lt;br /&gt;
ThreadA prints out a few statements, calls ThreadB.join(), then prints out a few more statements.  ThreadB also prints out a series of statements.  We want to check that ThreadB executes contiguously to completion before ThreadA resumes its execution.&lt;br /&gt;
 &lt;br /&gt;
==Question 2 - Condition2==&lt;br /&gt;
Implementation:&lt;br /&gt;
Condition2 has a new state variable waitQueue, a ThreadQueue of Threads transferPriority false.&lt;br /&gt;
In the sleep() method we add the calling (current) thread to the waitQueue of threads. After the thread releases its condition lock, we disable interrupts and it is put to sleep. When it wakes up, interrupts are re-enabled and the thread attempts to reacquire the condition lock.&lt;br /&gt;
 &lt;br /&gt;
In the wait() method, if the waitQueue is not empty we ;&lt;br /&gt;
Sleep(){&lt;br /&gt;
disableInterrupts&lt;br /&gt;
waitQueue.waitforaccess(currentThread) // WAITFORACCESS&lt;br /&gt;
conditionLock.release&lt;br /&gt;
currentThread.sleep&lt;br /&gt;
conditionLock.acquire&lt;br /&gt;
enableInterrupts&lt;br /&gt;
}&lt;br /&gt;
Wake(){&lt;br /&gt;
Disable interrupts&lt;br /&gt;
Nt = waitqueue .nextthread&lt;br /&gt;
        If (nt is not null){&lt;br /&gt;
Ready nt&lt;br /&gt;
}&lt;br /&gt;
Re-enable interrupts&lt;br /&gt;
 &lt;br /&gt;
wakeAll&lt;br /&gt;
while (waitqueue.nextthread != null)&lt;br /&gt;
wake()&lt;br /&gt;
 &lt;br /&gt;
Testing: DO MOE &lt;br /&gt;
 &lt;br /&gt;
==Question 3 - WaitUntil()==&lt;br /&gt;
Implementation:&lt;br /&gt;
Alarm has a new sorted PriorityQueue waitingThreads to keep track of when waiting threads should be woken, sorted on their wake times from lowest to highest.&lt;br /&gt;
It also has a new inner class named waitingThread which contains a reference to the KThread and its associated wakeTime(long).&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
waitUntil(time){&lt;br /&gt;
WaitingThread wt = new WaitingThread (currentThread, currentTime + time);&lt;br /&gt;
waitingThreads.add (wt);&lt;br /&gt;
currentThread.sleep;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
timerInterrupt(){&lt;br /&gt;
while (WaitingThreads.peek().time &amp;lt;= currentTime){&lt;br /&gt;
WaitingThreads.pop().wake();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
Class WaitingThread (){&lt;br /&gt;
KThread currentThread;&lt;br /&gt;
Long time;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
Testing:&lt;br /&gt;
For or while loop that prints out a series of statements. Check that statements for different threads are all printed contiguously according to their respective wake times.&lt;br /&gt;
 &lt;br /&gt;
==Question 4 - Communicator==&lt;br /&gt;
;Implementation&lt;br /&gt;
We recognize the invariant that there will always be an unequal amount of speakers and listeners, because speakers and listeners are almost immediately paired off and return. The S/L on the larger queue will acquire lock, perform their actions, wake opposing queue and immediately return (if they slept they would be put on the end of the queue). S/L on smaller queue will acquire lock, perform their actions, sleep, and once woken up again by opposing queue, return.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Special condition for 1 on 1. Use a Boolean flag which indicates a transfer is in progress. The 2nd S/L will set the flag to true, perform its actions and wake the 1st S/L; any intruding 3rd S/L will not attempt to acquire the lock as long as this flag is true—this 3rdSL will sleep in its respective queue. The 1st S/L will be woken up by the 2nd S/L, set the Boolean to false, and return.&lt;br /&gt;
 &lt;br /&gt;
;Testing&lt;br /&gt;
DO ME.&lt;br /&gt;
&lt;br /&gt;
==Question 5 - Priority Scheduler==&lt;br /&gt;
PriorityQueue&lt;br /&gt;
----&lt;br /&gt;
NextThread get most important member off Priority and Time queue. LastThread variable is set when NextThread or acquire is called. Also triggers recalculation on popped off LastThread and popped off thread which becomes the LastThread.&lt;br /&gt;
 &lt;br /&gt;
PickNextThread inspect first thread without removing it and return ThreadState.&lt;br /&gt;
 &lt;br /&gt;
New Instance variable of effectivepriority&lt;br /&gt;
GetEffectivePriority returns cached effective priority of a thread capped @ maxpriority&lt;br /&gt;
 &lt;br /&gt;
SetPriority&lt;br /&gt;
Change actual priority of current thread&lt;br /&gt;
Change effective priority of lastthread by difference between current threads priority and new priority.&lt;br /&gt;
 &lt;br /&gt;
If set priority is called on a thread with effective priority must make sure effective priority is still present, ex: 5+5, set priority to 0, thread should still have 5.&lt;br /&gt;
 &lt;br /&gt;
Make sure to check for transfer priority—procedure is different: ex: always return regular priority if transferpriority== false&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
PriorityScheduler.waitforaccess(thread)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
ThreadState.WaitForAccess(priorityQueue)&lt;br /&gt;
Put thread onto time&amp;amp;priority wait queue. Sorts all by priority , time.&lt;br /&gt;
Recalculates effective priority.&lt;br /&gt;
 &lt;br /&gt;
Acquire&lt;br /&gt;
recalculate LastThread effective priority.&lt;br /&gt;
Set CurrentThread = LastThread and recalculate priority.&lt;br /&gt;
 &lt;br /&gt;
Recalculation: iterate through structure and add up all priorities.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
When thread calls threadstate.acquire you get donation of all threads on waitqueue&lt;br /&gt;
Three things that change your priority: when another thread is added to queue waiting on you, when you acquire, when you release&lt;br /&gt;
Use treeset to keep track of all threads sorted on time&lt;br /&gt;
 &lt;br /&gt;
Every thread has a cached effective priority integer&lt;br /&gt;
Set when acquire / next thread&lt;br /&gt;
Wait for thread doesn’t call calculate priority on itself, calls calculate priority on current thread&lt;br /&gt;
Waitforaccess add to something that keeps track of priority and time&lt;br /&gt;
 &lt;br /&gt;
TESTING: DO ME. &lt;br /&gt;
 &lt;br /&gt;
==Question 6 - Boat==&lt;br /&gt;
CHILD who thinks he’s the last person must sleep, but communicate to begin and say he’s done. In that case, pilot must go to sleep instead of immediately piloting back.&lt;br /&gt;
# of children seen == # of children gone&lt;br /&gt;
 &lt;br /&gt;
            TESTING: set up some test cases i.e. 2 children 0 adults, 2 children 1 adult, 2 children 2 adults, 3 children 2 adults, 5 children 3 adults and work them out mathematically. then verify that threads execute the same solution.&lt;/div&gt;</summary>
		<author><name>Wadmin</name></author>
		
	</entry>
</feed>