Ever since codebender started growing, one of the biggest challenges we faced was pushing updates to our compiler and being able to quickly iterate on it, fixing bugs and improving its performance. Since we’re kind of obsessed with making all of codebender’s users happy, we need to make sure that all changes applied to the compiler won’t break existing sketches. After all, what’s a web Arduino IDE if you can’t compile your code in it? As of today, about 70000 users have registered to codebender and it hosts more than 200000 projects. How can you make sure all of them work fine without having the whole testing process last forever?

In this blogpost, my thought was to gather some useful material on how to manage assets on a Symfony project by using the Assetic bundle.

As a project gets bigger, handling more and more assets can become overwhelming. Assetic can help us in organizing where the assets should load, combine multiple assets into a single file, compile assets (e.g. Less or Sass sources into CSS) and even optimize them e.g. by minification.

It is often the case that testing a computer program in the environment in which it was meant to be run not only impactical but outright impossible. This is a common issue in embedded development. BlackMirror aspires to solve the problem for javascript by blackboxing the application, recording the interaction of a successful execution with an API, and asserting that a different program has the same interaction with the API as the first one. A big design goal was for the stored interaction to be serializable so BlackMirror is not only able to replay APIs with a different system state but also APIs that are later not available at all.