Skip to content

Challenges Overcome

Peter Kaufman edited this page Feb 9, 2020 · 3 revisions
Problem Solution
Having to read documentation for APIs for other people's code that was needed for this application The main way of getting past this issue was looking for tutorials that had to do with what I wanted to do with the specific JAR libraries that I was using. Sometimes just searching for specific keywords in the documentation was helpful as well.
Determine what SQL statements were needed to get the information needed to compare the databases for each of the database implementations Sometimes this could be done by simply by googling, but often times this was a process where I had to research what other people had done in the past to solve the issues I was having as well as learn the syntax of each of the different SQL implementations.
Using a Graphical User Interface(GUI) on multiple Operating Systems The main issue that arose was actually that the error popup window would not display at all on Linux, so I had to change the type of the JFrame to be a utility instead of a popup. This fixed the issue.
Getting the automation script to work on multiple Operating Systems This is another issue that arose when using Linux. For some reason when trying to run commands through the Python script, I had to specify shell=True as an extra parameter. This was due to how the terminal works in Linux in order to improve security.
Getting the automation script to work for Python 2.7 and 3.x I had to sit down and figure out what had changed between these two different versions of Python and find a way to make the two work in a very similar way. This took using many calls different Python methods that had not been changed between the two versions to get it working (the reading in of input was the most difficult to get working between the two).
Scaling the displayed text based on the size of the window This was a little more challenging because it took analyzing the text and determining at what sizes the text should be made bigger and by how much. This took a good bit of time to do for every different type of component that exists for the application.
Showing the user that the comparison is taking place This was difficult because the application has a GUI which means that it can only run one thread at a time on the front-end thread. That means if I were to update the front-end display while the thread was doing the comparison, the change would not be visible until after the comparison had finished. As a result, I had to use a SwingWorker to allow for me to multi-thread so that I could update text on the screen letting the user know what stage in the process the comparison was at.
Clone this wiki locally