Nov 24 2006

Making of Klimb, Rock Climbing Training Software

Category: Rock Climbing, Software DevelopmentDmitry @ 2:52 am

Klimb ScreenshotWhen 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:

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

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

CODE:
  1. # 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

22 Responses to “Making of Klimb, Rock Climbing Training Software”

  1. bence says:

    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

  2. Rusty says:

    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

  3. Dmitry says:

    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".

  4. bence says:

    hi Dmitry!

    could you please reply my question, that I've asked you in november?

    thanks,

    bence

  5. Dmitry says:

    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.

  6. Rusty says:

    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!

  7. David says:

    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

  8. Steve Pulver says:

    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

  9. Dmitry says:

    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+).

  10. marcel says:

    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 :))

  11. Brenton says:

    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.

  12. Ande says:

    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.

  13. Dmitry says:

    Don't run ant in lib dir, cd to project home and just type "ant". Please see ant documentation for building projects.

  14. Dmitry says:

    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

  15. Ahsan says:

    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.

  16. Matt says:

    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!

  17. Dino says:

    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

  18. Сергей Калашников says:

    Дмитрий, а почему обижены не англоговорящие скалолазы ? может быть обидно особенно потому что имя фамилия у тебя русские

  19. Dmitry Kalashnikov says:

    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

  20. brewster says:

    is the a instruction file or link for this Prgm..??
    just to make it simple for us non ITY peeps!!

    cheers
    B

  21. brewster says:

    is there a instruction file or link for this Prgm..??
    just to make it simple for us non ITY peeps!!

    cheers
    B

  22. Training For Rock Climbing. | 7Wins.eu says:

    [...] 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 [...]

Leave a Reply