DesertHail.com


Welcome to DesertHail.com! Over the years I've written a lot of software, usually to fulfil a specific personal need. I created this page to share a little bit of it with the world. Everything on this page is available to download, use and re-distribute freely for any purpose. It is my hope that you find something useful here. Cheers!


Software
All of the following programs are made available as FREEWARE. You may make use of and distribute them freely. All files are signed with OpenPGP key ID 0x764BCF93 [software@deserthail.com] / on PGP Keyservers. All programs are Windows specific, and require the Microsoft .NET Framework v4.0. All programs are (C) Copyright 1998-2016 Joseph B. Kowalski. All programs are 100% Adware / Spyware free. I make no guarantees as to fitness for a particular purpose or to continued availability; use at your own risk.

RadioWORKS 2.0

Screenshot
Download
OpenPGP Sig
RadioWORKS is a tool for calculating various items related to radio waves and radio wave propagation. Get detailed information about a frequency, such as the free-space wavelength, band classification, propagation methods, common transmitter configurations, etc. Calculate antenna lengths or frequencies. View a 3D coverage map by providing a latitude / longitude coordinate and transmitter height. View a 2D representation of line of sight coverage between two latitude / longitude points, including compensation for TX/RX height, adjustment for Earth curvature, and first Fresnel zone calculation. Look up the elevation of a latitude / longitude coordinate. Calculate path loss using the Free-Space, ITU Terrain, Hata Urban, Hata Suburban, Hata Open Area, COST 231 Hata Extended, Weissberger, or Empirical COST-Walfisch-Ikegami (Also known as 'COST 231 Empirical') non Line-of-Sight (n-LoS) and Line-of-Sight (LoS) mathematical models -- OR -- run the models backwards to get the matching distance for a given path loss value. Use the Distance and Power change prediction calculator to predict how a proposed transmitter power change, whether an increase or a decrease, will affect your usable range -- OR -- how a proposed range requirement change, whether an increase or a decrease, will affect your transmitter power requirements, while factoring in the signal decay rate observed in your current system. All path loss & distance / power change prediction calculations can also be displayed graphically. Calculate the beamwidth, gain, and far-field distance of a dish antenna. Context-sensitive help is available to guide with the usage of the various features. Additionally, all mathematical formulas used by the application are on display, including explanations and usage information.

RadioWORKS is now also available for the iPhone.

Note: RadioWORKS depends on a back-end webservice (the GeodataService) for obtaining elevation data, which it uses for the '3D Coverage Map' and 'Line of Sight Graph' features. You can use the service instance I host free of charge. Alternatively, if you are interested in hosting your own instance of the GeodataService for use by yourself or others, please see this page.


ServerBrowse 1.0

Screenshot
Download
OpenPGP Sig
ServerBrowse is a Quake III Arena Server Browser and game launcher with a clean, modern interface. Features include the ability to sort available servers by any parameter, such as ping time, map name, hostname, game type, IP Address, port, connected clients, max clients, punkbuster enabled, pure server enabled, max ping, etc., the ability to launch Quake III Arena directly into the server of your choice with a simple double-click or press of the 'enter' key, the ability to mark servers as favorites, adjustable color schemes, and adjustable advanced features such as threading parameters, timeouts, display update intervals, game launch options, etc.


P4ChangelistUtil 1.0

Screenshot
Download
OpenPGP Sig
P4ChangelistUtil is an application that provides a number of tools for working with Perforce using changelists. It provides a quick way to pull files from a Perforce server to a local folder of your choice based on changelists or a provided folder / file list, with lots of configurable options. It provides functionality to perform merges based on changelists, and has several merge report modes to help you figure out what you might need to merge. There is also a changelist query function to perform various searches for changelists that meet specified criteria. P4ChangelistUtil contains an automatic update system, so you'll be notified when newer versions of the application are available. Running P4ChangelistUtil requires that you have the Perforce source control client program (p4.exe) installed.


Services
The services listed below are being made available to the public to use freely for any purpose, either manual or programmatic. I make no guarantees as to fitness for a particular purpose or to continued availability; use at your own risk. All services are (C) Copyright 2008-2016 Joseph B. Kowalski.

Geodata Service

Main Page
WSDL
The "Geodata Service" was originally created to support the "3D Coverage Map", "Line of Sight Graph", and "Elevation Data" features of RadioWORKS. It is a standard webservice that uses the Version 3 NASA/JPL SRTM (Shuttle Radar Topography Mission) 3 Arc-Second (~90 meters @ equator) dataset to lookup elevation data for latitude / longitude coordinates. This dataset uses the WGS-84 geodetic system. The Geodata Service provides four methods:

GetPointElevation - This method allows you to enter a latitude and longitude value, in decimal format. If data is available for the provided point, it will return the elevation (In meters) above sea level. A return value of "-32768" indicates that no data is available for the provided point.

GetElevationGrid - This method allows you to enter a latitude and longitude value, in decimal format, along with a grid size. It will return an array of elevation points (In meters) that make up a square of [GridSize] x [GridSize], with your provided latitude / longitude point squarely in the center. The returned array begins in the upper-left corner of the grid, and works its way to the right, then moves down a row and again starts on the left and works its way right, etc. The geographical spacing between returned array elements is 3 Arc-Seconds (~90 meters @ equator). Elevation array elements with a value of "-32768" indicate that no data is available for that point.

GetElevationLine - This method allows you to enter a pair of latitude / longitude values, in decimal format. It will return an array of elevation points (In meters) that make up the line between the first and second point you entered. The returned array begins at the first point, including it, and works its way to the second point, including it as the last array element. The geographical spacing between the returned array elements is 3 Arc-Seconds (~90 meters @ equator). Elevation array elements with a value of "-32768" indicate that no data is available for that point.

GetLineDistance - This method allows you to enter a pair of latitude / longitude values, in decimal format. It will return the distance (In kilometers) between the two points.

General Information: All four methods will return a "ResponseStatus" string. A value of "SUCCESS" indicates that everything worked, and all other return values can be used as expected. A value of "ERROR" means that something was wrong with your input or another problem occurred. In this case, you can check the "ErrorMessage" response string to get more information on the nature of the failure. For full detail on what other response parameters are returned, please take a look at the WSDL for the webservice (link above). The webservice allows calls to all four methods through GET, POST, and SOAP. However, it is strongly advised that any calls to the "GetElevationGrid" or "GetElevationLine" methods be performed only through SOAP, due to the amount of data that will be returned. Also, the webservice supports GZIP and DEFLATE HTTP compression, so please make use of it whenever possible.

Please feel free to contact me if you need help using this webservice.


Contact
Correspondence is always welcome. If you'd like to provide feedback, have questions, or need to reach me for any other reason, you may send an E-Mail to jbk@deserthail.com. My OpenPGP key ID is 0x55C9971B, and the key is available on PGP Keyservers.