ACTIVITIES
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....)
-
Qt
-
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
-
SQL
-
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
a.id_member,
-- all other needed fields : name...
from matchs m,
members a,
time t
where
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
where d.date=m.date
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 m.date = mm.date
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
)
or
-- 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