Linksys WRT54G + Sveasoft Firmware = Wonderful Thing
A long time ago, before 802.11b, I built my own wireless home network using a pair of Aironet nics and a windows box. I did enjoy the freedom to move around the house and browse where ever I was. It was a fun and challenging project.
Times have changed sinced. Today, it cost so little to buy your own consumer grade broadband gateway and wireless access point that it is not really worth it from a financial point of view to build your own. I have since then shifted to using Linksys hardware to fill these functions. I had good luck with the hardware, and it works well with the Cisco VPN that we use at work.
Here's a quick recap of my home network. My cable modem is downstairs, next to the TV (I do not have a cable connection in my office). It is attached to a Linksys WRT54G, which acts as my firewall, router and main WAP. In my office, I have a WAP54G that was acting as a wireless bridge to my desktop and server, both located in my office.
A big selling point of the WRT54G and of the WAP54G is that these boxes are running Linux. Since Linksys was compelled to comply with the GPL, other versions of the firmware were released. Sveasoft is one of the groups that released an updated firmware. The current stable firmware is available for free. Support and access to the pre-release firmware is through a 20$ a year subscription.
A very cool feature of their stable firmware is the ability to tie multiple devices together through a Wireless Distribution System (WDS). This allowed me to use the office WAP54G as both a repeater and a wireless bridge at the same time. Up to 10 WDS links can be configured per device.
Another great feature is the ability to increase the power of the access point's transmitters while still remaining within the legal limits. This might allow the users to purchase a single access point and be able to cover a whole house or office rather than using repeaters to get sufficient coverage.
I am still dabbling with VoIP through Vonage. I had some issues where I didn't have enough bandwidth left to be able to maintain a conversation. The pre-release version of their firmware (name Alchemy 5.2) provides the ability to provide QoS based on subnet or IP address, MAC address or different services. I have configured my WRT54G to give priority to the VoIP traffic. I still have to make a few more calls to verify, but I better service since I enabled this feature.
There are a lot more features available, and I haven't had the chance to play with all of them. The Sveasoft firmware does transform what is a very good consumer level router into a capable small to medium office router.
-- Fred ( Jul 29 2004, 12:27:20 PM MDT ) PermalinkMust Check in Code a Lot More Often
The project that I work on right now has a highly distributed team. We have developers in a couple of locations in the US, we interface with developers throughout the US, Canada, France and the UK. And we have our contingent of engineers based in India at our India Engineering Center.
I am currently running a small campaign within the developers to check in code to CVS a lot more often than they had in the past. I am getting good success with the developers that are based in the US. Articles such as Keep Changes Small: A Happy Jack Story have been helpful.
I just cannot get the IEC engineers to checkin their code often. When they do check in the code, it is after they are done with 5 different CRs, 30 seconds and a half before the code freeze time for a build. More often than not, the check in isn't done properly, and there are some stressfull moments going over diff outputs trying to figure out what the final result should look like.
I have tried to argue with them. I have tried to give them the benefits of doing so. I have threaten, I have ordered. I have huffed and puffed. With no results. The only thing I haven't tried yet is to fly to India with whiffle bats.
I need a bit of help then... Please let me know if you have ideas or advice on how I can convince these engineers to check-in often.
Thanks!
-- Fred ( Jul 29 2004, 10:13:20 AM MDT ) Permalink Comments [6]I, Robot: Disappointing Movie
A long, long time ago, I was fascinated by Isaac Asinov's novels, especially the stories that related to the 3 laws of robotics. I read all that I could find at my local library. So you can imagine how excited I was when I learned that there was a "I, Robot" movie being made. I talked my wife into seeing it.
What a disappointment! The movie doesn't really do justice to the books. The only element that the movie has in common with the book are the 3 laws, USR, and robots. Otherwise, it is a complete fabrication. This is reflected in a statement made in the credits: "Suggested by I, Robot". Not based on, not inspired by. What a shame that such an amazing literary work was corrupted and twisted by Hollywood. It is essentially a waste of time and money.
Oh well...
-- Fred ( Jul 20 2004, 11:11:30 AM MDT ) Permalink Comments [1]"I'm not IT"...
I was in a meeting with some individuals in Sun's IT organization when a very interesting quote came up. An individual that shall remain nameless said: "I'm not SunIT, I'm ITOPS. There's a difference!"
That was a shocker to me. I know more about IT and it's different organizations, groups, divisions and separation of duties than most end users at Sun since I have been an interface between different IT and business groups more than once. I know that they have different groups handling different areas and that there is very little overlap of responsabilities between them.
On the other hand, if I am sitting in a meeting with someone from IT, that person is IT. I don't care if they are ITOPS, ITAS, ITSM, DCSIT, CSSIT or any other acronym with IT in it. For the duration of my interraction with you, you are IT.
On the same level, when ever people read this, or when I talk with people in regards to Sun, I am Sun. It doesn't matter that I am part of CNS, ICE or that I am an engineer rather than a salesperson. I AM Sun, and as such I am responsible to project a good image of Sun when ever I do have a chance.
-- Fred
( Jul 13 2004, 09:53:41 AM MDT ) PermalinkSimplify SOAP Service Development
What happens when the average Java developer either chooses to or is compelled to look into Web Services? Well, usually it starts by downloading the JWSDP, reading the J2EE Tutorial or using an IDE to generate the sets of classes that you need. None of these options are easy though, and most of them results in a bunch of classes that you might not necessarilly understand.
There is a simpler way to develop web services though. Apache Axis allows a developer to take a POJO and turn it into a web service though configuration through 2 means.
The first one is to rename the .java file to .jws and to drop it within an Axis servlet context. This allows you to take classes that have fairly simple signatures and that use basic types (String, int, List, Map...) and to turn them instantly into a SOAP service. This is done through a process similar to what JSP pages go through. Axis finds the class, generates the required support classes, compiles everything and then exposes the service to the world.
A good example would be the following Hello World service:
// HelloWorld.jws
public class HelloWorld {
public String sayHello() {
return "Hello World!";
}
public String saySomething(String msg) {
return msg;
}
}
There's nothing else to do. No classes to extend, no interfaces to implement, no complicated and confusing specifications to try to understand. Once you have copied the HelloWorld.jws file in the proper location, all you have to do is access it through the URL. Axis will do its magic, and you should be able to see it. If you want to test it some more, add "?method=sayHello" at the end of the URL, and you should be getting a reply.
A very nice feature is the automatic generation of the WSDL document. You can get the WSDL for the service by appending ?wsdl after the service URL. This allows your clients to generate their stubs (or use a dynamic proxy) so they can access your service.
Now, if you do need to deploy more complicated services, you can still use Axis. A good example would be to support a complex type or you want to be able to reuse the same class as a RMI service. In this case, you will need to research the Axis WSDD file format. This file format describes what your service looks like and what data types are supported. I have used this approach to integrate different tools within Sun. I don't really have the space to elaborate too much on this, but I'll provide links to articles that will help you get a good idea on how to do this.
Other great features of Axis includes generating the WSDD and WSDL files from Java classes, generating stubs from WSDL, some monitoring utilities that allow you to see what is being received from and sent too the clients. It has been a pleasure to work with so far. It has allowed me to quickly prototype a web service and to deploy it a lot faster and easier than trying other approaches.
Resources:- Axis Project home page. A lot of good stuff. This is the place to get more information on the framework and to get your greedy little hands on it. A note of interest is the existance of an Axis C++ project also
- Further Readings has a lot of links to articles and presentations on Axis.
- A Gentle Introduction to SOAP provides a good start on how to use Axis.
-- Fred
( Jul 12 2004, 02:03:17 PM MDT ) PermalinkThe Java Embedding Plugin
I have found something amazing for Mozilla and Firefox users on the Mac: The Java Embedding Plugin. Up until now, Safari was the only browser I had that was able to run against the newer Java 1.4.2 VM. Now, Mozilla based browsers have access.
This also means that I can now run internal Sun applications in Netscape again. I am even able to use some of the monitoring tools that I could only run on my Linux desktop (at home) or my Solaris workstation (at work).
-- Fred ( Jul 02 2004, 10:48:38 PM MDT ) Permalink

