| 3 |  | Development began in 2007, as a small C++ library implementing  | 
                        | 4 |  | the ZHL16 algorithm, and the frontend was just a simple | 
                        | 5 |  | command-line tool. Initially this was all just a mental | 
                        | 6 |  | excersise, trying to get a better understanding of deco theory. | 
                      
                        |  | 3 | Development began in 2007, as a small C++ library implementing the | 
                        |  | 4 | ZHL16 algorithm, and the frontend was just a simple command-line | 
                        |  | 5 | tool. Initially this was all just a mental excersise, trying to get a | 
                        |  | 6 | better understanding of deco theory. | 
            
                      
                        | 14 |  | Sometime in May 2008 I bought a !MacBook Pro and fell in love  | 
                        | 15 |  | with the thing (despite being a linux user since 94, and | 
                        | 16 |  | open-sorce contributor for many many years). I started porting | 
                        | 17 |  | the app to MacOS, but still with the gtk+/gnome frontend. | 
                      
                        |  | 14 | Sometime in May 2008 I bought a !MacBook Pro and fell in love with | 
                        |  | 15 | the thing (despite being a linux user since 94, and open-sorce | 
                        |  | 16 | contributor for many many years). I started porting the app to MacOS, | 
                        |  | 17 | but still with the gtk+/gnome frontend. | 
            
                      
                        | 19 |  | However, gtk+/gnome UIs on MacOS don't look good, so in the | 
                        | 20 |  | summer of 08 while living back home in Copenhagen for a while, I | 
                        | 21 |  | installed the developer package and first looked at bit writing a | 
                        | 22 |  | native MacOS app, but my dive buddy urged me to look at the | 
                        | 23 |  | iPhone instead. So I started looking at the iPhone SDK, and | 
                        | 24 |  | around August, the first version was up and running, a very | 
                        | 25 |  | simple UI with a picker for depth & bottom time plus two sliders | 
                        | 26 |  | for oxygen and helium content, and the profile was just dumped in | 
                        | 27 |  | a textview. | 
                      
                        |  | 19 | However, gtk+/gnome UIs on MacOS don't look good, so in the summer of | 
                        |  | 20 | 08 while living back home in Copenhagen for a while, I installed the | 
                        |  | 21 | developer package and first looked at bit writing a native MacOS app, | 
                        |  | 22 | but my dive buddy urged me to look at the iPhone instead. So I started | 
                        |  | 23 | looking at the iPhone SDK, and around August, the first version was up | 
                        |  | 24 | and running, a very simple UI with a picker for depth & bottom time | 
                        |  | 25 | plus two sliders for oxygen and helium content, and the profile was | 
                        |  | 26 | just dumped in a textview. | 
            
                      
                        | 29 |  | At this point I started focusing on implementing the VPM/B | 
                        | 30 |  | algorithm in C++, by reading the fortran implementation by Erik | 
                        | 31 |  | C. Baker. Part of this was done by instrumenting the fortran code | 
                        | 32 |  | to generate C++ unittest code to validate the output of the | 
                        | 33 |  | individual parts of the algorithm. VPM/B was definitely a | 
                        | 34 |  | challenge and most harder to understand than Buhlmann's ZHL16, | 
                        | 35 |  | but from peoples reports of diving using VPM/B planned dives, I | 
                        | 36 |  | felt it was worth it. | 
                      
                        |  | 28 | At this point I started focusing on implementing the VPM/B algorithm | 
                        |  | 29 | in C++, by reading the fortran implementation by Erik C. Baker. Part | 
                        |  | 30 | of this was done by instrumenting the fortran code to generate C++ | 
                        |  | 31 | unittest code to validate the output of the individual parts of the | 
                        |  | 32 | algorithm. VPM/B was definitely a challenge and most harder to | 
                        |  | 33 | understand than Buhlmann's ZHL16, but from peoples reports of diving | 
                        |  | 34 | using VPM/B planned dives, I felt it was worth it. | 
            
                      
                        | 38 |  | By late 08, the implementation was mostly done, and around this | 
                        | 39 |  | time I had finally actually bought an iPhone. This meant | 
                        | 40 |  | that the UI got more attention again, ie. the profile moved from | 
                        | 41 |  | text view into tables, settings moved away from the system | 
                        | 42 |  | settings page and into the app using pickers and sliders. Luckily | 
                        | 43 |  | a friend of mine is a Apple UI designer, and he gave a lot of | 
                        | 44 |  | good suggestions on best and most common-place iPhone UI design | 
                        | 45 |  | choices, such as use of tables and sections, editing and input | 
                        | 46 |  | widgets. | 
                      
                        |  | 36 | [[Image(oldiphoneapp.png)]] | 
                        |  | 37 |  | 
                        |  | 38 | By end of sumer 08, the implementation was mostly done, and around | 
                        |  | 39 | this time I had finally actually bought an iPhone. This meant that the | 
                        |  | 40 | UI got more attention again, ie. the profile moved from text view into | 
                        |  | 41 | tables, settings moved away from the system settings page and into the | 
                        |  | 42 | app using pickers and sliders. Luckily a friend of mine is a Apple UI | 
                        |  | 43 | designer, and he gave a lot of good suggestions on best and most | 
                        |  | 44 | common-place iPhone UI design choices, such as use of tables and | 
                        |  | 45 | sections, editing and input widgets. |