Nov 24 2006
Making of Klimb, Rock Climbing Training Software
When I was in college, I had two computer classes in which we had to do a major final project. One of them was on relational databases and another on Java/Swing GUI programming. I also needed some kind of journaling software to keep track of my climbing and training. I wanted something that helped me visualize my progress and help me train more efficiently. So, I made Klimb, the very first Rock Climbing Training software. It helped me pass my classes, train smarter for comps and make some cash on the side!
Design
I've considered many different technologies, and I decided to make it into a desktop application that runs on people's computer instead of my server, because of possible heavvy processing of journal data for graphing and all kinds of liability. So Klimb had the following basic components:
- Hypersonic RDBM Engine
- IzPack Installer (see Klimb reference)
- Java Core, Swing GUI
- JFreeChart graphing library
- Obfiscator Plugin to scramble the source code
- Ant builid scripts
- License-checking module/activator
In about a year after this software was released and I made a little money, I released it under GPL (General Public License) and removed the license-checking code and obfiscation.
Aftermath
I am really glad I did this project, it gave me a chance to improove my Java skills. I got so familiar with Java Swing that I made GUI "by hand", without any builders or tools. I also discovered many issues people don't normally think of when they're writing software, such as license checking, protection against decompilation of byte code, deployment to multiple operating systems, and marketing.
Screenshots



Downloads
- Source Code, from 2/4/2006 (for programmers)
- Klimb Installer (for regular users)
Instructions
After you download the installer, double click on it. If it doesn't run or Windows thinks its a zip file, it means you don't have Java installed (JRE, Java Runtime Environment) or JAR-type files are associated with some other program like WinZip. JRE is available for free and you can download it here. Either way, if you just install Sun's JRE, all of your java software will run faster and Klimb installer will launch on double click. If you do have "java" already installed, I'd replace it with Sun's version. It will also re-associate JAR files back to JVM.
To be honest, I avoid using Windows as much as I can. I own a couple of really nice Intel Macs and a PC Laptop, that I use primarly for Visual Studio and FreeBSD. So, if you're on UNIX, or if all else fails, you can launch the installer by typing
-
# java -jar InstallKlimb.jar
on your terminal.
I hope you enjoy this software, please make post of what you though of it, or about your training experience in general.
Don't forget to have fun while you train,
-D

November 26th, 2006 at 9:58 am
Hi Dmitry!
I've downloaded the climbing software, and my problem is, that i can't find an executable program file. there are only info, and other non-executables. i can't double click on the downloaded program, because it's a zip file, and i can only look the folders in it! can you help me, how to install this program? (i have java istalled on my pc)
thanks!
bence
December 8th, 2006 at 8:09 pm
Is there any way to make the grading on the YDS to go lower than 5.9. There are many really good longer routes that go the whole range of grades. Other than that the program looks really good.
thanks,
Rusty
December 9th, 2006 at 12:32 am
Hi Rusty, if you have some programming experience, it could be done within a few minutes:
There is a java class called "Grades.java". It has a table of all the grades and their corresponding grades in other grading systems. All you have to do is prepend another row to it.
After you done, you'll need to recompile the project by running "ant".
December 10th, 2006 at 5:40 pm
hi Dmitry!
could you please reply my question, that I've asked you in november?
thanks,
bence
December 10th, 2006 at 9:35 pm
hey Bence, I edited the post and added instructions section. Check it out. The jar file is kind of like an executable. On your windows box it shows as zip file because jar uses zip-compression. In order to run this file ... type 'java -jar KlimbInstaller.jar' from the command line. If you don't wanna do that ... reinstall java (JVM), and make sure to get the Sun's version. Hope that helps, D.
December 11th, 2006 at 2:56 pm
Thanks Dmitry,
I have figured out how to add the grades, thanks. I have also compiled and all works except for the graphs. Even if I put in 5.6 climbs, they show as 5.9. Not a big deal, but a little detail. Also, the default is still the 5.9 when inputing a climb. I am going to look around for something to change these, but I'm sure you could tell me where to look. Thanks!
January 15th, 2007 at 6:55 pm
Hi all,
I had to rename InstallKlimb.zip to InstallKlimb.jar on my Windows PC. After that, doubleclicking installed the software without a hitch. Hope this helps.
-- David
January 18th, 2007 at 1:10 am
I've been making my own software over the past year, for tracking my climbing progress. It was nice to actually see how a professional product looks.
Although this is vastly better than what I've been able to accomplish as a novice, using Visual Basic, I like my user interface better. Basically, I built mine around a calendar that attempts to plan work out types by Power, Power Endurance, or Endurance, then assign exercises by what it determines are weaknesses. Also, my database of exercise includes technique exercises, stretches, etc.
Nice how your program gives a lot of flexibility to the user though.
Steve
January 23rd, 2007 at 4:22 am
Hi Steve, thanks for your comments! By reading through my code I am glad your understand why the schema was designed in a certain way. The open source version of Klimb doesn't include the proprietary strength analysis algorithms and power < -> endurance relations. The "stock" exercises are from my friends, and they are geared towards really strong boulderers (v10+).
February 13th, 2007 at 8:49 pm
Hi dmitry
i ve a problem running klimb. when I try java -jar klimb.jar following error appears:
WARNING: Prefs file removed in background /home/maco/.java/.userPrefs/klimb/prefs.xml
Exception in thread "main" java.lang.NullPointerException
at klimb.um.userPane.getSqlId(unknown source)...
using sun jre 6-2, archlinux.
can you help please :))
March 29th, 2007 at 3:07 am
Hey dmitry:
Is this software the same as that available from acmeclimbing.com? I mean, should I just get it from this site, or should I pay the money to get it? I'm assuming there are differences and I'm willing to pay if there are improvements, since you designed it and deserve to be compensated. Just curious what the differences are.
Also, as Rusty asked earlier, is there a way for non-programmers (or people like me that don't know what the hell they're doing at all) to change the program to accept routes under 5.9? Thanks.
May 9th, 2007 at 4:19 am
Hey, I know a little java, and I was able to find and edit the Grades.java file in klimb\src\klimb\journal\climbing\ratings\ but when I try to run the ant.jar file in klimb\installer\izpack\lib it gives me an error about not being able to find the main class. So, instead I then imported the kilmb/src folder into eclipse as a project to compile it, and I get this error:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
at dvk.util.SwingHelpers.center(SwingHelpers.java:22)
at klimb.KlimbSplash.(KlimbSplash.java:45)
at klimb.KlimbApp.(KlimbApp.java:57)
at klimb.KlimbApp.main(KlimbApp.java:243)
any suggestions would be grateful.
May 9th, 2007 at 6:09 am
Don't run ant in lib dir, cd to project home and just type "ant". Please see ant documentation for building projects.
May 9th, 2007 at 6:13 am
It won't run properly from within Eclipse unless you set up all the resources for images, data and library paths. Since you haven't done that already, I'd just recommend using ant. Please read through the way it initializes home dir and other paths, before running it from eclipse. BTW the new Eclipse is awesome. I used intellij idea for klimb because it was a better IDE at the time. Now I am using Eclipse for java and just about everything else too.
Thanks,
Dmitry
November 23rd, 2007 at 10:21 am
Hi Dmitry,
I was just googling and came to you wibsite. I must say you have done a great job. I have downloaded "Klimb" and installed it. It works perfectly. Just one question, since it is Java application, I guess it must be able to run on windows Pocket PC but unfortunately I am not able to install it on my pocket pc. Can you please guide me.
cheers.
PS: I am not a programmer.
December 20th, 2007 at 11:20 am
Hi Dmitry,
Thanks for developing such a good program. I'm using it on my mac and am a complete novice when it comes to tinkering with its gizzards!
I'm trying to expand the grade tables as well, so they go below 17 (Aus grade). I was using pico to find the directories mentioned in the posts above but have had no such luck of even finding grades.java
Is there an alternative method, when using mac?
Thanks!
December 28th, 2007 at 11:41 pm
Hi,
I wanted to run klimb on my opensuse system but have a problem starting it.
Everytime I start klimb I get the following message and the program hangs up after "Loaded Cardio Panel":
run:
[java] 29.12.2007 00:35:42 java.util.prefs.FileSystemPreferences$7 run
[java] WARNUNG: Prefs file removed in background /home/dino/.java/.userPrefs/klimb/prefs.xml
[java] Schema doesn't exist!
[java] Exception in thread "main" java.lang.NullPointerException
[java] at klimb.um.UserPane.getSqlId(Unknown Source)
[java] at klimb.journal.wt.WeightTrainingPane$4.start(Unknown Source)
[java] at klimb.journal.wt.WeightTrainingPane.updateExerciseList(Unknown Source)
[java] at klimb.journal.JournalTab.updateJournal(Unknown Source)
[java] at klimb.KlimbApp.buildGui(Unknown Source)
[java] at klimb.KlimbApp.(Unknown Source)
[java] at klimb.KlimbApp.main(Unknown Source)
(This is from ant, tried to recompile it too)
I'm using java version 1.6 but also tried it wit 1.5, but it won't work with any of them.
Do you know any solution for my problem?
thanks
March 20th, 2008 at 3:55 pm
Дмитрий, а почему обижены не англоговорящие скалолазы ? может быть обидно особенно потому что имя фамилия у тебя русские
March 20th, 2008 at 8:58 pm
Hi Sergei, I didn't mean to "offend" anyone :) I just don't have time to translate things to Russian. Maybe you can? You're welcome to modify it in any way you like. I've posted the source code.
Take care,
Dmitry
April 20th, 2008 at 4:31 am
is the a instruction file or link for this Prgm..??
just to make it simple for us non ITY peeps!!
cheers
B
April 20th, 2008 at 4:31 am
is there a instruction file or link for this Prgm..??
just to make it simple for us non ITY peeps!!
cheers
B
August 20th, 2008 at 6:41 am
[...] video Zen and the Art of Triathlon [A Podcast] Blog Archive Bouldering is Good for the SoulDmitry Kalashnikov Making of Klimb, Rock Climbing Training Software Tags climbing wall climb This product is also listed in Sports & Recreation New Products [...]