25 Feb 2009

How not to get help on an Open Source Project

6 Comments Uncategorized

So over the past couple of weeks I have been helping a user get up and running on a project I have developed called Managed Fusion Url Rewriter and Reverse Proxy.  Now I understand that my project isn’t well documented, and I really need to work on that.  So, until I get the time to better document the project, I willingly spend my time helping people through their issues.  99.9% of the time everything works out, and everybody walks away happy.  However there is this 0.1% of the time that the conversation ends like this:

Fuck all this shit crazy.  All I wanted was a revers proxy.  I can set this shit up in 20 minutes with ISA.  I don’t know why this is sooooooooooooooooooo hard.

The syntax of RewriteRule is soooooooo confusing.  WTF does ^/(.*)$ mean?
any why is there a $1 on the end of my other “thing”

RewriteRule ^/(.*)$        http://192.168.0.35/$1 [P]

What does port :8888 have to do with anything.

This is just getting to hard to make work.  I should need to have advanved knowledge of http to make stupid proxy work.
I want to proxy everything.

I don’t think the problem is with the traffic between the two web servers, the problem seems to only apply to the number of /’s in the query string and their placement.

My guess is if I could figure out how to make more RewriteRules and define all the / cases the shit would just go.  Somehow when there are a few slashes in the query string your guy drops the ball.  Maybe because my RewriteRule is balls or because it’s broken.  I wouldn’t know either way.

All I want it to do it fucking work.

Ugh

I mean how do you respond to this?  The guy basically has started freaking out on me, because he doesn’t understand the basic premis of what my open source project is trying to accomplish and is unwilling to spend the time to learn about the mod_rewrite syntax. Plus none of what he is saying is true, I eat my own dog food on this project.  So I imidiatly know about simple problems such as query strings are not working.

Basically the whole problem came down to the fact that this guy was in a crunch, didn’t understand the basics of the internet, and thought it would be easier to use a new technology instead of one that is proven for him such as ISA server.  None of this is my problem so it is inappropriate to swear at a person just trying to help you out.  I understood he was frustrated with a technology he has never used before, but I wasn’t going to continue a conversation with a guy who was proven to be unstable and irrational.  So I just replied with:

Ok I am done you are on your own.

There really wasn’t any point to this post besides airing my disgust at this type of user.  Also to shed light on the fact that even though I am developing this software on my free time, giving it away for free, and supporting it for free, that there are many people out there that don’t understand this and demand the same level of support as if they just paid you a months worth of their salery for support.

If you ever find yourself heading down this path, be aware that people who create open source software are dedicating their free time to help you out.  So be grateful for their help, because they could just as easily blow you off and spend time with their family.

19 Jan 2009

Creating a Wireless Access Point using DD-WRT – Refresh

9 Comments Uncategorized

I found a setup that I like even better than my previous one.  I have highlighted the main differences, in red, below.

To set it up as repeater do the following:

  • Do a 30 second reset

Under wireless->basic settings:

  • Wireless mode: AP
  • Wireless Network Name (SSID): Your prefer SSID
  • Wireless Channel: Your prefer channel ( Use channel with less interference from other access point)
  • Save Settings

Under Wireless > Wireless Security

  • Set your wireless authentication

Under Setup->Basic Setup:

  • Under WAN Connection Type:
    • Connection Type : Disabled
    • STP : Disable
  • Under Router IP:
    • Local IP address :Set your IP your address to a same subnet of your main router (if your main router IP is 192.168.1.1, set it to same subnet like 192.168.1.2)
    • Subnet Mask : same as your main router subnet
    • Gateaway : Your main router IP
    • DNS : Your main router IP
  • Under Network address Server Setting (DHCP)

    • DHCP Type : DHCP Forwarder
    • DHCP Server : Your main router IP
    • Time settings : disable
  • Save Settings

Under Security Tab

  • Un-check all items in the “Block WAN Request” section
  • Then disable the SPI firewall
  • Save Settings

Under Administration Tab

  • Enter all other necessary information, remember to change your password
  • Click the Save button
  • Then click Reboot button
28 Dec 2008

Creating a Wireless Access Point using DD-WRT

8 Comments Uncategorized

This post is a reminder to myself in case I ever need to troubleshoot this setup process again, but I thought I would post it just in case it is useful to somebody else.

A couple days ago I ordered myself a Linksys WRT150N to replace my aging Linksys WRT54G wireless router. I wanted to update my wireless capabilities to the latest 802.11 Draft N standard, so that I could take advantage of the speed boost when working wirelessly.  However I had one problem the WRT150N will not run the Tomato Firmware.  And I didn’t want to switch to DD-WRT for a couple of reasons, the most important being that I really like the Tomato user experience and it would be a pain to setup the router with all my custom configurations again.  So I decided to try and have the best of both worlds and keep my WRT54G (old router running Tomato Firmware) as my gateway and turn the WRT150N (new router running DD-WRT) in to an access point on my network.

Before I started I made sure to disable the Wireless Radio on my WRT54G in preparation for the Wireless Access Point (WAP).  This is important so that the wireless signals and SID (Wireless Name) doesn’t conflict when you are done.

Step 1 – Upgrade to DD-WRT

The first step I had to do was get rid of the crappy Linksys Firmware and upgrade the WRT150N to the latest stable version of DD-WRT.  DD-WRT may not have the user experience that Tomato has, but it is still miles ahead of the Linksys Firmware.  So in the case where I cannot use Tomato, DD-WRT serves as a great alternative to me. The process of installing the DD-WRT firmware is pretty straight forward.  Download the mini generic .bin file and browse to the firmware upgrade page for the router and install.  You can find more indepth information at this blog post.

Step 2 – Turn DHCP Off

I turned off the DHCP on the router for my WAP.

If you do not turn off DHCP, when you plug your router into the network (after configuration), your WAP may provide IP addresses to clients on the wired network, and this may be inappropriate. Tracking down problems caused by multiple DHCP servers can be time-consuming and difficult.

Step 3 – Add A Start Up Script

This part took me the better part of a day to perfect, because like many UNIX commands it is a convoluted syntax of piped commands flowing over each other in order to massage the data for the desired results.

ln -s /sbin/rc /tmp/udhcpc
udhcpc -i br0 -p /var/run/udhcpc.pid -s /tmp/udhcpc -H `nvram get router_name`
if test `ifconfig br0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'` != `nvram get lan_ipaddr`; then
    nvram set lan_ipaddr=`ifconfig br0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`;
    nvram commit;
fi

This startup script runs whenever the router is booted or rebooted, and the purpose of it is to request an IP Address from the DHCP server and set the Local IP Address (or LAN IP Address). There is no option available through the interface for this type of request because normally the LAN IP Address is the routers static local address (most cases 192.168.1.1) that acts as the constant in your network. The 192.168.1.1 acts as the main gateway to the internet, and if that wasn’t static, the LAN traffic wouldn’t be able to get out to the internet. This behavior is, however, undesirable for a Wireless Access Point, the WAP needs to pass through the wireless connections to the real router and needs to act as a client of the LAN instead of the master of the LAN.

Step 4 – Connect LAN to LAN

To complete the link between the two routers, I connected a LAN port on my main router, to a LAN port on the WRT150N (to be used as my WAP).

You may need a crossover cable to do this, although many modern routers have an automatic polarity sensing. To test this, connect a standard Ethernet cable between the two routers. If the LAN light comes on, the router has automatically switched the polarity and a crossover cable is not required.

Step 5 – Power On & Test

The last step required is to power on (or reboot) the router acting as the WAP.  After I powered on the WRT150N I was able to connect to my network through my new WAP.

So that is the process, it took a lot of hunting around on the internet.  But I think I finally got my setup to a state that I can deal with, until Tomato starts supporting the Linksys WRT 150N.