Kenneth Evans

GitHub Repositories

Frequently Asked Questions

What is the license?

The license for Ken's projects is almost always the MIT License for his own work. In some cases the projects use third party software, which is subject to its own licenses. Some projects are wrapper projects, which consist entirely of third party software. In these cases an attempt has been made to include the relevant licenses in the project.

In many cases Ken's work has been influenced by Open Source code and other information available on the Internet. He would like to acknowledge that and thanks those contributors. It is difficult to find code these days that is not Open Source, at least in part.

What is in the repositories?

The repositories consist of projects. Some produce applications and others are libraries.

The associated development environments change versions frequently. The projects were working in their respective development environment, using Ken's settings, at the time they were committed, If you export them, it may (or may not) take some effort to get them working in your environment.

What operating systems can be used?

Java can in principle be run on many platforms. Ken only tests Java applications on Windows. Most of his Java applications use the Windows look and feel, not the default Java look and feel.

Ken develops and tests on Android and Windows 10. Android apps, of course, require an Android device. There are many Android devices with widely-varying capabilities. Ken only tests on the few he has. His C, C++, and C# applications are built for Windows. They should run on any recent Windows platform, as least on Windows 7 or later. The C# applications may need to have the proper .NET Framework installed. If you don't have the proper framework, Microsoft .NET Framework 4.5 can be downloaded at https://www.microsoft.com/en-us/download/details.aspx?id=30653.

If these links change, it should not be hard to Google for what you need.

What is needed for Java projects?

Many of Ken's applications are Java applications. These require having 32-bit Java installed on your computer. Java is reasonably easy to install and is available from Oracle at https://java.com. The version installed by default on many Linux systems will likely not work well.

It is suggested to get the latest Java version (currently Java 8). Most of Ken's applications are built for Java 7, and will run on that or later versions. In the future when Java 9 is available, they will likely be built with Java 9, since that will be the first version that supports high-resolution displays.

What about Java for high-resolution displays?

High-resolution displays are becoming more common. However, many applications do not work well on these displays, for Windows at least. Java is currently one of them. Java 9 is supposed to fix this problem, but it is not yet available, except in beta.

The problem is that applications can internally set themselves to be dpiAware, and most do so. This means they provide the necessary resources to handle displays of various resolutions. The problem is that they do not do a good job on the newer, larger displays, which were not readily available when they were developed. On high-resolution displays the application components will be very small and hard to read, if they have not done this properly.

Probably the best solution involves telling the applications that they are not dpiAware. In that case Windows scales them itself. In the latest releases it does a pretty good job.The solution, in short, requires putting an additional file named xxx.exe.manifest in the same directory as xxx.exe and setting a registry key that says to use this manifest instead of the internal one.

There are articles on the Internet describing how to do this, but there are few totally complete ones. One of the first and best ones is http://www.danantonielli.com/adobe-app-scaling-on-high-dpi-displays-fix/ even though it is for Photoshop.

This is a short explanation of what needs to be done.

Manifest

For the manifest, the best thing is to get the manifest from the xxx.exe. This can be done by opening the xxx.exe in Visual Studio, and there are other application that profess to be able to extract the manifest. Once you have the manifest, which is internally an XML file, you find the lines which have dpiAware in them. They will be setting it to true. Change true to false. It may be easier to edit the manifest if you change its name to xxx.exe.manifest.xml, as many editors will then format it in a way that is easier to read. The common browsers open and display XML files, as well. Rename it before putting it next to xxx.exe.

You probably only need to do this for javaw.exe and not java.exe, as it is probably only GUI applications that need this fix, and those are usually best run with javaw.

If this is too much trouble to extract the manifest, the attached javaw.exe.manifest.xml should be correct for javaw.exe for Java 8. Remember to rename is to javaw.exe.manifest before copying it to the directory with javaw.exe in it. It will also likely work with java.exe if renamed to java.exe.manifest. And it will likely work for other versions besides Java 8, even though the safest thing is to extract each manifest and change dpiAware to be false.

Registry

If you know what you are doing, it is a simple matter to go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide, and add a new DWORD (32-bit) Value named PreferExternalManifest and set its value to 1. Use Hexadecimal though it doesn't matter.

If you are unsure of how to modify the registry, there is a set of detailed steps with pictures at http://www.danantonielli.com/adobe-app-scaling-on-high-dpi-displays-fix/, even though it is for Photoshop. It is much more complete than what is presented here. You can by the way, probably just use the manifest he provides for Photoshop. It doesn't seem to matter. And he also provides a REG file to fix the registry.

How do I install an Android app from this site?

Since these apps do not come from the Play Store, you have to do some extra things to install them. The details vary from device to device, but the basic steps are:

  1. Change Settings to allow Unknown Sources. (You would have to do the same thing to install apps from Amazon, for example.) This is typically under Security in the Settings. You should probably set it back after finishing the installation to prevent an installation happening when you do not know about it.
  2. Transfer the APK to your device. Mailing it to yourself is an easy way.
  3. Install the APK. The ways to do this vary depending on your device. If attached to email, double tapping the attachment seems to usually work, but it depends on your device and email client. Double tapping it in your file explorer may work.
  4. Manage or uninstall it as you would any other app. Use the Application Manager in Settings.

If you have trouble with these steps, there should be help on the Internet for your particular situation.

How do I install a C/C++, C#, or Java application from this site?

These instructions are for Windows. The Java applications should run on other platforms but have not been tested by Ken on any platforms other than Windows.

None of the applications comes with an installer. For those for which there is a download, it will be in the form of a directory with what is needed to run the program inside. Just extract the directory and put it somewhere, then run the executable or JAR file. To uninstall, just remove the directory. If reinstalling, it would be safest to install it into a fresh directory, but you may lose settings. You will have to experiment. Eclipse RCP applications require Java to be installed, but have an executable, not a JAR.

For Java, apart from RCP applications, there will be a JAR file. You should be able to run the application by double-clicking the JAR file. However, there is no way to set arguments for the Java Virtual Machine (VM), such as asking for more memory, when doing this. The programs should have a Windows shortcut included in the directory that runs the JAR file with the suggested VM arguments. Since Windows hard codes the entire path to Java or Javaw in the shortcut, it may not work on your machine out of the box. Right click the shortcut and go to Properties. The Target is typically of the form:

        <path>javaw.exe -jar xxx.jar

where <path> is the full path. To fix it for your system, just replace the entire <path>javaw.exe with javaw. Windows will replace it with the full path of the version of Java in your PATH (or tell you if it can't find it). Typically, there is also an ICO file for the application included. If the icon for the shortcut changes to the one for Javaw, then choose Change Icon.. in the properties and use the ICO file.