<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.zenerves.net/skins/common/feed.css?301"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
		<id>http://wiki.zenerves.net/index.php?feed=atom&amp;target=Lola&amp;title=Special%3AContributions%2FLola</id>
		<title>ZENotes - User contributions [en-gb]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.zenerves.net/index.php?feed=atom&amp;target=Lola&amp;title=Special%3AContributions%2FLola"/>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Special:Contributions/Lola"/>
		<updated>2026-06-17T19:00:42Z</updated>
		<subtitle>From ZENotes</subtitle>
		<generator>MediaWiki 1.17.0</generator>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC8_-_09/02/25_-_09:21_Tropical_Ice_Cube_Newsletter</id>
		<title>TIC8 - 09/02/25 - 09:21 Tropical Ice Cube Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC8_-_09/02/25_-_09:21_Tropical_Ice_Cube_Newsletter"/>
				<updated>2011-10-15T07:33:07Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tropical Ice Cube Newsletter #8: Not The NewsLetter&lt;br /&gt;
&lt;br /&gt;
 From: &amp;quot;Jean-Philippe 'Tropical Ice Cube' Monteiro&amp;quot; &amp;lt;jph@zenerves.net&amp;gt;&lt;br /&gt;
  To: &lt;br /&gt;
 pplug@googlegroups.com, barcampphnompenh@googlegroups.com, jugcam@googlegroups.com&lt;br /&gt;
  Date: &lt;br /&gt;
 09/02/25 - 09:21&lt;br /&gt;
   &lt;br /&gt;
[My apologies if you receive this message 2 or 3 times: it means you are a very committed person &lt;br /&gt;
registered to the 3 fine groups I send this NewsLetter to!]&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Howdy, Nixettes and Nixers!&lt;br /&gt;
&lt;br /&gt;
Sorry real life took it's toll this week, and I had to do some real work, earn real money and all &lt;br /&gt;
that; besides, Telesurf suspended my unlimited-at-night account so I was prevented from further &lt;br /&gt;
downloads anyway.  A pity since nice stuff was out this week, check it out on &lt;br /&gt;
&lt;br /&gt;
http://tic.zenerves.net/latest_news.html#upcoming&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Don't despair, I still run the service, only there is no news, no newsletter and no new downloads &lt;br /&gt;
this week :(&lt;br /&gt;
&lt;br /&gt;
BRB!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
!! Don't Forget !!&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube always keep the 10 most important Linux Distributions available in their most &lt;br /&gt;
recent release figure - JUST ASK!&lt;br /&gt;
&lt;br /&gt;
&amp;amp;&amp;amp;&lt;br /&gt;
&lt;br /&gt;
As Ever, lots of OpenSource Software for M$ too!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
free!&lt;br /&gt;
&lt;br /&gt;
Text/call on 012 561 005 with either:&lt;br /&gt;
&lt;br /&gt;
    * Your request for Linux distro, with pick-up yourself at my office: I will reply with street &lt;br /&gt;
address and delay/time to pick up the disc;&lt;br /&gt;
        or&lt;br /&gt;
    * Your distro request with your street address and possible hours for delivery; cost is 1usd per &lt;br /&gt;
disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This newsletter brought to you by&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
web: tropicalicecube.zenerves.net&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
Face: Tropicalicecube Phnompenh&lt;br /&gt;
Facebook Tropical Ice Cube Group:&lt;br /&gt;
http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
Phnom Penh Linux User Group &lt;br /&gt;
http://groups.google.com/group/pplug&lt;br /&gt;
&lt;br /&gt;
Mob: 012 561 005&lt;br /&gt;
                                    &lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group, but first please consider other members of the &lt;br /&gt;
group may enjoy reading it!&lt;br /&gt;
&lt;br /&gt;
Back to [[Newsletters]]&lt;br /&gt;
[[Category:Tropical Ice Cube]] [[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC5_-_09/02/02_-_15:22_Tropical_Ice_Cube_Newsletter</id>
		<title>TIC5 - 09/02/02 - 15:22 Tropical Ice Cube Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC5_-_09/02/02_-_15:22_Tropical_Ice_Cube_Newsletter"/>
				<updated>2011-10-15T07:32:53Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tropical Ice Cube Newsletter #5: More Specials of the Week&lt;br /&gt;
&lt;br /&gt;
From: Jean-Philippe 'Tropical Ice Cube' Monteiro&amp;quot; &amp;lt;jph::zenerves.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  To: pplug::googlegroups.com, barcampphnompenh::googlegroups.com&lt;br /&gt;
 &lt;br /&gt;
  CC: jugcam::googlegroups.com&lt;br /&gt;
 &lt;br /&gt;
  Date: 09/02/02 - 15:22&lt;br /&gt;
   &lt;br /&gt;
Black &amp;amp; White and Wet All Over... Well; penguins of course. What were you thinking?&lt;br /&gt;
&lt;br /&gt;
!! Sorry fo rthe dead link - The OpenRoad is experiencing difficulties !! I will try to track it back.&lt;br /&gt;
&lt;br /&gt;
?New?: http://i.i.com.com/cnwk.1d/i/bto/20090129/IMG_0626_225x299.JPG&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
original aerticle by Matt Asay on cnet.com:&lt;br /&gt;
&lt;br /&gt;
http://news.cnet.com/8301-13505_3-10152857-16.html?tag=mncol;title&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[My apologies if you receive this message 2 or 3 times: it means you are on the 3 groups I write &lt;br /&gt;
to! :) ]&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
free!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text me on 012 561 005 with either:&lt;br /&gt;
&lt;br /&gt;
      * Your request for Linux distro, with pick-up yourself at my office: I will reply with street address and delay/time to pick up the disc;&lt;br /&gt;
 &lt;br /&gt;
      or&lt;br /&gt;
 &lt;br /&gt;
      * Your distro request with your street address and possible hours for delivery; cost is 1usd per disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
TwitMe! Hook to http://twitter.com/tropicalicecube.&lt;br /&gt;
&lt;br /&gt;
Spread the newsletter! Send it to your friends, get them to register to the Phnom Penh Linux User Group (Yes, that is the PPLUG) at:&lt;br /&gt;
&lt;br /&gt;
http://groups.google.com/group/pplug&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visit http://tic.zenerves.net for a full list of available Open Source alternatives for your &lt;br /&gt;
computing performance and pleasure + more info and help. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HOT NEWS:&lt;br /&gt;
&lt;br /&gt;
The UBUNTU 8.10 discs have arrived, thanks to UBUNTU and its Shipit programme who sent me 10 of them. I still have 8... You know the drill: 012 561 005 !&lt;br /&gt;
&lt;br /&gt;
There was some messages on the BarCamp Phnom Penh list this week about Telephony on Linux Boxes; Always ready to serve, the Tropical Ice Cube brought in AsteriskNOW and TrixBox, the two leaders in implementing Asterisk in a nice and easy way.&lt;br /&gt;
&lt;br /&gt;
My Tropical Face is There: Get closer to the Penguins by making friend with Tropicalicecube Phnompenh on &lt;br /&gt;
&lt;br /&gt;
http://www.facebook.com/profile.php?id=1154962303&lt;br /&gt;
&lt;br /&gt;
&amp;amp;&amp;amp; Join the Facebook Group:&lt;br /&gt;
&lt;br /&gt;
http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
SHOWCASE: Distro Of The Week.&lt;br /&gt;
&lt;br /&gt;
LG-Live  - OK, I know, holidays are over. But yet... Look what I grabbed for you, asides from some &lt;br /&gt;
more serious ones: LG-Live 0.9DVD: LG here stands for LinuxGaners and this is a 3Gb Live DVD full &lt;br /&gt;
of games, including NASTY ones where you drive stupidly fast cars or shoot opponents with massive &lt;br /&gt;
weaponry. Who said Linux Gaming was dull? Some of them are real BAD. For your reputation, your &lt;br /&gt;
productivity, your marriage; that is what these are BAD for :)&lt;br /&gt;
&lt;br /&gt;
You'd need a 3D, accelerated openGL graphic card to enjoy these, I'm afraid.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository&lt;br /&gt;
&lt;br /&gt;
Telephony on your linux box:&lt;br /&gt;
&lt;br /&gt;
AsteriskNOW &lt;br /&gt;
&lt;br /&gt;
TrixBox&lt;br /&gt;
&lt;br /&gt;
Linux, boxed:&lt;br /&gt;
&lt;br /&gt;
Ubuntu 8.10 Box-Editions - real, shiny ones!&lt;br /&gt;
&lt;br /&gt;
KhmerOS openSUSE 11 - fresh from the Open Institute&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux, latest:&lt;br /&gt;
&lt;br /&gt;
Knoppix 6 - the master of teh Live Distro is back, always as quick and usefull, this one with a the Ariane Text-To-Speech system for the visually impaired.&lt;br /&gt;
&lt;br /&gt;
Sabayon 4&lt;br /&gt;
&lt;br /&gt;
Slackware 12.2&lt;br /&gt;
&lt;br /&gt;
Linux, Specialised Distributions:&lt;br /&gt;
&lt;br /&gt;
Clonezilla 1.2.1 - clone your hard drive BEFORE a major rescue operation&lt;br /&gt;
&lt;br /&gt;
GPartedLive 0.4.1 - LiveTool to rescue your harddrive&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
!! Don't Forget !!&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube always keep the 10 most important Linux Distributions available in their most &lt;br /&gt;
recent release figure.&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
As Ever, always available:&lt;br /&gt;
&lt;br /&gt;
OpenSource Software for M$:&lt;br /&gt;
&lt;br /&gt;
Firefox 3 - get rid of Internet Explorer!&lt;br /&gt;
&lt;br /&gt;
OpenOffice 3 - get rid of Word/Excell/etc!&lt;br /&gt;
&lt;br /&gt;
The Gimp 2.6 - get rid of Photoshop!&lt;br /&gt;
&lt;br /&gt;
Thunderbird 2 - get rid of outlook/outlook express&lt;br /&gt;
&lt;br /&gt;
VLC 0.9 - Well, VLC is better than anything else really. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the Same in Khmer:&lt;br /&gt;
&lt;br /&gt;
[check http://www.khmeros.info for more]&lt;br /&gt;
&lt;br /&gt;
OpenOffice - full offoce suite&lt;br /&gt;
&lt;br /&gt;
Moyura, Email client&lt;br /&gt;
&lt;br /&gt;
Merkhala, Web browser&lt;br /&gt;
&lt;br /&gt;
+ Unicode Typing Trainer for Windows and more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
It's bit old, but thanks to AnhHung fot twitting it:&lt;br /&gt;
&lt;br /&gt;
http://boycottnovell.com/2009/01/30/microsoft-intel-anti-linux/&lt;br /&gt;
&lt;br /&gt;
OpenSource model for Mobile hardware vendors:&lt;br /&gt;
&lt;br /&gt;
http://news.cnet.com/8301-13505_3-10153265-16.html&lt;br /&gt;
&lt;br /&gt;
A quick review of ultraslim Linux distros:&lt;br /&gt;
&lt;br /&gt;
http://community.zdnet.co.uk/blog/0,1000000567,10011918o-2000498448b,00.htm&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
CONTRIBUTE!&lt;br /&gt;
&lt;br /&gt;
T.I.C could benefit from your help: see http://tic.zenerves.net/faq.html#contribute to check how you &lt;br /&gt;
can participate in this project and help spread Free Software further in Phnom Penh and Cambodia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sponsor!&lt;br /&gt;
&lt;br /&gt;
Pacific Systems gave me a UNICODE Khmer keyboard! Thanks!&lt;br /&gt;
&lt;br /&gt;
You too, Like PACIFIC SYSTEMS, can help. I am sure your company can find a way to see it's name &lt;br /&gt;
valued in the Phnom Penh Open Source community. Share open source software, download them, &lt;br /&gt;
advertise T.I.C - there are many ways, and I am sure I am talking to a quite creative audience &lt;br /&gt;
here!&lt;br /&gt;
&lt;br /&gt;
(http://www.pacific.com.kh - they have all kinds of good stuff that you can't find anywhere else)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
free!&lt;br /&gt;
&lt;br /&gt;
Text me on 012 561 005 with either:&lt;br /&gt;
 &lt;br /&gt;
    * Your request for Linux distro, with pick-up yourself at my office: I will reply with street address and delay/time to pick up the disc;&lt;br /&gt;
         or&lt;br /&gt;
    * Your distro request with your street address and possible hours for delivery; cost is 1usd per disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This newsletter brought to you by&lt;br /&gt;
&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
&lt;br /&gt;
DISTROtheque Maintainer&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
&lt;br /&gt;
web: tropicalicecube.zenerves.net&lt;br /&gt;
&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
&lt;br /&gt;
Face: Tropicalicecube Phnompenh&lt;br /&gt;
&lt;br /&gt;
Mob: 012 561 005&lt;br /&gt;
                                    &lt;br /&gt;
--Slackware 12.2 / Enlightenment DR16--&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group.&lt;br /&gt;
[[Category:Tropical Ice Cube]] [[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC4_-_09/01/19_-_14:17_Tropical_Ice_Cube_Newsletter</id>
		<title>TIC4 - 09/01/19 - 14:17 Tropical Ice Cube Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC4_-_09/01/19_-_14:17_Tropical_Ice_Cube_Newsletter"/>
				<updated>2011-10-15T07:32:39Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Tropical Ice Cube Newsletter #4: Free, Khmer and Open.&lt;br /&gt;
 From: &lt;br /&gt;
 &amp;quot;Jean-Philippe 'Tropical Ice Cube' Monteiro&amp;quot; &amp;lt;jph@zenerves.net&amp;gt;&lt;br /&gt;
  To: &lt;br /&gt;
 pplug@googlegroups.com, barcampphnompenh@googlegroups.com&lt;br /&gt;
  Date: &lt;br /&gt;
 09/01/19 - 14:17&lt;br /&gt;
   &lt;br /&gt;
This Week, the Mighty Penguins ventures into Closed-Source waters again, but you get it into Khmer!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
TwitMe! Hook to http://twitter.com/tropicalicecube.&lt;br /&gt;
Spread the newsletter! Send it to your friends, get them to register to the &lt;br /&gt;
Phnom Penh Linux User Group (Yes, that is the PPLUG)&lt;br /&gt;
at:&lt;br /&gt;
http://groups.google.com/group/pplug&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Visit http://tic.zenerves.net for a full list of available Open Source alternatives for your &lt;br /&gt;
computing performance and pleasure + more info and help. &lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
HOT NEWS:&lt;br /&gt;
&lt;br /&gt;
A new Tropical Face is around: Get closer to the Penguins by making friend with&lt;br /&gt;
Tropicalicecube Phnompenh on&lt;br /&gt;
http://www.facebook.com/profile.php?id=1154962303&lt;br /&gt;
&lt;br /&gt;
Most of what advertised last week is available in Khmer, be it through the full install of &lt;br /&gt;
openSUSE/KhmerOS Operating System, or as standalone versions for windows.&lt;br /&gt;
See Latest Additions below for more.&lt;br /&gt;
&lt;br /&gt;
These nice people at The Open Institute gave me 20 gorgeous-looking KhmerOS/openSUSE11 cd/dvd combo &lt;br /&gt;
boxes last week - they are available for free, and Yes, I still have some! As usual, text &lt;br /&gt;
me on 012 561 005 to grab yours.&lt;br /&gt;
&lt;br /&gt;
UBUNTU is shipping boxed, official discs to the TIC! - It's acknowledged, I expect 10 of them &lt;br /&gt;
anytime soon.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
SHOWCASE: Distro Of The Week.&lt;br /&gt;
&lt;br /&gt;
Sabayon 4: Work, work... and Leisure! Or is it the opposite?&lt;br /&gt;
Sabayon is a Gentoo-based distribution. Read: Sabayon is based on something us mere mortal could &lt;br /&gt;
never achieve to install, and even less to maintain. Sabayon in it's fourth stable incarnation &lt;br /&gt;
makes it easy for you with an incredible level of polish, an astonishing wealth of boot up &lt;br /&gt;
possibilities and may goodies. When you slip the Sabayon LiveDVD in, it will offer you to:&lt;br /&gt;
- Boot in Live mode:&lt;br /&gt;
- To install, with several windows managers to choose from;&lt;br /&gt;
- To go straight into playing 2 different multiplayers shoot-them-up (Nexuiz and AssaultCube2, how's &lt;br /&gt;
that about political correctedness);&lt;br /&gt;
- And even to browse the web anonymously - no IP trace thanks to Anon.org, no hard disk cache thanks &lt;br /&gt;
to LiveDVD mode. And that is not to mention GoogleEarth or SecondLife!&lt;br /&gt;
&lt;br /&gt;
These features only should be enough to get you to... get seriously distracted from work! As usual, &lt;br /&gt;
grab it from here at Tropical Central with a text message to 012 561 005.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository&lt;br /&gt;
&lt;br /&gt;
FreeBSD 7.1 Official Stable release 2.1Gb Install DVD&lt;br /&gt;
&lt;br /&gt;
Linux Specialised Distributions:&lt;br /&gt;
NST - LiveCD with Network Analysis tools&lt;br /&gt;
pfSense - 50megs BSD based firewall/gateway&lt;br /&gt;
&lt;br /&gt;
OpenSource Software for M$:&lt;br /&gt;
Firefox 3 - get rid of Internet Explorer!&lt;br /&gt;
OpenOffice 3 - get rid of Word/Excell/etc!&lt;br /&gt;
The Gimp 2.6 - get rid of Photoshop!&lt;br /&gt;
Thunderbird 2 - get rid of outlook/outlook express&lt;br /&gt;
VLC 0.9 - Well, VLC is better than anything else really. &lt;br /&gt;
&lt;br /&gt;
And the Same in Khmer:&lt;br /&gt;
[check http://www.khmeros.info for more]&lt;br /&gt;
OpenOffice - full offoce suite&lt;br /&gt;
Moyura, Email client&lt;br /&gt;
Merkhala, Web browser&lt;br /&gt;
+ Unicode Typing Trainer for Windows and more.&lt;br /&gt;
&lt;br /&gt;
Linux Distributions:&lt;br /&gt;
Official KhmerOS release of openSUSE11 boxed CD and DVDs&lt;br /&gt;
Slackware 12.2 i386 InstallDVD&lt;br /&gt;
Sabayon 4.0&lt;br /&gt;
 &lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
A New Hit in security infection on Windows machines!&lt;br /&gt;
http://news.bbc.co.uk/2/hi/technology/7832652.stm&lt;br /&gt;
&lt;br /&gt;
Europe's friendship with Penguins: Microsoft to face trial again&lt;br /&gt;
http://www.theregister.co.uk/2009/01/17/microsoft_ie_commission_law_breaker/&lt;br /&gt;
Tropical Ice Cube Newsletter #4: Free, Khmer and Open.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HOT NEWS:&lt;br /&gt;
&lt;br /&gt;
A new Tropical Face is around: Get closer to the Penguins by making friend with&lt;br /&gt;
Tropicalicecube Phnompenh on&lt;br /&gt;
http://www.facebook.com/profile.php?id=1154962303&lt;br /&gt;
&lt;br /&gt;
Most of what advertised last week is available in Khmer, be it through the full install of &lt;br /&gt;
openSUSE/KhmerOS Operating System, or as standalone versions for windows.&lt;br /&gt;
See Latest Additions below for more.&lt;br /&gt;
&lt;br /&gt;
These nice people at The Open Institute gave me 20 gorgeous-looking KhmerOS/openSUSE11 cd/dvd combo &lt;br /&gt;
boxes last week - they are available for free, and Yes, I still have some! As usual, text &lt;br /&gt;
me on 012 561 005 to grab yours.&lt;br /&gt;
&lt;br /&gt;
UBUNTU is shipping boxed, official discs to the TIC! - It's acknowledged, I expect 10 of them &lt;br /&gt;
anytime soon.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
SHOWCASE: Distro Of The Week.&lt;br /&gt;
&lt;br /&gt;
Sabayon 4: Work, work... and Leisure! Or is it the opposite?&lt;br /&gt;
Sabayon is a Gentoo-based distribution. Read: Sabayon is based on something us mere mortal could &lt;br /&gt;
never achieve to install, and even less to maintain. Sabayon in it's fourth stable incarnation &lt;br /&gt;
makes it easy for you with an incredible level of polish, an astonishing wealth of boot up &lt;br /&gt;
possibilities and may goodies. When you slip the Sabayon LiveDVD in, it will offer you to:&lt;br /&gt;
- Boot in Live mode:&lt;br /&gt;
- To install, with several windows managers to choose from;&lt;br /&gt;
- To go straight into playing 2 different multiplayers shoot-them-up (Nexuiz and AssaultCube2, how's &lt;br /&gt;
that about political correctedness);&lt;br /&gt;
- And even to browse the web anonymously - no IP trace thanks to Anon.org, no hard disk cache thanks &lt;br /&gt;
to LiveDVD mode. And that is not to mention GoogleEarth or SecondLife!&lt;br /&gt;
&lt;br /&gt;
These features only should be enough to get you to... get seriously distracted from work! As usual, &lt;br /&gt;
grab it from here at Tropical Central with a text message to 012 561 005.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository&lt;br /&gt;
&lt;br /&gt;
FreeBSD 7.1 Official Stable release 2.1Gb Install DVD&lt;br /&gt;
&lt;br /&gt;
Linux Specialised Distributions:&lt;br /&gt;
NST - LiveCD with Network Analysis tools&lt;br /&gt;
pfSense - 50megs BSD based firewall/gateway&lt;br /&gt;
&lt;br /&gt;
And the Same in Khmer:&lt;br /&gt;
[check http://www.khmeros.info for more]&lt;br /&gt;
OpenOffice - full offoce suite&lt;br /&gt;
Moyura, Email client&lt;br /&gt;
Merkhala, Web browser&lt;br /&gt;
+ Unicode Typing Trainer for Windows and more.&lt;br /&gt;
&lt;br /&gt;
Linux Distributions:&lt;br /&gt;
Official KhmerOS release of openSUSE11 boxed CD and DVDs&lt;br /&gt;
Slackware 12.2 i386 InstallDVD&lt;br /&gt;
Sabayon 4.0&lt;br /&gt;
 &lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
A New Hit in security infection on Windows machines!&lt;br /&gt;
http://news.bbc.co.uk/2/hi/technology/7832652.stm&lt;br /&gt;
&lt;br /&gt;
Europe's friendship with Penguins: Microsoft to face trial again&lt;br /&gt;
http://www.theregister.co.uk/2009/01/17/microsoft_ie_commission_law_breaker/&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONTRIBUTE!&lt;br /&gt;
&lt;br /&gt;
T.I.C could benefit from your help: see http://tic.zenerves.net/faq.html#contribute to check how you &lt;br /&gt;
can participate in this project and help spread Free Software further in Phnom Penh and Cambodia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sponsor!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pacific Systems gave me a UNICODE Khmer keyboard! Thanks!&lt;br /&gt;
&lt;br /&gt;
You too, Like PACIFIC SYSTEMS, can help. I am sure your company can find a way to see it's name &lt;br /&gt;
valued in the Phnom Penh Open Source community. Share open source software, download them, &lt;br /&gt;
advertise T.I.C - there are many ways, and I am sure I am talking to a quite creative audience &lt;br /&gt;
here!&lt;br /&gt;
&lt;br /&gt;
(http://www.pacific.com.kh - they have all kinds of good stuff that you can't find anywhere else)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NEXT WEEK:&lt;br /&gt;
&lt;br /&gt;
Community Special - get help with Linux!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
free!&lt;br /&gt;
&lt;br /&gt;
Text me on 012 561 005 with either:&lt;br /&gt;
&lt;br /&gt;
    * Your request for Linux distro, with pick-up yourself at my office: I will reply with street &lt;br /&gt;
      address and delay/time to pick up the disc;&lt;br /&gt;
        or&lt;br /&gt;
    * Your distro request with your street address and possible hours for delivery; cost is 1usd per &lt;br /&gt;
      disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This newsletter brought to you by&lt;br /&gt;
&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
&lt;br /&gt;
DISTROtheque Maintainer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
&lt;br /&gt;
web: tropicalicecube.zenerves.net&lt;br /&gt;
&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
&lt;br /&gt;
Face: Tropicalicecube Phnompenh&lt;br /&gt;
&lt;br /&gt;
Mob: 012 561 005&lt;br /&gt;
                                    &lt;br /&gt;
--Slackware 12.2 / Enlightenment DR16--&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group.&lt;br /&gt;
&lt;br /&gt;
back to [[Newsletters]]&lt;br /&gt;
[[Category:Tropical Ice Cube]] [[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC3_-_09/01/12_-_11:19_Tropical_Ice_Cube_Newsletter</id>
		<title>TIC3 - 09/01/12 - 11:19 Tropical Ice Cube Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC3_-_09/01/12_-_11:19_Tropical_Ice_Cube_Newsletter"/>
				<updated>2011-10-15T07:32:21Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;09/01/12 - 11:19&lt;br /&gt;
Tropical Ice Cube Newsletter #3: Micro$oft to get the Open Source treatment!&lt;br /&gt;
  From:   Jean-Philippe 'Tropical Ice Cube' Monteiro&lt;br /&gt;
  To:   pplug@googlegroups.com, barcampphnompenh@googlegroups.com &lt;br /&gt;
    &lt;br /&gt;
This Week, the Mighty Penguins ventures into Closed-Source waters...&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
TwitMe! Hook to http://twitter.com/tropicalicecube.&lt;br /&gt;
Spread the newsletter! Send it to your friends, get them to register to the &lt;br /&gt;
Phnom Penh Linux User Group at:&lt;br /&gt;
http://groups.google.com/group/pplug&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Visit http://tic.zenerves.net for a full list of available Open Source alternatives for your &lt;br /&gt;
computing performance and pleasure + more info and help. &lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
HOT NEWS:&lt;br /&gt;
&lt;br /&gt;
Free Software for your Micro$oft boxes! Ever heard of Firefox? Well, yes I am sure. It's open &lt;br /&gt;
source, safe, with tons of plugins and scripts available to tweak your browsing experience with &lt;br /&gt;
less ads, less flash-stolen bandwidth and so on. I have for you this week a Full CD Bundle packed &lt;br /&gt;
with the best opensource software for your safetyand compliance.&lt;br /&gt;
&lt;br /&gt;
Now, get rid of those Russian-Marked-Grade poorly copied software!&lt;br /&gt;
Check out http://tic.zenerves.net/latest_news.html to know more&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://tic.zenerves.net is still improving; the site underwent major code cleanup, drop-down menus &lt;br /&gt;
[only for Firefox, Opera ;)] - Leaner, faster!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These nice people at The Open Institute gave me 20 gorgeous-looking KhmerOS/openSUSE11 cd/dvd combo &lt;br /&gt;
boxes last week - they are available for free, and Yes, I still have some! As usual, text &lt;br /&gt;
me on 012 561 005 to grab yours.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
SHOWCASE: Distro Of The Week.&lt;br /&gt;
&lt;br /&gt;
Slackware 12.2 - Freshly installed with Main Workstation status here at Tropical Central, Slackware &lt;br /&gt;
is all what you expect - and all what you fear: upon start-up, you only end up in a terminal, &lt;br /&gt;
keyboard layout is undefined... Well, it feels a bit barebone really. But then, you need something, &lt;br /&gt;
pull the code from source and compiling wouldn't fail - alongside with Gentoo, Slackware is the &lt;br /&gt;
sole distribution that I know where you can do that out-of-the-box. The ToDo list you end up with &lt;br /&gt;
when installing Slackware is a bit longer than with some others, but this 12.2 one got me with &lt;br /&gt;
working sound and network, playing flash anims, movies &amp;amp; music! Ok, my webcam and microphone aren't &lt;br /&gt;
there yet, but who says that Slack was a MultimediaMonster? It's not; it's a full-featured, &lt;br /&gt;
carefully crafted traditional distribution that is intended to feel, look and act as Linux was &lt;br /&gt;
always meant to be. It feels good.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository&lt;br /&gt;
&lt;br /&gt;
OpenSource Software for M$&lt;br /&gt;
Firefox 3 - get rid of Internet Explorer!&lt;br /&gt;
OpenOffice 3 - get rid of Word/Excell/etc!&lt;br /&gt;
The Gimp 2.6 - get rid of Photoshop!&lt;br /&gt;
Thunderbird 2 - get rid of outlook/outlook express&lt;br /&gt;
VLC 0.9 - Well, VLC is better than anything else really. &lt;br /&gt;
&lt;br /&gt;
Linux Specialised Distributions:&lt;br /&gt;
Ubuntu Server 8.04LTS for 32 and 64 bits platforms&lt;br /&gt;
&lt;br /&gt;
Linux Distributions:&lt;br /&gt;
Official KhmerOS release of openSUSE11 boxed CD and DVDs&lt;br /&gt;
Fedora 10 InstallDVD for 32bits architectures&lt;br /&gt;
Slackware 12.2 i386 InstallDVD&lt;br /&gt;
Sabayon 4.0&lt;br /&gt;
 &lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
Get your Firewall up!&lt;br /&gt;
http://news.bbc.co.uk/2/hi/technology/7812353.stm&lt;br /&gt;
&lt;br /&gt;
Ubuntu to Rule The World?&lt;br /&gt;
http://www.nytimes.com/2009/01/11/business/11ubuntu.html?_r=1&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
CONTRIBUTE!&lt;br /&gt;
&lt;br /&gt;
T.I.C could benefit from your help: see http://tic.zenerves.net/faq.html#contribute to check how you &lt;br /&gt;
can participate in this project and help spread Free Software further in Phnom Penh and Cambodia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sponsor!&lt;br /&gt;
&lt;br /&gt;
UBUNTU is shipping!&lt;br /&gt;
&lt;br /&gt;
&amp;quot;https://shipit.ubuntu.com/specialrequest:&lt;br /&gt;
10 CDs requested on 2009-01-05. 10 CDs were approved and sent to the shipping company on 2009-01-06. &lt;br /&gt;
Please note requests usually take from 4 to 6 weeks to deliver, depending on the country of &lt;br /&gt;
shipping.&amp;quot; said the robot :) So, soon I'll have the officially packaged/printed Ubuntu latest &lt;br /&gt;
media!&lt;br /&gt;
&lt;br /&gt;
You too, Like YOOLK, can help. I am sure your company can find a way to see it's name valued in the &lt;br /&gt;
Phnom Penh Open Source community. Share open source software, download them, advertise T.I.C - &lt;br /&gt;
there are many ways, and I am sure I am talking to a quite creative audience here!&lt;br /&gt;
&lt;br /&gt;
(www.yoolk.com - the people behind the software for the YellowPages)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NEXT WEEK:&lt;br /&gt;
&lt;br /&gt;
Keeping on the Full Khmer train: there's more software out there!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
free!&lt;br /&gt;
&lt;br /&gt;
Text me on 012 561 005 with either:&lt;br /&gt;
&lt;br /&gt;
    * Your request for Linux distro, with pick-up yourself at my office: I will reply with street &lt;br /&gt;
address and delay/time to pick up the disc;&lt;br /&gt;
        or&lt;br /&gt;
    * Your distro request with your street address and possible hours for delivery; cost is 1usd per &lt;br /&gt;
disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This newsletter brought to you by&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
DISTROtheque Maintainer&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
web: tropicalicecube.zenerves.net&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
Mob: 012 561 005&lt;br /&gt;
                                    &lt;br /&gt;
--Slackware 12.2 / Enlightenment DR16--&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group.&lt;br /&gt;
&lt;br /&gt;
Back to [[Newsletters]]&lt;br /&gt;
[[Category:Tropical Ice Cube]] [[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC2_-_09/01/05_-_11:05_Tropical_Ice_Cube_Newsletter</id>
		<title>TIC2 - 09/01/05 - 11:05 Tropical Ice Cube Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC2_-_09/01/05_-_11:05_Tropical_Ice_Cube_Newsletter"/>
				<updated>2011-10-15T07:32:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;09/01/05 - 11:05&lt;br /&gt;
Tropical Ice Cube Newsletter #2: Seasons' greetings!&lt;br /&gt;
  From:   Jean-Philippe 'Tropical Ice Cube' Monteiro&lt;br /&gt;
  To:   pplug@googlegroups.com, barcampphnompenh@googlegroups.com, BCC: jph@bhor-allarts.org &lt;br /&gt;
    &lt;br /&gt;
It's business as usual @ Tropical Central, Penguins are being kept quite busy despite the season!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Visit tic.zenerves.net for a full list of available Open Source alternatives for your computing &lt;br /&gt;
performance and pleasure + more info and help. &lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NEWS:&lt;br /&gt;
&lt;br /&gt;
Today I announce a new department, the &amp;quot;Specialised Distro&amp;quot;; Activity on the PPLUG mailing list this &lt;br /&gt;
week was all about gateways and firewalls, so let's T.I.C. get them for you! IPCop anyone?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Chris from YOOLK is running his laptop with Ubuntu (and half is office!) and connect it to the &lt;br /&gt;
internet through his 3g phone over Bluetooth - it's the first time I hear of a full Linux solution &lt;br /&gt;
with 3g/BT connectivity. Be sure the Tropical Ice Cube will deploy every means necessary to press &lt;br /&gt;
an HowTo out of this most knowledgeable guy!&lt;br /&gt;
&lt;br /&gt;
These nice people at The Open Institute gave me 20 gorgeous-looking KhmerOS/openSUSE11 cd/dvd combo &lt;br /&gt;
boxes - they are available for free, to you dear readers! (First come, first served! as usual, text &lt;br /&gt;
me on 012 561 005 to grab one)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''SHOWCASE: Distro Of The Week.'''&lt;br /&gt;
&lt;br /&gt;
KhmerOS LiveCD+DVD (openSUSE 11) - Most of you may have heard of it, but how many of you ever tried &lt;br /&gt;
Computing in the comfort of your own language? openSUSE provides here an interesting blend of &lt;br /&gt;
modernity and stability, with a level of finish that makes Ubuntu look like a student's graduating &lt;br /&gt;
project. The KhmerOS people pushed upstream to KDE most of the operating system, and you can now &lt;br /&gt;
browse the web, edit your documents, change your personal settings of this refined, secure system &lt;br /&gt;
fully in Khmer. The KhmerOS edition of openSUSE11 is available in 2 formats, the LiveCD that you &lt;br /&gt;
can slip in your computer to try without actually touching your hardware, and the DVD version with &lt;br /&gt;
all that is needed for the full install of your dream workstation. Enjoy!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository&lt;br /&gt;
&lt;br /&gt;
Linux Specialised Distributions:&lt;br /&gt;
IPCop 1.4.20 i386&lt;br /&gt;
SMEserver 7.4 i386&lt;br /&gt;
Ubuntu Server 8.04LTS for 32 and 64 bits platforms&lt;br /&gt;
&lt;br /&gt;
Linux Distributions:&lt;br /&gt;
Official KhmerOS release of openSUSE11 boxed CD and DVDs&lt;br /&gt;
Fedora 10 InstallDVD for 32bits architectures&lt;br /&gt;
Sabayon 4 i386 LiveDVD&lt;br /&gt;
Slackware 12.2 i386 InstallDVD&lt;br /&gt;
VectorLinux 5.9Gold i386&lt;br /&gt;
&lt;br /&gt;
Non-Linux:&lt;br /&gt;
FreeBSD x64 7.1RC1&lt;br /&gt;
 &lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
Graphic Hardware Company ATI open its source code for drivers, allow a cool step towards &lt;br /&gt;
supercomputing for the masses:&lt;br /&gt;
http://www.theregister.co.uk/2008/12/31/amd_open_source_3d_code/&lt;br /&gt;
&lt;br /&gt;
Google as the Eco-Punks of the Valley:&lt;br /&gt;
http://www.theregister.co.uk/2006/07/24/google_builds_own_servers/&lt;br /&gt;
&lt;br /&gt;
A look back at OpenSource in 2008&lt;br /&gt;
http://arstechnica.com/news.ars/post/20090102-alook-back-at-the-open-source-victories-of-2008.html&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
CONTRIBUTE!&lt;br /&gt;
&lt;br /&gt;
T.I.C could benefit from your help: see tic.zenerves.net/#Contribute to check how you can &lt;br /&gt;
participate in this project and help spread Free Software further in Phnom Penh and Cambodia.&lt;br /&gt;
&lt;br /&gt;
Sponsor!&lt;br /&gt;
&lt;br /&gt;
Like YOOLK who this week downloaded a huge .iso of Fedora for me, doing in one night what would take &lt;br /&gt;
me 10. I am sure your company can find a way to help and see it's name valued in the Phnom Penh &lt;br /&gt;
Open Source community. www.yoolk.com are the people behind the software for the YellowPages!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NEXT WEEK:&lt;br /&gt;
&lt;br /&gt;
We'll focus on what OpenSource software are available to run on your M$ machines&lt;br /&gt;
there's probably more than you think!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
free!&lt;br /&gt;
&lt;br /&gt;
Text me on 012 561 005 with either:&lt;br /&gt;
&lt;br /&gt;
    * Your request for Linux distro, with pick-up yourself at my office: I will reply with street &lt;br /&gt;
address and delay/time to pick up the disc;&lt;br /&gt;
        or&lt;br /&gt;
    * Your distro request with your street address and possible hours for delivery; cost is 1usd per &lt;br /&gt;
disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This newsletter brought to you by&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
DISTROtheque Maintainer&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
web: tropicalicecube.zenerves.net&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
Mob: 012 561 005&lt;br /&gt;
                                    &lt;br /&gt;
--Fedora 7 / Enlightenment DR16--&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group.&lt;br /&gt;
&lt;br /&gt;
back to [[Newsletters]]&lt;br /&gt;
[[Category:Tropical Ice Cube]] [[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC1_-_08/12/26_-_12:28_Tropical_Ice_Cube_Newsletter</id>
		<title>TIC1 - 08/12/26 - 12:28 Tropical Ice Cube Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC1_-_08/12/26_-_12:28_Tropical_Ice_Cube_Newsletter"/>
				<updated>2011-10-15T07:31:45Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;08/12/26 - 12:28&lt;br /&gt;
Tropical Ice Cube Newsletter #1: We have Lift Off!&lt;br /&gt;
  From:   Jean-Philippe 'Tropical Ice Cube' Monteiro&lt;br /&gt;
  To:   pplug@googlegroups.com, barcampphnompenh@googlegroups.com, ppppkh@googlegroups.com, BCC: jph@bhor-allarts.org &lt;br /&gt;
    &lt;br /&gt;
The Tropical Ice Cube, a refuge for all sorts of Penguins, is proud to announce the continuation of &lt;br /&gt;
our programme:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
free!&lt;br /&gt;
&lt;br /&gt;
Text me on 012 561 005 with either:&lt;br /&gt;
&lt;br /&gt;
    * Your request for Linux distro, with pick-up yourself at my office: I will reply with street&lt;br /&gt;
      address and delay/time to pick up the disc;&lt;br /&gt;
        or&lt;br /&gt;
    * Your distro request with your street address and possible hours for delivery; cost is 1usd per &lt;br /&gt;
      disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visit tic.zenerves.net for a full list of available Open Source alternatives for your computing &lt;br /&gt;
performance and pleasure + more info and help, the page is young so it is updated often. &lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
News:&lt;br /&gt;
&lt;br /&gt;
There is a Wiki now where people can fill their fedback about distributions they use, post recipes &lt;br /&gt;
for troubleshooting past issues, and, of course, post ideas on how to make the Tropical Ice Cube &lt;br /&gt;
job better.  http://wiki.zenerves.net/index.php/Tropical_Ice_Cube&lt;br /&gt;
&lt;br /&gt;
I have started receiving quite some enquiries, and issued 5 distros already, with two more on their &lt;br /&gt;
way. Not bad. Any more ideas to spread the opensource adoption in Phnom Penh, feel free to &lt;br /&gt;
contribute, here or to the wiki.&lt;br /&gt;
&lt;br /&gt;
TWIT! Follow me on twitter where I post newly arrived Linux Distributions as soon as I grab them. &lt;br /&gt;
www.twitter.com/tropicalicecube&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Showcases: Distro Of The Week.&lt;br /&gt;
&lt;br /&gt;
ELIVE LiveCD Development Version 1.9.21&lt;br /&gt;
&lt;br /&gt;
New In from wget last night: EliveCD is Debian Lenny based with the Enlightenment DR16 and DR17 &lt;br /&gt;
Window Managers. Elive features incredible graphics for slow PCs. Actually, it's so good you should &lt;br /&gt;
make it: Incredible Graphic for _all_ PCs - without any accelerated video hardware! Enlightenment is &lt;br /&gt;
a completely different experience when it comes to Graphical User Interface - and useability, too. &lt;br /&gt;
It is not very obvious when you start it, but truly great once acquainted with. Should I mention it &lt;br /&gt;
is my personal choice for years now? I am a bit partial about this particular piece of software, &lt;br /&gt;
indeed.&lt;br /&gt;
&lt;br /&gt;
www.enlightenment.org&lt;br /&gt;
www.elivecd.org&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Latest Additions to the Distrothèque Repository&lt;br /&gt;
&lt;br /&gt;
Linux Distributions:&lt;br /&gt;
 CentOS - 5.2 installDVD - i386&lt;br /&gt;
        RedHat based, valid to 2014.&lt;br /&gt;
 Elive - 1.9.21 LiveCD - i386&lt;br /&gt;
        Showcase/demo, Runs on old hardware with stunning looks.&lt;br /&gt;
 Fedora - 10 LiveCD      - I386 &amp;amp; x64&lt;br /&gt;
        !No OpenOffice! but cool demo tool.&lt;br /&gt;
 Fedora - 10 InstallDVD - x64&lt;br /&gt;
        Latest Greatest, my personal choice for years now.&lt;br /&gt;
 Mandriva - 2008 installDVD - i386&lt;br /&gt;
        Good alternative for starting with Linux&lt;br /&gt;
 Mint - 6 LiveCD - i386&lt;br /&gt;
        Ubuntu Derivative with ease of use in mind&lt;br /&gt;
 openSUSE - 11_Khmer_LiveCD - i386      &lt;br /&gt;
        That's right: Your computer can be fully in Khmer, with text editor, web browser, settings, games!&lt;br /&gt;
 openSUSE - 10_Khmer_DVD - i386 &lt;br /&gt;
        This is the &amp;quot;Big Install&amp;quot; version, with more stable software for the office.&lt;br /&gt;
 Ubuntu - 8.10  LiveCD - I386 &amp;amp; x64 - &lt;br /&gt;
        WiFi is working now!!&lt;br /&gt;
 &lt;br /&gt;
Non-Linux:&lt;br /&gt;
 PC-BSD - 7.02  InstallDVD - i386 &lt;br /&gt;
        Server/Desktop alternative to Linux, with KDE4, OpenOffice, etc.&lt;br /&gt;
 OpenSolaris - 2008.11 LiveCD - i386&lt;br /&gt;
        Another open source alternative to Linux. More obscure, if possible.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This Week recommended Readings:&lt;br /&gt;
&lt;br /&gt;
On Operating Systems:&lt;br /&gt;
http://www.theregister.co.uk/2008/12/16/the_year_in_oses/page3.html&lt;br /&gt;
&lt;br /&gt;
SUSE gets ArtsTechnica Awards:&lt;br /&gt;
http://arstechnica.com/articles/culture/ars-awards-2008.ars/7&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Contribute!&lt;br /&gt;
&lt;br /&gt;
T.I.C could benefit from your help: see tic.zenerves.net/#Contribute to check how you can &lt;br /&gt;
participate in this project and help spread Free Software further in Phnom Penh and Cambodia.&lt;br /&gt;
&lt;br /&gt;
Sponsor!&lt;br /&gt;
&lt;br /&gt;
Like GoldStar Computer, #428 on Kampuchea Krom who is providing me with blank DVD's, I am sure your &lt;br /&gt;
company can find a way to help and see it's name valued in the Phnom Penh Open Source community.&lt;br /&gt;
&lt;br /&gt;
[If you have doubts on your Linux-running hardware, Vandy from GoldStar offers free check-up of your &lt;br /&gt;
machine - Call him 0t2 857 165. If you have doubts about running Linux on your hardware, then come &lt;br /&gt;
to me 012 561 005]&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This newsletter brought to you by&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
Distrotheque Maintainer&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
web: tropicalicecube.zenerves.net&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
Mob 012 561 005&lt;br /&gt;
                                    &lt;br /&gt;
--Fedora 7 / Enlightenment DR16--&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
back to [[Newsletters]]&lt;br /&gt;
[[Category:Tropical Ice Cube]] [[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC14_09/04/22_-_15:24_TIC_Newsletter</id>
		<title>TIC14 09/04/22 - 15:24 TIC Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC14_09/04/22_-_15:24_TIC_Newsletter"/>
				<updated>2011-10-15T07:31:30Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Tropical Ice Cube Newsletter #14: 400 microscopic penguins on my desk!&lt;br /&gt;
&lt;br /&gt;
 From: &amp;quot;Jean-Philippe 'Tropical Ice Cube' Monteiro&amp;quot; &amp;lt;jphWITHzenerves.net&amp;gt;&lt;br /&gt;
 To: pplugWITHgooglegroups.com, barcampphnompenhWITHgooglegroups.com, jugcamWITHgooglegroups.com&lt;br /&gt;
 Date: 09/04/22 - 15:24&lt;br /&gt;
   &lt;br /&gt;
[My apologies if you receive this message 2 or 3 times: it means you are a very committed person &lt;br /&gt;
registered to the 3 fine groups I send this NewsLetter to!]&lt;br /&gt;
&lt;br /&gt;
======================================&lt;br /&gt;
&lt;br /&gt;
Howdy, Nixettes and Nixers!&lt;br /&gt;
&lt;br /&gt;
Welcome to issue 14 of the Tropical Ice Cube Newsletter,&lt;br /&gt;
your (quite) weekly dose of OpenSource news here in Phnom Penh.&lt;br /&gt;
&lt;br /&gt;
This week: Minimalist Chinese hardware, a new recipe of Sabayon + some new and old friendships.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HOT NEWS: New &amp;amp; old friendships&lt;br /&gt;
&lt;br /&gt;
I am happy to think that what we do here @ Tropical Central is not only providing people low on &lt;br /&gt;
bandwidth with free software, but also that we, the all of us, are building a community around it.&lt;br /&gt;
&lt;br /&gt;
Just new this week, Vandy from Gold Star Computer lent me quite curious hardware for me to review &lt;br /&gt;
and tinker with (I even have his formal acknowledgment to brick it if such sorry ending happens): &lt;br /&gt;
It's an Alpha400 MiPS processor based 7'' wide submininetbook running a Debian mipsel derivative &lt;br /&gt;
distribution (see full review below). Thanks Vandy!&lt;br /&gt;
&lt;br /&gt;
Now then, two more commercial partners surged: Mike from JX2 and Domink from YEJJ both offered to &lt;br /&gt;
host Linux Distributions to make them more easy to retrieve to the community, helping them spread &lt;br /&gt;
around: My office is near Royal palace, JX2 is on Monivong, Gold Star on Kampuchea Krom and Yejj &lt;br /&gt;
south of Mao Tse Toung - That ain't half bad! Thank you guys, find the exact addresses of these &lt;br /&gt;
fine,  supportive businesses in our new &amp;quot;Sponsor&amp;quot; section :) I will soon advertise when &amp;amp; how you &lt;br /&gt;
can request your Free Software discs to be delivered to one of these convenient locations!&lt;br /&gt;
&lt;br /&gt;
And if you too want to help, I need blank CD's &amp;amp; DVD's of course + 1 new smallish IDE harddrive to &lt;br /&gt;
refurbish my failing KhmerOS teststation here (a 9 year old P4 of witch the SMART monitoring system &lt;br /&gt;
keeps on crying about a less-than-24hours-away catastrophic HDD failure. Still running though).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
Do you have some OpenSource local news to share? Send it to tic/AT/zenerves.net!&lt;br /&gt;
&lt;br /&gt;
If you have the bandwidth, share with others! Most Linux Torrents can be found here:&lt;br /&gt;
&lt;br /&gt;
http://www.linuxtracker.org/&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHOWCASE: Sabayon 4.1 Gnome and more&lt;br /&gt;
&lt;br /&gt;
Gnome? Well, not only that of course; as with Sabayon 4 reviewed in TIC NL#4 the live boot menu &lt;br /&gt;
greets you with lots of choices, including for netbooks, with or without 3D desktop... And even as &lt;br /&gt;
a standalone mediaplayer/internet tablet! Again, on the looks side, Sabayon is as elegant as ever, &lt;br /&gt;
truly one of the most tasteful design of these days (Alongside MoonOS of course).&lt;br /&gt;
&lt;br /&gt;
Kernel is 2.6.29, so that's fairly bleeding edge, and as ever, Sabayon reminds us that we are not &lt;br /&gt;
here always to work, but that computers can be used for fun too with the inclusion of the World of &lt;br /&gt;
Goo demo game. &lt;br /&gt;
&lt;br /&gt;
Being based on Gentoo, this is your distro of choice if you want unprecedented level of control and &lt;br /&gt;
customisation, a vibrant community, and endless possibilities to learn: Sabayon brings all that in &lt;br /&gt;
a much more manageable package than it's mother distro Gentoo, or the likes of Arch or Slackware.&lt;br /&gt;
&lt;br /&gt;
For the intermediate user then, eager to enter the deep waters of system administration without &lt;br /&gt;
getting drowned immediately!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
Join the Facebook Tropical Ice Cube Group:&lt;br /&gt;
&lt;br /&gt;
http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow my twitteries to learn about latest downloads:&lt;br /&gt;
&lt;br /&gt;
http://twitter.com/tropicalicecube&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HARDWARE ON THE GRILL: Guangzhou Skytone Transmission Technologies Inc ltd Alpha 400 T62b!!&lt;br /&gt;
&lt;br /&gt;
OK, with such a name, you surely wants to know what it looks like, don't you?&lt;br /&gt;
&lt;br /&gt;
http://www.skytone.net.cn/en/products.php&lt;br /&gt;
&lt;br /&gt;
And, then, what's inside?&lt;br /&gt;
&lt;br /&gt;
Inside is quite the issue, as I reported already to Vandy: it's a MiPS processor. That means that as &lt;br /&gt;
such  there is quite no software at all compiled for it, no fuller toolchain available to start &lt;br /&gt;
doing your own binaries; You are pretty much stuck with the original Debian far-away derivative &lt;br /&gt;
that is installed, firmly and quite locked, on the device. (more on this later).&lt;br /&gt;
&lt;br /&gt;
Then it's only clocked at 400Mhz, which means that even if they were nice enough to offer Flash &lt;br /&gt;
support, video playback is quite hectic. The point of such a core is of course the Save the Trees &lt;br /&gt;
factor: out of a 2100mAh battery, the unit will run about 3 hours. Add to that 128 megs of Ram and &lt;br /&gt;
a NAND hdd of only 1 Gb and you are on the verge of discarding the thing as a computer completely.&lt;br /&gt;
&lt;br /&gt;
You'll be wrong: Altough there isn't bundled WiFi or HSDPA support, it still offers a decent &lt;br /&gt;
keyboard, enough pixels to enjoy Facebook or Twitter, and the definitive ability to do some &lt;br /&gt;
note-taking, spreasdshhet review &amp;amp; the likes, in a 600grams /210mm, 140USD package.&lt;br /&gt;
&lt;br /&gt;
Of course, I started hacking on it right away, and anybody interested please drop in my office, call &lt;br /&gt;
text mail whatever, if you can't stand the suspense and wait for my next week update: &lt;br /&gt;
What can we do in real life with 128megs of Ram, 1Gb of Hdd, 400Mhz of engine on a non-standard &lt;br /&gt;
processor... And some community help:&lt;br /&gt;
&lt;br /&gt;
http://www.littlelinuxlaptop.com/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--??But, why Debian??--&lt;br /&gt;
&lt;br /&gt;
Just because if you look for a distro that runs on exotic hardware, 9 times out of then Debian will &lt;br /&gt;
be that distro: Debian is the Record Holder of Supported Platform (about 16 of them), and could &lt;br /&gt;
quite run on a kerosene-powered cheese grater if it had a cdrom, or an usb port, or just a network &lt;br /&gt;
interface.&lt;br /&gt;
&lt;br /&gt;
And what hasn't got a network interface these days?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository:&lt;br /&gt;
&lt;br /&gt;
http://tic.zenerves.net/latest_news.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tools/Rescue:&lt;br /&gt;
&lt;br /&gt;
-Clonezilla Live 1.2.1-53&lt;br /&gt;
&lt;br /&gt;
Hacker:&lt;br /&gt;
&lt;br /&gt;
-Sabayon 4.1 gnome&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
Oh the Ubuntu Circus again!&lt;br /&gt;
&lt;br /&gt;
http://www.itwire.com/content/view/24486/1231/&lt;br /&gt;
&lt;br /&gt;
Sorry people, I can't let this one slip unnoticed! Of course I fully agree that the 6 months release &lt;br /&gt;
cycle of U is THE marketing cue, the sole and whole business plan of this otherwise quite fine &lt;br /&gt;
distro. Don't worry, I'll have it on your desk in no time, my dear Novelty freaks!&lt;br /&gt;
&lt;br /&gt;
A quite ambitious call from Distrowatch: Bug Central.&lt;br /&gt;
&lt;br /&gt;
http://distrowatch.com/weekly.php?issue=20090420#feature&lt;br /&gt;
&lt;br /&gt;
And a last one you shouldn't be reading, really: Latest installment from&lt;br /&gt;
the Bastard Operator From Hell&lt;br /&gt;
&lt;br /&gt;
http://www.theregister.co.uk/2009/04/17/bofh_gta/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
Visit http://tic.zenerves.net for a full list of available Open Source alternatives for your &lt;br /&gt;
computing performance and pleasure + more info and help.  If you have the bandwidth, share with &lt;br /&gt;
others! Most Linux Torrents can be found here:&lt;br /&gt;
&lt;br /&gt;
http://www.linuxtracker.org/&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube - To boldly go where no penguin has gone before!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That's it for this week;&lt;br /&gt;
Happy Hacking/Clogging/Joomling!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
SPONSORS&lt;br /&gt;
&lt;br /&gt;
Gold Star Computer - free hardware check for your Linux boxes&lt;br /&gt;
&lt;br /&gt;
Shop: Nº. 428, Kampuchea Krom (St. 128)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
YEJJ - Computer Services, Training, Café and more&lt;br /&gt;
&lt;br /&gt;
Café: Nº. 170, Street 450&lt;br /&gt;
&lt;br /&gt;
Offices: Nº. 92A, Street 432&lt;br /&gt;
&lt;br /&gt;
http://www.yejj.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
JX II - the Sabay-powered Massive Multiplayer online game&lt;br /&gt;
&lt;br /&gt;
Outlet: Nº. 308, Preah Monivong Blvd&lt;br /&gt;
&lt;br /&gt;
http://www.sabay.com.kh - http://jx.com.kh/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
  send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
  free!&lt;br /&gt;
  &lt;br /&gt;
  Text/call on 012 561 005 with either:&lt;br /&gt;
  &lt;br /&gt;
  * Your request for Linux distro, with pick-up yourself at my office: I will reply with street &lt;br /&gt;
  address and delay/time to pick up the disc;&lt;br /&gt;
       or&lt;br /&gt;
  * Your distro request with your street address and possible hours for delivery; cost is 1usd per &lt;br /&gt;
  disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
&lt;br /&gt;
web: http://tropicalicecube.zenerves.net&lt;br /&gt;
&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
&lt;br /&gt;
Face: Tropicalicecube Phnompenh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Facebook Tropical Ice Cube Group:&lt;br /&gt;
&lt;br /&gt;
http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
&lt;br /&gt;
Phnom Penh Linux User Group:&lt;br /&gt;
&lt;br /&gt;
http://groups.google.com/group/pplug&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group, but first please consider other members of the &lt;br /&gt;
group may enjoy reading it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[Newsletters]]&lt;br /&gt;
[[Category:Tropical Ice Cube]] [[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC13_09/04/08_-_16:14_TIC_Newsletter</id>
		<title>TIC13 09/04/08 - 16:14 TIC Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC13_09/04/08_-_16:14_TIC_Newsletter"/>
				<updated>2011-10-15T07:31:08Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  Tropical Ice Cube Newsletter #13: Penguins Save Drives!&lt;br /&gt;
  From: &amp;quot;Jean-Philippe 'Tropical Ice Cube' Monteiro&amp;quot; &amp;lt;jph'''BY\'''zenerves.net&amp;gt;&lt;br /&gt;
  To: pplug'''BY\'''googlegroups.com, barcampphnompenh'''BY\'''googlegroups.com, jugcam'''BY\'''googlegroups.com&lt;br /&gt;
  Date: 09/04/08 - 16:14&lt;br /&gt;
   &lt;br /&gt;
[My apologies if you receive this message 2 or 3 times: it means you are a very committed person &lt;br /&gt;
registered to the 3 fine groups I send this NewsLetter to!]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Howdy, Nixettes and Nixers!&lt;br /&gt;
&lt;br /&gt;
Welcome to issue 13 of the Tropical Ice Cube Newsletter,&lt;br /&gt;
&lt;br /&gt;
your (quite) bi-weekly dose of OpenSource news here in Phnom Penh.&lt;br /&gt;
&lt;br /&gt;
This week: Life Saving Tools, Kernel Numerology &amp;amp; Puppy 4.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HOT NEWS: Tools of the Drive&lt;br /&gt;
&lt;br /&gt;
We had this week a flurry of releases from small, specialised tools that can _really_ save the day, &lt;br /&gt;
your work or your life for that matter. &lt;br /&gt;
&lt;br /&gt;
Welcome the latest iteration of Parted Magic, SystemRescueCD and Clonezilla - they all offer on one &lt;br /&gt;
single, open source CDRom a collection of disc drive tools worth thousands of dollars elsewhere. &lt;br /&gt;
Even if you are not familiar with Linux, these tools are ones to keep in your top drawer! You never &lt;br /&gt;
know when failure will occur, and I have saved many, many systems or data by simply rebooting with &lt;br /&gt;
one of these discs in the tray to start extracting valuable data, or perform filesystem check and &lt;br /&gt;
repairs. &lt;br /&gt;
&lt;br /&gt;
And, with any common sense, the use of a LiveCD is your only option since you wouldn't want to &lt;br /&gt;
perform core HDD operations in/from a drive that is being read and written to! You need to have &lt;br /&gt;
the software ran from outside (RAM or  CDRom) so that the disc drive you want to repair is 'idle', &lt;br /&gt;
available for in-depth scanning/cloning/repairing!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any case, be carefull and don't hesitate to ask for help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
Do you have some OpenSource local news to share? Send it to tic/AT/zenerves.net!&lt;br /&gt;
If you have the bandwidth, share with others! Most Linux Torrents can be found here:&lt;br /&gt;
&lt;br /&gt;
http://www.linuxtracker.org/&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LEARNING CURVE: Kernel Numerology&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I succeeded yesterday the compilation of the latest official kernel from http://www.kernel.org, the &lt;br /&gt;
2.6.29.1 - I was upgrading from the standard Slackware 2.6.27.7. All good, I have now a Tasmanian &lt;br /&gt;
Devil upon boot screen, thanks to some serious save-the-devil challenges at the last Linux.au &lt;br /&gt;
conference.. (see read/links below). My machine is now faster, and uses less system memory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, 2.6.29.1 that's a lot of numbers. It' s the core of the system, why can't it be called '09' &lt;br /&gt;
or 'lextra' like anyone out there seems to do, moving every other year from a number to a name and &lt;br /&gt;
the opposite? The community-driven aspect of sharing source code means releasing small changes very &lt;br /&gt;
often, as opposite to massive 'service packs'.&lt;br /&gt;
&lt;br /&gt;
- So, we are in Kernel 2, the second proposition of a functional Unix replacement;&lt;br /&gt;
&lt;br /&gt;
- At 2.6 now, after 2.4 needed a massive change in the way external and internal events can be &lt;br /&gt;
(auto)handled by the kernel [2.5 was experimental, as 2.7 is supposed to be too, before going 2.8]&lt;br /&gt;
BUT 2.4 and 2.2 are still being developed now, with releases now at 2.4.37 and 2.2.26.&lt;br /&gt;
&lt;br /&gt;
-And 2.6.29 is to celebrate the inclusion of new drivers and file systems abilities over the same &lt;br /&gt;
2.6 architecture;&lt;br /&gt;
&lt;br /&gt;
-while 2.6.29.1 is all about bugfixes over 2.6.29 and will continue for a while, until they release &lt;br /&gt;
2.6.30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add on top of that that major distributions ship customs kernels with their own patches, target &lt;br /&gt;
architectures and fixes, and you end up with, in Debian for instance, something as un-readable as &lt;br /&gt;
2.6.18.dfsg.1-24 !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Join the Facebook Tropical Ice Cube Group:&lt;br /&gt;
&lt;br /&gt;
http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow my twitteries to learn about latest downloads:&lt;br /&gt;
&lt;br /&gt;
http://twitter.com/tropicalicecube&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHOWCASE: PuppyLinux 4.2 &amp;quot;Deep Thought&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Puppy is... shall we say 'growing' fast? No, since it is still there at right under 100megs, so the &lt;br /&gt;
Pup isn't really putting on weight, while growing on features indeed. &lt;br /&gt;
This is the first Puppy out since the semi-retirement of former Project leader Barry Kauler, current &lt;br /&gt;
pupcoordinator being Warren Willson. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Old dogs used to 4.1.2 will mainly notice the new menu' looks, a dark/orange affair that may not be &lt;br /&gt;
to everyones tastes and the over-intrusive Conky system monitor. It strikes me as odd since Conky &lt;br /&gt;
eats up 20% of your screen to give you the kind of information that much better resides in a &lt;br /&gt;
systray.. But, hey, desktop widgets are all the rage these days especially if they feature a &lt;br /&gt;
transparent background, and it does give Puppy a contemporary feel to it, much better than the &lt;br /&gt;
quite M$-W95 lame gray square-ish looks of 4.1.2. [Just between you and me, my laptop will stick to &lt;br /&gt;
4.1.2 for the time being] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Worthy of _real_ notice though, still on the eye-candy front, is the inclusion of a second &lt;br /&gt;
windowmanager, a wee bit less austere in looks than JWM: welcome IceWM and a ton of new/revamped &lt;br /&gt;
themes to suit it to your liking (I really have a problem with this orange thingie...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on to what matters for real now:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puppy is still a snap, the living proof that all your computer does do not need to kill the planet &lt;br /&gt;
to be effective, that you can do the same amount of work with 8 watts instead of 80, and that you &lt;br /&gt;
can do it on a ten years old computer rather than on brand new iron (thanks to the -retro edition &lt;br /&gt;
of Puppy, a 4.2 up-to-date version that ships with an older kernel.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add to that the availability of a simple USB installer, and things start to be really portable: 35 &lt;br /&gt;
seconds to boot, 0.4 secs to go to a spreadsheet, all settings saved upon resume... Clearly, in &lt;br /&gt;
view of what's happening on the low power Atoms CPU's scene and all them NetBooks out there, I see &lt;br /&gt;
a new, planet-friendly way of computing. And computing fast at that - the problem is barely that &lt;br /&gt;
you need more power; what you need is less software that you don't use 95% of the time!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go get the  Puppy out for a walk, you'll enjoy it! [And it's available at T.I.C of course]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository:&lt;br /&gt;
&lt;br /&gt;
http://tic.zenerves.net/latest_news.html&lt;br /&gt;
&lt;br /&gt;
Hang on to something, it's a real cascade of downloads this week!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tools/Rescue:&lt;br /&gt;
&lt;br /&gt;
-Clonezilla Live 1.2.1-53&lt;br /&gt;
&lt;br /&gt;
-Parted Magic 4.0&lt;br /&gt;
&lt;br /&gt;
-SystemRescueCd 1.1.6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Minimalists:&lt;br /&gt;
&lt;br /&gt;
-xPUD 0.8.9&lt;br /&gt;
&lt;br /&gt;
-Vector Linux 6.0 &amp;quot;Light&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exotic! OpenSolaris in Ubuntu fashion:&lt;br /&gt;
&lt;br /&gt;
-Nexenta Core Platform 2.0 RC1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mainstream:&lt;br /&gt;
&lt;br /&gt;
-Debian 5 DVD&lt;br /&gt;
&lt;br /&gt;
-CentOS 5.3 DVD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
About the freshly landed OpenSolaris derivative:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.nexenta.org/&lt;br /&gt;
&lt;br /&gt;
http://www.osnews.com/story/20280/Nexenta_Ubuntu_Server_with_ZFS_goodness&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '29 kernel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stupid challenges, cool features:&lt;br /&gt;
&lt;br /&gt;
http://tinyurl.com/tuzandtux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Full feature:&lt;br /&gt;
&lt;br /&gt;
http://kernelnewbies.org/Linux_2_6_29&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
Visit http://tic.zenerves.net for a full list of available Open Source alternatives for your &lt;br /&gt;
computing performance and pleasure + more info and help.  If you have the bandwidth, share with &lt;br /&gt;
others! Most Linux Torrents can be found here:&lt;br /&gt;
http://www.linuxtracker.org/&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube - To boldly go where no penguin has gone before!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That's it for this week;&lt;br /&gt;
&lt;br /&gt;
Happy Hacking/Clogging/Joomling!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
  send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
  free!&lt;br /&gt;
&lt;br /&gt;
  Text/call on 012 561 005 with either:&lt;br /&gt;
  &lt;br /&gt;
    * Your request for Linux distro, with pick-up yourself at my office: I will reply with street &lt;br /&gt;
    address and delay/time to pick up the disc;&lt;br /&gt;
        or&lt;br /&gt;
    * Your distro request with your street address and possible hours for delivery; cost is 1usd per &lt;br /&gt;
    disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 twit: tropicalicecube&lt;br /&gt;
 web: http://tropicalicecube.zenerves.net&lt;br /&gt;
 mail: tic /AT\ zenerves.net&lt;br /&gt;
 Face: Tropicalicecube Phnompenh &lt;br /&gt;
 &lt;br /&gt;
 Facebook Tropical Ice Cube Group:&lt;br /&gt;
 http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 Phnom Penh Linux User Group:&lt;br /&gt;
 http://groups.google.com/group/pplug&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group, but first please consider other members of the &lt;br /&gt;
group may enjoy reading it!&lt;br /&gt;
[[Category:Tropical Ice Cube]] [[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC7_-_09/02/16_-_11:19Tropical_Ice_Cube_Newsletter</id>
		<title>TIC7 - 09/02/16 - 11:19Tropical Ice Cube Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC7_-_09/02/16_-_11:19Tropical_Ice_Cube_Newsletter"/>
				<updated>2011-10-14T23:49:35Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[My apologies if you receive this message 2 or 3 times: it means you are a very committed person &lt;br /&gt;
registered to the 3 fine groups I send this NewsLettre to!]&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
Visit http://tic.zenerves.net for a full list of available Open Source alternatives for your &lt;br /&gt;
computing performance and pleasure + more info and help. &lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Howdy, Nixettes and Nixers!&lt;br /&gt;
&lt;br /&gt;
Welcome to issue 7 of the Tropical Ice Cube Newsletter,&lt;br /&gt;
&lt;br /&gt;
your weekly dose of OpenSOUrce news here in Phnom Penh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HOT NEWS:&lt;br /&gt;
&lt;br /&gt;
Debian 5 &amp;quot;Lenny&amp;quot; is out!&lt;br /&gt;
&lt;br /&gt;
And for all of us, non &amp;quot;ubuntu-latest-latest-bigger-number-means-better-software&amp;quot; freaks, it is &lt;br /&gt;
great news to welcome the release of a stable Linux distribution that you will be able to &lt;br /&gt;
confidently install on your system without already thinking of doing it all over again in 6 months. &lt;br /&gt;
Debian is your Rock Solid choice for anything: running a server, a graphic workstation, host a &lt;br /&gt;
coimmunity website, build a mediaplayer, or just be your everyday desktop workhorse: Debian is all &lt;br /&gt;
that thanks to its Synaptic package management system and more than 17.000 tried, tested, stable &lt;br /&gt;
software available in their repositories. And trust me: they worked on it for 22 months before &lt;br /&gt;
deeming it good enough for us, mere mortals! If that doesn't tells you something is wrong with &lt;br /&gt;
Ubuntu, then I don't know what can.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Downloading Now, expect them in 2 days (cd versions) to 8 days (full dvd's), follow me on twitter or &lt;br /&gt;
facebook (see below) to get updated on availability and receive yours for free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest downloads: &lt;br /&gt;
&lt;br /&gt;
Ubuntu 8.04.2, a fresh re-spin of 8.04.2 with all up-to-date packages inside for a lighter updating &lt;br /&gt;
process after initial install. All available, 32/64 bits, Home &amp;amp; Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ArchLinux now available for 32 bits platforms. Geeks, warm up your Code, Arch isn't for noobs!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Join the Facebook Tropical Ice Cube Group:&lt;br /&gt;
&lt;br /&gt;
http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
&lt;br /&gt;
Follow my twitteries:&lt;br /&gt;
&lt;br /&gt;
http://twitter.com/tropicalicecube&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
SHOWCASE: Archlinux&lt;br /&gt;
&lt;br /&gt;
http://archlinux.org - I became interested by ArchLinux when I first read about their latest release &lt;br /&gt;
on http://distrowatch.com, but also when I realised my MonsterGaming LiveDVD from Linux-gamers.net &lt;br /&gt;
was in fact based on Arch - I can tell you it is a realyl fast, unobtrusive distro that is very &lt;br /&gt;
successful at delivering graphic-heavy 3D shooters from a live disc . Anybody interested may ask &lt;br /&gt;
for more: Arch is a rolling-release, which means you update it continuously, you never re-install &lt;br /&gt;
or have to switch to newer version, you can just keep it up-to date for as long as you are able to &lt;br /&gt;
maintain your own config files tidy. Arch 2009.0 is definitely going to replace Sabayon4 here @ &lt;br /&gt;
Tropical Central as Second/Rescue/Testbed distro on my alternate hard drive. May it surpass my &lt;br /&gt;
Slackware12.2? We'll see! In the gaming department, if for that alone, it surely will!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository:&lt;br /&gt;
&lt;br /&gt;
http://tic.zenerves.net/latest_news.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hacker Delight:&lt;br /&gt;
&lt;br /&gt;
Arch 2008.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ubuntu is a drug:&lt;br /&gt;
&lt;br /&gt;
32 and 64 bits, Server and Desktop editions of&lt;br /&gt;
8.04.2 LTS, latest re-spin of the long term support U.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux, boxed:&lt;br /&gt;
&lt;br /&gt;
Ubuntu 8.10 Box-Editions - real, shiny ones!&lt;br /&gt;
KhmerOS openSUSE 11 - fresh from the Open Institute.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux, latest:&lt;br /&gt;
&lt;br /&gt;
Mint6 and openSUSE11.1 came afresh thanks to my subscription to LinuxFormat magazine - this DVD's &lt;br /&gt;
come with lots of additional goodies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Specialised:&lt;br /&gt;
&lt;br /&gt;
eBox 0.12.3 server for easy administration of corporate networks. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
!! Don't Forget !!&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube always keep the 10 most important Linux Distributions available in their most &lt;br /&gt;
recent release figure - JUST ASK!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New is BAD, new is SLOW (stop upgrading like mad):&lt;br /&gt;
&lt;br /&gt;
http://www.phoronix.com/scan.php?page=article&amp;amp;item=ubuntu_macosx&amp;amp;num=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SocioGeeks special: Mix Gmail and FaceBook!&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/web/news/2009/02/hands-on-xoopit-pokes-gmail-adds-it-to-facebook.ars&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Don't click on just about anything. Just don't, ok?&lt;br /&gt;
&lt;br /&gt;
http://www.theregister.co.uk/2009/02/13/twitter_clickjack_attack/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As Ever, always available:&lt;br /&gt;
&lt;br /&gt;
OpenSource Software for M$:&lt;br /&gt;
&lt;br /&gt;
Firefox 3 - get rid of Internet Explorer!&lt;br /&gt;
&lt;br /&gt;
OpenOffice 3 - get rid of Word/Excell/etc!&lt;br /&gt;
&lt;br /&gt;
The Gimp 2.6 - get rid of Photoshop!&lt;br /&gt;
&lt;br /&gt;
Thunderbird 2 - get rid of outlook/outlook express&lt;br /&gt;
&lt;br /&gt;
VLC 0.9 - Well, VLC is better than anything else really. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the Same in Khmer:&lt;br /&gt;
&lt;br /&gt;
[check http://www.khmeros.info for more]&lt;br /&gt;
&lt;br /&gt;
OpenOffice - full offoce suite&lt;br /&gt;
&lt;br /&gt;
Moyura, Email client&lt;br /&gt;
&lt;br /&gt;
Merkhala, Web browser&lt;br /&gt;
&lt;br /&gt;
+ Unicode Typing Trainer for Windows and more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONTRIBUTE!&lt;br /&gt;
&lt;br /&gt;
T.I.C could benefit from your help: see http://tic.zenerves.net/faq.html#contribute to check how you &lt;br /&gt;
can participate in this project and help spread Free Software further in Phnom Penh and Cambodia.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TwitMe! Hook to http://twitter.com/tropicalicecube.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Spread the newsletter! Send it to your friends, &lt;br /&gt;
&lt;br /&gt;
get them to register to the &lt;br /&gt;
&lt;br /&gt;
Phnom Penh Linux User Group &lt;br /&gt;
&lt;br /&gt;
(Yes, that is the PPLUG)&lt;br /&gt;
&lt;br /&gt;
at:&lt;br /&gt;
&lt;br /&gt;
http://groups.google.com/group/pplug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
 send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
 free!&lt;br /&gt;
 &lt;br /&gt;
 Text/call on 012 561 005 with either:&lt;br /&gt;
 &lt;br /&gt;
  Your request for Linux distro, with pick-up yourself at my office: I will reply with street &lt;br /&gt;
  address and delay/time to pick up the disc;&lt;br /&gt;
 	or&lt;br /&gt;
  Your distro request with your street address and possible hours for delivery; cost is 1usd per &lt;br /&gt;
  disc/dvd, Business Hours best.&lt;br /&gt;
 &lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This newsletter brought to you by&lt;br /&gt;
&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
&lt;br /&gt;
DISTROtheque Maintainer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
&lt;br /&gt;
web: tropicalicecube.zenerves.net&lt;br /&gt;
&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
&lt;br /&gt;
Face: Tropicalicecube Phnompenh&lt;br /&gt;
&lt;br /&gt;
Mob: 012 561 005&lt;br /&gt;
&lt;br /&gt;
                                    &lt;br /&gt;
--Slackware 12.2 / Enlightenment DR16--&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group, but first please consider other members of the &lt;br /&gt;
group may enjoy reading it!&lt;br /&gt;
[[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=TIC12_09/03/25_-_15:34_Tropical_Ice_Cube_Newsletter</id>
		<title>TIC12 09/03/25 - 15:34 Tropical Ice Cube Newsletter</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=TIC12_09/03/25_-_15:34_Tropical_Ice_Cube_Newsletter"/>
				<updated>2011-10-14T23:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Tropical Ice Cube Newsletter #12: Small Penguins and Discrete Devils&lt;br /&gt;
 From: &amp;quot;Jean-Philippe 'Tropical Ice Cube' Monteiro&amp;quot; &amp;lt;jph~BY~zenerves.net&amp;gt;&lt;br /&gt;
 To: pplug~BY~googlegroups.com, barcampphnompenh~BY~googlegroups.com, jugcam~BY~googlegroups.com&lt;br /&gt;
 Date: 09/03/25 - 15:34&lt;br /&gt;
   &lt;br /&gt;
[My apologies if you receive this message 2 or 3 times: it means you are a very committed person &lt;br /&gt;
registered to the 3 fine groups I send this NewsLetter to!]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
Do you have some OpenSource local news to share? Send it to tic/AT/zenerves.net!&lt;br /&gt;
If you have the bandwidth, share with others! Most Linux Torrents can be found here:&lt;br /&gt;
http://www.linuxtracker.org/&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Howdy, Nixettes and Nixers!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Welcome to issue 12 of the Tropical Ice Cube Newsletter,&lt;br /&gt;
your (quite) weekly dose of OpenSource news here in Phnom Penh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HOT NEWS:&lt;br /&gt;
&lt;br /&gt;
MoonOS 2 &amp;quot;Kachana&amp;quot; is out! get this Khmer-authored, Khmer-themed Ubuntu LiveCD derivative from TIC &lt;br /&gt;
now! As usual, all you have to do is text me on 012 561 005 to grab yours! See below for more info.&lt;br /&gt;
&lt;br /&gt;
OpenSolaris running on a NetBook anyone? Paul just wrote me yesterday, having succeeded in porting &lt;br /&gt;
the latest version of OSOL from SVN on his tiny Acer Aspire One. +5 Nerds point to Paul for this &lt;br /&gt;
achievement, and more ressources in the Links section of this Newsletter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LEARNING CURVE:&lt;br /&gt;
&lt;br /&gt;
When do I need an anonymiser??&lt;br /&gt;
&lt;br /&gt;
Mainly, I use them when I am in a cyber-café with my laptop or the WiFi of a hotel so that my online &lt;br /&gt;
passwords and activity cannot be grabbed by the café or the ISP.&lt;br /&gt;
&lt;br /&gt;
Your privacy is what you do with it: everyone has the right to close the curtains of his bedroom, &lt;br /&gt;
and this is just about the same with computers; if you don't close the curtains, well, anyone &lt;br /&gt;
can have a good look at your own private life!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
Join the Facebook Tropical Ice Cube Group:&lt;br /&gt;
http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
&lt;br /&gt;
Follow my twitteries to learn about latest downloads:&lt;br /&gt;
http://twitter.com/tropicalicecube&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHOWCASE: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MoonOS 2 &amp;quot;Kachana&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
MoonOS is a complete, Ubuntu-based distribution featuring the Enlightenment 17 desktop manager and &lt;br /&gt;
imaginative, original artwork. A project created and designed by Cambodian artist Chanrithy Thim, &lt;br /&gt;
moonOS is intended as an operating system for any desktop, laptop or virtual machine. Chanrithy &lt;br /&gt;
crawls the web under the nick of '12rithy' and is, as he quotes himself 'mostly with the Open &lt;br /&gt;
Institute'&lt;br /&gt;
&lt;br /&gt;
As a big fan of Enlightenment myself, I ran moonOS 2 'Kachana' in a virtual machine, and I love it. &lt;br /&gt;
For all of you out there that thinks a computer, Linux, or Ubuntu for that matter always look the &lt;br /&gt;
same, you ought to try this combination of well-supported, famous linux distribution with &lt;br /&gt;
ultra-quick, shiny new window manager and Chanrithy's artwork on top - it will blow your sock off! &lt;br /&gt;
&lt;br /&gt;
I will meet Chanrithy soon and share with you more about this quick, superb, ubuntu remix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LATEST Additions to the DISTROthèque Repository:&lt;br /&gt;
&lt;br /&gt;
http://tic.zenerves.net/latest_news.html&lt;br /&gt;
&lt;br /&gt;
-MoonOS 2 &amp;quot;Kachana&amp;quot; DR17 Edition - See 'Showcase'&lt;br /&gt;
&lt;br /&gt;
-Privatix 9.03.15 - Live Linux privacy/anonymiser tool&lt;br /&gt;
&lt;br /&gt;
-AnonymOS 2006 'Chmoo' - Live NetBSD privacy/anonymiser tool for older hardware&lt;br /&gt;
&lt;br /&gt;
-Phantomix 4.02 - Live Linux privacy/anonymiser tool for older hardware&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This Week recommended READINGS:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The war between theses small kids on the tiny Linux block:&lt;br /&gt;
&lt;br /&gt;
The DamnSmallLinux view:&lt;br /&gt;
&lt;br /&gt;
http://damnsmalllinux.org/cgi-bin/forums/ikonboard.cgi?;act=ST;f=4;t=20537&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Other Side view:&lt;br /&gt;
&lt;br /&gt;
http://distrowatch.com/weekly.php?issue=20090323#feature&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Opensource isn't foolproof, idiotproof or, for that matter, ego-proof either. Let us remind that &lt;br /&gt;
lesson when the human side of us interfere with a great project.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
So, Linux isn't obscure enough for you and you want to run OpenSolaris on a netbook?&lt;br /&gt;
&lt;br /&gt;
http://www.timelordz.com/blog/?p=295&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Ok, after the quite indigestible one on Damn Small Linux, let's go to the good news:&lt;br /&gt;
&lt;br /&gt;
A new Linux Kernel is out - Linux 2.6.29 kernel released on 23 March, 2009.&lt;br /&gt;
&lt;br /&gt;
http://kernelnewbies.org/Linux_2_6_29&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 The Tropical Ice Cube - To boldly go where no penguin has gone before!&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
!! Don't Forget !!&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube always keep the 10 most important Linux Distributions available in their most &lt;br /&gt;
recent release figure - JUST ASK!&lt;br /&gt;
&lt;br /&gt;
&amp;amp;&amp;amp;&lt;br /&gt;
&lt;br /&gt;
As Ever, lots of OpenSource Software for M$ Windows too!&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Send a Text Message, Receive Linux for Free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Getting your computer running Open Source, free software has never been so easy in Phnom Penh: Just &lt;br /&gt;
 send us a Text Message from your Mobile Phone, and get the Linux Distribution of your choice, for &lt;br /&gt;
 free! &lt;br /&gt;
 &lt;br /&gt;
 Text/call me on 012 561 005 with either: &lt;br /&gt;
 &lt;br /&gt;
 * Your request for Linux distro, with pick-up yourself at my office: &lt;br /&gt;
 I will reply with street address and delay/time to pick up the disc; &lt;br /&gt;
  &lt;br /&gt;
  or &lt;br /&gt;
 &lt;br /&gt;
 * Your distro request with your street address and possible hours for delivery; &lt;br /&gt;
 cost is 1usd per disc/dvd, Business Hours best.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This newsletter brought to you by&lt;br /&gt;
&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
&lt;br /&gt;
The Tropical Ice Cube&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
twit: tropicalicecube&lt;br /&gt;
&lt;br /&gt;
web: http://tropicalicecube.zenerves.net&lt;br /&gt;
&lt;br /&gt;
mail: tic /AT\ zenerves.net&lt;br /&gt;
&lt;br /&gt;
Face: Tropicalicecube Phnompenh&lt;br /&gt;
&lt;br /&gt;
Facebook Tropical Ice Cube Group:&lt;br /&gt;
http://www.facebook.com/group.php?gid=62414700265&lt;br /&gt;
Phnom Penh Linux User Group:&lt;br /&gt;
http://groups.google.com/group/pplug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mob: 012 561 005&lt;br /&gt;
                                    &lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;Newsletter&amp;quot;  intends to be low-traffic and informative, to be sent maximum of once a week. &lt;br /&gt;
The editor chooses which groups/lists to send this newsletter to and is a member of said &lt;br /&gt;
groups/lists. If you think it is inappropriate, please bring your complaint to your group/list &lt;br /&gt;
administrator to ban me from sending to the group, but first please consider other members of the &lt;br /&gt;
group may enjoy reading it!&lt;br /&gt;
[[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Realtime_Audio_Workstation_on_Slackware</id>
		<title>Realtime Audio Workstation on Slackware</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Realtime_Audio_Workstation_on_Slackware"/>
				<updated>2011-10-14T23:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Slackware hasn't got a dependency system. here is the schematic of what you'll need to build a full Audio Workstation with Slackware&lt;br /&gt;
&lt;br /&gt;
*''' Ardour2''' ''Multitrack mixer/editor'' http://www.ardour.org&lt;br /&gt;
&lt;br /&gt;
* '''Jamin''''' Stereo Mastering Processor'' http://jamin.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
*''' Audacity''''' Stereo Recorder/Editor'' http://audacity.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
[This is also valuable information if you just want to build yourself from latest sources a complete Ardour stack on any machine.]&lt;br /&gt;
'''&lt;br /&gt;
For the Realtime kernel part, please check them here:'''&lt;br /&gt;
http://rt.wiki.kernel.org/index.php/Main_Page&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/projects/rt/&lt;br /&gt;
&lt;br /&gt;
(Don't expect your proprietary nVidia graphic drivers to work with them tough)&lt;br /&gt;
&lt;br /&gt;
==Dependency in discovery order==&lt;br /&gt;
(see below for Build Order)&lt;br /&gt;
&lt;br /&gt;
* '''Ardour''' http://slackbuilds.org/repository/13.0/audio/ardour/&lt;br /&gt;
* '''Jamin''' http://slackbuilds.org/repository/13.0/audio/jamin/&lt;br /&gt;
* '''audacity''' http://slackbuilds.org/repository/13.0/audio/audacity/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''they, in turn, require lot more of course.''&lt;br /&gt;
&lt;br /&gt;
** '''liblo''' http://slackbuilds.org/repository/13.0/libraries/liblo/&lt;br /&gt;
&lt;br /&gt;
** '''wxPython''' http://slackbuilds.org/repository/13.0/libraries/wxPython/&lt;br /&gt;
&lt;br /&gt;
** '''liblrdf''' http://slackbuilds.org/repository/13.0/libraries/liblrdf/&lt;br /&gt;
***  '''ladspa_sdk''' http://slackbuilds.org/repository/13.0/audio/ladspa_sdk/&lt;br /&gt;
&lt;br /&gt;
** '''scons''' http://slackbuilds.org/repository/13.0/development/scons/&lt;br /&gt;
*** '''python''' (by default on Slackware machines)&lt;br /&gt;
&lt;br /&gt;
** '''fftw''' http://slackbuilds.org/repository/13.0/libraries/fftw/&lt;br /&gt;
&lt;br /&gt;
** '''libsamplerate''' http://slackbuilds.org/repository/13.0/libraries/libsamplerate/&lt;br /&gt;
&lt;br /&gt;
** '''libgnomecanvas''' http://slackbuilds.org/repository/13.0/libraries/libgnomecanvas/&lt;br /&gt;
&lt;br /&gt;
** '''twolame''' http://slackbuilds.org/repository/13.0/audio/twolame/&lt;br /&gt;
&lt;br /&gt;
** '''soundtouch''' http://slackbuilds.org/repository/13.0/libraries/soundtouch/&lt;br /&gt;
*** '''libsndfile''' http://slackbuilds.org/repository/13.0/libraries/libsndfile/&lt;br /&gt;
&lt;br /&gt;
** '''jack-audio-connection-kit''' http://slackbuilds.org/repository/13.0/audio/jack-audio-connection-kit/&lt;br /&gt;
*** libsndfile&lt;br /&gt;
&lt;br /&gt;
**  '''aubio''' http://slackbuilds.org/repository/13.0/libraries/aubio/&lt;br /&gt;
*** libsndfile &lt;br /&gt;
*** libsamplerate &lt;br /&gt;
*** fftw &lt;br /&gt;
&lt;br /&gt;
** '''slv2''' http://slackbuilds.org/repository/13.0/libraries/slv2/&lt;br /&gt;
*** '''lv2core''' http://slackbuilds.org/repository/13.0/audio/lv2core/&lt;br /&gt;
&lt;br /&gt;
''You may need also, depending on your hardware and formats requirements:''&lt;br /&gt;
&lt;br /&gt;
** '''alsa-plugins'''  http://slackbuilds.org/repository/13.0/audio/alsa-plugins/&lt;br /&gt;
*** jack-audio-connection-kit &lt;br /&gt;
*** libsamplerate&lt;br /&gt;
*** '''pulseaudio''' http://slackbuilds.org/repository/13.0/audio/pulseaudio/&lt;br /&gt;
**** '''libatomic_ops''' http://slackbuilds.org/repository/13.0/libraries/libatomic_ops/&lt;br /&gt;
**** libsamplerate&lt;br /&gt;
**** libsndfile&lt;br /&gt;
**** jack-audio-connection-kit&lt;br /&gt;
&lt;br /&gt;
and:&lt;br /&gt;
**** '''ffmpeg''' http://slackbuilds.org/repository/13.0/multimedia/ffmpeg/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==notes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Pulseaudio will need a pulse group/user to run. You can add one with&lt;br /&gt;
 # groupadd -g 214 pulse&lt;br /&gt;
 # useradd -u 214 -g pulse -d /var/lib/pulse pulse&lt;br /&gt;
 or something similar. See http://slackbuilds.org/uid_gid.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 jackd has to run with realtime priviledges. One way to do this on Slackware would&lt;br /&gt;
 be to use set_rlimits. Since 12.2 there's another way, though experimental. If&lt;br /&gt;
 you have a filesystem that supports posix capabilities (reiserfs does not), you&lt;br /&gt;
 can grant jackd the rights to run in realtime mode, even when started as normal user&lt;br /&gt;
 with the following command: ''setcap cap_ipc_lock,cap_sys_nice=ep /usr/bin/jackd''&lt;br /&gt;
&lt;br /&gt;
==Build Order==&lt;br /&gt;
(Merely suggested; it'll do no good to either of us if you drag me in front of a court on that)&lt;br /&gt;
&lt;br /&gt;
DzihQg  &amp;lt;a href=&amp;quot;http://wcupkarrwbsf.com/&amp;quot;&amp;gt;wcupkarrwbsf&amp;lt;/a&amp;gt;, [url=http://ggtmadxocmsf.com/]ggtmadxocmsf[/url], [link=http://drdzqsiueugq.com/]drdzqsiueugq[/link], http://tmqfaouiusbe.com/&lt;br /&gt;
&lt;br /&gt;
 http://www.panzavidela.com/ acomplia 529246 http://www.obsessedwithbroadway.com/ meridia 4549 http://www.standrewsvillageblog.com/lexotan.html lexotan 8P http://www.gerryggriffin.com/xanax xanax overnight :PP&lt;br /&gt;
&lt;br /&gt;
===Extra Helpers===&lt;br /&gt;
* aubio &lt;br /&gt;
* liblrdf&lt;br /&gt;
* slv2&lt;br /&gt;
&lt;br /&gt;
EzPJlk  &amp;lt;a href=&amp;quot;http://pdownhfypngi.com/&amp;quot;&amp;gt;pdownhfypngi&amp;lt;/a&amp;gt;, [url=http://dyyvplrorjgh.com/]dyyvplrorjgh[/url], [link=http://dqbirreklhfl.com/]dqbirreklhfl[/link], http://qmebogpotdud.com/&lt;br /&gt;
&lt;br /&gt;
 http://www.faisonsle.com/prosom prosom =-] http://www.calciofossacesia.com/ valium hlcxxv http://www.calciofossacesia.com/xanax.html buy xanax in florida =[[ http://www.christinelegrandphotography.com/ buy 150 tramadol =-[&lt;br /&gt;
&lt;br /&gt;
===Proper Sound Software :)===&lt;br /&gt;
* Ardour&lt;br /&gt;
* Jamin&lt;br /&gt;
* audacity&lt;br /&gt;
&lt;br /&gt;
(Of course, you could just use http://www.ubuntustudio.com which has everything, including an excellent RT kernel working out of the box.)&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Howtos</id>
		<title>Howtos</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Howtos"/>
				<updated>2011-10-14T23:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''these are more recipes, or even just sample of CLI that works in real life.''&lt;br /&gt;
&lt;br /&gt;
add a group to user: &lt;br /&gt;
 &lt;br /&gt;
 sudo gpasswd -a &amp;lt;user&amp;gt; &amp;lt;group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
make a sudo command works without passwd&lt;br /&gt;
&lt;br /&gt;
 $USERNAME ALL=NOPASSWD:/path/to/app&lt;br /&gt;
&lt;br /&gt;
Try to get a flick from your computer to a [[DVD]]&lt;br /&gt;
&lt;br /&gt;
Start [[X when Log in]] occurs&lt;br /&gt;
&lt;br /&gt;
Running [[another X session]] somewhere else.&lt;br /&gt;
&lt;br /&gt;
The Short Dirty [[Kernel DIY]]&lt;br /&gt;
&lt;br /&gt;
Mount [[mtp]] devices&lt;br /&gt;
&lt;br /&gt;
Remember [[AlsaMixer]] settings&lt;br /&gt;
&lt;br /&gt;
I love [[Grub1]] (Grub 'legacy' now)&lt;br /&gt;
&lt;br /&gt;
A word on [[SLIM]]&lt;br /&gt;
&lt;br /&gt;
Use curl to [[tweet]].&lt;br /&gt;
&lt;br /&gt;
Using the CLI to [[burn]] an .iso cd.&lt;br /&gt;
&lt;br /&gt;
[[find]] stuff.&lt;br /&gt;
&lt;br /&gt;
ffmpeg to convert [[videos for my phone]].&lt;br /&gt;
&lt;br /&gt;
Allow '''sudo''' to [[open up]] a graphic application as &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.mycaal.com/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;loan modification&amp;lt;/span&amp;gt;] root from your normal user account or from a root terminal in your normal user account&lt;br /&gt;
&lt;br /&gt;
remount a ro filesystem rw: '''mount -o remount,rw''' so that when the system drops you to a shell on boot failure, YOU CAN DO SOMETHING FOR FUCK'S SAKE! And no, it is not in '''man 8 mount''', it isn't.&lt;br /&gt;
&lt;br /&gt;
Connect remotely to a [[VirtualMachine]] - how arch-cool is that?&lt;br /&gt;
&lt;br /&gt;
Simple '''[[rsync]] '''line that works here&lt;br /&gt;
   &lt;br /&gt;
MPlayer code to listen to [[France Inter]] and other radios, Now, '''radiotray''' is cool too.&lt;br /&gt;
&lt;br /&gt;
MPlayer code to watch my [[QuickCam Communicate STX Webcam]]&lt;br /&gt;
&lt;br /&gt;
A healthy, fast image gallery starts with reasonably-sized pictures: thanks [[imagemagick]]!&lt;br /&gt;
&lt;br /&gt;
Cool [[ssh]]&lt;br /&gt;
&lt;br /&gt;
[[vnc]] is flawless in Fedora :)&lt;br /&gt;
&lt;br /&gt;
[[throttling]] the cpu - mixed results, if for battery life.&lt;br /&gt;
&lt;br /&gt;
Custom [[Bash]] - Some Terminal Fun&lt;br /&gt;
&lt;br /&gt;
Calculating [[Pi]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Aspire_One</id>
		<title>Aspire One</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Aspire_One"/>
				<updated>2011-10-14T23:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==News==&lt;br /&gt;
&lt;br /&gt;
We bough a 320USD Acer Aspire One, cheap Linpus edition but with the 160Gb drive alas, and only a three-cell battery: Neat, fine, small, elegant; it doesn't shout &amp;quot;CHEAP&amp;quot; like all these Asus out there. Actually, it's classier and seemingly better built than my 1.000USD Core2Duo laptop... Sitting next to an EeePC 701, those Eee are well built I must say, with a 'serious' mat-black, angled look. I see why my wife prefers the Acer, and why I find the very little Asus arch-cool.&lt;br /&gt;
&lt;br /&gt;
Back to the Aspire One, the original Linpus agenda: The PITA effect:&lt;br /&gt;
&lt;br /&gt;
After the Fedora Servers compromission one or two years ago, they had to move stuff around and renew their GPG keys, rename their repos and all that... But some HowTos out there on the net date back to before that, since Linpus is based on the now deprecated Fedora 8... And so lots of dependencies went broken because you try to follow instructions, believe a repository is available but is not: You need to install  the new fedora-release package like this:&lt;br /&gt;
&lt;br /&gt;
  sudo yum install fedora-release&lt;br /&gt;
&lt;br /&gt;
So the issue is that most post from before the 'invasion' will guide you through false information on how to retrieve for instance VLC; some later posts just assumed there was the usual limitation regarding non free software and push you to install extra repos that will be out of sync, hence unable to find dependencies, anyway.&lt;br /&gt;
&lt;br /&gt;
And for your own sake, use common sense: I've seen a post out there saying that Linpus is build out of Fedora 7 but it's not, it's Fedora 8! Go to rpm.livna.org and follow the actual info from the actual provider rather than contradictory posts in any 'netbook rage' forum. And that is, only if you want something that is not available in the base repos.&lt;br /&gt;
&lt;br /&gt;
==More Software==&lt;br /&gt;
&lt;br /&gt;
Installed: &lt;br /&gt;
*livna &amp;amp; Fusion repos (free and non free + fedora-release) - repos for more, non free, software.&lt;br /&gt;
*mlocate - find files by their name, maintain a database of files in your system.&lt;br /&gt;
*VLC - best media player out there (I love MPlayer usually, dunno why the Linpus one isn't as good).&lt;br /&gt;
*yumex - less obfuscated package management software.&lt;br /&gt;
*openssh - remotely access your computer from a terminal.&lt;br /&gt;
*gFTP - transfer files from a computer to another or a server.&lt;br /&gt;
*Skype - Hey, I live 8.000km away from family and friends, I don't care it's not Open Source.&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
&lt;br /&gt;
http://www.aspireoneuser.com/forum/&lt;br /&gt;
&lt;br /&gt;
http://forum.videolan.org/viewtopic.php?f=13&amp;amp;t=48759&lt;br /&gt;
&lt;br /&gt;
http://www.linuxforums.org/forum/linux-applications/135584-vlc-acer-aspire-one.html&lt;br /&gt;
&lt;br /&gt;
http://rpm.livna.org/livna-release-8.rpm&lt;br /&gt;
&lt;br /&gt;
http://tnkgrl.wordpress.com/2008/08/14/modding-the-acer-aspire-one-bluetooth/&lt;br /&gt;
&lt;br /&gt;
http://tnkgrl.wordpress.com/2008/10/28/modding-the-acer-aspire-one-hsdpa/&lt;br /&gt;
&lt;br /&gt;
==Cool==&lt;br /&gt;
&lt;br /&gt;
Screen incredibly bright. Cool keyboard for the size.&lt;br /&gt;
&lt;br /&gt;
WebRadio works, be it&lt;br /&gt;
&lt;br /&gt;
 mplayer http://mp3.live.tv-radio.com/franceinter/all/franceinter-32k.mp3&lt;br /&gt;
&lt;br /&gt;
or just plain with VLC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.avi, .mpg, .mkv and .flv video works, but ''without'' the xfce compositor&lt;br /&gt;
&lt;br /&gt;
Skype works (so far) with webcam - but these tends to brake down right when you need it so...&lt;br /&gt;
&lt;br /&gt;
The Update process wasn't Data-Plan Melting, but then I don't update stuff that works, only the ones I read about having a documented failure or softs that doesn't behave as expected.&lt;br /&gt;
&lt;br /&gt;
The RecoveryProcess over USB works, albeit not from SD&lt;br /&gt;
&lt;br /&gt;
==Issues==&lt;br /&gt;
*Temperamental WiFi, transmitter works when it feels like (documented hardware issue).&lt;br /&gt;
*No out-of-the-box VNC or SSH server, as if no one would try to work on the One from the comfort of a larger machine.&lt;br /&gt;
*No out-of-the-box support for 3G/GPRS cellphones as modems.&lt;br /&gt;
*No external indication of sleep/off status; the On button glows orange but is hidden beneath the lid. Stupid, since:&lt;br /&gt;
*Lid sometimes doesn't put the pc asleep, need to 'suspend' manually to be sure.&lt;br /&gt;
*Lame battery, battery life.&lt;br /&gt;
*Dubious on-line vendors of larger batteries have track record of selling mislabeled higher capacity ones.&lt;br /&gt;
*Compositor kills video, webcam image.&lt;br /&gt;
*Sound too low, no power from internal loudspeakers.&lt;br /&gt;
*Screen can't be dimmed enough (Documented hardware/bios issue).&lt;br /&gt;
*Can't recover from SD, it's an USB Flashdrive affair only.&lt;br /&gt;
*Very noisy fan (documented hardware issue).&lt;br /&gt;
*Software versions quite old (Fedora8): Firefox 2 &amp;amp; so on; obviously very few updates provided by Acer/Linpus (although the full Fedora8 stack is still available, but isn't updated anymore).&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Fedora9_xorg</id>
		<title>Fedora9 xorg</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Fedora9_xorg"/>
				<updated>2011-10-14T23:41:13Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; # Xorg configuration created by pyxf86config, modded dy fa9 with help from&lt;br /&gt;
 # http://forums.fedoraforum.org/showthread.php?t=197408&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
   Identifier &amp;quot;Default Layout&amp;quot;&lt;br /&gt;
   Screen 0 &amp;quot;Screen0&amp;quot; 0 0&lt;br /&gt;
   InputDevice &amp;quot;Keyboard0&amp;quot; &amp;quot;CoreKeyboard&amp;quot;&lt;br /&gt;
   InputDevice &amp;quot;Synaptics&amp;quot; &amp;quot;CorePointer&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
   Identifier &amp;quot;Keyboard0&amp;quot;&lt;br /&gt;
   Driver &amp;quot;kbd&amp;quot;&lt;br /&gt;
   Option &amp;quot;XkbModel&amp;quot; &amp;quot;pc105&amp;quot;&lt;br /&gt;
   Option &amp;quot;XkbLayout&amp;quot; &amp;quot;us&amp;quot;&lt;br /&gt;
 EndSection &lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
   Identifier &amp;quot;Synaptics&amp;quot;&lt;br /&gt;
   Driver &amp;quot;synaptics&amp;quot;&lt;br /&gt;
   Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
   Option &amp;quot;TapButton1&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
   Option &amp;quot;TapButton2&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
   Option &amp;quot;TapButton3&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
   Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/mice&amp;quot;&lt;br /&gt;
   Option &amp;quot;Protocol&amp;quot; &amp;quot;auto-dev&amp;quot;&lt;br /&gt;
   Option &amp;quot;Emulate3Buttons&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
   Option &amp;quot;SHMConfig&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;Screen0&amp;quot;&lt;br /&gt;
        Device     &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
        DefaultDepth     24&lt;br /&gt;
        SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
                Viewport   0 0&lt;br /&gt;
                Depth     24&lt;br /&gt;
        EndSubSection&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
[[Fedora 9 issues]] - [[Linux]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Fedora_9_powertop_results</id>
		<title>Fedora 9 powertop results</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Fedora_9_powertop_results"/>
				<updated>2011-10-14T23:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;     PowerTOP version 1.9       (C) 2007 Intel Corporation&lt;br /&gt;
&lt;br /&gt;
 Cn                Avg residency       P-states (frequencies)&lt;br /&gt;
 C0 (cpu running)        (12.0%)         2.11 Ghz    28.2%&lt;br /&gt;
 C1                0.0ms ( 0.0%)         1.60 Ghz     1.0%&lt;br /&gt;
 C2                0.2ms ( 0.6%)         1200 Mhz     0.8%&lt;br /&gt;
 C3                1.6ms (87.3%)          800 Mhz    70.0%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wakeups-from-idle per second : 568.1    interval: 15.0s&lt;br /&gt;
&lt;br /&gt;
Power usage (ACPI estimate): 16.1W (1.9 hours)&lt;br /&gt;
&lt;br /&gt;
 Top causes for wakeups:&lt;br /&gt;
  70.6% (406.2)       &amp;lt;interrupt&amp;gt; : PS/2 keyboard/mouse/touchpad &lt;br /&gt;
  14.8% ( 85.4)      &amp;lt;kernel IPI&amp;gt; : Rescheduling interrupts &lt;br /&gt;
   3.6% ( 20.9)              Xorg : schedule_timeout (process_timeout) &lt;br /&gt;
   2.6% ( 14.8)       &amp;lt;interrupt&amp;gt; : iwl3945 &lt;br /&gt;
   1.7% (  9.8)       &amp;lt;interrupt&amp;gt; : ata_piix&lt;br /&gt;
   1.3% (  7.6)       &amp;lt;interrupt&amp;gt; : ehci_hcd:usb2, uhci_hcd:usb5&lt;br /&gt;
   1.2% (  6.8)    gnome-terminal : schedule_timeout (process_timeout)&lt;br /&gt;
   1.0% (  6.0)   USB device  2-6 : USB2.0-CRW (Generic)&lt;br /&gt;
   0.9% (  5.0)   gnome-system-mo : schedule_timeout (process_timeout)&lt;br /&gt;
   0.4% (  2.4)       &amp;lt;interrupt&amp;gt; : acpi&lt;br /&gt;
   0.2% (  1.1)   &amp;lt;kernel module&amp;gt; : neigh_table_init_no_netlink (neigh_periodic_timer)&lt;br /&gt;
   0.2% (  1.0)    cpufreq-applet : schedule_timeout (process_timeout)&lt;br /&gt;
   0.2% (  0.9)   hald-addon-stor : schedule_timeout (process_timeout)&lt;br /&gt;
   0.2% (  0.9)     &amp;lt;kernel core&amp;gt; : ehci_work (ehci_watchdog)&lt;br /&gt;
   0.1% (  0.6)       &amp;lt;interrupt&amp;gt; : ahci&lt;br /&gt;
   0.1% (  0.5)           iwl3945 : ieee80211_sta_work (ieee80211_sta_timer)&lt;br /&gt;
&lt;br /&gt;
Suggestion: Disable 'hal' from polling your cdrom with: &lt;br /&gt;
&lt;br /&gt;
  hal-disable-polling --device /dev/scd0 &lt;br /&gt;
&lt;br /&gt;
'hal' is the component that auto-opens a window if you plug in a CD but disables SATA power saving from kicking in.&lt;br /&gt;
&lt;br /&gt;
 Q - Quit   R - Refresh   K - kill hald-addon-storage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ASUS F9E-2P174&lt;br /&gt;
 Intel Core 2 Duo T8100 2.1GHz, &lt;br /&gt;
 1GB RAM, 120GB HDD, &lt;br /&gt;
 VGA Intel GMA X3100, &lt;br /&gt;
 12.1 inch screen&lt;br /&gt;
&lt;br /&gt;
[fa9@asus ~]$ uname -a&lt;br /&gt;
  Linux asus 2.6.25.14-108.fc9.i686 #1 SMP Mon Aug 4 14:08:11 EDT 2008 i686 i686 i386 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
As Normal, laptop was at '''16v''' something&lt;br /&gt;
&lt;br /&gt;
==writeback==&lt;br /&gt;
Suggestion: increase the VM dirty writeback time from 4.99 to 15 seconds with:&lt;br /&gt;
&lt;br /&gt;
  echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&lt;br /&gt;
This wakes the disk up less frequenty for background VM activity&lt;br /&gt;
&lt;br /&gt;
so to reverse this I guess you'd do&lt;br /&gt;
&lt;br /&gt;
  echo 500 &amp;gt; /proc/sys/vm/dirty_writeback_centisec&lt;br /&gt;
&lt;br /&gt;
'''|Done, no visible change|'''&lt;br /&gt;
&lt;br /&gt;
==OpticalDrivePolling==&lt;br /&gt;
Suggestion: Disable 'hal' from polling your cdrom with:&lt;br /&gt;
&lt;br /&gt;
  hal-disable-polling --device /dev/scd0&lt;br /&gt;
&lt;br /&gt;
'hal' is the component that auto-opens a window if you plug in a CD but disables SATA power saving from kicking in.&lt;br /&gt;
&lt;br /&gt;
to revert, I assume it will be:&lt;br /&gt;
&lt;br /&gt;
  hal-disable-polling --device /dev/scd0&lt;br /&gt;
&lt;br /&gt;
'''|Done, not much changes either''', keeps on complaining I should diable but it's done already and reported as such by my system|&lt;br /&gt;
&lt;br /&gt;
==Spare some on the HDD==&lt;br /&gt;
Suggestion: Enable SATA ALPM link power management via:&lt;br /&gt;
&lt;br /&gt;
  echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
&lt;br /&gt;
How to reverese this one??? echo '''max'''_power looks delirious...&lt;br /&gt;
&lt;br /&gt;
'''|Done anyway, won a full half volt out of it. Cool|'''&lt;br /&gt;
&lt;br /&gt;
==End Result==&lt;br /&gt;
&lt;br /&gt;
Now around '''13.5v''' I am NOT happy with this lappie. 2 hours to 2.5 if lucky hours max.&lt;br /&gt;
&lt;br /&gt;
powertop says&lt;br /&gt;
 &lt;br /&gt;
 Power usage (ACPI estimate): 13.0W (3.0 hours)&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Gentoo</id>
		<title>Gentoo</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Gentoo"/>
				<updated>2011-10-14T23:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A full Gentoo install is 20G. I have 10...&lt;br /&gt;
&lt;br /&gt;
=Let's do it.=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Nice graphics. That you have plenty of time to admire: it's really slow to boot.&lt;br /&gt;
*Installer greets with cheap music... Happily, the music player stops soon after (crashes?)&lt;br /&gt;
*Installer crashes, inactive cursor top of lack screen? No other console available.&lt;br /&gt;
&lt;br /&gt;
Let's get myself a drink, give it a chance while I run upstairs... F**ck.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Reboot=&lt;br /&gt;
&lt;br /&gt;
*Can't find proper video mode, reboots in console mode (at least Ican follow...)&lt;br /&gt;
*Select keymap&lt;br /&gt;
*Music Fails with amixer complaining... Then starts anyway. Urgh.&lt;br /&gt;
*Switching to X11 with openGL... &lt;br /&gt;
*Goes KDE!!!!!&lt;br /&gt;
&lt;br /&gt;
AAAaargh... Life is a bitch and then you die. Forget a live KDE with 1G of Ram.&lt;br /&gt;
&lt;br /&gt;
=Reboot=&lt;br /&gt;
&lt;br /&gt;
Can't do anyhting with KDE. one more time... 64bits kernel still in limbo with console fonts.&lt;br /&gt;
&lt;br /&gt;
Hilarious: boot in Live mode, there'sn't a thing to install Gentoo. Notice that e16 is on board.&lt;br /&gt;
&lt;br /&gt;
WICD can't work with my WPA-protected wireless.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Reboot= &lt;br /&gt;
 &lt;br /&gt;
 reading this:&lt;br /&gt;
 http://www.gentoo.org/doc/en/gentoo-x86-quickinstall.xml&lt;br /&gt;
&lt;br /&gt;
'''Fuck it, I drop the ball.'''&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Newsletters</id>
		<title>Newsletters</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Newsletters"/>
				<updated>2011-10-14T23:39:44Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[TIC14  09/04/22 - 15:24 TIC Newsletter #14: 400 microscopic penguins on my desk!]]&lt;br /&gt;
&lt;br /&gt;
[[TIC13  09/04/08 - 16:14 TIC Newsletter #13: Penguins Save Drives!]]&lt;br /&gt;
&lt;br /&gt;
[[09/03/25 - TIC Newsletter 12: Small Penguins and Discrete Devils]]&lt;br /&gt;
&lt;br /&gt;
[[TIC11  09/03/18 - 12:21 Tropical Ice Cube Newsletter #11: Penguins are everywhere!]]&lt;br /&gt;
&lt;br /&gt;
[[TIC10  09/03/11 - 11:59 Tropical Ice Cube Newsletter #10: Taming the Penguin!]]&lt;br /&gt;
&lt;br /&gt;
[[TIC9 - 09/03/03 - 17:24 Tropical Ice Cube Newsletter #9: Refresh your Computer!]]&lt;br /&gt;
&lt;br /&gt;
[[TIC8 - 09/02/25 - 09:21 Tropical Ice Cube Newsletter #8: Not The NewsLetter]]&lt;br /&gt;
&lt;br /&gt;
[[TIC7 - 09/02/16 - 11:19 Tropical Ice Cube Newsletter #7: A Flurry of News!]]&lt;br /&gt;
&lt;br /&gt;
[[TIC6 - 09/02/09 - 16:29 Tropical Ice Cube Newsletter #6: Moving Forward]]&lt;br /&gt;
&lt;br /&gt;
[[TIC5 - 09/02/02 - 15:22 Tropical Ice Cube Newsletter #5: More Specials of the Week]]&lt;br /&gt;
&lt;br /&gt;
[[TIC4 - 09/01/19 - 14:17 Tropical Ice Cube Newsletter #4: Free, Khmer and Open.]]&lt;br /&gt;
&lt;br /&gt;
[[TIC3 - 09/01/12 - 11:19 Tropical Ice Cube Newsletter #3: Micro$oft to get the Open Source treatment!]]&lt;br /&gt;
&lt;br /&gt;
[[TIC2 - 09/01/05 - 11:05 Tropical Ice Cube Newsletter #2: Seasons' greetings!]]&lt;br /&gt;
&lt;br /&gt;
[[TIC1 - 08/12/26 - 12:28 Tropical Ice Cube Newsletter #1: We have Lift Off! ]]&lt;br /&gt;
&lt;br /&gt;
==It all started with...==&lt;br /&gt;
&lt;br /&gt;
Hi Lists;&lt;br /&gt;
&lt;br /&gt;
For anyone interested but short on bandwidth, I have the following&lt;br /&gt;
up-to-date distros available:&lt;br /&gt;
&lt;br /&gt;
Home/Home Office:&lt;br /&gt;
- UBUNTU 8.10 in i386 and x64&lt;br /&gt;
- FEDORA 10 in x64 both LiveCD AND install DVD.&lt;br /&gt;
&lt;br /&gt;
Office:&lt;br /&gt;
- CentOS 5.2 i386 install DVD&lt;br /&gt;
- Mandriva 2008 i386 install DVD&lt;br /&gt;
&lt;br /&gt;
The Fedora Live CD doesn't feature OpenOffice, so it's more a test&lt;br /&gt;
tool/demo tool for your hardware than a concrete install solution.&lt;br /&gt;
&lt;br /&gt;
Anybody interested in a particular distro may request it, expect 3&lt;br /&gt;
days for a CD and 9 for a DVD.&lt;br /&gt;
&lt;br /&gt;
I always keep my old install/demo discs at hand, so if you need to&lt;br /&gt;
re-install a fresh software stack on older hardware, just ask here.&lt;br /&gt;
[For reference this is being written on a 8 years old P4 1.6 with&lt;br /&gt;
512RAM that is very slightly sluggish under Fedora9 but was excellent&lt;br /&gt;
with openSUSE 10.1 and Fedora7]&lt;br /&gt;
&lt;br /&gt;
I am thinking of formalising an AdvocacyThingy one way or another, for&lt;br /&gt;
now, let's say:&lt;br /&gt;
&lt;br /&gt;
-Single CD's or DVD's of any distro are free if you pick up from my&lt;br /&gt;
office (next to Pencil/SOS Clinic);&lt;br /&gt;
-I can have them delivered to your door in PP for US$ 1;&lt;br /&gt;
-&amp;quot;Test Your Hardware&amp;quot; service for free in my office: come with your&lt;br /&gt;
laptop &amp;amp; try any Linux flavour you'd like without touching your hard&lt;br /&gt;
drive. A full install may be done in less than 2 hours.&lt;br /&gt;
&lt;br /&gt;
And Soon I want to:&lt;br /&gt;
-Put an online repository of my distros archive - I do have a lot actually.&lt;br /&gt;
&lt;br /&gt;
I am thinking of calling it &amp;quot;The Tropical Ice Cube Club&amp;quot; 'cause it'll&lt;br /&gt;
be a refuge for all sorts of Penguins :) Doesn't sound serious, I&lt;br /&gt;
know.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cheers fellow nerds'n'nixers&lt;br /&gt;
&lt;br /&gt;
Jean-Philippe Monteiro&lt;br /&gt;
Free Software Advocate&lt;br /&gt;
012 561 005&lt;br /&gt;
[[Category:NewsLetters]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Open_up</id>
		<title>Open up</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Open_up"/>
				<updated>2011-10-14T23:38:33Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &lt;br /&gt;
 echo $DISPLAY                                # you'll be needing this value 3 lines below&lt;br /&gt;
 sudo -i                                      # or &amp;quot;su -&amp;quot; on older linuxes&lt;br /&gt;
 xauth merge ~''&amp;lt;YourUserNameHere&amp;gt;/.Xauthority''  # use your own username here with ~ in front&lt;br /&gt;
 export DISPLAY=''&amp;lt;ValueGatheredBefore&amp;gt;''         # use the value of user's DISPLAY from 3 lines before&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Source: http://alien.slackbook.org/dokuwiki/doku.php?id=linux:kernelbuilding&lt;br /&gt;
&lt;br /&gt;
'''Real Life Sample:'''&lt;br /&gt;
&lt;br /&gt;
''My machine is called DC266; my user is jslack and looks like that:'' &amp;lt;(^_^)&amp;gt; ''in a terminal'' :)&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;(^_^)&amp;gt; ~ echo $DISPLAY&lt;br /&gt;
  ''':0.0'''&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;(^_^)&amp;gt; ~ sudo -i&lt;br /&gt;
  Password:&lt;br /&gt;
 &lt;br /&gt;
  root@DC266:~# &lt;br /&gt;
&lt;br /&gt;
  root@DC266:~# xauth merge ~jslack/.Xauthority&lt;br /&gt;
  xauth:  '''creating new '''authority file /root/.Xauthority&lt;br /&gt;
&lt;br /&gt;
  root@DC266:~# export DISPLAY=''':0.0'''&lt;br /&gt;
  root@DC266:~# echo $DISPLAY      &lt;br /&gt;
  ''':0.0'''&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Random</id>
		<title>Random</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Random"/>
				<updated>2011-10-14T23:37:21Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Random Moves adds something very subtle to your bot; for any animal creation they are essential I believe; let's have a look at the basic syntax: &lt;br /&gt;
&lt;br /&gt;
 task main()              // Start of Code&lt;br /&gt;
 {&lt;br /&gt;
   while(true)            // This just tells the snippet to go on ad on forever, since ther is nothing else to counter the ''while'' statement.&lt;br /&gt;
   {&lt;br /&gt;
     OnFwd(OUT_AC, 75);   // Forward @ 75% of power&lt;br /&gt;
     Wait(Random(600));   // For a duration random between 0 to 0.6 secs&lt;br /&gt;
     OnRev(OUT_A, 75);    // Then Backwards,&lt;br /&gt;
     Wait(Random(400));   // For a random something between 0 and 0.4 secs.&lt;br /&gt;
   }                      // Mind the { and }  or it won't compile; '''kate''' would help you with colour and lines joining them&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You'll notice this is quite simple: instead of giving a time parameter, you'll just write down Random(Field of Randomness) instead; In the above sample the 'Bot will go forward for any time between 0 to 600 millsecs, then go back for any value between 0 to 400 millisecs; That will give it a quite drunken behaviour!&lt;br /&gt;
&lt;br /&gt;
If for calculation purpose, you need Real Full Blown Randowness, just write Random() this will return anything from -infinite to +infinite; it's actually your best shot at a &amp;quot;flip the coin&amp;quot; decision-making process&lt;br /&gt;
&lt;br /&gt;
Randomization can be used at any place any figure would be entered, so Speed is a valid option too. And, last but not least, a random output can be a [[Integer]] too, let's re-work the simple script above to More randomness, with [[Integers]]:&lt;br /&gt;
&lt;br /&gt;
 int move_time, turn_time;         //Define some integers&lt;br /&gt;
 int fwd_speed, bck_speed;         //Define some integers&lt;br /&gt;
 &lt;br /&gt;
 task main()                       // Start of Code&lt;br /&gt;
 {&lt;br /&gt;
   while(true)                     // This just tells the snippet to go on ad on forever&lt;br /&gt;
   {&lt;br /&gt;
     move_time = Random(600);      // random between 0 to 0.6 secs&lt;br /&gt;
     turn_time = Random(400);      // For a random something between 0 and 0.4 secs.&lt;br /&gt;
     fwd_speed = Random(90);       // random between 0 to 90% power&lt;br /&gt;
     bck_speed = Random(70);       // random between 0 to 70% power&lt;br /&gt;
 &lt;br /&gt;
     OnFwd(OUT_AC, fwd_speed);     // See '''fwd_speed = Random(90);'''&lt;br /&gt;
     Wait(move_time);              // See '''move_time = Random(600);'''&lt;br /&gt;
     OnRev(OUT_A, bck_speed);      // See '''bck_speed = Random(70); '''&lt;br /&gt;
     Wait(turn_time);              // See '''turn_time = Random(400);'''&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
That's it, the Thing will go forward at a random speed between 0 and 90% of power for a random amount of time included between 0 to 0.6 seconds, and quite the same, while with slightly different values, will happen backwards too.&lt;br /&gt;
&lt;br /&gt;
Now that poses athreat: Immobilism; all this randomness may well generate values of ''Zero'' and your 'bot won'yt move, whis isn't fun.&lt;br /&gt;
&lt;br /&gt;
For your next Lessons on Randomness, may I suggest you head over [[Drunken tribot v1|here]], [[Drunken tribot v2|here]] and [[Drunken tribot v3|there]]?&lt;br /&gt;
&lt;br /&gt;
See you again on our Not Quite Encyclopedic resource.&lt;br /&gt;
[[Category:NXT]] [[Category:Snippets]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=RealTime</id>
		<title>RealTime</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=RealTime"/>
				<updated>2011-10-14T23:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Do this in Linux DC266 2.6.28-3-rt #12-Ubuntu SMP PREEMPT [] x86_64 GNU/Linux:&lt;br /&gt;
&lt;br /&gt;
 noise@DC266:~/Public$ ./cyclictest -p 20 -t 5 -n -D 60&lt;br /&gt;
&lt;br /&gt;
Get this:&lt;br /&gt;
&lt;br /&gt;
 policy: fifo: loadavg: 2.57 2.48 1.60 3/258 9442           &lt;br /&gt;
 &lt;br /&gt;
 T: 0 ( 8960) P:20 I:1000 C:  59000 Min:      2 Act:    2 Avg:    2 Max:      12&lt;br /&gt;
 T: 1 ( 8961) P:19 I:1500 C:  39306 Min:      2 Act:    3 Avg:    2 Max:      11&lt;br /&gt;
 T: 2 ( 8962) P:18 I:2000 C:  29495 Min:      2 Act:    2 Avg:    2 Max:      13&lt;br /&gt;
 T: 3 ( 8963) P:17 I:2500 C:  23592 Min:      2 Act:    3 Avg:    2 Max:      12&lt;br /&gt;
 T: 4 ( 8964) P:16 I:3000 C:  19656 Min:      2 Act:    2 Avg:    2 Max:      13&lt;br /&gt;
&lt;br /&gt;
on the rt kernel of ustudio in 64bit&lt;br /&gt;
&lt;br /&gt;
Do this in Linux DC266 2.6.30-homebrew #3 SMP PREEMPT [] i686 Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz GenuineIntel GNU/Linux:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;(^_^)&amp;gt; rt-test sudo ./cyclictest -p 20 -t 5 -n -D 60&lt;br /&gt;
&lt;br /&gt;
Get this:&lt;br /&gt;
&lt;br /&gt;
 policy: fifo: loadavg: 1.94 0.79 0.34 3/146 3709          &lt;br /&gt;
 &lt;br /&gt;
 T: 0 ( 3705) P:20 I:1000 C:  58975 Min:      1 Act:    2 Avg:    2 Max:      57&lt;br /&gt;
 T: 1 ( 3706) P:19 I:1500 C:  39333 Min:      2 Act:    2 Avg:    2 Max:       9&lt;br /&gt;
 T: 2 ( 3707) P:18 I:2000 C:  29487 Min:      2 Act:    2 Avg:    2 Max:       7&lt;br /&gt;
 T: 3 ( 3708) P:17 I:2500 C:  23575 Min:      1 Act:    2 Avg:    2 Max:      42&lt;br /&gt;
 T: 4 ( 3709) P:16 I:3000 C:  19658 Min:      1 Act:    2 Avg:    2 Max:       5&lt;br /&gt;
&lt;br /&gt;
on the homebrew 2.6.30 I did a few weeks ago&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
refs/links:&lt;br /&gt;
&lt;br /&gt;
* http://paulsundvall.blogspot.com/2008/11/compile-realtime-kernel-in-debian-lenny.html&lt;br /&gt;
* http://rt.wiki.kernel.org/index.php/Main_Page&lt;br /&gt;
* http://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO&lt;br /&gt;
* http://rt.wiki.kernel.org/index.php/Ketchup&lt;br /&gt;
* http://paulsundvall.blogspot.com/2008/11/kompilera-cyclictest.html&lt;br /&gt;
* http://alien.slackbook.org/dokuwiki/doku.php?id=linux:kernelbuilding &lt;br /&gt;
* http://alien.slackbook.org/blog/calculating-pi/&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Rex</id>
		<title>Rex</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Rex"/>
				<updated>2011-10-14T23:36:14Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NXC program to run Alpha-rex from the base NXT set.'''&lt;br /&gt;
&lt;br /&gt;
 Instructions to build '''Rex''' are [http://pics.zenerves.net/index.php?gallery=linux/NXT/AlphaRex here]&lt;br /&gt;
&lt;br /&gt;
Graham Hawkins (29 Jan 2007)&lt;br /&gt;
&lt;br /&gt;
Performs the tasks set in the 'Test Guide' sections of the&lt;br /&gt;
construction pane of the Mindstorms NXT-G for Alpha-Rex:&lt;br /&gt;
&lt;br /&gt;
1. Walk from the start of the rest pad to the ball &amp;amp; back. Actually&lt;br /&gt;
it keeps walking in loops ad infinitum.&lt;br /&gt;
&lt;br /&gt;
2. Display beating heart.&lt;br /&gt;
&lt;br /&gt;
3. Say 'hello' when something comes near to the US sensor, and&lt;br /&gt;
'goodbye' when it goes away.&lt;br /&gt;
&lt;br /&gt;
4. Say 'Play music please' when touch sensor operated. Then dance if&lt;br /&gt;
loud noise detected.&lt;br /&gt;
&lt;br /&gt;
5. Go to sleep when the lights go out, wake up when they come on.&lt;br /&gt;
Movements are performed as an integer number of 'steps' to try and&lt;br /&gt;
keep the 'lift' and 'pace' actions in phase as per pages 46-49 of&lt;br /&gt;
the building guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 //Some Constants:&lt;br /&gt;
 &lt;br /&gt;
 #define MY_ONE_STEP       1080  //Motor has an 8 tooth gear. Leg drive has a 24 tooth gear. So 1 step is 360*24/8 degrees = 1080&lt;br /&gt;
 #define MY_STEPS_TO_BALL    11  //Each step is about 4.25cm. The ball is about 50cm up the test pad from the start position, so that's about 11 steps. &lt;br /&gt;
 &lt;br /&gt;
  // ...YMMV depending on friction...&lt;br /&gt;
 &lt;br /&gt;
 #define MY_STEPS_TO_TURN     8  // It takse about 8 steps from motor B to execute a 180 degree turn &lt;br /&gt;
 #define MY_FWD_PWR          30  // Define some motor power levels&lt;br /&gt;
 #define MY_BOOGIE_PWR       70  // Define some motor power levels&lt;br /&gt;
 &lt;br /&gt;
 // We need a mutex to stop the 'move' task when we want to dance instead of walk. &lt;br /&gt;
 // The shared resource consists of the drive motors B &amp;amp; C and the arm/head motor A. &lt;br /&gt;
 mutex motors_a_b_c;&lt;br /&gt;
 mutex the_display; //  And a mutex for the display to stop the heart 'beat' task when the 'sleep' task wants to display 'Zzzz'.&lt;br /&gt;
 &lt;br /&gt;
 task main() //task main just exits, and the 5 following tasks start.&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  Move forever up to the ball position and back to the start position. This is likely to be very inaccurate since the distance&lt;br /&gt;
  walked per step varies depending on the coefficient of friction between the foot &amp;amp; the surface...&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 task move()&lt;br /&gt;
 {&lt;br /&gt;
    short i = 0;&lt;br /&gt;
   &lt;br /&gt;
    Follows (main);&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  Would have used function calls here, but the mutex interaction&lt;br /&gt;
  ith the dance task doesn't seem to work if the mutex&lt;br /&gt;
  operators are in a function.&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
        //move_steps(MY_STEPS_TO_BALL, MY_FWD_PWR);&lt;br /&gt;
        //turn_steps(MY_STEPS_TO_TURN, MY_FWD_PWR);&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  After each step, release the motor mutex in case the dance task&lt;br /&gt;
  want the motors. The re-acquire the motors and carry on.&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
        i = 0;&lt;br /&gt;
        while (i &amp;lt; MY_STEPS_TO_BALL)&lt;br /&gt;
        {&lt;br /&gt;
            Acquire(motors_a_b_c);&lt;br /&gt;
            OnFwd(OUT_A, MY_FWD_PWR);&lt;br /&gt;
            /* Use synch API to try &amp;amp; keep drive motors in step */&lt;br /&gt;
            RotateMotorEx(OUT_BC, MY_FWD_PWR, MY_ONE_STEP, 0, true, true);&lt;br /&gt;
            Float(OUT_A);&lt;br /&gt;
            Release (motors_a_b_c);&lt;br /&gt;
            i++;&lt;br /&gt;
        }&lt;br /&gt;
        i = 0;&lt;br /&gt;
        while ( i &amp;lt; MY_STEPS_TO_TURN)&lt;br /&gt;
        {   &lt;br /&gt;
            Acquire(motors_a_b_c);&lt;br /&gt;
            OnFwd(OUT_A, MY_FWD_PWR);&lt;br /&gt;
            RotateMotor(OUT_B, MY_FWD_PWR, MY_ONE_STEP);&lt;br /&gt;
            Float(OUT_A);&lt;br /&gt;
            Release (motors_a_b_c);&lt;br /&gt;
            i++;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  This task monitors the US sensor for things getting closer than&lt;br /&gt;
  12cm. If detected, plays Hello.rso. If something is near, monitors&lt;br /&gt;
  for it going away, and plays Goodbye.rso.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 task ultra_sonic ()&lt;br /&gt;
 {&lt;br /&gt;
    short ultra = 0;&lt;br /&gt;
    short hello_thr = 12;&lt;br /&gt;
    short bye_thr = 20;&lt;br /&gt;
    bool  near = false;&lt;br /&gt;
   &lt;br /&gt;
    Follows (main);&lt;br /&gt;
  &lt;br /&gt;
    SetSensorLowspeed(IN_4);&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        ultra = SensorUS(IN_4);&lt;br /&gt;
        //NumOut(10, LCD_LINE7, true, ultra);&lt;br /&gt;
      &lt;br /&gt;
        if (ultra &amp;lt;= hello_thr)&lt;br /&gt;
        {&lt;br /&gt;
            if(!near) &lt;br /&gt;
            {&lt;br /&gt;
                PlayFile(&amp;quot;Hello.rso&amp;quot;);&lt;br /&gt;
                near = true;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if ( ultra &amp;gt; bye_thr)&lt;br /&gt;
        {&lt;br /&gt;
            if(near) &lt;br /&gt;
            {&lt;br /&gt;
                PlayFile(&amp;quot;Goodbye.rso&amp;quot;);&lt;br /&gt;
                near = false;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  No point in using up all the CPU whizzing round this loop.&lt;br /&gt;
 */      &lt;br /&gt;
  &lt;br /&gt;
       Wait(200);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 /*&lt;br /&gt;
  This task displays a beating heart.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 task beat()&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 /* &lt;br /&gt;
  Set up some co-ordinates so the heart appears to beat in place&lt;br /&gt;
  rather than moving to the right and back.&lt;br /&gt;
 */ &lt;br /&gt;
  &lt;br /&gt;
    short big_heart_x = 16;&lt;br /&gt;
    short big_heart_y = 1;&lt;br /&gt;
    short little_heart_x = 20;&lt;br /&gt;
    short little_heart_y = 4;&lt;br /&gt;
   &lt;br /&gt;
 /* &lt;br /&gt;
  Start the heart after main() exits.&lt;br /&gt;
 */ &lt;br /&gt;
 &lt;br /&gt;
    Follows (main);&lt;br /&gt;
    &lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
 &lt;br /&gt;
 /* &lt;br /&gt;
  Little heart&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
        Acquire(the_display);&lt;br /&gt;
        GraphicOut(little_heart_x, little_heart_y, &amp;quot;Heart 02.ric&amp;quot;,true);&lt;br /&gt;
        Release(the_display);&lt;br /&gt;
        Wait(1000);&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  Big heart&lt;br /&gt;
 */  &lt;br /&gt;
  &lt;br /&gt;
        Acquire(the_display);&lt;br /&gt;
        GraphicOut(big_heart_x, big_heart_y, &amp;quot;Heart 01.ric&amp;quot;, true);&lt;br /&gt;
        Release(the_display);&lt;br /&gt;
        Wait(1000);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  Task to control dance movements in response to touch and sound&lt;br /&gt;
  sensors.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 task dance()&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
    long tick = 0;&lt;br /&gt;
    long begin_tick = 0;&lt;br /&gt;
    long wait_time = 3000;&lt;br /&gt;
    bool wait_expired = false;&lt;br /&gt;
    short sound_level;&lt;br /&gt;
    short sound_threshold = 40;&lt;br /&gt;
   &lt;br /&gt;
    Follows (main);&lt;br /&gt;
    SetSensorTouch(IN_1);&lt;br /&gt;
    SetSensorSound(IN_2);&lt;br /&gt;
   &lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  Wait for touch sensor to be pressed. Get the motor mutex, and&lt;br /&gt;
  play specified files.&lt;br /&gt;
 */&lt;br /&gt;
  &lt;br /&gt;
       while(!Sensor(IN_1))&lt;br /&gt;
        {&lt;br /&gt;
            ;&lt;br /&gt;
        }&lt;br /&gt;
      &lt;br /&gt;
        Acquire(motors_a_b_c);&lt;br /&gt;
        PlayFile(&amp;quot;Play.rso&amp;quot;);&lt;br /&gt;
        Wait(500);&lt;br /&gt;
        PlayFile(&amp;quot;Music.rso&amp;quot;);&lt;br /&gt;
        Wait(500);&lt;br /&gt;
        PlayFile(&amp;quot;Please.rso&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  Wait 3 secs for a loud noise. Dance if noise detected.  Use&lt;br /&gt;
  system tick rather than Wait() because we want to test the sound&lt;br /&gt;
  sensor during the wait period.&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
        wait_expired = false;&lt;br /&gt;
        begin_tick = CurrentTick();&lt;br /&gt;
        while (!wait_expired)&lt;br /&gt;
        {&lt;br /&gt;
            tick = CurrentTick();&lt;br /&gt;
            if ((tick - begin_tick)&amp;gt;=wait_time)&lt;br /&gt;
            {&lt;br /&gt;
                wait_expired = true;&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
            sound_level = Sensor(IN_2);&lt;br /&gt;
            if (sound_level &amp;gt;= sound_threshold)&lt;br /&gt;
            {&lt;br /&gt;
                RotateMotor(OUT_AC, MY_BOOGIE_PWR, 5*MY_ONE_STEP);&lt;br /&gt;
                wait_expired = false;&lt;br /&gt;
                begin_tick = CurrentTick();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  No more loud noises heard. Let move task have the motors back.&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
        Release (motors_a_b_c);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  Sleep task grabs the motors &amp;amp; display if amient light drops by hysteresis value.&lt;br /&gt;
  Releases them if ambient goes up by hysteresis.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 task sleep()&lt;br /&gt;
 {&lt;br /&gt;
    short ambient;&lt;br /&gt;
    short hysteresis = 20;&lt;br /&gt;
    short light_value;   &lt;br /&gt;
    bool dark = false;&lt;br /&gt;
   &lt;br /&gt;
   &lt;br /&gt;
    Follows(main);&lt;br /&gt;
 &lt;br /&gt;
    SetSensorType(IN_3,IN_TYPE_LIGHT_INACTIVE);&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  Assume it's daytime&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
   ambient = Sensor(IN_3);&lt;br /&gt;
    dark = false;&lt;br /&gt;
   &lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        light_value =  Sensor(IN_3);&lt;br /&gt;
        //NumOut(10, LCD_LINE7, true, light_value);&lt;br /&gt;
        if (dark)&lt;br /&gt;
        {&lt;br /&gt;
            if( light_value &amp;gt; (ambient + hysteresis))&lt;br /&gt;
            {&lt;br /&gt;
                PlayFile(&amp;quot;Goodmorning.rso&amp;quot;);&lt;br /&gt;
                Wait(500);&lt;br /&gt;
                Release(the_display);&lt;br /&gt;
                Release (motors_a_b_c);&lt;br /&gt;
                dark = false;&lt;br /&gt;
                ambient = light_value;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        if (!dark)&lt;br /&gt;
        {&lt;br /&gt;
            if( light_value &amp;lt;  (ambient - hysteresis))&lt;br /&gt;
            {&lt;br /&gt;
                Acquire(the_display);&lt;br /&gt;
                Acquire (motors_a_b_c);&lt;br /&gt;
                Wait(500);&lt;br /&gt;
                PlayFile(&amp;quot;Good.rso&amp;quot;);&lt;br /&gt;
                Wait(500);&lt;br /&gt;
                PlayFile(&amp;quot;Night.rso&amp;quot;);&lt;br /&gt;
                Wait(500);&lt;br /&gt;
                GraphicOut(10, 10, &amp;quot;Zzzz.ric&amp;quot;, true);&lt;br /&gt;
                dark = true;&lt;br /&gt;
                ambient = light_value;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  No point in using up all the CPU whizzing round this loop.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
        Wait(200);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Snippets]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=SLIM</id>
		<title>SLIM</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=SLIM"/>
				<updated>2011-10-14T23:35:40Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;From a Sabayon Linux Five Oh! Live Session...&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; Installing (1 of 1) x11-misc/slim-1.3.1-r5&lt;br /&gt;
 &lt;br /&gt;
 The configuration file is located at /etc/slim.conf.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 If you wish slim to start automatically, set DISPLAYMANAGER=&amp;quot;slim&amp;quot; &lt;br /&gt;
 in /etc/conf.d/xdm and run &amp;quot;rc-update add xdm default&amp;quot;.&lt;br /&gt;
 By default, slim will use default XSESSION value set in /etc/rc.conf.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 If you want to use .xinitrc in the user's home directory for session&lt;br /&gt;
 management instead, see README and xinitrc.sample in&lt;br /&gt;
 /usr/share/doc/slim-1.3.1-r5 and change your login_cmd in /etc/slim.conf&lt;br /&gt;
 accordingly.&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Sabayon</id>
		<title>Sabayon</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Sabayon"/>
				<updated>2011-10-14T23:35:21Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Sabayon 5.0/64 Journal'''&lt;br /&gt;
&lt;br /&gt;
=Install=&lt;br /&gt;
* Text install went 'fine' if rude, featureless compared to text install from debian or slackware&lt;br /&gt;
** The Partitionner is really lame, less clear/consive/explanative than others&lt;br /&gt;
* Grub doesn't announce other OS, but do register them.&lt;br /&gt;
* Network Config a bit short, only machine name is enabled if you don't go dhcp. Leaves you with .unknowndomain stupid name.&lt;br /&gt;
* There is no eject of disc, no auto-reboot of installer - you reboot from your session. Don't forget to get the disc out :)&lt;br /&gt;
&lt;br /&gt;
=Reboot=&lt;br /&gt;
* Still Grub 1, good.&lt;br /&gt;
* Boots in init 3; no gdm line ''--changed to 5 in /etc/inittab, removed =nox option from /boot/grub/menu.lst'' But init3 dosn't seem to be milti/noX anyway. Argh.&lt;br /&gt;
* All TTYs are there, even in runlevel 5, in graphic mode: faster, non-flicker switch&lt;br /&gt;
* ssh server up and running&lt;br /&gt;
* No vnc, but gconfedotor is there.&lt;br /&gt;
* Sound works, but keeps on trying to choose intrenal hdmi digital output. Which doesn't really put actual volts in the loudspeakers, of course.&lt;br /&gt;
* Main user UID to 1000; when set to 500, disappear from User Management GUI (same in debian) ''--solved: change 1000 to 499 in /etc/login.defs''&lt;br /&gt;
(see http://ubuntuforums.org/archive/index.php/t-347762.html)&lt;br /&gt;
* bluetooth still as buggy.&lt;br /&gt;
&lt;br /&gt;
=Boot2=&lt;br /&gt;
* boot console framebuffer OK; not convinced by background image though. Sabayon 4 looked better.&lt;br /&gt;
* gdm ok now&lt;br /&gt;
* fckin' package manager forces full upgrades but reckon it's best to update itself first. HOW?? did 'Equo install entropy sulfur' and ended up with full auto update.&lt;br /&gt;
* 3G as bad as usual, needs to unplug all the time, unlike debian. But works.&lt;br /&gt;
* equo is the CLI interface to package management in Sabayon; colors are over-the-top.&lt;br /&gt;
* You can of course use emerge, the original Gentoo tool,... If you are a man enough.&lt;br /&gt;
* mp3 OK; player uses Totem. Yikes.&lt;br /&gt;
&lt;br /&gt;
==Massive Upgrade One==&lt;br /&gt;
[Machine now to Current version]&lt;br /&gt;
* New config files resides in bthe folder of the old config under the name '''._cfg00*&amp;lt;configfilename&amp;gt;'''&lt;br /&gt;
* Equo option '''-3''' aka ''Merge on by one'' doesn't show diffs; would only show diffs if you select the number from the filelist.&lt;br /&gt;
* Once you are into the 'Overwrite Yes/No' process, there is no turning back.&lt;br /&gt;
* Diffs shows with '''-''' and '''+''' signs next to it; blue is suppressed, green is new, black is unchanged. &lt;br /&gt;
[Time to reboot]&lt;br /&gt;
&lt;br /&gt;
=One Thousand repetitive reboots later=&lt;br /&gt;
* Compiz kills my gnome panel, refuses to put it at bottom; put it back on top when rebooted. [removed from ''startup'']&lt;br /&gt;
* 40 secs to wait from log/password to desktop. 35 without.&lt;br /&gt;
* Compiz Start kills GnomeDo. [removed from ''startup'']&lt;br /&gt;
* Still old 31 kernel after 'world' upgrade.&lt;br /&gt;
* LOTS of udev warnings; given my experience with Debian, it smells baaaad. And, looking into /etc/udev/rules.d/52*, I don't have this hardware anyway (tascam something).&lt;br /&gt;
* WICD was forced in the systems, complains hasn't got access to wireless cards. I don't want WICD. [removed from ''startup'']&lt;br /&gt;
&lt;br /&gt;
=My Life with Sabayon=&lt;br /&gt;
&lt;br /&gt;
Do I trust, or to what extend, such a small project for a general laptop use, including real-life work? I dunno yet, really: the smallness may give extra attention, closeness to the project leaders... Or not.&lt;br /&gt;
&lt;br /&gt;
==Cool==&lt;br /&gt;
* A Repos database update (unmodded repos from italy, none added) weights a reasonable 1Meg - cool.&lt;br /&gt;
* mplayer included.&lt;br /&gt;
* hw shortcuts FN+ works for screen.&lt;br /&gt;
* config files update protection - use cfg-update to review them; albeit not as sudo, again.&lt;br /&gt;
* I updated everything in 2 strokes; big downloads but no issues; just patience with freaking 3G connection.&lt;br /&gt;
* All kernel sources are there after '''equo install linux-sabayon''' and '''linux-sabayon-sources'''. Kool.&lt;br /&gt;
* e16 is there, as enlightenment-1.0.1 in section x11-wm&lt;br /&gt;
* suspend resume OK&lt;br /&gt;
* Log helper: '''emerge sabayonlive-tools''' then '''#sabutil menu'''&lt;br /&gt;
&lt;br /&gt;
==Not So Cool==&lt;br /&gt;
* hw shortcuts FN+ '''doesn't''' work for sound.&lt;br /&gt;
* xterm white background kills me eyes&lt;br /&gt;
* Lots of 404-not-found when using equo&lt;br /&gt;
* totem is the default music player - stupid.&lt;br /&gt;
* the colors in equo are, uh, an acquired taste. Not my taste, though. ''--do equo --nocolor or something :)''&lt;br /&gt;
* you never quite know where you are with the gentoo stuff underlying; doesn't make clear what to use, and what update state you are.&lt;br /&gt;
&lt;br /&gt;
==ShowStoppers==&lt;br /&gt;
* Diff viewer system in ''equo conf update'' totally garbled when using it through sudo, unreadable text!!&lt;br /&gt;
* gnome panel keeps going back on top of the screen at each reboot; can't just assign it to 'bottom' (have to tick 'expand', select 'bottom', un-tick expand again)&lt;br /&gt;
* Unwanted sda1 still is only one-click away from danger!&lt;br /&gt;
* Boot process messes with password to unlock wallet on wifi connection; ugly, confusing since it's entangled with GnomeDo with no visible text.&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Screens</id>
		<title>Screens</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Screens"/>
				<updated>2011-10-14T23:34:59Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There's nothing here actually; please go to http://pics.zenerves.net/index.php?gallery=linux&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=This</id>
		<title>This</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=This"/>
				<updated>2011-10-14T23:34:18Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://epixstudios.co.uk/blog/2008/02/05/packard-bell-syntek-webcam-success/&lt;br /&gt;
&lt;br /&gt;
Approximately 18 months ago, my girlfriend was looking for a small and light laptop to replace her broken iBook. The replacement laptop is a Packard Bell Easynote BU45-U-045 (I think that’s the model number–product details). Most of the hardware is well supported by Ubuntu Linux–Intel graphics chip runs Compiz-Fusion well, SD card reader, and wireless–although with ‘Restricted Drivers Manager’. There is also a webcam integrated above the screen, but I didn’t get this working until today. The camera chip comes from Syntek Semiconductor Ltd but is usually assembled under the name D-Max.&lt;br /&gt;
&lt;br /&gt;
The command ‘lsusb‘ was an obvious starting point, but no manufacturer/device name is given so you have to look carefully at the ID numbers. This is the output I have (174f:a821) but apparently there are other devices by Syntek that are supported (174f:6a31, 174f:6a33, 174f:6a51, 174f:6a54 and 174f:a311).&lt;br /&gt;
&lt;br /&gt;
 jayne@jayne-laptop:~$ lsusb&lt;br /&gt;
 Bus 004 Device 001: ID 0000:0000&lt;br /&gt;
 Bus 005 Device 001: ID 0000:0000&lt;br /&gt;
 Bus 003 Device 001: ID 0000:0000&lt;br /&gt;
 Bus 003 Device 002: ID 08ff:1600 AuthenTec, Inc.&lt;br /&gt;
 Bus 002 Device 001: ID 0000:0000&lt;br /&gt;
 Bus 001 Device 002: ID 174f:a821&lt;br /&gt;
 Bus 001 Device 001: ID 0000:0000&lt;br /&gt;
&lt;br /&gt;
I found the Syntek DC-1125 Camera Driver Project hosted on SourceForge, still in development (in face the latest version was released today!) but it worked OK for me. These instructions are how I managed to get it to work on Ubuntu. If you decide to carry out these yourself, you do so at you own risk and I accept no responsibility.&lt;br /&gt;
&lt;br /&gt;
Download the drivers from the project page–you want the file stk11xx-*.tar.gz–and extract them. From the extracted directory, make the Loadable Kernel Module with the command sudo make -f Makefile.standalone. I got the following error about ctags, but this didn’t matter as the module had been compiled by this point (.ko file).&lt;br /&gt;
&lt;br /&gt;
 make: ctags: Command not found&lt;br /&gt;
 make: *** [driver] Error 127&lt;br /&gt;
&lt;br /&gt;
If compilation goes OK you should see a file called ’stk11xx.ko’ in the directory which you should copy to your kernel’s module directory,  &lt;br /&gt;
&lt;br /&gt;
 sudo cp stk11xx.ko /lib/modules/`uname -r`/kernel/drivers.&lt;br /&gt;
&lt;br /&gt;
Run the following commands to load you camera’s kernel module. The light next to it flashes if you have one.&lt;br /&gt;
&lt;br /&gt;
 sudo depmod -a&lt;br /&gt;
 sudo modprobe stk11xx&lt;br /&gt;
&lt;br /&gt;
If all has gone well up to this point, test it with an application like Camorama or Ekiga. Install Camorama through Synaptic or by typing the following command.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install camorama&lt;br /&gt;
&lt;br /&gt;
'''edit:camorama not available in fedora repositories'''&lt;br /&gt;
&lt;br /&gt;
 Webcam output, no arguments&lt;br /&gt;
&lt;br /&gt;
For me the image shown was upside down, which was annoying at first. However there is an argument you can pass when you load the module which counteracts this. If you need the image flipped, use these commands to unload the module and re-load it with the argument ‘vflip=1′.&lt;br /&gt;
&lt;br /&gt;
  sudo rmmod stk11xx&lt;br /&gt;
  sudo modprobe stk11xx vflip=1&lt;br /&gt;
&lt;br /&gt;
Open Camorama again and you will hopefully now be the right way up. Now we have to make sure that this argument gets added automatically or you will be the wrong way up next time you start the computer. You want to create a new file in the directory ‘/etc/modprobe.d’ for the module with the line ‘options stk11xx vflip=1′ in it.&lt;br /&gt;
&lt;br /&gt;
  sudo touch /etc/modprobe.d/stk11xx&lt;br /&gt;
  sudo gedit /etc/modprobe.d/stk11xx&lt;br /&gt;
&lt;br /&gt;
Webcam output, flipped&lt;br /&gt;
&lt;br /&gt;
If you have a similar webcam to this then I hope this post is useful to you. If it is or if you have a question, please leave a comment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fedora 9 issues]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]] [[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Tick_%26_Untick</id>
		<title>Tick &amp; Untick</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Tick_%26_Untick"/>
				<updated>2011-10-14T23:33:41Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WORKS OUT-OF-THE-BOX:'''&lt;br /&gt;
&lt;br /&gt;
* The HugeSMP Kernel,&lt;br /&gt;
* Network with hostname and static IP,&lt;br /&gt;
* KDE, albeit  from runlevel 3&lt;br /&gt;
* Sound/music, Flash anims in Firefox, webradio&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''WORKS WITH INTERVENTION:'''&lt;br /&gt;
&lt;br /&gt;
* NVidia drivers compiled fine,&lt;br /&gt;
* -&amp;gt; Resulting xorg.conf un-usable, re-worked with parameters from Fedora7&lt;br /&gt;
* --&amp;gt; Keyboard ''BE'', wheel mouse (MANUAL EDIT OF XORG.CONF.&lt;br /&gt;
* The other 3 kernels, if you build their initrd according to the README in /boot&lt;br /&gt;
* Enlightenment DR16, with self compilation of imlib2 and DR16 + epplets + keyedit - have to redo as slackpackage, I failed.&lt;br /&gt;
* vncviewer, using source + slackbuild and installed with 'installpkg'&lt;br /&gt;
* transmission, using source + slackbuild and installed with 'installpkg'&lt;br /&gt;
* mplayer went fine with slackbuilds.org&lt;br /&gt;
* clean terminal shell that doesn't jump to / with no bash prompt - achieved by pushing not only the .bax-src file, but a .profilerc too - seems slack wants to read the non-standard .profilerc rather than the usual .bashrc in your home directory.&lt;br /&gt;
* Audacity - compile error, exec error with GTK issues - I had to go for wxGTK, it failed with pyGTK. Not fully tested.&lt;br /&gt;
* VirtualBox 2.0.6 - complains from missing, unfindable, libraries - Sorted with 2.1.2, but 2.06 has USB working and 2.1.0 doesn't... yet to test more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''YET TO ACHIEVE/TRY/DO:'''&lt;br /&gt;
&lt;br /&gt;
* Skype compile fine, '''but''' no microphone. ''Gosh alsamixer is superfluously obfuscated.''&lt;br /&gt;
* Webcam/GSPCA compile failure - kernel loads wrong module. Crashes skype.&lt;br /&gt;
* VLC - What's wrong with VLC you bunch o' Slackers? Can't seem to find it anywhere... the one from ~alien segfaults all the time.&lt;br /&gt;
* Better Memory Useage - artsd eats a lot, a minimal e16 workstation needs 1gig to run, that kills VirtualMachines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''BUGS:'''&lt;br /&gt;
&lt;br /&gt;
* konsole transparency '''Fixed with new xorg.conf (?)'''&lt;br /&gt;
* Terminal isn't working '''Fixed with Full Fresh Install'''&lt;br /&gt;
* Konqueror doesn't know flash, swf.&lt;br /&gt;
* You are being asked your Keyboard Layout twice, it doesn't get to the xorg.conf. '''And again, and again: never - fixed myself manually'''&lt;br /&gt;
* Now you are proposed to do a thumbdrive starter, it doesn't work any better than the previous disquette system.'''And again, and again: never'''&lt;br /&gt;
* kwrite always exits with a crash.'''And again, and again: always, if not using kde'''&lt;br /&gt;
* transmissions doesn't calculate % achieved and remaining times.&lt;br /&gt;
* No firewall, machine is open to all'''And again, and again: always'''&lt;br /&gt;
* cups not working, error message '''Fixed with Full Fresh FAT Install'''&lt;br /&gt;
&lt;br /&gt;
'''I re-installed all only twice.'''&lt;br /&gt;
[[Category:Linux]] [[Category:Hardware&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Tweet</id>
		<title>Tweet</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Tweet"/>
				<updated>2011-10-14T23:33:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &amp;lt;nowiki&amp;gt;curl -u youremail:yourpassw -d status=”text” http://twitter.com/statuses/update.xml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.ibm.com/developerworks/linux/library/l-friendfeed/index.html&lt;br /&gt;
&lt;br /&gt;
http://thelinuxsociety.org.uk/content/a-twitter-command-for-your-terminal&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Upstart</id>
		<title>Upstart</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Upstart"/>
				<updated>2011-10-14T23:30:23Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ubuntu doesn't use inittab anymore; when you come from somewhere else, it's frustrating...&lt;br /&gt;
&lt;br /&gt;
*all TTYs are defined one-by-one in '''/etc/init/''' and that is where you decide if they are active or not, and at which runlevel, for what user.&lt;br /&gt;
&lt;br /&gt;
The original syntax was:&lt;br /&gt;
 exec /sbin/getty 115200 tty2&lt;br /&gt;
&lt;br /&gt;
And now is:&lt;br /&gt;
 exec /bin/login -f ubuntu &amp;lt;/dev/tty2 &amp;gt; /dev/tty2 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
*hostname now defined in '''/etc/hostname''' and, probably, in '''/etc/hosts''' as well. Or not. '''/etc/init/hostname.conf''' is ''NOT'' the conf file, it's the starting script to act on the '''/etc/hostname''' file and to set that hostname. Keep cool, breathe normally, there is nothing you can do about it.&lt;br /&gt;
&lt;br /&gt;
And sometimes, the ubuntu hostname comes back. aargh.&lt;br /&gt;
&lt;br /&gt;
Well, except jumping to Slackware or Arch, for sure.&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Videos_for_my_phone</id>
		<title>Videos for my phone</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Videos_for_my_phone"/>
				<updated>2011-10-14T23:30:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fail with ubuntu forums:&lt;br /&gt;
&lt;br /&gt;
  ffmpeg -i input.avi -f mp4 -vcodec mpeg4 -b 2200k -r 30 -s 640x360 -acodec libfaac -ar 32000 -ab 128k -ac 2 output.mp4&lt;br /&gt;
&lt;br /&gt;
http://ubuntuforums.org/showthread.php?t=1125181 &lt;br /&gt;
&lt;br /&gt;
DOES NOT WORK!! Unrecognizable 2-Gigs mp4 file that does NOT play on the 5800&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From dailymobile:&lt;br /&gt;
&lt;br /&gt;
  ffmpeg -i &amp;quot;Something.avi&amp;quot; -f mp4 &lt;br /&gt;
  -vcodec libx264 -b 1000k -r 30 -s 320x240 &lt;br /&gt;
  -acodec libfaac -ar 32000 -ab 128k -ac 2 &lt;br /&gt;
  -threads 0 -async 1 &lt;br /&gt;
  -aspect 4:3 &lt;br /&gt;
  &amp;quot;Somethingelse.mp4&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[In one single line of course. '''Works''', or seems to: Aspect Ratio is wrong, over-elongated vertically; sometimes, sound drops briefly.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I just failed, I guess wrong display size, using this:&lt;br /&gt;
&lt;br /&gt;
  ffmpeg -i &amp;quot;something.flv&amp;quot; -f mp4 &lt;br /&gt;
  -vcodec libx264' -b 600k -r 25 -'''s 640x360'''&lt;br /&gt;
  -acodec libfaac -ar 32000 -ab 128k -ac 2&lt;br /&gt;
  -threads 4 -async 1&lt;br /&gt;
  -aspect 16/9 [same with 4:3]&lt;br /&gt;
  &amp;quot;somethingelse.mp4&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now this provide the highest possibel resolution:&lt;br /&gt;
&lt;br /&gt;
  ffmpeg -i &amp;quot;1930Angkor&amp;quot; -f mp4 &lt;br /&gt;
  -vcodec mpeg4 -b 600k -r 24 '''-s 640x320''' &lt;br /&gt;
  -acodec libfaac -ar 32000 -ab 64k -ac 2 &lt;br /&gt;
  -threads 4 -async 1 &lt;br /&gt;
  -aspect 4:3 &lt;br /&gt;
  &amp;quot;Angkor320.mp4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;-threads 4&amp;quot; is best for dualcore machines; increase this if you have better hardware.'' Still, this doesn't provide accurate ratio with RealPlayer trying very hard to full-screen it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Note that you can just &amp;quot;throw&amp;quot; your Flash files from Youtube straight to the device, it will be recognized and play, even without the .flv extension]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Virtual</id>
		<title>Virtual</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Virtual"/>
				<updated>2011-10-14T23:29:42Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://wiki.archlinux.org/index.php/KVM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
get modules in the tree:&lt;br /&gt;
&lt;br /&gt;
 modprobe kvm&lt;br /&gt;
 modprobe kvm-intel&lt;br /&gt;
&lt;br /&gt;
If you want these modules to persist, add them to rc.conf &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 $ qemu-img create -f qcow2 /path to image/&amp;lt;Image_Name&amp;gt; &amp;lt;size&amp;gt;&lt;br /&gt;
 $ qemu-kvm -hda &amp;lt;Image_Name&amp;gt; -m 512 -cdrom &amp;lt;/Path/to/the/ISO/Image&amp;gt; -boot d -vga std&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=VirtualMachine</id>
		<title>VirtualMachine</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=VirtualMachine"/>
				<updated>2011-10-14T23:29:20Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://linux-tips.org/article/74/enabling-remote-desktop-on-a-virtualbox-machine&lt;br /&gt;
&lt;br /&gt;
'''Enabling remote desktop on a VirtualBox Machine'''&lt;br /&gt;
&lt;br /&gt;
To enable remote desktop on a VirtualBox machine, you have to follow these steps:&lt;br /&gt;
&lt;br /&gt;
 VBoxManage modifyvm ''YourMachineName'' -vrdp on &lt;br /&gt;
&lt;br /&gt;
This command enables rdp on the virtual machine&lt;br /&gt;
&lt;br /&gt;
 VBoxManage startvm ''YourMachineName'' -type vrdp&lt;br /&gt;
&lt;br /&gt;
It starts virtual machine... virtually! you won't see it on your server. &lt;br /&gt;
The VM will listen for rdp request on port 3389 (default port)&lt;br /&gt;
Connect from your linux client with:&lt;br /&gt;
&lt;br /&gt;
 rdesktop-vrdp localhost &lt;br /&gt;
&lt;br /&gt;
That will connect your virtual machine with rdp (if you use rdesktop that is).&lt;br /&gt;
&lt;br /&gt;
If you want to change the '''rdp port''', use this command:&lt;br /&gt;
&lt;br /&gt;
 VBoxManage modifyvm MachineName -vrdpport &amp;lt;port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Don't forget to punch the necessary holes in your server's firewall)&lt;br /&gt;
&lt;br /&gt;
Also, enabling authentication for rdp is possible:&lt;br /&gt;
&lt;br /&gt;
 VBoxManage modifyvm MachineName -vrdpauthtype null | external | guest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''VBoxManage'' is the command line interface of the VirtualBox software from SUN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can make these settings with the GUI in your VirtualBox manager:&lt;br /&gt;
 &lt;br /&gt;
 Settings -&amp;gt; Remote Display -&amp;gt; Enable VRDP Server&lt;br /&gt;
&lt;br /&gt;
If you want to use your virtual machine with vrdp only, you can use this command simply:&lt;br /&gt;
&lt;br /&gt;
 VBoxHeadless -startvm MachineName&lt;br /&gt;
&lt;br /&gt;
Note: RDP server is not included in Open Source Edition of the VirtualBox. &lt;br /&gt;
If you want to use this feature, you have to use closed-source edition.&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Vnc</id>
		<title>Vnc</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Vnc"/>
				<updated>2011-10-14T23:29:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &lt;br /&gt;
 vncviewer 192.168.1.99&lt;br /&gt;
&lt;br /&gt;
be sure that the vnc service are started on the target (server) machine; the gnome configurator works for passwords and warnings&lt;br /&gt;
&lt;br /&gt;
back to [[Howtos]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=X_when_Log_in</id>
		<title>X when Log in</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=X_when_Log_in"/>
				<updated>2011-10-14T23:28:17Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://wiki.archlinux.org/index.php/Start_X_at_boot&lt;br /&gt;
&lt;br /&gt;
 if [[ -z &amp;quot;$DISPLAY&amp;quot; ]] &amp;amp;&amp;amp; [[ ! -a &amp;quot;/tmp/.X11-unix/X0&amp;quot; ]] &amp;amp;&amp;amp; [[ &amp;quot;`whoami`&amp;quot; != &amp;quot;root&amp;quot; ]]; then&lt;br /&gt;
  . startx&lt;br /&gt;
  logout&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see also &lt;br /&gt;
&lt;br /&gt;
http://bbs.archlinux.org/viewtopic.php?id=6182&lt;br /&gt;
&lt;br /&gt;
http://wiki.archlinux.org/index.php/Automatic_login_to_virtual_console#Using_mingetty&lt;br /&gt;
&lt;br /&gt;
http://aur.archlinux.org/packages.php?ID=13793&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=QuickCam_Communicate_STX_Webcam</id>
		<title>QuickCam Communicate STX Webcam</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=QuickCam_Communicate_STX_Webcam"/>
				<updated>2011-10-14T23:27:28Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux command-line instructions to see your face on screen :) I'll have to digg more to get how you'' stream'' this info elsewhere.&lt;br /&gt;
&lt;br /&gt;
'''The Very Short Form:'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;(^_^)&amp;gt; ~$: mplayer tv:// &lt;br /&gt;
&lt;br /&gt;
'''Detailed Form:'''&lt;br /&gt;
&lt;br /&gt;
 mplayer tv:// -tv driver=v4l:width=640:height=480&lt;br /&gt;
&lt;br /&gt;
''You _can_ make it smaller, not bigger on the CLI''&lt;br /&gt;
&lt;br /&gt;
 mplayer tv:// -tv driver=v4l2:fps=30:device=/dev/video&lt;br /&gt;
&lt;br /&gt;
''?? Wonder if it makes a difference ??''&lt;br /&gt;
&lt;br /&gt;
 mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=uyvy:device=/dev/video0&lt;br /&gt;
&lt;br /&gt;
''I'll tell you one thing: the Manual entry for Mplayer is... Long.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Now, try this one :)'''&lt;br /&gt;
&lt;br /&gt;
 mplayer tv:// -vo aa -monitorpixelaspect 0.5&lt;br /&gt;
&lt;br /&gt;
It's always worth your time reading the manual...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''add't'l info:'''&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; lsmod|grep gspca&lt;br /&gt;
 &lt;br /&gt;
 gspca_zc3xx         50688  0 &lt;br /&gt;
  &lt;br /&gt;
 gspca_main          23808  1 gspca_zc3xx&lt;br /&gt;
  &lt;br /&gt;
 videodev            36736  1 gspca_main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; lsusb&lt;br /&gt;
 &lt;br /&gt;
 Bus 005 Device 002: ID 046d:08d7 Logitech, Inc. QuickCam Communicate ST&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[Howtos]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]] [[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Fedora_9_issues</id>
		<title>Fedora 9 issues</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Fedora_9_issues"/>
				<updated>2011-10-14T23:26:43Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At the moment, the more troubling fact is the sloppiness of my network connection; I can't guess if it's F9 software. ASUS hardware or a Linksys issue... This is a laptop, as such it's used in wifi; ping to my own router always returns 20/40% packet loss - the other, wired, computers on this network are fine, but if I wire this laptop, results are not necessarily better... (?) And since I live in Cambodia, browsing internet can just be PITA without my network interfering.&lt;br /&gt;
&lt;br /&gt;
ASUS F9E-2P174&lt;br /&gt;
 Intel Core 2 Duo T8100 2.1GHz, &lt;br /&gt;
 1GB RAM, 120GB HDD, &lt;br /&gt;
 VGA Intel GMA X3100, &lt;br /&gt;
 12.1 inch screen&lt;br /&gt;
&lt;br /&gt;
[fa9@asus ~]$ uname -a&lt;br /&gt;
  Linux asus 2.6.25.14-108.fc9.i686 #1 SMP Mon Aug 4 14:08:11 EDT 2008 i686 i686 i386 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
==Ugly Login Background==&lt;br /&gt;
&lt;br /&gt;
How to remove/change the infamous '''&amp;quot;AlienAbduction&amp;quot;''' (they call it Waves though) image that's default to F9? there are several ways, depending on your mileage/useage/ambitions:&lt;br /&gt;
&lt;br /&gt;
'''1.''' Remove all, speed up boot by avoiding entirely the .xml parsing &amp;amp; anim stuff; put your image instead:&lt;br /&gt;
&lt;br /&gt;
http://fedoraforum.org/forum/showthread.php?p=1058661#post1058661&lt;br /&gt;
&lt;br /&gt;
http://live.gnome.org/GDM/2.22/Configuration&lt;br /&gt;
&lt;br /&gt;
Mine looks like:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;entry name=&amp;quot;picture_filename&amp;quot; mtime=&amp;quot;1219840700&amp;quot; type=&amp;quot;schema&amp;quot; stype=&amp;quot;string&amp;quot; owner=&amp;quot;gnome&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;local_schema locale=&amp;quot;C&amp;quot; short_desc=&amp;quot;Picture Filename&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;default type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
      stringvalue&amp;gt;/home/f9/Pictures/Wallpapers/newbaby.jpeg&amp;lt;/stringvalue&amp;gt;&lt;br /&gt;
      &amp;lt;/default&amp;gt;&lt;br /&gt;
      &amp;lt;longdesc&amp;gt;File to use for the login background image.&amp;lt;/longdesc&amp;gt;&lt;br /&gt;
    &amp;lt;/local_schema&amp;gt;&lt;br /&gt;
  &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''AND IT HASN'T WORKED here'''''&lt;br /&gt;
&lt;br /&gt;
'''2.''' Keep it simple, no text edit:&lt;br /&gt;
Copy/rename erase all in the folder /usr/share/backgrounds/waves/ if you keep the names but put your own image in, it will show up; that's probably the easiest way.&lt;br /&gt;
&lt;br /&gt;
'''2.b''' ...or replace in /usr/share/backgrounds/waves/waves.xml the path to your own pictures instead of the &amp;quot;wavy&amp;quot; ones '''that was OK for me''' &lt;br /&gt;
&lt;br /&gt;
'''3.''' Do your own anim/time-based differential:&lt;br /&gt;
the '''.xml'''file in /usr/share/backgrounds/waves/ is actually quite simple to edit, be it Time or Pictures, especially if you remove all unused screen defs&lt;br /&gt;
&lt;br /&gt;
==autologin in F9==&lt;br /&gt;
&lt;br /&gt;
Since F9, there's no setting manager for the Gnome Login Manager, hence it is not possible anymore to have your account logged straight away at boot time.&lt;br /&gt;
&lt;br /&gt;
(recommended on http://www.thinkdigit.com/forum/showthread.php?p=837759)&lt;br /&gt;
&lt;br /&gt;
Edit '''/etc/X11/gdm/custom.conf''' (for Fedora /etc/gdm/) with the followinf addition:&lt;br /&gt;
&lt;br /&gt;
 [daemon]&lt;br /&gt;
 &lt;br /&gt;
 AutomaticLoginEnable=true&lt;br /&gt;
 &lt;br /&gt;
 AutomaticLogin=user_name&lt;br /&gt;
 &lt;br /&gt;
 [security]&lt;br /&gt;
&lt;br /&gt;
but that's not enough, whatever they say on the forums, you'd have to go for a bit more complicated way here: http://www.linuxquestions.org/questions/linux-general-1/fedora-9-auto-login-644821/ -this version, with TimedLogin set to Zero, works.&lt;br /&gt;
&lt;br /&gt;
==WebCam==&lt;br /&gt;
&lt;br /&gt;
[EDIT] had it working once briefly, I post here the terminal history for future reference&lt;br /&gt;
&lt;br /&gt;
 [root@F9E ~]# lsusb|grep Syntek&lt;br /&gt;
 Bus 002 Device 002: ID 174f:6a33 Syntek &lt;br /&gt;
 [root@F9E ~]# rmmod stk11xx&lt;br /&gt;
 [root@F9E ~]# modprobe stkwebcam&lt;br /&gt;
 [root@F9E ~]# xawtv&lt;br /&gt;
 This is xawtv-3.95, running on Linux/i686 (2.6.25.14-108.fc9.i686)&lt;br /&gt;
 xinerama 0: 1280x800+0+0&lt;br /&gt;
 can't open /dev/video0: No such file or directory&lt;br /&gt;
 v4l-conf had some trouble, trying to continue anyway&lt;br /&gt;
 v4l2: open /dev/video0: No such file or directory&lt;br /&gt;
 v4l2: open /dev/video0: No such file or directory&lt;br /&gt;
 v4l: open /dev/video0: No such file or directory&lt;br /&gt;
 no video grabber device available&lt;br /&gt;
 [root@F9E ~]# rmmod stkwebcam&lt;br /&gt;
 [root@F9E ~]# modprobe stk11xx&lt;br /&gt;
 [root@F9E ~]# rmmod stk11xx &lt;br /&gt;
 [root@F9E ~]# modprobe stkwebcam&lt;br /&gt;
 [root@F9E ~]# dmesg|tail&lt;br /&gt;
 stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
 []&lt;br /&gt;
 stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
 stk11xx: usb_stk11xx_exit: Syntek USB2.0 webcam driver shutdown&lt;br /&gt;
 usbcore: deregistering interface driver usb_stk11xx_driver&lt;br /&gt;
 stk11xx: Syntek USB2.0 Camera disconnected&lt;br /&gt;
 stk11xx: Syntek USB2.0 Camera release resources video device /dev/video0&lt;br /&gt;
 usbcore: registered new interface driver stkwebcam&lt;br /&gt;
 [root@F9E ~]# modprobe stk11xx&lt;br /&gt;
 [root@F9E ~]# dmesg|tail&lt;br /&gt;
 stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
  []&lt;br /&gt;
 stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
 [root@F9E ~]# lsmod|grep video&lt;br /&gt;
 video                  20368  0 &lt;br /&gt;
 output                  6656  1 video&lt;br /&gt;
 videodev               30208  2 stk11xx,stkwebcam&lt;br /&gt;
 v4l1_compat            15364  1 videodev&lt;br /&gt;
 [root@F9E ~]# xawtv&lt;br /&gt;
 This is xawtv-3.95, running on Linux/i686 (2.6.25.14-108.fc9.i686)&lt;br /&gt;
 xinerama 0: 1280x800+0+0&lt;br /&gt;
 /dev/video0 [v4l2]: no overlay support&lt;br /&gt;
 v4l-conf had some trouble, trying to continue anyway&lt;br /&gt;
 ioctl: VIDIOC_S_CTRL(id=9963778;value=32767): Unknown error 515&lt;br /&gt;
 ioctl: VIDIOC_S_CTRL(id=9963776;value=32767): Unknown error 515&lt;br /&gt;
 ioctl: VIDIOC_S_CTRL(id=9963777;value=32767): Unknown error 515&lt;br /&gt;
 v4l2: read: rc=331776/size=442368&lt;br /&gt;
&lt;br /&gt;
'''That's when it worked. Once.'''&lt;br /&gt;
&lt;br /&gt;
 [root@F9E ~]# camorama&lt;br /&gt;
 [root@F9E ~]# xawtv&lt;br /&gt;
 This is xawtv-3.95, running on Linux/i686 (2.6.25.14-108.fc9.i686)&lt;br /&gt;
 xinerama 0: 1280x800+0+0&lt;br /&gt;
 /dev/video0 [v4l2]: no overlay support&lt;br /&gt;
 v4l-conf had some trouble, trying to continue anyway&lt;br /&gt;
 ioctl: VIDIOC_S_CTRL(id=9963778;value=32512): Unknown error 515&lt;br /&gt;
 ioctl: VIDIOC_S_CTRL(id=9963776;value=32512): Unknown error 515&lt;br /&gt;
 ioctl: VIDIOC_S_CTRL(id=9963777;value=32512): Unknown error 515&lt;br /&gt;
 '''v4l2: oops: select timeout'''&lt;br /&gt;
 v4l2: read: rc=331776/size=442368&lt;br /&gt;
 [root@F9E ~]# lsmod|grep video&lt;br /&gt;
 video                  20368  0 &lt;br /&gt;
 output                  6656  1 video&lt;br /&gt;
 videodev               30208  2 stk11xx,stkwebcam&lt;br /&gt;
 v4l1_compat            15364  1 videodev&lt;br /&gt;
&lt;br /&gt;
[END of EDIT]&lt;br /&gt;
&lt;br /&gt;
diggin'n'diggin, I found out I need the '''stk11xx''' module to be loaded and linked with /dev/video0&lt;br /&gt;
&lt;br /&gt;
[It used to work with Fedora8]&lt;br /&gt;
&lt;br /&gt;
Method: the method included in the [[syntek readme]] did not work; the one for [[ubuntu]] neither, I used [[this]] one which copies and ''modprobe'' rather than ''insmod''. notice that there shouldn't be a difference.&lt;br /&gt;
&lt;br /&gt;
outputs: &lt;br /&gt;
&lt;br /&gt;
'''lsusb'''&lt;br /&gt;
  Bus 002 Device 002: ID 174f:6a33 Syntek&lt;br /&gt;
&lt;br /&gt;
'''dmesg''' after loading the module stk11xx:&lt;br /&gt;
&lt;br /&gt;
  stk11xx: usb_stk11xx_exit: Syntek USB2.0 webcam driver shutdown&lt;br /&gt;
  usbcore: deregistering interface driver usb_stk11xx_driver&lt;br /&gt;
  stk11xx: Syntek USB2.0 Camera disconnected&lt;br /&gt;
  stk11xx: Syntek USB2.0 Camera release resources video device /dev/video0&lt;br /&gt;
  Linux video capture interface: v2.00&lt;br /&gt;
  stk11xx: Syntek USB2.0 webcam driver startup&lt;br /&gt;
  stk11xx: Syntek USB2.0 - STK-1135 based webcam found.&lt;br /&gt;
  stk11xx: Syntek AVStream USB2.0 1.3M WebCam - Product ID 0x6A33.&lt;br /&gt;
  stk11xx: Release: 0005&lt;br /&gt;
  stk11xx: Number of interfaces : 1&lt;br /&gt;
  stk11xx: Initialize USB2.0 Syntek Camera&lt;br /&gt;
  stk11xx: Syntek USB2.0 Camera is ready&lt;br /&gt;
  stk11xx: Syntek USB2.0 Camera is now controlling video device /dev/video0&lt;br /&gt;
  usbcore: registered new interface driver usb_stk11xx_driver&lt;br /&gt;
  stk11xx: v1.3.1 : Syntek USB Video Camera&lt;br /&gt;
  stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
  stk11xx: Check device return... (tons of lines like this) &lt;br /&gt;
&lt;br /&gt;
'''lsmod''' &lt;br /&gt;
&lt;br /&gt;
  [root@asus ~]# lsmod |grep stk &lt;br /&gt;
  stk11xx                97156  0 &lt;br /&gt;
  videodev               30208  1 stk11xx&lt;br /&gt;
&lt;br /&gt;
  [root@asus ~]# lsmod |grep video&lt;br /&gt;
  videodev               30208  1 stk11xx&lt;br /&gt;
  video                  20368  0 &lt;br /&gt;
  output                  6656  1 video&lt;br /&gt;
  v4l1_compat            15364  1 videodev&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''xawtv output''' xawtv shows three frozen frames then blacks out, &lt;br /&gt;
&lt;br /&gt;
output from launching in a terminal:&lt;br /&gt;
&lt;br /&gt;
  xinerama 0: 1280x800+0+0&lt;br /&gt;
  /dev/video0 [v4l2]: no overlay support&lt;br /&gt;
  v4l-conf had some trouble, trying to continue anyway&lt;br /&gt;
  ioctl: VIDIOC_S_CTRL(id=9963778;value=32767): Unknown error 515&lt;br /&gt;
  ioctl: VIDIOC_S_CTRL(id=9963776;value=32767): Unknown error 515&lt;br /&gt;
  ioctl: VIDIOC_S_CTRL(id=9963777;value=32767): Unknown error 515&lt;br /&gt;
  v4l2: oops: select timeout&lt;br /&gt;
&lt;br /&gt;
(led light next to the camera shows up fine)&lt;br /&gt;
&lt;br /&gt;
'''dmesg after closing xawtv'''&lt;br /&gt;
&lt;br /&gt;
&amp;amp;&amp;amp; lots of&lt;br /&gt;
&lt;br /&gt;
  [root@asus ~]# xawtv&lt;br /&gt;
  This is xawtv-3.95, running on Linux/i686 (2.6.25.14-108.fc9.i686)stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
  stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
  stk11xx: Error : Register 0x0001 = 02&lt;br /&gt;
  stk11xx: Error : Register 0x0001 = 02&lt;br /&gt;
  stk11xx: Error : Register 0x0001 = 02&lt;br /&gt;
  stk11xx: Error : Register 0x0001 = 02&lt;br /&gt;
  stk11xx: Error : Register 0x0001 = 02&lt;br /&gt;
  stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
  stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
&lt;br /&gt;
'''VLC''' complains it can't open /dev/video0&lt;br /&gt;
&lt;br /&gt;
'''SKYPE''' shows black screen&lt;br /&gt;
&lt;br /&gt;
'''/var/log''' just do lots of&lt;br /&gt;
 &lt;br /&gt;
...&lt;br /&gt;
 Aug 23 17:10:19 asus kernel: stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
 Aug 23 17:10:19 asus kernel: stk11xx: Check device return error (0x0201 = 0C) !&lt;br /&gt;
 Aug 23 17:10:21 asus kernel: stk11xx: Error : Register 0x0001 = 02&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
'''details'''&lt;br /&gt;
 &lt;br /&gt;
 Bus 002 Device 002: ID 174f:6a33 Syntek &lt;br /&gt;
 Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            0 (Defined at Interface level)&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x174f Syntek&lt;br /&gt;
  idProduct          0x6a33 &lt;br /&gt;
  bcdDevice            0.05&lt;br /&gt;
  iManufacturer           1 &lt;br /&gt;
  iProduct                2 &lt;br /&gt;
  iSerial                10 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength          147&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              500mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;
      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;
      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0000  1x 0 bytes&lt;br /&gt;
        bInterval               5&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0000  1x 0 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       1&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;
      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;
      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0002  1x 2 bytes&lt;br /&gt;
        bInterval               5&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0300  1x 768 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       2&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;
      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;
      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0002  1x 2 bytes&lt;br /&gt;
        bInterval               5&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x03fc  1x 1020 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       3&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;
      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;
      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0002  1x 2 bytes&lt;br /&gt;
        bInterval               5&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0400  1x 1024 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       4&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;
      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;
      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0002  1x 2 bytes&lt;br /&gt;
        bInterval               5&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0c00  2x 1024 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       5&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;
      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;
      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0002  1x 2 bytes&lt;br /&gt;
        bInterval               5&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x1400  3x 1024 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==Tap Dance==&lt;br /&gt;
&lt;br /&gt;
My TouchPad does Point, Click, Split-Click, ScrollDown &amp;amp; ScrollLateral... But it won't Tap or DoubleTap.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:SOLVED'''&lt;br /&gt;
&lt;br /&gt;
on fedora forums:&lt;br /&gt;
http://forums.fedoraforum.org/showpost.php?p=1068150&amp;amp;postcount=3&lt;br /&gt;
 &lt;br /&gt;
'''EDIT:SOLVED'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[fa9@asus ~]$ cat /proc/bus/output/devices'''&lt;br /&gt;
 []&lt;br /&gt;
 I: Bus=0011 Vendor=0002 Product=0007 Version=01b1&lt;br /&gt;
 N: Name=&amp;quot;SynPS/2 Synaptics TouchPad&amp;quot;&lt;br /&gt;
 P: Phys=isa0060/serio4/input0&lt;br /&gt;
 S: Sysfs=/devices/platform/i8042/serio4/input/input2&lt;br /&gt;
 U: Uniq=&lt;br /&gt;
 H: Handlers=mouse1 event2 &lt;br /&gt;
 B: EV=b&lt;br /&gt;
 B: KEY=6420 0 70000 0 0 0 0 0 0 0 0&lt;br /&gt;
 B: ABS=11000003&lt;br /&gt;
 []&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
&lt;br /&gt;
'''EDIT:SOVED including Firefox flashplayer'''&lt;br /&gt;
&lt;br /&gt;
To get your HD soundcard from intel to work, you have to create a file, or edit it, in the folder /etc/modprobe.d/, called alsa-base;&lt;br /&gt;
&lt;br /&gt;
''add the following line:''&lt;br /&gt;
&lt;br /&gt;
  options snd-hda-intel model=lenovo&lt;br /&gt;
&lt;br /&gt;
this worked on my ASUS F9E, sound is: &lt;br /&gt;
&lt;br /&gt;
  00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to get sound to work with the official adobe rpm of flashplayer 9, you need to add libflashsupport:&lt;br /&gt;
&lt;br /&gt;
 sudo yum -y install libflashsupport&lt;br /&gt;
&lt;br /&gt;
its only 8.5kb so you can safely go for it.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:SOVED'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No sound. I got it under F8 by adding all the ALSA stuff with yumex, but it doesn't work that easy here...&lt;br /&gt;
&lt;br /&gt;
 ┌────────────────────────────────────────────────[AlsaMixer v1.0.16 (Press Escape to quit)]─────────────────────────────────────────────────┐&lt;br /&gt;
 │ Card: HDA Intel                                                                                                                           │&lt;br /&gt;
 │ Chip: Generic 1095 ID 1392                                                                                                                │&lt;br /&gt;
 │ View:  Playback  Capture [All]                                                                                                            │&lt;br /&gt;
 │ Item: Master [dB gain=0.00]                                                                                                               │&lt;br /&gt;
 │                                                                                                                                           │&lt;br /&gt;
 │    ┌──┐              ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    │▒▒│              │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │▒▒│     │  │     │  │     │▒▒│     │  │                                │&lt;br /&gt;
 │    ├──┤     ┌──┐     └──┘     ├──┤     ├──┤     └──┘     ├──┤     ├──┤     ├──┤     └──┘     ├──┤     └──┘     ┌──┐     Line     ┌──┐     │&lt;br /&gt;
 │    │OO│     │OO│              │OO│     │MM│              │OO│     │OO│     │MM│              │OO│              │MM│              │OO│     │&lt;br /&gt;
 │    └──┘     └──┘              └──┘     └──┘              └──┘     └──┘     └──┘              └──┘    L    R    └──┘              └──┘     │&lt;br /&gt;
 │                                                                                                      CAPTUR                               │&lt;br /&gt;
 │     100             98&amp;lt;&amp;gt;98  100&amp;lt;&amp;gt;100   0&amp;lt;&amp;gt;0     0&amp;lt;&amp;gt;0   100&amp;lt;&amp;gt;100 100&amp;lt;&amp;gt;100   0&amp;lt;&amp;gt;0     0&amp;lt;&amp;gt;0   100&amp;lt;&amp;gt;100   0&amp;lt;&amp;gt;0                                │&lt;br /&gt;
 │ &amp;lt; Master &amp;gt;Headphon   PCM     Front   Front Mi Front Mi   Line      CD      Mic    Mic Boos PC Speak Capture  Caller I Input So Off-hook   │&lt;br /&gt;
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''outputs:'''&lt;br /&gt;
&lt;br /&gt;
'''[fa9@asus ~]$ /sbin/lspci -v|grep -i audio'''&lt;br /&gt;
  00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)&lt;br /&gt;
&lt;br /&gt;
'''[root@asus ~]# lspci -v|grep snd'''&lt;br /&gt;
  Kernel modules: snd-hda-intel&lt;br /&gt;
&lt;br /&gt;
That is the right driver for the right card,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[root@asus ~]# aplay -l'''&lt;br /&gt;
    **** List of PLAYBACK Hardware Devices ****&lt;br /&gt;
  card 0: Intel [HDA Intel], device 0: ALC861VD Analog [ALC861VD Analog]&lt;br /&gt;
    Subdevices: 1/1&lt;br /&gt;
    Subdevice #0: subdevice #0&lt;br /&gt;
  card 0: Intel [HDA Intel], device 6: Si3054 Modem [Si3054 Modem]&lt;br /&gt;
    Subdevices: 1/1&lt;br /&gt;
    Subdevice #0: subdevice #0&lt;br /&gt;
&lt;br /&gt;
'''[root@asus ~]# modinfo soundcore'''&lt;br /&gt;
  filename:       /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/soundcore.ko&lt;br /&gt;
  alias:          char-major-14-*&lt;br /&gt;
  license:        GPL&lt;br /&gt;
  author:         Alan Cox&lt;br /&gt;
  description:    Core sound module&lt;br /&gt;
  srcversion:     548AA54AF08207316C104F8&lt;br /&gt;
  depends:        &lt;br /&gt;
  vermagic:       2.6.25.14-108.fc9.i686 SMP mod_unload 686 4KSTACKS &lt;br /&gt;
&lt;br /&gt;
'''[fa9@asus ~]$ amixer'''&lt;br /&gt;
&lt;br /&gt;
Simple mixer control 'Master',0&lt;br /&gt;
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined&lt;br /&gt;
  Playback channels: Mono&lt;br /&gt;
  Limits: Playback 0 - 64&lt;br /&gt;
  Mono: Playback 64 [100%] [0.00dB] [on]&lt;br /&gt;
Simple mixer control 'Headphone',0&lt;br /&gt;
  Capabilities: pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback [on]&lt;br /&gt;
  Front Right: Playback [on]&lt;br /&gt;
Simple mixer control 'PCM',0&lt;br /&gt;
  Capabilities: pvolume&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Limits: Playback 0 - 255&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback 250 [98%] [-1.00dB]&lt;br /&gt;
  Front Right: Playback 250 [98%] [-1.00dB]&lt;br /&gt;
Simple mixer control 'Front',0&lt;br /&gt;
  Capabilities: pvolume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Limits: Playback 0 - 64&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback 64 [100%] [0.00dB] [on]&lt;br /&gt;
  Front Right: Playback 64 [100%] [0.00dB] [on]&lt;br /&gt;
Simple mixer control 'Front Mic',0&lt;br /&gt;
  Capabilities: pvolume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Limits: Playback 0 - 31&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback 0 [0%] [-34.50dB] [off]&lt;br /&gt;
  Front Right: Playback 0 [0%] [-34.50dB] [off]&lt;br /&gt;
Simple mixer control 'Front Mic Boost',0&lt;br /&gt;
  Capabilities: volume&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 3&lt;br /&gt;
  Front Left: 0 [0%]&lt;br /&gt;
  Front Right: 0 [0%]&lt;br /&gt;
Simple mixer control 'Line',0&lt;br /&gt;
  Capabilities: pvolume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Limits: Playback 0 - 31&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback 31 [100%] [12.00dB] [on]&lt;br /&gt;
  Front Right: Playback 31 [100%] [12.00dB] [on]&lt;br /&gt;
Simple mixer control 'CD',0&lt;br /&gt;
  Capabilities: pvolume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Limits: Playback 0 - 31&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback 31 [100%] [12.00dB] [on]&lt;br /&gt;
  Front Right: Playback 31 [100%] [12.00dB] [on]&lt;br /&gt;
Simple mixer control 'Mic',0&lt;br /&gt;
  Capabilities: pvolume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Limits: Playback 0 - 31&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback 0 [0%] [-34.50dB] [off]&lt;br /&gt;
  Front Right: Playback 0 [0%] [-34.50dB] [off]&lt;br /&gt;
Simple mixer control 'Mic Boost',0&lt;br /&gt;
  Capabilities: volume&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 3&lt;br /&gt;
  Front Left: 0 [0%]&lt;br /&gt;
  Front Right: 0 [0%]&lt;br /&gt;
Simple mixer control 'PC Speaker',0&lt;br /&gt;
  Capabilities: pvolume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Limits: Playback 0 - 31&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback 31 [100%] [12.00dB] [on]&lt;br /&gt;
  Front Right: Playback 31 [100%] [12.00dB] [on]&lt;br /&gt;
Simple mixer control 'Capture',0&lt;br /&gt;
  Capabilities: cvolume cswitch&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: Capture 0 - 31&lt;br /&gt;
  Front Left: Capture 0 [0%] [-13.50dB] [on]&lt;br /&gt;
  Front Right: Capture 0 [0%] [-13.50dB] [on]&lt;br /&gt;
Simple mixer control 'Caller ID',0&lt;br /&gt;
  Capabilities: pswitch pswitch-joined&lt;br /&gt;
  Playback channels: Mono&lt;br /&gt;
  Mono: Playback [off]&lt;br /&gt;
Simple mixer control 'Input Source',0&lt;br /&gt;
  Capabilities: cenum&lt;br /&gt;
  Items: 'Mic' 'Front Mic' 'Line' 'CD'&lt;br /&gt;
  Item0: 'Line'&lt;br /&gt;
Simple mixer control 'Off-hook',0&lt;br /&gt;
  Capabilities: pswitch pswitch-joined&lt;br /&gt;
  Playback channels: Mono&lt;br /&gt;
  Mono: Playback [on]&lt;br /&gt;
&lt;br /&gt;
'''[root@asus ~]# find /lib/modules/2.6.25.14-108.fc9.i686|grep snd'''&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/snd-mts64.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/vx/snd-vx-lib.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/snd-dummy.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/snd-portman2x4.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/snd-mtpav.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/opl3/snd-opl3-lib.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/opl3/snd-opl3-synth.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/mpu401/snd-mpu401.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/snd-serial-u16550.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/snd-virmidi.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/opl4/snd-opl4-synth.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/drivers/opl4/snd-opl4-lib.ko &lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/snd-es18xx.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/snd-sc6000.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/snd-opl3sa2.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/ad1848/snd-ad1848-lib.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/snd-adlib.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/sb/snd-sb16-dsp.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/sb/snd-sbawe.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/sb/snd-sb-common.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/sb/snd-sb16.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/sb/snd-emu8000-synth.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/opti9xx/snd-miro.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/cs423x/snd-cs4236-lib.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/cs423x/snd-cs4236.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/isa/cs423x/snd-cs4231-lib.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/usb/snd-usb-audio.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/usb/usx2y/snd-usb-usx2y.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/usb/caiaq/snd-usb-caiaq.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/usb/snd-usb-lib.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/i2c/other/snd-ak4xxx-adda.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/i2c/other/snd-pt2258.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/i2c/other/snd-ak4114.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/i2c/other/snd-tea575x-tuner.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/i2c/snd-i2c.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/i2c/snd-cs8427.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/synth/emux/snd-emux-synth.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/synth/snd-util-mem.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/riptide/snd-riptide.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/ymfpci/snd-ymfpci.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-ad1889.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-ens1370.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-cmipci.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-bt87x.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/hda/snd-hda-intel.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-ens1371.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/pcxhr/snd-pcxhr.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-es1968.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-cs5530.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-rme32.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-azt3328.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/ice1712/snd-ice1724.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/ice1712/snd-ice1712.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-atiixp-modem.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-maestro3.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-via82xx.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-atiixp.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-indigoio.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-indigodj.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-mona.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-gina20.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-indigo.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-mia.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-layla24.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-darla24.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-echo3g.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-gina24.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-layla20.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/echoaudio/snd-darla20.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/cs46xx/snd-cs46xx.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/mixart/snd-mixart.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-cs4281.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/ali5451/snd-ali5451.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-intel8x0.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/ac97/snd-ak4531-codec.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/ac97/snd-ac97-codec.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/ca0106/snd-ca0106.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-intel8x0m.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-als300.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/nm256/snd-nm256.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/au88x0/snd-au8820.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/au88x0/snd-au8830.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/au88x0/snd-au8810.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-via82xx-modem.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-rme96.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-fm801.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-als4000.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/vx222/snd-vx222.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/emu10k1/snd-emu10k1.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/emu10k1/snd-emu10k1x.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/oxygen/snd-virtuoso.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/oxygen/snd-oxygen.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/oxygen/snd-hifier.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/oxygen/snd-oxygen-lib.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-sonicvibes.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-sis7019.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/trident/snd-trident.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/korg1212/snd-korg1212.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/snd-es1938.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/rme9652/snd-hdsp.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/rme9652/snd-hdspm.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/pci/rme9652/snd-rme9652.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/snd-rawmidi.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/snd-hwdep.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/snd-page-alloc.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/snd-timer.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/snd-pcm.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/snd.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/oss/snd-mixer-oss.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/oss/snd-pcm-oss.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/seq/snd-seq-midi.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/seq/snd-seq-dummy.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/seq/snd-seq-midi-emul.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/seq/oss/snd-seq-oss.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/seq/snd-seq-device.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/seq/snd-seq.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/seq/snd-seq-midi-event.ko&lt;br /&gt;
  /lib/modules/2.6.25.14-108.fc9.i686/kernel/sound/core/seq/snd-seq-virmidi.ko&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Syntek_readme</id>
		<title>Syntek readme</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Syntek_readme"/>
				<updated>2011-10-14T23:26:18Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Syntek USB 2.0 Video Camera&lt;br /&gt;
===========================&lt;br /&gt;
&lt;br /&gt;
Note : The syntek USB 2.0 video camera driver for DC-1125 ans STK-1135 is currently being developed&lt;br /&gt;
on Linux. This driver can do damages. Use this driver only if you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Table of contents :&lt;br /&gt;
&lt;br /&gt;
1. Requirements&lt;br /&gt;
&lt;br /&gt;
2. Compilation&lt;br /&gt;
&lt;br /&gt;
2.1 Documentation&lt;br /&gt;
&lt;br /&gt;
2.2 Kernel module&lt;br /&gt;
&lt;br /&gt;
3. Installation&lt;br /&gt;
&lt;br /&gt;
4. Usage&lt;br /&gt;
&lt;br /&gt;
4.1 Option &amp;quot;fps&amp;quot; module&lt;br /&gt;
&lt;br /&gt;
4.2 Options &amp;quot;hflip&amp;quot; and &amp;quot;vflip&amp;quot; module&lt;br /&gt;
&lt;br /&gt;
4.3 Options &amp;quot;contrast&amp;quot;, &amp;quot;colour&amp;quot;, &amp;quot;whiteness&amp;quot; and &amp;quot;brightness&amp;quot;&lt;br /&gt;
&lt;br /&gt;
4.4 Use the &amp;quot;sysfs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Status of project&lt;br /&gt;
&lt;br /&gt;
6. Test experimental&lt;br /&gt;
&lt;br /&gt;
7. Debug&lt;br /&gt;
&lt;br /&gt;
7.1. 'lsusb' output&lt;br /&gt;
&lt;br /&gt;
7.2. USB logs from Windows&lt;br /&gt;
&lt;br /&gt;
7.3. USB logs from Linux&lt;br /&gt;
&lt;br /&gt;
7.4. Enable module traces&lt;br /&gt;
&lt;br /&gt;
8. Licence&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
1. Requirements&lt;br /&gt;
&lt;br /&gt;
 Kernel 2.6.18 or higher&lt;br /&gt;
 Doxygen to compile the documentation&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
2. Compilation&lt;br /&gt;
&lt;br /&gt;
2.1 Documentation&lt;br /&gt;
&lt;br /&gt;
   To build documentation :&lt;br /&gt;
   $ make -f Makefile.standalone doc&lt;br /&gt;
   $ make -f Makefile.standalone cleandoc&lt;br /&gt;
&lt;br /&gt;
2.2 Kernel module&lt;br /&gt;
&lt;br /&gt;
   To build the kernel module :&lt;br /&gt;
   $ make -f Makefile.standalone&lt;br /&gt;
     or&lt;br /&gt;
   $ make -f Makefile.standalone driver&lt;br /&gt;
&lt;br /&gt;
   $ make -f Makefile.standalone clean&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
3. Installation&lt;br /&gt;
&lt;br /&gt;
TODO...&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
4. Usage&lt;br /&gt;
&lt;br /&gt;
4.1 Option &amp;quot;fps&amp;quot; module&lt;br /&gt;
&lt;br /&gt;
   The syntek module waits the option &amp;quot;fps&amp;quot; (10, 15, 20, 25, 30) :&lt;br /&gt;
   $ modprobe stk11xx fps=30&lt;br /&gt;
&lt;br /&gt;
   By default, the fps is set to '25'.&lt;br /&gt;
&lt;br /&gt;
4.2 Options &amp;quot;hflip&amp;quot; and &amp;quot;vflip&amp;quot; module&lt;br /&gt;
 &lt;br /&gt;
   The syntek module waits the options &amp;quot;hflip&amp;quot; and &amp;quot;vflip&amp;quot; (values are 0 or 1):&lt;br /&gt;
   $ modprobe stk11xx hflip=0 vflip=1&lt;br /&gt;
&lt;br /&gt;
   By default, the hflip and vflip are set to '1'.&lt;br /&gt;
&lt;br /&gt;
4.3 Options &amp;quot;contrast&amp;quot;, &amp;quot;colour&amp;quot;, &amp;quot;brightness&amp;quot; and &amp;quot;whiteness&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
   The syntek module waits the options &amp;quot;contrast&amp;quot;, &amp;quot;colour&amp;quot;, &amp;quot;brightness&amp;quot; and &amp;quot;whiteness&amp;quot; :&lt;br /&gt;
   $ modprobe stk11xx contrast=0x7F00 colour=0x7F00&lt;br /&gt;
&lt;br /&gt;
   By default, the value of these options is set to '0x7F00'.&lt;br /&gt;
&lt;br /&gt;
4.4 Use the &amp;quot;sysfs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   In the directory : /sys/class/video4linux/videoX (by sample video0), you&lt;br /&gt;
   can read and write some parameters :&lt;br /&gt;
   $ cat hflip&lt;br /&gt;
   $ echo 0 &amp;gt; hflip&lt;br /&gt;
&lt;br /&gt;
To display informations about driver :&lt;br /&gt;
   $ cat informations&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
5. Status&lt;br /&gt;
&lt;br /&gt;
 The kernel module is currently being developped.&lt;br /&gt;
&lt;br /&gt;
 The driver supports several webcam models :&lt;br /&gt;
 - 0x174F:0xA311 : Quiet good supported (developper's model)&lt;br /&gt;
 - 0x174F:0xA821 : Supported (only the video stream)&lt;br /&gt;
 - 0x174F:0x6A31 : Supported (only the video stream)&lt;br /&gt;
 - 0x05E1:0x0501 : Like '0x174F:0xA311' (it's the same model)&lt;br /&gt;
&lt;br /&gt;
To increase the support, I need some help... Or somebody gives me the webcam !&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
6. Test experimental&lt;br /&gt;
&lt;br /&gt;
To build and load the driver, follow the steps :&lt;br /&gt;
&lt;br /&gt;
 $ make -f Makefile.standalone clean&lt;br /&gt;
 $ make -f Makefile.standalone&lt;br /&gt;
 $ modprobe videodev&lt;br /&gt;
 $ insmod stk11xx.ko&lt;br /&gt;
&lt;br /&gt;
To test the driver with the V4L v1 API (map methode) :&lt;br /&gt;
&lt;br /&gt;
 $ camorama -D --width=640 --height=480 &lt;br /&gt;
&lt;br /&gt;
To test the driver with the V4L v1 API (read methode) :&lt;br /&gt;
&lt;br /&gt;
 $ camorama -D -R --width=640 --height=480 &lt;br /&gt;
&lt;br /&gt;
To test the driver with the V4L v2 :&lt;br /&gt;
&lt;br /&gt;
 $ xawtv&lt;br /&gt;
&lt;br /&gt;
To use mplayer / mencoder :&lt;br /&gt;
&lt;br /&gt;
 $ mplayer tv:// -tv driver=v4l:width=640:height=480&lt;br /&gt;
 $ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=rgb24:device=/dev/video0&lt;br /&gt;
 $ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=yuy2:device=/dev/video0&lt;br /&gt;
 $ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=uyvy:device=/dev/video0&lt;br /&gt;
&lt;br /&gt;
 $ mencoder tv:// -tv driver=v4l:width=640:height=480:outfmt=rgb24:device=/dev/video0 -nosound -ovc lavc -o out.avi&lt;br /&gt;
 $ mencoder tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=rgb24:device=/dev/video0 -nosound -ovc lavc -o out.avi&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
7. Debug&lt;br /&gt;
&lt;br /&gt;
7.1. 'lsusb' output&lt;br /&gt;
&lt;br /&gt;
   [root@Dahlia driver]$ lsusb&lt;br /&gt;
   Bus 002 Device 002: ID 046d:c047 Logitech, Inc.&lt;br /&gt;
   Bus 002 Device 001: ID 0000:0000&lt;br /&gt;
   Bus 005 Device 001: ID 0000:0000&lt;br /&gt;
   Bus 004 Device 002: ID 0b05:1712 ASUSTek Computer, Inc.&lt;br /&gt;
   Bus 004 Device 001: ID 0000:0000&lt;br /&gt;
   Bus 003 Device 001: ID 0000:0000&lt;br /&gt;
   Bus 001 Device 004: ID 174f:a311			&amp;lt;== Our Webcam&lt;br /&gt;
   Bus 001 Device 001: ID 0000:0000&lt;br /&gt;
 &lt;br /&gt;
   [root@Dahlia driver]$ lsusb -d 174f:a311 -vvv &amp;gt; lsusb.txt&lt;br /&gt;
&lt;br /&gt;
7.2. USB logs from Windows&lt;br /&gt;
   There is 3 USB logs useful :&lt;br /&gt;
   - Log 1 : when you plug your webcam&lt;br /&gt;
   - Log 2 : when you run VideoView.exe (with the default settings)&lt;br /&gt;
   - Log 3 : when you run VideoView.exe, then change the resolution to 1280x1024&lt;br /&gt;
&lt;br /&gt;
7.3. USB logs from Linux&lt;br /&gt;
   Use the kernel module usbmon (enable option debugfs in the kernel)&lt;br /&gt;
&lt;br /&gt;
7.4. Enable module traces&lt;br /&gt;
   You can enable : CONFIG_STK11XX_DEBUG and CONFIG_STK11XX_DEBUG_STREAM&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
8. Licence&lt;br /&gt;
&lt;br /&gt;
The kernel module is distributed under the licence GPL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fedora 9 issues]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Throttling</id>
		<title>Throttling</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Throttling"/>
				<updated>2011-10-14T23:25:55Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. check that the module is loaded==&lt;br /&gt;
&lt;br /&gt;
  cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
&lt;br /&gt;
should return something like&lt;br /&gt;
&lt;br /&gt;
 ondemand&lt;br /&gt;
&lt;br /&gt;
If not, check again for acpi presence&lt;br /&gt;
&lt;br /&gt;
 lsmod|grep acpi&lt;br /&gt;
&lt;br /&gt;
and if you don't have something similar to &lt;br /&gt;
&lt;br /&gt;
 acpi_cpufreq           12365  1&lt;br /&gt;
&lt;br /&gt;
Then you are in trouble; try as rot to do '''modprobe acpi_cpufreq'''&lt;br /&gt;
&lt;br /&gt;
then check again. If not, refer to the following weblink to learn where to look for available modules for your kernel/system&lt;br /&gt;
&lt;br /&gt;
http://www.redhat.com/docs/wp/performancetuning/powermanagement/cpufreq_setup.html&lt;br /&gt;
&lt;br /&gt;
==2. Available options==&lt;br /&gt;
&lt;br /&gt;
 This section lists and describes the different types of CPUfreq governors available.&lt;br /&gt;
&lt;br /&gt;
===cpufreq_performance===&lt;br /&gt;
&lt;br /&gt;
The Performance governor forces the CPU to use the highest possible clock frequency. This frequency will be statically set, and will not change. As such, this particular governor offers no power saving benefit. It is only suitable for hours of heavy workload, and even then only during times wherein the CPU is rarely (or never) idle.&lt;br /&gt;
cpufreq_powersave&lt;br /&gt;
&lt;br /&gt;
By contrast, the Powersave governor forces the CPU to use the lowest possible clock frequency. This frequency will be statically set, and will not change. As such, this particular governor offers maximum power savings, but at the cost of the lowest CPU performance.&lt;br /&gt;
&lt;br /&gt;
The term &amp;quot;powersave&amp;quot; can sometimes be decieving, though, since (in principle) a slow CPU on full load consumes more power than a fast CPU that is not loaded. As such, while it may be advisable to set the CPU to use the Powersave governor during times of expected low activity, any unexpected high loads during that time can cause the system to actually consume more power.&lt;br /&gt;
&lt;br /&gt;
The Powersave governor is, in simple terms, more of a &amp;quot;speed limiter&amp;quot; for the CPU than a &amp;quot;power saver&amp;quot;. It is most useful in systems and environments where overheating can be a problem.&lt;br /&gt;
&lt;br /&gt;
===cpufreq_ondemand===&lt;br /&gt;
&lt;br /&gt;
The Ondemand governor is a dynamic governor that allows the CPU to achieve maximum clock frequency when system load is high, and also minimum clock frequency when the system is idle. While this allows the system to adjust power consumption accordingly with respect to system load, it does so at the expense of latency between frequency switching. As such, latency can offset any performance/power saving benefits offered by the Ondemand governor if the system switches between idle and heavy workloads too often.&lt;br /&gt;
&lt;br /&gt;
For most systems, the Ondemand governor can provide the best compromise between heat emission, power consumption, performance, and manageability. When the system is only busy at specific times of the day, the Ondemand governor will automatically switch between maximum and minimum frequency depending on the load without any further intervention.&lt;br /&gt;
&lt;br /&gt;
===cpufreq_userspace===&lt;br /&gt;
&lt;br /&gt;
The Userspace governor allows userspace programs (or any process running as root) to set the frequency. This governor is normally used in conjunction with the cpuspeed daemon. Of all the governors, Userspace is the most customizable; and depending on how it is configured, it can offer the best balance between performance and consumption for your system.&lt;br /&gt;
&lt;br /&gt;
===cpufreq_conservative===&lt;br /&gt;
&lt;br /&gt;
Like the Ondemand governor, the Conservative governor also adjusts the clock frequency according to usage (like the Ondemand governor). However, while the Ondemand governor does so in a more aggressive manner (i.e. from maximum to minimum and back), the Conservative governor switches between frequencies more gradually.&lt;br /&gt;
&lt;br /&gt;
This means that the Conservative governor will adjust to a clock frequency that it deems fitting for the load, rather than simply choosing between maximum and minimum. While this can possibly provide significant savings in power consumption, it does so at an ever greater latency than the Ondemand governor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More on the original redHat page: http://www.redhat.com/docs/wp/performancetuning/powermanagement/governor_types.html&lt;br /&gt;
&lt;br /&gt;
==3. Enabling a new governor==&lt;br /&gt;
&lt;br /&gt;
 echo [governor] &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
&lt;br /&gt;
Where [governor] is any of the above listed items like '''conservative''' and such&lt;br /&gt;
&lt;br /&gt;
==4. Get Info on your system status &amp;amp; fine tune it== &lt;br /&gt;
&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
&lt;br /&gt;
will give you the current governor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To view the current value of each tunable, use cat [tunable]. For example, to view the current speed of cpu0 (in KHz), use:&lt;br /&gt;
&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq.&lt;br /&gt;
&lt;br /&gt;
Once you've chosen an appropriate CPUfreq governor, you can further tune the speed of each CPU using the tunables found in '''/sys/devices/system/cpu/[cpu ID]/cpufreq/'''.&lt;br /&gt;
&lt;br /&gt;
To change the value of each tunable, use &lt;br /&gt;
&lt;br /&gt;
 echo [value] &amp;gt; /sys/devices/system/cpu/[cpu ID]/cpufreq/[tunable]. &lt;br /&gt;
&lt;br /&gt;
For example, to set the minimum clock speed of cpu0 to 360 KHz, use:&lt;br /&gt;
&lt;br /&gt;
 echo 360000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
&lt;br /&gt;
These tunables are:&lt;br /&gt;
&lt;br /&gt;
    * cpuinfo_min_freq — Shows the CPU's available minimum operating frequency (in KHz).&lt;br /&gt;
    * cpuinfo_max_freq — Shows the CPU's available maximum operating frequency (in KHz).&lt;br /&gt;
    * scaling_driver — Shows what CPUfreq driver is used to set the frequency on this CPU.&lt;br /&gt;
    * scaling_available_governors — Shows the CPUfreq governors available in this kernel. If you wish to use a CPUfreq governor that is not listed in this file, refer to Enabling a CPUfreq Governor in Section 3.1, “CPUfreq Setup” for instructions on how to do so.&lt;br /&gt;
    * scaling_governor — Shows what CPUfreq governor is currently in use. To use a different governor, simply use echo [governor] &amp;gt; /sys/devices/system/cpu/[cpu ID]/cpufreq/scaling_governor (refer to Enabling a CPUfreq Governor in Section 3.1, “CPUfreq Setup” for more information).&lt;br /&gt;
    * cpuinfo_cur_freq — Shows the current speed of the CPU (in KHz).&lt;br /&gt;
    * scaling_available_frequencies — Lists available frequencies for the CPU, in KHz.&lt;br /&gt;
    * scaling_min_freq and scaling_max_freq — Sets the policy limits of the CPU, in KHz.&lt;br /&gt;
      &lt;br /&gt;
===Important===&lt;br /&gt;
&lt;br /&gt;
    * When setting policy limits, you should set scaling_max_freq before scaling_min_freq.&lt;br /&gt;
    * affected_cpus — Lists CPUs that require frequency coordination software.&lt;br /&gt;
    * scaling_setspeed — Used to change the clock speed of the CPU, in KHz. You can only set a speed within the policy limits of the CPU (as per scaling_min_freq and scaling_max_freq).&lt;br /&gt;
&lt;br /&gt;
Read more:&lt;br /&gt;
&lt;br /&gt;
 http://www.redhat.com/docs/wp/performancetuning/powermanagement/tuning_cpufreq_policy_and_speed.html&lt;br /&gt;
&lt;br /&gt;
This info was stolen here:&lt;br /&gt;
&lt;br /&gt;
 http://www.redhat.com/docs/wp/performancetuning/powermanagement/alpm.html&lt;br /&gt;
&lt;br /&gt;
for my personnal purposes; I find it much more easy to gather the kind of info I need for each re-install in one single place; it's much more effective than Social Bookmarks since the docs I am pumping info from may change, get adapted for other purposes than mine, or just disappear.&lt;br /&gt;
&lt;br /&gt;
the RedHat docs is a true GoldMine of info for Fedora users, the main &amp;quot;power&amp;quot; page starts here:&lt;br /&gt;
&lt;br /&gt;
http://www.redhat.com/docs/wp/performancetuning/powermanagement/index.html&lt;br /&gt;
&lt;br /&gt;
And the full core starts here: http://www.redhat.com/docs&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Sources.list</id>
		<title>Sources.list</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Sources.list"/>
				<updated>2011-10-14T23:25:31Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; from http://www.mayin.org/ajayshah/COMPUTING/debian-principles.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; stable&lt;br /&gt;
&lt;br /&gt;
  deb http://http.us.debian.org/debian stable main contrib non-free&lt;br /&gt;
  deb http://security.debian.org stable/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; testing&lt;br /&gt;
&lt;br /&gt;
  deb http://http.us.debian.org/debian testing main contrib non-free&lt;br /&gt;
  deb http://security.debian.org testing/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; If you add ''unstable'' be sure to read [[Apt-Pinning]]!&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; unstable&lt;br /&gt;
&lt;br /&gt;
  deb http://http.us.debian.org/debian unstable main contrib non-free&lt;br /&gt;
  deb http://security.debian.org unstable/updates main contrib non-free  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[Debian]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Networking</id>
		<title>Networking</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Networking"/>
				<updated>2011-10-14T23:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of Fedora 7, 8 and 9, Networking under Linux has made huge progresses.&lt;br /&gt;
&lt;br /&gt;
==On the Move==&lt;br /&gt;
&lt;br /&gt;
These progresses are obviously always one step backward, for sure, since while Ubuntu 8.04 is still unable to roam WiFi with a WPA encryption, Fedora does and that is when I stop using it and start HSDPA (aka 3G) technology. These modems are becoming available, signal carriers often offer quite good package around their sim-based, smartphone contracts, so throw the phone away, stack the sim card in your modem and there you go, mobile and quick (up to 7.5Mbps down, 385kbs up as they say).&lt;br /&gt;
&lt;br /&gt;
Well, not quite for me yet, given the fact that I live in Phnom Penh, but it's pretty possible and ubuntuforums got tons of info on how to hook your Huawei e220 HSDPA modem to your linux box. As of Kernel 2.6.20 it was supposedly supported built-in, but there is a trick: when you plug the modem in your computer, the modem itself switches to CDROM mode since it carries its own drivers: clever for a hassle-free insecure install under Windows, but of no use for a Linux user: you need a Switch software to tick the modem back to, well, modem mode.&lt;br /&gt;
&lt;br /&gt;
That a shame; brand new &amp;quot;supported&amp;quot; stuff never quite is, you have to be patient.&lt;br /&gt;
&lt;br /&gt;
Look in http://groups.google.com/group/pplug for keyword wvdial for up-to-date working solutions to use 3G with a Huawei modem in Cambodia trough the QB operator&lt;br /&gt;
&lt;br /&gt;
==In House==&lt;br /&gt;
&lt;br /&gt;
One obvious thing all of us wants to do when they come to the point of owning several computers in one home, is for sure to network them. Fear not the HowTo NTF here, I can't quite get along with, never have, probably never will. If that's what you are looking for, pass your way: I am going straight to the point here.&lt;br /&gt;
&lt;br /&gt;
===Targets===&lt;br /&gt;
&lt;br /&gt;
It's important to know what you wanna do, here I decided I wanted:&lt;br /&gt;
&lt;br /&gt;
-A common access point for the 2 computers in the office + wifi for the guests using my facilities; that access point has to be OS-agnostic since the people I work most with have macs. A side effect is, thanks to wifi, I have a network at home too since it's right upstairs; wife and laptop covered, we are good.&lt;br /&gt;
&lt;br /&gt;
-A way to share files between the Production Heavyweight (dualCore266), Uncle Fattie (P4, 8yo) and the missus' laptop; no streaming involved, just backup stuff, upload last holidays pics, this kind of things&lt;br /&gt;
&lt;br /&gt;
-As a bonus, build a Lan that is around the same standards and OSes, with the same profiles, so it is possible and easy to remotely help, manage, peek, assist whatever any computer from any other. That's when I started hearing about SSH and VNC&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
&lt;br /&gt;
You need a Router, and that's where it comes confusing with all the Security Advices, enforced or not, by the several devices involved in a simple LAN that, as we'll see later, is also the internet access point (this is where it becomes complicated)&lt;br /&gt;
&lt;br /&gt;
Let's tackle LAN first, yes, stop being obsessed with internet and keep focus! For a classic setup, you can buy one of those Linksys (WRT54 anyone?) that will link your computers and offer them a gateway to internet, with an extra Firewall added for good measure over the Linux-Based operating system - yes, your router is all that stashed together. But don't mind that: Vis-A-Vis your internal LAN, your router will be neutral, passing the info between all 192.168.1.2&amp;gt;255 address range. So forget the Router for this step, and focus on the computers.&lt;br /&gt;
&lt;br /&gt;
- Sorry, actually, we have to tweak a detail on the router: Go to its admin panel, usually 192.168.1.1 from any browser, locate the LOCAL DHCP settings, leave it On for friends with wifi devices, and find the Range, or Start IP address, which is usually expressed as the last three digits of the 192.168.1.xxx address: There do as you like, I suggest you set the range from 200 and determine how many guest you may have at any single time as the &amp;quot;number of Addresses&amp;quot; field.&lt;br /&gt;
&lt;br /&gt;
'''If this router box is wifi-capable, be sure to enforce some kind of encryption for it's wireless transmitter, otherwise the full neighbourhood will enjoy Free Internet on your account'''&lt;br /&gt;
&lt;br /&gt;
Now power up all computers, after having wired them all to the router (wifi later)&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
&lt;br /&gt;
Best to work with Fixed IP! If you use NetworkManager in F9, you can decide which machine is called what in a moment. Go to System, Administration, Services and check out that &amp;quot;NetworkManager&amp;quot; is ticked - or not!&lt;br /&gt;
&lt;br /&gt;
I don't use it for fixed machines that I want to work with fixed IP, look into system-config-network, all that you may need is there!&lt;br /&gt;
&lt;br /&gt;
==Manage your router, tidy up your ports==&lt;br /&gt;
&lt;br /&gt;
Your router is usually a firewall too; sometimes softwares like peer2peer networks, or online gaming applications will need specific ports to be opened in your system; don't forget your linux box has it's own firewall too when starting to pull your hairs with blocked ports and non-functional links.&lt;br /&gt;
&lt;br /&gt;
One control way is to setup your system and your router to accept ssh connections; then go to&lt;br /&gt;
&lt;br /&gt;
 www.canyouseeme.org&lt;br /&gt;
&lt;br /&gt;
to check if your port nr 22 seems to be available; there are other reasons besides your lack of skills for it not ot be available, including your ISP doing strange things with their IP addressing or Proxies settings.&lt;br /&gt;
&lt;br /&gt;
==OpenDNS.org==&lt;br /&gt;
&lt;br /&gt;
208.67.222.222&lt;br /&gt;
&lt;br /&gt;
==Manual Network Setup==&lt;br /&gt;
&lt;br /&gt;
(Probably applies solely to the likes of Slackware, Gentoo, LFS &amp;amp; al)&lt;br /&gt;
&lt;br /&gt;
you will need the following information before continuing:&lt;br /&gt;
&lt;br /&gt;
the following comes from the gentoo docs, and is protected by Creative Commons - Attribution / Share Alike license.&lt;br /&gt;
&lt;br /&gt;
   Network Item    Example                        &lt;br /&gt;
   Your IP address 192.168.0.2                    &lt;br /&gt;
   Netmask         255.255.255.0                  &lt;br /&gt;
   Broadcast       192.168.0.255                  &lt;br /&gt;
   Gateway         192.168.0.1                    &lt;br /&gt;
   Nameserver(s)   195.130.130.5, 195.130.130.133 &lt;br /&gt;
&lt;br /&gt;
Using ifconfig and route&lt;br /&gt;
&lt;br /&gt;
Setting up your network consists of three steps. First we assign ourselves&lt;br /&gt;
an IP address using ifconfig. Then we set up routing to the gateway using&lt;br /&gt;
route. Then we finish up by placing the nameserver IPs in&lt;br /&gt;
&lt;br /&gt;
   /etc/resolv.conf.&lt;br /&gt;
&lt;br /&gt;
To assign an IP address, you will need your IP address, broadcast address&lt;br /&gt;
and netmask. Then execute the following command, substituting ${IP_ADDR}&lt;br /&gt;
with your IP address, ${BROADCAST} with your broadcast address and&lt;br /&gt;
${NETMASK} with your netmask:&lt;br /&gt;
&lt;br /&gt;
   Code Listing 24: Using ifconfig                                            &lt;br /&gt;
   # ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up    &lt;br /&gt;
&lt;br /&gt;
Now set up routing using route. Substitute ${GATEWAY} with your gateway IP&lt;br /&gt;
address:&lt;br /&gt;
&lt;br /&gt;
   Code Listing 25: Using route                                               &lt;br /&gt;
   # route add default gw ${GATEWAY}                                          &lt;br /&gt;
&lt;br /&gt;
Now open /etc/resolv.conf with your favorite editor (in our example, we&lt;br /&gt;
use nano):&lt;br /&gt;
&lt;br /&gt;
   Code Listing 26: Creating /etc/resolv.conf                                 &lt;br /&gt;
   # nano -w /etc/resolv.conf                                                 &lt;br /&gt;
&lt;br /&gt;
Now fill in your nameserver(s) using the following as a template. Make&lt;br /&gt;
sure you substitute ${NAMESERVER1} and ${NAMESERVER2} with the appropriate&lt;br /&gt;
nameserver addresses:&lt;br /&gt;
&lt;br /&gt;
   Code Listing 27: /etc/resolv.conf template                                 &lt;br /&gt;
   nameserver ${NAMESERVER1}                                                  &lt;br /&gt;
   nameserver ${NAMESERVER2}                                                  &lt;br /&gt;
&lt;br /&gt;
(See opendns above for public dns servers)&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Snd_hda_intel</id>
		<title>Snd hda intel</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Snd_hda_intel"/>
				<updated>2011-10-14T23:24:34Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To get your HD soundcard from intel to work, you have to create a file, or edit it, in the folder /etc/modprobe.d/, called alsa-base;&lt;br /&gt;
&lt;br /&gt;
''add the following line:''&lt;br /&gt;
&lt;br /&gt;
  options snd-hda-intel model=lenovo&lt;br /&gt;
&lt;br /&gt;
this worked on my ASUS F9E, sound is: &lt;br /&gt;
&lt;br /&gt;
  00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Slackware</id>
		<title>Slackware</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Slackware"/>
				<updated>2011-10-14T23:24:07Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Present issues:&lt;br /&gt;
&lt;br /&gt;
* Can't get the numlock snippet to get executed upon bootup.&lt;br /&gt;
* Skype can't get video, be it with original 2.6.27.7 kernel or the brand new 2.6.29.1.&lt;br /&gt;
* Borked file in rc.d makes the init sequence interrupt?&lt;br /&gt;
* Can't switch computer down from init:4 (default slack multi/graphic user level)&lt;br /&gt;
&lt;br /&gt;
Some links:&lt;br /&gt;
&lt;br /&gt;
http://slackbuilds.org/&lt;br /&gt;
&lt;br /&gt;
http://www.slackware.org&lt;br /&gt;
&lt;br /&gt;
[[Tick &amp;amp; Untick]]ed boxes&lt;br /&gt;
&lt;br /&gt;
The [[Upgrade to KDE4.2]] Readme&lt;br /&gt;
&lt;br /&gt;
Slack won't remember the Keyboard settings it asked you twice in the install process;&lt;br /&gt;
&lt;br /&gt;
you have to know your ''keyb ID'' to insert it manually in the /etc/X11/xorg.conf file.&lt;br /&gt;
&lt;br /&gt;
Mine is ''be'' and so the relevant part of my xorg conf now looks like this:&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
        Identifier  &amp;quot;Keyboard0&amp;quot;&lt;br /&gt;
        Driver      &amp;quot;kbd&amp;quot;&lt;br /&gt;
        Option      &amp;quot;XkbModel&amp;quot; &amp;quot;pc105&amp;quot;&lt;br /&gt;
        Option      &amp;quot;XkbLayout&amp;quot; &amp;quot;be&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Three-Button standard mouse with mousewheel must be enabled this way:&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
        Identifier  &amp;quot;Mouse0&amp;quot;&lt;br /&gt;
        Driver      &amp;quot;mouse&amp;quot;&lt;br /&gt;
        Option      &amp;quot;Protocol&amp;quot; &amp;quot;auto&amp;quot;&lt;br /&gt;
        Option      &amp;quot;Device&amp;quot; &amp;quot;/dev/input/mice&amp;quot;&lt;br /&gt;
        Option      &amp;quot;Emulate3Buttons&amp;quot; &amp;quot;no&amp;quot;&lt;br /&gt;
        Option      &amp;quot;ZAxisMapping&amp;quot; &amp;quot;4 5&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Actually, I am porting again and again my same xorg.conf from previous installs; I copy them over after I finish installing the NVidia drivers. The full files, which applies to:&lt;br /&gt;
&lt;br /&gt;
* A single flat screen of 1440x900&lt;br /&gt;
* A classic mousewheel three buttons mouse&lt;br /&gt;
* A Belgian keyboard&lt;br /&gt;
* A NVidia 8/9 series accelerated graphic card&lt;br /&gt;
&lt;br /&gt;
Is to be found [[here]] for reference.&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Ssh</id>
		<title>Ssh</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Ssh"/>
				<updated>2011-10-14T23:23:41Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following give access to my laptop (the ''Server'' in this case); with the ''X'' option I forward the graphic capabilities to the client side, allowing me to start ''mahjongg'' on my screen as the ''f9'' laptop user while it actually happens (get computed) on the server side (laptop)&lt;br /&gt;
&lt;br /&gt;
 [jphf@DC266 ~]$ ssh -X -l f9 192.168.1.99&lt;br /&gt;
 key_read: uudecode 55:1d:24:5c:40:40:1f:d7:64:a8:0c:99:10:a5:59:36== failed&lt;br /&gt;
 f9@192.168.1.99's password: &lt;br /&gt;
 Last login: Mon Sep  8 15:21:22 2008 from 192.168.1.96&lt;br /&gt;
 [f9@F9E ~]$ mahjongg&lt;br /&gt;
&lt;br /&gt;
http://www.vanemery.com/Linux/XoverSSH/X-over-SSH2.html&lt;br /&gt;
&lt;br /&gt;
back to [[Howtos]]&lt;br /&gt;
&lt;br /&gt;
If you happen to have the Domain Name Service working on your LAN, then you can actually connect to other computers by calling them by their name (not that I found the IP ever hard to find):&lt;br /&gt;
&lt;br /&gt;
 '''How''' do I do that, Caveman-Style?&lt;br /&gt;
 '''Just''' edit, on every machine of your lan, the file &amp;quot;/etc/hosts&amp;quot; &lt;br /&gt;
 to add something like '''known_IP  known_machine name''', for every machine:&lt;br /&gt;
 (you need to specify only the OTHER machine's names)&lt;br /&gt;
 &lt;br /&gt;
  192.168.1.99    (I put my laptop name here)    &lt;br /&gt;
  192.168.1.98    (I put the other wotkstation name here)  &lt;br /&gt;
 after the usual lines like:&lt;br /&gt;
  # Do not remove the following line, or various programs&lt;br /&gt;
  # that require network functionality will fail.&lt;br /&gt;
  127.0.0.1       DC266   localhost.localdomain   localhost&lt;br /&gt;
  ::1     localhost6.localdomain6 localhost6&lt;br /&gt;
&lt;br /&gt;
This implies that you use fixed IP I guess, or at least in my bag of tricks. And it doesn't require you to build your own DNS server, which, I assume, makes it just simpler. You have to be root to edit /etc/hosts; and you need to restart your network afterwards.&lt;br /&gt;
&lt;br /&gt;
One of the reason I use Fedora, let's restart our network:&lt;br /&gt;
&lt;br /&gt;
 # service network restart&lt;br /&gt;
&lt;br /&gt;
As simple as that. Yes, Ubuntu people can do&lt;br /&gt;
&lt;br /&gt;
 sudo networking restart&lt;br /&gt;
&lt;br /&gt;
which is quite simple too. Can't they just agree on a method?&lt;br /&gt;
&lt;br /&gt;
==passworldess, yet secure, login:==&lt;br /&gt;
&lt;br /&gt;
Thanks to my [http://groups.google.com/group/pplug?hl=en PPLUG] friend Bart, there's this solution too:&lt;br /&gt;
&lt;br /&gt;
http://www.cs.toronto.edu/~murray/compnotes/passwordless_ssh.html&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Rsync</id>
		<title>Rsync</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Rsync"/>
				<updated>2011-10-14T23:23:19Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=rsync=&lt;br /&gt;
&lt;br /&gt;
==Laptop to PC==&lt;br /&gt;
&lt;br /&gt;
The following line works from my main Desktop to grab the Download folder in the laptop and update the contents of my drives on this Desktop:&lt;br /&gt;
&lt;br /&gt;
 jphf@DC266 Download]$ rsync -v -r f9@F9E:/home/f9/Download/* /sharedraid/matos/&lt;br /&gt;
&lt;br /&gt;
'''you don't need to be root,'''&lt;br /&gt;
&lt;br /&gt;
rsync is the name of the software you use to &amp;quot;Remotely Sync&amp;quot; folders,&lt;br /&gt;
 &lt;br /&gt;
 -v or --verbose stands for, well, verbosity and does that,&lt;br /&gt;
 -r or --recursive tells it to dig down further into the Directory Tree, otherwise it just catches files in the source folder,&lt;br /&gt;
&lt;br /&gt;
'''First, your SOURCE target:'''&lt;br /&gt;
&lt;br /&gt;
 f9@F9E tells it to log as user '''f9''' on the remote '''F9E''' machine, our laptop&lt;br /&gt;
 f9@F9E:/home/f9/Download/* tells it then to take ALL in /home/f9/Download/&lt;br /&gt;
 &lt;br /&gt;
''that of course only works if you declared your machines in /etc/hosts; otherwise, just use their IP addresses, it'll do the same''&lt;br /&gt;
&lt;br /&gt;
'''Then, your RECEIVING target:'''&lt;br /&gt;
 /sharedraid/matos/ is where I will get all the F9E Download's folder items.&lt;br /&gt;
&lt;br /&gt;
That's useful because it's the Laptop, being the less Energy-Hungry, that does all the downloads here on a quite 24/7/365 basis&lt;br /&gt;
(What I do with all these bytes is my problem) and today my wife leaves on duty travel and needs it, so I will continue the last tor&lt;br /&gt;
rent with this PowerHog of DualCore 2.66.&lt;br /&gt;
&lt;br /&gt;
==Pod to PC (on same machine)==&lt;br /&gt;
Now then, what about old-school filesharing, pod-exchanging? In all fairness, updating the music folder should be:&lt;br /&gt;
&lt;br /&gt;
 jphf@DC266 Download]$ rsync -v -r /media/YOURIPOD/path/to/wusic/* /path/to/your/music/&lt;br /&gt;
&lt;br /&gt;
That's with your pod attached to the same computer, and that's too with a non-mac pod that runs [http://www.rockbox.org RockBox] :)&lt;br /&gt;
&lt;br /&gt;
==Movies on Laptop to Desktop (over network)==&lt;br /&gt;
'''Movies''' from Laptop to RAID array on DC266&lt;br /&gt;
 &lt;br /&gt;
 rsync -v -r f9@F9E:/home/f9/Videos/* /sharedraid/movies/&lt;br /&gt;
&lt;br /&gt;
==from netbook, take from Laptop==&lt;br /&gt;
&lt;br /&gt;
From Acer, get Pictures from Asus to AcerOne, the whole shebang:&lt;br /&gt;
&lt;br /&gt;
  rsync -v -r f9@AA1:/home/f9/Pictures/* /home/user/Pictures/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Summary again=&lt;br /&gt;
 &lt;br /&gt;
  '''from receiving mahine''': rsync -rv user@machine:/path/to/folder /path/to/folder/to/copy/to&lt;br /&gt;
 &lt;br /&gt;
  '''from old, sending machine''': rsync -rv /path/to/archive user@machine:/path/to/folder&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=RAID</id>
		<title>RAID</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=RAID"/>
				<updated>2011-10-14T23:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Yo people be careful, the following definitely falls into the ''&amp;quot;Don't try this at home kids&amp;quot;'' line.&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
&lt;br /&gt;
My RAID1 array failed; long story short, I have a crappy, expensive, full-featured ASUS motherboard that's 13 months old that came with a 12 months warranty; Now stuff is imploding from everywhere, this piece of hardware went to the workshop three times already: PSU failure &amp;amp; PCI Express Port failures.&lt;br /&gt;
&lt;br /&gt;
3 days ago, the computer booted up with only 1 out of 3 hard drives (the last one), and booted only on a spare root slackware recovery partition that I had luckily lying around this third drive. I am assuming SATA ports failures this time. Why not, it fits the picture.&lt;br /&gt;
&lt;br /&gt;
My drive geography is as follow:&lt;br /&gt;
&lt;br /&gt;
          SIZES     Drive SD'''A'''                Drive SD'''B'''                Drive SD'''C'''&lt;br /&gt;
                                                                                          &lt;br /&gt;
 sdX'''1'''     100GB     DATA SPARE               CRITICAL DATA in RAID1---CRITICAL DATA in RAID1&lt;br /&gt;
 &lt;br /&gt;
 sdX'''2'''     1GB       SWAP 1                   SWAP 2                   SWAP 3&lt;br /&gt;
 &lt;br /&gt;
 sdX'''3'''     19Gb      Debian                   Fedora                   Slackware&lt;br /&gt;
      &lt;br /&gt;
 sdX'''4'''     30GB      Slack Home               Debian Home              Fedora Home&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The distro I use for real is Fedora 7; Debian is an old ubuntu-something that I haven't fired up in ages, and the Slackware is my trusty recovery tool (faster than a live disc)&lt;br /&gt;
&lt;br /&gt;
I am not using /home much, everything is on the sdb1/sdc1 RAID1 array, so to be available from all distros; it's the place for all pics, music, movies and for backups of my work's flashdrives + mails; it also holds main distros' .iso files and some more K3b .iso's from work that I cannot carry on my flash.&lt;br /&gt;
&lt;br /&gt;
As said above, one day my fedora system would not boot, with errors messages of the system trying to hook the two first disks (sda &amp;amp; sdb) at different sata speeds and continuously failing; I achieved to boot slackware with lots of patience, only in root mode since it's /home partition on sda4 wasn't available; from there the first thing I did was copying all to an external USB HDD; I sure planned to have a serious look at this hardware but first, BACKUP!&lt;br /&gt;
&lt;br /&gt;
 If you ever went to the AnAnA repair shop, you'd understand me: the experience of looking at their faces when you explain them,&lt;br /&gt;
 on a faulty PSU unit that need to be repaired, that yes your drives contain critical data from work isn't pleasant at best. &lt;br /&gt;
 It's written in their fine prints that they do not take responsibility anyway.&lt;br /&gt;
&lt;br /&gt;
So then, still, +1 for linux: I was able to recover data, it was &amp;quot;safe&amp;quot; on the usb drive, I can start to tackle the issue; basically, I even still had a functional computer with an OS on it, even crippled by 66%.&lt;br /&gt;
&lt;br /&gt;
First, let's do it the Caveman-Way, myself since that's all the AnAnA boyz are going to do anyway: split the case open, un-wire everything inside, clean all connectors both on boards an on wires, and put them back, firmly and tightly, in a different order (I am not using UUID in GRUB or FSTAB, so it's still &amp;quot;in the same order&amp;quot; only I have switched all wires &amp;amp; changed the power output I use for the disk drives).&lt;br /&gt;
&lt;br /&gt;
'''reboot''' ... ''works fine no error messages, no hangs on sata connection...'' ... '''Wait!'''&lt;br /&gt;
&lt;br /&gt;
Stuff seems fine, until I noticed my two sdb1/sdc1 drives are out of sync since I &amp;quot;touched&amp;quot; the last one while fiddling in Slackware; Auto-recovery, Auto-sync doesn't seems to be on the menu, so my system shamelessly start a RAID array on... One drive. I understood later: to speed up backup, I did delete some old-old redundant backups eating much space, so the out-of-sync feature is, well, quite normal.&lt;br /&gt;
&lt;br /&gt;
'''Keep Cool, man, you can't kill the mdadm dev from 8.000m miles away anyway.'''&lt;br /&gt;
&lt;br /&gt;
==Repair process, lessons learned &amp;amp; other bits of CLI stuff==&lt;br /&gt;
&lt;br /&gt;
 HOW would you notice you are running a half-broken RAID array?&lt;br /&gt;
 &lt;br /&gt;
 At startup time, the system will print something like:&lt;br /&gt;
 &lt;br /&gt;
 '''mdadm: Device /dev/md0 started with 1 (out of 2) drives'''&lt;br /&gt;
&lt;br /&gt;
===Diagnostic===&lt;br /&gt;
&lt;br /&gt;
If your /ect/mdadm.conf files says &amp;quot;partitions&amp;quot; rather than a specific list of drives, then mdadm reads ''/proc/partitions''&lt;br /&gt;
&lt;br /&gt;
 [root@DC266 etc]# less /proc/partitions &lt;br /&gt;
 major minor  #blocks  name&lt;br /&gt;
 &lt;br /&gt;
 ''[]''&lt;br /&gt;
   8    16  156290904 sdb&lt;br /&gt;
 ''[]''&lt;br /&gt;
   8    20   31455270 sdb4&lt;br /&gt;
   8    32  156290904 sdc&lt;br /&gt;
 ''[]''&lt;br /&gt;
   8    36   31455270 sdc4&lt;br /&gt;
   9     0  104856128 md0&lt;br /&gt;
&lt;br /&gt;
 '''fdisk -l'''           ''                                           &amp;gt;&amp;gt; ok, everybody is listed, filesystems match&lt;br /&gt;
 Device     Boot      Start      End     Blocks      Id  System&lt;br /&gt;
 ''[]''&lt;br /&gt;
 /dev/sdb1               1       13054   104856223+  fd  Linux raid autodetect&lt;br /&gt;
 ''[]''&lt;br /&gt;
 /dev/sdc1   *           1       13054   104856223+  fd  Linux raid autodetect&lt;br /&gt;
 ''[]''&lt;br /&gt;
 Disk /dev/md0: 107.3 GB, 107372675072 bytes&lt;br /&gt;
 2 heads, 4 sectors/track, 26214032 cylinders&lt;br /&gt;
 Units = cylinders of 8 * 512 = 4096 bytes&lt;br /&gt;
 &lt;br /&gt;
 Disk /dev/md0 doesn't contain a valid partition table                 &amp;gt;&amp;gt; ''That's normal, yep it is!''&lt;br /&gt;
&lt;br /&gt;
 [root@DC266 ~]# '''mdadm --detail --scan /dev/md0'''&lt;br /&gt;
        /dev/md0 :&lt;br /&gt;
         Version : 00.90.03&lt;br /&gt;
   Creation Time : Sun Sep 30 06:14:31 2007&lt;br /&gt;
      Raid Level : raid1&lt;br /&gt;
      Array Size : 104856128 (100.00 GiB 107.37 GB)&lt;br /&gt;
   Used Dev Size : 104856128 (100.00 GiB 107.37 GB)&lt;br /&gt;
    Raid Devices : 2&lt;br /&gt;
   Total Devices : 1&lt;br /&gt;
 Preferred Minor : 0&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Tue Oct 14 09:54:22 2008 &lt;br /&gt;
           State : clean, '''degraded'''                                     &amp;gt;&amp;gt; One drive is missing&lt;br /&gt;
  Active Devices : 1&lt;br /&gt;
 Working Devices : 1&lt;br /&gt;
  Failed Devices : 0                                                   &amp;lt;&amp;lt; but it's nowhere to be seen!&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
            UUID : 1a654dbc:e06168d5:e400185b:ea8dcee9&lt;br /&gt;
          Events : 0.5894&lt;br /&gt;
 &lt;br /&gt;
     Number   Major   Minor   RaidDevice State&lt;br /&gt;
        0       0        0        0      removed&lt;br /&gt;
        1       8       17        1      active sync   /dev/sdb1       &amp;gt;&amp;gt; We should see /dev/sdc1 here&lt;br /&gt;
&lt;br /&gt;
 [root@DC266 ~]# '''cat /proc/mdstat'''&lt;br /&gt;
  Personalities : [raid1] &lt;br /&gt;
            md0 : active raid1 '''sdb1[1]'''&lt;br /&gt;
                  104856128 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
  unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [root@DC266 ~] '''less /etc/mdadm.conf&lt;br /&gt;
 # mdadm.conf written out by anaconda&lt;br /&gt;
 DEVICE /dev/sd['''a'''b]1                                             &amp;gt;&amp;gt; That was a big f**cking mistypo, when rectified, it changed nothing.&lt;br /&gt;
 MAILADDR root&lt;br /&gt;
 ARRAY /dev/md0 level=raid1 num-devices=2 devices=/dev/sdb1,/dev/sdc1&lt;br /&gt;
&lt;br /&gt;
===Action===&lt;br /&gt;
&lt;br /&gt;
IF you happened to modify things on one drive during recovery attempt, then unmount the drives and do:&lt;br /&gt;
&lt;br /&gt;
  '''dd if=&amp;lt;source&amp;gt; of=&amp;lt;target&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Real world talk, I did:&lt;br /&gt;
&lt;br /&gt;
 '''dd if=/dev/sdc1 of=/dev/sdb1''' &lt;br /&gt;
&lt;br /&gt;
To get the most actual data, the one I was able to access and clean for backup, in sync with the missed drive, sdb1, before attempting to re-do the raid1 array.&lt;br /&gt;
&lt;br /&gt;
'''The following line is what to do from a 'blank' state, from  a ystem which has never touched/created the array'''&lt;br /&gt;
&lt;br /&gt;
 [root@DC266 ~]# '''mdadm --assemble --verbose /dev/md0 /dev/sdb1 /dev/sdc1'''&lt;br /&gt;
 mdadm: device /dev/md0 already active - '''cannot assemble it'''&lt;br /&gt;
&lt;br /&gt;
(seeing this afterwards points me to think that I should have stopped the one-armed array with '''mdadm -S /dev/md0''')&lt;br /&gt;
&lt;br /&gt;
The line above works if on an undamaged partition/fresh linux install where the 2 drives are recognized as a RAID partition but were not mounted/assembled at boot - I use this command to get my /dev/md0 back after new installs.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
'''EDIT: the following concern a disappeared array after, for instance, fooling around with gparted (10/03/2009, slack 12.2 on DC266) - the actual data on disc is good, they are in sync, but you, for whatever fucking reason, have to rebuild it manually because you did not change it's components, locations but, in this very case, it's block size:'''  &lt;br /&gt;
&lt;br /&gt;
OK then: destroy ''all lines'' in /etc/mdadm.conf and '''reboot'''; you &amp;quot;don't&amp;quot; have a RAID array anymore; follow this by:&lt;br /&gt;
&lt;br /&gt;
 [root@DC266 ~]# '''mdadm --create -l raid1 /dev/md0 -n 2 /dev/sdb1 /dev/sdc1'''&lt;br /&gt;
&lt;br /&gt;
'''It gave me that with Fedora7:'''&lt;br /&gt;
 &lt;br /&gt;
 mdadm: /dev/sdb1 appears to contain an ext2fs file system       size=104856128K  mtime=Tue Oct 14 13:50:38 2008&lt;br /&gt;
 mdadm: /dev/sdb1 appears to be part of a raid array:            level=raid1 devices=2 ctime=Sun Sep 30 06:14:31 2007&lt;br /&gt;
&lt;br /&gt;
 mdadm: /dev/sdc1 appears to contain an ext2fs file system       size=104856128K  mtime=Tue Oct 14 09:42:29 2008&lt;br /&gt;
 mdadm: /dev/sdc1 appears to be part of a raid array:            level=raid1 devices=2 ctime=Sun Sep 30 06:14:31 2007&lt;br /&gt;
&lt;br /&gt;
 Continue creating array? yes&lt;br /&gt;
 mdadm: array /dev/md0 started.&lt;br /&gt;
&lt;br /&gt;
 [root@DC266 ~]# cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1] &lt;br /&gt;
 md0 : active raid1 sdc1[1] sdb1[0]&lt;br /&gt;
       104856128 blocks [2/2] [UU]&lt;br /&gt;
       [==========&amp;gt;..........]  '''resync = 50.0% (52502912/104856128) finish=40.9min speed=21324K/'''&lt;br /&gt;
       &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''It gave me that with Slackware 12.2:'''&lt;br /&gt;
&lt;br /&gt;
 root@DC266:/# '''mdadm --create -l raid1 /dev/md0 -n 2 /dev/sdb1 /dev/sdc1'''&lt;br /&gt;
               mdadm: /dev/sdb1 appears to contain an ext2fs file system&lt;br /&gt;
                      size=155236060K  mtime=Tue Mar 10 13:01:19 2009&lt;br /&gt;
               mdadm: /dev/sdc1 appears to contain an ext2fs file system&lt;br /&gt;
                      size=155236060K  mtime=Mon Mar  9 18:05:19 2009&lt;br /&gt;
 &lt;br /&gt;
 Continue creating array? y&lt;br /&gt;
 mdadm: array /dev/md0 started.&lt;br /&gt;
&lt;br /&gt;
I ''think'' this should be because of gparted rewriting the table or wathever; you'll notice that it doesn't output the bit about being part of a raid array. I did notice in the past that md devices doesn't appear in gparted or appear but cannot be handled by it. Don't ask, since libparted is the same tool that allow you to build raid arrays during installs anyway.&lt;br /&gt;
&lt;br /&gt;
 root@DC266:/# cat /proc/mdstat&lt;br /&gt;
 Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] &lt;br /&gt;
 md0 : active raid1 sdc1[1] sdb1[0]&lt;br /&gt;
      155235968 blocks [2/2] [UU]&lt;br /&gt;
      [====&amp;gt;................]  resync = 24.5% (38177728/155235968) finish=50.2min speed=38782K/sec&lt;br /&gt;
       &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Better to have a backup of mdadm.conf... You never know... Warning: '''resync''' is a very slow process, and very much so if you have big drives! Be patient!&lt;br /&gt;
&lt;br /&gt;
'''Reboot'''&lt;br /&gt;
&lt;br /&gt;
Failure again, boot up sequence broken, mdadm fails; jumps to recovery mode because of bad superblock or whatever on the raid array; &lt;br /&gt;
&lt;br /&gt;
I used slackware to get to the / partition of Fedora and removed the relevant line in /etc/fstab; &lt;br /&gt;
&lt;br /&gt;
rebooted Fedora, killed ALL mdmonitor entries in rc.d and rc1.d and so on (find them with locate mdadm and locate mdmonitor)&lt;br /&gt;
&lt;br /&gt;
re-build my own mdadm.conf file in arch-classic version as follow: (it failed with uuid)&lt;br /&gt;
&lt;br /&gt;
 # mdadm.conf in manual stripped-down recovery version&lt;br /&gt;
 DEVICE /dev/sd[bc]1&lt;br /&gt;
 MAILADDR root&lt;br /&gt;
 ARRAY /dev/md0 level=raid1 num-devices=2 devices=/dev/sdb1,/dev/sdc1&lt;br /&gt;
&lt;br /&gt;
Then again, this time I rebuild the array, first stopped with:&lt;br /&gt;
&lt;br /&gt;
 mdadm -S /dev/md0&lt;br /&gt;
&lt;br /&gt;
&amp;amp;&amp;amp; followed with the instruction to build the RAID according to the default config file:&lt;br /&gt;
&lt;br /&gt;
 mdadm -As /dev/md0                               &amp;lt;&amp;lt; -A stands for Assemble; -s is not in the --help-options page.&lt;br /&gt;
&lt;br /&gt;
'''Reboot''' despite having killed all ''mdmonitor'' files, the build-in kernel support for software raid kicks in anyway, but this time I make it through and I am greeted with '''/dev/md0 started with 2 drives''' - but wait, this is all with the drive out of the fstab file, one more reboot is needed.&lt;br /&gt;
&lt;br /&gt;
Finger crossed. Why does that procedure create an md0 device at the root of my drive??&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Time to &amp;quot;defeat&amp;quot; the issue: '''2+ full days''' (Down to 30 minutes this last time... ) - Data Lost: '''None''' - Fear Factor: DataLoss-threat trouser state officially raised from &amp;quot;damp&amp;quot; to &amp;quot;brown&amp;quot; - system is currently: '''80% operational'''.'' Until further notice, that is.&lt;br /&gt;
&lt;br /&gt;
==Terminal Issue // RANT MODE==&lt;br /&gt;
&lt;br /&gt;
Rebooting the system as explained, I faced this complete crash explained, with a System Hang on Failure to load/build/whatever /dev/md0; the system goes then in recovery mode where '''the / directory is mounted read-only so you can't get the /dev/md0 line out of the fstab file'''. That's so '''fuckingly brilliant''' that I seriously think of either buying a Vista license or throw all computers away and get MacBook Pros instead.&lt;br /&gt;
&lt;br /&gt;
While recovering (again) with slackware, I noticed I have a PERFECTLY HEALTHY  RAID ARRAY there, /dev/md0 mounts without failure.&lt;br /&gt;
&lt;br /&gt;
So on top of it all, it's not even a '''&amp;quot;hard&amp;quot;'''failure; it's actually Fedora that's getting in the way.&lt;br /&gt;
&lt;br /&gt;
I've got to try&lt;br /&gt;
&lt;br /&gt;
 mount -n -o remount,rw&lt;br /&gt;
&lt;br /&gt;
next time.&lt;br /&gt;
&lt;br /&gt;
{puke}&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
&lt;br /&gt;
* mdadm seems to lack auto-recovery, auto-resync features,&lt;br /&gt;
&lt;br /&gt;
* if you have trouble, individual parts of the array can be mounted manually, more easily even if you cleared the /etc/mdadm.conf file&lt;br /&gt;
&lt;br /&gt;
* After a recovery from failed array operation, the likes of --assemble didn't worked here, hence the Caveman-Way:&lt;br /&gt;
&lt;br /&gt;
'''Delete the previous array, start a new one'''&lt;br /&gt;
&lt;br /&gt;
** Empty mdadm.conf, (As of now, it is rebuild in &amp;quot;classic&amp;quot; version as explained earlier) '''(??)'''&lt;br /&gt;
&lt;br /&gt;
** e2fsk all disks of your array with, as root, '''e2fsk /dev/sdX''',&lt;br /&gt;
&lt;br /&gt;
** mdadm --create -l raid1 /dev/md0 -n 2 /dev/sdb1 /dev/sdc1   (modify to suit your needs)&lt;br /&gt;
&lt;br /&gt;
 Details: '''mdadm''' is the invoked software&lt;br /&gt;
          '''--create''' just do that, it creates the array without touching the data on them, and does a re-sync.&lt;br /&gt;
          '''-l''' stands for Level, the type of raid array you want to create&lt;br /&gt;
          '''raid1''' is the type, in this case a perfect mirror of two discs&lt;br /&gt;
          '''/dev/md0''' is the name of the created special raid device that you will (hopefully) be able to mount later&lt;br /&gt;
          '''-n 2''' is the Number of drives (or partitions) involved&lt;br /&gt;
          '''/dev/sdb1 /dev/sdc1''' are my selected raid members&lt;br /&gt;
&lt;br /&gt;
* That's all folks, now '''wait for the discs to have re-synced''', &amp;amp; will check if anything at all still resides on these partitions afterward...&lt;br /&gt;
&lt;br /&gt;
* If needed, you can do &lt;br /&gt;
&lt;br /&gt;
  mdadm -S /dev/md0&lt;br /&gt;
&lt;br /&gt;
* then&lt;br /&gt;
 &lt;br /&gt;
 mdadm -As /dev/md0&lt;br /&gt;
&lt;br /&gt;
If you have a mdadm.conf file that is functional.&lt;br /&gt;
&lt;br /&gt;
(EDIT: DATA UNTOUCHED, IT WORKS _HERE_ but you can you get it into fstab or it will fail again ?)&lt;br /&gt;
&lt;br /&gt;
 [root@DC266 ~]# '''mdadm --detail --scan /dev/md0'''&lt;br /&gt;
         /dev/md0:&lt;br /&gt;
         Version : 00.90.03&lt;br /&gt;
   Creation Time : Tue Oct 14 14:30:24 2008&lt;br /&gt;
      Raid Level : raid1&lt;br /&gt;
      Array Size : 104856128 (100.00 GiB 107.37 GB)&lt;br /&gt;
   Used Dev Size : 104856128 (100.00 GiB 107.37 GB)&lt;br /&gt;
    Raid Devices : 2&lt;br /&gt;
   Total Devices : 2&lt;br /&gt;
 Preferred Minor : 0&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Tue Oct 14 14:30:24 2008&lt;br /&gt;
           State : clean, resyncing&lt;br /&gt;
  Active Devices : 2&lt;br /&gt;
 Working Devices : 2&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
    '''Rebuild Status : 16% complete'''                                     &amp;lt;&amp;lt; It's re-sync'ing! hurrah! Be patient!&lt;br /&gt;
 &lt;br /&gt;
            UUID : 8cfb903f:7c1fa74b:c7d50d4b:b66cff8a&lt;br /&gt;
          Events : 0.1  &lt;br /&gt;
  &lt;br /&gt;
     Number   Major   Minor   RaidDevice State&lt;br /&gt;
        0       8       17        0      active sync   /dev/sdb1&lt;br /&gt;
        1       8       33        1      active sync   /dev/sdc1&lt;br /&gt;
&lt;br /&gt;
'''Then don't forget to mount it manually, even re-create it when needed'''&lt;br /&gt;
&lt;br /&gt;
==Room for improvement==&lt;br /&gt;
&lt;br /&gt;
Get one fucking straight repair method.&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Pi</id>
		<title>Pi</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Pi"/>
				<updated>2011-10-14T23:22:24Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;from http://alien.slackbook.org/blog/calculating-pi/&lt;br /&gt;
&lt;br /&gt;
Calculating PI&lt;br /&gt;
&lt;br /&gt;
The Internet is full of “one-liners” and if you search a bit, you can find many. A one-liner typically means (a chain of) commands that produce useful results quickly.&lt;br /&gt;
&lt;br /&gt;
I came across a nice one-liner just now. The “binary calculator” or bc is a powerful UNIX tool. Calculating the value of PI with an arbitrary number of decimals (the number of decimals only restricted by the power of your OS, available RAM or internal limitations of the program) goes like this:&lt;br /&gt;
&lt;br /&gt;
    echo “scale=XXXX;4*a(1)” | bc -l&lt;br /&gt;
&lt;br /&gt;
Where “XXXX” is the number of digits you want to calculate. Calling bc with the “-l” parameter causes bc to load it’s mathematical library. The function “a()” is the arctangent function.&lt;br /&gt;
&lt;br /&gt;
Let’s say you need the value of PI with an accuracy of a thousand decimals.&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;quot;scale=1000;4*a(1)&amp;quot; | bc -l&lt;br /&gt;
 3.141592653589793238462643383279502884197169399375105820974944592307\&lt;br /&gt;
 81640628620899862803482534211706798214808651328230664709384460955058\&lt;br /&gt;
 22317253594081284811174502841027019385211055596446229489549303819644\&lt;br /&gt;
 28810975665933446128475648233786783165271201909145648566923460348610\&lt;br /&gt;
 45432664821339360726024914127372458700660631558817488152092096282925\&lt;br /&gt;
 40917153643678925903600113305305488204665213841469519415116094330572\&lt;br /&gt;
 70365759591953092186117381932611793105118548074462379962749567351885\&lt;br /&gt;
 75272489122793818301194912983367336244065664308602139494639522473719\&lt;br /&gt;
 07021798609437027705392171762931767523846748184676694051320005681271\&lt;br /&gt;
 45263560827785771342757789609173637178721468440901224953430146549585\&lt;br /&gt;
 37105079227968925892354201995611212902196086403441815981362977477130\&lt;br /&gt;
 99605187072113499999983729780499510597317328160963185950244594553469\&lt;br /&gt;
 08302642522308253344685035261931188171010003137838752886587533208381\&lt;br /&gt;
 42061717766914730359825349042875546873115956286388235378759375195778\&lt;br /&gt;
 18577805321712268066130019278766111959092164201988&lt;br /&gt;
&lt;br /&gt;
Isn’t this fun? And on my old dual P2/233MHz server, this took roughly eight seconds.&lt;br /&gt;
&lt;br /&gt;
Now, to compare the usefulness of the Linux platform to good old Solaris, this is what you get on Solaris 8:&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;quot;scale=1000;4*a(1)&amp;quot; | bc -l&lt;br /&gt;
 scale factor is too large&lt;br /&gt;
 3.14159265358979323844&lt;br /&gt;
&lt;br /&gt;
By Eric Hameleers, or Alien BOB as he is called on various Slackware forums &amp;amp; channels.&lt;br /&gt;
&lt;br /&gt;
http://alien.slackbook.org&lt;br /&gt;
&lt;br /&gt;
Back to [[Howtos]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=NXC_Tutorial</id>
		<title>NXC Tutorial</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=NXC_Tutorial"/>
				<updated>2011-10-14T21:27:08Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Programming LEGO NXT Robots using NXC from a Linux Machine.&lt;br /&gt;
&lt;br /&gt;
Tested on Fedora7 with nbc 1.01, This doc is baseed on ''Version 2.2, June 7, 2007'' by Daniele Benedettelli with revisions by John Hansen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;So I guess it makes this ''Version 2.2.1 July 2008'' by J.Ph Monteiro&lt;br /&gt;
 &lt;br /&gt;
Original Source is available [http://bricxcc.sourceforge.net/nbc/nxcdoc/NXC_tutorial.pdf here]&lt;br /&gt;
&lt;br /&gt;
==Preface==&lt;br /&gt;
&lt;br /&gt;
As happened for good old Mindstorms RIS, CyberMaster, and Spybotics, to unleash the full power of&lt;br /&gt;
Mindstorms NXT brick, you need a programming environment that is more handy than NXT-G, the National&lt;br /&gt;
Instruments Labview-like graphical language that comes with NXT retail set. Let's together dig under the bonnet, and get our hands all dirty, C-Like, shall we?&lt;br /&gt;
&lt;br /&gt;
NXC is a programming language, written by John Hansen, which was especially designed for the Lego robots. It actually runs on top of Hansen's nbc language, itself inherited from the RIS' nqc languages, all from the Same Old John, yes indeed.&lt;br /&gt;
If you have never written a program before, don't worry. NXC is really easy to use and this tutorial will lead you&lt;br /&gt;
on your first steps towards it.&lt;br /&gt;
&lt;br /&gt;
If you have followed the tutorial [[Nxt::usb]] and read [[Success Story]], you ought to be ready for some serious Brick Hacking; welcome! Make yourself comfortable, there's quite a bit of interesting material below!&lt;br /&gt;
&lt;br /&gt;
This is the Linux Version of the great Tutorial by Mr Benedettelli-revised-by-Mr-Hansen; My name is Jean-Philippe Monteiro BTW.&lt;br /&gt;
&lt;br /&gt;
As side note, Mr Benedettelli's webpage is full of Lego Mindstorms RCX and NXT related content, including a PC tool to&lt;br /&gt;
communicate with NXT:&lt;br /&gt;
&lt;br /&gt;
         [http://nxtrobotics.netsons.org Benedettelli's website]&lt;br /&gt;
&lt;br /&gt;
  '''Acknowledgements'''&lt;br /&gt;
  Many thanks go to John Hansen, whose work is priceless, and to Il Signore Benedettelli in the first place for having written all this!&lt;br /&gt;
&lt;br /&gt;
==I. Let's Get Started==&lt;br /&gt;
In this chapter I will show you how to write an extremely simple program. We are going to program a robot to&lt;br /&gt;
move forwards for 4 seconds, then backwards, slower, for 6 seconds, and then stop. Not very spectacular but it&lt;br /&gt;
will introduce you to the basic idea of programming. And it will show you how easy this is. But before we can&lt;br /&gt;
write a program, we first need a robot.&lt;br /&gt;
&lt;br /&gt;
===Building a robot===&lt;br /&gt;
&lt;br /&gt;
[[Image:Tridiot.jpeg]]&lt;br /&gt;
&lt;br /&gt;
'''Meet Tridiot''', he is my test guy for the [[NXT Snippets|Random]] stuff.&lt;br /&gt;
&lt;br /&gt;
We will need any contraption you could think of, as long as it can move on it's own two motors, and that these motors are plugged into Port '''A''' and '''C'''. The &amp;quot;official&amp;quot; robot that you could use throughout this tutorial is the LEGO' Tribot, the first rover you have been instructed to build once got&lt;br /&gt;
NXT set out of the box. The only difference is that you must connect right motor to port A, left motor to port C&lt;br /&gt;
(and later, the grabber motor to port B). Actually, any 'Bot that's able to move on two motors plugged in A and C will do, be creative, and enjoy it.&lt;br /&gt;
&lt;br /&gt;
If you are willing to try this with the &amp;quot;retail&amp;quot; robots from LEGO (which will come handy later in the tutorial) and you do not have access to the NXT-G software to get to the official building instructions, please find [http://pics.zenerves.net/index.php?gallery=linux/NXT here] a basic ImageGallery containing all the original building instructions for Rex, Spike, RobotArm and, for sure, Tribot, and I putted together a tarball (Warning! 17+ Megs!) [http://nxt.zenerves.net/8527BI.tar.bz2 here]&lt;br /&gt;
&lt;br /&gt;
===Set up your Environment===&lt;br /&gt;
&lt;br /&gt;
Tools Of The Trade are defined [[Nxt::usb#Tools_of_the_Trade|here]] - That is, all you need PRIOR to start hacking: get a connection with your brick, the [[Nbc manual|nbc]] compiler, and my two favourite Brick Management tools, [[T2n manual|t2n]] and [[NexTTool manual|NexTTool]].&lt;br /&gt;
&lt;br /&gt;
We write our programs using any Text Editor; just pick your favourite. It is for sure that your Linux distribution came with at least one, most prominent are '''gedit, kwrite, mousepad, [[Success Story|kate]]'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:NXKate1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
'''kate displaying all open snippets on the left, actual code upper right, and a terminal at the bottom; kate is truly a hugely practical tool.'''&lt;br /&gt;
&lt;br /&gt;
That's as near as you'll ever come to BricxCC with Linux.&lt;br /&gt;
&lt;br /&gt;
[[Success Story|kate]] is my favourite, because it includes a filebrowser on the left, allowing you to have sevral text files opened at the same time, and a terminal embedded at the bottom, which makes Compilation/Upload/Execution a breeze. If you set it to C# mode from ''Tools &amp;gt; Highlighting &amp;gt; Sources'' it will even support your readability with some colours, since nxc is intended to be quite C-like. You have the choice to hilight your code in C, C# and C++; I found C# to better suit me. One good thing to do then is to Save your Session so that it remains persistent each time you hack your brick.&lt;br /&gt;
&lt;br /&gt;
And Now, Sleeves Up, we are Going Down!: We are going to write a new program. So press the New File button (leftmost of the ToolBar) to create a new, empty Snippet.&lt;br /&gt;
&lt;br /&gt;
===Writing your First Programme===&lt;br /&gt;
&lt;br /&gt;
Now type in the following program:&lt;br /&gt;
&lt;br /&gt;
                 task main()&lt;br /&gt;
                 {&lt;br /&gt;
                     OnFwd(OUT_A, 75);&lt;br /&gt;
                     OnFwd(OUT_C, 75);&lt;br /&gt;
                     Wait(4000);&lt;br /&gt;
                     OnRev(OUT_AC, 50);&lt;br /&gt;
                     Wait(6000);&lt;br /&gt;
                     Off(OUT_AC);&lt;br /&gt;
                 }&lt;br /&gt;
&lt;br /&gt;
It might look a bit complicated at first, so let us analyze it.&lt;br /&gt;
&lt;br /&gt;
Programs in NXC consist of tasks. Our program has just one task, named main. Each program needs to have a&lt;br /&gt;
task called main which is the one that will be executed by the robot. You will learn more about tasks in Chapter&lt;br /&gt;
VI. A task consists of a number of commands, also called statements. There are brackets around the statements&lt;br /&gt;
such that it is clear that they all belong to this task. Each statement ends with a semicolon. In this way it is clear&lt;br /&gt;
where a statement ends and where the next statement begins. So a task looks in general as follows:&lt;br /&gt;
                                                          &lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  statement1;&lt;br /&gt;
                  statement2;&lt;br /&gt;
                    …&lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
Our program has six statements. Let us look at them one at the time:&lt;br /&gt;
&lt;br /&gt;
 OnFwd(OUT_A, 75);&lt;br /&gt;
&lt;br /&gt;
This statement tells the robot to start output A, that is, the motor connected to the output labeled A on the NXT,&lt;br /&gt;
to move forwards. The number following sets the speed of the motor to 75% of maximum speed.&lt;br /&gt;
&lt;br /&gt;
 OnFwd(OUT_C, 75);&lt;br /&gt;
&lt;br /&gt;
Same statement but now we start motor C. After these two statements, both motors are running, and the robot&lt;br /&gt;
moves forwards.&lt;br /&gt;
&lt;br /&gt;
 Wait(4000);&lt;br /&gt;
&lt;br /&gt;
Now it is time to wait for a while. This statement tells us to wait for 4 seconds. The argument, that is, the number&lt;br /&gt;
between the parentheses, gives the number of 1/1000 of a second: so you can very precisely tell the program how long to wait. For 4 seconds, the program is sleeping and the robot continues to move forwards.&lt;br /&gt;
&lt;br /&gt;
 OnRev(OUT_AC, 50);&lt;br /&gt;
&lt;br /&gt;
The robot has now moved far enough so we tell it to move in reverse direction, that is, backwards. Note that we can set both motors at once using OUT_AC as argument. We could also have combined the first two statements this way.&lt;br /&gt;
&lt;br /&gt;
 Wait(6000);&lt;br /&gt;
&lt;br /&gt;
Again we wait for 6 seconds.&lt;br /&gt;
&lt;br /&gt;
 Off(OUT_AC);&lt;br /&gt;
&lt;br /&gt;
And finally we switch both motors off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That is the whole program. It moves both motors forwards for 4 seconds, then backwards slower for 6 seconds, and&lt;br /&gt;
finally switches them off.&lt;br /&gt;
&lt;br /&gt;
===Running the program===&lt;br /&gt;
OK, congrats, you have written your first program, it needs now to be compiled (that is, changed into binary code that the robot can understand and execute) and sent to the robot using USB cable or BT dongle (called “downloading” the program).&lt;br /&gt;
&lt;br /&gt;
With [[kate]], and assuming you did all the steps from [[Nxt::usb]], first save your snippet somewhere convenient (I reckon a new, empty folder to be best) under an appropriate name, with the '''.nxc''' extension. Use the embedded Terminal from kate, it's popping from the button in the bottom statusbar, next to the Find button as it happens. Check your present working directory with '''''pwd''''' and, if needed, switch to wherever you saved your brand new snippet using the '''''cd /the/place/of/your/snippet''''' command;&lt;br /&gt;
&lt;br /&gt;
'''Compile'''&lt;br /&gt;
&lt;br /&gt;
 $ [[Nbc manual|nbc]] yourNewSnippetName.'''nxc''' -O=yourCompiledSnippedName.'''rxe''' &lt;br /&gt;
&lt;br /&gt;
The above piece of '''''CLI''''' gibberish would translate into:&lt;br /&gt;
&lt;br /&gt;
 Compile this '''N'''ote'''X'''actly'''C''' snippet and '''-O'''utput'''=''' it as '''.rxe''' machine code more digestible for the NXT brick. (the O is a block '''OH''' not a Zero.)&lt;br /&gt;
&lt;br /&gt;
'''Send to the Brick''' (plugged and switched on, of course)&lt;br /&gt;
&lt;br /&gt;
 $ [[T2n manual|t2n]] -put yourCompiledSnippedName.rxe&lt;br /&gt;
&lt;br /&gt;
You can even '''run it from here''' (may not be convenient with your USB wire attached!)&lt;br /&gt;
&lt;br /&gt;
 $ [[NexTTool manual|nexttool]] /COM=usb -run=yourCompiledSnippetname.rxe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Does the robot do what you expected? If not, check wire connections.&lt;br /&gt;
&lt;br /&gt;
===Errors in your program===&lt;br /&gt;
When typing in programs there is a reasonable chance that you make some errors. '''nbc''' notices the errors and reports them to you with their line number, which is handy: you now know where to look! (Especially if you hit F11 in kate, displaying the line numbers all along your file.)&lt;br /&gt;
&lt;br /&gt;
There are also errors that are not found by the compiler. If we had typed OUT_B this would cause the wrong&lt;br /&gt;
motor to turn. If your robot exhibits unexpected behavior, there is most likely something wrong in '''your''' program.&lt;br /&gt;
&lt;br /&gt;
It's been repeated enough I believe: Computers are jerks, they just do what's being told to them; '''blame yourself!'''&lt;br /&gt;
&lt;br /&gt;
===Changing the speed===&lt;br /&gt;
As you noticed, the robot moved rather fast. To change the speed you just change the second parameter inside&lt;br /&gt;
parentheses. The power is a number between 0 and 100. 100 is the fastest, 0 means stop (NXT servo motors will&lt;br /&gt;
hold position). Here is a new version of our program in which the robot moves slowly:&lt;br /&gt;
&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  OnFwd(OUT_AC, 30);&lt;br /&gt;
                  Wait(4000);&lt;br /&gt;
                  OnRev(OUT_AC, 30);&lt;br /&gt;
                  Wait(4000);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
In this chapter you wrote your first program in NXC, using a Text editor, and manipulated it from a Terminal. You should now know how to type in a program, how to download it to the robot and how to let the robot execute the program. [[Kate]] can do many&lt;br /&gt;
more things, like comparing two concurrent version of your programme into adjacent panes (see ''Window &amp;gt; Split Vertical'') or even check your spelling! To find out about them, read the documentation that comes with it. This tutorial will primarily deal&lt;br /&gt;
with the language NXC and only mention features of Kate or it's Terminal when you really need them.&lt;br /&gt;
&lt;br /&gt;
You also learned some important aspects of the language NXC. First of all, you learned that each program has one task named main that is always executed by the robot. Also you learned the four basic motor commands:&lt;br /&gt;
'''OnFwd(), OnRev()''' and '''Off()'''. Finally, you learned about the '''Wait()''' statement.&lt;br /&gt;
&lt;br /&gt;
==II. A more interesting program==&lt;br /&gt;
Our first program was not so amazing. So let us try to make it more interesting. We will do this in a number of&lt;br /&gt;
steps, introducing some important features of our programming language NXC.&lt;br /&gt;
===Making turns===&lt;br /&gt;
You can make your robot turn by stopping or reversing the direction of one of the two motors. Here is an&lt;br /&gt;
example. Type it in, download it to your robot and let it run. It should drive a bit and then make a 90-degree right&lt;br /&gt;
turn.&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  OnFwd(OUT_AC, 75);&lt;br /&gt;
                  Wait(800);&lt;br /&gt;
                  OnRev(OUT_C, 75);&lt;br /&gt;
                  Wait(360);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
You might have to try some slightly different numbers than 360 in the second Wait() command to make a 90&lt;br /&gt;
degree turn. This depends on the type of surface on which the robot runs. Rather than changing this in the&lt;br /&gt;
program it is easier to use a name for this number. In NXC you can define '''constant''' values as shown in the&lt;br /&gt;
following program.&lt;br /&gt;
               #define MOVE_TIME   1000&lt;br /&gt;
               #define TURN_TIME    360&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  OnFwd(OUT_AC, 75);&lt;br /&gt;
                  Wait(MOVE_TIME);&lt;br /&gt;
                  OnRev(OUT_C, 75);&lt;br /&gt;
                  Wait(TURN_TIME);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
The first two lines define two constants. These can now be used throughout the program. Defining constants is&lt;br /&gt;
good for two reasons: it makes the program more readable, and it is easier to change the values. As we will see in Chapter VI, you can also define things&lt;br /&gt;
other than constants.&lt;br /&gt;
===Repeating commands===&lt;br /&gt;
Let us now try to write a program that makes the robot drive in a square. Going in a square means: driving&lt;br /&gt;
forwards, turning 90 degrees, driving forwards again, turning 90 degrees, etc. We could repeat the above piece of&lt;br /&gt;
code four times but this can be done a lot easier with the '''repeat''' statement.&lt;br /&gt;
                                                     &lt;br /&gt;
                #define MOVE_TIME   500&lt;br /&gt;
                #define TURN_TIME   500&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                   repeat(4)&lt;br /&gt;
                   {&lt;br /&gt;
                       OnFwd(OUT_AC, 75);&lt;br /&gt;
                       Wait(MOVE_TIME);&lt;br /&gt;
                       OnRev(OUT_C, 75);&lt;br /&gt;
                       Wait(TURN_TIME);&lt;br /&gt;
                   }&lt;br /&gt;
                   Off(OUT_AC);&lt;br /&gt;
                }&lt;br /&gt;
The number inside the repeat statement's parentheses indicates how many times the code inside its brackets&lt;br /&gt;
must be repeated. Note that, in the above program, we also indent the statements. This is not necessary, but it&lt;br /&gt;
makes the program more readable.&lt;br /&gt;
As a final example, let us make the robot drive 10 times in a square. Here is the program:&lt;br /&gt;
                #define MOVE_TIME            1000&lt;br /&gt;
                #define TURN_TIME              500&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                   repeat(10)&lt;br /&gt;
                   {&lt;br /&gt;
                       repeat(4)&lt;br /&gt;
                       {&lt;br /&gt;
                          OnFwd(OUT_AC, 75);&lt;br /&gt;
                          Wait(MOVE_TIME);&lt;br /&gt;
                          OnRev(OUT_C, 75);&lt;br /&gt;
                          Wait(TURN_TIME);&lt;br /&gt;
                       }&lt;br /&gt;
                   }&lt;br /&gt;
                   Off(OUT_AC);&lt;br /&gt;
                }&lt;br /&gt;
There is now one repeat statement inside the other. We call this a '''''nested'' repeat statement'''. You can nest repeat&lt;br /&gt;
statements as much as you like. Take a careful look at the brackets and the indentation used in the program. The&lt;br /&gt;
task starts at the first bracket and ends at the last. The first repeat statement starts at the second bracket and ends&lt;br /&gt;
at the fifth. The nested repeat statement starts at the third bracket and ends at the fourth. As you see the brackets&lt;br /&gt;
always come in pairs and the piece between the brackets we indent.&lt;br /&gt;
===Adding comments===&lt;br /&gt;
To make your program even more readable, it is good to '''add some comment''' to it. Whenever you put // on a&lt;br /&gt;
line, the rest of that line is ignored and can be used for comments. A long comment can be put between /* and */. The full program could look as follows:&lt;br /&gt;
&lt;br /&gt;
                /*     10 SQUARES&lt;br /&gt;
                This program make the robot run 10 squares&lt;br /&gt;
                */&lt;br /&gt;
 &lt;br /&gt;
                #define MOVE_TIME   500      // Time for a straight move&lt;br /&gt;
                #define TURN_TIME   360      // Time for turning 90 degrees&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                   repeat(10)                // Make 10 squares&lt;br /&gt;
                   {&lt;br /&gt;
                       repeat(4)&lt;br /&gt;
                       {&lt;br /&gt;
                         OnFwd(OUT_AC, 75);&lt;br /&gt;
                         Wait(MOVE_TIME);&lt;br /&gt;
                         OnRev(OUT_C, 75);&lt;br /&gt;
                         Wait(TURN_TIME);&lt;br /&gt;
                       }&lt;br /&gt;
                   }&lt;br /&gt;
                   Off(OUT_AC);              // Now turn the motors off&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
In this chapter you learned the use of the repeat statement and the use of comment. Also you saw the function&lt;br /&gt;
of nested brackets and the use of indentation. With all you know so far you can make the robot move along all&lt;br /&gt;
sorts of paths. It is a good exercise to try and write some variations of the programs in this chapter before&lt;br /&gt;
continuing with the next chapter.&lt;br /&gt;
&lt;br /&gt;
==III. Using variables==&lt;br /&gt;
'''Variables''' form a very important aspect of every programming language. Variables are memory locations in&lt;br /&gt;
which we can store a value. We can use that value at different places and we can change it. Let us describe the&lt;br /&gt;
use of variables using an example.&lt;br /&gt;
===Moving in a spiral===&lt;br /&gt;
Assume we want to adapt the above program in such a way that the robot drives in a spiral. This can be achieved&lt;br /&gt;
by making the time we sleep larger for each next straight movement. That is, we want to increase the value of&lt;br /&gt;
MOVE_TIME each time. But how can we do this? MOVE_TIME is a constant and therefore cannot be changed. We&lt;br /&gt;
need a variable instead. Variables can easily be defined in NXC. Here is the spiral program.&lt;br /&gt;
               #define TURN_TIME   360&lt;br /&gt;
               int move_time;            // define a variable&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  move_time = 200;       // set the initial value&lt;br /&gt;
                  repeat(50)&lt;br /&gt;
                  {&lt;br /&gt;
                     OnFwd(OUT_AC, 75);&lt;br /&gt;
                     Wait(move_time);    // use the variable for sleeping&lt;br /&gt;
                     OnRev(OUT_C, 75);&lt;br /&gt;
                     Wait(TURN_TIME);&lt;br /&gt;
                     move_time += 200;   // increase the variable&lt;br /&gt;
                  }&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
The interesting lines are indicated with the comments. First we define a variable by typing the keyword int&lt;br /&gt;
followed by a name we choose. (Normally we use lower-case letters for variable names and uppercase letters for&lt;br /&gt;
constants, but this is not necessary.) The name must start with a letter but can contain digits and the underscore&lt;br /&gt;
sign. No other symbols are allowed. (The same applied to constants, task names, etc.) The word int stands for&lt;br /&gt;
integer. Only integer numbers can be stored in it. In the second line we assign the value 200 to the variable.&lt;br /&gt;
From this moment on, whenever you use the variable, its value will be 200. Now follows the repeat loop in&lt;br /&gt;
which we use the variable to indicate the time to sleep and, at the end of the loop we increase the value of the&lt;br /&gt;
variable by 200. So the first time the robot sleeps 200 ms, the second time 400 ms, the third time 600 ms, and so&lt;br /&gt;
on.&lt;br /&gt;
Besides adding values to a variable we can also multiply a variable with a number using *=, subtract using -=&lt;br /&gt;
and divide using /=. (Note that for division the result is rounded to the nearest integer.) You can also add one&lt;br /&gt;
variable to the other, and write down more complicated expressions. The next example does not have any effect&lt;br /&gt;
on your robot hardware, since we don't know how to use the NXT display yet!&lt;br /&gt;
                                                        &lt;br /&gt;
               int aaa;&lt;br /&gt;
               int bbb,ccc;&lt;br /&gt;
               int values[];&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  aaa = 10;&lt;br /&gt;
                  bbb = 20 * 5;&lt;br /&gt;
                  ccc = bbb;&lt;br /&gt;
                  ccc /= aaa;&lt;br /&gt;
                  ccc -= 5;&lt;br /&gt;
                  aaa = 10 * (ccc + 3);       // aaa is now equal to 80&lt;br /&gt;
                  ArrayInit(values, 0, 10);   // allocate 10 elements = 0&lt;br /&gt;
                  values[0] = aaa;&lt;br /&gt;
                  values[1] = bbb;&lt;br /&gt;
                  values[2] = aaa*bbb;&lt;br /&gt;
                  values[3] = ccc;&lt;br /&gt;
               }&lt;br /&gt;
Note on the first two lines that we can define multiple variables in one line. We could also have combined all&lt;br /&gt;
three of them in one line. The variable named values is an array, that is, a variable that contains more than a&lt;br /&gt;
number: an array can be indexed with a number inside square brackets. In NXC integer arrays are declared so:&lt;br /&gt;
int name[];&lt;br /&gt;
Then, this line allocates 10 elements initializing them to 0.&lt;br /&gt;
ArrayInit(values, 0, 10);&lt;br /&gt;
===Random numbers===&lt;br /&gt;
In all the above programs we defined exactly what the robot was supposed to do. But things get a lot more&lt;br /&gt;
interesting when the robot is going to do things that we don't know. We want some randomness in the motions.&lt;br /&gt;
In NXC you can create random numbers. The following program uses this to let the robot drive around in a&lt;br /&gt;
random way. It constantly drives forwards for a random amount of time and then makes a random turn.&lt;br /&gt;
               int move_time, turn_time;&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  while(true)&lt;br /&gt;
                  {&lt;br /&gt;
                     move_time = Random(600);&lt;br /&gt;
                     turn_time = Random(400);&lt;br /&gt;
                     OnFwd(OUT_AC, 75);&lt;br /&gt;
                     Wait(move_time);&lt;br /&gt;
                     OnRev(OUT_A, 75);&lt;br /&gt;
                     Wait(turn_time);&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
The program defines two variables, and then assigns random numbers to them. Random(600) means a random&lt;br /&gt;
number between 0 and 600 (the maximum value is not included in the range of numbers returned). Each time&lt;br /&gt;
you call Random the numbers will be different.&lt;br /&gt;
Note that we could avoid the use of the variables by writing directly e.g. Wait(Random(600)).&lt;br /&gt;
You also see a new type of loop here. Rather that using the repeat statement we wrote while(true). The while&lt;br /&gt;
statement repeats the statements below it as long as the condition between the parentheses is true. The special&lt;br /&gt;
                                                       &lt;br /&gt;
word true is always true, so the statements between the brackets are repeated forever (or at least until you press&lt;br /&gt;
the dark grey button on NXT). You will learn more about the while statement in Chapter IV.&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
In this chapter you learned about the use of variables and arrays. You can declare other data types than int:&lt;br /&gt;
short, long, byte, bool and string.&lt;br /&gt;
You also learned how to create random numbers, such that you can give the robot unpredictable behavior.&lt;br /&gt;
Finally we saw the use of the while statement to make an infinite loop that goes on forever.&lt;br /&gt;
&lt;br /&gt;
==IV. Control structures==&lt;br /&gt;
In the previous chapters we saw the repeat and while statements. These statements control the way the other&lt;br /&gt;
statements in the program are executed. They are called “control structures”. In this chapter we will see some&lt;br /&gt;
other control structures.&lt;br /&gt;
===The if statement===&lt;br /&gt;
Sometimes you want that a particular part of your program is only executed in certain situations. In this case the&lt;br /&gt;
if statement is used. Let me give an example. We will again change the program we have been working with so&lt;br /&gt;
far, but with a new twist. We want the robot to drive along a straight line and then either make a left or a right&lt;br /&gt;
turn. To do this we need random numbers again. We pick a random number that is either positive or negative. If&lt;br /&gt;
the number is less than 0 we make a right turn; otherwise we make a left turn. Here is the program:&lt;br /&gt;
               #define MOVE_TIME             500&lt;br /&gt;
               #define TURN_TIME             360&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  while(true)&lt;br /&gt;
                  {&lt;br /&gt;
                     OnFwd(OUT_AC, 75);&lt;br /&gt;
                     Wait(MOVE_TIME);&lt;br /&gt;
                     if (Random() &amp;gt;= 0)&lt;br /&gt;
                     {&lt;br /&gt;
                         OnRev(OUT_C, 75);&lt;br /&gt;
                     }&lt;br /&gt;
                     else&lt;br /&gt;
                     {&lt;br /&gt;
                         OnRev(OUT_A, 75);&lt;br /&gt;
                     }&lt;br /&gt;
                     Wait(TURN_TIME);&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
The if statement looks a bit like the while statement. If the condition between the parentheses is true the part&lt;br /&gt;
between the brackets is executed. Otherwise, the part between the brackets after the word else is executed. Let&lt;br /&gt;
us look a bit better at the condition we use. It reads Random() &amp;gt;= 0. This means that Random() must be&lt;br /&gt;
greater-than or equal to 0 to make the condition true. You can compare values in different ways. Here are the&lt;br /&gt;
most important ones:&lt;br /&gt;
          ==       equal to&lt;br /&gt;
          &amp;lt;        smaller than&lt;br /&gt;
          &amp;lt;=       smaller than or equal to&lt;br /&gt;
          &amp;gt;        larger than&lt;br /&gt;
          &amp;gt;=       larger than or equal to&lt;br /&gt;
          !=       not equal to&lt;br /&gt;
You can combine conditions use &amp;amp;&amp;amp;, which means “and”, or ||, which means “or”. Here are some examples of&lt;br /&gt;
conditions:&lt;br /&gt;
          true                                 always true&lt;br /&gt;
          false                                never true&lt;br /&gt;
          ttt != 3                             true when ttt is not equal to 3&lt;br /&gt;
          (ttt &amp;gt;= 5) &amp;amp;&amp;amp; (ttt &amp;lt;= 10) true when ttt lies between 5 and 10&lt;br /&gt;
          (aaa == 10) || (bbb == 10) true if either aaa or bbb (or both) are equal to 10&lt;br /&gt;
                                                         - 16 -&lt;br /&gt;
Note that the if statement has two parts. The part immediately after the condition, which is executed when the&lt;br /&gt;
condition is true, and the part after the else, which is executed when the condition is false. The keyword else and&lt;br /&gt;
the part after it are optional. So you can omit them if there is nothing to do when the condition is false.&lt;br /&gt;
===The do statement===&lt;br /&gt;
There is another control structure, the do statement. It has the following form:&lt;br /&gt;
                do&lt;br /&gt;
                {&lt;br /&gt;
                    statements;&lt;br /&gt;
                }&lt;br /&gt;
                while (condition);&lt;br /&gt;
The statements between the brackets after the do part are executed as long as the condition is true. The condition&lt;br /&gt;
has the same form as in the if statement described above. Here is an example of a program. The robot runs&lt;br /&gt;
around randomly for 20 seconds and then stops.&lt;br /&gt;
                int move_time, turn_time, total_time;&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                    total_time = 0;&lt;br /&gt;
                    do&lt;br /&gt;
                    {&lt;br /&gt;
                       move_time = Random(1000);&lt;br /&gt;
                       turn_time = Random(1000);&lt;br /&gt;
                       OnFwd(OUT_AC, 75);&lt;br /&gt;
                       Wait(move_time);&lt;br /&gt;
                       OnRev(OUT_C, 75);&lt;br /&gt;
                       Wait(turn_time);&lt;br /&gt;
                       total_time += move_time;&lt;br /&gt;
                       total_time += turn_time;&lt;br /&gt;
                    }&lt;br /&gt;
                    while (total_time &amp;lt; 20000);&lt;br /&gt;
                    Off(OUT_AC);&lt;br /&gt;
                }&lt;br /&gt;
Note also that the do statement behaves almost the same as the while statement. But in the while statement the&lt;br /&gt;
condition is tested before executing the statements, while in the do statement the condition is tested at the end.&lt;br /&gt;
For the while statement, the statements might never be executed, but for the do statement they are executed at&lt;br /&gt;
least once.&lt;br /&gt;
===Summary===&lt;br /&gt;
In this chapter we have seen two new control structures: the if statement and the do statement. Together with the&lt;br /&gt;
repeat statement and the while statement they are the statements that control the way in which the program is&lt;br /&gt;
executed. It is very important that you understand what they do. So better try some more examples yourself&lt;br /&gt;
before continuing.&lt;br /&gt;
                                                          - 17 -&lt;br /&gt;
&lt;br /&gt;
==V. Sensors==&lt;br /&gt;
Off course you can connect sensors to NXT to make the robot react to external events. Before I can show how to&lt;br /&gt;
do this, we must change the robot a bit by adding a touch sensor. As before, follow the Tribot instructions to&lt;br /&gt;
build the front bumper.&lt;br /&gt;
Connect the touch sensor to input 1 on the NXT.&lt;br /&gt;
Waiting for a sensor&lt;br /&gt;
Let us start with a very simple program in which the robot drives forwards until it hits something. Here it is:&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  SetSensor(IN_1,SENSOR_TOUCH);&lt;br /&gt;
                  OnFwd(OUT_AC, 75);&lt;br /&gt;
                  until (SENSOR_1 == 1);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
There are two important lines here. The first line of the program tells the robot what type of sensor we use. IN_1&lt;br /&gt;
is the number of the input to which we connected the sensor. The other sensor inputs are called IN_2, IN_3 and&lt;br /&gt;
IN_4. SENSOR_TOUCH indicates that this is a touch sensor. For the light sensor we would use SENSOR_LIGHT.&lt;br /&gt;
After we specified the type of the sensor, the program switches on both motors and the robot starts moving&lt;br /&gt;
forwards. The next statement is a very useful construction. It waits until the condition between the brackets is&lt;br /&gt;
true. This condition says that the value of the sensor SENSOR_1 must be 1, which means that the sensor is&lt;br /&gt;
pressed. As long as the sensor is not pressed, the value is 0. So this statement waits until the sensor is pressed.&lt;br /&gt;
Then we switch off the motors and the task is finished.&lt;br /&gt;
                                                        - 18 -&lt;br /&gt;
Acting on a touch sensor&lt;br /&gt;
Let us now try to make the robot avoid obstacles. Whenever the robot hits an object, we let it move back a bit,&lt;br /&gt;
make a turn, and then continue. Here is the program:&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                  SetSensorTouch(IN_1);&lt;br /&gt;
                  OnFwd(OUT_AC, 75);&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                     if (SENSOR_1 == 1)&lt;br /&gt;
                     {&lt;br /&gt;
                        OnRev(OUT_AC, 75); Wait(300);&lt;br /&gt;
                        OnFwd(OUT_A, 75); Wait(300);&lt;br /&gt;
                        OnFwd(OUT_AC, 75);&lt;br /&gt;
                     }&lt;br /&gt;
                  }&lt;br /&gt;
                }&lt;br /&gt;
As in the previous example, we first indicate the type of the sensor. Next the robot starts moving forwards. In the&lt;br /&gt;
infinite while loop we constantly test whether the sensor is touched and, if so, move back for 300ms, turn right&lt;br /&gt;
for 300ms, and then continue forwards again.&lt;br /&gt;
Light sensor&lt;br /&gt;
Besides the touch sensor, you also get a light sensor, a sound sensor and a digital ultrasonic sensor with&lt;br /&gt;
Mindstorms NXT system. The light sensor can be triggered to emit light or not, so you can measure the amount&lt;br /&gt;
of reflected light or ambient light in a particular direction. Measuring reflected light is particularly useful when&lt;br /&gt;
making a robot follow a line on the floor. This is what we are going to do in the next example. To go on with&lt;br /&gt;
experiments, finish building Tribot. Connect light sensor to input 3, sound sensor to input 2 and ultrasonic sensor&lt;br /&gt;
to input 4, as indicated by instructions.&lt;br /&gt;
                                                          - 19 -&lt;br /&gt;
We also need the test pad with the black track that comes with the NXT set. The basic principle of line following&lt;br /&gt;
is that the robot keeps trying to stay right on the border of the black line, turning away from line if the light level&lt;br /&gt;
is too low (and sensor is in the middle of the line) and turning towards the line if the sensor is out of the track&lt;br /&gt;
and detects a high light level. Here is a very simple program doing line following with a single light threshold&lt;br /&gt;
value.&lt;br /&gt;
               #define THRESHOLD 40&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                   SetSensorLight(IN_3);&lt;br /&gt;
                   OnFwd(OUT_AC, 75);&lt;br /&gt;
                   while (true)&lt;br /&gt;
                   {&lt;br /&gt;
                     if (Sensor(IN_3) &amp;gt; THRESHOLD)&lt;br /&gt;
                     {&lt;br /&gt;
                        OnRev(OUT_C, 75);&lt;br /&gt;
                        Wait(100);&lt;br /&gt;
                        until(Sensor(IN_3) &amp;lt;= THRESHOLD);&lt;br /&gt;
                        OnFwd(OUT_AC, 75);&lt;br /&gt;
                     }&lt;br /&gt;
                   }&lt;br /&gt;
               }&lt;br /&gt;
The program first configures port 3 as a light sensor. Next it sets the robot to move forwards and goes into an&lt;br /&gt;
infinite loop. Whenever the light value is bigger than 40 (we use a constant here such that this can be adapted&lt;br /&gt;
easily, because it depends a lot on the surrounding light) we reverse one motor and wait till we are on the track&lt;br /&gt;
again.&lt;br /&gt;
As you will see when you execute the program, the motion is not very smooth. Try adding a Wait(100)&lt;br /&gt;
command before the until command to make the robot move better. Note that the program does not work for&lt;br /&gt;
moving counter-clockwise. To enable motion along arbitrary path a much more complicated program is required.&lt;br /&gt;
To read ambient light intensity with led off, configure sensor as follows:&lt;br /&gt;
               SetSensorType(IN_3,IN_TYPE_LIGHT_INACTIVE);&lt;br /&gt;
               SetSensorMode(IN_3,IN_MODE_PCTFULLSCALE);&lt;br /&gt;
               ResetSensor(IN_3);&lt;br /&gt;
Sound sensor&lt;br /&gt;
Using the sound sensor you can transform your expensive NXT set into a clapper! We are going to write a&lt;br /&gt;
program that waits for a loud sound, and drives the robot until another sound is detected. Attach the sound sensor&lt;br /&gt;
to port 2, as described in Tribot instructions guide.&lt;br /&gt;
                                                         - 20 -&lt;br /&gt;
                 #define THRESHOLD 40&lt;br /&gt;
                 #define MIC SENSOR_2&lt;br /&gt;
                 task main()&lt;br /&gt;
                 {&lt;br /&gt;
                   SetSensorSound(IN_2);&lt;br /&gt;
                   while(true){&lt;br /&gt;
                       until(MIC &amp;gt; THRESHOLD);&lt;br /&gt;
                       OnFwd(OUT_AC, 75);&lt;br /&gt;
                       Wait(300);&lt;br /&gt;
                       until(MIC &amp;gt; THRESHOLD);&lt;br /&gt;
                       Off(OUT_AC);&lt;br /&gt;
                       Wait(300);&lt;br /&gt;
                   }&lt;br /&gt;
                 }&lt;br /&gt;
We first define a THRESHOLD constant and an alias for SENSOR_2; in the main task, we configure the port 2 to&lt;br /&gt;
read data from the sound sensor and we start a forever loop.&lt;br /&gt;
Using the until statement, the program waits for the sound level to be greater than the threshold we chose: note&lt;br /&gt;
that SENSOR_2 is not just a name, but a macro that returns the sound value read from the sensor.&lt;br /&gt;
If a loud sound occurs, the robot starts to go straight until another sound stops it.&lt;br /&gt;
The wait statements have been inserted because otherwise the robot would start and stop instantly: in fact, the&lt;br /&gt;
NXT is so fast that takes no time to execute lines between the two until statements. If you try to comment out&lt;br /&gt;
the first and the second wait, you will understand this better. An alternative to the use of until to wait for events&lt;br /&gt;
is while, it is enough to put inside the parentheses a complementary condition, e.g.&lt;br /&gt;
          while(MIC &amp;lt;= THRESHOLD).&lt;br /&gt;
There is not much more to know about NXT analog sensors; just remember that both light and sound sensors&lt;br /&gt;
give you a reading from 0 to 100.&lt;br /&gt;
Ultrasonic sensor&lt;br /&gt;
Ultrasonic sensor works as a sonar: roughly speaking, it sends a burst of ultrasonic waves and measures the time&lt;br /&gt;
needed for the waves to be reflected back by the object in sight. This is a digital sensor, meaning it has an&lt;br /&gt;
embedded integrated device to analyze and send data. With this new sensor you can make a robot see and avoid&lt;br /&gt;
an obstacle before actually hitting it (as is for touch sensor).&lt;br /&gt;
                 #define NEAR 15 //cm&lt;br /&gt;
                 task main(){&lt;br /&gt;
                     SetSensorLowspeed(IN_4);&lt;br /&gt;
                     while(true){&lt;br /&gt;
                       OnFwd(OUT_AC,50);&lt;br /&gt;
                       while(SensorUS(IN_4)&amp;gt;NEAR);&lt;br /&gt;
                       Off(OUT_AC);&lt;br /&gt;
                       OnRev(OUT_C,100);&lt;br /&gt;
                       Wait(800);&lt;br /&gt;
                     }&lt;br /&gt;
                 }&lt;br /&gt;
The program initializes port 4 to read data from digital US sensor; then runs forever a loop where robots goes&lt;br /&gt;
straight until something nearer than NEAR cm (15cm in our example) is in sight, then backups a bit and begins&lt;br /&gt;
going straight again.&lt;br /&gt;
                                                         &lt;br /&gt;
Summary&lt;br /&gt;
In this chapter you have seen how to work with all sensors included in NXT set. We also saw how until and&lt;br /&gt;
while commands are useful when using sensors.&lt;br /&gt;
I recommend you to write a number of programs by yourself at his point. You have all the ingredients to give&lt;br /&gt;
your robots pretty complicated behavior now: try to translate in NXC the simplest programs shown in NXT retail&lt;br /&gt;
software Robo Center programming guide.&lt;br /&gt;
                                                      &lt;br /&gt;
==VI. Tasks and subroutines==&lt;br /&gt;
Up to now all our programs consisted of just one task. But NXC programs can have multiple tasks. It is also&lt;br /&gt;
possible to put pieces of code in so-called subroutines that you can use in different places in your program.&lt;br /&gt;
Using tasks and subroutines makes your programs easier to understand and more compact. In this chapter we&lt;br /&gt;
will look at the various possibilities.&lt;br /&gt;
Tasks&lt;br /&gt;
An NXC program consists of 255 tasks at most; each of them has a unique name. The task named main must&lt;br /&gt;
always exist, since this is the first task to be executed. The other tasks will be executed only when a running task&lt;br /&gt;
tells them to be executed or they are explicitly scheduled in the main; main task must terminate before they can&lt;br /&gt;
start. From that moment on, both tasks are running simultaneously.&lt;br /&gt;
Let me show the use of tasks. We want to make a program in which the robot drives around in squares, like&lt;br /&gt;
before. But when it hits an obstacle it should react to it. It is difficult to do this in one task, because the robot&lt;br /&gt;
must do two things at the same moment: drive around (that is, switching motors on and off in time) and watch&lt;br /&gt;
for sensors. So it is better to use two tasks for this, one task that moves in squares; the other that reacts to the&lt;br /&gt;
sensors. Here is the program.&lt;br /&gt;
               mutex moveMutex;&lt;br /&gt;
               task move_square()&lt;br /&gt;
               {&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                      Acquire(moveMutex);&lt;br /&gt;
                      OnFwd(OUT_AC, 75); Wait(1000);&lt;br /&gt;
                      OnRev(OUT_C, 75); Wait(500);&lt;br /&gt;
                      Release(moveMutex);&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task check_sensors()&lt;br /&gt;
               {&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                      if (SENSOR_1 == 1)&lt;br /&gt;
                      {&lt;br /&gt;
                        Acquire(moveMutex);&lt;br /&gt;
                        OnRev(OUT_AC, 75); Wait(500);&lt;br /&gt;
                        OnFwd(OUT_A, 75); Wait(500);&lt;br /&gt;
                        Release(moveMutex);&lt;br /&gt;
                      }&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  Precedes(move_square, check_sensors);&lt;br /&gt;
                  SetSensorTouch(IN_1);&lt;br /&gt;
               }&lt;br /&gt;
The main task just sets the sensor type and then starts both other tasks, adding them in the scheduler queue; after&lt;br /&gt;
this, main task ends. Task move_square moves the robot forever in squares. Task check_sensors checks&lt;br /&gt;
whether the touch sensor is pushed and, if so, drives the robot away from obstacle.&lt;br /&gt;
It is very important to remember that started tasks are running at the same moment and this can lead to&lt;br /&gt;
unexpected results, if both tasks are trying to move motors as they are meant to do.&lt;br /&gt;
                                                           - 23 -&lt;br /&gt;
To avoid these problems, we declared a strange type of variable, mutex (that stands for mutual exclusion): we&lt;br /&gt;
can act on this kind of variables only with the Acquire and Release functions, writing critical pieces of code&lt;br /&gt;
between these functions, assuring that only one task at a time can have total control on motors.&lt;br /&gt;
These mutex-type variables are called semaphores and this programming technique is named concurrent&lt;br /&gt;
programming; this argument is described on detail in chapter X.&lt;br /&gt;
Subroutines&lt;br /&gt;
Sometimes you need the same piece of code at multiple places in your program. In this case you can put the&lt;br /&gt;
piece of code in a subroutine and give it a name. Now you can execute this piece of code by simply calling its&lt;br /&gt;
name from within a task. Let us look at an example.&lt;br /&gt;
               sub turn_around(int pwr)&lt;br /&gt;
               {&lt;br /&gt;
                  OnRev(OUT_C, pwr); Wait(900);&lt;br /&gt;
                  OnFwd(OUT_AC, pwr);&lt;br /&gt;
               }&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  OnFwd(OUT_AC, 75);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
                  turn_around(75);&lt;br /&gt;
                  Wait(2000);&lt;br /&gt;
                  turn_around(75);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
                  turn_around(75);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
In this program we have defined a subroutine that makes the robot rotate around its center. The main task calls&lt;br /&gt;
the subroutine three times. Note that we call the subroutine by writing its name and passing a numerical&lt;br /&gt;
argument writing it inside following parentheses. If a subroutine accepts no arguments, simply add parentheses&lt;br /&gt;
with nothing inside them.&lt;br /&gt;
So it looks the same as many of the commands we have seen.&lt;br /&gt;
The main benefit of subroutines is that they are stored only once in the NXT and this saves memory. But when&lt;br /&gt;
subroutines are short, it may be better to use inline functions instead. These are not stored separately but copied&lt;br /&gt;
at each place they are used. This uses more memory but there is no limit on the number of inline functions. They&lt;br /&gt;
can be declared as follows:&lt;br /&gt;
               inline int Name( Args ) {&lt;br /&gt;
                   //body;&lt;br /&gt;
                   return x*y;&lt;br /&gt;
               }&lt;br /&gt;
Defining and calling inline functions goes exactly the same way as with subroutines. So the above example,&lt;br /&gt;
using inline functions, looks as follows:&lt;br /&gt;
                                                        - 24 -&lt;br /&gt;
                inline void turn_around()&lt;br /&gt;
                {&lt;br /&gt;
                   OnRev(OUT_C, 75); Wait(900);&lt;br /&gt;
                   OnFwd(OUT_AC, 75);&lt;br /&gt;
                }&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                   OnFwd(OUT_AC, 75);&lt;br /&gt;
                   Wait(1000);&lt;br /&gt;
                   turn_around();&lt;br /&gt;
                   Wait(2000);&lt;br /&gt;
                   turn_around();&lt;br /&gt;
                   Wait(1000);&lt;br /&gt;
                   turn_around();&lt;br /&gt;
                   Off(OUT_AC);&lt;br /&gt;
                }&lt;br /&gt;
In the above example, we can make the time to turn an argument of the function, as in the following examples:&lt;br /&gt;
                inline void turn_around(int pwr, int turntime)&lt;br /&gt;
                {&lt;br /&gt;
                   OnRev(OUT_C, pwr);&lt;br /&gt;
                   Wait(turntime);&lt;br /&gt;
                   OnFwd(OUT_AC, pwr);&lt;br /&gt;
                }&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                   OnFwd(OUT_AC, 75);&lt;br /&gt;
                   Wait(1000);&lt;br /&gt;
                   turn_around(75, 2000);&lt;br /&gt;
                   Wait(2000);&lt;br /&gt;
                   turn_around(75, 500);&lt;br /&gt;
                   Wait(1000);&lt;br /&gt;
                   turn_around(75, 3000);&lt;br /&gt;
                   Off(OUT_AC);&lt;br /&gt;
                }&lt;br /&gt;
Note that in the parenthesis behind the name of the inline function we specify the argument(s) of the function. In&lt;br /&gt;
this case we indicate that the argument is an integer (there are some other choices) and that its name is turntime.&lt;br /&gt;
When there are more arguments, you must separate them with commas. Note that in NXC, sub is the same as&lt;br /&gt;
void; Also, functions can have other return type than void, can also return integer or string values to the caller:&lt;br /&gt;
for details, see the NXC guide.&lt;br /&gt;
Defining macros&lt;br /&gt;
There is yet another way to give small pieces of code a name. You can define macros in NXC (not to be&lt;br /&gt;
confused with the macros in BricxCC). We have seen before that we can define constants, using #define, by&lt;br /&gt;
giving them a name. But actually we can define any piece of code. Here is the same program again but now&lt;br /&gt;
using a macro for turning around.&lt;br /&gt;
                                                        - 25 -&lt;br /&gt;
               #define turn_around \&lt;br /&gt;
                   OnRev(OUT_B, 75); Wait(3400);OnFwd(OUT_AB, 75);&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                   OnFwd(OUT_AB, 75);&lt;br /&gt;
                   Wait(1000);&lt;br /&gt;
                   turn_around;&lt;br /&gt;
                   Wait(2000);&lt;br /&gt;
                   turn_around;&lt;br /&gt;
                   Wait(1000);&lt;br /&gt;
                   turn_around;&lt;br /&gt;
                   Off(OUT_AB);&lt;br /&gt;
               }&lt;br /&gt;
After the #define statement the word turn_around stands for the text behind it. Now wherever you type&lt;br /&gt;
turn_around, this is replaced by this text. Note that the text should be on one line. (Actually there are ways of&lt;br /&gt;
putting a #define statement on multiple lines, but this is not recommended.)&lt;br /&gt;
Define statements are actually a lot more powerful. They can also have arguments. For example, we can put the&lt;br /&gt;
time to turn as an argument in the statement. Here is an example in which we define four macro's; one to move&lt;br /&gt;
forwards, one to move backwards, one to turn left and one to turn right. Each has two arguments: the speed and&lt;br /&gt;
the time.&lt;br /&gt;
               #define turn_right(s,t) \&lt;br /&gt;
                   OnFwd(OUT_A, s);OnRev(OUT_B, s);Wait(t);&lt;br /&gt;
               #define turn_left(s,t)             \&lt;br /&gt;
                   OnRev(OUT_A, s);OnFwd(OUT_B, s);Wait(t);&lt;br /&gt;
               #define forwards(s,t)              OnFwd(OUT_AB, s);Wait(t);&lt;br /&gt;
               #define backwards(s,t)             OnRev(OUT_AB, s);Wait(t);&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                   backwards(50,10000);&lt;br /&gt;
                   forwards(50,10000);&lt;br /&gt;
                   turn_left(75,750);&lt;br /&gt;
                   forwards(75,1000);&lt;br /&gt;
                   backwards(75,2000);&lt;br /&gt;
                   forwards(75,1000);&lt;br /&gt;
                   turn_right(75,750);&lt;br /&gt;
                   forwards(30,2000);&lt;br /&gt;
                   Off(OUT_AB);&lt;br /&gt;
               }&lt;br /&gt;
It is very useful to define such macros. It makes your code more compact and readable. Also, you can more&lt;br /&gt;
easily change your code when you e.g. change the connections of the motors.&lt;br /&gt;
Summary&lt;br /&gt;
In this chapter you saw the use of tasks, subroutines, inline functions, and macros. They have different uses.&lt;br /&gt;
Tasks normally run at the same moment and take care of different things that have to be done at the same&lt;br /&gt;
moment. Subroutines are useful when larger pieces of code must be used at different places in the same task.&lt;br /&gt;
Inline functions are useful when pieces of code must be used a many different places in different tasks, but they&lt;br /&gt;
use more memory. Finally macros are very useful for small pieces of code that must be used a different places.&lt;br /&gt;
They can also have parameters, making them even more useful.&lt;br /&gt;
                                                         - 26 -&lt;br /&gt;
Now that you have worked through the chapters up to here, you have all the skills you need to make your robot&lt;br /&gt;
do complicated things. The other chapters in this tutorial teach you about other things that are only important in&lt;br /&gt;
certain applications.&lt;br /&gt;
                                                       - 27 -&lt;br /&gt;
==VII. Making music==&lt;br /&gt;
The NXT has a built-in speaker that can play tones and even sound files. This is in particular useful when you&lt;br /&gt;
want to make the NXT tell you that something is happening. But it can also be funny to have the robot make&lt;br /&gt;
music or talk while it runs around.&lt;br /&gt;
Playing sound files&lt;br /&gt;
BricxCC has a built-in utility to convert .wav files into .rso files accessible via menu Tools  Sound conversion.&lt;br /&gt;
Then you can store .rso sound files on NXT flash memory using another utility, the NXT memory browser&lt;br /&gt;
(Tools  NXT explorer) and play them with the command&lt;br /&gt;
PlayFileEx(filename, volume, loop?)&lt;br /&gt;
Its arguments are sound filename, volume (a number from 0 to 4), and loop: this last argument is set to 1&lt;br /&gt;
(TRUE) if you want the file to be looped or 0 (FALSE) if you want to play it only once.&lt;br /&gt;
               #define TIME 200&lt;br /&gt;
               #define MAXVOL 7&lt;br /&gt;
               #define MINVOL 1&lt;br /&gt;
               #define MIDVOL 3&lt;br /&gt;
               #define pause_4th Wait(TIME)&lt;br /&gt;
               #define pause_8th Wait(TIME/2)&lt;br /&gt;
               #define note_4th \&lt;br /&gt;
                  PlayFileEx(&amp;quot;! Click.rso&amp;quot;,MIDVOL,FALSE); pause_4th&lt;br /&gt;
               #define note_8th \&lt;br /&gt;
                  PlayFileEx(&amp;quot;! Click.rso&amp;quot;,MAXVOL,FALSE); pause_8th&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  PlayFileEx(&amp;quot;! Startup.rso&amp;quot;,MINVOL,FALSE);&lt;br /&gt;
                  Wait(2000);&lt;br /&gt;
                  note_4th;&lt;br /&gt;
                  note_8th;&lt;br /&gt;
                  note_8th;&lt;br /&gt;
                  note_4th;&lt;br /&gt;
                  note_4th;&lt;br /&gt;
                  pause_4th;&lt;br /&gt;
                  note_4th;&lt;br /&gt;
                  note_4th;&lt;br /&gt;
                  Wait(100);&lt;br /&gt;
               }&lt;br /&gt;
This nice program first plays the startup tune you might know already; then uses the other standard click sound&lt;br /&gt;
to play “Shave and a haircut” jingle that made Roger Rabbit go crazy! The macros are really useful in this case&lt;br /&gt;
to simplify notation in the main task: try modifying the volume settings to add accents in the tune.&lt;br /&gt;
Playing music&lt;br /&gt;
To play a tone, you can use the command PlayToneEx(frequency, duration, volume, loop?)&lt;br /&gt;
It has four arguments. The first is the frequency in Hertz, the second the duration (in 1/1000 of a second, like in&lt;br /&gt;
the wait command), and the last are volume a loop as before. PlayTone(frequency, duration) can also be&lt;br /&gt;
used; in this case the volume is the one set by NXT menu, and loop is disabled.&lt;br /&gt;
Here is a table of useful frequencies:&lt;br /&gt;
          Sound             3         4       5         6         7        8        9&lt;br /&gt;
                                                         - 28 -&lt;br /&gt;
         B                 247      494      988      1976     3951    7902&lt;br /&gt;
         A#                233      466      932      1865     3729    7458&lt;br /&gt;
         A                 220      440      880      1760     3520    7040      14080&lt;br /&gt;
         G#                         415      831      1661     3322    6644      13288&lt;br /&gt;
         G                          392      784      1568     3136    6272      12544&lt;br /&gt;
         F#                         370      740      1480     2960    5920      11840&lt;br /&gt;
         F                          349      698      1397     2794    5588      11176&lt;br /&gt;
         E                          330      659      1319     2637    5274      10548&lt;br /&gt;
         D#                         311      622      1245     2489    4978      9956&lt;br /&gt;
         D                          294      587      1175     2349    4699      9398&lt;br /&gt;
         C#                         277      554      1109     2217    4435      8870&lt;br /&gt;
         C                          262      523      1047     2093    4186      8372&lt;br /&gt;
As with the case of PlayFileEx, the NXT does not wait for the note to finish. So if you use multiple tones in&lt;br /&gt;
a row then you had better add (slightly longer) wait commands in between. Here is an example:&lt;br /&gt;
              #define VOL 3&lt;br /&gt;
              task main()&lt;br /&gt;
              {&lt;br /&gt;
                 PlayToneEx(262,400,VOL,FALSE);               Wait(500);&lt;br /&gt;
                 PlayToneEx(294,400,VOL,FALSE);               Wait(500);&lt;br /&gt;
                 PlayToneEx(330,400,VOL,FALSE);               Wait(500);&lt;br /&gt;
                 PlayToneEx(294,400,VOL,FALSE);               Wait(500);&lt;br /&gt;
                 PlayToneEx(262,1600,VOL,FALSE);              Wait(2000);&lt;br /&gt;
              }&lt;br /&gt;
You can create pieces of music very easily using the Brick Piano that is part of the BricxCC.&lt;br /&gt;
If you want to have the NXT play music while driving around, better use a separate task for it. Here you have an&lt;br /&gt;
example of a rather stupid program where the NXT drives back and forth, constantly making music.&lt;br /&gt;
                                                       - 29 -&lt;br /&gt;
               task music()&lt;br /&gt;
               {&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                    PlayTone(262,400);        Wait(500);&lt;br /&gt;
                    PlayTone(294,400);        Wait(500);&lt;br /&gt;
                    PlayTone(330,400);        Wait(500);&lt;br /&gt;
                    PlayTone(294,400);        Wait(500);&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task movement()&lt;br /&gt;
               {&lt;br /&gt;
                  while(true)&lt;br /&gt;
                  {&lt;br /&gt;
                    OnFwd(OUT_AC, 75); Wait(3000);&lt;br /&gt;
                    OnRev(OUT_AC, 75); Wait(3000);&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  Precedes(music, movement);&lt;br /&gt;
               }&lt;br /&gt;
Summary&lt;br /&gt;
In this chapter you learned how to let the NXT play sounds and music. Also you saw how to use a separate task&lt;br /&gt;
for music.&lt;br /&gt;
                                                     &lt;br /&gt;
==VIII. More about motors==&lt;br /&gt;
There are a number of additional motor commands that you can use to control the motors more precisely. In this&lt;br /&gt;
chapter we discuss them: ResetTachoCount, Coast (Float), OnFwdReg, OnRevReg, OnFwdSync, OnRevSync,&lt;br /&gt;
RotateMotor, RotateMotorEx, and basic PID concepts.&lt;br /&gt;
Stopping gently&lt;br /&gt;
When you use the Off() command, the servo motor stops immediately, braking the shaft and holding position.&lt;br /&gt;
It is also possible to stop the motors in a more gentle way, not using the brake. For this use Float() or&lt;br /&gt;
Coast()command indifferently, that simple cut the power flowing to motor. Here is an example. First the robot&lt;br /&gt;
stops using the brakes; next without using the brakes. Note the difference. Actually the difference is very small&lt;br /&gt;
for this particular robot. But it makes a big difference for some other robots.&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                   OnFwd(OUT_AC, 75);&lt;br /&gt;
                   Wait(500);&lt;br /&gt;
                   Off(OUT_AC);&lt;br /&gt;
                   Wait(1000);&lt;br /&gt;
                   OnFwd(OUT_AC, 75);&lt;br /&gt;
                   Wait(500);&lt;br /&gt;
                   Float(OUT_AC);&lt;br /&gt;
                }&lt;br /&gt;
Advanced commands&lt;br /&gt;
The commands OnFwd() and OnRev() are the simplest routines to move motors.&lt;br /&gt;
The NXT servomotors have a built-in encoder that allows you to control precisely shaft position and speed;&lt;br /&gt;
NXT firmware implements a PID (Proportional Integrative Derivative) closed-loop controller to control motors'&lt;br /&gt;
position and speed using encoders as feedback.&lt;br /&gt;
If you want your robot to go perfectly straight, you can use a synchronization feature that makes the selected&lt;br /&gt;
couple of motors run together and wait for each other in case one of them is slowed down or even blocked; in a&lt;br /&gt;
similar way, you can set a couple of motors to run together in sync, with a percentage of steering to turn left,&lt;br /&gt;
right or spin in place, but always keeping sync. There are many commands to unleash servomotors' full power!&lt;br /&gt;
OnFwdReg(‘ports',‘speed',‘regmode') drives the motors specified by ‘ports' at the ‘speed' power&lt;br /&gt;
applying the regulation mode that can be either OUT_REGMODE_IDLE, OUT_REGMODE_SPEED or&lt;br /&gt;
OUT_REGMODE_SYNC. If IDLE is selected, no PID regulation will be applied; if SPEED mode is selected, the&lt;br /&gt;
NXT regulates single motor to get a constant speed, even if load on motor varies; finally, if SYNC is selected,&lt;br /&gt;
the couple of motors specified by ‘ports' move in sync as explained before.&lt;br /&gt;
OnRevReg() acts as the precedent command, reversing direction.&lt;br /&gt;
                                                         - 31 -&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  OnFwdReg(OUT_AC,50,OUT_REGMODE_IDLE);&lt;br /&gt;
                  Wait(2000);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
                  PlayTone(4000,50);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
                  ResetTachoCount(OUT_AC);&lt;br /&gt;
                  OnFwdReg(OUT_AC,50,OUT_REGMODE_SPEED);&lt;br /&gt;
                  Wait(2000);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
                  PlayTone(4000,50);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
                  OnFwdReg(OUT_AC,50,OUT_REGMODE_SYNC);&lt;br /&gt;
                  Wait(2000);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
This program shows well different regulation if you try to stop wheels holding the robot in your hand: first&lt;br /&gt;
(IDLE mode), stopping a wheel you will not notice anything; then (SPEED MODE), trying to slow down a&lt;br /&gt;
wheel, you'll see that NXT increases motor's power to overcome your hold, trying to keep speed constant; finally&lt;br /&gt;
(SYNC mode), stopping a wheel will cause the other one to stop, waiting for the blocked one.&lt;br /&gt;
OnFwdSync(‘ports',‘speed',‘turnpct') is the same as OnFwdReg() command in SYNC mode, but&lt;br /&gt;
now you can also specify the 'turnpct' steering percentual (from -100 to 100).&lt;br /&gt;
OnRevSync() is the same as before, simply reversing the motor's direction. The following program shows&lt;br /&gt;
these commands: try changing steering number to see how it behaves.&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  PlayTone(5000,30);&lt;br /&gt;
                  OnFwdSync(OUT_AC,50,0);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
                  PlayTone(5000,30);&lt;br /&gt;
                  OnFwdSync(OUT_AC,50,20);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
                  PlayTone(5000,30);&lt;br /&gt;
                  OnFwdSync(OUT_AC,50,-40);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
                  PlayTone(5000,30);&lt;br /&gt;
                  OnRevSync(OUT_AC,50,90);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
Finally, motors can be set to turn by a limited number of degrees (remember that a full turn is 360°).&lt;br /&gt;
For both following commands, you can act on motor's direction changing either the sign of the speed or the sign&lt;br /&gt;
of the angle: so, if speed and angle have the same sign, motor will run forwards, if their sign is opposite, the&lt;br /&gt;
motor will run backwards.&lt;br /&gt;
RotateMotor(‘ports',‘speed',‘degrees') rotates the motor shaft specified by ‘ports' by a ‘degrees'&lt;br /&gt;
angle at ‘speed' power (in 0-100 range).&lt;br /&gt;
                                                       - 32 -&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                    RotateMotor(OUT_AC, 50,360);&lt;br /&gt;
                    RotateMotor(OUT_C, 50,-360);&lt;br /&gt;
                }&lt;br /&gt;
RotateMotorEx(‘ports',‘speed',‘degrees',‘turnpct',‘sync', 'stop') is an extension of the&lt;br /&gt;
precedent command, that lets you synchronize two motors (e.g. OUT_AC) specifying a ‘turnpct' steering&lt;br /&gt;
percentage (from -100 to 100) and a boolean flag ‘sync' (that can be set to true or false). It also lets you&lt;br /&gt;
specify whether the motors should brake after the angle of rotation has completed using the boolean flag 'stop'.&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                    RotateMotorEx(OUT_AC,         50,   360,   0, true, true);&lt;br /&gt;
                    RotateMotorEx(OUT_AC,         50,   360,   40, true, true);&lt;br /&gt;
                    RotateMotorEx(OUT_AC,         50,   360,   -40, true, true);&lt;br /&gt;
                    RotateMotorEx(OUT_AC,         50,   360,   100, true, true);&lt;br /&gt;
                }&lt;br /&gt;
PID control&lt;br /&gt;
NXT firmware implements a digital PID (proportional integrative derivative) controller to regulate servomotors'&lt;br /&gt;
position and speed with precision. This controller type is one of the simplest yet most effective closed loop&lt;br /&gt;
feedback controller known is automation, and is often used.&lt;br /&gt;
In rough words, it works so (I'll talk about position regulation for a discrete time controller):&lt;br /&gt;
Your program gives the controller a set point R(t) to reach; it actuates the motor with a command U(t) ,&lt;br /&gt;
measuring its position Y(t) with the built-in encoder and calculates an error E(t) = R(t) – Y(t): here's why it is&lt;br /&gt;
called a &amp;quot;closed loop controller&amp;quot;, because the output position Y(t) is brought back to the controller's input to&lt;br /&gt;
calculate the error. The controller transforms the error E(t) into the command U(t) so:&lt;br /&gt;
U(t) = P(t) + I(t) + D(t), where&lt;br /&gt;
        P(t) = KP·E(t),&lt;br /&gt;
        I(t) = KI·( I(t–1) + E(t) )&lt;br /&gt;
   and D(t) = KD·(E(t) – E(t –1)).&lt;br /&gt;
It could seem quite hard for a novice, but I'll try to explain this mechanism as best as I can.&lt;br /&gt;
The command is the sum of three contributes, the proportional part P(t), the integrative part I(t) and the&lt;br /&gt;
derivative part D(t) .&lt;br /&gt;
P(t) makes the controller quick in time, but it does not assure a null error at equilibrium;&lt;br /&gt;
I(t) gives “memory” to the controller, in the sense that it takes trace of accumulated errors and compensates&lt;br /&gt;
them, with the guarantee of a zero error at equilibrium;&lt;br /&gt;
D(t) gives “future prediction” to the controller (as derivation in math), speeding up response.&lt;br /&gt;
I know this can still be confusing, consider that entire academic books have been written on this argument! But&lt;br /&gt;
we can still try it online, with our NXT brick! The simple program to fix things into memory is the following.&lt;br /&gt;
                                                         - 33 -&lt;br /&gt;
                #define P 50&lt;br /&gt;
                #define I 50&lt;br /&gt;
                #define D 50&lt;br /&gt;
                task main(){&lt;br /&gt;
                    RotateMotorPID(OUT_A, 100, 180, P, I, D);&lt;br /&gt;
                    Wait(3000);&lt;br /&gt;
                }&lt;br /&gt;
The RotateMotorPID(port,speed, angle, Pgain,Igain,Dgain) let you move a motor setting different PID gains&lt;br /&gt;
from the default ones. Try setting the following values&lt;br /&gt;
(50,0,0): the motor does not rotate 180° exactly, since an uncompensated error remains&lt;br /&gt;
(0,x,x): without proportional part, the error is very big&lt;br /&gt;
(40,40,0): there's an overshoot, that means the motor shaft moves beyond the set point and then turns back&lt;br /&gt;
(40,40,90): good precision and raising time (time to reach the set point)&lt;br /&gt;
(40,40,200): the shaft oscillate, since derivative gain is too high&lt;br /&gt;
Try other values to discover how these gains influence a motor's performance.&lt;br /&gt;
Summary&lt;br /&gt;
In this chapter you learned about the advanced motor commands available: Float(),Coast() that stop the&lt;br /&gt;
motor gently; OnXxxReg(), and OnXxxSync() that allow feedback control on motors' speed and sync;&lt;br /&gt;
RotateMotor() and RotateMotorEx() are used to turn motor's shaft by a precise number of degrees. You&lt;br /&gt;
learned something about PID control too; it has not been an exhaustive explanation, but maybe I have caused a&lt;br /&gt;
bit of curiosity in you: search the web about it!&lt;br /&gt;
                                                         &lt;br /&gt;
==IX. More about sensors==&lt;br /&gt;
In Chapter V we discussed the basic aspects of using sensors. But there is a lot more you can do with sensors. In&lt;br /&gt;
this chapter we will discuss the difference between sensor mode and sensor type, we will see how to use the old&lt;br /&gt;
compatible RCX sensors, attaching them to NXT using Lego converter cables.&lt;br /&gt;
Sensor mode and type&lt;br /&gt;
The SetSensor() command that we saw before does actually two things: it sets the type of the sensor, and it&lt;br /&gt;
sets the mode in which the sensor operates. By setting the mode and type of a sensor separately, you can control&lt;br /&gt;
the behavior of the sensor more precisely, which is useful for particular applications.&lt;br /&gt;
The type of the sensor is set with the command SetSensorType(). There are many different types, but I will&lt;br /&gt;
report the main ones: SENSOR_TYPE_TOUCH, which is the touch sensor, SENSOR_TYPE_LIGHT_ACTIVE, which&lt;br /&gt;
is the light sensor (with led on), SENSOR_TYPE_SOUND_DB, which is the sound sensor, and&lt;br /&gt;
SENSOR_TYPE_LOWSPEED_9V, which is the Ultrasonic sensor. Setting the type sensor is in particular important&lt;br /&gt;
to indicate whether the sensor needs power (e.g. to light up led in the light sensor), or to indicate NXT that the&lt;br /&gt;
sensor is digital and needs to be read via I2C serial protocol. It is possible to use old RCX sensor with NXT:&lt;br /&gt;
SENSOR_TYPE_TEMPERATURE, for the temperature sensor, SENSOR_TYPE_LIGHT for old light sensor,&lt;br /&gt;
SENSOR_TYPE_ROTATION for RCX rotation sensor (this type will be discussed later).&lt;br /&gt;
The mode of the sensor is set with the command SetSensorMode(). There are eight different modes. The most&lt;br /&gt;
important one is SENSOR_MODE_RAW. In this mode, the value you get when checking the sensor is a number&lt;br /&gt;
between 0 and 1023. It is the raw value produced by the sensor. What it means depends on the actual sensor. For&lt;br /&gt;
example, for a touch sensor, when the sensor is not pushed the value is close to 1023. When it is fully pushed, it&lt;br /&gt;
is close to 50. When it is pushed partially the value ranges between 50 and 1000. So if you set a touch sensor to&lt;br /&gt;
raw mode you can actually find out whether it is touched partially. When the sensor is a light sensor, the value&lt;br /&gt;
ranges from about 300 (very light) to 800 (very dark). This gives a much more precise value than using the&lt;br /&gt;
SetSensor() command. For details, see the NXC Programming Guide.&lt;br /&gt;
The second sensor mode is SENSOR_MODE_BOOL. In this mode the value is 0 or 1. When the raw value is above&lt;br /&gt;
562 the value is 0, otherwise it is 1. SENSOR_MODE_BOOL is the default mode for a touch sensor, but can be used&lt;br /&gt;
for other types, discarding analogic informations. The modes SENSOR_MODE_CELSIUS and&lt;br /&gt;
SENSOR_MODE_FAHRENHEIT are useful with temperature sensors only and give the temperature in the indicated&lt;br /&gt;
way. SENSOR_MODE_PERCENT turns the raw value into a value between 0 and 100. SENSOR_MODE_PERCENT is&lt;br /&gt;
the default mode for a light sensor. SENSOR_MODE_ROTATION is used only for the rotation sensor (see below).&lt;br /&gt;
There are two other interesting modes: SENSOR_MODE_EDGE and SENSOR_MODE_PULSE. They count transitions,&lt;br /&gt;
that is, changes from a low to a high raw value or opposite. For example, when you touch a touch sensor this&lt;br /&gt;
causes a transition from high to low raw value. When you release it you get a transition the other direction.&lt;br /&gt;
When you set the sensor mode to SENSOR_MODE_PULSE, only transitions from low to high are counted. So each&lt;br /&gt;
touch and release of the touch sensor counts for one. When you set the sensor mode to SENSOR_MODE_EDGE,&lt;br /&gt;
both transitions are counted. So each touch and release of the touch sensor counts for two. So you can use this to&lt;br /&gt;
count how often a touch sensor is pushed. Or you can use it in combination with a light sensor to count how&lt;br /&gt;
often a (strong) lamp is switched on and off. Off course, when you are counting edges or pulses, you should be&lt;br /&gt;
able to set the counter back to 0. For this you use the command ClearSensor(), that clears the counter for the&lt;br /&gt;
indicated sensor.&lt;br /&gt;
Let us look at an example. The following program uses a touch sensor to steer the robot. Connect the touch&lt;br /&gt;
sensor with a long wire to input one. If touch the sensor quickly twice the robot moves forwards. It you touch it&lt;br /&gt;
once it stops moving.&lt;br /&gt;
                                                         - 35 -&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                   SetSensorType(IN_1, SENSOR_TYPE_TOUCH);&lt;br /&gt;
                   SetSensorMode(IN_1, SENSOR_MODE_PULSE);&lt;br /&gt;
                   while(true)&lt;br /&gt;
                   {&lt;br /&gt;
                      ClearSensor(IN_1);&lt;br /&gt;
                      until (SENSOR_1 &amp;gt; 0);&lt;br /&gt;
                      Wait(500);&lt;br /&gt;
                      if (SENSOR_1 == 1) {Off(OUT_AC);}&lt;br /&gt;
                      if (SENSOR_1 == 2) {OnFwd(OUT_AC, 75);}&lt;br /&gt;
                   }&lt;br /&gt;
                }&lt;br /&gt;
Note that we first set the type of the sensor and then the mode. It seems that this is essential because changing&lt;br /&gt;
the type also affects the mode.&lt;br /&gt;
The rotation sensor&lt;br /&gt;
The rotation sensor is a very useful type of sensor: it is an optical encoder, almost the same as the one built&lt;br /&gt;
inside NXT servomotors. The rotation sensor contains a hole through which you can put an axle, whose relative&lt;br /&gt;
angular position is measured. One full rotation of the axle counts 16 steps (or –16 if you rotate it the other way),&lt;br /&gt;
that means a 22.5 degrees resolution, very rough respect to the 1-degree resolution of the servomotor. This old&lt;br /&gt;
kind of rotation sensor can be still useful to monitor an axle without the need to waste a motor; also consider that&lt;br /&gt;
using a motor as encoder requires a lot of torque to move it, while old rotation sensor is very easy to rotate.&lt;br /&gt;
If you need finer resolution than 16 steps per turn, you can always use gears to mechanically increase the number&lt;br /&gt;
of ticks per turn.&lt;br /&gt;
Next example is inherited from old tutorial for RCX.&lt;br /&gt;
One standard application is to have two rotation sensors connected to the two wheels of the robot that you&lt;br /&gt;
control with the two motors. For a straight movement you want both wheels to turn equally fast. Unfortunately,&lt;br /&gt;
the motors normally don't run at exactly the same speed. Using the rotation sensors you can see that one wheel&lt;br /&gt;
turns faster. You can then temporarily stop that motor (best using Float()) until both sensors give the same&lt;br /&gt;
value again. The following program does this. It simply lets the robot drive in a straight line. To use it, change&lt;br /&gt;
your robot by connecting the two rotation sensors to the two wheels. Connect the sensors to input 1 and 3.&lt;br /&gt;
                task main()&lt;br /&gt;
                {&lt;br /&gt;
                   SetSensor(IN_1, SENSOR_ROTATION); ClearSensor(IN_1);&lt;br /&gt;
                   SetSensor(IN_3, SENSOR_ROTATION); ClearSensor(IN_3);&lt;br /&gt;
                   while (true)&lt;br /&gt;
                   {&lt;br /&gt;
                      if (SENSOR_1 &amp;lt; SENSOR_3)&lt;br /&gt;
                        {OnFwd(OUT_A, 75); Float(OUT_C);}&lt;br /&gt;
                      else if (SENSOR_1 &amp;gt; SENSOR_3)&lt;br /&gt;
                        {OnFwd(OUT_C, 75); Float(OUT_A);}&lt;br /&gt;
                      else&lt;br /&gt;
                        {OnFwd(OUT_AC, 75);}&lt;br /&gt;
                   }&lt;br /&gt;
                }&lt;br /&gt;
The program first indicates that both sensors are rotation sensors, and resets the values to zero. Next it starts an&lt;br /&gt;
infinite loop. In the loop we check whether the two sensor readings are equal. If they are the robot simply moves&lt;br /&gt;
forwards. If one is larger, the correct motor is stopped until both readings are again equal.&lt;br /&gt;
Clearly this is only a very simple program. You can extend this to make the robot drive exact distances, or to let&lt;br /&gt;
it make very precise turns.&lt;br /&gt;
                                                         - 36 -&lt;br /&gt;
Putting multiple sensors on one input&lt;br /&gt;
A little disclaimer is needed at the top of this section! Due to the new structure of improved NXT sensors and 6-&lt;br /&gt;
wires cables, it is not easy as before (as was for RCX) to connect more sensors to the same port. In my honest&lt;br /&gt;
opinion, the only reliable (and easy to do) application would be to build a touch sensor analog multiplexer to use&lt;br /&gt;
in combination with a converter cable. The alternative is a complex digital multiplexer that can manage I2C&lt;br /&gt;
communication with NXT, but this is not definitely an affordable solution for beginners.&lt;br /&gt;
The NXT has four inputs to connect sensors. When you want to make more complicated robots (and you bought&lt;br /&gt;
some extra sensors) this might not be enough for you. Fortunately, with some tricks, you can connect two (or&lt;br /&gt;
even more) sensors to one input.&lt;br /&gt;
The easiest is to connect two touch sensors to one input. If one of them (or both) is touched the value is 1,&lt;br /&gt;
otherwise it is 0. You cannot distinguish the two but sometimes this is not necessary. For example, when you put&lt;br /&gt;
one touch sensor at the front and one at the back of the robot, you know which one is touched based on the&lt;br /&gt;
direction the robot is driving in. But you can also set the mode of the input to raw (see above). Now you can get&lt;br /&gt;
a lot more information. If you are lucky, the value when the sensor is pressed is not the same for both sensors. If&lt;br /&gt;
this is the case you can actually distinguish between the two sensors. And when both are pressed you get a much&lt;br /&gt;
lower value (around 30) so you can also detect this.&lt;br /&gt;
You can also connect a touch sensor and a light sensor to one input (RCX sensors only). Set the type to light&lt;br /&gt;
(otherwise the light sensor won't work). Set the mode to raw. In this case, when the touch sensor is pushed you&lt;br /&gt;
get a raw value below 100. If it is not pushed you get the value of the light sensor, which is never below 100.&lt;br /&gt;
The following program uses this idea. The robot must be equipped with a light sensor pointing down, and a&lt;br /&gt;
bumper at the front connected to a touch sensor. Connect both of them to input 1. The robot will drive around&lt;br /&gt;
randomly within a light area. When the light sensor sees a dark line (raw value &amp;gt; 750) it goes back a bit. When&lt;br /&gt;
the touch sensor touches something (raw value below 100) it does the same. Here is the program:&lt;br /&gt;
                                                          - 37 -&lt;br /&gt;
                 mutex moveMutex;&lt;br /&gt;
                 int ttt,tt2;&lt;br /&gt;
                 task moverandom()&lt;br /&gt;
                 {&lt;br /&gt;
                    while (true)&lt;br /&gt;
                    {&lt;br /&gt;
                       ttt = Random(500) + 40;&lt;br /&gt;
                       tt2 = Random();&lt;br /&gt;
                       Acquire(moveMutex);&lt;br /&gt;
                       if (tt2 &amp;gt; 0)&lt;br /&gt;
                         { OnRev(OUT_A, 75); OnFwd(OUT_C, 75); Wait(ttt); }&lt;br /&gt;
                       else&lt;br /&gt;
                         { OnRev(OUT_C, 75); OnFwd(OUT_A, 75); Wait(ttt); }&lt;br /&gt;
                       ttt = Random(1500) + 50;&lt;br /&gt;
                       OnFwd(OUT_AC, 75); Wait(ttt);&lt;br /&gt;
                       Release(moveMutex);&lt;br /&gt;
                    }&lt;br /&gt;
                 }&lt;br /&gt;
                 task submain()&lt;br /&gt;
                 {&lt;br /&gt;
                    SetSensorType(IN_1, SENSOR_TYPE_LIGHT);&lt;br /&gt;
                    SetSensorMode(IN_1, SENSOR_MODE_RAW);&lt;br /&gt;
                    while (true)&lt;br /&gt;
                    {&lt;br /&gt;
                       if ((SENSOR_1 &amp;lt; 100) || (SENSOR_1 &amp;gt; 750))&lt;br /&gt;
                       {&lt;br /&gt;
                         Acquire(moveMutex);&lt;br /&gt;
                         OnRev(OUT_AC, 75); Wait(300);&lt;br /&gt;
                         Release(moveMutex);&lt;br /&gt;
                       }&lt;br /&gt;
                    }&lt;br /&gt;
                 }&lt;br /&gt;
                 task main()&lt;br /&gt;
                 {&lt;br /&gt;
                    Precedes(moverandom, submain);&lt;br /&gt;
                 }&lt;br /&gt;
I hope the program is clear. There are two tasks. Task moverandom makes the robot move around in a random&lt;br /&gt;
way. The main task first starts moverandom, sets the sensor and then waits for something to happen. If the&lt;br /&gt;
sensor reading gets too low (touching) or too high (out of the white area) it stops the random moves, backs up a&lt;br /&gt;
little, and start the random moves again.&lt;br /&gt;
Summary&lt;br /&gt;
In this chapter we have seen a number of additional issues about sensors. We saw how to separately set the type&lt;br /&gt;
and mode of a sensor and how this could be used to get additions information. We learned how to use the&lt;br /&gt;
rotation sensor. And we saw how multiple sensors can be connected to one input of the NXT. All these tricks are&lt;br /&gt;
extremely useful when constructing more complicated robots. Sensors always play a crucial role there.&lt;br /&gt;
                                                      &lt;br /&gt;
==X. Parallel tasks==&lt;br /&gt;
As has been indicated before, tasks in NXC are executed simultaneously, or in parallel as people usually say.&lt;br /&gt;
This is extremely useful. In enables you to watch sensors in one task while another task moves the robot around,&lt;br /&gt;
and yet another task plays some music. But parallel tasks can also cause problems. One task can interfere with&lt;br /&gt;
another.&lt;br /&gt;
A wrong program&lt;br /&gt;
Consider the following program. Here one task drives the robot around in squares (like we did so often before)&lt;br /&gt;
and the second task checks for the touch sensor. When the sensor is touched, it moves a bit backwards, and&lt;br /&gt;
makes a 90-degree turn.&lt;br /&gt;
               task check_sensors()&lt;br /&gt;
               {&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                     if (SENSOR_1 == 1)&lt;br /&gt;
                     {&lt;br /&gt;
                        OnRev(OUT_AC, 75);&lt;br /&gt;
                        Wait(500);&lt;br /&gt;
                        OnFwd(OUT_A, 75);&lt;br /&gt;
                        Wait(850);&lt;br /&gt;
                        OnFwd(OUT_C, 75);&lt;br /&gt;
                     }&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task submain()&lt;br /&gt;
               {&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                     OnFwd(OUT_AC, 75); Wait(1000);&lt;br /&gt;
                     OnRev(OUT_C, 75); Wait(500);&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  SetSensor(IN_1,SENSOR_TOUCH);&lt;br /&gt;
                  Precedes(check_sensors, submain);&lt;br /&gt;
               }&lt;br /&gt;
This probably looks like a perfectly valid program. But if you execute it you will most likely find some&lt;br /&gt;
unexpected behavior. Try the following: Make the robot touch something while it is turning. It will start going&lt;br /&gt;
back, but immediately moves forwards again, hitting the obstacle. The reason for this is that the tasks may&lt;br /&gt;
interfere. The following is happening. The robot is turning right, that is, the first task is in its second sleep&lt;br /&gt;
statement. Now the robot hits the sensor. It start going backwards, but at that very moment, the main task is&lt;br /&gt;
ready with sleeping and moves the robot forwards again; into the obstacle. The second task is sleeping at this&lt;br /&gt;
moment so it won't notice the collision. This is clearly not the behavior we would like to see. The problem is&lt;br /&gt;
that, while the second task is sleeping we did not realize that the first task was still running, and that its actions&lt;br /&gt;
interfere with the actions of the second task.&lt;br /&gt;
Critical sections and mutex variables&lt;br /&gt;
One way of solving this problem is to make sure that at any moment only one task is driving the robot. This was&lt;br /&gt;
the approach we took in Chapter VI. Let me repeat the program here.&lt;br /&gt;
                                                        - 39 -&lt;br /&gt;
               mutex moveMutex;&lt;br /&gt;
               task move_square()&lt;br /&gt;
               {&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                     Acquire(moveMutex);&lt;br /&gt;
                     OnFwd(OUT_AC, 75); Wait(1000);&lt;br /&gt;
                     OnRev(OUT_C, 75); Wait(850);&lt;br /&gt;
                     Release(moveMutex);&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task check_sensors()&lt;br /&gt;
               {&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                     if (SENSOR_1 == 1)&lt;br /&gt;
                     {&lt;br /&gt;
                        Acquire(moveMutex);&lt;br /&gt;
                        OnRev(OUT_AC, 75); Wait(500);&lt;br /&gt;
                        OnFwd(OUT_A, 75); Wait(850);&lt;br /&gt;
                        Release(moveMutex);&lt;br /&gt;
                     }&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  SetSensor(IN_1,SENSOR_TOUCH);&lt;br /&gt;
                  Precedes(check_sensors, move_square);&lt;br /&gt;
               }&lt;br /&gt;
The crux is that both the check_sensors and move_square tasks can control motors only if no other task is&lt;br /&gt;
using them: this is done using the Acquire statement that waits for the moveMutex mutual exclusion variable&lt;br /&gt;
to be released before using motors. The Acquire command counterpart is the Release command, that frees the&lt;br /&gt;
mutex variable so other tasks can use the critical resource, motors in our case. The code inside the acquire-&lt;br /&gt;
release scope is called critical region: critical means that shared resources are used. In this way tasks cannot&lt;br /&gt;
interfere with each other.&lt;br /&gt;
Using semaphores&lt;br /&gt;
There is a hand-made alternative to mutex variables that is the explicit implementation of the Acquire and&lt;br /&gt;
Release commands.&lt;br /&gt;
A standard technique to solve this problem is to use a variable to indicate which task is in control of the motors.&lt;br /&gt;
The other tasks are not allowed to drive the motors until the first task indicates, using the variable, that it is&lt;br /&gt;
ready. Such a variable is often called a semaphore. Let sem be such a semaphore (same as mutex). We assume&lt;br /&gt;
that a value of 0 indicates that no task is steering the motors (resource is free). Now, whenever a task wants to do&lt;br /&gt;
something with the motors it executes the following commands:&lt;br /&gt;
               until (sem == 0);&lt;br /&gt;
               sem = 1; //Acquire(sem);&lt;br /&gt;
               // Do something with the motors&lt;br /&gt;
               // critical region&lt;br /&gt;
               sem = 0;       //Release(sem);&lt;br /&gt;
                                                          - 40 -&lt;br /&gt;
So we first wait till nobody needs the motors. Then we claim the control by setting sem to 1. Now we can control&lt;br /&gt;
the motors. When we are done we set sem back to 0. Here you find the program above, implemented using a&lt;br /&gt;
semaphore. When the touch sensor touches something, the semaphore is set and the backup procedure is&lt;br /&gt;
performed. During this procedure the task move_square must wait. At the moment the back-up is ready, the&lt;br /&gt;
semaphore is set to 0 and move_square can continue.&lt;br /&gt;
               int sem;&lt;br /&gt;
               task move_square()&lt;br /&gt;
               {&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                      until (sem == 0); sem = 1;&lt;br /&gt;
                      OnFwd(OUT_AC, 75);&lt;br /&gt;
                      sem = 0;&lt;br /&gt;
                      Wait(1000);&lt;br /&gt;
                      until (sem == 0); sem = 1;&lt;br /&gt;
                      OnRev(OUT_C, 75);&lt;br /&gt;
                      sem = 0;&lt;br /&gt;
                      Wait(850);&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task submain()&lt;br /&gt;
               {&lt;br /&gt;
                  SetSensor(IN_1, SENSOR_TOUCH);&lt;br /&gt;
                  while (true)&lt;br /&gt;
                  {&lt;br /&gt;
                      if (SENSOR_1 == 1)&lt;br /&gt;
                      {&lt;br /&gt;
                        until (sem == 0); sem = 1;&lt;br /&gt;
                        OnRev(OUT_AC, 75); Wait(500);&lt;br /&gt;
                        OnFwd(OUT_A, 75); Wait(850);&lt;br /&gt;
                        sem = 0;&lt;br /&gt;
                      }&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  sem = 0;&lt;br /&gt;
                  Precedes(move_square, submain);&lt;br /&gt;
               }&lt;br /&gt;
You could argue that it is not necessary in move_square to set the semaphore to 1 and back to 0. Still this is&lt;br /&gt;
useful. The reason is that the OnFwd() command is in fact two commands (see Chapter VIII). You don't want&lt;br /&gt;
this command sequence to be interrupted by the other task.&lt;br /&gt;
Semaphores are very useful and, when you are writing complicated programs with parallel tasks, they are almost&lt;br /&gt;
always required. (There is still a slight chance they might fail. Try to figure out why.)&lt;br /&gt;
Summary&lt;br /&gt;
In this chapter we studied some of the problems that can occur when you use different tasks. Always be very&lt;br /&gt;
careful for side effects. Much unexpected behavior is due to this. We saw two different ways of solving such&lt;br /&gt;
problems. The first solution stops and restarts tasks to make sure that only one critical task is running at every&lt;br /&gt;
moment. The second approach uses semaphores to control the execution of tasks. This guarantees that at every&lt;br /&gt;
moment only the critical part of one task is executed.&lt;br /&gt;
                                                        - 41 -&lt;br /&gt;
==XI. Communication between robots==&lt;br /&gt;
If you own more than one NXT this chapter is for you (though you can still communicate data to the PC, having&lt;br /&gt;
a single NXT). Robots can communicate with each other via Bluetooth radio technology: you can have multiple&lt;br /&gt;
robots collaborate (or fight with each other), and you can build a big complex robot using two NXTs, so that you&lt;br /&gt;
can use six motors and eight sensors.&lt;br /&gt;
For good old RCX, it is simple: it sends an InfraRed message and all robots around receive it.&lt;br /&gt;
For NXT it's a whole different thing! First, you must connect two or more NXTs (or NXT to PC) with the&lt;br /&gt;
onbrick Bluetooth menu; only then you can send messages to connected devices.&lt;br /&gt;
The NXT that starts the connection is called Master, and can have up to 3 Slave devices connected on lines 1,2,3;&lt;br /&gt;
Slaves always see the Master connected on line 0. You can send messages to 10 mailboxes available.&lt;br /&gt;
Master – Slave messaging&lt;br /&gt;
Two programs will be shown, one for the master, one for the slave. These basic programs will teach you how a&lt;br /&gt;
fast continuous stream of string messages can be managed by a two-NXT wireless network.&lt;br /&gt;
The master program first checks if the slave is correctly connected on line 1 (BT_CONN constant) using&lt;br /&gt;
BluetoothStatus(conn) function; then builds and sends messages with a M prefix and a growing number&lt;br /&gt;
with SendRemoteString(conn,queue,string), while receives messages from slave with&lt;br /&gt;
ReceiveRemoteString(queue,clear,string) and displays data.&lt;br /&gt;
              //MASTER&lt;br /&gt;
              #define BT_CONN 1&lt;br /&gt;
              #define INBOX 1&lt;br /&gt;
              #define OUTBOX 5&lt;br /&gt;
              sub BTCheck(int conn){&lt;br /&gt;
                   if (!BluetoothStatus(conn)==NO_ERR){&lt;br /&gt;
                       TextOut(5,LCD_LINE2,&amp;quot;Error&amp;quot;);&lt;br /&gt;
                       Wait(1000);&lt;br /&gt;
                       Stop(true);&lt;br /&gt;
                   }&lt;br /&gt;
              }&lt;br /&gt;
              task main(){&lt;br /&gt;
                   string in, out, iStr;&lt;br /&gt;
                   int i = 0;&lt;br /&gt;
                   BTCheck(BT_CONN); //check slave connection&lt;br /&gt;
                   while(true){&lt;br /&gt;
                     iStr = NumToStr(i);&lt;br /&gt;
                     out = StrCat(&amp;quot;M&amp;quot;,iStr);&lt;br /&gt;
                     TextOut(10,LCD_LINE1,&amp;quot;Master Test&amp;quot;);&lt;br /&gt;
                     TextOut(0,LCD_LINE2,&amp;quot;IN:&amp;quot;);&lt;br /&gt;
                     TextOut(0,LCD_LINE4,&amp;quot;OUT:&amp;quot;);&lt;br /&gt;
                     ReceiveRemoteString(INBOX, true, in);&lt;br /&gt;
                     SendRemoteString(BT_CONN,OUTBOX,out);&lt;br /&gt;
                     TextOut(10,LCD_LINE3,in);&lt;br /&gt;
                     TextOut(10,LCD_LINE5,out);&lt;br /&gt;
                     Wait(100);&lt;br /&gt;
                     i++;&lt;br /&gt;
                   }&lt;br /&gt;
              }&lt;br /&gt;
The slave program is very similar, but uses SendResponseString(queue,string) instead of&lt;br /&gt;
SendRemoteString because slave must can send messages only to its master, seen on line 0.&lt;br /&gt;
                                                       - 42 -&lt;br /&gt;
                //SLAVE&lt;br /&gt;
                #define BT_CONN 1&lt;br /&gt;
                #define INBOX 5&lt;br /&gt;
                #define OUTBOX 1&lt;br /&gt;
                sub BTCheck(int conn){&lt;br /&gt;
                     if (!BluetoothStatus(conn)==NO_ERR){&lt;br /&gt;
                        TextOut(5,LCD_LINE2,&amp;quot;Error&amp;quot;);&lt;br /&gt;
                        Wait(1000);&lt;br /&gt;
                        Stop(true);&lt;br /&gt;
                     }&lt;br /&gt;
                }&lt;br /&gt;
                task main(){&lt;br /&gt;
                     string in, out, iStr;&lt;br /&gt;
                     int i = 0;&lt;br /&gt;
                     BTCheck(0); //check master connection&lt;br /&gt;
                     while(true){&lt;br /&gt;
                       iStr = NumToStr(i);&lt;br /&gt;
                       out = StrCat(&amp;quot;S&amp;quot;,iStr);&lt;br /&gt;
                       TextOut(10,LCD_LINE1,&amp;quot;Slave Test&amp;quot;);&lt;br /&gt;
                       TextOut(0,LCD_LINE2,&amp;quot;IN:&amp;quot;);&lt;br /&gt;
                       TextOut(0,LCD_LINE4,&amp;quot;OUT:&amp;quot;);&lt;br /&gt;
                       ReceiveRemoteString(INBOX, true, in);&lt;br /&gt;
                       SendResponseString(OUTBOX,out);&lt;br /&gt;
                       TextOut(10,LCD_LINE3,in);&lt;br /&gt;
                       TextOut(10,LCD_LINE5,out);&lt;br /&gt;
                       Wait(100);&lt;br /&gt;
                       i++;&lt;br /&gt;
                     }&lt;br /&gt;
                }&lt;br /&gt;
You will notice that aborting one of the programs, the other will continue to send messages with growing&lt;br /&gt;
numbers, without knowing that all the messages sent will be lost, because no one is listening on the other side.&lt;br /&gt;
To avoid this problem, we could plan a finer protocol, with delivery acknowledgement.&lt;br /&gt;
Sending numbers with acknowledgement&lt;br /&gt;
Here we see another couple of programs: this time master sends numbers with&lt;br /&gt;
SendRemoteNumber(conn,queue,number) and stops waiting for slave ack (until cycle, inside which we&lt;br /&gt;
find ReceiveRemoteString); only if slave is listening and sending acks, the master proceeds sending the next&lt;br /&gt;
message. Slave simply receives number with ReceiveRemoteNumber(queue,clear,number) and sends&lt;br /&gt;
the ack with SendResponseNumber. Your master-slave programs must agree on the common code for the&lt;br /&gt;
ack, in this case, I choose the hex value 0xFF.&lt;br /&gt;
The master sends random numbers and waits for slave ack; every time it receives an ack with the right code, the&lt;br /&gt;
ack variable must be cleared, otherwise the master will continue sending without new acks, because the variable&lt;br /&gt;
got dirty.&lt;br /&gt;
The slave checks continuously the mailbox and, if it is not empty, displays the read value and sends an ack to the&lt;br /&gt;
master. At the beginning of the program, I choose to send an ack without reading messages to unblock the&lt;br /&gt;
master; in fact, without this trick, if the master program is started for first, it would hang even if we start slave&lt;br /&gt;
later. This way the first few messages get lost, but you can start master and slave programs in different moments&lt;br /&gt;
without the risk of hanging.&lt;br /&gt;
                                                         - 43 -&lt;br /&gt;
//MASTER&lt;br /&gt;
#define BT_CONN 1&lt;br /&gt;
#define OUTBOX 5&lt;br /&gt;
#define INBOX 1&lt;br /&gt;
#define CLEARLINE(L)   \&lt;br /&gt;
  TextOut(0,L,&amp;quot;                      &amp;quot;);&lt;br /&gt;
sub BTCheck(int conn){&lt;br /&gt;
   if (!BluetoothStatus(conn)==NO_ERR){&lt;br /&gt;
      TextOut(5,LCD_LINE2,&amp;quot;Error&amp;quot;);&lt;br /&gt;
      Wait(1000);&lt;br /&gt;
      Stop(true);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
task main(){&lt;br /&gt;
   int ack;&lt;br /&gt;
   int i;&lt;br /&gt;
   BTCheck(BT_CONN);&lt;br /&gt;
   TextOut(10,LCD_LINE1,&amp;quot;Master sending&amp;quot;);&lt;br /&gt;
   while(true){&lt;br /&gt;
     i = Random(512);&lt;br /&gt;
     CLEARLINE(LCD_LINE3);&lt;br /&gt;
     NumOut(5,LCD_LINE3,i);&lt;br /&gt;
     ack = 0;&lt;br /&gt;
     SendRemoteNumber(BT_CONN,OUTBOX,i);&lt;br /&gt;
     until(ack==0xFF) {&lt;br /&gt;
       until(ReceiveRemoteNumber(INBOX,true,ack) == NO_ERR);&lt;br /&gt;
     }&lt;br /&gt;
     Wait(250);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
//SLAVE&lt;br /&gt;
#define BT_CONN 1&lt;br /&gt;
#define OUT_MBOX 1&lt;br /&gt;
#define IN_MBOX 5&lt;br /&gt;
sub BTCheck(int conn){&lt;br /&gt;
   if (!BluetoothStatus(conn)==NO_ERR){&lt;br /&gt;
      TextOut(5,LCD_LINE2,&amp;quot;Error&amp;quot;);&lt;br /&gt;
      Wait(1000);&lt;br /&gt;
      Stop(true);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
task main(){&lt;br /&gt;
   int in;&lt;br /&gt;
   BTCheck(0);&lt;br /&gt;
   TextOut(5,LCD_LINE1,&amp;quot;Slave receiving&amp;quot;);&lt;br /&gt;
   SendResponseNumber(OUT_MBOX,0xFF); //unblock master&lt;br /&gt;
   while(true){&lt;br /&gt;
     if (ReceiveRemoteNumber(IN_MBOX,true,in) != STAT_MSG_EMPTY_MAILBOX) {&lt;br /&gt;
       TextOut(0,LCD_LINE3,&amp;quot;                   &amp;quot;);&lt;br /&gt;
       NumOut(5,LCD_LINE3,in);&lt;br /&gt;
        SendResponseNumber(OUT_MBOX,0xFF);&lt;br /&gt;
     }&lt;br /&gt;
     Wait(10); //take breath (optional)&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
                              - 44 -&lt;br /&gt;
Direct commands&lt;br /&gt;
There's another cool feature about Bluetooth communication: master can directly control its slaves.&lt;br /&gt;
In the next example, the master sends the slave direct commands to play sounds and move a motor; there is no&lt;br /&gt;
need for a slave program, since it is the firmware of the slave NXT to receive and manage messages!&lt;br /&gt;
               //MASTER&lt;br /&gt;
               #define BT_CONN 1&lt;br /&gt;
               #define MOTOR(p,s) RemoteSetOutputState(BT_CONN, p, s, \&lt;br /&gt;
                  OUT_MODE_MOTORON+OUT_MODE_BRAKE+OUT_MODE_REGULATED, \&lt;br /&gt;
                  OUT_REGMODE_SPEED, 0, OUT_RUNSTATE_RUNNING, 0)&lt;br /&gt;
               sub BTCheck(int conn){&lt;br /&gt;
                   if (!BluetoothStatus(conn)==NO_ERR){&lt;br /&gt;
                       TextOut(5,LCD_LINE2,&amp;quot;Error&amp;quot;);&lt;br /&gt;
                       Wait(1000);&lt;br /&gt;
                       Stop(true);&lt;br /&gt;
                   }&lt;br /&gt;
               }&lt;br /&gt;
               task main(){&lt;br /&gt;
                   BTCheck(BT_CONN);&lt;br /&gt;
                   RemotePlayTone(BT_CONN, 4000, 100);&lt;br /&gt;
                   until(BluetoothStatus(BT_CONN)==NO_ERR);&lt;br /&gt;
                   Wait(110);&lt;br /&gt;
                   RemotePlaySoundFile(BT_CONN, &amp;quot;! Click.rso&amp;quot;, false);&lt;br /&gt;
                   until(BluetoothStatus(BT_CONN)==NO_ERR);&lt;br /&gt;
                   //Wait(500);&lt;br /&gt;
                   RemoteResetMotorPosition(BT_CONN,OUT_A,true);&lt;br /&gt;
                   until(BluetoothStatus(BT_CONN)==NO_ERR);&lt;br /&gt;
                   MOTOR(OUT_A,100);&lt;br /&gt;
                   Wait(1000);&lt;br /&gt;
                   MOTOR(OUT_A,0);&lt;br /&gt;
               }&lt;br /&gt;
Summary&lt;br /&gt;
In this chapter we studied some of the basic aspects of Bluetooth communication between robots: connecting&lt;br /&gt;
two NXTs, sending and receiving strings, numbers and waiting for delivery ackowledgments. This last aspect is&lt;br /&gt;
very important when a secure communication protocol is needed.&lt;br /&gt;
As extra feature, you also learned how to send direct commands to a slave brick.&lt;br /&gt;
                                                        - 45 -&lt;br /&gt;
==XII. More commands==&lt;br /&gt;
NXC has a number of additional commands. In this chapter we will discuss three types: the use of the timer,&lt;br /&gt;
commands to control the display, and the use of NXT file system.&lt;br /&gt;
Timers&lt;br /&gt;
The NXT has a timer that runs continuously. This timer ticks in increments of 1/1000 of a second. You can get&lt;br /&gt;
the current value of the timer with CurrentTick(). Here is an example of the use of a timer. The following&lt;br /&gt;
program lets the robot drive sort of random for 10 seconds.&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  long t0, time;&lt;br /&gt;
                  t0 = CurrentTick();&lt;br /&gt;
                  do&lt;br /&gt;
                  {&lt;br /&gt;
                     time = CurrentTick()-t0;&lt;br /&gt;
                     OnFwd(OUT_AC, 75);&lt;br /&gt;
                     Wait(Random(1000));&lt;br /&gt;
                     OnRev(OUT_C, 75);&lt;br /&gt;
                     Wait(Random(1000));&lt;br /&gt;
                  }&lt;br /&gt;
                  while (time&amp;lt;10000);&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
You might want to compare this program with the one given in Chapter IV that did exactly the same task. The&lt;br /&gt;
one with timers is definitely simpler.&lt;br /&gt;
Timers are very useful as a replacement for a Wait() command. You can sleep for a particular amount of time&lt;br /&gt;
by resetting a timer and then waiting till it reaches a particular value. But you can also react on other events (e.g.&lt;br /&gt;
from sensors) while waiting. The following simple program is an example of this. It lets the robot drive until&lt;br /&gt;
either 10 seconds are past, or the touch sensor touches something.&lt;br /&gt;
               task main()&lt;br /&gt;
               {&lt;br /&gt;
                  long t3;&lt;br /&gt;
                  SetSensor(IN_1,SENSOR_TOUCH);&lt;br /&gt;
                  t3 = CurrentTick();&lt;br /&gt;
                  OnFwd(OUT_AC, 75);&lt;br /&gt;
                  until ((SENSOR_1 == 1) || ((CurrentTick()-t3) &amp;gt; 10000));&lt;br /&gt;
                  Off(OUT_AC);&lt;br /&gt;
               }&lt;br /&gt;
Don't forget that timers work in ticks of 1/1000 of a second just like the wait command.&lt;br /&gt;
Dot matrix display&lt;br /&gt;
NXT brick features a black and white dot matrix display with a resolution of 100x64 pixels. There are many API&lt;br /&gt;
functions to draw text strings, numbers, dots, lines, rectangles, circles, and even bitmap images (.ric files). The&lt;br /&gt;
next example tries to cover all these cases. Pixel numbered (0,0) is the bottom left one.&lt;br /&gt;
                                                         - 46 -&lt;br /&gt;
               #define   X_MAX     99&lt;br /&gt;
               #define   Y_MAX     63&lt;br /&gt;
               #define   X_MID     (X_MAX+1)/2&lt;br /&gt;
               #define   Y_MID     (Y_MAX+1)/2&lt;br /&gt;
               task main(){&lt;br /&gt;
                  int i = 1234;&lt;br /&gt;
                  TextOut(15,LCD_LINE1,&amp;quot;Display&amp;quot;, true);&lt;br /&gt;
                  NumOut(60,LCD_LINE1, i);&lt;br /&gt;
                  PointOut(1,Y_MAX-1);&lt;br /&gt;
                  PointOut(X_MAX-1,Y_MAX-1);&lt;br /&gt;
                  PointOut(1,1);&lt;br /&gt;
                  PointOut(X_MAX-1,1);&lt;br /&gt;
                  Wait(200);&lt;br /&gt;
                  RectOut(5,5,90,50);&lt;br /&gt;
                  Wait(200);&lt;br /&gt;
                  LineOut(5,5,95,55);&lt;br /&gt;
                  Wait(200);&lt;br /&gt;
                  LineOut(5,55,95,5);&lt;br /&gt;
                  Wait(200);&lt;br /&gt;
                  CircleOut(X_MID,Y_MID-2,20);&lt;br /&gt;
                  Wait(800);&lt;br /&gt;
                  ClearScreen();&lt;br /&gt;
                  GraphicOut(30,10,&amp;quot;faceclosed.ric&amp;quot;);                   Wait(500);&lt;br /&gt;
                  ClearScreen();&lt;br /&gt;
                  GraphicOut(30,10,&amp;quot;faceopen.ric&amp;quot;);&lt;br /&gt;
                  Wait(1000);&lt;br /&gt;
               }&lt;br /&gt;
All these functions are quite self-explanatory, but now I'll describe their parameters in detail.&lt;br /&gt;
ClearScreen() clears the screen;&lt;br /&gt;
NumOut(x, y, number) lets you specify coordinates, and number;&lt;br /&gt;
TextOut(x, y, string) works as above, but outputs a text string&lt;br /&gt;
GraphicOut(x, y, filename) shows a bitmap .ric file&lt;br /&gt;
CircleOut(x, y, radius) outputs a circle specified by the coordinates of the center and radius;&lt;br /&gt;
LineOut(x1, y1, x2, y2) draws a line that goes from point (x1,x2) to (x2,y2)&lt;br /&gt;
PointOut(x, y) puts a dot on the screen&lt;br /&gt;
RectOut(x, y, width, height) draws a rectangle with the bottom left vertex in (x,y) and with the&lt;br /&gt;
dimensions specified;&lt;br /&gt;
ResetScreen() resets the screen.&lt;br /&gt;
File system&lt;br /&gt;
The NXT can write and read files, stored inside its flash memory. So you could save a datalog from sensor data&lt;br /&gt;
or read numbers during program execution. The only limit in files number and dimension is the size of the flash&lt;br /&gt;
memory. NXT API functions let you manage files (create, rename, delete, find) , let you read and write text&lt;br /&gt;
strings, numbers and single bytes.&lt;br /&gt;
In the next example, we will see how to create a file, write strings into it and rename it.&lt;br /&gt;
                                                       - 47 -&lt;br /&gt;
First, program deletes files with the names we're going to use: it is not a good habit (we should check for file&lt;br /&gt;
existence, manually delete it or choose automatically another name for our work file), but there's no problem in&lt;br /&gt;
our simple case. It creates our file by CreateFile(&amp;quot;Danny.txt&amp;quot;, 512, fileHandle), specifying name,&lt;br /&gt;
size and a handle to the file, where NXT firmware will write a number for its own uses.&lt;br /&gt;
Then it builds strings and write to file with carriage return with WriteLnString(fileHandle,string,&lt;br /&gt;
bytesWritten), where all the parameters must be variables. Finally, the file is closed and renamed.&lt;br /&gt;
Remember: a file must be closed before beginning another operation, so if you created a file you can write to it;&lt;br /&gt;
if you want to read from it, you must close it and open it with OpenFileRead(); to delete/rename it, you&lt;br /&gt;
must close it.&lt;br /&gt;
                  #define OK LDR_SUCCESS&lt;br /&gt;
                  task main(){&lt;br /&gt;
                      byte fileHandle;&lt;br /&gt;
                      short fileSize;&lt;br /&gt;
                      short bytesWritten;&lt;br /&gt;
                      string read;&lt;br /&gt;
                      string write;&lt;br /&gt;
                      DeleteFile(&amp;quot;Danny.txt&amp;quot;);&lt;br /&gt;
                      DeleteFile(&amp;quot;DannySays.txt&amp;quot;);&lt;br /&gt;
                      CreateFile(&amp;quot;Danny.txt&amp;quot;, 512, fileHandle);&lt;br /&gt;
                      for(int i=2; i&amp;lt;=10; i++ ){&lt;br /&gt;
                          write = &amp;quot;NXT is cool &amp;quot;;&lt;br /&gt;
                          string tmp = NumToStr(i);&lt;br /&gt;
                          write = StrCat(write,tmp,&amp;quot; times!&amp;quot;);&lt;br /&gt;
                          WriteLnString(fileHandle,write, bytesWritten);&lt;br /&gt;
                      }&lt;br /&gt;
                      CloseFile(fileHandle);&lt;br /&gt;
                      RenameFile(&amp;quot;Danny.txt&amp;quot;,&amp;quot;DannySays.txt&amp;quot;);&lt;br /&gt;
                  }&lt;br /&gt;
To see the result, go to BricxCCToolsNXT Explorer, upload DannySays.txt to pc and take a look.&lt;br /&gt;
Ready for the next example! We will create a table with ASCII characters.&lt;br /&gt;
                    task main(){&lt;br /&gt;
                        byte handle;&lt;br /&gt;
                        if (CreateFile(&amp;quot;ASCII.txt&amp;quot;, 2048, handle) == NO_ERR) {&lt;br /&gt;
                        for (int i=0; i &amp;lt; 256; i++) {&lt;br /&gt;
                            string s = NumToStr(i);&lt;br /&gt;
                            int slen = StrLen(s);&lt;br /&gt;
                            WriteBytes(handle, s, slen);&lt;br /&gt;
                            WriteLn(handle, i);&lt;br /&gt;
                         }&lt;br /&gt;
                         CloseFile(handle);&lt;br /&gt;
                       }&lt;br /&gt;
                    }&lt;br /&gt;
Really simple, this program creates the file and if no error occurred, it writes a number from 0 to 255 (converting&lt;br /&gt;
it to string before) with WriteBytes(handle, s, slen), that is another way to write strings without&lt;br /&gt;
carriage return; then it writes the number as is with WriteLn(handle, value) that appends a carriage return.&lt;br /&gt;
The result, that you can see as before opening ASCII.txt with a text editor (as Windows Notepad), is so&lt;br /&gt;
explainable: the number written as string is shown in a human-readable way, while the number written as hex&lt;br /&gt;
value is interpreted and shown as an ASCII code.&lt;br /&gt;
Two important functions remain to be showed: ReadLnString to read strings from files and ReadLn to read&lt;br /&gt;
numbers.&lt;br /&gt;
                                                         - 48 -&lt;br /&gt;
Now for the example for the first one: the main task calls CreateRandomFile subroutine that creates a file&lt;br /&gt;
with random numbers in it (written as strings); you can comment this line and use another hand-created text file&lt;br /&gt;
for this example.&lt;br /&gt;
Then the main task opens this file for reading, reads it a line at once until the end of file, calling ReadLnString&lt;br /&gt;
function and displays text.&lt;br /&gt;
In the CreateRandomFile subroutine we generate a predefined quantity of random numbers, convert them to&lt;br /&gt;
string and write them to the file.&lt;br /&gt;
The ReadLnString accepts a file handle and a string variable as arguments: after the call, the string will&lt;br /&gt;
contain a text line and the function will return an error code, that we can use to know if the end of file has been&lt;br /&gt;
reached.&lt;br /&gt;
         #define FILE_LINES 10&lt;br /&gt;
         sub CreateRandomFile(string fname, int lines){&lt;br /&gt;
             byte handle;&lt;br /&gt;
             string s;&lt;br /&gt;
             int bytesWritten;&lt;br /&gt;
             DeleteFile(fname);&lt;br /&gt;
             int fsize = lines*5;&lt;br /&gt;
             //create file with random data&lt;br /&gt;
             if(CreateFile(fname, fsize, handle) == NO_ERR) {&lt;br /&gt;
                  int n;&lt;br /&gt;
                  repeat(FILE_LINES) {&lt;br /&gt;
                      int n = Random(0xFF);&lt;br /&gt;
                      s = NumToStr(n);&lt;br /&gt;
                      WriteLnString(handle,s,bytesWritten);&lt;br /&gt;
                  }&lt;br /&gt;
                  CloseFile(handle);&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         task main(){&lt;br /&gt;
             byte handle;&lt;br /&gt;
             int fsize;&lt;br /&gt;
             string buf;&lt;br /&gt;
             bool eof = false;&lt;br /&gt;
             CreateRandomFile(&amp;quot;rand.txt&amp;quot;,FILE_LINES);&lt;br /&gt;
             if(OpenFileRead(&amp;quot;rand.txt&amp;quot;, fsize, handle) == NO_ERR) {&lt;br /&gt;
                TextOut(10,LCD_LINE2,&amp;quot;Filesize:&amp;quot;);&lt;br /&gt;
                NumOut(65,LCD_LINE2,fsize);&lt;br /&gt;
                Wait(600);&lt;br /&gt;
                until (eof == true){            // read the text file till the end&lt;br /&gt;
                      if(ReadLnString(handle,buf) != NO_ERR) eof = true;&lt;br /&gt;
                      ClearScreen();&lt;br /&gt;
                      TextOut(20,LCD_LINE3,buf);&lt;br /&gt;
                      Wait(500);&lt;br /&gt;
                }&lt;br /&gt;
             }&lt;br /&gt;
             CloseFile(handle);&lt;br /&gt;
         }&lt;br /&gt;
In the last program, I'll show you how to read numbers from a file.&lt;br /&gt;
I take the occasion to give you a little sample of conditional compilation. At the beginning of the code, there is a&lt;br /&gt;
definition that is not used for a macro neither for an alias: we simply define INT.&lt;br /&gt;
Then there is a preprocessor statement&lt;br /&gt;
#ifdef INT&lt;br /&gt;
    …Code…&lt;br /&gt;
#endif&lt;br /&gt;
                                                         - 49 -&lt;br /&gt;
that simply tells the compiler to compile the code between the two statements if INT as been previously defined.&lt;br /&gt;
So, if we define INT, the task main inside the first couplet will be compiled and if LONG is defined instead of&lt;br /&gt;
INT, the second version of main will be compiled.&lt;br /&gt;
This method allows me to show in a single program how both int (16 bit) and long (32 bit) types can be read&lt;br /&gt;
from file calling the same function ReadLn(handle,val).&lt;br /&gt;
As before, it accepts a file handle and a numeric variable as arguments, returning an error code.&lt;br /&gt;
The function will read 2 bytes from file if the passed variable is declared as int, and will read 4 bytes if the&lt;br /&gt;
variable is long. Also bool variables can be written and read the same way.&lt;br /&gt;
                 #define INT //        INT or LONG&lt;br /&gt;
                 #ifdef INT&lt;br /&gt;
                 task main () {&lt;br /&gt;
                      byte handle, time = 0;&lt;br /&gt;
                      int n, fsize,len, i;&lt;br /&gt;
                      int in;&lt;br /&gt;
                      DeleteFile(&amp;quot;int.txt&amp;quot;);&lt;br /&gt;
                      CreateFile(&amp;quot;int.txt&amp;quot;,4096,handle);&lt;br /&gt;
                      for (int i = 1000; i&amp;lt;=10000; i+=1000){&lt;br /&gt;
                          WriteLn(handle,i);&lt;br /&gt;
                      }&lt;br /&gt;
                      CloseFile(handle);&lt;br /&gt;
                      OpenFileRead(&amp;quot;int.txt&amp;quot;,fsize,handle);&lt;br /&gt;
                      until (ReadLn(handle,in)!=NO_ERR){&lt;br /&gt;
                          ClearScreen();&lt;br /&gt;
                          NumOut(30,LCD_LINE5,in);&lt;br /&gt;
                          Wait(500);&lt;br /&gt;
                      }&lt;br /&gt;
                      CloseFile(handle);&lt;br /&gt;
                 }&lt;br /&gt;
                 #endif&lt;br /&gt;
                 #ifdef LONG&lt;br /&gt;
                 task main () {&lt;br /&gt;
                      byte handle, time = 0;&lt;br /&gt;
                      int n, fsize,len, i;&lt;br /&gt;
                      long in;&lt;br /&gt;
                      DeleteFile(&amp;quot;long.txt&amp;quot;);&lt;br /&gt;
                      CreateFile(&amp;quot;long.txt&amp;quot;,4096,handle);&lt;br /&gt;
                      for (long i = 100000; i&amp;lt;=1000000; i+=50000){&lt;br /&gt;
                          WriteLn(handle,i);&lt;br /&gt;
                      }&lt;br /&gt;
                      CloseFile(handle);&lt;br /&gt;
                      OpenFileRead(&amp;quot;long.txt&amp;quot;,fsize,handle);&lt;br /&gt;
                      until (ReadLn(handle,in)!=NO_ERR){&lt;br /&gt;
                          ClearScreen();&lt;br /&gt;
                          NumOut(30,LCD_LINE5,in);&lt;br /&gt;
                          Wait(500);&lt;br /&gt;
                      }&lt;br /&gt;
                      CloseFile(handle);&lt;br /&gt;
                 }&lt;br /&gt;
                 #endif&lt;br /&gt;
Summary&lt;br /&gt;
In this last chapter you met the advanced features offered by NXT: high resolution timer, dot matrix display and&lt;br /&gt;
filesystem.&lt;br /&gt;
                                                       &lt;br /&gt;
==XIII. Final remarks==&lt;br /&gt;
If you have worked your way through this tutorial you can now consider quite expert in NXC. If you have not&lt;br /&gt;
done this up to now, it is time to start experimenting yourself. With creativity in design and programming you&lt;br /&gt;
can make Lego robots do unbelievable things.&lt;br /&gt;
This tutorial did not cover all aspects of the BricxCC. You are recommended to read the NXC Guide at every&lt;br /&gt;
chapter. Also, NXC is still in development, future version might incorporate additional functionality. Many&lt;br /&gt;
programming concepts were not treated in this tutorial. In particular, we did not consider learning behavior of&lt;br /&gt;
robots or other aspects of artificial intelligence.&lt;br /&gt;
It is also possible to drive a Lego robot directly from a PC. This requires you to write a program in a language&lt;br /&gt;
like C++, Visual Basic, Java or Delphi. It is also possible to let such a program work together with an NXC&lt;br /&gt;
program running in the NXT itself. Such a combination is very powerful. If you are interested in this way of&lt;br /&gt;
programming your robot, best start with downloading the Fantom SDK and Open Source documents from the&lt;br /&gt;
NXTreme section of Lego MindStorms web site.&lt;br /&gt;
           http://mindstorms.lego.com/Overview/NXTreme.aspx&lt;br /&gt;
The web is a perfect source for additional information. Some other important starting points are on LUGNET,&lt;br /&gt;
the LEGO Users Group Network (unofficial):&lt;br /&gt;
           http://www.lugnet.com/robotics/nxt&lt;br /&gt;
&lt;br /&gt;
[[Category:Docs]] [[Category:NXT]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Mtp</id>
		<title>Mtp</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Mtp"/>
				<updated>2011-10-14T21:26:19Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://www.anythingbutipod.com/forum/showthread.php?t=32817&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The exact procedures may depend on your Linux distro, but if your distro supports Fuse (like Ubuntu 7.10 and later), then you can easily mount your MTP device (such as a Vision:M) as a drive.&lt;br /&gt;
&lt;br /&gt;
First you will need to ensure you have libmtp, mtptools, and mtpfs installed. If not, then you will need to install them. I strongly recommend using your distro's repositories in order to ensure all dependencies are met.&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
$ sudo apt-get install libmtp mtptools mtpfs&lt;br /&gt;
&lt;br /&gt;
Once all of that is installed, you will need to create a mountpoint for your device.&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
 $ sudo mkdir /media/MyZen&lt;br /&gt;
 $ sudo chmod 775 /media/MyZen&lt;br /&gt;
&lt;br /&gt;
Next, plug in your player and mount it:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
 $ sudo mtpfs -o allow_other /media/MyZen&lt;br /&gt;
&lt;br /&gt;
Your player should appear on your desktop as a regular drive. Be aware that, depending on the device, access might be slow.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: DO NOT DISCONNECT YOUR DEVICE WITHOUT UNMOUNTING IT FIRST!&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
 $ sudo umount /media/MyZen&lt;br /&gt;
&lt;br /&gt;
If you get a message stating that the device is busy, then give it a minute or two and try again.&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Missing_Packages</id>
		<title>Missing Packages</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Missing_Packages"/>
				<updated>2011-10-14T21:25:52Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=0ops=&lt;br /&gt;
&lt;br /&gt;
I have a cool CLI way of listing installed packages:&lt;br /&gt;
 dpkg -l | grep ii | less&lt;br /&gt;
&lt;br /&gt;
Uninstalled would ask exactly for:&lt;br /&gt;
 dpkg -l | grep 'rc ' | less&lt;br /&gt;
&lt;br /&gt;
To know what's in your cache, do&lt;br /&gt;
 ls /var/cache/apt/archive&lt;br /&gt;
&lt;br /&gt;
To be sure one package is there (and discover if it has been uninstalled automatically), do&lt;br /&gt;
 sudo less /var/log/apt/term.log|grep &amp;lt;packagename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to list the status of ''every'' installed or removed package, do&lt;br /&gt;
 dpkg -l | less &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And of course you can get info on a single package with&lt;br /&gt;
 aptitude show &amp;lt;packagename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==The following packages were automatically installed and are no longer required:==&lt;br /&gt;
&lt;br /&gt;
aspell bsh bsh-gcj cheese djvulibre-desktop dmz-cursor-theme ekiga epiphany-extensions evolution-common evolution-webcal fast-user-switch-applet file-roller finger gcalctool gconf-editor gnome-app-install gnome-backgrounds gnome-cards-data gnome-games gnome-games-data gnome-nettool gnome-screensaver gnome-system-tools gnome-themes gnome-themes-extras gnome-volume-manager gnuchess gstreamer0.10-tools gucharmap guile-1.8-libs libavahi-compat-libdnssd1 libcamel1.2-11 libcucul0 libcupsys2 libedataserver1.2-9 libexchange-storage1.2-3 libgd2-noxpm libgdl-1-common libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common libgnomevfs2-bin libgraphviz4 libgtk-vnc-1.0-0 libgtkhtml2-0 libgtksourceview-common libgtksourceview1.0-0 libhesiod0 libhsqldb-java-gcj libilmbase6 libkpathsea4 libltdl3 libmagick++10 libmagick10 libmalaga7 libmozjs1d libmysqlclient15off libopenexr6 libosp5 libpisock9 libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libsensors3 libvolume-id0 libxalan2-java libxalan2-java-gcj libxerces2-java libxerces2-java-gcj openssl-blacklist pkg-config python-4suite-xml python-cups python-cupsutils python-eggtrayicon python-gnupginterface python-gtkhtml2 python-gtkmozembed python-sexy rhythmbox sound-juicer swfdec-gnome system-config-printer transmission-common transmission-gtk unattended-upgrades vinagre w3c-dtd-xhtml xulrunner-1.9 xulrunner-1.9-gnome-support&lt;br /&gt;
&lt;br /&gt;
Use 'apt-get autoremove' to remove them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The following packages will be REMOVED:==&lt;br /&gt;
&lt;br /&gt;
libhsqldb-java-gcj evolution-common evolution-webcal ekiga gcalctool gnome-nettool libgtk-vnc-1.0-0 libmalaga7 aspell libsensors3 pkg-config libavahi-compat-libdnssd1 djvulibre-desktop libilmbase6 gucharmap libosp5 gnome-games cheese libmagick++10 libexchange-storage1.2-3 gnome-cards-data gnome-screensaver libgtksourceview1.0-0 rhythmbox w3c-dtd-xhtml bsh-gcj xulrunner-1.9 system-config-printer libmagick10 libpisock9 libcamel1.2-11 openssl-blacklist epiphany-extensions libpt-1.10.10-plugins-alsa gnome-themes vinagre swfdec-gnome libpt-1.10.10 libgd2-noxpm libxerces2-java-gcj guile-1.8-libs libmysqlclient15off python-gtkmozembed python-gtkhtml2 gnome-themes-extras libhesiod0 libgnome-pilot2 finger fast-user-switch-applet bsh gnome-volume-manager libgnomeprint2.2-data libkpathsea4 gnome-backgrounds python-eggtrayicon python-sexy unattended-upgrades libopenexr6 libpoppler3 libgtksourceview-common python-gnupginterface libxerces2-java gnome-games-data gnome-app-install python-cupsutils libgtkhtml2-0 libxalan2-java libgnomevfs2-bin libedataserver1.2-9 libmozjs1d libvolume-id0 python-cups dmz-cursor-theme python-4suite-xml libpt-1.10.10-plugins-v4l gconf-editor gnome-system-tools xulrunner-1.9-gnome-support gnuchess libcupsys2 libgnomeprint2.2-0 libgraphviz4 transmission-common gstreamer0.10-tools libgnomeprintui2.2-0 libcucul0 libgnomeprintui2.2-common file-roller libxalan2-java-gcj libltdl3 transmission-gtk libpoppler-glib3 sound-juicer libgnomecups1.0-1 libpisync1 libgdl-1-common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==in memoriam:==&lt;br /&gt;
&lt;br /&gt;
 Removing aspell ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing bsh-gcj ...&lt;br /&gt;
 Removing bsh ...&lt;br /&gt;
 Removing cheese ...&lt;br /&gt;
 Removing djvulibre-desktop ...&lt;br /&gt;
 Removing dmz-cursor-theme ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing ekiga ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing epiphany-extensions ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing evolution-common ...&lt;br /&gt;
 Removing evolution-webcal ...&lt;br /&gt;
 Removing fast-user-switch-applet ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing file-roller ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing finger ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gcalctool ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gconf-editor ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gnome-app-install ...&lt;br /&gt;
 Removing gnome-backgrounds ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gnome-games ...&lt;br /&gt;
 Removing gnome-games-data ...&lt;br /&gt;
 Removing gnome-cards-data ...&lt;br /&gt;
 Removing gnome-nettool ...&lt;br /&gt;
 Removing gnome-screensaver ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gnome-system-tools ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gnome-themes ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gnome-themes-extras ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gnome-volume-manager ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gnuchess ...&lt;br /&gt;
 Removing gstreamer0.10-tools ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing gucharmap ...&lt;br /&gt;
 Removing guile-1.8-libs ...&lt;br /&gt;
 Removing libavahi-compat-libdnssd1 ...&lt;br /&gt;
 Removing libcamel1.2-11 ...&lt;br /&gt;
 Removing libcucul0 ...&lt;br /&gt;
 Removing libcupsys2 ...&lt;br /&gt;
 Removing libedataserver1.2-9 ...&lt;br /&gt;
 Removing libexchange-storage1.2-3 ...&lt;br /&gt;
 Removing libmagick++10 ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing libmagick10 ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing libgraphviz4 ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing libgd2-noxpm ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing libgdl-1-common ...&lt;br /&gt;
 Removing libgnome-pilot2 ...&lt;br /&gt;
 Removing libgnomeprintui2.2-0 ...&lt;br /&gt;
 Removing libgtksourceview1.0-0 ...&lt;br /&gt;
 Removing libgnomeprint2.2-0 ...&lt;br /&gt;
 Removing libgnomecups1.0-1 ...&lt;br /&gt;
 Removing libgnomeprint2.2-data ...&lt;br /&gt;
 Removing libgnomeprintui2.2-common ...&lt;br /&gt;
 Removing libgnomevfs2-bin ...&lt;br /&gt;
 Removing libgtk-vnc-1.0-0 ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing libgtkhtml2-0 ...&lt;br /&gt;
 Removing libgtksourceview-common ...&lt;br /&gt;
 Removing libhesiod0 ...&lt;br /&gt;
 Removing libhsqldb-java-gcj ...&lt;br /&gt;
 Removing libopenexr6 ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing libilmbase6 ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing libkpathsea4 ...&lt;br /&gt;
 Removing libltdl3 ...&lt;br /&gt;
 Removing libmalaga7 ...&lt;br /&gt;
 Removing libmozjs1d ...&lt;br /&gt;
 Removing libmysqlclient15off ...&lt;br /&gt;
 Removing libosp5 ...&lt;br /&gt;
 Removing libpisync1 ...&lt;br /&gt;
 Removing libpisock9 ...&lt;br /&gt;
 Removing libpoppler-glib3 ...&lt;br /&gt;
 Removing libpoppler3 ...&lt;br /&gt;
 Removing libpt-1.10.10 ...&lt;br /&gt;
 Removing libpt-1.10.10-plugins-alsa ...&lt;br /&gt;
 Removing libpt-1.10.10-plugins-v4l ...&lt;br /&gt;
 Removing libsensors3 ...&lt;br /&gt;
 Removing libvolume-id0 ...&lt;br /&gt;
 Removing libxalan2-java-gcj ...&lt;br /&gt;
 Removing libxalan2-java ...&lt;br /&gt;
 Removing libxerces2-java-gcj ...&lt;br /&gt;
 Removing libxerces2-java ...&lt;br /&gt;
 Removing openssl-blacklist ...&lt;br /&gt;
 Removing pkg-config ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing python-4suite-xml ...&lt;br /&gt;
 Removing system-config-printer ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing python-cupsutils ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing python-cups ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing python-eggtrayicon ...&lt;br /&gt;
 Removing python-gnupginterface ...&lt;br /&gt;
 Removing python-gtkmozembed ...&lt;br /&gt;
 Removing python-gtkhtml2 ...&lt;br /&gt;
 Removing python-sexy ...&lt;br /&gt;
 Removing rhythmbox ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing sound-juicer ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing swfdec-gnome ...&lt;br /&gt;
 Removing transmission-gtk ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing transmission-common ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing unattended-upgrades ...&lt;br /&gt;
 Removing vinagre ... '''&amp;lt;Is Back&amp;gt;'''&lt;br /&gt;
 Removing w3c-dtd-xhtml ... &lt;br /&gt;
 Removing xulrunner-1.9-gnome-support ...&lt;br /&gt;
 Removing xulrunner-1.9 ...&lt;br /&gt;
&lt;br /&gt;
And also:&lt;br /&gt;
&lt;br /&gt;
  update-alternatives: using /usr/share/icons/DMZ-Black/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[Debian]]&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=LiveUSB</id>
		<title>LiveUSB</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=LiveUSB"/>
				<updated>2011-10-14T21:25:14Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Build from 10.04LTS&lt;br /&gt;
&lt;br /&gt;
=prepare=&lt;br /&gt;
1. mount your intended flash thingy (need gparted to clean up a bit, maybe?)&lt;br /&gt;
&lt;br /&gt;
2. use unetbootin from Arch or Debian - startupdisccreator has a bug &lt;br /&gt;
&lt;br /&gt;
3. umount it&lt;br /&gt;
&lt;br /&gt;
4. check the bios for intended machine if needed&lt;br /&gt;
&lt;br /&gt;
=1rst boot=&lt;br /&gt;
5. start; wait for full boot ('default' start item should work).&lt;br /&gt;
&lt;br /&gt;
5.1 check wireless, sleep, calculator&lt;br /&gt;
&lt;br /&gt;
5.2 remove /etc/init/tty[1-5].conf&lt;br /&gt;
&lt;br /&gt;
5.3 build in /home a .hostname file with desired hostname in it, nothing [http://ubuntuforums.org/showpost.php?p=10896670&amp;amp;postcount=5 else]&lt;br /&gt;
&lt;br /&gt;
5.4 add in ~/.profile file of user ubuntu ''sudo cp ./.hostname /etc/hostname''&lt;br /&gt;
&lt;br /&gt;
=2nd boot=&lt;br /&gt;
6. remove uneeded softs&lt;br /&gt;
&lt;br /&gt;
7. update machine fully&lt;br /&gt;
&lt;br /&gt;
8. add openssh-server and nfs-common&lt;br /&gt;
&lt;br /&gt;
=last one?=&lt;br /&gt;
9. create perso user&lt;br /&gt;
&lt;br /&gt;
10. mod login setup for selection at start&lt;br /&gt;
&lt;br /&gt;
11. check startup stuff what's needed and what's not&lt;br /&gt;
&lt;br /&gt;
12 install mendeley, skype.&lt;br /&gt;
&lt;br /&gt;
=end=&lt;br /&gt;
13. Breathe normally, you only have to try it 1.000 tiles.&lt;br /&gt;
&lt;br /&gt;
=issues=&lt;br /&gt;
&lt;br /&gt;
'''boot error''' -nothing to do, rebuild drive.&lt;br /&gt;
&lt;br /&gt;
'''can not mount /dev/loop1 on /cow''' -nothing to do, change version/machine of the unetbootin you used, because this instance is dead meat.&lt;br /&gt;
[[Category:Linux]] [[Category:Howtos]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Linux</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Linux"/>
				<updated>2011-10-14T21:24:53Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What do you want from a modern Linux on a decent machine??&lt;br /&gt;
 &lt;br /&gt;
 -Roaming Network, with 3G, WiFi.&lt;br /&gt;
 -Remote Desktop software to take care of the machine while away.&lt;br /&gt;
 -Ability to sleep and wake-up... In the proper console.&lt;br /&gt;
 -I know Bluetooth technologies are there - get your shit together!&lt;br /&gt;
 -And with a Secure Shell too!&lt;br /&gt;
 -Multimedia keys&lt;br /&gt;
 -Obvious peripherals (nokia phone, Zen music player, iStuff)&lt;br /&gt;
 -Nice interface, without rude consoles with lost of ugly warnings&lt;br /&gt;
 -Compilers-ready&lt;br /&gt;
 -VirtualBox capable&lt;br /&gt;
 -And lots of available software at hand, of course, with a nice and easy installer.&lt;br /&gt;
&lt;br /&gt;
Snippets, short stuff, [[Howtos]] &amp;amp;&amp;amp; the [[e16-trsp]] tweak draft.&lt;br /&gt;
&lt;br /&gt;
Unanswered [[questions]]&lt;br /&gt;
&lt;br /&gt;
==Pages==&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; The infamous [[LiveUSB]] issue and check-list.&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Inittab is dead, get [[upstart]] rolling.&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; [[Virtual]] machines: qemu+kvm on Arch notes.&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; [[e16 All]] page from /usr/share/doc/e16/e16.html&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; [[Screens]] &amp;amp; other related graphic stuff. Or not.&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; [[Networking]] Knowledge&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Build a [[Realtime Audio Workstation on Slackware]]&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Struggling [[RealTime]]&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Memo on [[inittab]] - useful archive: the laptop's [[fedora9 xorg]]&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Our blue tiny 248x170 [[Aspire One]] &lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Cambodia Special: Internet with HSDPA (aka 3G or 3.5G) mobile operator''' [[qb]]'''&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Fucking '''[[RAID]]''' array&lt;br /&gt;
&lt;br /&gt;
==Distro things==&lt;br /&gt;
&lt;br /&gt;
[[Arch]]-Linux is arch-cool. Or is it?&lt;br /&gt;
&lt;br /&gt;
[[Gentoo]] failed&lt;br /&gt;
&lt;br /&gt;
Introducing [[Sabayon]]. Why not?&lt;br /&gt;
&lt;br /&gt;
Welcome [[Debian]].&lt;br /&gt;
&lt;br /&gt;
Taming [[Slackware]]&lt;br /&gt;
&lt;br /&gt;
All [[fedora 9 issues]] - but I run F10 now... Most of them are the same.&lt;br /&gt;
&lt;br /&gt;
Fedora Laptops [[snd_hda_intel]] hack - [[fedora 9 powertop results]] (not bad) &lt;br /&gt;
 &lt;br /&gt;
[[ubuntu 8.04 issues]] (I don't use it anyway)&lt;br /&gt;
&lt;br /&gt;
Fun with [[AlphaMIPS]]&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
&lt;br /&gt;
Compile a Slacked Kernel: http://alien.slackbook.org/dokuwiki/doku.php?id=linux:kernelbuilding&lt;br /&gt;
&lt;br /&gt;
Set proper permissions on webcam: http://forums.fedoraforum.org/showpost.php?p=1165063&amp;amp;postcount=2&lt;br /&gt;
&lt;br /&gt;
USB, Permissions and VirtualBox: &lt;br /&gt;
http://www.linuxquestions.org/questions/slackware-14/virtualbox-usb-permissions.-701934&lt;br /&gt;
&lt;br /&gt;
http://www.linux-tips.org&lt;br /&gt;
&lt;br /&gt;
http://lwn.net/Articles/283555/&lt;br /&gt;
&lt;br /&gt;
http://www.mjmwired.net/resources/mjm-fedora-f7.html#yum&lt;br /&gt;
&lt;br /&gt;
http://linux-tips.org/article/74/enabling-remote-desktop-on-a-virtualbox-machine&lt;br /&gt;
[http://www.example.com link title]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	<entry>
		<id>http://wiki.zenerves.net/index.php?title=Lego_bricks</id>
		<title>Lego bricks</title>
		<link rel="alternate" type="text/html" href="http://wiki.zenerves.net/index.php?title=Lego_bricks"/>
				<updated>2011-10-14T21:24:21Z</updated>
		
		<summary type="html">&lt;p&gt;Lola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Background info: PC running Arch Linux up-to-date; nvidia proprietary drivers (sorry) with TwinView; most knowledge fished from http://www.ldraw.org and http://www.hassings.dk/l3/l3p.html&lt;br /&gt;
&lt;br /&gt;
=DOES NOT WORK=&lt;br /&gt;
&lt;br /&gt;
''ARCH December 2010''&lt;br /&gt;
&lt;br /&gt;
'''l2rib''' native linux doesn't output useable files for renderman, pixie, 3delight&lt;br /&gt;
&lt;br /&gt;
'''pixie''' is just a viewer, and a pale one at that&lt;br /&gt;
&lt;br /&gt;
'''3delight''' installs in /opt, misses everything it needs to work&lt;br /&gt;
&lt;br /&gt;
'''ldview 4 and 4.1''' crash, or fail to display model properly&lt;br /&gt;
&lt;br /&gt;
'''LeoCAD''' segfaults all the time; build is with no issues, but can't indert a piece on the board.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''U10.10''&lt;br /&gt;
&lt;br /&gt;
'''LeoCAD''' doesn't compile on Ubuntu 10.10 with the appropriate requirement for lbpng, zlib, libjpeg + GTK2 and OpenGL/libGL.so&lt;br /&gt;
&lt;br /&gt;
=somehow OK=&lt;br /&gt;
&lt;br /&gt;
''Arch December 2010''&lt;br /&gt;
&lt;br /&gt;
'''ldview 3.1''' is OK after manually linking absolutely all needed libraries by hand&lt;br /&gt;
&lt;br /&gt;
'''l3p''' works if and only if ''export LDRAWDIR=/home/jarch/bin/ld/ldraw'' was done beforehand (need to find a way to get this permanent)&lt;br /&gt;
&lt;br /&gt;
Examples of code are:&lt;br /&gt;
&lt;br /&gt;
 ./l3p ./models/car.dat &lt;br /&gt;
&lt;br /&gt;
from the ldraw folder&lt;br /&gt;
&lt;br /&gt;
=just works=&lt;br /&gt;
&lt;br /&gt;
'''MLCAD''' under wine, with about any version, on any Linux machine I ever tried. Always works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''U10.10'' &lt;br /&gt;
&lt;br /&gt;
'''LDView''' is ok from .deb, needs just one dep.&lt;br /&gt;
&lt;br /&gt;
=Notes=&lt;br /&gt;
&lt;br /&gt;
* Build aliases in .bashrc rather than putting all that stuff in /usr/bin&lt;br /&gt;
* Most nixes do have some povray util&lt;br /&gt;
&lt;br /&gt;
 The basic LDraw views can be represented by these Latitude,Longitude pairs: &lt;br /&gt;
 Front=0,0 Right=0,-90 Left=0,90 Back=0,180 Over=90,0 Under=-90,0. &lt;br /&gt;
 The 3D view can e.g. be 45,45 or 30,45.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Workin' like this:&lt;br /&gt;
&lt;br /&gt;
 [jarch@DC266 ldraw]$ rm 850.png &amp;amp;&amp;amp; rm 850.pov &amp;amp;&amp;amp; l3p -cg35,-15 -b1 ./models/850.ldr -sw2 &amp;amp;&amp;amp; povray 850.pov -H600 -W800 -B -visual DirectColor &amp;amp;&amp;amp; display 850.png&lt;br /&gt;
&lt;br /&gt;
==lexicon==&lt;br /&gt;
&lt;br /&gt;
'''CG(xxx),(xxx),(xxx)'''=Orientation '''-b(xx)'''=background '''ca(xxx)'''=focal lens '''-f'''=shadows, ground nocolor, sky follows -b(x) color '''-q(xxx)'''=Level of Details, quality&lt;br /&gt;
&lt;br /&gt;
'''lc(xxx),(xxx),(xxx),(0,xxx),(0,xxx),(0,xxx),'''=lights position and colour in RGB&lt;br /&gt;
&lt;br /&gt;
* -visual DirectColor is to avoid compositing engines to render the background transparent.&lt;br /&gt;
&lt;br /&gt;
'''Background'''&lt;br /&gt;
* -b0 is dark grey-ish -- as is -b7 boring Light Grey and -b8 Darker Shade Of Ennui&lt;br /&gt;
* -b1 is the atrocious blue at the back -- -b9 is plainer Blue&lt;br /&gt;
* -b2 is hideous green&lt;br /&gt;
* -b3 being the Bastard child of them both -- as is -b11, only lighter&lt;br /&gt;
* -b4 is a red that would make a fireman puke&lt;br /&gt;
* -b5 fucking pink.&lt;br /&gt;
* -b6 brown. eurgh.&lt;br /&gt;
* -b10 freakin' Lime Yellow&lt;br /&gt;
&lt;br /&gt;
'''Bloat'''&lt;br /&gt;
* '''-sw'''0 (try -sw45) will deform the pieces. ?WTF? ''See below :)''&lt;br /&gt;
&lt;br /&gt;
'''Orientation''': sample -cg35,-15,-50&lt;br /&gt;
* -cg35 is vertical rotation 90 is vertical above the object&lt;br /&gt;
* -15 horizontal rotation -try -125&lt;br /&gt;
* -50 is distance to object ''must be negative value, of course''&lt;br /&gt;
&lt;br /&gt;
'''Quality'''&lt;br /&gt;
* -q100 seems 'normal' -- try q00 for fun.&lt;br /&gt;
&lt;br /&gt;
'''Lights''': -lc30,120,0,0.996,0.675,0.906&lt;br /&gt;
* -lc30,120,0, that I guess is same like Cam position&lt;br /&gt;
* 0.996,0.675,0.906 this is more fun: colour :)&lt;br /&gt;
&lt;br /&gt;
==render recipes==&lt;br /&gt;
&lt;br /&gt;
Indeed full 90° up, object facing 'south', all straight.&lt;br /&gt;
  '''l3p -cg90,-00 -sw0 -b0 ./models/850.ldr &amp;amp;&amp;amp; povray 850.pov -H600 -W800 -visual DirectColor''' &lt;br /&gt;
&lt;br /&gt;
Cool frontal aggression.&lt;br /&gt;
  '''rm 850.png &amp;amp;&amp;amp; rm 850.pov &amp;amp;&amp;amp; l3p -cg335,-00 -sw0 -b5 ./models/850.ldr &amp;amp;&amp;amp; povray 850.pov -H600 -W800 -visual DirectColor &amp;amp;&amp;amp; display 850.png'''&lt;br /&gt;
&lt;br /&gt;
Delirious Cam Focale&lt;br /&gt;
  '''l3p -cg335,-00 -b5 -ca100 ./models/850.ldr &amp;amp;&amp;amp; povray 850.pov'''&lt;br /&gt;
&lt;br /&gt;
Shadows, reflexions, sky, delirious camera angle and focal: its too much.&lt;br /&gt;
  '''l3p -cg340,-225 -ca100 -f -b7 ./models/850.ldr &amp;amp;&amp;amp; povray 850.pov -H600 -W800 -visual DirectColor &amp;amp;&amp;amp; display 850.png'''&lt;br /&gt;
&lt;br /&gt;
Oops, 'set the level of details a bit too low I think...&lt;br /&gt;
  '''l3p -cg45,-45 -ca10 -f -b0 -q00 ./models/850.ldr &amp;amp;&amp;amp; povray 850.pov -H600 -W800 -visual DirectColor &amp;amp;&amp;amp; display 850.png'''&lt;br /&gt;
&lt;br /&gt;
Adding some colour to light&lt;br /&gt;
  '''l3p -cg00,45,-50 -lc30,120,0,0.996,0.675,0.906 -f -b7 -q4 ./models/850.ldr &amp;amp;&amp;amp; povray 850.pov -H600 -W800 -visual DirectColor &amp;amp;&amp;amp; display 850.png'''&lt;br /&gt;
&lt;br /&gt;
A quite passable play at colours&lt;br /&gt;
   '''l3p -cg344,35,-5 -lg25,135,00,0.996,0.675,0.906 -lg60,270,-10,0.400,0.400,0.800 -fg -b7 -q4 ./models/850.ldr &amp;amp;&amp;amp; povray 850.pov -H600 -W800 -visual DirectColor &amp;amp;&amp;amp; display 850.png'''&lt;br /&gt;
&lt;br /&gt;
Cool Warm/Cold light:&lt;br /&gt;
  '''l3p -o -b7 -fg -q10 -cg30,35,-25 -lg60,0,999,0.3,0.3,1 -lg05,90,80,1,0.3,0.5 -lg05,90,80,0.5,0.15,0.25 -lg80,180,999,0.3,0.3,1 -lg80,270,999,0.3,0.3,1 ./block.ldr'''&lt;br /&gt;
&lt;br /&gt;
==The L3P -h file==&lt;br /&gt;
 &lt;br /&gt;
 L3P (Linux) v1.3 20021201  (C) 1998-2002 Lars C. Hassing  lch@ccieurope.com&lt;br /&gt;
 Usage: l3p [options] modelpath [povpath] [options]&lt;br /&gt;
  '''-b'''[&amp;lt;color&amp;gt;] background color, default color is 0, -b gives 0.3,0.8,1&lt;br /&gt;
  '''-c'''&amp;lt;color&amp;gt; default part color, default color is 7&lt;br /&gt;
  '''-bu''' bumps&lt;br /&gt;
  '''-sw'''&amp;lt;w&amp;gt; seam width, default is 0.5&lt;br /&gt;
  '''-f'''[&amp;lt;type&amp;gt;][&amp;lt;y&amp;gt;] floor at &amp;lt;y&amp;gt;, default y is just below model&lt;br /&gt;
  '''-cg'''&amp;lt;la&amp;gt;,&amp;lt;lo&amp;gt;[,&amp;lt;r&amp;gt;] camera globe position, default is 30,45,0&lt;br /&gt;
  '''-cc'''&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;lt;z&amp;gt; camera coordinates (location)&lt;br /&gt;
  '''-cla'''&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;lt;z&amp;gt; camera look_at coordinates&lt;br /&gt;
  '''-ca'''&amp;lt;a&amp;gt; camera angle, default is 67.38 degrees&lt;br /&gt;
  '''-lg'''&amp;lt;la&amp;gt;,&amp;lt;lo&amp;gt;,&amp;lt;r&amp;gt;[,&amp;lt;color&amp;gt;] lightsource globe position, default color is 15&lt;br /&gt;
  '''-lc''&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;lt;z&amp;gt;[,&amp;lt;color&amp;gt;] lightsource coordinates, default color is 15&lt;br /&gt;
  '''-ld''' always use default lightsources&lt;br /&gt;
  '''-l''' use positions and colors of light.dat files as lightsources&lt;br /&gt;
  '''-lgeo''' use LGEO parts wherever possible&lt;br /&gt;
  '''-p''' don't substitute any primitives in the P directory with POV equivalents&lt;br /&gt;
  '''-q'''&amp;lt;n&amp;gt; quality level 0..3, default is 2&lt;br /&gt;
  '''-w'''&amp;lt;n&amp;gt; set warning level 0..3, default is 0&lt;br /&gt;
  '''-sc''' StepClock, add &amp;quot;#if (clock &amp;gt; n)&amp;quot; at steps&lt;br /&gt;
  '''-enp''' exclude non-POV code generation (L3P IFNOTPOV)&lt;br /&gt;
  '''-o''' overwrite POV file if it already exists&lt;br /&gt;
  '''-check''' check modelpath for errors, Warning level is default 1.&lt;br /&gt;
         modelpath may be a directory, which is checked recursively.&lt;br /&gt;
         If no modelpath given all files in P and PARTS are checked.&lt;br /&gt;
  '''-dist'''&amp;lt;d&amp;gt; warn about non-coplanar quads with distance greater than &amp;lt;d&amp;gt;&lt;br /&gt;
  '''-det'''&amp;lt;d&amp;gt; warn about non-coplanar quads with determinant greater than &amp;lt;d&amp;gt;&lt;br /&gt;
  '''-stdout''' redirect stderr to stdout, must be first argument&lt;br /&gt;
  '''-pp''' print primitives, prints a list of the primitives having POV equivalents&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;la&amp;gt; latitude, 90=N=-y, -90=S=+y. &amp;lt;lo&amp;gt; longitude in xz, 0=-z, 90=E=+x, -90=W=-x&lt;br /&gt;
 &amp;lt;r&amp;gt; is radius. If not specified for camera it will be as close to model as&lt;br /&gt;
 possible, if negative then camera will be -&amp;lt;r&amp;gt;% further away. If zero for&lt;br /&gt;
 lightsource, the camera distance is used. You can specify many -lc/lg options.&lt;br /&gt;
 &amp;lt;color&amp;gt; is an LDraw color (including extended colors) or &amp;lt;r&amp;gt;,&amp;lt;g&amp;gt;,&amp;lt;b&amp;gt;.&lt;br /&gt;
 If povpath is not specified or is a directory, it will be modelfilename + .pov&lt;br /&gt;
 See also l3p.txt and http://www.hassings.dk/l3p&lt;br /&gt;
 (or http://www.ldraw.org/download/software/l3p)&lt;br /&gt;
 &lt;br /&gt;
L3P (Linux) v1.3 20021201  (C) 1998-2002 Lars C. Hassing  lch@ccieurope.com&lt;br /&gt;
&lt;br /&gt;
=links=&lt;br /&gt;
&lt;br /&gt;
 L3PAO by Jeff Boen (Onyx). L3PAdd-On is a graphical user interface for L3P. &lt;br /&gt;
 http://l3pao.malagraphixia.com &lt;br /&gt;
 http://www.ldraw.org/download/win/l3pao&lt;br /&gt;
&lt;br /&gt;
 POV-Ray. The Persistence of Vision Raytracer is a high-quality, totally free tool for &lt;br /&gt;
 creating stunning three-dimensional graphics. It is  available in official versions &lt;br /&gt;
 for Windows 95/98/NT, DOS, the Macintosh, i86 Linux, SunOS, and Amiga. &lt;br /&gt;
 The source code is available for those  wanting to do their own ports. &lt;br /&gt;
 http://www.povray.org&lt;br /&gt;
&lt;br /&gt;
 LGEO PovRay parts by Lutz Uhlmann: &lt;br /&gt;
 http://www.el-lutzo.de/lego/lgeo.html.&lt;br /&gt;
&lt;br /&gt;
 Fixed LGEO parts by Lars C. Hassing: &lt;br /&gt;
 http://www.hassings.dk/l3/lgeofix.html&lt;br /&gt;
&lt;br /&gt;
 LDAO by Steve Bliss: &lt;br /&gt;
 http://home.earthlink.net/~steve.bliss/ldao/ &lt;br /&gt;
 http://www.ldraw.org/download/win/ldao&lt;br /&gt;
&lt;br /&gt;
 LDLite by Paul Gyugyi: &lt;br /&gt;
 http://www.gyugyi.com/l3g0/ldlite/ &lt;br /&gt;
 http://www.ldraw.org/download/win/ldlite&lt;br /&gt;
&lt;br /&gt;
 LdGLite by Don Heyse. Making LDLite portable with OpenGL. &lt;br /&gt;
 http://ldglite.sourceforge.net &lt;br /&gt;
 http://www.ldraw.org/download/win/ldglite&lt;br /&gt;
&lt;br /&gt;
 MLCad by Michael Lachmann. The Windows CAD program. &lt;br /&gt;
 http://www.lm-software.com/mlcad/ &lt;br /&gt;
 http://www.ldraw.org/download/win/mlcad&lt;br /&gt;
&lt;br /&gt;
 LeoCAD by Leonardo Zide. Windows/Linux CAD program. &lt;br /&gt;
 http://www.leocad.org &lt;br /&gt;
 http://www.ldraw.org/download/win/leocad&lt;br /&gt;
&lt;br /&gt;
 LDView by Travis Cobbs. Real-time 3D OpenGL viewer. &lt;br /&gt;
 http://home.san.rr.com/tcobbs/LDView/ &lt;br /&gt;
 http://www.ldraw.org/download/win/ldview&lt;br /&gt;
&lt;br /&gt;
 L3Lab by Lars C. Hassing. Viewer/examiner. &lt;br /&gt;
 http://www.hassings.dk/l3/l3lab.html &lt;br /&gt;
 http://www.ldraw.org/download/win/l3lab&lt;br /&gt;
&lt;br /&gt;
 L3P by Lars C. Hassing &lt;br /&gt;
 http://www.hassings.dk/l3/l3p.html     &lt;br /&gt;
 Download Area: http://www.hassings.dk/l3/l3p.html#download &lt;br /&gt;
 http://www.ldraw.org/download/win/l3p&lt;br /&gt;
[[Category:Linux]] [[Category:NXT]]&lt;/div&gt;</summary>
		<author><name>Lola</name></author>	</entry>

	</feed>