Adafruit PCB ruler. Available at: https://www.flickr.com/photos/adafruit/10211924224 Attribution-NonCommercial-ShareAlike 2.0 Generic (CC BY-NC-SA 2.0)

PCB Rulers

I was bored and made a list of PCB Rulers. Continue reading

Advertisements

Linux tracing and perf tools

In this 18min presentation, Brendan Gregg show us some great tools and resources for linux debugging, tracing, and profiling. He starts by introducing his own tools, all based in ftrace and perf, and then shows how BPF works and the front-end tools provided by BCC.  In this post I copy-pasted the tools’ descriptions and the full presentation is available at the LISA16 conference website.

Continue reading

Howto: open source

While I’ve been studying about open source projects, I found this very interesting reference about creating and maintaining an open source initiative: Producing Open Source Software by Karl Fogel. The book is available at: http://producingoss.com/

Karl compiles a list of resources and learnings about how to run an OSS project: techinical issues, communication, political and social environment, etc.

 

 

 

Arduino Yún

Hardware Description

https://www.arduino.cc/en/Main/ArduinoBoardYun

Getting Started Guide

https://www.arduino.cc/en/Guide/ArduinoYun

Some Inspiring Projects

https://create.arduino.cc/projecthub/products/arduino-yun

hackaday

Related Libraries

https://www.arduino.cc/en/Reference/YunBridgeLibrary

http://www.arduino.org/learning/reference/ciao-library

Defensive Programming

Design by contract

A compromise of the functionalities and behavior of a module;

Use assert()

pros:

  • improve testing
  • detect bugs
  • behaves like executable comments
  • improve code quality
  • can be turned on and off

cons:

  • slowdown execution
  • commonly misunderstood
  • some times used improperly for error handling

 

Static Code Analysis

Excelent tool for detecting errors that the compiler won’t detect.

Other techniques

Data hiding (encapsulation)

exposes only necessary functions;

Robust watchdogs

  • should have separated clock sources;
  • fast detection of failures
  • ability to accuse what went wrong

Stack monitor

easily implemented in RTOS, but hard to implement in baremetal;

Error handling

 

References

Benigno Defensive Programming

my debian tweaks

First steps:

Comment the CDROM option in the apt source list at  /etc/apt/sources.list

# deb cdrom:[Debian GNU/Linux 8.7.1 _Jessie_ - Official amd64 DVD Binary-1 20170116-11:01]/ jessie contrib main

some basic tools

apt-get install vim git tree 

…if it’s a virtualbox VM

apt-get install virtualbox-guest-utils

I made another post about virtualbox

dev tools

apt-get install kicad arduino

pending: cross compiling tools for arm

user conf tools

https://github.com/antonioluppi/userconfig