<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Jason Zerbe's draftbook | building digital products and services</title>
    <link href="http://vraidsys.com/atom.xml" rel="self" />
    <link href="http://vraidsys.com/" />
    <updated>2012-02-21T14:48:50-08:00</updated>
    <id>http://vraidsys.com/</id>
    <author>
        <name>Jason Zerbe</name>
        <email>jzerbe@vraidsys.com</email>
    </author>

    
    <entry>
        <title>J2EE WAR boilerplate configuration for JDBC, JSP, JSTL, Servlets</title>
        <link href="http://vraidsys.com/2012/02/j2ee-war-boilerplate-configuration-for-jdbc-jsp-jstl-servlets/" />
        <updated>2012-02-09T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2012/02/j2ee-war-boilerplate-configuration-for-jdbc-jsp-jstl-servlets/</id>
        <content type="html">I found out the long way that building a properly working
&lt;a href=&quot;http://en.wikipedia.org/wiki/WAR_file_format_(Sun)&quot;&gt;.war&lt;/a&gt;
is all about the correct archive structure. For this particular situation I
was deploying to a &lt;a href=&quot;http://en.wikipedia.org/wiki/Apache_Tomcat&quot;&gt;Tomcat&lt;/a&gt;
6 instance. This walk-through assumes you already have
a working web server/Servlet container with some way to deploy your .war.&lt;br /&gt;
&lt;br /&gt;
To create a project that will deploy with support for
&lt;abbr title=&quot;JavaServer Pages&quot;&gt;
    &lt;a href=&quot;http://en.wikipedia.org/wiki/JavaServer_Pages&quot;&gt;JSP&lt;/a&gt;
&lt;/abbr&gt;,
&lt;abbr title=&quot;JavaServer Pages Standard Tag Library&quot;&gt;
    &lt;a href=&quot;http://en.wikipedia.org/wiki/JavaServer_Pages_Standard_Tag_Library&quot;&gt;JSTL&lt;/a&gt;
&lt;/abbr&gt;,
&lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Servlet&quot;&gt;Servlets&lt;/a&gt;, and
&lt;a href=&quot;http://en.wikipedia.org/wiki/MySQL&quot;&gt;MySQL&lt;/a&gt; (via their custom
&lt;a href=&quot;http://dev.mysql.com/downloads/connector/j/&quot;&gt;JDBC driver&lt;/a&gt;),
you will need something like the following structure in place:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;- j2ee_war/&lt;br /&gt;
    | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/build.xml&quot;&gt;build.xml&lt;/a&gt;&lt;br /&gt;
    | -&amp;gt; META-INF/&lt;br /&gt;
    | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/META-INF/context.xml&quot;&gt;context.xml&lt;/a&gt;&lt;br /&gt;
    | -&amp;gt; src/&lt;br /&gt;
    | | -&amp;gt; config/&lt;br /&gt;
    | | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/src/config/DbConn.java&quot;&gt;DbConn.java&lt;/a&gt;&lt;br /&gt;
    | | -&amp;gt; database/&lt;br /&gt;
    | | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/src/database/UserManager.java&quot;&gt;UserManager.java&lt;/a&gt;&lt;br /&gt;
    | | -&amp;gt; servlets/&lt;br /&gt;
    | | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/src/servlets/MyInfo.java&quot;&gt;MyInfo.java&lt;/a&gt;&lt;br /&gt;
    | -&amp;gt; war-no-include/&lt;br /&gt;
    | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/war-no-include/jsp-api.jar&quot;&gt;jsp-api.jar&lt;/a&gt;&lt;br /&gt;
    | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/war-no-include/servlet-api.jar&quot;&gt;servlet-api.jar&lt;/a&gt;&lt;br /&gt;
    | -&amp;gt; web/&lt;br /&gt;
    | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/web/favicon.ico&quot;&gt;favicon.ico&lt;/a&gt;&lt;br /&gt;
    | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/web/index.html&quot;&gt;index.html&lt;/a&gt;&lt;br /&gt;
    | | -&amp;gt; login.jsp&lt;br /&gt;
    | -&amp;gt; WEB-INF/&lt;br /&gt;
    | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/WEB-INF/web.xml&quot;&gt;web.xml&lt;/a&gt;&lt;br /&gt;
    | | -&amp;gt; lib/&lt;br /&gt;
    | | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/WEB-INF/lib/jstl-1.2.jar&quot;&gt;jstl-1.2.jar&lt;/a&gt;&lt;br /&gt;
    | | | -&amp;gt; &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war/WEB-INF/lib/mysql-connector-java-5.1.18-bin.jar&quot;&gt;mysql-connector-java-5.1.18-bin.jar&lt;/a&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
[&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/j2ee_war.zip&quot;&gt;j2ee_war.zip&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;NOTE&lt;/strong&gt;:&lt;br /&gt;
1) The libraries in the &amp;quot;war-no-include&amp;quot; directory need to be in the build
class path when compiling beans and servlets, but should not be in the deployed war
as the servlet container provides its own version of these libraries. This is
taken care of in the included &lt;a href=&quot;http://en.wikipedia.org/wiki/Apache_Ant&quot;&gt;ant&lt;/a&gt;
build.xml file.&lt;br /&gt;
2) The &amp;quot;jstl-1.2.jar&amp;quot; library (for JSTL support) contains both the API
and implementation. See &lt;a href=&quot;http://stackoverflow.com/a/8045562&quot;&gt;BalusC's
    response to javax.servlet.ServletException: java.lang.NoClassDefFoundError:
    javax/servlet/jsp/jstl/core/ConditionalTagSupport&lt;/a&gt;.
</content>
    </entry>
    
    <entry>
        <title>free Internet access at The Westin</title>
        <link href="http://vraidsys.com/2011/12/free-internet-access-at-the-westin/" />
        <updated>2011-12-21T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2011/12/free-internet-access-at-the-westin/</id>
        <content type="html">It was rather unexpected to have to pay extra for Internet access at a hotel, especially The Westin, being all expensive and whatnot.
In the end I payed out, well the company who was paying for me payed out ($15 for 24 hrs?!?!), but had I set up a few things
before getting there, there would have been no need to pay.&lt;br /&gt;
&lt;br /&gt;
I stayed at &lt;a href=&quot;http://www.starwoodhotels.com/westin/property/overview/index.html?propertyID=1555&quot;&gt;The Westin Bellevue&lt;/a&gt;, and
would assume that many other &lt;em&gt;Starwood Hotels and Resorts&lt;/em&gt; locations must employ similar captive portal filtering. At
this particular Westin location there were three wireless networks: WestinLobby, WestinMeetingRooms, WestingGuestRooms. They
all employed the same captive portal filtering based on hostnames.&lt;br /&gt;
&lt;br /&gt;
Attempting to ICMP ECHO (ping) &lt;em&gt;vraidsys.com&lt;/em&gt; would fail, but pinging &lt;em&gt;starwoodhotels.com.vraidsys.com&lt;/em&gt; worked.
Similarly an HTTP GET request to &lt;em&gt;mail.zerbe.biz&lt;/em&gt; would fail, but &lt;em&gt;starwoodhotels.com.zerbe.biz&lt;/em&gt; worked. If only
I had an SSH host for tunneling with a &quot;valid&quot; hostname, then there would have been no need to pay for this extortion.
</content>
    </entry>
    
    <entry>
        <title>FreeNAS 7 CIFS lower Buffer Size and 802.11g</title>
        <link href="http://vraidsys.com/2011/12/freenas-7-cifs-lower-buffer-size-and-802-11g/" />
        <updated>2011-12-19T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2011/12/freenas-7-cifs-lower-buffer-size-and-802-11g/</id>
        <content type="html">I was streaming mp3's from my FreeNAS 7 fileserver over CIFS the other day to a &lt;a href=&quot;https://github.com/jzerbe/MusicZones&quot;&gt;MusicZones&lt;/a&gt;
zone controller and every two minutes or so there would be a break in the audio, but not when I was pulling Internet radio directly to the
zone. Mind you this was over 802.11g, and there was no EM interference. Interestingly, my wired zone controllers which are on standard
100Mbps Ethernet over CAT5 do not experience these audio breaks.&lt;br /&gt;
&lt;br /&gt;
Turns out lowering the &quot;Send Buffer Size&quot; and the &quot;Receive Buffer Size&quot; from the default 64240, to 8192 did the trick. Inspired by
looking at &lt;a href=&quot;http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=46&amp;t=17#p45&quot;&gt;old FreeNAS and Openfiler smb.conf files&lt;/a&gt;.
</content>
    </entry>
    
    <entry>
        <title>automatic MCC and MNC detection using Motorola J2ME enabled cellphone [GSM]</title>
        <link href="http://vraidsys.com/2011/11/automatic-mcc-and-mnc-detection-using-motorola-j2me-enabled-cellphone-gsm/" />
        <updated>2011-11-21T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2011/11/automatic-mcc-and-mnc-detection-using-motorola-j2me-enabled-cellphone-gsm/</id>
        <content type="html">Been playing around with the &lt;abbr title=&quot;Access Point Name&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Access_Point_Name&quot;&gt;APN&lt;/a&gt;&lt;/abbr&gt;
settings on my Qualcomm Android dev phone. I wanted to make sure I had the right &lt;abbr title=&quot;Mobile Country Code&quot;&gt;MCC&lt;/abbr&gt;
and &lt;abbr title=&quot;Mobile Network Code&quot;&gt;MNC&lt;/abbr&gt;, since I knew I had the correct network id.&lt;br /&gt;
&lt;br /&gt;
I threw together a J2ME app, &lt;i&gt;&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_hacks/MotorolaCellInfo.jar&quot; rel=&quot;nofollow&quot;&gt;MotorolaCellInfo.jar&lt;/a&gt;&lt;/i&gt;,
that detects these values from my SIM card when I use it in my Motorola phone. This uses functionality that is only guaranteed
to work on Motorola devices. For more, please see the source I used:
&lt;i&gt;&lt;a href=&quot;http://ajay-mobileappdev.blogspot.com/2008/05/getiing-network-information-without-gps.html&quot; rel=&quot;nofollow&quot;&gt;Getiing Location Information (IMEI,MCC,MNC,LAC,CELLID) without GPS&lt;/a&gt;&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
If you are the hacker type, check out the NetBeans project+source [&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_hacks/MotorolaCellInfo.zip&quot; rel=&quot;nofollow&quot;&gt;zip&lt;/a&gt;].
</content>
    </entry>
    
    <entry>
        <title>Snapdragon 8655 MDP adb and fastboot setup on WinXP</title>
        <link href="http://vraidsys.com/2011/11/snapdragon-8655-mdp-adb-and-fastboot-setup-on-winxp/" />
        <updated>2011-11-01T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/11/snapdragon-8655-mdp-adb-and-fastboot-setup-on-winxp/</id>
        <content type="html">I finally found the full developer specs on my 8655 MDP
(&lt;a href=&quot;http://store.bsquare.com/doc_library/docs/Snapdragon_8655_MDP_UG_rev2_0_Final_122310.pdf&quot;&gt;BSQUARE&lt;/a&gt;)
(&lt;a href=&quot;http://dl.dropbox.com/u/44649188/SnapDragon%20MSM8655%20MDP/Snapdragon_8655_MDP_UG_rev2_0_Final_122310.pdf&quot;&gt;mirror&lt;/a&gt;),
along with the USB driver installation instructions (&lt;a href=&quot;http://store.bsquare.com/doc_library/docs/App_Note_Installing_USB_driver_on_Windows.pdf&quot;&gt;BSQUARE&lt;/a&gt;)
(&lt;a href=&quot;http://dl.dropbox.com/u/44649188/SnapDragon%20MSM8655%20MDP/App_Note_Installing_USB_driver_on_Windows.pdf&quot;&gt;mirror&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
The USB driver installation instructions that BSQUARE published are rather out-of-date for working with version 15
of the Android SDK. This documents my current driver setup on my 32-bit Windows XP machine.
&lt;ol&gt;
    &lt;li&gt;&lt;a href=&quot;http://developer.android.com/sdk/&quot;&gt;Download and Install the Android SDK&lt;/a&gt; (v15 at time of writing)&lt;/li&gt;
    &lt;li&gt;Start up the SDK Manager GUI (pop open the Tool -&amp;gt; Options menu and select &quot;force https source to be
        fetched over http&quot;, had some weird errors otherwise) and install: Tools -&amp;gt; Android SDK Tools, Tools -&amp;gt;
        Android SDK Platform-tools, Extras -&amp;gt; Google USB Driver package&lt;/li&gt;
    &lt;li&gt;After the odiously slow process finishes, copy &lt;code&gt;[Android SDK Root]\extras\google\usb_driver&lt;/code&gt; to
        &lt;code&gt;[Android SDK Root]\msm8655-mdp_usb_driver&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;Open up the &lt;code&gt;android_winusb.inf&lt;/code&gt; (inside of the newly created directory) file in Notepad or
        other non-format appending text editor. Clear out the contents of the &lt;code&gt;[Google.NTx86]&lt;/code&gt; and
        &lt;code&gt;[Google.NTamd64]&lt;/code&gt; paragraphs so that they just contain the following:
        &lt;blockquote&gt;&lt;code&gt;[Google.NTx86]&lt;br /&gt;
                ;BSQUARE MDP8655&lt;br /&gt;
                %SingleAdbInterface% = USB_Install, USB\VID_0956&amp;amp;PID_9025&amp;amp;MI_00&lt;br /&gt;
                %CompositeAdbInterface% = USB_Install, USB\VID_0956&amp;amp;PID_9025&amp;amp;MI_01&lt;br /&gt;
                %SingleBootLoaderInterface% = USB_Install, USB\VID_0956&amp;amp;PID_9025&amp;amp;MI_02&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;[Google.NTamd64]&lt;br /&gt;
                ;BSQUARE MDP8655&lt;br /&gt;
                %SingleAdbInterface% = USB_Install, USB\VID_0956&amp;amp;PID_9025&amp;amp;MI_00&lt;br /&gt;
                %CompositeAdbInterface% = USB_Install, USB\VID_0956&amp;amp;PID_9025&amp;amp;MI_01&lt;br /&gt;
                %SingleBootLoaderInterface% = USB_Install, USB\VID_0956&amp;amp;PID_9025&amp;amp;MI_02&lt;/code&gt;&lt;/blockquote&gt;
    &lt;/li&gt;
    &lt;li&gt;Create and/or open the &lt;code&gt;C:\Documents and Settings\[your username]\.android\adb_usb.ini&lt;/code&gt;
        file and make sure it just contains the hex string: &lt;code&gt;0x0956&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;Power on your device and connect it to your development machine. Be sure to point Windows to
        your newly created USB driver directory for your MSM8655. If Windows is unable to find the needed driver(s),
        point the dirver search to the original USB driver located in &lt;code&gt;[Android SDK Root]\extras\google\usb_driver&lt;/code&gt;.
        If Windows still does not find the necessary driver just hit finish and go without. This seemed to be the case when
        I rebooted into the bootloader on some occasions.&lt;/li&gt;
    &lt;li&gt;Restart the SDK and see if your device is connected - &lt;code&gt;[Android SDK Root]\platform-tools\adb.exe devices&lt;/code&gt; -
        should spit out &quot;&lt;code&gt;1234567890ABCDEF device&lt;/code&gt;&quot;.&lt;/li&gt;
    &lt;li&gt;For a working fastboot binary for flashing, one can grab a fresh copy from the android-roms project
        [&lt;a href=&quot;http://code.google.com/p/android-roms/downloads/detail?name=fastboot-win32.zip&quot;&gt;info&lt;/a&gt;] or the one I used for
        this tutorial from my dropbox [&lt;a href=&quot;http://dl.dropbox.com/u/44649188/android_windows-dev/fastboot-win32.zip&quot;&gt;link&lt;/a&gt;].
        Once you download: unzip and move the .exe to &lt;code&gt;[Android SDK Root]\platform-tools\&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
    
    <entry>
        <title>T-Mobile WAP APN settings</title>
        <link href="http://vraidsys.com/2011/10/t-mobile-wap-apn-settings/" />
        <updated>2011-10-31T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/10/t-mobile-wap-apn-settings/</id>
        <content type="html">I have been playing around with my new Android 2.2.1 dev phone, trying to port over the free webaccess I am
able to get on my old Motorola J2ME feature-phones (Razr V3r, V195s).&lt;br /&gt;
&lt;br /&gt;
Interesting that these two devices have slightly different APN settings. Able to mess around with these settings
after using P2KCommander v6 to modify the seem to show the &quot;Web Sessions&quot; menu and allow setting the default session.&lt;br /&gt;
&lt;br /&gt;
On my V195s:
&lt;blockquote&gt;&lt;code&gt;Name: t-zones&lt;br /&gt;
        Homepage: http://wap.myvoicestream.com&lt;br /&gt;
        Service Type 1: HTTP&lt;br /&gt;
        Proxy 1: 216.155.165.050&lt;br /&gt;
        Port 1: 8080&lt;br /&gt;
        Domain 1: [empty]&lt;br /&gt;
        Service Type 2: WAP&lt;br /&gt;
        Proxy 2: 216.155.165.050&lt;br /&gt;
        Port 2: 9201&lt;br /&gt;
        Domain 2: [empty]&lt;br /&gt;
        DNS 1: 000.000.000.000&lt;br /&gt;
        DNS 2: 000.000.000.000&lt;br /&gt;
        Timeout: 5 minutes&lt;br /&gt;
        CSD No. 1: [empty]&lt;br /&gt;
        User Name 1: [empty]&lt;br /&gt;
        Password 1: [empty]&lt;br /&gt;
        Speed (Bps) 1: 9600&lt;br /&gt;
        Line Type 1: ISDN&lt;br /&gt;
        CSD No. 1: [empty]&lt;br /&gt;
        User Name 2: [empty]&lt;br /&gt;
        Password 2: [empty]&lt;br /&gt;
        Speed (Bps) 2: 9600&lt;br /&gt;
        Line Type 2: ISDN&lt;br /&gt;
        GPRS APN: wap.voicestream.com&lt;br /&gt;
        User Name: motV190&lt;br /&gt;
        Password: motV190&lt;/code&gt;&lt;/blockquote&gt;
On my Razr V3r everything else is the same except for the username and password:
&lt;blockquote&gt;&lt;code&gt;User Name: motV3&lt;br /&gt;
        Password: motV3&lt;/code&gt;&lt;/blockquote&gt;
And from the &lt;a href=&quot;http://vraidsys.com/2011/11/automatic-mcc-and-mnc-detection-using-motorola-j2me-enabled-cellphone-gsm/&quot; title=&quot;automatic MCC and MNC detection using Motorola J2ME enabled cellphone [GSM]&quot;&gt;automatic MCC and MNC detection app&lt;/a&gt; I made:
&lt;blockquote&gt;&lt;code&gt;MCC = 310, MNC = 260&lt;/code&gt;&lt;/blockquote&gt;
I am able to enter all these values into the APN settings on my smartphone, but last time I tried to connect the
settings were erased. I suppose I will need to do some setprop shenanigans to re-enter the settings once the
T-Mobile tower erases them.
</content>
    </entry>
    
    <entry>
        <title>modifying Opera Mini for Android</title>
        <link href="http://vraidsys.com/2011/10/modifying-opera-mini-for-android/" />
        <updated>2011-10-24T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/10/modifying-opera-mini-for-android/</id>
        <content type="html">&lt;strong&gt;NOTE&lt;/strong&gt;: For the moment I do &lt;strong&gt;NOT&lt;/strong&gt; have free mobile web-access using this method.
I am trying to get this to function on T-Mobile's network with Android 2.2.1 with a valid
&lt;a href=&quot;http://prepaid-phones.t-mobile.com/pay-as-you-go-plans&quot;&gt;pay-as-you-go&lt;/a&gt; SIM card in a similar way to my previous
&lt;a title=&quot;Opera Mini v4 patched for free web access&quot; href=&quot;http://vraidsys.com/2011/01/opera-mini-v4-patched-for-free-web-access/&quot;&gt;J2ME Opera Mini v4 patching walk through&lt;/a&gt;.
I am pretty sure it has something to do with the APN settings. Download the
&lt;a href=&quot;http://dl.dropbox.com/u/44649188/android_apps/Opera_Mini_6_5_Android.apk&quot;&gt;modded Opera Mini APK here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Ingredients:
&lt;ul&gt;
    &lt;li&gt;recent &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/index.html&quot;&gt;Java SE JDK&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://code.google.com/p/android-apktool/downloads/list&quot;&gt;android-apktool&lt;/a&gt; - apktool*.tar.bz2, and apktool-install-[platform]-*.tar.bz2&lt;/li&gt;
&lt;/ul&gt;
I will be performing this process from a Windows XP x64 (Windows Server 2003 based) laptop. If you are following
along from a Windows (XP+) computer, you can use my prepackaged
&lt;a href=&quot;http://dl.dropbox.com/u/44649188/android_windows-dev/apktool.zip&quot;&gt;apktool.zip&lt;/a&gt; archive.&lt;br /&gt;
&lt;br /&gt;
Process:
&lt;ul&gt;
    &lt;li&gt;Put the &lt;a href=&quot;http://www.opera.com/mobile/download/versions/&quot;&gt;Opera Mini&lt;/a&gt; .apk into your apktool
        directory (contains apktool.jar and platform specific files).&lt;/li&gt;
    &lt;li&gt;Open up a terminal/command prompt and run: &lt;code&gt;apktool d Opera_Mini_6_5_Android.apk&lt;/code&gt; (or whatever version of Opera Mini you are using)&lt;/li&gt;
    &lt;li&gt;After the command finishes successfully, you should have a new directory filled with all the
        decompiled assets. Use your favorite IDE or awk/grep/sed (like a boss) to change all the relevant
        hardcoded URLs in the source files: &quot;mini5.opera-mini.net&quot; to &quot;tmobile.vraidsys.com&quot; and
        &quot;mini5resource.opera-mini.net&quot; to &quot;tmobile-resrc5m.vraidsys.com&quot;. I also had to create a &quot;tmobile-1.vraidsys.com&quot; CNAME pointing
        to &quot;mini5.opera-mini.net&quot;. I tried a few different hostname lengths, and got it working with same sized hostnames
        ... give it a try with different ones if you are feeling adventurous? As long as your CNAMEs point to the right stuff.&lt;/li&gt;
    &lt;li&gt;recompile everything by running: &lt;code&gt;apktool b Opera_Mini_6_5_Android&lt;/code&gt; (substitute for your decompiled root directory)&lt;/li&gt;
    &lt;li&gt;Finally we will need to sign the apk for installation to an Android device. a) generate a release key
        (keep it safe, this one will last for 30 years): &lt;code&gt;&quot;C:\Program Files\Java\jdk1.6.0_25\bin\keytool.exe&quot;
            -genkey -v -keystore my-release-key.keystore -alias opera-mini -keyalg RSA -keysize 2048 -validity 10950&lt;/code&gt; b)
        sign the apk: &lt;code&gt;&quot;C:\Program Files\Java\jdk1.6.0_25\bin\jarsigner.exe&quot; -verbose -keystore my-release-key.keystore
            Opera_Mini_6_5_Android\dist\Opera_Mini_6_5_Android.apk opera-mini&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
For more information on using the android-apktool suite, please see
&lt;em&gt;&lt;a href=&quot;http://www.miui-au.com/add-ons/apktool/&quot;&gt;Use APKTool to Decompile, Edit, Translate and Recompile an APK&lt;/a&gt;&lt;/em&gt;.
</content>
    </entry>
    
    <entry>
        <title>Android 2.2.1 (custom) rooting and DNS not resolving</title>
        <link href="http://vraidsys.com/2011/10/android-2-2-1-custom-rooting-and-dns-not-resolving/" />
        <updated>2011-10-08T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/10/android-2-2-1-custom-rooting-and-dns-not-resolving/</id>
        <content type="html">I finally caved and bought an Android &amp;quot;smartphone&amp;quot; for $87 (including shipping) last week.
Was it a good purchase? Perhaps. I suppose it was inevitable, as I work on webapps targeting both iOS
and Android 2.X+ devices. I bought a &amp;quot;Qualcomm Snapdragon Mobile Development Platform&amp;quot;
(&lt;a title=&quot;Qualcomm Snapdragon Mobile Development Platform&quot; href=&quot;http://www.cnx-software.com/2011/01/21/qualcomm-snapdragon-mobile-development-platform-available/&quot;&gt;more info&lt;/a&gt;)
from a bloke off of eBay; probably cost him more than $87 (closer to $500+).&lt;br /&gt;
&lt;br /&gt;
Unfortunately this device had not been rooted, nor were there any DNS servers set when I connected to my home 802.11g
home network. ALSO: Android Marketplace is not installed, so had to grab all the .apks from non-standard channels.
Not sure if the previous owner screwed this up or what?&lt;br /&gt;
&lt;br /&gt;
What needed to get done:&lt;br /&gt;
1) get root access to phone to set DNS servers&lt;br /&gt;
2) automate process of setting DNS servers when connecting to Wi-Fi networks&lt;br /&gt;
3) download some apps and updates&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;rooting the phone&lt;/strong&gt;&lt;br /&gt;
Since I was able to access direct IPv4 addresses, what I did was upload my various .apk files to my LAN
webserver (http://192.168.x.x/...) and download them to my device. Bluetooth-to-Bluetooth connection would not let my
transfer .apk's. Android 2.2.1 is allegedly just for patching up rooted devices, and allegedly one has to downgrade
to 2.2 to root. But I had success by 1) installing &lt;a href=&quot;http://blog.23corner.com/tag/universalandroot/&quot;&gt;Universal Androot&lt;/a&gt;
1.6.2 beta 5 (&lt;a href=&quot;http://dl.dropbox.com/u/44649188/android_apps/rooting/UniversalAndroot-1.6.2-beta5.apk&quot;&gt;local mirror&lt;/a&gt;)
(&lt;a title=&quot;Varun's ScratchPad: One-Click root for Nexus One&quot; href=&quot;http://blog.varunkumar.me/2010/08/one-click-root-for-nexus-one.html&quot;&gt;screen shots and more info&lt;/a&gt;)
and attempting to root and it failing (I removed the Universal Androot after and kept the bundled SuperUser app which is handy)
and then 2) installing z4root (&lt;a href=&quot;http://dl.dropbox.com/u/44649188/android_apps/rooting/z4root.apk&quot;&gt;local mirror&lt;/a&gt;)
(&lt;a title=&quot;z4root - xda-developers&quot; href=&quot;http://forum.xda-developers.com/showthread.php?t=833953&quot;&gt;screen shots and more info&lt;/a&gt;)
and successfully &quot;rooting&quot; in that order.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;automating DNS resolver (background)&lt;/strong&gt;&lt;br /&gt;
Admittedly this solution is rather hackish, but since I do not have access to the Android Marketplace I cannot
get the slick DNS settings apps like &lt;a href=&quot;https://market.android.com/details?id=uk.co.mytechie.setDNS&amp;amp;hl=en&quot;&gt;mytechie's SetDNS utility&lt;/a&gt;.
Also, if you do not have access to a terminal emulator of some kind, this solution might not be for you. If you want something more
stable or want more information see the article on &lt;a href=&quot;http://blog.varunkumar.me/2010/09/how-to-change-dns-server-of-3g.html&quot;&gt;Varun's ScratchPad called &lt;em&gt;Change the DNS server of 3G connection on Android phones&lt;/em&gt;&lt;/a&gt;.
My pay-as-you go T-Mobile service has no problem setting my device's DNS servers when I access their
&lt;a href=&quot;http://en.wikipedia.org/wiki/Enhanced_Data_Rates_for_GSM_Evolution&quot;&gt;Edge network&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;automating DNS resolver (setup)&lt;/strong&gt;&lt;br /&gt;
Open up the Terminal Emulator's startup commands, you might already see something like &quot;export $PATH ...&quot;. Put a semi-colon at the end
of the line if there is not already one and append the following:
&lt;blockquote&gt;&lt;code&gt;su -c &quot;setprop net.dns1 208.67.222.222&quot;; su -c &quot;setprop net.dns2 208.67.220.220&quot;;&lt;/code&gt;&lt;/blockquote&gt;
So whenever you open up your terminal emulator application, it should automatically set your DNS resolvers to
&lt;a href=&quot;http://www.opendns.com/&quot;&gt;OpenDNS&lt;/a&gt;'s servers. On my own device I put in the first resolver address as one of my
university's DNS resolvers, as they have internal addresses for authenticating devices when you connect to their 802.11b/g/n mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;some other apps&lt;/strong&gt;&lt;br /&gt;
1) Flash 10.1 - The .apk should work on any Android 2.2 phone [&lt;a href=&quot;http://dl.dropbox.com/u/44649188/android_apps/com.adobe.flashplayer-10-1.apk&quot;&gt;local mirror&lt;/a&gt;]
[&lt;a href=&quot;http://www.droid-life.com/2010/08/23/download-official-flash-10-1-v10-1-92-8-for-froyo-now/&quot;&gt;source information&lt;/a&gt;]&lt;br /&gt;
2) Attempting to get the Android Market 2.2.6 working - &lt;a href=&quot;http://forum.xda-developers.com/showthread.php?t=872526&quot;&gt;[NEW GAPPS.ZIP &amp;amp; APK]
    New Android Market [2.2.6] for G1(Android 2.1&amp;amp;2.2)[16/12/2010]&lt;/a&gt; - xda-developers.com - &lt;em&gt;Comments: I did not have much luck with this&lt;/em&gt;&lt;br /&gt;
3) rootexplorer_2.13.3.apk - [&lt;a href=&quot;http://dl.dropbox.com/u/44649188/android_apps/rootexplorer_2.13.3.apk&quot;&gt;local mirror&lt;/a&gt;] - great root file browsing app
</content>
    </entry>
    
    <entry>
        <title>setup adium (1.4.2) to auto join google group chat</title>
        <link href="http://vraidsys.com/2011/07/setup-adium-1-4-2-to-auto-join-google-group-chat/" />
        <updated>2011-07-19T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/07/setup-adium-1-4-2-to-auto-join-google-group-chat/</id>
        <content type="html">I tested this process on &lt;a href=&quot;http://www.adium.im/&quot; target=&quot;_blank&quot;&gt;Adium&lt;/a&gt; 1.4.2 on my Mac Pro workstation running OSX 10.6 (at work).
&lt;ol&gt;
    &lt;li&gt;Have open the Google Group Chat (tab) you want to auto join in the future&lt;/li&gt;
    &lt;li&gt;In the menu bar: &lt;strong&gt;Contact -&amp;gt; Add Group Chat Bookmark&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;Open up Adium's contact list, right-click/control-click the new Group Chat &quot;Contact&quot;, and click &lt;strong&gt;Get Info&lt;/strong&gt; in the new menu&lt;/li&gt;
    &lt;li&gt;In the new Get Info window that is brought up, click the &lt;strong&gt;Advanced&lt;/strong&gt; tab
        (its the last tab with a chalkboard icon), and select the check box: &lt;strong&gt;Automatically join on connect&lt;/strong&gt;&lt;br /&gt;
        &lt;br /&gt;
        &lt;img class=&quot;alignnone&quot; title=&quot;auto join a google group chat from bookmark&quot; src=&quot;http://dl.dropbox.com/u/44649188/blog_includes/article-includes/auto-join-group-bkmark-adium.png&quot; alt=&quot;&quot; width=&quot;294&quot; height=&quot;448&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
    
    <entry>
        <title>ubuntu (11.04) alternate install over local network</title>
        <link href="http://vraidsys.com/2011/07/ubuntu-11-04-alternate-install-over-local-network/" />
        <updated>2011-07-14T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/07/ubuntu-11-04-alternate-install-over-local-network/</id>
        <content type="html">Digging through the Ubuntu help docs, specifically &quot;&lt;a href=&quot;https://help.ubuntu.com/community/Installation/LocalNet&quot;&gt;InstallationLocalNet&lt;/a&gt;&quot;,
today was rather frustrating. There was not one specific (modern) way given, in said documentation: they illustrated using
&lt;a href=&quot;http://en.wikipedia.org/wiki/Bootstrap_Protocol&quot;&gt;BOOTP&lt;/a&gt;?!?! That said, time to make this work using (i)PXE.&lt;br /&gt;
&lt;br /&gt;
The ubuntu alternate install discs do not have the &lt;a href=&quot;http://www.linuxcertif.com/man/7/casper/&quot;&gt;casper live system&lt;/a&gt;
which allows for the disc files to be pulled over NFS or CIFS (Samba). Although, with the existing preseed framework
(extended from Ubuntu's parent, Debian), one can pull from a local network package repository (the expanded disc image files).&lt;br /&gt;
&lt;br /&gt;
I use &lt;a title=&quot;network boot without a proper DHCP setup for PXE&quot; href=&quot;http://vraidsys.com/2011/06/network-boot-without-a-proper-dhcp-setup-for-pxe/&quot;&gt;iPXE for various reasons&lt;/a&gt;,
instead of the generic PXE setup involving TFTP and a complicit DHCP server, which is able to use HTTP and DHCP itself
without the niceties of a LAN where you have access to the DHCP boot options.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;my iPXE boot options for ubuntu studio 11.04:&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;kernel ubuntustudio-11.04-alternate-i386/install/netboot/ubuntu-installer/i386/linux&lt;/code&gt;&lt;br /&gt;
    &lt;code&gt;initrd ubuntustudio-11.04-alternate-i386/install/netboot/ubuntu-installer/i386/initrd.gz&lt;/code&gt;&lt;br /&gt;
    &lt;code&gt;imgargs linux append auto url=http://&amp;lt;?php echo $server_ip; ?&amp;gt;/tftp/boot/preseed_ubuntustudio.cfg
        language=en country=US console-keymaps-at/keymap=us keyboard-configuration/xkb-keymap=us
        keyboard-configuration/layoutcode=us console-setup/ask_detect=false --&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;strong&gt;contents of my custom preseed_ubuntustudio.cfg:&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;#Debian 6 options&lt;br /&gt;
        d-i debian-installer/locale string en_US&lt;br /&gt;
        d-i console-keymaps-at/keymap select us&lt;br /&gt;
        d-i keyboard-configuration/xkb-keymap select us&lt;br /&gt;
        d-i netcfg/choose_interface select auto&lt;br /&gt;
        &lt;br /&gt;
        #Ubuntu Natty specific options&lt;/code&gt;&lt;br /&gt;
    &lt;code&gt;# ubuntustudio.seed linked from ubuntustudio-11.04-alternate-i386/preseed/ubuntustudio.seed&lt;br /&gt;
        d-i preseed/include string ubuntustudio.seed&lt;br /&gt;
        # Installation source&lt;br /&gt;
        d-i mirror/country string manual&lt;br /&gt;
        # hostname This is whatever HTTP server you have set up.&lt;br /&gt;
        d-i mirror/http/hostname string bigboy&lt;br /&gt;
        # This is the /ubuntu directory from the install CD copied (or linked) under the webroot of your HTTP server.
        Must be &quot;/ubuntu&quot; otherwise this will not work.&lt;br /&gt;
        d-i mirror/http/directory string /ubuntu&lt;br /&gt;
        # Name your ubuntu version here&lt;br /&gt;
        d-i mirror/suite string natty&lt;br /&gt;
        # no proxy&lt;br /&gt;
        d-i mirror/http/proxy string&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
I am able to use the above after extracting the contents of the &lt;a href=&quot;http://ubuntustudio.org/downloads&quot;&gt;ubuntustudio 11.04 iso&lt;/a&gt;
to a location (the ubuntustudio-11.04-alternate-i386 directory) on my fileserver accessible from my HTTP server. Now I am able
to do an entirely network based boot from the contents of the ubuntu alternate disc.
</content>
    </entry>
    
    <entry>
        <title>mod_expires on apache2</title>
        <link href="http://vraidsys.com/2011/06/mod_expires-on-apache2/" />
        <updated>2011-06-14T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/06/mod_expires-on-apache2/</id>
        <content type="html">While I was updating the VM that hosts this and several other websites, I decided to give
&lt;a href=&quot;http://httpd.apache.org/docs/2.0/mod/mod_expires.html&quot;&gt;mod_expires (for apache)&lt;/a&gt; a try.
According to &lt;a href=&quot;http://pagespeed.googlelabs.com/&quot;&gt;Google's &quot;Page Speed Online&quot;&lt;/a&gt; for automated page-load speed
testing (analyzes for both Desktop and Mobile devices), I just needed to minify my JS &amp;amp; CSS, and start using the
&lt;a href=&quot;http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html&quot;&gt;Expires HTTP header&lt;/a&gt; on my HTTP server to see
increased page load times for my visitors (and less load per user).&lt;br /&gt;
&lt;br /&gt;
Fixed with two things:
&lt;ol&gt;
    &lt;li&gt;Following &quot;&lt;a href=&quot;http://www.howtoforge.com/make-browsers-cache-static-files-with-mod_expires-on-apache2-debian-squeeze&quot;&gt;Make Browsers Cache Static Files With mod_expires On Apache2 (Debian Squeeze)&lt;/a&gt;&quot;,
        which essentially comes down to &lt;code&gt;a2enmod expires&lt;/code&gt; and fragments for various mime-types, such as:
        &lt;code&gt;ExpiresByType image/jpg &quot;access plus 60 days&quot;&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;installing the &lt;a href=&quot;http://wordpress.org/extend/plugins/wp-minify/installation/&quot;&gt;WP Minify plugin&lt;/a&gt;
        which automates the compression and combining of served JS &amp;amp; CSS&lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
    
    <entry>
        <title>network boot without a proper DHCP setup for PXE</title>
        <link href="http://vraidsys.com/2011/06/network-boot-without-a-proper-dhcp-setup-for-pxe/" />
        <updated>2011-06-08T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/06/network-boot-without-a-proper-dhcp-setup-for-pxe/</id>
        <content type="html">Now that we are running &lt;a href=&quot;http://www.clear.com/&quot;&gt;Clear&lt;/a&gt; [&lt;a href=&quot;https://twitter.com/#!/jasonzerbe/status/76660043583455232&quot;&gt;6-13Mbps down&lt;/a&gt;
/ 1Mbps up + (unlimited North America) VoIP @ $60/month] for our home connection instead of &lt;a href=&quot;http://www.qwest.com/&quot;&gt;Qwest&lt;/a&gt;
[1.2 Mbps down / 0.8 Mbps up + Local Phone @ $55/month], I no longer have the niceties of an
&lt;a href=&quot;http://vraidsys.com/2010/03/qwest-actiontec-gt701-wg-ppoe-openwrt/&quot;&gt;Actiontec GT701-WG running OpenWRT&lt;/a&gt;, and I really don't
want to do too much &lt;a href=&quot;http://code.google.com/p/wimax-hacking/wiki/WIXB175MiscNotes&quot;&gt;modding to our (Clear) WIXB175 WiMax gateway&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I needed an alternative to the slickness of a network-wide PXE setup. Most of my machines are older and their NICs don't have built-in
support for PXE, so I was already throwing floppies in or booting from small flash drives. Thus, I had essentially the same process to
go from zero to a sweet CentOS or Debian install. The following is how I have my local file-server configured:
&lt;ol&gt;
    &lt;li&gt;Make your previous tftp directory accessible over HTTP and said HTTP server should be able to run php scripts.
        I currently have nginx and lighttpd's spawn-fcgi being overseen by supervisor, very similar to
        &lt;a href=&quot;http://agiletesting.blogspot.com/2010/06/setting-up-php5fastcgi-with-nginx.html&quot;&gt;Grig Gheorghiu's &quot;Setting up PHP5/FastCGI with nginx&quot;&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Throw up a php script in the same directory as where your pxelinux.0 is located. Check out my
        &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/article-includes/ipxe_boot.php.txt&quot;&gt;example ipxe_boot&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Create a custom .ipxe boot script for adding into your iPXE boot image. For more on
        &lt;a href=&quot;http://ipxe.org/scripting&quot;&gt;scripting with iPXE&lt;/a&gt;; also take a look at my current
        &lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/article-includes/custom.ipxe&quot;&gt;custom.ipxe script&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Grab a copy [&lt;a href=&quot;http://ipxe.org/download&quot;&gt;download/build info page&lt;/a&gt;] of the source code from
        git and build it with your custom .ipxe file attached.
        &lt;blockquote&gt;&lt;code&gt;git clone git://git.ipxe.org/ipxe.git&lt;br /&gt;
                cd ipxe/src&lt;/code&gt;&lt;br /&gt;
            &lt;br /&gt;
            Bootable floopy disk:&lt;br /&gt;
            &lt;code&gt;make bin/ipxe.dsk EMBEDDED_IMAGE=../../custom.ipxe&lt;br /&gt;
                cat bin/ipxe.dsk &amp;gt; /dev/fd0&lt;/code&gt;&lt;br /&gt;
            &lt;br /&gt;
            Bootable usb PXE replacement:&lt;br /&gt;
            &lt;code&gt;make bin/ipxe.usb EMBEDDED_IMAGE=../../custom.ipxe&lt;br /&gt;
                dd if=bin/ipxe.usb of=/dev/sdb&lt;/code&gt;&lt;/blockquote&gt;
    &lt;/li&gt;
&lt;/ol&gt;
Do be sure that your usb drive is actually /dev/sdb!
</content>
    </entry>
    
    <entry>
        <title>Netbeans 7.0 Python support</title>
        <link href="http://vraidsys.com/2011/05/netbeans-7-0-python-support/" />
        <updated>2011-05-22T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/05/netbeans-7-0-python-support/</id>
        <content type="html">Upgrading to Netbeans 7.0 had a bunch of perks, my personal favorites being: the faster cold and warm start-up times,
Git support, and (what seems like) faster C++ library refresh/load times. The down-side to this update was
the lack of out-of-the-box Python support. Fortunately there is a quick fix for this.&lt;br /&gt;
&lt;br /&gt;
From Wade Chandler, in response to &quot;&lt;a href=&quot;http://forums.netbeans.org/ptopic38275.html&quot;&gt;Howto activate python in NB 7.0&lt;/a&gt;&quot; on the netbeans forums:
&lt;blockquote&gt;You can use the dev auto update center. Python seems to still work though I'm a python newbie:
    http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/nbms/updates.xml.gz&lt;/blockquote&gt;
So, from the main NetBeans IDE window menu bar:
&lt;ol&gt;
    &lt;li&gt;Tools-&amp;gt;Plugins (which opens the Plugins window)&lt;/li&gt;
    &lt;li&gt;Select the &quot;Settings&quot; tab&lt;/li&gt;
    &lt;li&gt;Hit the &quot;Add&quot; button (bottom right)&lt;/li&gt;
    &lt;li&gt;enter &quot;Last Stable Build&quot; and &quot;http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/nbms/updates.xml.gz&quot;&lt;/li&gt;
    &lt;li&gt;go back to the &quot;Updates&quot; tab and hit the &quot;Reload Catalog&quot; button&lt;/li&gt;
    &lt;li&gt;This should give you access to the latest stable build (development) plugins, which should allow you to install the Python plugins of your choosing&lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
    
    <entry>
        <title>Inspiron 1501 OS X 10.5.8 install explained</title>
        <link href="http://vraidsys.com/2011/05/inspiron-1501-os-x-10-5-8-install-explained/" />
        <updated>2011-05-19T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/05/inspiron-1501-os-x-10-5-8-install-explained/</id>
        <content type="html">&lt;a href=&quot;https://twitter.com/#!/jasonzerbe/status/59849509177524224&quot;&gt;A month ago&lt;/a&gt; I was able to successfully install
a working OSX 10.5.8 install on my Dell Inspiron 1501 for a more enjoyable development experience. Having a
bunch of scripting languages, sdks, gnu tools, all wrapped in a sexy UI makes for a lovely time. I finally
took the time to document said process. Be forewarned however that dual-booting with a Linux distribution
or Windows could make the network interfaces have issues.&lt;br /&gt;
&lt;br /&gt;
I essentially followed this guide - &lt;a href=&quot;http://sites.google.com/site/osx1501/inspiron-1501-guide/mac-os-x-leopard&quot;&gt;Installation of OS X 10.5.8&lt;/a&gt; -
to get a working system, but there are a few things left out. All the files that are mentioned (which you will need) in the
above tutorial I made local copies which you can also obtain here:
&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_hacks/osx-inspiron-1501_drivers.zip&quot;&gt;osx-inspiron-1501_drivers.zip&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Dual Booting&lt;/strong&gt;&lt;br /&gt;
I found the easiest way to get dual booting working properly with OSX and Windows XP was to 1) format the HDD
with gparted (can be found as an &lt;a href=&quot;http://gparted.sourceforge.net/livecd.php&quot;&gt;independent bootable system&lt;/a&gt;
or a componenet of many Linux distros) - create a HFS+ and NTFS partition, 2) install Windows XP, and then 3) install
OSX from your iDeneb disc (so that the Chameleon bootloader is installed properly).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Installing the Audio Driver with the Kext Helper&lt;/strong&gt;&lt;br /&gt;
What the tutorial fails to state is that: you should &lt;em&gt;not start&lt;/em&gt; the Kext Helper application by &lt;em&gt;double clicking&lt;/em&gt;,
but should instead &lt;em&gt;drag the codec text dump&lt;/em&gt; (Sigmatel9200.text) &lt;em&gt;onto the application icon&lt;/em&gt;, which will then
start the application and patch the system. See
&quot;&lt;a href=&quot;http://www.insanelymac.com/forum/lofiversion/index.php/t44972.html&quot;&gt;Linux codec dump for SigmaTel 9200 (How to do?)&lt;/a&gt;&quot;
on the insanelymac.com forum for more information on creating your own codec dump (probably not necessary as I found out the hard way).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quartz missing&lt;/strong&gt;&lt;br /&gt;
The Mac OSX &lt;a href=&quot;http://en.wikipedia.org/wiki/Quartz_(graphics_layer)&quot;&gt;Quartz (graphics layer)&lt;/a&gt; does not
work with the Inspiron 1501 hardware. Thus, several noteable visual applications do not work properly, namely VLC.
Instead of installing VLC, I was able to play many of the same files with &lt;a href=&quot;http://www.perian.org/&quot;&gt;Perian&lt;/a&gt;
installed (in conjunction with QuickTime).
</content>
    </entry>
    
    <entry>
        <title>move subversion repository when not root</title>
        <link href="http://vraidsys.com/2011/05/move-subversion-repository-when-not-root/" />
        <updated>2011-05-10T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2011/05/move-subversion-repository-when-not-root/</id>
        <content type="html">Over the course of the past semester, I built this large code-base for
&lt;a href=&quot;http://www-users.cselabs.umn.edu/classes/Spring-2011/csci3081/&quot;&gt;CS3081W&lt;/a&gt;.
The course is supposed to expose many of the kids who have never built long-term software to the process.
Seeing as how I have contract work that spans several months during the summers and personal projects that
have been ongoing for the past couple of years, this class was in the bag. The problem in all of this was that
all of our code was tied up on the CS subversion severs; not like I would have any chance at convincing the
operators to let me get in and use svndump. So here is how I pulled my code off our repository without direct
file system access to the repository in question.
&lt;ol&gt;
    &lt;li&gt;Download and install &lt;a title=&quot;see the main project page for more information&quot; href=&quot;http://rsvndump.sourceforge.net/&quot;&gt;rsvndump&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;install libapr-dev and libsvn-dev (&lt;code&gt;apt-get install libapr1-dev libsvn-dev&lt;/code&gt;)&lt;/li&gt;
            &lt;li&gt;the latest at time of writing: &lt;code&gt;wget http://prdownloads.sourceforge.net/rsvndump/rsvndump-0.5.5.tar.gz&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;do the usual &lt;code&gt;./configure&lt;/code&gt; after getting into the untar'd rsvndump archive (didn't work on cygwin)&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;make&lt;/code&gt;, then &lt;code&gt;make install&lt;/code&gt; (as root)&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;code&gt;&lt;a title=&quot;see the manpage for more&quot; href=&quot;http://rsvndump.sourceforge.net/manpage.html&quot;&gt;rsvndump&lt;/a&gt; -v -u [svn user] -p [svn pass] [url to svn repo] &amp;gt; [reponame].dump&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;Create your new subversion repository on the new host machine and import the dump
        &lt;ul&gt;
            &lt;li&gt;&lt;code&gt;svnadmin create [reponame]&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;svnadmin load [reponame] &amp;lt; [reponame].dump&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
    
    <entry>
        <title>glassfish 3.1 setup and blank j_security_check page during admin login</title>
        <link href="http://vraidsys.com/2011/03/glassfish-3-1-setup-blank-j_security_check-page-during-admin-login/" />
        <updated>2011-03-13T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2011/03/glassfish-3-1-setup-blank-j_security_check-page-during-admin-login/</id>
        <content type="html">After reading up on the basics of the &lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-jstl0211.html&quot;&gt;JSTL&lt;/a&gt;
and various other JSP stuffs, I thought it was time I run my own glassfish development server. Do note that the paths
and commands may not work exactly for your distro, this is only a log of the problem points that I hit upon while getting
&lt;a href=&quot;http://glassfish.java.net/downloads/3.1-final.html&quot;&gt;GlassFish Server Open Source Edition - 3.1 Final&lt;/a&gt; running on Debian Squeeze (6.0).&lt;br /&gt;
&lt;br /&gt;
Doing this on Debian, I was met with the usual Java + Linux hate. Had to configure apt to use the contrib and non-free packages,
just to be sure to get the most up-to-date binaries and the official Sun/Oracle JRE and JDK (&lt;code&gt;apt-get install sun-java6-jdk&lt;/code&gt;).
You also need to modify &lt;code&gt;/etc/profile&lt;/code&gt; to include the java6 binaries in your path:
&lt;blockquote&gt;...
    if [ &quot;`id -u`&quot; -eq 0 ]; then&lt;br /&gt;
    PATH=&quot;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&quot;&lt;br /&gt;
    else&lt;br /&gt;
    PATH=&quot;/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&quot;&lt;br /&gt;
    fi&lt;br /&gt;
    PATH=$PATH:/usr/lib/jvm/java-6-sun/bin&lt;br /&gt;
    export PATH&lt;br /&gt;
    ...
&lt;/blockquote&gt;
Now Debian should be cool and let you install glassfish with just a &lt;code&gt;sh glassfish-3.1-unix.sh&lt;/code&gt;.
Be sure to have &lt;strong&gt;X11 forwarding on&lt;/strong&gt; if you are running this on a remote VM like I was, as this
is the &lt;strong&gt;graphical installer&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
Once everything was installed and running I noticed that I was using the admin interface over http, well that won't
do, so I went to enable Security (using the admin domain interface). glassfish crapped its pants, giving me a blank
page &quot;j_security_check&quot; and the log files said that a user was trying to log in with blank credentials. It turns out
that you are supposed to use the shell script &lt;code&gt;glassfish/bin/asadmin&lt;/code&gt; in your glassfish3 install directory
to connect to your glassfish3 domain server instance -
&lt;code&gt;bin/asadmin --user [admin|your admin username] --passwordfiledomains/[your main domain]/config/admin-keyfile --secure=true&lt;/code&gt;
- and execute the command &quot;&lt;code&gt;enable-secure-admin&lt;/code&gt;&quot;. See the glassfish project JIRA ticket
&quot;&lt;a href=&quot;http://java.net/jira/browse/GLASSFISH-16142?page=com.atlassian.jira.plugin.system.issuetabpanels%3Achangehistory-tabpanel&quot;&gt;changing admin-listener security-enabled attribute breaks REST, GUI and cannot stop domain&lt;/a&gt;&quot;.
</content>
    </entry>
    
    <entry>
        <title>OpenWRT kamikaze with a HE IPv6 tunnel + LAN</title>
        <link href="http://vraidsys.com/2011/02/openwrt-kamikaze-radvd-6tunnel-ipv4-ipv6-lan-he-lan/" />
        <updated>2011-02-05T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2011/02/openwrt-kamikaze-radvd-6tunnel-ipv4-ipv6-lan-he-lan/</id>
        <content type="html">I finally took the time to add IPv6 support to my LAN this weekend. Still have a long way to go: need to add
AAAA records to my LAN DNS, static IPv6 host allocations, DHCPv6, etc. I ended with the desired initial rollout:
all the dual-stacked machines on my LAN getting allocated globally routable IPv6 addresses.&lt;br /&gt;
&lt;br /&gt;
Much of this is taken from the great article on OpenWRT's wiki: &lt;a href=&quot;http://wiki.openwrt.org/doc/howto/ipv6&quot;&gt;IPv6 HowTo on Backfire and later&lt;/a&gt;.
I made some specific modifications for &lt;a href=&quot;http://www.tunnelbroker.net/&quot;&gt;Hurricane Electric's free IPv6 tunnel broker service&lt;/a&gt;.
This assumes you have an OpenWRT install with SSH access and that you already have an account with HE's tunnelbroker service. I did
this on my Actiontec GT701-WG, which cannot handle OpenWRT Backfire, hence the hackish version for Kamikaze (8.09.2). On my specific
install, I also had to stop the cron, http, and ddns services to have a comfortable amount of RAM to work with during the install.
&lt;blockquote&gt;To use IPv6, we need the following modules:
    &lt;ul&gt;
        &lt;li&gt;IPv6 kernel module (always)&lt;/li&gt;
        &lt;li&gt;IPv6 routing software (always, to configure IPv6 routing)&lt;/li&gt;
        &lt;li&gt;ip6tables kernel modules (optional, if you need an IPv6 firewall)&lt;/li&gt;
        &lt;li&gt;ip6tables command-line tool (optional, to configure the IPv6 firewall)&lt;/li&gt;
    &lt;/ul&gt;
    &lt;code&gt;opkg install kmod-ipv6 radvd ip kmod-ip6tables ip6tables&lt;/code&gt;&lt;/blockquote&gt;
You are also going to want: &lt;code&gt;opkg install 6scripts 6tunnel&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
First configure your firewall to allow ICMP pings to the router. This is a security risk, but if you intend to
dynamically update your IPv4 endpoint address with HE's automated method, you are going to need to allow pings to
your OpenWRT device. Insert the following into &lt;code&gt;/etc/config/firewall&lt;/code&gt;.
&lt;blockquote&gt;&lt;code&gt;# needed for Hurricane Electric IPv6 ping probes&lt;br /&gt;
        config rule&lt;br /&gt;
        option _name    ping&lt;br /&gt;
        option src      wan&lt;br /&gt;
        option proto    ICMP&lt;br /&gt;
        option target   ACCEPT&lt;/code&gt;&lt;/blockquote&gt;
Next let's configure the &lt;code&gt;/etc/firewall.user&lt;/code&gt; script to auto-configure ip6tables for wan/br-lan devices on
start/restart/stop. [&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/article-includes/openwrt/firewall.user&quot;&gt;firewall.user script&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
Now to tie your tunnel and LAN together (such that your LAN obtains globally routable IPv6 addresses), you are going to need to
get at your &lt;a href=&quot;http://wiki.openwrt.org/doc/uci/radvd&quot;&gt;Router Advertisement (radvd) configuration&lt;/a&gt; -
&lt;code&gt;/etc/conf/radvd&lt;/code&gt; - [&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/article-includes/openwrt/radvd&quot;&gt;radvd conf file&lt;/a&gt;].
Be sure to enable radvd to start on system startup: &lt;code&gt;/etc/init.d/radvd enable&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;UPDATE February 10&lt;/strong&gt;: You are going to need to restart radvd manually each time you bring your
IPv6 tunnel up or down, so that radvd knows to broadcast either a link-local subnet or the global routed IPv6
tunnel allocated subnet.&lt;br /&gt;
&lt;br /&gt;
Finally let's configure the tunnel itself. Kind of Quentin Tarantino'd that didn't I? Anyways ...&lt;br /&gt;
Open up the 6tunnel config file - &lt;code&gt;vi /etc/config/6tunnel&lt;/code&gt; - and take a look inside. In the end you are going to want it to look like this:
&lt;blockquote&gt;&lt;code&gt;config 6tunnel&lt;br /&gt;
        option tnlifname        'he-ipv6'&lt;br /&gt;
        option remoteip4        '209.51.181.2'&lt;br /&gt;
        #option localip4         ''&lt;br /&gt;
        option localip6         '2001:470:xxxx:xxx::2/64'&lt;br /&gt;
        option remoteip6        '2001:470:xxxx:xxx::1/64'&lt;br /&gt;
        option prefix           '2001:470:xxxx:xxx::/64'&lt;br /&gt;
        option passmd5          'md5 hash of your tunnelbroker password'&lt;br /&gt;
        option userid           'UserID found on the main.php page'&lt;br /&gt;
        option tunnelid         'tunnel id number'
    &lt;/code&gt;&lt;/blockquote&gt;
First pop open your browser to the tunnelbroker.net page &quot;Tunnel Details&quot;: remoteip4 = &quot;Server IPv4 address&quot; on
said page, localip6 = &quot;Client IPv6 address&quot;, remoteip6 = &quot;Server IPv6 address&quot;, prefix = &quot;Routed /64&quot; or
&quot;Routed /48&quot; if you need something that big. localip4 will be auto-detected the customized 6tunnel init.d
script, and thus can be commented out/left blank/doesn't matter.&lt;br /&gt;
&lt;br /&gt;
The init.d file for 6tunnel [&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/article-includes/openwrt/6tunnel&quot;&gt;6tunnel init script&lt;/a&gt;]
is an amalgamation of the original init script, linux-route-2 commands as suggested by HE, and inspirations from
&lt;a href=&quot;https://forum.openwrt.org/viewtopic.php?pid=111999#p111999&quot;&gt;andyballon's post on the openwrt forums&lt;/a&gt;.
This doesn't seem to work quite properly on system startup for me, but if you want to give it a try - &lt;code&gt;/etc/init.d/6tunnel enable&lt;/code&gt; -
probably the worst that could happen is that 6tunnel times out connecting (because your ADSL/Cable link is not yet up). You might need to edit
the init script's line #6 from &lt;code&gt;ppp0&lt;/code&gt; to &lt;code&gt;eth0&lt;/code&gt; or something, whatever interface your public IPv4 address is found on.
</content>
    </entry>
    
    <entry>
        <title>Opera Mini v4 patched for free web access</title>
        <link href="http://vraidsys.com/2011/01/opera-mini-v4-patched-for-free-web-access/" />
        <updated>2011-01-06T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2011/01/opera-mini-v4-patched-for-free-web-access/</id>
        <content type="html">I just wanted to say that before any of you on AT&amp;amp;T, Verizon, Virgin, or other (excessively over-priced)
mobile transit providers get excited, that &lt;strong&gt;I have just tested this on T-Mobile&lt;/strong&gt;
(less over-priced), I'm not sure how the &quot;other guys&quot; do it, but I would be curious to know if they have a similar
opening that works by inserting keywords into URLs.&lt;br /&gt;
&lt;strong&gt;Edit July 13 2011&lt;/strong&gt;: While traveling around the Midwest this summer, I was able to continue
to get free web-access with my T-Mobile SIM while roaming on AT&amp;amp;T/Cingular (Northern Minnesota and North/South Dakota),
and Rogers Wireless (Manitoba).&lt;br /&gt;
&lt;br /&gt;
That said, this is a reasonably easy hack conceptually, but there are a few odd things that I had
no idea if they would work or not; until it worked (tested on my Motorola V195S and Razr V3).&lt;br /&gt;
&lt;strong&gt;Edit July 13 2011&lt;/strong&gt;: This process outlines creating a patched version of
&lt;a href=&quot;http://www.opera.com/mobile/&quot;&gt;Opera Mini&lt;/a&gt; for &lt;em&gt;J2ME capable mobile devices&lt;/em&gt;.
&lt;ol&gt;
    &lt;li&gt;jar files are essentially solid zip archives [&lt;a href=&quot;http://en.wikipedia.org/wiki/JAR_(file_format)&quot;&gt;JAR (file format)&lt;/a&gt;],
        which can be &quot;unzipped&quot; using just about any archiving utilityy; I use &lt;a href=&quot;http://www.peazip.org/&quot;&gt;PeaZip&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Download the original Opera Mini jar: &lt;a href=&quot;http://mini.opera.com/download-4/opera-mini-latest-advanced-en-us.jar?no_redir&amp;amp;ismobile=false&quot;&gt;http://mini.opera.com/download-4/opera-mini-latest-advanced-en-us.jar?no_redir&amp;amp;ismobile=false&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Once you unzip the jar file (probably going to want to move the jar file into a new directory), you should
        now have a bunch of files along with the original jar file. DON'T OPEN ANY OF THE FILES WITH ANY OLD EDITOR,
        IT WILL SCREW UP THE FILE FORMATTING. I mention this, because I fell into this trap trying to edit h.class with vi.&lt;/li&gt;
    &lt;li&gt;Using a hex editor, I suggest &lt;a href=&quot;http://mh-nexus.de/en/hxd/&quot;&gt;HxD&lt;/a&gt;. Open up h.class.&lt;/li&gt;
    &lt;li&gt;Search and replace the string &quot;server4.opermini.com&quot; with &quot;tmobile4.vraidsys.com&quot;. Save your changes and close up your hex editor.
        &lt;strong&gt;Edit August 6 2011&lt;/strong&gt;: &quot;tmobile4.vraidsys.com&quot; is a CNAME that points to &quot;server4.opermini.com&quot;
        so that one can make it appear as if the Opera Mini thin client is making backend calls to a tmobile service.
        I also had to add a &quot;tmobile4-1.vraidsys.com&quot; CNAME to my DNS records pointing to &quot;server4.opermini.com&quot; so
        that the initial install of Opera Mini would work correctly.&lt;/li&gt;
    &lt;li&gt;Now, open up a terminal/command line window and issue the command &lt;code&gt;jar -uf opera-mini-4-advanced-en-us.jar h.class&lt;/code&gt; to
        update the original archive with the modified class file. If you get a command not found error, you might have to do some
        digging. My system did not have the jar command in the system path from the jdk package I use, either.&lt;/li&gt;
    &lt;li&gt;Optional: create a new kickass i.png file to use as the icon instead of the default Opera logo. Keep it 15 by 15 pixels.&lt;/li&gt;
    &lt;li&gt;Transfer the jar onto your mobile device and enjoy.&lt;/li&gt;
&lt;/ol&gt;
&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_hacks/opera-mini-4.x/opera-mini-4.2.18887-advanced-en-us.jar&quot;&gt;
    opera-mini-4.2.18887-advanced-en-us.jar
&lt;/a&gt; - Last version that does not try to auto-patch to newer version.&lt;br /&gt;
&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_hacks/opera-mini-4.x/opera-mini-4.4.26736-advanced-en-us.jar&quot;&gt;
    opera-mini-4.4.26736-advanced-en-us.jar
&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_hacks/opera-mini-4.x/opera-mini-4.4.27461-advanced-en-us.jar&quot;&gt;
    opera-mini-4.4.27461-advanced-en-us.jar
&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Cheers everybody!
</content>
    </entry>
    
    <entry>
        <title>InDefero on Debian Lenny with subversion, git, mercurial</title>
        <link href="http://vraidsys.com/2010/10/indefero-on-debian-lenny-with-subversion-git-mercurial/" />
        <updated>2010-10-21T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2010/10/indefero-on-debian-lenny-with-subversion-git-mercurial/</id>
        <content type="html">I needed to host some serious source code repositories on one of my own systems (for IP and security reasons),
plus I was also sick of the periodic downtime from using free services. I did the install on a fresh
VMware (Server) Debian Lenny virtual machine on an old Dell Poweredge; did the initial install
from the latest (at time of writing) netinstall image. You should probably
&lt;a href=&quot;http://www.debian.org/doc/manuals/apt-howto/ch-basico.en.html&quot;&gt;enable non-free and contrib packages&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Install everything you will need: &lt;code&gt;apt-get install libapache2-mod-chroot libapache2-mod-evasive
    libapache2-mod-fastcgi libapache2-mod-php5 libapache2-mod-python libapache2-mod-suphp libapache2-svn
    libapache2-webauth php-pear unzip php5-cli git-core subversion mercurial mysql-server phpmyadmin ssh&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Configure Exim4 properly: &lt;code&gt;dpkg-reconfigure exim4-config&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Change sshd to disallow root logins: &lt;code&gt;vi /etc/ssh/sshd_config&lt;/code&gt; and change to &quot;PermitRootLogin no&quot;.
(On daemon restart, the new settings will take affect.)&lt;br /&gt;
&lt;br /&gt;
Most of the following pasties are from the &lt;a href=&quot;http://projects.ceondo.com/p/indefero/page/Installation/&quot;&gt;InDefero docs about installation&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Install InDefero and Pluf framework files
&lt;blockquote&gt;&lt;code&gt;mkdir -p /home/www&lt;br /&gt;
        cd /home/www&lt;br /&gt;
        wget http://projects.ceondo.com/p/indefero/downloads/32/get/&lt;br /&gt;
        unzip index.html&lt;br /&gt;
        rm index.html&lt;br /&gt;
        mv indefero-1.0 indefero&lt;br /&gt;
        wget http://projects.ceondo.com/p/pluf/source/download/master/&lt;br /&gt;
        unzip index.html&lt;br /&gt;
        rm index.html&lt;br /&gt;
        mv pluf-master pluf&lt;br /&gt;
        cd /var/www&lt;br /&gt;
        rm index.html&lt;br /&gt;
        ln -s /home/www/indefero/www/index.php&lt;br /&gt;
        ln -s /home/www/indefero/www/media&lt;/code&gt;&lt;/blockquote&gt;
Install/Update PHP Pear shiz
&lt;blockquote&gt;&lt;code&gt;pear upgrade-all&lt;br /&gt;
        pear install --alldeps Mail&lt;br /&gt;
        pear install --alldeps Mail_mime&lt;/code&gt;&lt;/blockquote&gt;
Update Config files (probably don't have to update path.php if similar file structure)
&lt;blockquote&gt;&lt;code&gt;cd /home/www/indefero/src/IDF/conf/&lt;br /&gt;
        cp idf.php-dist idf.php&lt;br /&gt;
        vi idf.php&lt;br /&gt;
        cp path.php-dist path.php&lt;br /&gt;
        vi path.php&lt;/code&gt;&lt;/blockquote&gt;
Install the Database stuff (first php command tests to see if it will work, second actually installs)
&lt;blockquote&gt;&lt;code&gt;cd /home/www/indefero/src&lt;br /&gt;
        php /home/www/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d -u&lt;br /&gt;
        php /home/www/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d&lt;/code&gt;&lt;/blockquote&gt;
Bootstrap this bumkin!&lt;br /&gt;
vi bootstrap.php and stick the following in (if your path, etc. are the same):
&lt;blockquote&gt;&lt;div id=&quot;_mcePaste&quot;&gt;&amp;lt;?php&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;require '/home/www/indefero/src/IDF/conf/path.php';&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;require 'Pluf.php';&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;Pluf::start('/home/www/indefero/src/IDF/conf/idf.php');&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user = new Pluf_User();&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user-&amp;gt;first_name = 'John';&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user-&amp;gt;last_name = 'Doe'; // Required!&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user-&amp;gt;login = 'doe'; // must be lowercase!&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user-&amp;gt;email = 'doe@example.com';&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user-&amp;gt;password = 'yourpassword'; // the password is salted/hashed&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;// in the database, so do not worry :)&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user-&amp;gt;administrator = true;&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user-&amp;gt;active = true;&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;$user-&amp;gt;create();&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;print &quot;Bootstrap okn&quot;;&lt;/div&gt;
    &lt;div id=&quot;_mcePaste&quot;&gt;?&amp;gt;&lt;/div&gt;&lt;/blockquote&gt;
Run that sucker - &lt;code&gt;php bootstrap.php&lt;/code&gt; - make sure it completes, and then delete it (&lt;code&gt;rm bootstrap.php&lt;/code&gt;).&lt;br /&gt;
&lt;br /&gt;
Finishing Touches&lt;br /&gt;
cd /var/www&lt;br /&gt;
vi .htaccess - and put the following in if you want urls without index.php in them:
&lt;blockquote&gt;&lt;code&gt;Options +FollowSymLinks&lt;br /&gt;
        RewriteEngine On&lt;br /&gt;
        RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
        RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;
        RewriteRule ^(.*) /index.php/$1&lt;/code&gt;&lt;/blockquote&gt;
Don't forget to enable to rewrite module - &lt;code&gt;a2enmod rewrite&lt;/code&gt; - and restart apache2 - &lt;code&gt;/etc/init.d/apache2 restart&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
Adding automatic control over your repos:&lt;br /&gt;
Subversion - &lt;a href=&quot;http://projects.ceondo.com/p/indefero/page/InstallationScmSubversion/&quot;&gt;http://projects.ceondo.com/p/indefero/page/InstallationScmSubversion/&lt;/a&gt;&lt;br /&gt;
Git - &lt;a href=&quot;http://projects.ceondo.com/p/indefero/page/InstallationScmGit/&quot;&gt;http://projects.ceondo.com/p/indefero/page/InstallationScmGit/&lt;/a&gt;&lt;br /&gt;
Mercurial - &lt;a href=&quot;http://projects.ceondo.com/p/indefero/page/InstallationScmMercurial/&quot;&gt;http://projects.ceondo.com/p/indefero/page/InstallationScmMercurial/&lt;/a&gt;&lt;br /&gt;
Automatic start of the Git daemon - &lt;a href=&quot;http://projects.ceondo.com/p/indefero/page/git-daemon-sysV-InitScript/&quot;&gt;http://projects.ceondo.com/p/indefero/page/git-daemon-sysV-InitScript/&lt;/a&gt;&lt;br /&gt;
</content>
    </entry>
    
    <entry>
        <title>a headless Debian Lenny VirtualBox install</title>
        <link href="http://vraidsys.com/2010/08/a-headless-debian-virtualbox-install/" />
        <updated>2010-08-12T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2010/08/a-headless-debian-virtualbox-install/</id>
        <content type="html">After extreme disappointment with VMware Server 2, I thought I might try setting up a headless VirtualBox install
with a hopefully faster web interface. I need to be able to run Windows Server 2008 instances on occasion to
troubleshoot and test my scripts on IIS7. I also am looking for a more regularly updated virtualization software
to take over my aging VMware server 1.10 installs.&lt;br /&gt;
&lt;br /&gt;
Much of the following is based off of
&quot;&lt;a href=&quot;http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-3.1.x-on-a-headless-debian-lenny-server&quot;&gt;VBoxHeadless - Running Virtual Machines With VirtualBox 3.1.x On A Headless Debian Lenny Server&lt;/a&gt;&quot;,
&quot;&lt;a href=&quot;http://www.backports.org/dokuwiki/doku.php?id=instructions&quot;&gt;instructions [Debian Backports]&lt;/a&gt;&quot;,
and the &lt;a href=&quot;http://www.virtualbox.org/wiki/Linux_Downloads&quot;&gt;VirtualBox.org website's information about Debian VBox setups&lt;/a&gt;.
FYI: this install was done on a fresh Lenny netinstall (logged in as root ... duh!), and the apt-get install command grabed
about 200MB worth of compressed packages that unarchive into about 500MB worth of disk space used.
&lt;blockquote&gt;&lt;code&gt;wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -&lt;br /&gt;
        wget -q http://backports.org/debian/archive.key -O- | apt-key add -&lt;br /&gt;
        echo -e &quot;ndeb http://download.virtualbox.org/virtualbox/debian lenny non-freendeb http://www.backports.org/debian lenny-backports main contrib non-free&quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
        apt-get update&lt;br /&gt;
        apt-get install virtualbox-3.2 dkms&lt;br /&gt;
        groupadd vboxers&lt;br /&gt;
        useradd -d /home/vboxers -m -g vboxers -s /bin/bash vboxers&lt;br /&gt;
        passwd vboxers&lt;br /&gt;
        adduser vboxers vboxusers&lt;br /&gt;
        apt-get install libapache2-mod-php5&lt;br /&gt;
        a2dissite default&lt;br /&gt;
        mkdir -p /srv/vbox&lt;br /&gt;
        chmod -R 777 /srv&lt;br /&gt;
        echo -e &quot;&amp;lt;VirtualHost *:80&amp;gt;nDocumentRoot /srv/vboxn&amp;lt;/VirtualHost&amp;gt;&quot; &amp;gt; /etc/apache2/sites-enabled/vbox&lt;br /&gt;
        /etc/init.d/apache2 restart&lt;br /&gt;
        apt-get install screen&lt;/code&gt;&lt;/blockquote&gt;
Open up the local start up file &quot;&lt;code&gt;vi /etc/rc.local&lt;/code&gt;&quot; and insert
&quot;&lt;code&gt;su vboxers -c &quot;screen -dmS vboxwebsrv vboxwebsrv&quot;&lt;/code&gt;&quot; before the &quot;exit 0&quot;.
Download the phpvirtualbox code [&lt;a href=&quot;http://phpvirtualbox.googlecode.com/files/phpvirtualbox-0.5.zip&quot;&gt;http://phpvirtualbox.googlecode.com/files/phpvirtualbox-0.5.zip&lt;/a&gt;],
unzip and modify the config.php file to match the vboxers user we set up earlier. Finally upload the contents
of the archive to the vbox directory over SFTP or something. Reboot the machine (for good measure),
and you should be able to go to http://host/ to access the web interface. Beware this a completely unprotected setup!
</content>
    </entry>
    
    <entry>
        <title>CodeIgniter data not posting</title>
        <link href="http://vraidsys.com/2010/08/codeigniter-data-not-posting/" />
        <updated>2010-08-01T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2010/08/codeigniter-data-not-posting/</id>
        <content type="html">I have been working in this PHP &lt;a href=&quot;http://en.wikipedia.org/wiki/Model–View–Controller&quot;&gt;&lt;abbr title=&quot;Model View Controller&quot;&gt;MVC&lt;/abbr&gt;&lt;/a&gt;
framework called &lt;a href=&quot;http://codeigniter.com/&quot;&gt;CodeIgniter&lt;/a&gt; for the past few weeks. I learned yesterday,
that if some of your post data is missing. It is most likely because CodeIgniter auto-closed your form due to bad markup.
I have something like the following:
&lt;blockquote&gt;&amp;lt;fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;?php echo form_open('somecontroller/some_function'); ?&amp;gt;&lt;br /&gt;
    ... some form fields ....&lt;br /&gt;
    &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;fieldset&amp;gt;&lt;br /&gt;
    ... some more form fields ...&lt;br /&gt;
    &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;?php echo form_close(); ?&amp;gt;&lt;/blockquote&gt;
Guess who wasn't getting all of the data posted? This guy! CI auto-closed the form at the first
&amp;lt;/fieldset&amp;gt; tag. Remember kids, always open your forms and close your form outside of any
tags that might close before the form closes. Like this:
&lt;blockquote&gt;&amp;lt;?php echo form_open('somecontroller/some_function'); ?&amp;gt;&lt;br /&gt;
    &amp;lt;fieldset&amp;gt;&lt;br /&gt;
    ... some form fields ....&lt;br /&gt;
    &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;fieldset&amp;gt;&lt;br /&gt;
    ... some more form fields ...&lt;br /&gt;
    &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;?php echo form_close(); ?&amp;gt;&lt;/blockquote&gt;
</content>
    </entry>
    
    <entry>
        <title>CentOS 5.5 ImageMagick install + php module</title>
        <link href="http://vraidsys.com/2010/07/centos-5-5-imagemagick-install-php-module/" />
        <updated>2010-07-19T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2010/07/centos-5-5-imagemagick-install-php-module/</id>
        <content type="html">Working this morning, I had to get ImageMagick working on a CentOS 5.5 VM. Pretty easy with YUM right?
Well there were some complications installing the associated PHP module. So after doing the usual
&lt;code&gt;yum update&lt;/code&gt;, here is what you should do.
&lt;ol&gt;
    &lt;li&gt;yum install ImageMagick ImageMagick-devel&lt;/li&gt;
    &lt;li&gt;If you are lucky &quot;pecl install imagick&quot; will work, if so skip to last 2 steps.
        If not continue along. I got the $PHP_AUTOCONF error.&lt;/li&gt;
    &lt;li&gt;Head over to - &lt;a href=&quot;http://pecl.php.net/package/imagick&quot;&gt;http://pecl.php.net/package/imagick&lt;/a&gt; -
        and download the latest tarball (wget or whatever you fancy). At time of writing, I used
        &quot;&lt;a href=&quot;http://pecl.php.net/get/imagick-3.0.0RC2.tgz&quot;&gt;imagick-3.0.0RC2.tgz&lt;/a&gt;&quot;.&lt;/li&gt;
    &lt;li&gt;tar xzvf [da archive name] and cd into said archive&lt;/li&gt;
    &lt;li&gt;gotta compile this thing from source: a) &lt;code&gt;phpize&lt;/code&gt; b) &lt;code&gt;./configure&lt;/code&gt;
        c) &lt;code&gt;make&lt;/code&gt; d) &lt;code&gt;make install&lt;/code&gt; (as root ... duh!) [check out
        &lt;a href=&quot;http://www.webhostingtalk.com/showpost.php?p=4215404&amp;amp;postcount=10&quot;&gt;Steven's post on webhostingtalk.com&lt;/a&gt;]&lt;/li&gt;
    &lt;li&gt;load &amp;amp; restart: a) &lt;code&gt;echo &quot;extension=imagick.so&quot; &amp;gt; /etc/php.d/imagick.ini&lt;/code&gt;
        b) &lt;code&gt;/etc/init.d/httpd restart&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;check to see if it was installed: &lt;code&gt;php -m | grep imagick&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
Now let's check to see if imagemagick &quot;works&quot;. Create a .php file on the server and access it with
your web browser. Excerpted from &lt;a href=&quot;http://www.astahost.com/info.php/Find-Test-Imagemagick-Php_t18769.html&quot;&gt;docduke's post on astahost.info&lt;/a&gt;.
&lt;blockquote&gt;&amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;title&amp;gt;Test for  ImageMagick&amp;lt;/title&amp;gt; &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt; &amp;lt;?&lt;br /&gt;
    function  alist ($array) {//This function prints a text array as an html list.&lt;br /&gt;
    $alist  = &quot;&amp;lt;ul&amp;gt;&quot;;&lt;br /&gt;
    for ($i = 0; $i &amp;lt; sizeof($array); $i++) {&lt;br /&gt;
    $alist  .= &quot;&amp;lt;li&amp;gt;$array[$i]&quot;;&lt;br /&gt;
    }&lt;br /&gt;
    $alist .= &quot;&amp;lt;/ul&amp;gt;&quot;;&lt;br /&gt;
    return  $alist;&lt;br /&gt;
    }&lt;br /&gt;
    exec(&quot;convert -version&quot;, $out, $rcode); //Try to get  ImageMagick &quot;convert&quot; program version number.&lt;br /&gt;
    echo &quot;Version return  code is $rcode &amp;lt;br&amp;gt;&quot;; //Print the return code: 0 if OK, nonzero if  error.&lt;br /&gt;
    echo alist($out); //Print the output of &quot;convert -version&quot;&lt;br /&gt;
    //Additional  code discussed below goes here.&lt;br /&gt;
    ?&amp;gt; &amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt;&lt;/blockquote&gt;
</content>
    </entry>
    
    <entry>
        <title>recover sd card data with linux and gddrescue</title>
        <link href="http://vraidsys.com/2010/06/recover-sd-card-data-with-linux-and-gddrescue/" />
        <updated>2010-06-22T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2010/06/recover-sd-card-data-with-linux-and-gddrescue/</id>
        <content type="html">Just to be clear about the setup, I'll be using Debian 5 Linux and an 8 GB SD card with a SD to USB adapter over a USB 2.0 link.&lt;br /&gt;
&lt;br /&gt;
gddrescue is included in the main &lt;a href=&quot;http://packages.debian.org/search?keywords=gddrescue&quot;&gt;Debian&lt;/a&gt; and
&lt;a href=&quot;http://packages.ubuntu.com/search?keywords=gddrescue&quot;&gt;Ubuntu&lt;/a&gt; repos, so in my case the install was just
an &quot;&lt;code&gt;apt-get install gddrescue&lt;/code&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
Plug in your sd card and watch dmesg for the sd card. Mine was added to /dev/sda as one can see from the following output:
&lt;blockquote&gt;[ 2540.580007] usb 5-4: new high speed USB device using ehci_hcd and address 2&lt;br /&gt;
    [ 2540.776619] usb 5-4: configuration #1 chosen from 1 choice&lt;br /&gt;
    [ 2540.781484] scsi1 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
    [ 2540.781939] usb 5-4: New USB device found, idVendor=090c, idProduct=6000&lt;br /&gt;
    [ 2540.781947] usb 5-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
    [ 2540.781953] usb 5-4: Product: USB2.0 Card Reader&lt;br /&gt;
    [ 2540.781957] usb 5-4: Manufacturer: Generic,   .&lt;br /&gt;
    [ 2540.781961] usb 5-4: SerialNumber: 12345678901234567890&lt;br /&gt;
    [ 2540.781977] usb-storage: device found at 2&lt;br /&gt;
    [ 2540.781980] usb-storage: waiting for device to settle before scanning&lt;br /&gt;
    [ 2545.780245] usb-storage: device scan complete&lt;br /&gt;
    [ 2545.781307] scsi 1:0:0:0: Direct-Access Generic 6000 PQ: 0 ANSI: 0 CCS&lt;br /&gt;
    [ 2545.783697] sd 1:0:0:0: [sda] 15855616 512-byte hardware sectors (8118 MB)&lt;br /&gt;
    [ 2545.784973] sd 1:0:0:0: [sda] Write Protect is off&lt;br /&gt;
    [ 2545.784983] sd 1:0:0:0: [sda] Mode Sense: 4b 00 00 08&lt;br /&gt;
    [ 2545.784988] sd 1:0:0:0: [sda] Assuming drive cache: write through&lt;br /&gt;
    [ 2545.787318] sd 1:0:0:0: [sda] 15855616 512-byte hardware sectors (8118 MB)&lt;br /&gt;
    [ 2545.787949] sd 1:0:0:0: [sda] Write Protect is off&lt;br /&gt;
    [ 2545.787958] sd 1:0:0:0: [sda] Mode Sense: 4b 00 00 08&lt;br /&gt;
    [ 2545.787963] sd 1:0:0:0: [sda] Assuming drive cache: write through&lt;br /&gt;
    [ 2545.788050]  sda: unknown partition table&lt;br /&gt;
    [ 2545.795255] sd 1:0:0:0: [sda] Attached SCSI removable disk&lt;/blockquote&gt;
While logged in as root (or using sudo) make a copy of the sd card: ddrescue [/dev/device] [recovery image output] [logfile]&lt;br /&gt;
&lt;br /&gt;
Now we will also need testdisk, so install that [&lt;a href=&quot;http://packages.debian.org/search?keywords=testdisk&quot;&gt;Debian&lt;/a&gt;]
[&lt;a href=&quot;http://packages.ubuntu.com/search?keywords=testdisk&quot;&gt;Ubuntu&lt;/a&gt;]: &lt;code&gt;apt-get install testdisk&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.cgsecurity.org/wiki/TestDisk&quot;&gt;Testdisk&lt;/a&gt; can do some pretty cool stuff, but we are more
interested in one of the subpackages it includes, &lt;a href=&quot;http://www.cgsecurity.org/wiki/PhotoRec&quot;&gt;photorec&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Now using photorec, let's recover some photos: &lt;code&gt;photorec /d [photo output dir] [recovery image output file from before]&lt;/code&gt;
And navigate through the menus and get your photos back. Usually the sd card is formatted in NTFS.
</content>
    </entry>
    
    <entry>
        <title>qwest actiontec gt701-wg PPOE on OpenWRT</title>
        <link href="http://vraidsys.com/2010/03/qwest-actiontec-gt701-wg-ppoe-openwrt/" />
        <updated>2010-03-27T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2010/03/qwest-actiontec-gt701-wg-ppoe-openwrt/</id>
        <content type="html">I was having a difficult time yesterday trying to get my new &lt;a href=&quot;http://openwrt.org/&quot;&gt;OpenWRT&lt;/a&gt; install
working on my Qwest DSL line. Here is how I got things working. I have yet to get the wireless interface
working with WPA, I've just been using a different wireless access point I had lying around.&lt;br /&gt;
&lt;br /&gt;
&lt;del datetime=&quot;2010-03-28T16:08:22+00:00&quot;&gt;Telnet into your DSL modem, and &lt;code&gt;cat /var/tmp/tr69para_pppoe&lt;/code&gt;
    (if you connect with PPoE) or &lt;code&gt;cat /var/tmp/tr69para_pppoa&lt;/code&gt; (if you connect with PPoA).&lt;/del&gt;&lt;br /&gt;
&lt;br /&gt;
Telnet into your gateway before flashing it and &lt;code&gt;cat /proc/[###]/cmdline&lt;/code&gt; (where ### is the process number of pppd),
this will get you the exact command used, along with the user/password that your gateway is using to
login to the DSLAM. Save this command string for later!&lt;br /&gt;
&lt;br /&gt;
I used the latest Kamikaze release (as of 03/28/2010) [&lt;a href=&quot;http://downloads.openwrt.org/kamikaze/8.09.2/ar7/openwrt-ar7-squashfs.bin&quot;&gt;download&lt;/a&gt;]
and my Windows XP laptop connected via an Ethernet switch to my Actiontec. I was having trouble with tnftp on Debian,
but I've heard it isn't too hard to get that working. You have to be pretty fast, because as soon as you plug in
your gateway you have ~3 seconds to ftp in. The username/password is adam2/adam2. No matter what IPv4 you have your
gateway normally set to, it defaults to 192.168.0.1 on boot.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;C:\Documents and Settings\Administrator\Desktop&gt;ftp 192.168.0.1&lt;br /&gt;
    Connected to 192.168.0.1.&lt;br /&gt;
    220 ADAM2 FTP Server ready.&lt;br /&gt;
    User (192.168.0.1:(none)): adam2&lt;br /&gt;
    331 Password required for adam2.&lt;br /&gt;
    Password:&lt;br /&gt;
    230 User adam2 successfully logged in.&lt;br /&gt;
    ftp&gt; binary&lt;br /&gt;
    200 Type set to I.&lt;br /&gt;
    ftp&gt; quote SETENV mtd5,0x90010000,0x903e0000&lt;br /&gt;
    200 SETENV command successful&lt;br /&gt;
    ftp&gt; quote SETENV MAC_PORT,0&lt;br /&gt;
    200 SETENV command successful&lt;br /&gt;
    ftp&gt; quote MEDIA FLSH&lt;br /&gt;
    200 Media set to FLSH.&lt;br /&gt;
    ftp&gt; put &quot;openwrt-ar7-squashfs.bin&quot; &quot;openwrt-ar7-squashfs.bin mtd5&quot;&lt;br /&gt;
    200 Port command successful.&lt;br /&gt;
    150 Opening BINARY mode data connection for file transfer.&lt;br /&gt;
    226 Transfer complete.&lt;br /&gt;
    ftp: 2621444 bytes sent in 33.95Seconds 77.21Kbytes/sec.&lt;br /&gt;
    ftp&gt; quote REBOOT&lt;br /&gt;
    221-Thank you for using the FTP service on ADAM2.&lt;br /&gt;
    221 Goodbye.&lt;br /&gt;
    Connection closed by remote host.&lt;br /&gt;
    ftp&gt; quit&lt;br /&gt;
    &lt;br /&gt;
    C:\Documents and Settings\Administrator\Desktop&gt;&lt;/blockquote&gt;
Wait about 20 seconds before you &lt;code&gt;telnet 192.168.1.1&lt;/code&gt; to set the initial root password.
Once you set the root password you are only allowed to login via SSH or the HTTP web interface.&lt;br /&gt;
&lt;br /&gt;
SSH in to your new install and remove the existing options in /etc/ppp/options on your new OpenWRT install,
and put the options we extracted earlier in the /etc/ppp/options file.&lt;br /&gt;
&lt;br /&gt;
My &lt;code&gt;/etc/ppp/options&lt;/code&gt; file ended up looking like this:
&lt;blockquote&gt;user [username]@qwest.net&lt;br /&gt;
    password [password]&lt;br /&gt;
    nodetach&lt;br /&gt;
    defaultroute&lt;br /&gt;
    usepeerdns&lt;br /&gt;
    mru 1492&lt;br /&gt;
    maxfail 10&lt;br /&gt;
    lcp-echo-failure 4&lt;br /&gt;
    lcp-echo-interval 30&lt;/blockquote&gt;
And my &lt;code&gt;/etc/config/network&lt;/code&gt; file for the wan portion:
&lt;blockquote&gt;config atm-bridge&lt;br /&gt;
    option unit     0&lt;br /&gt;
    option encaps   llc&lt;br /&gt;
    option vpi      0&lt;br /&gt;
    option vci      32&lt;br /&gt;
    option payload  bridged # some ISPs need this set to 'routed'&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    config interface wan&lt;br /&gt;
    ##      PPPoE:&lt;br /&gt;
    option ifname   nas0&lt;br /&gt;
    option proto    pppoe&lt;br /&gt;
    &lt;br /&gt;
    ##      PPPoA:&lt;br /&gt;
    #       option ifname   atm0&lt;br /&gt;
    #       option proto    pppoa&lt;br /&gt;
    option encaps   vc&lt;br /&gt;
    option vpi      0&lt;br /&gt;
    option vci      32&lt;/blockquote&gt;
That should wrap things up. You might have to customize a few other things.
</content>
    </entry>
    
    <entry>
        <title>actiontec gt701-wg telnet modifications</title>
        <link href="http://vraidsys.com/2010/03/actiontec-gt701-wg-telnet-modifications/" />
        <updated>2010-03-06T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2010/03/actiontec-gt701-wg-telnet-modifications/</id>
        <content type="html">I thought I might document some of the modifications I make to my
&lt;a href=&quot;http://www.nettwerked.net/actiontec.html&quot;&gt;Actiontec GT701-WG&lt;/a&gt; on a regular basis
via Telnet. Sure these changes are not permanent, as they get reset every time you
power-cycle the device. But I did not want to take the time to try and figure out
how to recompile a whole new flash image, or chance bricking  my only &lt;em&gt;reliable&lt;/em&gt;
Internet connection. Explanation follows semi-pastable.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
    &lt;code&gt;echo &quot;nameserver 208.67.222.222&lt;br /&gt;
        nameserver 208.67.220.220&quot; &gt; /etc/resolv.conf&lt;br /&gt;
        &lt;br /&gt;
        echo &quot;127.0.0.1 localhost&lt;br /&gt;
        192.168.0.1 gateway gateway.[yourdomain].com&lt;br /&gt;
        192.168.0.# ntinstall [host] [host].[yourdomain].com&quot; &gt; /etc/hosts&lt;br /&gt;
        &lt;br /&gt;
        echo &quot;start 192.168.0.51&lt;br /&gt;
        end 192.168.0.254&lt;br /&gt;
        interface br0&lt;br /&gt;
        opt router 192.168.0.1&lt;br /&gt;
        opt dns 208.67.222.222 208.67.220.220&lt;br /&gt;
        opt subnet 255.255.255.0&lt;br /&gt;
        opt lease 86400&lt;br /&gt;
        conflict_time 86400&lt;br /&gt;
        lease_file /var/tmp/landhcps0.leases&lt;br /&gt;
        siaddr 192.168.0.#&lt;br /&gt;
        sname [hostname]&lt;br /&gt;
        boot_file pxelinux.0&quot; &gt; /etc/udhcpd.conf&lt;/code&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
All of the code above assumes you are operating your network in the default 192.168.0.0/24 IPv4 local block.
In addition, all of the changes happen nearly instantaneously in regards to reshaping network traffic.&lt;br /&gt;
&lt;br /&gt;
The first chunk sets the default name servers that the gateway device uses to the &lt;em&gt;fast&lt;/em&gt;
&lt;a href=&quot;http://www.opendns.com/&quot;&gt;OpenDNS&lt;/a&gt; servers. It also clears out the other crap that makes
DNS queries time out trying to lookup domains in the actdsltmp local domain that is set by default. In the
web interface I suggest setting the DNS servers to OpenDNS's servers as well (those changes should be permanent).&lt;br /&gt;
&lt;br /&gt;
The 2nd block is for those of you with your own domains that would like to set up the gateway so it refers to itself
within your domain. The last line of the 2nd block - &quot;192.168.0.# ntinstall [host] [host].[yourdomain].com&quot;
- overrides certain gateway DNS lookups and routes the particular name to an IPv4 address &quot;192.168.0.#&quot;.
I use this line for my &lt;a href=&quot;http://unattended.sourceforge.net/&quot;&gt;Unattended Windows installations&lt;/a&gt;,
as it by default looks for a host by the name of &quot;ntinstall&quot; if you haven't specified a hostname.&lt;br /&gt;
&lt;br /&gt;
The 3rd pastie-grouping deals with the DHCP server that is built into the gateway. I enjoy the speed of
OpenDNS queries on my LAN hosts as well, hence - &quot;opt dns 208.67.222.222 208.67.220.220&quot;. The last three
lines of the 3rd block deal with my TFTP/PXE server. &quot;siaddr 192.168.0.#&quot; specifies a TFTP server at IPv4
address &quot;192.168.0.#&quot; (replace # with a number). &quot;sname [hostname]&quot; - replace &quot;[hostname]&quot; with the hostname
of the server at address &quot;192.168.0.#&quot;. &quot;boot_file pxelinux.0&quot; specifies that I wish to have my PXE client
boot a file by the name of &quot;pxelinux.0&quot; that is in the root of my TFTP server.&lt;br /&gt;
&lt;br /&gt;
Did you know you can also run full websites off your gateway? Using a TFTP server on your network and built-in binaries on your gateway make it possible.
&lt;blockquote&gt;&lt;code&gt;mkdir /var/www&lt;br /&gt;
        chmod 755 /var/www&lt;br /&gt;
        tftp -g -l /var/www/index.html -r public/gateway-site/index.html 192.168.0.#&lt;br /&gt;
        chmod 644 /var/www/index.html&lt;br /&gt;
        tftp -g -l /var/www/cgi.cgi -r public/gateway-site/cgi.cgi 192.168.0.#&lt;br /&gt;
        chmod 755 /var/www/cgi.cgi&lt;br /&gt;
        thttpd -d /var/www -u root -p 81 -c /var/www/**.cgi&lt;/code&gt;&lt;/blockquote&gt;
To my knowledge, the /var directory on the Actiontec GT701-WG is the only directory one can write to.
So first a directory is created for the website to reside in, and the necessary permissions (chmod)
to make the site accessible. Then using the tftp client, &quot;index.html&quot; is grabbed from the
&quot;public/gateway-site/&quot; directory on the tftp server at IPv4 address &quot;192.168.0.#&quot; (where # is a number),
and this file is stuck in the &quot;/var/www&quot; directory. Then the &quot;index.html&quot; file is set to the proper
permissions so it can be accessed - 644 for data/non-cgi files. A similar process happens for the cgi file,
although this time it needs to be set to 755 so it can be executed when accessed.&lt;br /&gt;
&lt;br /&gt;
I still can't quite get cgi files compiled properly for the Actiontec GT701-WG, but I'm assuming one
needs to do some cross-compiling to the MIPS 4KEc V4.8 32-bit chip that runs this. Article on compiling
CGI stuffs: &lt;a href=&quot;http://devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=301&quot;&gt;http://devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=301&lt;/a&gt;.
</content>
    </entry>
    
    <entry>
        <title>MediaTomb 12 on Debian 5 for DirecTV MediaShare/DLNA</title>
        <link href="http://vraidsys.com/2009/12/mediatomb-12-on-debian-5-for-directv-mediashare-dlna/" />
        <updated>2009-12-24T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2009/12/mediatomb-12-on-debian-5-for-directv-mediashare-dlna/</id>
        <content type="html">I have been trying unsuccessfully for the past couple of months (on and off) to stream content from my
home Linux servers to several DirecTV HR20-700's. This latest attempt, actually worked and I wanted to
document my exact setup as no other literature has done.&lt;br /&gt;
&lt;br /&gt;
Stuff you need:
&lt;ol&gt;
    &lt;li&gt;Debian 5 installed on a computer with ~ 1GHZ CPU, 256MB RAM for max two audio
        streams/1GB RAM for two simultaneous medium quality video streams, hard drive with media content on it&lt;/li&gt;
    &lt;li&gt;reliable Internet connection&lt;/li&gt;
    &lt;li&gt;a DirecTV HR2x&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
Here are the exact commands you need to run, I'll explain them later.
&lt;blockquote&gt;&lt;code&gt;apt-get update&lt;br /&gt;
        apt-get upgrade&lt;br /&gt;
        apt-get -y install screen vlc vorbis-tools mpg123 ffmpeg unzip subversion build-essential
        autoconf automake curl libexpat-ocaml-dev libsqlite3-dev libcurl-ocaml-dev libid3-3.8.3-dev
        libtagc0-dev libavformat-dev libexif-dev&lt;br /&gt;
        svn co https://svn.mediatomb.cc/svnroot/mediatomb/trunk/mediatomb mediatomb&lt;br /&gt;
        cd mediatomb&lt;br /&gt;
        autoreconf -i&lt;br /&gt;
        ./configure&lt;br /&gt;
        make&lt;br /&gt;
        make install&lt;br /&gt;
        cd&lt;br /&gt;
        wget http://dl.dropbox.com/u/44649188/blog_includes/article-includes/mediatomb.zip&lt;br /&gt;
        mv mediatomb.zip /etc/&lt;br /&gt;
        cd /etc/&lt;br /&gt;
        unzip mediatomb.zip&lt;br /&gt;
        rm mediatomb.zip&lt;br /&gt;
        mkdir /var/lib/mediatomb&lt;br /&gt;
        chmod -R 777 /var/lib/mediatomb/&lt;br /&gt;
        cd&lt;br /&gt;
        mv /etc/mediatomb/mediatomb /etc/init.d/&lt;br /&gt;
        vi /etc/init.d/mediatomb&lt;/code&gt; &lt; -- change line so ethX reads eth0, eth1, or whatever your LAN network interface card is assigned to&lt;br /&gt;
    &lt;code&gt;chmod +x /etc/init.d/mediatomb&lt;br /&gt;
        update-rc.d mediatomb defaults&lt;/code&gt;&lt;/code&gt;&lt;/blockquote&gt;
The idea is that the default MediaTomb install found in the repos (version 11) doesn't support transcoding
quite right for the DirecTV HR2x. So we do an install from the repos for a bunch of dependencies for the
latest code (version 12) that we then checkout from the project SVN repo. A new configuration script
that I built is downloaded and installed. It has support for transcoding ogg, mp3, flac, flv, avi, mkv, mov,
and a few other formats (pretty easy to add support for other formats check out --&amp;gt;
&lt;a href=&quot;http://mediatomb.cc/dokuwiki/transcoding:transcoding#directv_hr2x_transcoding&quot;&gt;http://mediatomb.cc/dokuwiki/transcoding:transcoding#directv_hr2x_transcoding&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
MediaTomb will be automatically started on boot. It can also be stopped and started manually by:
&lt;code&gt;/etc/init.d/mediatomb stop&lt;/code&gt; or &lt;code&gt;/etc/init.d/mediatomb start&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
You can then go to the webui of MediaTomb and update your media library. --&amp;gt; http://hostname:49152/
</content>
    </entry>
    
    <entry>
        <title>rtorrent 11 on Debian 5</title>
        <link href="http://vraidsys.com/2009/12/rtorrent-11-on-debian-5/" />
        <updated>2009-12-01T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2009/12/rtorrent-11-on-debian-5/</id>
        <content type="html">For those of you looking for DHT support with the default rtorrent package that it is in the Debian
5 apt repos you are out of luck. Currently the only way to get DHT support for rtorrent is to use the
0.8.5-2 release for Debian &quot;Squeeze&quot; (testing).&lt;br /&gt;
&lt;br /&gt;
So to get rtorrent working with DHT, go about the installation like you would usually:&lt;br /&gt;
&lt;code&gt;apt-get update&lt;br /&gt;
    apt-get upgrade&lt;br /&gt;
    apt-get -y install rtorrent&lt;br /&gt;
    apt-get remove rtorrent libtorrent10&lt;/code&gt; (should leave dependencies installed)&lt;br /&gt;
&lt;code&gt;wget http://http.us.debian.org/debian/pool/main/r/rtorrent/rtorrent_0.8.6-1_i386.deb&lt;/code&gt; (for i386) &lt;small&gt;(UPDATED 08/17/2010)&lt;/small&gt;&lt;br /&gt;
&lt;code&gt;wget http://http.us.debian.org/debian/pool/main/libt/libtorrent/libtorrent11_0.12.6-2_i386.deb&lt;/code&gt; (for i386) &lt;small&gt;(UPDATED 08/17/2010)&lt;/small&gt;&lt;br /&gt;
&lt;code&gt;wget http://http.us.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze1_i386.deb&lt;/code&gt; (for i386) &lt;small&gt;(UPDATED 05/08/2011)&lt;/small&gt;&lt;br /&gt;
&lt;code&gt;dpkg -i libtorrent11_*.deb&lt;br /&gt;
    dpkg -i rtorrent_*.deb&lt;br /&gt;
    dpkg -i libssl*.deb&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Your version of rtorrent, should now have DHT and PEX support.&lt;br /&gt;
&lt;br /&gt;
For automatically starting rtorrent, you can download an init script from the libtorrent project, that works real great.&lt;br /&gt;
&lt;code&gt;wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh&lt;br /&gt;
    mv rtorrentInit.sh /etc/init.d/rtorrent&lt;br /&gt;
    chmod +x /etc/init.d/rtorrent&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;vi /etc/init.d/rtorrent&lt;/code&gt; (change the user in the config file to a different user account,
your own? that has a .rtorrent.rc in it's home directory --&amp;gt; /home/[user]/.rtorrent.rc)&lt;br /&gt;
&lt;code&gt;vi /etc/rc.local&lt;/code&gt; &amp;lt; -- stick in the line &quot;/etc/init.d/rtorrent start&quot; before the &quot;exit 0&quot;&lt;br /&gt;
&lt;br /&gt;
Make a .rtorrent.rc startup file, so that /etc/init.d/rtorrent works properly:&lt;br /&gt;
&lt;code&gt;wget http://dl.dropbox.com/u/44649188/blog_includes/tutorials/rtorrent.rc&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;mv rtorrent.rc /home/[user]/.rtorrent.rc&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;vi /home/[user]/.rtorrent.rc&lt;/code&gt; (change user to the user you want this to run as)&lt;br /&gt;
&lt;code&gt;mkdir -p /home/[user]/torrents/session&lt;br /&gt;
    chown [user] /home/[user]/.rtorrent.rc &amp;lt;-- run this if doing everything from the root user&lt;br /&gt;
    chmod -R 777 /home/[user]/torrents &amp;lt;-- I do this so that I can access my torrents from several user accounts. see comments section. [Edit 1/1/2010]&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;Now restart the machine: &lt;/code&gt;&lt;code&gt;shutdown -r now&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;When you log back in, torrents should be automatically downloaded to the &lt;/code&gt;
&lt;code&gt;/home/[user]/torrents/&lt;/code&gt; directory, when you stick .torrent files in the
&lt;code&gt;/home/[user]/torrents/&lt;/code&gt; directory. You can also access the screen thread by
&lt;code&gt;screen -r rtorrent&lt;/code&gt; in a terminal session.
</content>
    </entry>
    
    <entry>
        <title>extract hdd data using GParted Live</title>
        <link href="http://vraidsys.com/2009/09/extract-hdd-data-using-gparted-live/" />
        <updated>2009-09-29T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2009/09/extract-hdd-data-using-gparted-live/</id>
        <content type="html">Today I had the misfortune of being stuck at school without my library of diagnostic/repair CDs.
I was dealing with a corrupted Windows Vista (64 bit) install: one corrupted sys file.
The one that operates the low-level hard drive access functionality. Of course the user in question
was without her install/repair disk. Fortunately for me I had two 4GB USB sticks, and a fast Internet
connection. Thanks University of Minnesota for the fat pipe! Anyways ...&lt;br /&gt;
&lt;br /&gt;
Fortunately for me the laptop's BIOS allowed one to boot from a USB stick. I would really have been
stuck then: no CD-R's, no server to PXE boot from, and no floppy drive. Oh floppies ... but I digress.&lt;br /&gt;
&lt;br /&gt;
All that I needed was a live Linux environment to mount the hard drive that I wanted to get data off
of and an extra USB stick for holding the recovered data. I first downloaded a copy of the
&lt;a href=&quot;http://gparted.sourceforge.net/liveusb.php&quot;&gt;USB zip image of GParted Live&lt;/a&gt; ~100MB.
I then used &lt;a href=&quot;https://sourceforge.net/projects/liveusbhelper/files/Live%20USB%20Helper/&quot;&gt;Live USB Helper&lt;/a&gt;
(for windows) to write a copy of the image to one of my USB sticks. I know, shock ... the man who bashes Windows
on occasion actually uses it. Well my XP Pro 64bit install supports the hardware the best.&lt;br /&gt;
&lt;br /&gt;
Excerpted:
&lt;blockquote&gt;
    Download &lt;a href=&quot;https://sourceforge.net/projects/liveusbhelper/files/Live%20USB%20Helper/&quot; target=&quot;_blank&quot;&gt;Live USB Helper&lt;/a&gt;
    to help you to create this Live USB flash drive. Just install the program on MS windows, then you can follow
    the GUI to create the live. You need the GParted live zip file for this method.
    &lt;span style=&quot;color: red;&quot;&gt;PS:&lt;/span&gt; To run Live USB helper program on MS windows, you need a dll
    file &quot;vb6stkit.dll&quot;. If Live USB helper complains about no vb6stkit.dll was found, you can download
    it on &lt;a href=&quot;http://www.dll-files.com/&quot; target=&quot;_blank&quot;&gt;http://www.dll-files.com&lt;/a&gt; and read the
    &lt;a href=&quot;http://www.dll-files.com/support/faq.shtml&quot; target=&quot;_blank&quot;&gt;FAQ&lt;/a&gt; to install it.&lt;/blockquote&gt;
I booted in from the USB stick to GParted, and after a bit of confusion remembered that Vista encrypts its data partition!
Argh! Secure yes, but makes supporting users difficult.&lt;br /&gt;
&lt;br /&gt;
I could have been like:
&lt;blockquote&gt;&lt;code&gt;mkdir /mnt/hdd&lt;br /&gt;
        mkdir /mnt/usb&lt;br /&gt;
        mount /dev/sda2 /mnt/hdd&lt;br /&gt;
        mount /dev/sdb1 /mnt/usb&lt;br /&gt;
        cd /mnt/hdd&lt;br /&gt;
        ls&lt;br /&gt;
        cd /Documents and Settings/[user name]&lt;br /&gt;
        cp -r * /mnt/usb&lt;/code&gt;&lt;/blockquote&gt;
Moral of the story: always keep a backup of your data.
</content>
    </entry>
    
    <entry>
        <title>bulk edit wordpress posts</title>
        <link href="http://vraidsys.com/2009/08/bulk-edit-wordpress-posts/" />
        <updated>2009-08-18T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2009/08/bulk-edit-wordpress-posts/</id>
        <content type="html">I needed a fast and efficient way to edit all of my wordpress posts in bulk the other day.
So I wrote a script that looks for a certain search string in a post and replaces that search
string with another string.
Just remove the .txt extension, configure the search and replace varz, upload to the directory
containing your wp-config.php file, and access with your web client.&lt;br /&gt;
REMEMBER TO REMOVE THIS POWERFUL SCRIPT AFTER USE!&lt;br /&gt;
&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/article-includes/editposts.php.txt&quot;&gt;editposts.php.txt&lt;/a&gt;
</content>
    </entry>
    
    <entry>
        <title>DWL-G510 rev B running native in Linux</title>
        <link href="http://vraidsys.com/2009/08/dwl-g510-rev-b-running-native-in-linux/" />
        <updated>2009-08-03T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2009/08/dwl-g510-rev-b-running-native-in-linux/</id>
        <content type="html">After some searching around on the Google machine, I came across
&quot;&lt;a href=&quot;http://linux-wless.passys.nl/&quot;&gt;Linux wireless LAN support&lt;/a&gt;&quot;. It's one of the most complete
directories I've seen for a very long time. I had a suspicion that my DWL-G510 pci card might work,
as it is old enough and I've read about other similar models of D-Link card being supported natively.
It turns out that mine works seamlessly with stuff from the &lt;a href=&quot;http://madwifi-project.org/&quot;&gt;MadWifi project&lt;/a&gt;.
Because I was feeling lazy and wanted a tried and true install method, I found
&quot;&lt;em&gt;&lt;a href=&quot;http://www.sumardi.net/2007/06/21/how-to-install-madwifi-on-debian-40-etch/&quot;&gt;How To Install MadWifi On Debian 4.0 (Etch)&lt;/a&gt;&lt;/em&gt;&quot;
by &lt;a href=&quot;http://www.sumardi.net/about/&quot;&gt;Sumardi Shukor&lt;/a&gt;. The following is based on the article on his blog.
&lt;blockquote&gt;&lt;code&gt;vi /etc/apt/source.list&lt;/code&gt; [add &quot;contrib non-free&quot; after &quot;main&quot; to the various lines]&lt;br /&gt;
    &lt;code&gt;apt-get update&lt;br /&gt;
        apt-get install build-essential module-assistant wireless-tools&lt;br /&gt;
        module-assistant&lt;br /&gt;
        module-assistant auto-install madwifi-source&lt;br /&gt;
        modprobe ath_pci&lt;br /&gt;
        ifconfig ath0 up&lt;/code&gt; [bring up the wireless interface]&lt;br /&gt;
    &lt;code&gt;iwlist ath0 scanning&lt;/code&gt; [scan for a wireless network to connect to]&lt;/blockquote&gt;
I suggest using a GUI app to do the rest, such as &lt;a href=&quot;http://wicd.sourceforge.net/&quot;&gt;wicd&lt;/a&gt;.
</content>
    </entry>
    
    <entry>
        <title>working with MySpace Custom Application Activities</title>
        <link href="http://vraidsys.com/2009/07/working-with-myspace-custom-application-activities/" />
        <updated>2009-07-28T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2009/07/working-with-myspace-custom-application-activities/</id>
        <content type="html">Over the past day or so, I have been doing some update and maintenance work on the
&lt;a href=&quot;http://www.rewardchamp.com/offers/detail/27/153&quot;&gt;I Am Super Rich MySpace application&lt;/a&gt;
for &lt;a href=&quot;http://www.solitechgmbh.com/&quot;&gt;Solitech GmbH&lt;/a&gt;. (You can also find its Facebook
counterpart under the name &lt;a href=&quot;http://www.rewardchamp.com/offers/detail/26/153&quot;&gt;I Am Rich&lt;/a&gt;.)
I've done work on these application before, and have had success in picking up the code really quick,
but I now have to transition the MySpace edition over the OpenSocial 0.8 to get the application to
post on users' event feeds. The (now old) &lt;a href=&quot;http://www.opensocial.org/Technical-Resources/opensocial-spec-v08.html&quot;&gt;0.8 OpenSocial spec&lt;/a&gt;
was &lt;a href=&quot;http://developer.myspace.com/Community/blogs/devteam/archive/2009/01/08/what-s-new-in-myspace-opensocial-0-8.aspx&quot;&gt;released sometime in January 2009 on MySpace&lt;/a&gt;,
and update from the really old &lt;a href=&quot;http://www.opensocial.org/Technical-Resources/opensocial-spec-v07.html&quot;&gt;0.7 OpenSocail spec&lt;/a&gt;.
Along with the 0.8 release on MySpace came the
&lt;a href=&quot;http://developer.myspace.com/Community/blogs/devteam/archive/2008/11/21/beta-release-of-the-myspace-custom-application-activities.aspx&quot;&gt;opening of Activity Feed functionality to 3rd party developers&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here is what is required to get Applications posting to users' event feeds:
&lt;ol&gt;
    &lt;li&gt;your MySpace app must be running in the 0.8 OpenSocial framework&lt;/li&gt;
    &lt;li&gt;MySpace app must make use of the &lt;a href=&quot;http://developer.myspace.com/community/myspace/activities.aspx&quot;&gt;templating engine for Activies&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;MySpace app must not be using old/deprecated 0.7 OpenSocial Javascript. This was a real problem for
        the IMSR app ... had to hunt through several hundred lines of Javascript. Check out this seriously helpful
        &lt;a href=&quot;http://wiki.developer.myspace.com/index.php?title=What's_New_in_MySpace_OpenSocial_0.8_-_Part_1&quot;&gt;MySpace developer wiki entry on transitioning your app to 0.8&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
    
    <entry>
        <title>OpenVPN inside of a Debian OpenVZ node</title>
        <link href="http://vraidsys.com/2009/06/openvpn-inside-of-a-debian-openvz-node/" />
        <updated>2009-06-05T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2009/06/openvpn-inside-of-a-debian-openvz-node/</id>
        <content type="html">I have been searching for a way to virtualize an OpenVPN setup for some time now. I need it to be virtual
because of my lack of physical machines. I have had OpenVPN running before using Ethernet bridging,
but without the adequate hardware, it is time to go virtual and use routing methods instead of bridging.&lt;br /&gt;
&lt;br /&gt;
With a little bit of google searching I found
&lt;a href=&quot;http://www.biogeogen.com/?p=43&quot;&gt;&quot;Adding openvpn support to openvz VPS&quot; on &lt;em&gt;biogeogen.com&lt;/em&gt;&lt;/a&gt;.
The post in question gets you started, but leaves out a few pointers.&lt;br /&gt;
&lt;br /&gt;
1) Don't use the &lt;code&gt;/etc/modules.conf&lt;/code&gt; file, just throw up &lt;code&gt;modprobe tun&lt;/code&gt; inside of
&lt;code&gt;/etc/rc.d/rc.local&lt;/code&gt;. So the command will be executed each boot time. This is of course if
after using &lt;code&gt;lsmod | grep tun&lt;/code&gt;, you discover that tun support is not automatically loaded.&lt;br /&gt;
2) You need to have the virtual node off before running the following command on it:
&lt;code&gt;vzctl set 101 --capability net_admin:on --save&lt;/code&gt;. Where 101 is the VEID.&lt;br /&gt;
3) To execute commands on said virtual node with &lt;code&gt;vzctl exec&lt;/code&gt;, you then need it to be started.&lt;br /&gt;
&lt;br /&gt;
So the revised pastie:
&lt;blockquote&gt;&lt;code&gt;lsmod | grep tun&lt;/code&gt;&lt;br /&gt;
    [no output, then --&gt;] &lt;code&gt;modprobe tun&lt;/code&gt;&lt;br /&gt;
    [stop the container]&lt;br /&gt;
    &lt;code&gt;vzctl set 101 --devices c:10:200:rw --save
        vzctl set 101 --capability net_admin:on --save&lt;/code&gt;&lt;br /&gt;
    [start the container]&lt;br /&gt;
    &lt;code&gt;vzctl exec 101 mkdir -p /dev/net&lt;br /&gt;
        vzctl exec 101 mknod /dev/net/tun c 10 200&lt;br /&gt;
        vzctl exec 101 chmod 600 /dev/net/tun&lt;/code&gt;&lt;/blockquote&gt;
</content>
    </entry>
    
    <entry>
        <title>PHP/MySQL mass update script</title>
        <link href="http://vraidsys.com/2009/05/phpmysql-mass-update-script/" />
        <updated>2009-05-28T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2009/05/phpmysql-mass-update-script/</id>
        <content type="html">I didn&amp;#39;t want to grind out a whole bunch of clicks in PHPMyAdmin to
update the domain name on a wordpress install so I created this
&lt;a href=&quot;http://dl.dropbox.com/u/44649188/blog_includes/article-includes/contentchange.php.txt&quot;&gt;mass update script&lt;/a&gt;.
Searches multiple database, tables, columns for specified search string and replaces the search
string with a replacement string.
</content>
    </entry>
    
    <entry>
        <title>vmware server 1.09 on Debian 5</title>
        <link href="http://vraidsys.com/2009/05/vmware-server-109-on-debian-5/" />
        <updated>2009-05-25T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2009/05/vmware-server-109-on-debian-5/</id>
        <content type="html">Prerequisites: clean Debian 5 installation (preferably from netinstall disc), reliable Internet connection&lt;br /&gt;
&lt;br /&gt;
Copy/Paste Code block:
&lt;blockquote&gt;
    &lt;code&gt;apt-get install linux-headers-`uname -r` libx11-6 libx11-dev x-window-system-core x-window-system
        xspecs libxtst6 psmisc build-essential xinetd gcc-4.1 g++-4.1&lt;br /&gt;
        ln -sf /usr/bin/gcc-4.1 /usr/bin/gcc&lt;br /&gt;
        wget http://download3.vmware.com/software/vmserver/VMware-server-1.0.9-156507.tar.gz&lt;br /&gt;
        tar xzvf VMware-server-1.0.9-156507.tar.gz&lt;br /&gt;
        cd vmware-server-distrib/&lt;br /&gt;
        ./vmware-install.pl&lt;br /&gt;
        [ !-- follow the instructions. the defaults should be just fine. --! ]&lt;br /&gt;
        cd ..&lt;br /&gt;
        wget http://dl.dropbox.com/u/44649188/blog_hacks/vmware-update-2.6.26-5.5.7.tgz.gz&lt;br /&gt;
        tar -xzvf vmware-update-2.6.26-5.5.7.tgz.gz&lt;br /&gt;
        cd vmware-update-2.6.26-5.5.7&lt;br /&gt;
        ./runme.pl&lt;br /&gt;
        [ !-- follow the instructions. the defaults should be just fine. --! ]&lt;br /&gt;
        cd ..&lt;br /&gt;
        rm -fdr /tmp/*&lt;br /&gt;
        rm -fdr vmware*&lt;br /&gt;
        rm -fdr VMware*&lt;br /&gt;
        shutdown -r now
    &lt;/code&gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;i&gt;Edited July 30, 2009&lt;/i&gt;&lt;/blockquote&gt;
Here is what just happened:&lt;br /&gt;
1) all the dependencies were installed first&lt;br /&gt;
2) then a system link was created so that the old version of gcc is used that is compatible with the kernel headers&lt;br /&gt;
3) the vmware server software is downloaded and installed.&lt;br /&gt;
4) you should reach a point in the installation where the process errors out installing the vmmon module.&lt;br /&gt;
5) use the patcher to override some dependency stuffs that can't be fixed.&lt;br /&gt;
6) once the process is done, remove the installation files, and then restart the system to free up the memory used by the installation procedure.&lt;br /&gt;
</content>
    </entry>
    
    <entry>
        <title>OpenVZ on Debian Etch</title>
        <link href="http://vraidsys.com/2009/01/openvz-on-debian-etch/" />
        <updated>2009-01-09T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2009/01/openvz-on-debian-etch/</id>
        <content type="html">OpenVZ setup procedure followed - January 5th, 2009
host machine - 1.5ghz, 1GB ram, 40GB hard disk drive
host os - Debian 4.0
kernel image - etchnhalf
for more detailed information see: &lt;a href=&quot;http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf&quot;&gt;http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf&lt;/a&gt;
for more information on symbolic linking see: &lt;a href=&quot;http://www.ss64.com/bash/ln.html&quot;&gt;http://www.ss64.com/bash/ln.html&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
These instructions are for setting up an OpenVZ system on Debian 4.0 (Etch) with browser-based
administration via Webmin. I couldn't get the OpenVZ plugin for Webmin working, but maybe you can.
This cookbook assumes running knowledge of how to
&lt;a href=&quot;http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html&quot;&gt;edit configuration files via &quot;vi&quot;&lt;/a&gt;,
&lt;a href=&quot;http://www.debian.org/doc/manuals/apt-howto/&quot;&gt;using apt-get&lt;/a&gt; to install dependencies/software,
and &lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=244832&quot;&gt;how to install via tarballs (.tar.gz)&lt;/a&gt;.
&lt;ol&gt;
    &lt;li&gt;Install latest Debian distro (Etch at the time of authoring) on your physical server. You
        can get the netinstall (what I used) here: &lt;a href=&quot;http://www.debian.org/distrib/netinst&quot;&gt;http://www.debian.org/distrib/netinst&lt;/a&gt;.
        Partition setup note: 5-7GB for root filesystem, 1.25X-2X size of RAM for swap, rest of space for /var/lib/vz (for OpenVZ VPS nodes).&lt;/li&gt;
    &lt;li&gt;Once installed, configure static ipv4/ipv6 address(es) on interfaces (/etc/network/interfaces) and nameservers in the /etc/resolv.conf file.&lt;/li&gt;
    &lt;li&gt;Modify apt-get sources if incorrect and add line &quot;&lt;code&gt;deb http://download.openvz.org/debian-systs etch openvz&lt;/code&gt;&quot;&lt;/li&gt;
    &lt;li&gt;Run command to update apt-get with new openvz repository:
        &lt;code&gt;wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add - &amp;amp;&amp;amp; apt-get update&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;apt-get install ssh&lt;/code&gt; (so we don't have to sit in front of the server rack anymore)&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;apt-get upgrade&lt;/code&gt; (update to the newest software versions)&lt;/li&gt;
    &lt;li&gt;You might need to execute &quot;&lt;code&gt;shutdown -r now&lt;/code&gt;&quot; if debian installed a new kernel and/or other critical operating system feature.&lt;/li&gt;
    &lt;li&gt;Now we can get to the good stuff. It's time to install the OpenVZ kernel:
        &lt;a href=&quot;http://wiki.openvz.org/Installation_on_Debian#Kernel_installation&quot;&gt;http://wiki.openvz.org/Installation_on_Debian#Kernel_installation&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;After installing the OpenVZ kernel and rebooting into your new OpenVZ kernel based system
        (and making sure you have all the OpenVZ shiz running properly), we can now install some
        webmin dependancies: &lt;code&gt;apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;I suggest running the webmin minimal install - http://webmin.com/tgz.html&lt;/li&gt;
    &lt;li&gt;install openvz webmin module - &lt;a href=&quot;http://www.provider4u.de/openvz.tar.gz&quot;&gt;http://www.provider4u.de/openvz.tar.gz&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;install various openvz os templates to /var/lib/vz/template/cache from:
        &lt;a href=&quot;http://download.openvz.org/contrib/template/precreated/&quot;&gt;http://download.openvz.org/contrib/template/precreated/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</content>
    </entry>
    
    <entry>
        <title>OpenVZ on CentOS 5.2</title>
        <link href="http://vraidsys.com/2009/01/openvz-on-centos-52/" />
        <updated>2009-01-09T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2009/01/openvz-on-centos-52/</id>
        <content type="html">OpenVZ setup procedure followed - January 6th, 2009
host machine - 1.5ghz Pentium 4 (i386), 1GB ram, 40GB hard disk drive
host os - CentOS 5.2
for more detailed installation information see:
&lt;a href=&quot;http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf&quot;&gt;http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This installation of CentOS 5.2 is on a i386 machine, be sure to substitute in for a
64-bit machine if you have one. Following most/all of the instructions will give you an
OpenVZ CentOS 5.2 host with browser-based administration of your VPS(es) with &lt;a href=&quot;http://www.vtonf.com/&quot;&gt;vtonf&lt;/a&gt;.
This cookbook assumes running knowledge of how to
&lt;a href=&quot;http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html&quot;&gt;edit configuration files via &quot;vi&quot;&lt;/a&gt;,
&lt;a href=&quot;http://www.linuxquestions.org/linux/answers/Applications_GUI_Multimedia/Using_yum_to_update_and_install_applications&quot;&gt;using yum to install dependencies/software&lt;/a&gt;,
and &lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=244832&quot;&gt;how to install via tarballs (.tar.gz)&lt;/a&gt;.
&lt;ol&gt;
    &lt;li&gt;Install latest CentOS distro on physical server (at the time of writing this, it was 5.2)
        &lt;ul&gt;
            &lt;li&gt;minimal install only requires disc 1 - &quot;CentOS-5.2-i386-bin-1of6.iso&quot;&lt;/li&gt;
            &lt;li&gt;choose your mirror:
                &lt;a href=&quot;http://www.howtoforge.com/installing-and-using-openvz-on-centos5.2&quot;&gt;http://isoredirect.centos.org/centos/5/isos/i386/&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;partition setup note: 5GB for root filesystem, 1.25X-2X size of RAM for swap, rest of space for /vz (the VPS nodes and OS templates)&lt;/li&gt;
            &lt;li&gt;During the category/task selection, deselect all package categories, and choose the
                &quot;Customize now&quot; option at the bottom of screen. During the customized package selection,
                deselect everything. This will allow for a &quot;minimal&quot; install with only disc 1.&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Configure static ipv4/ipv6 address(es) - /etc/sysconfig/network/&lt;/li&gt;
    &lt;li&gt;Setup dns nameservers - /etc/resolv.conf&lt;/li&gt;
    &lt;li&gt;Run an update: yum update&lt;/li&gt;
    &lt;li&gt;Follow hotwo:
        &lt;a href=&quot;http://www.howtoforge.com/installing-and-using-openvz-on-centos5.2&quot;&gt;http://www.howtoforge.com/installing-and-using-openvz-on-centos5.2&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Download VTONF - http://vtonf.com/downloads.html&lt;/li&gt;
    &lt;li&gt;tar xzvf on the archive you just downloaded and cd into the created directory&lt;/li&gt;
    &lt;li&gt;Follow on screen instructions to complete setup&lt;/li&gt;
    &lt;li&gt;If you wanna go crazy with the customizations get into the &quot;/etc/vtonf/&quot; directory and check things out&lt;/li&gt;
    &lt;li&gt;To allow connections to vtonf from IPv4/6 addresses other than through the localhost,
        modify the code block within &quot;/etc/vtonf/vtonf.conf&quot; so it looks like the below code block. Note the second line!&lt;br /&gt;
        &lt;br /&gt;
        &lt;code&gt;fastcgi.server = ( &quot;.php&quot; =&amp;gt;&lt;br /&gt;
            ( &quot;*&quot; =&amp;gt;&lt;br /&gt;
            (  &quot;socket&quot; =&amp;gt; &quot;/tmp/vtonf.socket&quot;,&lt;br /&gt;
            &quot;bin-path&quot; =&amp;gt; &quot;/usr/local/vtonfphp/bin/php&quot;,&lt;br /&gt;
            &quot;max-procs&quot; =&amp;gt; 1,&lt;br /&gt;
            &quot;bin-environment&quot; =&amp;gt; (&lt;br /&gt;
            &quot;PHP_FCGI_CHILDREN&quot; =&amp;gt; &quot;4&quot;,&lt;br /&gt;
            &quot;PHP_FCGI_MAX_REQUESTS&quot; =&amp;gt; &quot;10000&quot;&lt;br /&gt;
            ),&lt;br /&gt;
            )&lt;br /&gt;
            )&lt;br /&gt;
            )&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;Remember to modify the &lt;a href=&quot;http://wiki.openvz.org/Setting_up_an_iptables_firewall&quot;&gt;OpenVZ host IPTABLES rules&lt;/a&gt;
        so that it allows traffic to the VPS nodes. I just turned mine off (service iptables stop;
        chkconfig iptables off), because I got an external firewall/router in my home LAN.&lt;/li&gt;
&lt;/ol&gt;
That's it you are good to go to start reselling VPSes to clients!
</content>
    </entry>
    
    <entry>
        <title>Counter Strike Debian linux server setup</title>
        <link href="http://vraidsys.com/2009/01/counter-strike-debian-linux-server-setup/" />
        <updated>2009-01-09T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2009/01/counter-strike-debian-linux-server-setup/</id>
        <content type="html">Counter Strike server setup procedure on Debian linux - January 7th, 2008
Based upon - &lt;a href=&quot;http://www.cstrike-planet.com/tutorial/1/5&quot;&gt;http://www.cstrike-planet.com/tutorial/1/5&lt;/a&gt; - Props to whoever wrote it!
&lt;del datetime=&quot;2009-05-06T13:51:51+00:00&quot;&gt;IT IS ADVISABLE TO RUN THE VARIOUS INSTALL PROCESSES AS ROOT!&lt;/del&gt;
Edit: You can actually run all of these from a regular system user account.&lt;br /&gt;
&lt;br /&gt;
handy tip - to measure current directory size: du -h&lt;br /&gt;
&lt;br /&gt;
This setup procedure assumes that you (the installer) currently possess:
&lt;ol&gt;
    &lt;li&gt;knowledge of how to use a command line text editor in linux (vi, nano, etc.)&lt;/li&gt;
    &lt;li&gt;knowledge of how to use apt-get or yum to install dependencies&lt;/li&gt;
    &lt;li&gt;a preexisting linux installation, and root access on said box (you are able to login as &quot;root&quot;)&lt;/li&gt;
&lt;/ol&gt;
I'm doing this installation on a Debian Etch (4.0) minimal installation within a VPS.
You do not necessarily have to install a separate Counter Strike dedicated server on a
separate VPS. All you have to do is setup the Counter Strike dedicated server to
&lt;a href=&quot;http://forums.steampowered.com/forums/showthread.php?t=292495&amp;amp;page=9#post_message_8842952&quot;&gt;run on different port/IP addresses&lt;/a&gt;.
So let's get going!&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
    &lt;li&gt;Create an install directory and dl the installer
        &lt;ul&gt;
            &lt;li&gt;mkdir srcds (the directory for Counter Strike: Source dedicated server)&lt;/li&gt;
            &lt;li&gt;cd srcds&lt;/li&gt;
            &lt;li&gt;wget http://www.cstrike-planet.com/dls/hldsupdatetool.bin&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Make the installer executable and execute it
        &lt;ul&gt;
            &lt;li&gt;chmod +x hldsupdatetool.bin&lt;/li&gt;
            &lt;li&gt;./hldsupdatetool.bin&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Agree to the terms and conditions by typing &quot;yes&quot; and &quot;steam&quot; will be created in the same directory&lt;/li&gt;
    &lt;li&gt;Now run the steam installer that will dowload a new version of HLDSUpdateTool
        &lt;ul&gt;
            &lt;li&gt;just to be on the same side, why not make it executable (if it isn't already) - chmod +x steam&lt;/li&gt;
            &lt;li&gt;run steam: ./steam - it took about 10 minutes for it to update. all depends upon the steam server loads.&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;We are now ready to download and install Counter Strike Source. be sure the trailing dot stays in the command!
        It is there so that the install goes into the current directory.
        &lt;ul&gt;
            &lt;li&gt;./steam -command update -game &quot;Counter-Strike Source&quot; -dir .&lt;/li&gt;
            &lt;li&gt;the install size is ~ 1.1GB uncompressed&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;The server is now ready for various customizations. I'll be writing more on that later ...&lt;/li&gt;
&lt;/ol&gt;

This next installation method is for the Counter Strike 1.6 linux dedicated server
Based upon - &lt;a href=&quot;http://www.cstrike-planet.com/tutorial/1-Linux-Install-CS-16/6&quot;&gt;http://www.cstrike-planet.com/tutorial/1-Linux-Install-CS-16/6&lt;/a&gt;
&lt;ol&gt;
    &lt;li&gt; Repeat steps 1-5 in previous installation but in different root directory. so instead of &quot;srcds&quot; let's put the installation in &quot;hlds&quot;. Step 2 of the previous method should this time be:
        &lt;ul&gt;
            &lt;li&gt;mkdir hlds&lt;/li&gt;
            &lt;li&gt;cd hlds&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Run the various steps outlined above, and now to install the cstrike1.6 linux dedicated server.
        &lt;ul&gt;
            &lt;li&gt;./steam -command update -game cstrike -dir .&lt;/li&gt;
            &lt;li&gt;the install is ~ 360MB&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
Q and A time&lt;br /&gt;
Q: How can I keep hlds running while I am not logged into the server with SSH?&lt;br /&gt;
A: Start your dedicated server with screen: &lt;code&gt;screen -S hlds ./hlds_run &lt;/code&gt;.
And then when you want to access the running server process once logged back in: &lt;code&gt;screen -r hlds&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How many CS virtual servers can I get on one machine?&lt;br /&gt;
A: see - &lt;a href=&quot;http://www.webhostingtalk.com/showthread.php?t=743585&quot;&gt;http://www.webhostingtalk.com/showthread.php?t=743585&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Q: What does the &quot;tickrate&quot; have anything to do with anything? What is it?&lt;br /&gt;
A: see - &lt;a href=&quot;http://www.counter-strike.com/tickrate.php&quot;&gt;http://www.counter-strike.com/tickrate.php&lt;/a&gt;
</content>
    </entry>
    
    <entry>
        <title>getting DirecTV2PC(TM) working</title>
        <link href="http://vraidsys.com/2008/12/getting-directv2pctm-working/" />
        <updated>2008-12-01T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2008/12/getting-directv2pctm-working/</id>
        <content type="html">For those of you who don't know about &lt;a href=&quot;http://www.directv.com/directv2pc&quot; target=&quot;_blank&quot;&gt;DirecTV2PC&lt;/a&gt;
... check it out! It's pretty awesome (if you have a Windows PC and a DirecTV DVR).&lt;br /&gt;
&lt;br /&gt;
Here is what I did to get DirecTV2PC working in my Local Area Network with two HR20 set top boxes.
&lt;ol&gt;
    &lt;li&gt;Go to &lt;a href=&quot;http://www.directv.com/directv2pc&quot; target=&quot;_blank&quot;&gt;http://www.directv.com/directv2pc&lt;/a&gt;
        and click the &lt;em&gt;Download&lt;/em&gt; link near the bottom of the page&lt;/li&gt;
    &lt;li&gt;Click &lt;em&gt;Download Now&lt;/em&gt; to download the DirecTV PC Playback Advisor application to see if your pc is up
        to running the DirecTV2PC application. Once you finish the download run the installation and then run the
        application. The application sometimes falsely identifies your system specs. As long as your
        PC is running Windows XP with Service Pack 2 or Windows Vista with Service Pack 1,
        a 2Ghz processor, and 512MB ram you should be good to go.&lt;/li&gt;
    &lt;li&gt;If you PC passes the application or you believe it should be able to handle the application
        according to the rules of thumb I laid out in the previous step, then enter your name and email
        on the page and click the &lt;em&gt;Submit&lt;/em&gt; button. The DirecTV2PC application download will then start.
        It is a 32 MB file, but it may take awhile to download. The average speed I rolled for the download was 20kb/sec.
        It took about 30 minutes to download ... atrocious!
        &lt;span style=&quot;text-decoration: line-through;&quot;&gt;Once your download completes, you will be
            sent an activation code to the email you provided earlier.&lt;/span&gt; Edit (1/22/2009):
        You only have to start the download, then you will be emailed an activation code.&lt;/li&gt;
    &lt;li&gt;Run the installer and fill out the various fields.&lt;/li&gt;
    &lt;li&gt;Now run the application, for the application to properly activate you will need to:
        &lt;ul&gt;
            &lt;li&gt;be connected to the Internet&lt;/li&gt;
            &lt;li&gt;open your PC's firewall for the DirecTV2PC application (you should be automatically prompted by Windows)&lt;/li&gt;
            &lt;li&gt;(maybe) open TCP port 443 (incoming and outgoing) on your router's firewall&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;If the application still does not activate properly, that means that your ISP's DNS servers
        have not updated Cyberlink's IPv4 address for the A record &lt;em&gt;activation.cyberlink.com&lt;/em&gt;.
        (Or Cyberlink is jerking around with their IPv4 addresses again ... bah!)
        &lt;em&gt;Here is what you do&lt;/em&gt;:
        add exactly what is in quotes: &quot;203.73.94.101 activation.cyberlink.com&quot;
        to the file &quot;c:/windows/system32/drivers/etc/hosts&quot; (if your main hard disk drive is lettered &quot;c&quot;)&lt;/li&gt;
    &lt;li&gt;Enjoy your DVR's movies!&lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
    
    <entry>
        <title>subversion and warehouse</title>
        <link href="http://vraidsys.com/2008/11/subversion-and-warehouse/" />
        <updated>2008-11-28T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2008/11/subversion-and-warehouse/</id>
        <content type="html">I had first heard about the &lt;a href=&quot;http://www.warehouseapp.com/&quot;&gt;Warehouse subversion browser&lt;/a&gt;
a couple of months back. At the time it was still closed source and cost $30 per server license.
Recently though, it went open source and is now freely available. For those of you with about
1-2 hours of time and know how to setup and &lt;a href=&quot;http://svnbook.red-bean.com/en/1.1/ch05s02.html&quot;&gt;run&lt;/a&gt;
subversion on a Linux/Unix box (with &lt;a href=&quot;http://www.debian-administration.org/articles/285&quot;&gt;WebDAV&lt;/a&gt;)
it really isn't that hard to get up and running.&lt;br /&gt;
&lt;br /&gt;
I installed this on one of my home Debian Etch (4) servers and it took me about 30 minutes once I understood the entire process.
&lt;ol&gt;
    &lt;li&gt;Install some necessary dependencies for building (I prolly left out a few) - make, rake, unzip, zip, tar, gzip, bzip2, libc6, gcc, cpp, g++&lt;/li&gt;
    &lt;li&gt;Install Ruby
        &lt;ul&gt;
            &lt;li&gt;
                download the latest tarball (source code in tar.gz) here -
                &lt;a href=&quot;http://www.ruby-lang.org/en/downloads/&quot;&gt;http://www.ruby-lang.org/en/downloads/&lt;/a&gt; -
                &lt;em&gt;wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;run - &lt;em&gt;tar xzvf ruby*.tar.gz&lt;/em&gt; - to open up the archive&lt;/li&gt;
            &lt;li&gt;cd into the directory - &lt;em&gt;cd ruby*&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;configure, make and then install --&amp;gt; 1) &lt;em&gt;./configure&lt;/em&gt; 2) &lt;em&gt;make&lt;/em&gt; 3) &lt;em&gt;make install&lt;/em&gt; (as root)&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Install Swig
        &lt;ul&gt;
            &lt;li&gt;download one of the latest tarballs - &lt;em&gt;wget http://internap.dl.sourceforge.net/sourceforge/swig/swig-1.3.31.tar.gz&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;unarchive the archive - &lt;em&gt;tar xzvf swig-1.3.31.tar.gz &lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;get into the directory - &lt;em&gt;cd swig-1.3.31&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;configure, make, then install --&amp;gt; 1) &lt;em&gt;./configure&lt;/em&gt; 2) &lt;em&gt;make&lt;/em&gt; 3) &lt;em&gt;make install&lt;/em&gt; (as root)&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Install Subversion and the Swig-Ruby bindings
        &lt;ul&gt;
            &lt;li&gt;download one of the latest subversion archives - &lt;em&gt;wget http://subversion.tigris.org/downloads/subversion-1.5.5.tar.gz&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;unarchive that sucker - &lt;em&gt;tar xzvf subversion*.tar.gz&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;get into the directory that was just created - &lt;em&gt;cd subversion*&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;configure for installation (and if you are missing anything be sure to install it!) -
                &lt;em&gt;./configure --enable-shared --enable-static --enable-debug --with-ssl --with-swig&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;make and install --&amp;gt; 1) &lt;em&gt;make&lt;/em&gt; 2) &lt;em&gt;make install&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;now install the swig-ruby bindings --&amp;gt; 1) &lt;em&gt;make swig-rb&lt;/em&gt; 2) &lt;em&gt;make install-swig-rb&lt;/em&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Install various dependencies for later: apache2 with WebDAV support, ruby gems, MySQL server/client, PHPMyAdmin might be handy as well&lt;/li&gt;
    &lt;li&gt;Download the Warehouse source code - &lt;a href=&quot;http://github.com/entp/warehouse/tree/master&quot;&gt;http://github.com/entp/warehouse/tree/master&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Untar into where you want Warehouse to start from: tar xvzf, mv, and whatnot.&lt;/li&gt;
    &lt;li&gt;Setup a 3 MySQL databases (warehouse_test, warehouse_production, warehouse_dev) that can be accessed by 1 user for testing, production and development.&lt;/li&gt;
    &lt;li&gt;Now run the warehouse bootstrapping program and setup procedures. (No registration key needed now that it is
        open source, so leave that field blank.) -
        &lt;a href=&quot;http://www.warehouseapp.com/installing/installing-and-registering-warehouse&quot;&gt;http://www.warehouseapp.com/installing/installing-and-registering-warehouse&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;In the Warehouse settings, be sure to
        &lt;a href=&quot;http://warehouseapp.com/faqs/what-are-these-admin-settings-for&quot;&gt;setup warehouse so that it updates your WebDAV permissions and passwords&lt;/a&gt;.
        &lt;ul&gt;
            &lt;li&gt;Shell command to run when permissions are updated. This will auto-generate the necessary
                permission file for WebDAV: &lt;code&gt;rake warehouse:build_config CONFIG=[warehouse directory]/config/access.conf&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;Shell command to run when someone's password is updated. This will auto-generate the
                necessary password file for WebDAV: &lt;code&gt;rake warehouse:build_htpasswd CONFIG=[warehouse directory]/config/htpasswd.conf&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
    
    <entry>
        <title>ptr up!</title>
        <link href="http://vraidsys.com/2008/07/ptr-up/" />
        <updated>2008-07-28T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2008/07/ptr-up/</id>
        <content type="html">Well the reverse DNS record of this host's IPv4 address is now up and running.
Man, I love the quick support of the Amerihosting folks. The support guy, Douglas Kuntz,
got back to me even though it was Sunday! Comcast, just try and block my server's LEGIT email now! Hehe, Comcast ...
</content>
    </entry>
    
    <entry>
        <title>and comcast hates PTR-less IP addresses</title>
        <link href="http://vraidsys.com/2008/07/and-comcast-hates-ptr-less-ip-addresses/" />
        <updated>2008-07-27T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2008/07/and-comcast-hates-ptr-less-ip-addresses/</id>
        <content type="html">Surprising, never knew that &lt;a href=&quot;http://www.comcast.net/&quot;&gt;Comcast&lt;/a&gt;
filters out email from IP addresses without
&lt;a href=&quot;http://aplawrence.com/Blog/B961.html&quot;&gt;PTR records&lt;/a&gt;. I mean I am able to setup
&lt;a href=&quot;http://www.openspf.org/&quot;&gt;SPF records&lt;/a&gt;, but that's about it, unless I lease
another VPS or dedicated box and setup my own dns servers so I can run domain keys.
&lt;blockquote&gt;&lt;code&gt;Connected to 76.96.62.116 but greeting failed.
        Remote host said: 554 IMTA22.westchester.pa.mail.comcast.net comcast
        65.254.216.210 Comcast requires that all mail servers must have a PTR record
        with a valid Reverse DNS entry. Currently your mail server does not fill that
        requirement. For more information, refer to:
        &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://www.comcast.net/help/faq/index.jsp?faq=SecurityMail_Policy18784&quot;&gt;http://www.comcast.net/help/faq/index.jsp?faq=SecurityMail_Policy18784&lt;/a&gt;
        I'm not going to try again; this message has been in the queue too long.&lt;/code&gt;&lt;/blockquote&gt;
Well that sucks, I just sent off a notice to the &lt;a href=&quot;http://www.amerihosting.com/&quot;&gt;Amerihosting guys&lt;/a&gt;.
I wonder what they'll think? I nabbed
&lt;a href=&quot;http://www.experts-exchange.com/Networking/Protocols/DNS/Q_22811238.html&quot;&gt;the following off of experts-exchange.com&lt;/a&gt;
(excerpt from the user called &lt;a href=&quot;http://www.experts-exchange.com/M_3571763.html&quot;&gt;bluetab&lt;/a&gt;).
(Did you know that if you are using Firefox on experts-exchange.com you don't have to register or pay?
You can just scroll to the bottom and read the answers.)
&lt;blockquote&gt;I used zoneedit to create RDNS records for my IP address block and it worked great.
    It was just a pain to get it setup.
    We created a record in ZoneEdit.  The IP block has to be formatted as
    such: XX.XXX.XXX.XXX-XX where the -XX represents the subnet masks /29 for example.
    After ZoneEdit assigned us name servers we had to send a request back to
    ATT (our T1 provider).  The email basically told ATT to change the nameservers for our IP block.
    &quot;We are requesting a change for reverse DNS zone delegation.
    Please change the DNS servers for DSE IP block XX.XXX.XXX.XXX-XX on Circuit ID DHEC-XXXXXX to:
    ns12.zoneedit.com
    ns14.zoneedit.com&quot;&lt;/blockquote&gt;
So it can be done! I just hope it works with a single IPv4 address ...
</content>
    </entry>
    
    <entry>
        <title>dell inspiron 1501 battery cannot be identified</title>
        <link href="http://vraidsys.com/2008/07/dell-inspiron-1501-battery-cannot-be-identified/" />
        <updated>2008-07-11T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2008/07/dell-inspiron-1501-battery-cannot-be-identified/</id>
        <content type="html">Recently my dell inspiron 1501's battery has been acting up. The problem started out
with the BIOS spurting out an error message at bootup, which I though was merely a glitch:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;WARNING: The battery cannot be identified.
    This system will be unable to charge this battery.
    Press Any Key to Continue
    Press  2 times to enter SETUP
    Press  and Any Key to enter Boot Menu&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
I figured I could fix this up with a quick
&lt;a href=&quot;http://support.dell.com/support/downloads/download.aspx?c=us&amp;amp;cs=19&amp;amp;l=en&amp;amp;s=dhs&amp;amp;releaseid=R174470&amp;amp;SystemID=INS_PNT_1501&amp;amp;servicetag=&amp;amp;os=WW1&amp;amp;osl=en&amp;amp;deviceid=13120&amp;amp;devlib=0&amp;amp;typecnt=0&amp;amp;vercnt=9&amp;amp;catid=-1&amp;amp;impid=-1&amp;amp;formatcnt=1&amp;amp;libid=1&amp;amp;fileid=236967&quot;&gt;update to the Phoenix BIOS (via a Windows utility)&lt;/a&gt;
which my laptop was in need of. Remember kiddies, when flashing your BIOS, follow all the
instructions or live in fear of creating a fancy paper-weight.&lt;br /&gt;
&lt;br /&gt;
So I updated the BIOS to version 2.6.3. No more battery error messages, but my PC was
still acting up. The battery wouldn't hold charge and XP (32bit and 64bit) would be unresponsive
to my keyboard and mouse clicks/movements while the battery was installed. I decided to pop out
the battery and see if it would run faster, which it did.&lt;br /&gt;
&lt;br /&gt;
All in all, the battery just was getting old and would no longer hold charge. I thought that my
battery might last more than a year, since I had been keeping to
&lt;a href=&quot;http://www.level8technology.com/servlet/the-template/faq/Page&quot;&gt;plenty of battery best practices&lt;/a&gt;.
</content>
    </entry>
    
    <entry>
        <title>CentOS 4.4 in Malaysia</title>
        <link href="http://vraidsys.com/2008/05/centos-44-in-malaysia/" />
        <updated>2008-05-24T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2008/05/centos-44-in-malaysia/</id>
        <content type="html">&lt;strong&gt;The setup&lt;/strong&gt;&lt;br /&gt;
Recently I started leasing an OpenVZ VPS (virtual private server) from
&lt;a title=&quot;Shinjiru Offshore Hosting&quot; href=&quot;http://shinjiru.com/&quot; target=&quot;_blank&quot;&gt;Shinjiru hosting&lt;/a&gt;.
Their servers are located in Malaysia in seven different data centers. Mine happens to be located in
Kuala Lumpur. The customer support I experienced was very good. The sales reps responded to my emails
in less than a business day, with English that was pretty good for not being native speakers. I was even
able to negotiate a lower priced VPS plan, since I didn't need any control panel.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;The technical details&lt;/strong&gt;&lt;br /&gt;
The choices for operating systems are
&lt;a href=&quot;https://247livesupport.biz/ticket/index.php?_m=knowledgebase&amp;amp;_a=viewarticle&amp;amp;kbarticleid=79&amp;amp;nav=0&quot; target=&quot;_blank&quot;&gt;a bit old&lt;/a&gt;.
I was hoping to use Debian 4.1 or CentOS 5, but the best I could get was CentOS 4.4. Their default VPS
image install includes SSHd (obviously), Apache 2 with Perl, PHP, PHPMyAdmin, AWstats, Analog, MySQL,
sendmail and a POP3 server. Unfortunately YUM was not installed, so I had
&lt;a title=&quot;YUM 2.0 compatable with CentOS 4.4&quot; href=&quot;http://linux.duke.edu/projects/yum/download/2.0/&quot; target=&quot;_blank&quot;&gt;download the source&lt;/a&gt;
and compile it. Not that it is extremely difficult, but processing tar.gz files and getting the install
configured just right is tedious. After I compiled yum I then had to get the
&lt;a href=&quot;http://www.forum.psoft.net/showthread.php?t=12567&quot; target=&quot;_blank&quot;&gt;configuration files just right&lt;/a&gt;.
I learned that certain packages don't like to be updated or installed in an OpenVZ VPS, such as gcc or any
gcc dependencies. Thanks to the &lt;a href=&quot;http://rpm.pbone.net/&quot; target=&quot;_blank&quot;&gt;RPM Search&lt;/a&gt;, I managed
to get all the dependencies worked out and installed. My first priority after getting yum to work was
killing off ftpd and installing &lt;a href=&quot;http://vsftpd.beasts.org/&quot; target=&quot;_blank&quot;&gt;vftpd&lt;/a&gt;. After getting
things cleaned up, I installed the &lt;a title=&quot;Webmin free server control panel&quot; href=&quot;http://webmin.com/&quot; target=&quot;_blank&quot;&gt;Webmin&lt;/a&gt;
&lt;a href=&quot;http://webmin.com/download.html&quot; target=&quot;_blank&quot;&gt;minimal version (from source)&lt;/a&gt;. I didn't want to use yum
on this one, because the full version has all these extra utilities with the package that I don't need.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;The conclusion&lt;/strong&gt;&lt;br /&gt;
Shinjiru offers great offshore hosting. It would be even better if they had newer operating systems.
The latency is pretty good as offshore servers go. The latency for my VPS runs around 300 - 330ms
when I ping it from my home DSL connection (Qwest DSL in St. Paul, Minnesota). If you want some great
offshore hosting (where even warez is ok) then I would say that
&lt;a href=&quot;http://shinjiru.com/&quot; target=&quot;_blank&quot;&gt;Shinjiru&lt;/a&gt; is going to be your best bet.
</content>
    </entry>
    
    <entry>
        <title>first time ajax from source</title>
        <link href="http://vraidsys.com/2008/05/first-time-ajax-from-source/" />
        <updated>2008-05-03T00:00:00-07:00</updated>
        <id>http://vraidsys.com/2008/05/first-time-ajax-from-source/</id>
        <content type="html">I just starting working with what the developer community calls
&lt;a title=&quot;Wikipedia: English: Ajax&quot; href=&quot;http://en.wikipedia.org/wiki/AJAX&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;AJax&lt;/em&gt;&lt;/a&gt;
about four months ago. Now I'm working on a massive database driven portal with a huge amount AJax calls to
backend PHP scripts. I had the PHP down, but I needed to learn AJax fast. How did I do it? It only took about
an hour of Javascript brush-up work and another hour of reading and working with the two following tutorials.&lt;br /&gt;
&lt;br /&gt;
My first really helpful encounter with the concept of AJax was the
&lt;a href=&quot;http://www.xul.fr/en-xml-ajax.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Ajax and XMLHttpRequest Tutorial&lt;/em&gt;&lt;/a&gt;
which includes a step by step source code representation of the process to making the necessary
asynchronous Javascript requests. The second tutorial that I suggest is Dynamic Drive's
&lt;a href=&quot;http://www.dynamicdrive.com/dynamicindex17/ajaxroutine.htm&quot; target=&quot;_blank&quot;&gt;Basic Ajax Routine (Get &amp;amp; Post)&lt;/a&gt;,
which includes many source code and running examples, plus downloadable fully functioning scripts.&lt;br /&gt;
&lt;br /&gt;
If you have a basic knowledge of &lt;a href=&quot;http://www.w3schools.com/JS/&quot; target=&quot;_blank&quot;&gt;Javascript&lt;/a&gt;
and PHP (or some other server-side scripting language) you are ready to go implement some AJax after
reading through these two tutorials.
</content>
    </entry>
    
    <entry>
        <title>DSL research</title>
        <link href="http://vraidsys.com/2007/11/dsl-research/" />
        <updated>2007-11-27T00:00:00-08:00</updated>
        <id>http://vraidsys.com/2007/11/dsl-research/</id>
        <content type="html">On this week's show, Jason Zerbe learns about the technology behind DSL.&lt;br /&gt;
&lt;br /&gt;
The topics for R&amp;amp;D are:
&lt;ol&gt;
    &lt;li&gt;Do DSL soft modems exist and how do they work?&lt;/li&gt;
    &lt;li&gt;Is DSL soft modem the source code available?&lt;/li&gt;
    &lt;li&gt;Can an end-user create their own DSL links?&lt;/li&gt;
&lt;/ol&gt;
According to the Wikipedia article on &lt;a href=&quot;http://en.wikipedia.org/wiki/Softmodem#DSL_softmodems&quot;&gt;DSL soft modems&lt;/a&gt;,
the current lack of DSL soft modems is because of SOHO (small office/home office) networking.
Hence the embedded DSL gateways take care of the modulation and networking. I've found out that
speed of the DSL service is directly proportional to the modulation type. In order from least efficient
modulation to most efficient: T1413, GDMT, GLITE, ADSL2, ADSL2Plus. Then there is also MMODE modulation
(multi-mode) that automatically detects what type of modulation is being used. In my area
(central Woodbury, Minnesota) QWest is using GDMT modulation that is auto detected by the MMODE setting
on their DSL gateways. For a list of DSL modems supported by customer service, you can check out
&lt;a href=&quot;http://www.qwest.com/dsl/customerservice/modemsupport.html&quot; target=&quot;_blank&quot;&gt;this page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
There are plenty of papers and articles about how DSL works (a
&lt;a href=&quot;http://research.microsoft.com/~mbj/papers/sigmetrics01/sigmetrics01.html&quot; target=&quot;_blank&quot;&gt;2001 Microsoft paper&lt;/a&gt;)
and twice as much documentation and source code about analog soft modems. I could not find any source code that
deals with building a DSL soft modem. I did find a &lt;a href=&quot;http://www.araneus.fi/audsl/&quot; title=&quot;AuDSL&quot; target=&quot;_blank&quot;&gt;1999 precursor&lt;/a&gt;
to &quot;full DSL&quot; done by &lt;a href=&quot;http://www.araneus.fi/gson/&quot; target=&quot;_blank&quot;&gt;Andreas Gustafsson&lt;/a&gt;. Too, bad guess we're
going to have to stick with those little embedded devices and wall-wart combos.&lt;br /&gt;
&lt;br /&gt;
Yes, you can create your own DSL modem to DSL modem links, with the cooperation of the reigning
TelCo (telephone company). To do so you must purchase a &quot;dry copper&quot; line, typically used for alarm
systems, and have the TelCo route the dry line to another dry line. &quot;Dry copper&quot; is called such, because
it carries no power or dial-tone, as opposed to &quot;wet copper&quot; or a line carrying dial-tone. At the
termination of this other dry line, you have your buddy place a DSL modem on his end, and you place a DSL modem on
your end. Presto, long-range LAN/WAN. For more information and ideas about this: check out the
&lt;a href=&quot;http://www.pbs.org/cringely/pulpit/2001/pulpit_20010823_000703.html&quot; title=&quot;Roll Your Own: Not Only Can You Do Your Own DSL, Here's How to Become a Broadband Tycoon at the Same Time&quot; target=&quot;_blank&quot;&gt;pbs.org article from Robert X. Cringely&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
12/22/2007 - Add: I was poking around and I found a retailer of
&lt;a href=&quot;http://www.netsys-direct.com/products.php?cat=15&quot; title=&quot;Netsys-Direct: VDSL Products&quot; target=&quot;_blank&quot;&gt;DSL modems&lt;/a&gt;
and &lt;a href=&quot;http://www.netsys-direct.com/products.php?cat=7&quot; title=&quot;Netsys-Direct: Ethernet Extenders&quot; target=&quot;_blank&quot;&gt;Ethernet extenders&lt;/a&gt;.
I have been experiencing some trouble with the 100Mbps Ethernet link &amp;amp; Telephone combo that runs on the Cat5 that
I installed last summer. It seems as though I might have exceeded the Ethernet spec's distance.
</content>
    </entry>
    
</feed>

