Skip to content

Instantly share code, notes, and snippets.

@nathanpc
nathanpc / Ruby-StyleGuide.md
Last active September 21, 2018 21:03
Ruby Style Guide (Innove Workshop Company)

Ruby Style Guide

This style guide is based on the one used by GitHub, but with some changes that make the code a tiny bit more readable.

  • Use soft-tabs with a two space indent.

  • Keep each line of code to a readable length. Unless you have a reason to, keep lines to fewer than 100 characters.

  • Never leave trailing whitespace.

@nathanpc
nathanpc / MintyUSBoost.c
Created February 19, 2016 13:16
A minimalistic switchmode converter
/*
* File: MintyUSBoost.c
* Author: Nathan Campos <nathanpc@dreamintech.net>
*
* Created on February 14, 2016, 2:45 PM
*/
// 12F683
// +---------+
// -|Vdd Vss|-
@nathanpc
nathanpc / linear_vreg_res.R
Last active August 29, 2015 14:12
Calculates the resistor values to be used in a op-amp based linear voltage regulator according to a specific selection of voltage references.
#' linear_vreg_res.R
#' Calculates the resistor values to be used in a op-amp based linear voltage
#' regulator according to a specific selection of voltage references.
#'
#' @author Nathan Campos <nathanpc@dreamintech.net>
# Generates a E12 series of resistors.
e12_resistors <- function (steps = c(1000, 10000, 100000)) {
base = c(1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2)
e12 = c()
@nathanpc
nathanpc / plot_thd.py
Last active August 29, 2015 14:05
THD Plotting Script
#!/bin/env python
### plot_thd.py
### Plot the THD of a circuit over a range of frequencies using ngspice.
###
### Author: Nathan Campos <nathanpc@dreamintech.net>
import os
import sys
import subprocess
@nathanpc
nathanpc / .screenrc
Last active August 29, 2015 14:02
My .screenrc
# Autodetach session on hangup instead of terminating screen completely
autodetach on
# Set the colors to 256 and enable bold.
term screen-256color
attrcolor b ".I"
# 30.000-line scrollback buffer.
defscrollback 30000
@nathanpc
nathanpc / irc_client.cpp
Last active December 11, 2015 00:09
Fix for the QUIT bug in leafIRC
void *IRC_Client::handle_recv(void) {
// recv some data.
int numbytes;
char buffer[MAXDATASIZE];
while (true) {
numbytes = recv(socket_descriptor, buffer, MAXDATASIZE - 1, 0);
buffer[numbytes] = '\0';
if (numbytes == 0) {
@nathanpc
nathanpc / BBTimer.java
Created June 23, 2012 00:42
Timers on BlackBerry Java
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
// Do something when the timer ticks
}
});
}
@nathanpc
nathanpc / main.js
Created June 9, 2012 19:58
Correct onscreenready Example
bb.init({
onscreenready: function (element, id) {
if (id == "main") {
var item = element.createElement('div');
item.setAttribute('data-bb-type','item');
item.setAttribute('data-bb-title','my title');
item.innerHTML = 'my description';
item.setAttribute('data-bb-img','foo.png');
element.getElementById('mylist').appendItem(item);
@nathanpc
nathanpc / main.js
Created June 9, 2012 19:57
Wrong onscreenready Example
bb.init({
onscreenready: function (element, id) {
if (id == "main") {
var item = document.createElement('div');
item.setAttribute('data-bb-type','item');
item.setAttribute('data-bb-title','my title');
item.innerHTML = 'my description';
item.setAttribute('data-bb-img','foo.png');
document.getElementById('mylist').appendItem(item);