Development of an Android application, intended for the Play Store.
  • In Dart/Flutter

  • GUI proptotype in C++/Qt

  • Functional prototype in php/SQL

  • Purpose still confidential.

  • Further deployment foreseen for the Apple & Microft App Stores as well.

In the context of learning Qt.
  • A few additional explorations and experiments like:

    • original orthogonal object persistence mechanism,

    • multithreading,

    • portability (tested on Windows, macOS, android, linux....)

  • Qtr/C++ with cmake/ninja

  • Coursera example builds, and runs (cf link), on:

    • Windows

    • macOS

    • Android

    • Ubuntu

    • RedHat

    • FreeBSD

  • Visual C++, g++, clang

  • Environment: Perforce on a NAS, installed with Docker.

  • Learning QML, developing an application on Android (iOS planned later)

Embedded development learning (early stage)
  • Arduino MKR1000 / MKR1400 (so still quite high level so far)

  • C++/11

  • Projects so far:

    • lot of small explorations

    • protothreads, interruptions

    • small web server allowing to control the hardware, interruptions, protothreads and connections

    • small clock/chrono/alarm, with NTP sync (still in development, if it is worth to continue: not much to learn anymore from this project so far)


  • To do list

    • environments: python, assember

    • hardware: STM32F103C8T6, ESP8285, ATTINY85

  • Refreshed some practice, while helping a student for his end of term paper, with the following SQL. Not extraordinary, but it provides an idea of what I'm able to do (or not):

select distinct
-- all other needed fields : name...
from matchs m,
          members a,
         time t
                m.id_match = 2   -- !! here variable with id match ###########
         and a.function = 'Referee'
         and  ( m.id_referee1 = 0 or  m.id_referee2 = 0 ) -- only matches without two referees

         and  ( select count(*) from availability -- referee availability
                                 and a.id_member= d.id_member
                                 and (          ( d.hour*60  

                                                        between m.hour*60+m.minute and  (m.hour+2)*60+m.minute-1)
                                           or    ( (d.hour+1)*60-1  

                                                        between m.hour*60+m.minute and  (m.hour+2)*60+m.minute-1)
                  ) = if( m.minute != 0, 3, 2) -- 2 slots if match starts at xx:00, otherwise 3 slots

                                     -- but if should be still checked if there is no already assigned match in conflict

     and not exists(select mm.id_match
                     from matchs mm,
                         time t,
                         hall s1,
                         hall s2
                         settings p

                      where mm.id_match != m.id_match -- other match
                       and a.id_member in ( mm.id_referee1 , mm.id_referee2 ) -- assigned to this referee
                        and =
                       and a.id_travel_type = t.id_travel_type

                        and s1.id_hall = t.id_hall_1
                       and s2.id_hall= t.id_hall_2
                       and p.nom='preparation_delay'
                           -- travel before
                       and (   (        t.id_hall_1= mm.id_salle
                                and t.id_hall_2= m.id_salle
                               and (mm.hour+2)*60+mm.minute+t.time +s1.access_time+s2.access_time

                                      <=  m.hour*60+m.minute - p.value
                             -- travel after
                               (           t.id_hall_1 = m.id_hall
                               and t.id_hall_2 = mm.id_hall
                               and (m.hour+2)*60+m.minute+t.time +s1.access_time+s2.access_time

                                           <=  mm.hour*60+mm.minute - p.value
                                 )    )

order by m.id_match

WhatsApp Image 2020-10-09 at