Which version of YAVIJAVA should I use

If you didn’t already know I created a fork of vijava called yavijava. It is quickly becoming a pretty popular alternative to using vijava due to the features I have implemented like fixing the InventoryNavigator in the current production release found in public maven central. That fix makes 5.5.10 and newer releases have a functional InventoryNavigator on vSphere 6.0. Ive also added other features like logging using log4j, and the ability to reset Alarms from red to green. Ive also been hard at work adding full support for vSphere 6. With all of these things going on I also decided the project was getting so popular it was time to move it to its own GitHub Org.

A lot of these things have caused a great deal of confusion for end users of the library. Questions like:

  • Which version of yavijava should I be using?
  • Im using vSphere 6. Shouldnt I be using the vsphere_6 branch of yavijava?!?
  • Where do I report issues Im having with yavijava?
  • Is there a place for chat support?

I plan to address these questions in this post. Ill start by answering the first question of Which version of yavijava should I use? The answer to that depends. Ill start by asking you a very important question:

  • Are you looking for the latest stable and supported version for use in production code?

If your answer to that question is YES! then you need to be using the latest version available in public maven.

Now for question number 2 Im using vSphere 6. Shouldnt I be using the vsphere_6 branch of yavijava?!? Let me ask you another question to help answer that for you:

  • Are you comfortable testing an ALPHA version of a library that is in no way ready for production use?
  • Are you a developer who is looking to help get vSphere 6 fully supported by submitting code to yavijava that implements new properties, DataObjects, or ManagedObjects so the new features added to vSphere 6 will work in yavijava?
  • Are you a tester who is wanting to help get vSphere 6 fully supported in yavijava by submitting detailed bug reports about things in vsphere_6 branch that have been implemented but are not working?

Unless you answered YES! to some or all of those questions DO NOT USE vsphere_6 BRANCH! Support for vSphere 6 in the vsphere_6 branch is NOT DONE. There is a lot of work left to do and pretty basic stuff will fail until the work is done.

Now for the next question: Where do I report issues Im having with yavijava? This one is pretty easy.

Finally: Is there a place for chat support?

  • There sure is! Find us on Gitter Chat here

Responses may be slow. Just join, ask your question and wait around. If you cant wait around consider opening an issue on GitHub instead.

How to contribute to an opensource project like a boss

So you found a cool project online and its opensource and now you want to give some of your time and efforts back to the community, but you dont know where to start. This blog post should help get you started and help you get your code accepted on just about any project out there.

The first step you should take is to read the documentation that comes with the project. A great place to start is often the README in the project. Generally you will find all kinds of info in this file. Some of that information may be code standards, where to find help, TODO lists, or just general project guide lines.

Next get familiar with the tools used in the project. This could mean having to learn to use a new revision control system such as git with a focus on using it via github or bitbucket. Many projects have some special requirements when it comes to their source code. You do not have to be a master with these tools, but you should at least understand how to do some basic tasks with them. For example, with projects using git and github you should understand forking, branching, fetching, merging, pushing, and most importantly pull requests. Its OK to ask for help getting these things done, and you can generally find where to get that help in the README.

Next it may be helpful for you to look at the rest of the code in the project, or at least some of it. I know this may be a lot of work because some projects are so large. Maybe you don’t need to see every line of every piece of code but it will help to look at some of it to get an idea of how the rest of the code is written so that you do not camelCase where the rest of the project uses underscore_syntax.

Next you should be open to community feedback. Opensource development generally speaking works differently than what you may be used to doing at work. Most projects I have worked on have some kind of peer review system where community members and projects owners will look at your code and make sure it meets the code standards, and has logic in it that is easy to follow and makes sense. These reviewers may ask you to make changes, but don’t take it personally. This feedback should not be taken as a personal attack. Remember you are going to donate this code and you may never come back again, so it will be up to other community members and project owners to maintain it. You may be doing this on your free time, but odds are that so are some if not all of the other people reviewing your code. Generally speaking no one will ask you to make changes to your code that they wouldn’t expect of their own code.

On the topic of changes no one is forcing you to make these changes. Generally speaking it is just an ask. If you don’t want to make the changes kindly tell the reviewers something like “Im sorry I am not interested in making these changes, please feel free to take my code if you can”. Most projects would rather have working code that needs to be “reformatted” than have nothing while others may not be interested in your code if you don’t make the changes.

Finally and this may seem very obvious but try to write good, well documented, clean code that is easy to follow and understand. I have been doing this for almost 15 years now and I have never run into some code where I said “Damn this documentation is way too good, and there is just way too much of it”, and I am willing to bet I never will. Often it is the opposite of that and I am cussing as I read through line by line trying to figure out how or why something is the way it is.

If you follow these steps, or suggestions as they really are, it should help the process be very smooth and pain free for all parties involved. If you have any suggestions about things that I should add to this list please feel free to let me know. I would love your feedback. I hope this blog post will be helpful to someone out there who is thinking about getting into working on opensource projects.

How to Setup a Load Balancer with Rackspace Cloud Load Balancers On-Demand

I was sitting around tonight and had an idea. I wanted to know.. How hard is it to setup a load balancer using Rackspace Clouds new offering? I logged in to the Cloud Manager interface. On the left side of the screen I select Hosting to expose the hosting options. I clicked on Load Balancers. Next I clicked on Add Load Balancer. That brings you to the configuration page. This is where you begin by giving a name to the instance. Next choose the Protocol (http, https, smtp, custom, etc..). Then you select the Virtual IP type, there is clear concise documentation that explains the various options. Next you choose the algorithm that the balancer will use. In the next section you select the region for your balancer. I selected DFW because I have several servers (nodes) in San Antonio, and several in various data centers in the DFW area. Finally you add your nodes. The awesome part is that your nodes do not have to be Rackspace servers, be that virtual or physical. You can use physical servers or virtual, and they can be virtually anywhere.. For my test I added a node that was in the Slicehost DFW data center, next I added a node from Linode, also in their DFW data center. Finally I added a node from Serverbeach, a physical server that I lease in their San Antonio data center. Thats it. Your load balancer is setup. Assuming you selected the same options as I did: connection type: http, VIP type: public, algorithm: random, and that you wanted to set this up to load balance lbtest.mycoolsite.com all you need to do is go setup an A record in DNS for lbtest.mycoolsite.com to point at your VIP (provided to you by Rackspace). Next go to each of your nodes and configure apache with lbtest.mycoolsite.com as a vhost. Once that is complete you can visit lbtest.mycoolsite.com in your web browser and you are now load balancing! It so simple and only takes a few mins to setup.

Herotab C8 Battery Charger Info

I picked up a Herotab C8 a while back and I have had the WORST luck with the battery chargers. As of today I have gone through four of them. My dogs broke the first one, the second one I got showed up bad, and the third one my oldest child just broke on accident, so now I am on the fourth one. I picked it up from RadioShack this time instead of ordering it online. The adapter I got is one of their Enercell universal chargers (part number 273-318), and then I got an Enercell tip (part number 273-334) as well. The tip and charger can be set to tip+ or tip-. For the C8 you need to use tip+. Special thanks to Ponderous for letting me know what to use. The last replacement charger I got did not have it marked on the back. I hope this will be the last one of these chargers I buy..

Slicehost is going away

Im sure its not even news anymore that Rackspace has decided to roll all the slicehost accounts into Rackspace Cloud accounts. Its no surprise. If you were the type to follow what had been going on with RS Cloud and Slicehost you would have seen like me that Slicehost never really changed after Rackspace bought them, but the RS Cloud and apps like their iphone app were having improvements constantly; while Slicehost had little to no changes happening, and their Android App even vanished from the market. I even asked the developer if he would open source the code like they have done with many of their other projects. It never happened, so that made me wonder.. Do they hate Slicehost or are they not willing to share that info for some reason… OR were they just gearing up to drop support for Slicehost all together.. seems like it was the later. I dont blame them, I might have done the same thing in their shoes. Once it was announced that Slicehost was going away TONS of people were pissed about it and bitching up a storm on twitter and on IRC. Many of the people I talked to about this didnt even look into what was changing. They were just having knee jerk reactions that involved leaving Slicehost for some other VPS. I decided I am going to stick with them for now, and in the mean time I am checking out a few other providers and in a few months I will decide which one I will stick with. I also went over to xtranormal and made a handy video on my take of the changes. Here it is for your viewing pleasure.