Just Code Challenge Week 14 Projects (final week)

It’s the final week of the Just Code Challenge! Post your Just Code Challenge Week 14 Projects in this conversation! The blog post with my project will be published on Friday and I’ll update this conversation when this it is published.

So whenever you finish your week 14 project, go ahead and post it here. Have fun and be sure to download other projects and discuss!

I finish the challenge with ShowKeys. This is not a virtual keyboard, but the opposite: a tool that shows you the physical keys you type. I will use it as part of my training sessions (on projector). ShowKeys is more than one hundred of controls, with a source code quite important. In order to limit the use of display operations (a bit slow on Windows with Xojo), a rather complex mechanism limits redraws. The CPU load imposed by the final version of the application remains moderate.

Source and win32 exe are here:
https://www.ascinfo.fr/fichiers/justcodechallenge2018/ShowKeys.zip

And as a gift, to celebrate the end of the contest (and to complete the goal of 14 applications, even if this one did not arrive in time), here is SplashScreen, a template that can display a splash screen with a minimum of code. Just copy the SplashScreen window into your application and you’re done! SplashScreen uses a suite of timers to gives you precise timings and a cool fade out effect.

Source and win32 exe are here:
https://www.ascinfo.fr/fichiers/justcodechallenge2018/SplashScreen.zip

I want to thank Xojo for this initiative. The opportunity for me to get back to code, and to create some tools that could become commercial solutions in the future. Thank you Xojo and thank you Paul!

Have been struggling both with a pneumonia (so no 10 projects for me) and with the htmlviewer for Xojo. The latter at least I seem to have conquered a little by now, but creating apps that need a viewer for both OSX and Windows is a lot harder than I thought. Most functions and solutions did not work with Webkit… I think that might count as a bug even.

In the end I build a simple browser tool that detects if there is a doi (digital object identifier) mentioned on the page, which can then be copied to the clipboard. For text searching and getting the contents from Webkit, I needed to fall back upon the MBS plugins. I hoped to be able to do it without plugins, but alas Xojo let me down majorly on Webkit-integration

To download the project: https://surfdrive.surf.nl/files/index.php/s/9eejr3tPGnHcDkm

My project for the final week of the Just Code Challenge is a Marching Band ScoreKeeper iOS app, which I made to track the score of my son’s marching band shows.

https://blog.xojo.com/2018/09/21/justcode-challenge-week-14-marching-band-scorekeeper/

I often like to sketch things out on paper before starting and here’s an initial sketch of this project:

You are not alone, I too do that, usually for not forgetting an idea…

@David Feugey - I would really appreciate as US-mode switch.
Funny project to keep, it shows how to detect keys and key-combinations using the windows declare…

That’s the nice part about having the source code, there is nothing stopping you from doing this yourself.

This week I created a small .INI file reader with just a few lines of code. This works on all platforms.

An .INI file is mostly used by Windows programs and looks like this:

[General]
Width=640
Height=400
File=readme.txt

[Points]
player1=9920
player2=6000
player3=1203

The Method:

Public Function ReadIni(IniFile As FolderItem, Section As String, Key As String) as String
  Dim t As TextInputStream
  Dim rowFromFile As String
  Dim isFound As Boolean
  
  If IniFile <> Nil Then
    t = TextInputStream.Open(IniFile)
    
    
    While Not t.EOF
      rowFromFile = t.ReadLine
      
      If rowFromFile = "["+Section+"]" Then
        isFound = True
        Continue
      End If
      
      If Left(rowFromFile.Trim,1) = "[" Then isFound = False 
      
      If isFound Then
        If Trim(rowFromFile.NthField("=",1)) = Key Then
          Return Trim(rowFromFile.NthField("=",2))
          t.close
          Exit
        End If
      End If
      
    Wend
    
    t.close
  End If
  
  
End Function

A value from the .INI can then be queried as follows:

label1.Text = ReadIni(iniFile,"General","Width")

The source code with example

Bubble sort animation

This week I created a simple animation ot the bubble sort algorithm. More information at https://en.wikipedia.org/wiki/Bubble_sort.

Download source

I love that. It’s fun to watch, and visually explains bubble sort! That’s fantastic, Christian!

It’s really fun to watch:

My submission for last week made use of my expression evaluator class. It evaluates user entered mathematical expressions using double precision math. I’ve also created a version that works with Bob Delaney’s BigFloat plug-in for extended precision. It’s almost a drop-in replacement for the original expression evaluator. So, I decided to come up with a project that would make use of user entered expressions in extended precision math. Against my better judgement, I decided to try writing a spreadsheet program. How hard could it possibly be to write a spreadsheet program in a week? Yeah right. Not surprisingly, this thing is a bit rough around the edges, and there are some bugs (refer to the notes in the download file), but it does basically work.

Since this is the final week of the Just Code Challenge, there’s a special bonus: You get two for the price of one. There’s the BigFloat version, and for those who would rather not download the BigFloat plug-in, there’s a version that works with regular double precision math. To use the BigFloat version, you’ll have to download and install Bob Delaney’s free BigFloat plug-in: http://delaneyrm.com/fpPlugin.html

Other than the precision, the differences between the regular and the BigFloat versions are fairly minor.

  • I haven’t implemented functions Ceil(), Floor() or Int() in the BigFloat version;
  • BigFloat doesn’t generate NaN’s, so divide by zero and math anomalies have to be trapped with exception handling, and I haven’t found a convenient way to signal the user that this has occurred;
  • The format() function doesn’t work with BigFloats. So, the cell format command in the edit menu has no effect on the BigFloat version. But, it does work in the non-BigFloat version.

Due to time constraints, I haven’t been able to test this thoroughly, and haven’t had a chance to test it on anything newer than XOJO 2016r3 on a Mac which is my normal development configuration. If you have problems, please let me know.

The project file is here: BigFloat Spreadsheet Project
Please refer to the notes file that’s included with the project.

Yep, I need to find an US keyboard, but it’s basically possible :slight_smile:

@Alberto and @Tim: Thanks!