<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8406746</id><updated>2012-01-16T21:35:22.981-05:00</updated><title type='text'>Jack Blogs Too</title><subtitle type='html'>Unfortunately...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8406746.post-3484807812392378889</id><published>2008-12-30T11:01:00.003-05:00</published><updated>2008-12-30T11:53:30.640-05:00</updated><title type='text'>Order parts from Digi-Key for hacking DNS-323</title><content type='html'>Did some research today and realized that instead of soldering my own TTL-RS232 converter, the easiest solution is ordering a &lt;a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;amp;name=768-1016-ND"&gt;converter cable&lt;/a&gt;, a &lt;a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;amp;name=WM1722-ND"&gt;female housing&lt;/a&gt; and some &lt;a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;amp;name=WM1775-ND"&gt;pins&lt;/a&gt; from Digi-Key.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8406746-3484807812392378889?l=jackblogs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/3484807812392378889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8406746&amp;postID=3484807812392378889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/3484807812392378889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/3484807812392378889'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/2008/12/order-parts-from-digi-key-for-hacking.html' title='Order parts from Digi-Key for hacking DNS-323'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8406746.post-6325588925931227854</id><published>2008-03-11T11:47:00.004-04:00</published><updated>2008-03-11T14:13:23.306-04:00</updated><title type='text'>Learning Python</title><content type='html'>I've always wanted to create a Nautilus extension for Subversion since that's been the primary environment at work for more than a year now.  All developers switched to Linux, more specifically, Ubuntu.  The subclipse plugin for Eclipse works pretty well, but it only takes care of the projects you imported into the workspace, nothing more.  I've been using the SVN command line for updating/committing other files, and am very comfortable with that.  However it would be still easier if we had something similar to TortoiseSVN that integrates with the file manager.&lt;br /&gt;&lt;br /&gt;Since I had lots of C/C++ programming experience in the past, I started a C project called gvcs-client hosted at &lt;a href="http://code.google.com/p/gvcs-client/"&gt;http://code.google.com/p/gvcs-client/&lt;/a&gt; but implemented only a little bit in the "nautilus-svn" module.  I have to say after working with garbage-collected languages for the past few years, going to back to C is such a pain!  I'm pretty proficient in C programming, but productivity is really bad when I have to deal with things I never need to care with other languages.&lt;br /&gt;&lt;br /&gt;This time I wanna use Python instead of C for this project.  I know nothing about Python except for some applications I use everyday are Python-based, such as Meld and Deluge.  I have a strong feeling that more and more desktop applications will be written in some higher level languages instead of C.&lt;br /&gt;&lt;br /&gt;Anyway, the decision has been made, I'm going to learn Python, and this project is going to be my first Python program!&lt;br /&gt;&lt;br /&gt;The old C-based incomplete implementation is still available here:&lt;br /&gt;&lt;a href="http://code.google.com/p/gvcs-client/source/browse"&gt;http://code.google.com/p/gvcs-client/source/browse&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8406746-6325588925931227854?l=jackblogs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/6325588925931227854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8406746&amp;postID=6325588925931227854' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/6325588925931227854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/6325588925931227854'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/2008/03/learning-python.html' title='Learning Python'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8406746.post-6209293471870407974</id><published>2007-02-01T14:00:00.000-05:00</published><updated>2007-02-01T14:01:09.843-05:00</updated><title type='text'>Firefox Bookmark for Searching Maven Repository</title><content type='html'>I've completely switched all my projects from Ant to Maven, and it really makes my life easier when managing large projects with lots of subprojects and all sorts of internal or external dependencies.  I created a Firefox bookmark the other day, it makes my life even easier when searching for packages I want to add to my projects.  The bookmark is a one-line JavaScript code that asks for the package name when clicked, creates a Google search URL and redirects your page right away.&lt;br /&gt;&lt;br /&gt;Here's what I did, I created a bookmark using Firefox's bookmarks manager and used the following line as the location.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;javascript:var q=prompt(%22Please enter keywords%22);if(q!=null){window.location='http://www.google.com/search?q=site%3Aibiblio.org+maven2+'+q;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8406746-6209293471870407974?l=jackblogs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/6209293471870407974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8406746&amp;postID=6209293471870407974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/6209293471870407974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/6209293471870407974'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/2007/02/firefox-bookmark-for-searching-maven.html' title='Firefox Bookmark for Searching Maven Repository'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8406746.post-115039344534528095</id><published>2006-06-15T13:38:00.000-04:00</published><updated>2006-06-16T00:23:42.686-04:00</updated><title type='text'>Maven Nautilus Scripts</title><content type='html'>I've been using &lt;a href="http://maven.apache.org"&gt;Maven2&lt;/a&gt; a lot recently, and I wrote some simple Nautilus scripts to make my life a bit easier.  I never had any problem running mvn commands myself, but thought it would help Maven beginners get started quickly without having to read all the documents first.  My scripts should work in any &lt;a href="http://www.gnome.org"&gt;GNOME&lt;/a&gt; 2.x (I'm using GNOME 2.14) environment. &lt;br /&gt;&lt;br /&gt;Let's see some screen shots first.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Create a Maven Project&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/create-0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/create-0.png" alt="" border="0" /&gt;You can right click in any folder and create a Maven project right there.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/create-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/create-1.png" alt="" border="0" /&gt;Step 1, enter the groupId of your project.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/create-2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/create-2.png" alt="" border="0" /&gt;Step 2, enter the artifactId of your project.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/create-3.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/create-3.0.png" alt="" border="0" /&gt;Step 3, choose an Archetype.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/create-4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/create-4.png" alt="" border="0" /&gt;Step 4, Your project has been created!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/create-5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/create-5.png" alt="" border="0" /&gt;You can now work on your new Maven project!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Install 3rd-party Jars&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/install-0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/install-0.png" alt="" border="0" /&gt;To install a 3rd party JAR to your local repository, just right-click on the file and select "Install Package"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/install-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/install-1.png" alt="" border="0" /&gt;The script automatically detects all available Java packages in the JAR, you can simply select a package name as the groupId.  If you don't like any groupId detected by the script, click "Cancel" and enter whatever groupId you want.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/install-2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/install-2.png" alt="" border="0" /&gt;Change the artifactId if it's not what you want.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/install-3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/install-3.png" alt="" border="0" /&gt;Enter the version number&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/install-4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/install-4.png" alt="" border="0" /&gt;and the  packing type...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5371/568/1600/install-5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5371/568/320/install-5.png" alt="" border="0" /&gt;The JAR has been installed to your local repository!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The scripts are pretty simple right now, I'm planning some improvements and new features, here's my TODO:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Version 0.2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  - implement command "Deploy Package" that deploys packages to remote&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    repositories&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  - implement command "Run..." that prompts a list of builtin goals, the user&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    can select a goal and run it right away from the current directory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Version 0.3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  - GUI for downloading and installing Sun JARs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Version X.X (unscheduled)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  - Simple GUI for $HOME/.m2/settings.xml that allows the user to add a mirror,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    configure a proxy, etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  - Auto update nautilus-maven-scripts&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  - Auto update maven2 (through sudo or gksu if not installed in home dir)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8406746-115039344534528095?l=jackblogs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/115039344534528095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8406746&amp;postID=115039344534528095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/115039344534528095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/115039344534528095'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/2006/06/maven-nautilus-scripts.html' title='Maven Nautilus Scripts'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8406746.post-113820841431272765</id><published>2006-01-25T11:43:00.000-05:00</published><updated>2006-01-25T12:00:14.373-05:00</updated><title type='text'>Can't get 100% test coverage because of logging statements?</title><content type='html'>I was looking for a way that I can filter out all the logging statements such as:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; if (log.isDebugEnabled())&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and found that clover is capable of doing that, but as we're using Maven 2, the maven clover plugin doesn't seem to support it now, believe me, I've reviewed their source code.&lt;br /&gt;&lt;br /&gt;Finally I found a solution that does the trick. In your test case, just set the logging level of the class under test to whatever you want, test your class and then set the logging level back! e.g. your class is foo.bar.MyClass&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; Logger logger = Logger.getLogger("foo.bar");&lt;br /&gt; Level oldLevel = logger.getLevel();&lt;br /&gt; logger.setLevel(Level.OFF);&lt;br /&gt; &lt;br /&gt; // test your class here...&lt;br /&gt; &lt;br /&gt; logger.setLevel(oldLevel);&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8406746-113820841431272765?l=jackblogs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/113820841431272765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8406746&amp;postID=113820841431272765' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/113820841431272765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/113820841431272765'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/2006/01/cant-get-100-test-coverage-because-of.html' title='Can&apos;t get 100% test coverage because of logging statements?'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8406746.post-113474520342668649</id><published>2005-12-16T09:48:00.000-05:00</published><updated>2005-12-16T10:01:29.040-05:00</updated><title type='text'>mixing libstdc++5 and 6 causes problems</title><content type='html'>My favourite IM module SCIM started crashing applications after a "apt-get upgrade", i found that scim in debian etch is linked with libstdc++5, so it works fine with any applications that link with the same version of libstdc++, as scim gtk im module is loaded as a shared library, if it attaches to any libstdc++6 process, it'll be a mix of v5 and v6, segmentation fault... there are quite a few apps even firefox 1.0.7 links with libstdc++6, which breaks ABI compatibility with v5. Checked my fedora core 4 box at work, all apps are using v6, so scim works flawlessly. I guess debian is still in a transition from libstdc++5 to libstdc++6.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8406746-113474520342668649?l=jackblogs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/113474520342668649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8406746&amp;postID=113474520342668649' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/113474520342668649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/113474520342668649'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/2005/12/mixing-libstdc5-and-6-causes-problems.html' title='mixing libstdc++5 and 6 causes problems'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8406746.post-113433578782360710</id><published>2005-12-11T16:04:00.000-05:00</published><updated>2007-09-21T18:08:52.698-04:00</updated><title type='text'>Connecting to Windows VPN from Debian</title><content type='html'>Tired of using the &lt;a href="http://pptpclient.sourceforge.net/"&gt;PPTP Client GUI&lt;/a&gt;? Here's how I did it without the GUI. I really don't like the old GTK 1.x based GUI, and the way how resolv.conf is handled by the GUI.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# install packages&lt;br /&gt;apt-get install ppp pptp-linux resolvconf&lt;br /&gt;&lt;br /&gt;# create options.pptp&lt;br /&gt;echo "lock noauth nobsdcomp nodeflate usepeerdns" &gt; /etc/ppp/options.pptp&lt;br /&gt;&lt;br /&gt;# create chap-secrets&lt;br /&gt;echo "&lt;span style="font-style: italic;"&gt;DOMAIN&lt;/span&gt;\\&lt;span style="font-style: italic;"&gt;USERNAME&lt;/span&gt; PPTP &lt;span style="font-style: italic;"&gt;PASSWORD&lt;/span&gt; *" &gt; /etc/ppp/chap-secrets&lt;br /&gt;chmod o-rw /etc/ppp/chap-secrets&lt;br /&gt;&lt;br /&gt;# create /etc/ppp/peers/&lt;span style="font-style: italic;"&gt;TUNNEL-NAME&lt;/span&gt; with the following content&lt;br /&gt;pty "pptp &lt;span style="font-style: italic;"&gt;SERVERIP&lt;/span&gt; --nolaunchpppd"&lt;br /&gt;name &lt;span style="font-style: italic;"&gt;DOMAIN&lt;/span&gt;\\&lt;span style="font-style: italic;"&gt;USERNAME&lt;/span&gt;&lt;br /&gt;remotename PPTP&lt;br /&gt;require-mppe-128&lt;br /&gt;file /etc/ppp/options.pptp&lt;br /&gt;ipparam &lt;span style="font-style: italic;"&gt;TUNNEL-NAME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# activate the tunnel&lt;br /&gt;pon &lt;span style="font-style: italic;"&gt;TUNNEL-NAME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# deactivate the tunnel&lt;br /&gt;poff &lt;span style="font-style: italic;"&gt;TUNNEL-NAME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# debug the tunnel with:&lt;br /&gt;pon &lt;span style="font-style: italic;"&gt;TUNNEL-NAME&lt;/span&gt; debug dump logfd 2 nodetach&lt;br /&gt;&lt;br /&gt;# add the tunnel to /etc/network/interfaces with the following content&lt;br /&gt;iface vpn inet ppp&lt;br /&gt;provider &lt;span style="font-style: italic;"&gt;TUNNEL-NAME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# create /etc/ppp/ip-up.d/&lt;span style="font-style: italic;"&gt;TUNNEL-NAME&lt;/span&gt; as follows&lt;br /&gt;#!/bin/sh&lt;br /&gt;if [ "${PPP_IPPARAM}" = "&lt;span style="font-style: italic;"&gt;TUNNEL-NAME&lt;/span&gt;" ]; then&lt;br /&gt;   route add -net 192.168.0.0/24 dev ${IFNAME}&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# after you've installed resolvconf, the name servers are managed by&lt;br /&gt;# the resolvconf program based on the status of the interfaces, so&lt;br /&gt;# if you have a static interface, make sure you add your default name&lt;br /&gt;# server to your interface config in /etc/network/interfaces, e.g.&lt;br /&gt;iface eth0 inet static&lt;br /&gt; ...&lt;br /&gt; dns-nameservers &lt;span style="font-style: italic;"&gt;YOUR_NAME_SERVER&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now you can connect to the VPN server by:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ifup vpn&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And disconnect from the VPN server by:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ifdown vpn&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And if you want, add this line to /etc/network/interfaces, so that the system will bring the interface up automatically.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;auto vpn&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8406746-113433578782360710?l=jackblogs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/113433578782360710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8406746&amp;postID=113433578782360710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/113433578782360710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/113433578782360710'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/2005/12/connecting-to-windows-vpn-from-debian.html' title='Connecting to Windows VPN from Debian'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8406746.post-109572336752626020</id><published>2004-09-20T19:33:00.000-04:00</published><updated>2004-09-20T19:36:46.963-04:00</updated><title type='text'>first posting</title><content type='html'>My blog is up and running!  can't wait to test it out...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8406746-109572336752626020?l=jackblogs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jackblogs2.blogspot.com/feeds/109572336752626020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8406746&amp;postID=109572336752626020' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/109572336752626020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8406746/posts/default/109572336752626020'/><link rel='alternate' type='text/html' href='http://jackblogs2.blogspot.com/2004/09/first-posting.html' title='first posting'/><author><name>Jack Hong</name><uri>http://www.blogger.com/profile/13480704211705108998</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
