Simon Marache-Francisco

HTTPS

  • 21/11/2016
  • POST
I knew since the beginning that I had to comply with best practices and provide my website over a secure channel. Not that there is much to hide in a static, open source website, but at least this part of your surf will stay private (within limits). This website is now stored on S3, but served though the CDN AWS Cloudfront which provides the (free) HTTPS certificate. As a side note, I would like to thank everyone at Travis for this amazing service.

Gravity simulation

  • 29/10/2016
  • POST
I have always been fascinated by gravity simulations, and I have vivid memories of small simulators where you would create celestial bodies and watch them in motion. As I wanted to see what the fuss was about TypeScript, I decided to make a simple gravity simulator featuring planets. My goal was to simulate trajectories of around a dozen bodies in real-time, in the browser. Everything is based on Newton’s second law:

Moving to a static Website

  • 21/10/2016
  • POST
While hosting my website all by myself is actually quite fun, it is however very time-consuming. Doing things right means taking care of security updates, features updates, backups, crashes, etc. And problems always arise when you are not ready to deal with them, like that time when my co-hoster decided to install a new kernel module that crashed completely our VPS instance. I was obviously with my parents this weekend and waiting for an important email.

Image generation acceleration using X86_64 SIMD extensions

  • 25/10/2015
  • POST
The SSE and AVX2 extensions of the x86 instruction set can dramatically improve the speed of a program if you can optimize ot for SIMD instructions. I made a small test with a fractal generator, which lends itself very well to this kind of optimization. I was impressed by the results: In very little time, thanks to the intel intrisics guide, I have been able to reduce the rendering time by a factor of 6.

Seam carving

  • 07/06/2015
  • POST
Let’s say you have a picture with an awkward ratio. You can’t print it anywhere without either cropping or rescaling. The technique described in the paper from S. Avidan and A. Shamir, Seam Carving for Content-Aware Image Resizing is a very nice and elegant solution to resize the picture without changing the pixel aspect ratio. Original image (picture by Beverley Goodwin) Horizontal Shrink using naive resize on the left and Seam Carving on the right The picture on the right has all the features of the originalimage, with little distortion, but the aspect ratio is completely different.

Image processing using OpenCV

  • 27/05/2015
  • POST
A few days ago I took a picture of the night sky using my camera, right in the middle of nowhere. I expected a nice clear picture but no matter where I looked, there was always some background light, and the sensor noise was quite strong: Thumbnail of the original image: notice the haze I wanted to play with the python version of OpenCV for a long time, so this was a great opportunity to try to improve the result!

Coursera and Scala

  • 20/05/2015
  • POST
I just discovered that coursera had several courses about Scala, made by the creator of the language Martin Odersky. Functional programming: https://www.coursera.org/course/progfun Reactive programming: https://www.coursera.org/course/reactive I always wanted to try functional programming, and they seem to be a good place to start. I probably won’t have enough time to follow them through, but I started a small fractal generator in scala, using what I learned in the first few videos, and I really enjoy the language so far.

Augmented reality on Android

  • 16/04/2015
  • POST
With my friend Clement we have been working on an exciting new project lately: Augmented reality on the smartphone. The goal is to show on the screen the landmarks you are looking at through the camera. Using your location (GPS), your direction (compass), and the location of the landmark (database), the program will show where the landmark should be on the screen. Unfortunately, for now, I am stuck with a problem: Even when correcting for the magnetic inclination, the compass measurement is off by a small angle….

A new micro project: comparing performances between 'switch' and if-else-if-else in C++

  • 07/04/2015
  • POST
I was having an argument with a coworker about the fastest method to branch in a code: lots of if/Else or a switch/case. I figured that the switch case would be faster, because the compiler would be less constrained than with the if/else, and could therefore use a better algorithm to select the right execution path. To check this, I made a new entry in my microprojects repo, the aptly named switchVsIfElse.

Memory access: sequential vs. random

  • 27/01/2015
  • POST
It is well known that accessing the memory in a non-sequential way is slower because it leads to a lot of cache miss. This micro-project was made to evaluate the difference in performance. An array of 10 000 000 elements (size_t) is created. It represents a typical data structure that you will access in your program. A random list of 1 000 000 offsets is generated. I compare the time used to fetch this million offset in a random order with the time used to fetch the same offsets, but in ascending (or descending) order.
Prev Next
LATESTS
Micro project: md5 implementation
  • 27/12/2020
  • POST
3d terrain rendering for embedded hardware
  • 09/08/2020
  • POST
video stabilization using ffmpeg
  • 09/05/2020
  • POST
Migration to Kubernetes
  • 01/05/2020
  • POST
Compiling Chicken Scheme scripts
  • 18/08/2019
  • POST
Readline and pkg-config in ubuntu
  • 17/08/2019
  • POST
Temperature and Humidity logging: Arduino and ESP-01
  • 01/11/2018
  • POST
Back to c++
  • 20/05/2018
  • POST
First look at the SICP
  • 08/01/2017
  • POST
Web sentry with SMS Notification using AWS Lambda
  • 04/12/2016
  • POST

© Simon Marache-Francisco

Powered by Hugo.

Robust designed by Daisuke Tsuji.