May the Git be with you

Hello World!

Today was an intense day! This morning, we heard some great presentations, and some of them have already helped me (ARM debugging). And this afternoon, Benjamin and I gave a presentation which turned out to be a 80 minutes course about Git. Definitely, the Force was strong with us today! I really enjoyed to give this presentation, not only because it involved a lot of Jedi and other Star Wars references, but mainly because I felt my fellow classmates extremely interested in the topic (and they were right, Git will be our greatest friend for the next two months!!). So thanks everyone for all your questions, it was a real pleasure to help you!

After that, I started the lab on the STM32 board. The first task was to configure the JTAG pins on the ARM processor. It may sound easy, but it was actually a real headache. Fortunately, by working all together and with a few hints from Sam, I managed to get a working configuration. Next time, I will light up a LED!

This week end, we have a lot to do for our project. Fortunately, the use cases are quite clear in our minds, as well as the global architecture. So we need to define our precise objectives, make the schedule, and prepare the slides for Monday presentation. No time to rest!

May the force be with you!

P.S. : the slides from the Git presentation are coming! Just need to fix a few things and we publish them.

Authentication, nRF51822 and more Git

Hello World!

I’ve done some work on Wednesday, but it has mostly already been told by my fellow coworkers (tests of BLE range, boxes architecture, Git presentation).

Yesterday, Benjamin and I finished our presentation about Git. Actually it is a bit more than a presentation : the slides are intended to be used as a reference by the other students during the project. That’s why there are a lot of slides (but don’t worry, we won’t show all of them!). In the end, the biggest challenge was to pick the topics we are going to explain in details, so that everything fits in less than 20 minutes.

Another thing I’ve been working on is authentication. This is a critical part of our project because we need to have a special user (called owner) able to change the configuration of the drop. However we also would like to prevent other users from impersonating the owner. In order to do so, Lauriane et I defined a simple authenticating system:

  1. The very first time the drop is switched on, it looks for another Bluetooth device (running the Drop Admin app). The first device found will be the owner, and the app and the drop will exchange a shared secret key which will be used to authenticate the owner later.
  2. If the owner wants to give its rights to another device, he tells so to the drop and the next device connected, say within one minute, will be the new owner (the former shared key is revoked and a new one is generated). We also need a way to recover a key (for example, if the authenticated device is lost and the owner wants to register the key in his new phone).
  3. We also wanted to grant special rights to some users (called administrators) in some boxes (configured by the owner). In this case, the owner must tell the drop that the next device connected will be added as administrator in box n. Then the administrator device connects to the drop and they exchange a shared secret key. However this method requires to owner and the administrator to be together at the same time, so perhaps we will have to find a better solution (even if we don’t really want owners to use administrators, this is just a feature which can be used in  very specific cases).

Last thing I’ve done: I began to investigate the nRF51822 (which was quoted in the course about RT OS). This SoC embeds a BLE chip and provides a full software stack to use it. A development kit has been ordered and should arrive soon. Then I’ll be able to start reading the documentation and hack a few things to see if it will fits to our needs. Next week, I will also begin to look for other SoC we could use.

May the force be with you!

Drops, Git and Jedi

Hello world!

In addition to the group work on our project (see Day 2 : Drops use cases and Bluetooth Low Energy), I started to work on the Friday presentation with Benjamin.

We were asked to present how branches work in Git. I decided yesterday to ask all the other students which topics they wanted us to investigate, with an initial list of propositions. This morning, Benjamin and I also discussed with Alexis and Samuel about the most important issues to address (because there is a lot to say about Git, and we have only 20 minutes including question time). In the end, we agreed on the following plan (titles are not final, in order to preserve some suspense):

  1. The staging area
  2. Branches and how to change the past (Git workflow, merge, rebase, amend, reset, revert, …)
  3. Git magic tricks (bisect, blame, stash, cherry-pick, …)

First, I found a few good readings about Git:

I also started to write the slides (part 1 is ready). Tomorrow, according to my Asana, I will have to finish my slides, work on the guided tour use case, and many other fun things!!


Spoiler alert: There will be Jedi and light sabers during the presentation on Friday. Meanwhile, may the force be with you!