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

<channel>
	<title>Matt Ventura&#039;s blog</title>
	<atom:link href="http://mattventura.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattventura.net</link>
	<description>Matt Ventura&#039;s blog about various stuff.</description>
	<lastBuildDate>Sun, 15 Aug 2010 01:17:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Major MVPyBot Update</title>
		<link>http://mattventura.net/2010/08/14/major-mvpybot-update/</link>
		<comments>http://mattventura.net/2010/08/14/major-mvpybot-update/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 01:17:21 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattventura.net/?p=301</guid>
		<description><![CDATA[The bot now supports &#8220;hot reloading.&#8221; The bot can now reload itself without losing connection due to a new wrapper.
You need to run &#8216;mvpybot.py 0&#8242; because start.py is broken now. Substitute the zero with a different server number if you want to connect to a different server.
]]></description>
			<content:encoded><![CDATA[<p>The bot now supports &#8220;hot reloading.&#8221; The bot can now reload itself without losing connection due to a new wrapper.</p>
<p>You need to run &#8216;mvpybot.py 0&#8242; because start.py is broken now. Substitute the zero with a different server number if you want to connect to a different server.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2010/08/14/major-mvpybot-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVpybot Major Update</title>
		<link>http://mattventura.net/2010/06/26/mvpybot-major-update/</link>
		<comments>http://mattventura.net/2010/06/26/mvpybot-major-update/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 05:25:31 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattventura.net/?p=290</guid>
		<description><![CDATA[There is a somewhat-major bot update in the works. The plugins system has been completely redone. Instead of plugin files being used for whatever functions can be found in them, they now have to explicitly register functions. Here is an example, the rewritten ping plugin:
#!/usr/bin/python

def register():
 registerfunction('ping', ping)
 addhelp('ping', help_ping)

def ping():
 outstuff=''
 print "ping called"
 [...]]]></description>
			<content:encoded><![CDATA[<p>There is a somewhat-major bot update in the works. The plugins system has been completely redone. Instead of plugin files being used for whatever functions can be found in them, they now have to explicitly register functions. Here is an example, the rewritten ping plugin:</p>
<pre>#!/usr/bin/python

def register():
 registerfunction('ping', ping)
 addhelp('ping', help_ping)

def ping():
 outstuff=''
 print "ping called"
 if (len(cmd)&lt;2):
  return('PRIVMSG %s :Incorrect usage. Syntax: ping (4|6) &lt;address&gt;.' %(channel))
 else:
  if cmd[1]=='4' or cmd[1]=='6':
   if cmd[1]=='4':

    output=syscmd(['ping','-c','5','-i','0.2',cmd[2]])
    outsplit=output.split('\n')
    outparts=outsplit[-3:-1]
    for part in outparts:
     outstuff+='PRIVMSG %s :%s\n' %(channel,part) 

   if cmd[1]=='6':

    output=syscmd(['ping6','-c','5','-i','0.2',cmd[2]])
    outsplit=output.split('\n')
    outparts=outsplit[-3:-1]
    for part in outparts:
     outstuff+='PRIVMSG %s :%s\n' %(channel,part)
  return(outstuff)
  else:
   return('PRIVMSG %s :Error: protocol must be either 4 or 6' %channel)

def help_ping():
 return('PRIVMSG %s :Pings an internet address. Usage: ping (4|6) &lt;address&gt;.' %(channel))
</pre>
<p>A plugin&#8217;s register() function is called when the plugin is loaded. It can use registerfunction(), addlistener(), and addhelp(). You can use each function as many times as you want, in case you have multiple functions and/or listeners, or if you want to include help with your plugin.</p>
<p>Read more to find out how to use the new plugin features.</p>
<p><span id="more-290"></span></p>
<h2>Function Usage</h2>
<p>registerfunction() usage:</p>
<pre>registerfunction('command', function)
</pre>
<p>where &#8216;command&#8217; is the command that the user would use to access this function, and &#8220;function&#8221; is the actual python function that you have defined in your module. See the ping example above for a usage example.</p>
<p>addlistener() usage:</p>
<pre>addlistener('type', function)
</pre>
<p>For addlistener(), &#8216;type&#8217; is a string denoting the type of event to call the function on, such as &#8220;any&#8221; or &#8220;privmsg&#8221;. &#8220;function&#8221; works the same as with registerfunction().</p>
<p>addhelp() usage:</p>
<pre>addhelp('command', function)</pre>
<p>&#8216;command&#8217; is the command that the user will access help on (eg, if &#8216;command&#8217; was &#8216;mycommand&#8217;, the user would use &#8216;help mycommand&#8217; to read the help.) Function works the same as the others.</p>
<h2>Other Notes</h2>
<p>All plugins go in the &#8220;modules&#8221; folder now. There are no longer separate folders for different types of plugins.</p>
<p>I have not yet rewritten the on-the-fly module management commands (enabling, disabling, reloading, etc) so you will not be able to use these with the new system until I feel like rewriting them.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2010/06/26/mvpybot-major-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More MVpybot stuff</title>
		<link>http://mattventura.net/2010/04/30/more-mvpybot-stuff/</link>
		<comments>http://mattventura.net/2010/04/30/more-mvpybot-stuff/#comments</comments>
		<pubDate>Sat, 01 May 2010 02:49:37 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattventura.net/?p=287</guid>
		<description><![CDATA[First of all, while I figure out how to have a system for hosting modules, I will put modules in mattventura.net/mvpybot/modules. Secondly, a bug tracking system is being set up.
Lastly, I will be improving the plugin system, and I will try to make older plugins backwards-compatible, but the new system will make the plugin system [...]]]></description>
			<content:encoded><![CDATA[<p>First of all, while I figure out how to have a system for hosting modules, I will put modules in <a href="http://mattventura.net/mvpybot/modules">mattventura.net/mvpybot/modules</a>. Secondly, a bug tracking system is being set up.</p>
<p>Lastly, I will be improving the plugin system, and I will try to make older plugins backwards-compatible, but the new system will make the plugin system more efficient. Instead of always having to scan for functions in plugins whenever a certain command is called, all function plugins will register in a list of plugins upon being loaded. This has the advantage of also allowing plugin authors to specify what functions are actual functions for the bot to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2010/04/30/more-mvpybot-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVpybot: Update 2</title>
		<link>http://mattventura.net/2010/01/18/mvpybot-update-2/</link>
		<comments>http://mattventura.net/2010/01/18/mvpybot-update-2/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 07:06:41 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[mvpybot]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.mattventura.net/?p=278</guid>
		<description><![CDATA[I just did another major update to MVpybot. Listeners have been implemented. A listener is a function that gets called whenever the bot receives data, or it can be set to only be called when a certain type (privmsg, join, part, etc) is received. As usual, the source is at the SVN repo.
Now for the [...]]]></description>
			<content:encoded><![CDATA[<p>I just did another major update to MVpybot. Listeners have been implemented. A listener is a function that gets called whenever the bot receives data, or it can be set to only be called when a certain type (privmsg, join, part, etc) is received. As usual, the source is at <a title="SVN" href="http://theoks.net/viewvc/mvpybot/">the SVN repo</a>.</p>
<p>Now for the technical stuff. A listener is just a python file in the listeners folder, with functions defined in it. A function&#8217;s name should be botfunction_type, where type is the type of message to listen for (privmsg, join, part, etc) or it can be &#8216;any&#8217; for all data received by the bot. Here is an example logger function:</p>
<pre>#!/usr/bin/python

import time

enabled=1

logfile=open('log','a')
timestamp=time.strftime('[ Session starting at %y-%m-%d %H:%M:%S ]')
logfile.write(timestamp+'\n')
logfile.close()

def botfunction_any():
 logfile=open('log','a')
 timestamp=time.strftime('[%y-%m-%d %H:%M:%S] ')
 logfile.write(timestamp+line+'\n')
 logfile.close()</pre>
<p>As you can see from the example, plugins can be quickly enabled or disabled by toggling the &#8216;enabled&#8217; flag. Also, &#8216;line&#8217; is passed to the plugin. Not that anything outside of function definitions will be run when the bot starts.</p>
<p>Listeners can use the &#8217;socket&#8217; variable to send data to the server, as shown in this example:</p>
<pre>#!/usr/bin/python

enabled=0

def botfunction_privmsg():
 print "called"
 out="PRIVMSG %s :Botfunction_privmsg called" %(channel)
 print out
 socket.send(out+'\n')</pre>
<p>Note that in the example, it uses botfunction_privmsg. To make listeners easier to write, the main program will automatically figure out these variables from privmsgs and pass them to the function:</p>
<pre>info         #user info
msg          #the message
channel      #the channel the message was from (set to the sender for private messages)
sender       #the sender of the message
senderstuff  #info of the sender
isprivate    #whether or not the message was a private message as opposed to a channel message.</pre>
<p>This only applies to privmsgs. All other events only get &#8217;socket&#8217; and &#8216;line&#8217; passed and have to figure out everything from &#8216;line&#8217;</p>
<p>That&#8217;s all for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2010/01/18/mvpybot-update-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MVpybot: Update</title>
		<link>http://mattventura.net/2009/12/22/mvpybot-update/</link>
		<comments>http://mattventura.net/2009/12/22/mvpybot-update/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 23:29:18 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[mvpybot]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.mattventura.net/?p=262</guid>
		<description><![CDATA[Well, i&#8217;ve finally gotten around to putting out some decent source for the bot. Here it is. There is also an addon system. To make an addon, simply make a python file in the botplugins/ folder and put your code in, like this:
#!/usr/bin/python 

def test():
 return("PRIVMSG %s :test" %(channel))
This would make a function called test. [...]]]></description>
			<content:encoded><![CDATA[<p>Well, i&#8217;ve finally gotten around to putting out some decent source for the bot. <a href="http://theoks.net/viewvc/mvpybot/">Here it is.</a> There is also an addon system. To make an addon, simply make a python file in the botplugins/ folder and put your code in, like this:</p>
<pre>#!/usr/bin/python 

def test():
 return("PRIVMSG %s :test" %(channel))</pre>
<p>This would make a function called test. The variables channel, sender, nick, cmd, and run are passed to the function. The functions syscmd() and getlevel() are also passed to the plugin.</p>
<p>The default plugins that are included with the bot are ping, for pinging addresses, testplugin, for testing the bot, yacas, for doing math with yacas (delete it if you don&#8217;t have yacas installed) and getlevel, for demonstrating the ability to use the getlevel function in a plugin.</p>
<p>I have also set up a page for the bot, see the links bar below the logo.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2009/12/22/mvpybot-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python IRC Bot in the Works</title>
		<link>http://mattventura.net/2009/12/05/python-irc-bot-in-the-works/</link>
		<comments>http://mattventura.net/2009/12/05/python-irc-bot-in-the-works/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 20:59:01 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.mattventura.net/?p=254</guid>
		<description><![CDATA[*** Update ***: Main page for bot here
I am currently writing a small, fast, small-footprint IRC bot in Python. More details as I finish the bot. The functions created so far:

Help (Displays Help)
Echo (Echo back a message)
Say (Send a message to a channel)
Spam (Send a message to a channel a specified amount of times)
Join (Join [...]]]></description>
			<content:encoded><![CDATA[<p>*** Update ***: Main page for bot <a href="/mvpybot/">here</a></p>
<p>I am currently writing a small, fast, small-footprint IRC bot in Python. More details as I finish the bot. The functions created so far:</p>
<ul>
<li>Help (Displays Help)</li>
<li>Echo (Echo back a message)</li>
<li>Say (Send a message to a channel)</li>
<li>Spam (Send a message to a channel a specified amount of times)</li>
<li>Join (Join a channel)</li>
<li>Part (Part a channel)</li>
<li>Authorization (username+password)</li>
<li>Deauthorization</li>
<li>User lookup</li>
<li>Raw (Use raw IRC commands)</li>
<li>Uptime (Display uptime)</li>
<li>Math (Do math functions with Yacas)</li>
</ul>
<p>Planned functions:</p>
<ul>
<li>Encrypted passwords</li>
<li>Data storage, either in a text file or a MySQL DB</li>
<li>Channel mode control</li>
</ul>
<p>This bot is not meant to be a complex bot, it is intended to be a fast, light bot that can be easily reprogrammed.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2009/12/05/python-irc-bot-in-the-works/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Comparison 3: Laptops</title>
		<link>http://mattventura.net/2009/11/08/comparison-3-laptops/</link>
		<comments>http://mattventura.net/2009/11/08/comparison-3-laptops/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 06:13:37 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mattventura.net/?p=247</guid>
		<description><![CDATA[Since laptops are becoming more and more popular these days, I decided to finally do a comparison on laptops as opposed to desktops. I&#8217;ll compare two laptops from Apple, Dell, HP, and whatever other good deals I can find.
To be more fair this time, I&#8217;ll start with Apple and set a budget accordingly, since Apples [...]]]></description>
			<content:encoded><![CDATA[<p>Since laptops are becoming more and more popular these days, I decided to finally do a comparison on laptops as opposed to desktops. I&#8217;ll compare two laptops from Apple, Dell, HP, and whatever other good deals I can find.</p>
<p><span id="more-247"></span>To be more fair this time, I&#8217;ll start with Apple and set a budget accordingly, since Apples cheapest laptop at the time of writing is $999. I&#8217;ll start with that one.</p>
<p>The $999 Macbook has a 13&#8243; screen and a 2.26Ghz C2D. Not a bad CPU for a laptop. It has only 2GB of RAM, which can be upgraded to 4 for $100, but seems substandard these days. Unfortunately, already being at the budget, I couldn&#8217;t get any upgrades.</p>
<p>Looking at Dell&#8217;s lineup, everything starts at under $1000 in the studio line. They have an i7 version of the studio 17, which would almost certainly beat everything else, but it was over budget. I decided to start with the basic Studio 17. I took an upgrade to 4GB of RAM and an upgrade to a 4650 from an Intel GPU. Getting an 802.11n card put me $75 under budget, so I upgraded to CPU to end up at exactly $999.</p>
<p>Now for HP. I went to &#8220;high performance&#8221; and started with the dv7t. I upgraded to 4GB of DDR3, took the free upgrade to a 320GB hard drive, upgraded to a 4650 1GB, and got 802.11n+bluetooth, which put me at $989.</p>
<p>On to Lenovo. The Y550 was under $1000 and had discrete graphics, so I went with the top model. It was $688, so I had some room to improve it. Also, it was clear that it was better than the other systems in some areas. I upgrade the wireless to 802.11n, upgraded to 4GB DDR3, and had $220 left to spend. I got a 500GB HDD, bluetooth, and still had money to spend. I upgraded the CPU to a 2.53GHz C2D, but this put me slightly over, so I downgraded to a 320GB HDD.</p>
<p>For the last laptop, I decided to go with a Sony. The Vaio SR started at $819, which should leave plenty of room for improvement.</p>
<table border="0">
<tbody>
<tr>
<td></td>
<td>Macbook</td>
<td>Dell Studio 17</td>
<td>HP</td>
<td>Lenovo</td>
<td>Vaio</td>
</tr>
<tr>
<td>CPU</td>
<td><span style="color: #000000;">2.26Ghz C2D</span></td>
<td><span style="color: #000000;">2.2GHz C2D</span></td>
<td>2.2GHz C2D</td>
<td><span style="color: #008000;">2.53GHz C2D</span></td>
<td><span style="color: #800000;">2.13GHz C2D</span></td>
</tr>
<tr>
<td>RAM</td>
<td><span style="color: #800000;">2GB <span style="color: #008000;">DDR3</span><br />
</span></td>
<td><span style="color: #008000;">4GB DDR3 1066</span></td>
<td><span style="color: #008000;">4GB DDR3</span></td>
<td><span style="color: #008000;">4GB DDR3<br />
</span></td>
<td><span style="color: #800000;"><span style="color: #008000;">4GB</span> DDR2</span></td>
</tr>
<tr>
<td>Video card</td>
<td><span style="color: #008000;">9400M</span></td>
<td><span style="color: #008000;">4650M 1GB<br />
</span></td>
<td><span style="color: #008000;">4650m 1GB<br />
</span></td>
<td><span style="color: #008000;">240M 1GB<br />
</span></td>
<td><span style="color: #800000;">4570 512MB<br />
</span></td>
</tr>
<tr>
<td>Hard Drive</td>
<td><span style="color: #000000;">250GB</span></td>
<td>250GB</td>
<td>250GB</td>
<td><span style="color: #008000;">320GB</span></td>
<td><span style="color: #800000;">160GB</span></td>
</tr>
<tr>
<td>Screen Size</td>
<td><span style="color: #800000;">13&#8243;</span></td>
<td><span style="color: #008000;">17&#8243;</span></td>
<td><span style="color: #008000;">17&#8243;</span></td>
<td>15.6&#8243;</td>
<td><span style="color: #000000;">15&#8243;</span></td>
</tr>
<tr>
<td>Screen Resolution</td>
<td><span style="color: #800000;">1280&#215;800</span></td>
<td><span style="color: #000000;">1440&#215;900</span></td>
<td><span style="color: #800000;"><span style="color: #008000;">1600&#215;900</span></span></td>
<td>1366&#215;768</td>
<td>?</td>
</tr>
<tr>
<td>Wireless</td>
<td><span style="color: #008000;">802.11n</span></td>
<td><span style="color: #008000;">802.11n</span></td>
<td><span style="color: #008000;">802.11n</span></td>
<td><span style="color: #008000;">802.11n</span></td>
<td><span style="color: #008000;">802.11n</span></td>
</tr>
<tr>
<td>Price</td>
<td>$999</td>
<td>$999</td>
<td>$989</td>
<td>$989</td>
<td>$969</td>
</tr>
</tbody>
</table>
<p>As you can see, the Macbook has poor RAM capacity, but makes up for it with a decent graphics card and CPU. The Lenovo, Dell, and HP seem to be the best overall, whereas the Sony seems to have lack in certain areas. No DDR3, slowest CPU, and smallest hard drive. Overall, all the laptops seems to be more even, and it&#8217;s nice to see Apple doesn&#8217;t seem to be doing the usual price-gouging routine, at least not as much.</p>
<p>Note: this is not intended to be a buying guide. This is just for showing which brands will give you the best computer for your money.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2009/11/08/comparison-3-laptops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux iPhone Tethering over Bluetooth</title>
		<link>http://mattventura.net/2009/08/27/linux-iphone-tethering-over-bluetooth/</link>
		<comments>http://mattventura.net/2009/08/27/linux-iphone-tethering-over-bluetooth/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 21:54:01 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Linux iPhone tether]]></category>
		<category><![CDATA[tether]]></category>

		<guid isPermaLink="false">https://blog.mattventura.net/?p=218</guid>
		<description><![CDATA[A while ago I wrote about how to do a wifi iPhone tether with a SOCKS proxy. Now, I&#8217;ll be writing about a Bluetooth tether on 3.0/3.0.1 with a 3G/3GS. To make this work on 3.1, you will need to enable tethering separately, which can usually be done by installing the &#8220;Internet Tethering&#8221; package in [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I wrote about how to do a wifi iPhone tether with a SOCKS proxy. Now, I&#8217;ll be writing about a Bluetooth tether on 3.0/3.0.1 with a 3G/3GS. To make this work on 3.1, you will need to enable tethering separately, which can usually be done by installing the &#8220;Internet Tethering&#8221; package in Cydia. This does NOT rely on that uit.sh script floating around, and will work on any Linux system with bluetooth. I used my Fedora 10 laptop for this.</p>
<p><span id="more-218"></span></p>
<h2>Enable PAND</h2>
<p>First, check /etc/sysconfig/bluetooth, and add this to the file if it is not already there:<br />
<code><br />
PAND_ENABLED=1<br />
PAND_OPTIONS="--role=PAN"</code></p>
<p>Restart the bluetooth service, or your computer if you can&#8217;t find the init.d script for it.</p>
<h2>Install Blueman</h2>
<p>First, install the &#8220;Blueman&#8221; program. It will put a bluetooth icon in your notification area. If you already have one, click both to check which is the blueman icon and which is provided by another bluetooth service. First of all, right click the blueman icon and go to local services. Click on network and select the &#8220;integrate with NetworkManager&#8221; option. Close this window.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/shot0.png"><img class="alignnone size-full wp-image-222" title="shot0" src="https://blog.mattventura.net/wp-content/uploads/shot0.png" alt="shot0" width="608" height="448" /></a></p>
<h2>Prepare the Phone</h2>
<p>Browse to <a href="http://help.benm.at/help.php" target="_blank">help.benm.at</a> on your phone and select your country and carrier. After installing the carrier settings, reboot your phone. In Settings&gt;General&gt;Network, you should see an internet tethering option. If you don&#8217;t, reinstall the carrier settings and reboot again. When you get a notice about tethering not being activated and that you need to contact AT&amp;T, close it and the menu should be activated. Go into the tethering menu and turn tethering on. Tethering has not been reported to add to your phone bill, so it is safe to ignore the warning if you get one. Now, go to your bluetooth menu (settings&gt;general&gt;bluetooth) turn bluetooth on and stay in the menu.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/IMG_0251.PNG"><img class="alignnone size-full wp-image-226" title="IMG_0251" src="https://blog.mattventura.net/wp-content/uploads/IMG_0251.PNG" alt="IMG_0251" width="320" height="480" /></a></p>
<p>Back on the computer, click the blueman icon and click the search button.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/shot1.png"><img class="alignnone size-full wp-image-223" title="shot1" src="https://blog.mattventura.net/wp-content/uploads/shot1.png" alt="shot1" width="661" height="378" /></a></p>
<p>You should see the phone. Select the phone then click the bond button. Make a passcode consisting of numbers, then when the phone asks you to input a passcode, enter the same code. Your phone and computer should now be paired.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/shot2.png"><img class="alignnone size-full wp-image-224" title="shot2" src="https://blog.mattventura.net/wp-content/uploads/shot2.png" alt="shot2" width="392" height="237" /></a></p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/IMG_0252.PNG"><img class="alignnone size-full wp-image-225" title="IMG_0252" src="https://blog.mattventura.net/wp-content/uploads/IMG_0252.PNG" alt="IMG_0252" width="320" height="480" /></a></p>
<h2>Connect</h2>
<p>Now that the phone and computer are paired, you can follow these steps whenever you want to connect to the phone.</p>
<p>Go to the bluetooth menu on the phone. Tap on the computer&#8217;s name. The first time you connect, you might get a notice about incoming authorization, as shown below, click &#8220;Check Authorization&#8221; and be sure to always grant access. This might not appear on subsequent connections.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/IMG_0253.PNG"><img class="alignnone size-full wp-image-227" title="IMG_0253" src="https://blog.mattventura.net/wp-content/uploads/IMG_0253.PNG" alt="IMG_0253" width="320" height="480" /></a></p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/shot3.png"><img class="alignnone size-full wp-image-228" title="shot3" src="https://blog.mattventura.net/wp-content/uploads/shot3.png" alt="shot3" width="461" height="156" /></a></p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/shot3.5.png"><img class="alignnone size-full wp-image-229" title="shot3.5" src="https://blog.mattventura.net/wp-content/uploads/shot3.5.png" alt="shot3.5" width="587" height="225" /></a></p>
<p>Now, open blueman on the computer and right click the phone. Connect to network&gt;network access. Wait a minute for network-manager to pick up on the connection, and you should be connected.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/shot4.png"><img class="alignnone size-full wp-image-230" title="shot4" src="https://blog.mattventura.net/wp-content/uploads/shot4.png" alt="shot4" width="661" height="378" /></a></p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/IMG_0254.PNG"><img class="alignnone size-full wp-image-231" title="IMG_0254" src="https://blog.mattventura.net/wp-content/uploads/IMG_0254.PNG" alt="IMG_0254" width="320" height="480" /></a></p>
<p>You can do other things with your phone while tethering is active. To stop tethering, you can just disconnect in blueman or turn bluetooth off on the phone. For your information, the network interface that is created will typically be bnep0, not the pan0 network interface that is already present in some systems.</p>
<p>If it doesn&#8217;t work, make sure your bluetooth is functioning correctly. If all else fails, unpair the iPhone on the computer and remove the computer from the iPhone&#8217;s list of bluetooth devices.</p>
<p>I&#8217;ll be writing some more OpenWRT stuff later, so you can subscribe to my RSS feed or follow me on twitter (@Mattventura) to hear more.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2009/08/27/linux-iphone-tethering-over-bluetooth/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A (Mostly) Complete OpenWRT Tutorial</title>
		<link>http://mattventura.net/2009/08/17/a-mostly-complete-openwrt-tutorial/</link>
		<comments>http://mattventura.net/2009/08/17/a-mostly-complete-openwrt-tutorial/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 05:40:06 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">https://blog.mattventura.net/?p=194</guid>
		<description><![CDATA[I&#8217;ve attempted to write a complete OpenWRT setup tutorial, since many out there lack certain parts. This will cover the basics and the more advanced things you can do with OpenWRT. Read more for the tutorial.

I will be adding more to this later, so stay tuned. You can also subscribe to my RSS feed or [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve attempted to write a complete OpenWRT setup tutorial, since many out there lack certain parts. This will cover the basics and the more advanced things you can do with OpenWRT. Read more for the tutorial.</p>
<p><span id="more-194"></span></p>
<p>I will be adding more to this later, so stay tuned. You can also subscribe to my RSS feed or follow me on Twitter (@mattventura.)</p>
<p>First, this assumes that you already have OpenWRT installed. If you don&#8217;t have it installed, you find the proper firmware file from openwrt.org, log into your router, and use the &#8220;firmware update&#8221; page to install the new firmware. Also, some of the advanced things assume that you have a Linksys WRT54G series router. It also assumes you have some computer skills.</p>
<p>Also, this was written using 7.09, then editied with another person who uses 8.09, so some of this may be outdated, but should be mostly relevant.</p>
<p>If you have already done any of these steps, just skip it.</p>
<p>First of all, OpenWRT has a web interface, a telnet interface, and an ssh interface. This tutorial covers the telnet/ssh interface, since if you installed OpenWRT, you apparently already know how to use a web interface.</p>
<h1>Web Interface Setup Notes</h1>
<p>The OpenWRT web interface isn&#8217;t quite self explanatory, and knowing how to use a CLI is an extremely useful skill. If you don&#8217;t figure out the web interface, just follow our CLI instructions.</p>
<p>The initial password doesn&#8217;t exist, so please, change your password by going to System &gt; Admin Password.</p>
<h1>The CLI (Telnet and SSH)</h1>
<p>First, you need to connect to the router. By default, on 8.09 wireless should be enabled, but it will be disabled for earlier versions. So if you don&#8217;t see a wifi network called &#8220;OpenWrt,&#8221; grab an Ethernet cable and connect to your router. Open up a command line and run &#8216;telnet 192.168.1.1&#8242;. You will get in without a password if you have not set one. You should really set one by running &#8216;passwd&#8217; on the router and typing a password, if you don&#8217;t set one, by default, outside attackers can&#8217;t hit either the router&#8217;s Web UI (for 8.09+) or SSH. Now, close your telnet session and make sure you have an SSH client. For windows, you can use PuTTY, available at http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe. Log into the router (192.168.1.1) using username &#8216;root&#8217; and the password you set in the telnet session or in the web interface. You should now be logged in. Now, if you know how to use a unix text editor (vi is the only one that comes standard on OpenWRT, see the &#8216;installing software&#8217; section if you don&#8217;t like vi) you can use one. If you don&#8217;t, I recommend downloading WinSCP (available at http://winscp.net/download/winscp419.exe), which will let you browse and edit files and folders with a commander-style GUI, and will make many parts of this much easier if you aren&#8217;t familiar with traditional Unix text editors since it has a built in text editor. WinSCP connects to your router through SSH, so just connect to 192.168.1.1 with username &#8216;root&#8217; and the password you set. You will see your computer&#8217;s files on the left and the router&#8217;s files on the right. You can change it from commander-style to explorer style if you are more comfortable</p>
<h2>First Step: Configure Wifi</h2>
<p>Start by opening the file /etc/config/wireless. If you need to enable wifi, you should see something about deleting a line to enable wifi. Just delete the line it says you should delete. Now, you can change the SSID by editing the &#8216;option ssid&#8217; line. To get encryption, change the bottom part of the file to follow this example:</p>
<p><code><br />
config wifi-iface<br />
option device   wl0<br />
option network  lan<br />
option mode     ap<br />
option ssid     openwrt<br />
option encryption wep<br />
option key      abcd12345678901234567890ef<br />
</code></p>
<p>The &#8216;key&#8217; setting should be a 10 or 26 digit hexadecimal number (only 0-9 and a-f). Be sure to include the &#8216;option encryption wep&#8217; line. You can reboot to apply the changes (use the &#8216;reboot&#8217; command) or run &#8216;/etc/init.d/network restart&#8217;. If you want to use WPA, you can use the &#8216;nas&#8217; package or wpa_supplicant if you are more proficient.</p>
<h2>Step 2: Change DNS servers (optional)</h2>
<p>Right now, your OpenWRT router is using your ISP&#8217;s DNS servers, which probably aren&#8217;t the best out there. This step is optional, but can speed up web browsing by a significant amount, depending on how bad your ISP&#8217;s DNS servers are. First, edit /etc/dnsmasq.conf and find the &#8216;resolv-file&#8217; line. Change that line to &#8216;resolv-file=/etc/resolv.conf&#8217;. Now, exit your editor and run &#8216;rm /etc/resolv.conf&#8217;. Now, run &#8216;touch /etc/resolv.conf&#8217; which will recreate the file. Edit the file again, and put this in it:<br />
<code><br />
nameserver 4.2.2.2<br />
nameserver 4.2.2.3<br />
</code></p>
<p>See <a href="#appendixa">Appendix A</a> for other DNS servers you can use.</p>
<p>Reboot to apply the changes and check for an increase in speed. If you can connect to your network, but a web browser says that the server cannot be found, your ISP may block outside DNS queries. Simply revert to your ISP&#8217;s servers by running &#8216;rm /etc/resolv.conf&#8217; and then &#8216;ln -s /tmp/resolv.conf.auto /etc/resolv.conf&#8217;, or if you know them, simply replace 4.2.2.3 and 4.2.2.2 with your ISP&#8217;s servers. Then proceed to call your ISP and complain about the fact that you can&#8217;t use other DNS servers. Threaten to cancel your service, because that is very effective.</p>
<h2>Step 3: Change your IP and/or Expand your subnet (optional)</h2>
<p>You can use the entire 192.168/16 RFC1918 range if you have more than 254 devices on your network. Do not do this step if you have another NAT router somewhere in your network that you cannot configure, as it often causes problems. This will also mess with devices such as the Vonage V-Portal, which will need to be reconfigured in order to be able to make calls. Simply reconfigure it&#8217;s LAN IP to be in a different private subnet.</p>
<p>If you still want to use 192.168.1.1 as the router&#8217;s IP, edit the file /etc/config/network and local the &#8216;LAN configuration&#8217; section. Find the &#8216;option netmask&#8217; line in the LAN configuration section. Change this from 255.255.255.0 to 255.255.0.0. Now you can have 65534 devices on your network instead of only 254. You will need to reconfigure DHCP to get that many DHCP clients though.</p>
<p>The other RFC1918 ranges are 10/8 and 176.16/12 (172.16.0.0-172.31.255.255)</p>
<p>Your basic OpenWRT setup is now complete. Now for the fun stuff.</p>
<h1>Installing Software</h1>
<p>Older versions of OpenWRT use the ipkg package management, whereas never versions use okpg. Opkg is used the same way as ipkg, so if you see an ipkg command, and you have okpg, simply replace the i with an o.</p>
<p>The three most useful commands are ipkg update, which will update your package list, ipkg list, which will list all of the available packages and can be used with grep to locate specific packages, and ipkg install  to install a package. You should run ipkg update before installing anything. If ipkg update gives you error 404s, try looking in /etc/ipkg.conf to see if your sources are correct. Mine are:<br />
<code><br />
src release http://downloads.openwrt.org/kamikaze/7.09/brcm-2.4/packages<br />
src packages http://downloads.openwrt.org/kamikaze/7.09/packages/mipsel<br />
</code><br />
Replace 7.09 with your version. It will tell you the version when you log in. If you don&#8217;t want to log in again, run &#8216;cat /etc/banner&#8217;.</p>
<p>For example, to install &#8216;nano&#8217;, run &#8216;ipkg install nano&#8217;.</p>
<p>Now for more fun.</p>
<h1>Front Panel Stuff</h1>
<h2>LEDs</h2>
<p>If you look at your router&#8217;s front panel, you&#8217;ll undoubtedly see lots of lights. You may also have a button or two&#8211;try pressing the Cisco logo on the front. &#8216;cd&#8217; into /proc/diag/led. Now run &#8216;ls&#8217; to see what you have for programmable leds. A WRT54G &gt; hardware v3 (the hardware version is on the bottom of the device) or a WRT54GL will have dmz, power, wlan, and will have a orange and a white LED behind the SES button (the Cisco logo). You can input &#8216;1&#8242; to turn the LED on or &#8216;0&#8242; to turn the LED off. Try it with the ses_white LED. Don&#8217;t try to program the wlan LED, as it blinks when there is wifi traffic, so it won&#8217;t stay on or off for long. Also, don&#8217;t try to program the power LED, as that is already used for special purposes. So you can use dmz (a small green LED) if you have it, or the two SES LEDS. They can both be on at the same time, producing a mostly white color, but it is generally better to only have the orange or white on at any time if you are using it for indication.</p>
<h2>Buttons</h2>
<p>If you have a front-panel button, you can use it to run a script, for example, to toggle Wifi on or off. First, go to /etc/hotplug.d (cd /etc/hotplug.d) and make a directory called &#8216;button&#8217; (mkdir button). Now, make a file in that folder for your script. It should look like this:<br />
<code><br />
#!/bin/sh<br />
if [ "$BUTTON" = "ses" ] ; then<br />
if [ "$ACTION" = "pressed" ] ; then<br />
#Your stuff goes here.<br />
#It will be run when the SES button is pressed.<br />
fi<br />
fi<br />
</code></p>
<p>Now, make the file executable (chmod a+x ), You can google around for example scripts. The most common is a wifi on-off toggle, which can be done with:</p>
<p><code><br />
WIFI_RADIOSTATUS=$(uci show wireless.wl0.disabled | cut -d = -f 2)<br />
case "$WIFI_RADIOSTATUS" in<br />
1)<br />
uci set wireless.wl0.disabled=0<br />
wifi<br />
echo 1 &gt; /proc/diag/led/ses_white ;;<br />
0)<br />
uci set wireless.wl0.disabled=1<br />
wifi<br />
echo 0 &gt; /proc/diag/led/ses_white<br />
esac</code></p>
<p>(script from OpenWrt wiki)</p>
<h1>Port Forwarding/Firewalling</h1>
<p>First of all, let me say that port forwarding <strong>ONLY</strong> affects incoming connections. Here is a quick workaround: let&#8217;s say your site is mysite.com and incoming connections should be forwarded to 192.168.1.50. Add &#8216;192.168.1.50 mysite.com&#8217; to /etc/hosts. Now when mysite.com is looked up, they will be sent directly to the server.</p>
<p>Now for the actual forwarding. Edit the file /etc/firewall.user and you can add and delete firewall rules. A forwarding rule looks like this<br />
<code><br />
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 555 -j DNAT --to 192.168.1.119<br />
iptables        -A forwarding_rule -i $WAN -p tcp --dport 555 -d 192.168.1.119 -j ACCEPT<br />
</code><br />
555 is the TCP port to be forwarded, 192.168.1.119 is the address to forward it to. To forward all ports not handled already:<br />
<code><br />
iptables -t nat -A prerouting_rule -i $WAN --jump DNAT --to 192.168.1.111<br />
iptables        -A forwarding_rule -i $WAN -d 192.168.1.111 --jump ACCEPT<br />
</code><br />
Where 192.168.1.111 is the address to forward to. All traffic not already handled by other rules will be caught by this one. Make sure it is the last forwarding rule in /etc/firewall.user.</p>
<p>To drop all outgoing traffic to a specific port:<br />
<code><br />
iptables        -A input_rule  -p tcp --dport 666 -j DROP<br />
</code><br />
This example will drop all traffic to TCP. To make the router answer ssh connections, even from the internet (which should only be done with a strong password):<br />
<code><br />
iptables -t nat -A prerouting_wan -p tcp --dport 22 -j ACCEPT<br />
iptables        -A input_wan      -p tcp --dport 22 -j ACCEPT<br />
</code></p>
<p>After adding or removing firewall rules, run /etc/init.d/firewall restart to apply the new rules.</p>
<p>Now, if you want to be able to access it through a traditional hostname, see part two of this tutorial.</p>
<h1>Other Stuff</h1>
<h2>Set the Hostname</h2>
<p>To set the hostname of the router, edit /etc/config/hostname.<br />
You should reboot your router after this, using the aforementioned &#8216;reboot&#8217; command.</p>
<h2>See What&#8217;s Connected</h2>
<p>Here is a shell script that will read your DHCP lease table and check for associated wifi clients and give you a summary of all of them. Be sure to have the wl package installed.<br />
<code><br />
#!/bin/sh</code></p>
<p>for macaddr in `cat /tmp/dhcp.leases|awk &#8216;{print $2}&#8217;`; do<br />
entry=`cat /tmp/dhcp.leases | grep $macaddr|cut -f 2-5 -d &#8216; &#8216;;`<br />
if wl assoclist | grep `echo &#8220;$entry&#8221; | awk &#8216;{x=toupper($1);print x}&#8217;|awk &#8216;{print $1}&#8217;` &gt; /dev/null; then<br />
mac=`echo &#8220;$entry&#8221; | awk &#8216;{print $1}&#8217;`<br />
strength=`wl rssi $mac`; else<br />
strength=&#8221;None&#8221;;<br />
fi<br />
entry=$entry&#8221; &#8220;&#8221;Wifi: &#8220;$strength<br />
echo &#8220;$entry&#8221;<br />
done</p>
<h1>Things you should NOT do</h1>
<p>There are a few things you may have heard of that people told you could be done in OpenWRT. The most common is increasing transmit power. This doesn&#8217;t actually increase range. It only makes it seem like it increases range. The best way to increase range is to buy a better antenna, buy better wifi cards for your computers that connect via wifi or build a parabolic reflector that will focus the radio signal broadcast by your router to whichever direction you choose.</p>
<p>Someone may have also told you to overclock your router. This is an easy way to brick it, requiring a JTAG cable to de-brick it. There are only a couple safe clock values (depending on your model), the others will leave you with a brick or a dead CPU (due to overheating.)</p>
<h1 id="appendixa">Appendix A: DNS servers</h1>
<h2>Normal DNS servers</h2>
<p>You should use at least 2 DNS servers in /etc/resolv.conf. Here is a list of standards-compliant caching DNS servers that return NXDOMAINs for non-existent domains. These are fast and reliable.</p>
<h3>Level3 DNS Servers:</h3>
<ul>
<li>4.2.2.1</li>
<li>4.2.2.2</li>
<li>4.2.2.3</li>
<li>4.2.2.4</li>
<li>4.2.2.5</li>
<li>4.2.2.6</li>
<li>4.2.2.7</li>
</ul>
<h3>OKS</h3>
<p><a href="http://theoks.net">OKS</a> has a public, caching, standards-compliant DNS server:<br />
76.121.249.193</p>
<h2>Abnormal DNS servers (guides)</h2>
<h3>Comcast and Other ISPs</h3>
<p>Comcast recently introduced the Comcast Guide, which is where if a domain doesn&#8217;t exist, you will be redirected to a guide that will run a search. In order to use Comcast&#8217;s DNS servers without the Comcast Guide, you have to provide your modem&#8217;s MAC address, account number and other crap that is not fun to provide. For this reason and others (speed, vulnerabilities), we recommend not using Comcast&#8217;s DNS servers, or the servers of any other ISP that does this.</p>
<h3>OpenDNS</h3>
<p>OpenDNS, a San Fransico based company offers the OpenDNS Guide which is easily turned off via a settings dashboard. Settings are set per IP or IP block. OpenDNS offers several other services such as domain blocking, category blocking and even exceptions to the OpenDNS Guide (e.g, VPN reasons) in which case a regular NXDOMAIN will be returned for a nonexistent domain. For example, Boeing employees could add boeing.com as a VPN exception to allow access to in-VPN stuff such as Exchange, Mainframes<!-- which are awesome-->, file shares, TotalAccess and Software Express.</p>
<p>The OpenDNS name servers are</p>
<ul>
<li>208.67.222.222</li>
<li>208.67.220.220</li>
<li>208.67.222.220</li>
<li>208.67.220.222</li>
</ul>
<h2>Fixing Bogus NXDOMAIN queries</h2>
<p>In the case that you must use your ISP&#8217;s DNS servers, or you find that they are sufficiently fast, but they return web pages when you browse to a nonexistent page, you can use dnsmasq.conf to block the bogus page. (Please make sure that it is not software on your computer causing this.)</p>
<p>In /etc/dnsmasq.conf, add a line like this:<br />
<code>bogus-nxdomain=1.2.3.4</code><br />
Replace 1.2.3.4 with the IP that is being returned for nonexistent domains. To find this, just run &#8216;nslookup fhdsahfahdsucnmcnch.com&#8217; or something of the likes. Restart dnsmasq. (/etc/init.d/dnsmasq restart)</p>
<h1>Credits</h1>
<p>© 2009 Matt Ventura and Darren VanBuren. This work is licensed under the GNU Free Documentation License version 1.3.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2009/08/17/a-mostly-complete-openwrt-tutorial/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Equivalents of *nix Software</title>
		<link>http://mattventura.net/2009/07/31/windows-equivalents-of-nix-software/</link>
		<comments>http://mattventura.net/2009/07/31/windows-equivalents-of-nix-software/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 04:19:06 +0000</pubDate>
		<dc:creator>Matt Ventura</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blog.mattventura.net/?p=187</guid>
		<description><![CDATA[There are a lot of pages out there that will give you a long list of Windows software with Linux equivalents. I decided to go the other way, and provide a list of Windows equivalents for common Unix and Linux software.

Now, obviously, I won&#8217;t be able to get everything here. Since *nix users will tend [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of pages out there that will give you a long list of Windows software with Linux equivalents. I decided to go the other way, and provide a list of Windows equivalents for common Unix and Linux software.</p>
<p><span id="more-187"></span></p>
<p>Now, obviously, I won&#8217;t be able to get everything here. Since *nix users will tend to be power users, or will need to administrate other systems, I have included important command-line and system administration tools.</p>
<p>1. Bash</p>
<p>Windows equivalent: CMD and PowerShell.</p>
<p>Command prompt, aka cmd is the basic command line for Windows. It allows you to execute programs, pipe output, send output to files, etc. For relatively new Windows users, press Winkey-R (the equivalent of Alt-F2 is many desktop environments) and enter cmd. This launches the command line.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/cmd.png"><img class="alignnone size-full wp-image-188" title="cmd" src="https://blog.mattventura.net/wp-content/uploads/cmd.png" alt="cmd" width="509" height="238" /></a></p>
<p>The other command line for Windows is PowerShell. PowerShell has a steep learning curve, but is much more powerful than the basic command line.</p>
<p>2. Telnet and SSH</p>
<p>Windows has a built-in basic telnet program which can be used in Command Prompt. The syntax is basically the same as the typically Unix implementation (telnet host [port]) but is not very feature-rich. A much better program is <a title="PuTTY" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">PuTTY</a>. PuTTY is a free Telnet and SSH program, supporting many SSH features such as tunneling.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/putty.png"><img class="alignnone size-full wp-image-189" title="putty" src="https://blog.mattventura.net/wp-content/uploads/putty.png" alt="putty" width="587" height="301" /></a></p>
<p>3. FTP, SCP, SFTP</p>
<p>WinSCP is a free file transfer client supporting FTP, SCP, and SFTP with a little PuTTY integration. It has a MC-like interface which is easy to use, especially for people who actually used MC.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/winscp.png"><img class="alignnone size-full wp-image-190" title="winscp" src="https://blog.mattventura.net/wp-content/uploads/winscp.png" alt="winscp" width="608" height="650" /></a></p>
<p>4. Services management</p>
<p>Run services.msc to get to the Windows Services Manager. Here, you can do the things you would normally do with the stuff in /etc/init.d. You can start, stop, restart, and even pause some services. You can also set which services should start on startup, and which should be disabled.</p>
<p><a href="https://blog.mattventura.net/wp-content/uploads/serv.png"><img class="alignnone size-full wp-image-191" title="serv" src="https://blog.mattventura.net/wp-content/uploads/serv.png" alt="serv" width="638" height="452" /></a></p>
<p>5. su/sudo</p>
<p>The runas program allows you to run a program as another user. It is a command-line program, and I won&#8217;t go over it, because it prints a usage message when invoked. Basically, you specify a user and program, and enter the password for that user. The &#8220;administrator&#8221; user is not quite the same as &#8220;root&#8221;. &#8220;Local System&#8221; is equivalent to root. Especially with more recent versions of Windows, you will need to have elevated privileges in order to do certain things.</p>
<p>6. SELinux</p>
<p>Windows 6+ has a feature called User Account Control. It is quite annoying, but does add a layer of security. It can be configured to ask for a password, like how gksu would. By default it only makes you click a button, which isn&#8217;t security if, say, you&#8217;re away from your desk. Someone could still tamper with your computer by simply clicking. My advice: if you leave UAC turned on, make it ask for a password.</p>
<p>That&#8217;s all for now. I feel I have covered the basic things. Stay tuned for more.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattventura.net/2009/07/31/windows-equivalents-of-nix-software/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
