Skip to content

Instantly share code, notes, and snippets.

View agarie's full-sized avatar

Carlos Agarie agarie

View GitHub Profile
/*
** queue-threadsafe.c
**
** A thread-safe (for 2 threads) implementation of a queue. Based on the
** implementation from the book Embedded Systems, by Jonathan W. Valvano,
** chapter 3, page 130.
*/
#include <stdlib.h>
@agarie
agarie / using_rdoc.c
Last active December 10, 2015 09:48
Getting RDoc to work on C/C++ files.
/*
* This comment WON'T be processed.
*/
static VALUE undocumented_method(VALUE self) {
return Qnil;
}
/*
* This comment WILL be processed.
*/
@agarie
agarie / gist:4753170
Created February 11, 2013 07:54
Installing ruby-opencv on OS X.
# Use Homebrew and be happy.
brew update
brew install opencv
# Give the correct pathnames. Of course, `2.4.3` is the current version at this time, change it accordingly.
gem install ruby-opencv -- --with-opencv-lib=/usr/local/Cellar/opencv/2.4.3/lib \
--with-opencv-include=/usr/local/Cellar/opencv/2.4.3/include/opencv \
--with-opencv-include=/usr/local/Cellar/opencv/2.4.3/include/opencv2
@agarie
agarie / naive-bayes.rb
Last active December 15, 2015 05:39
A simple implementation of the Naïve Bayes classifier for english text in Ruby. It's a prototype; more to come.
# A very simple naive bayes classifier for english text.
#
# Author: Carlos Agarie <carlos@onox.com.br>
# Some assumptions:
# - The stop words, dataset and test data are hardcoded.
# - Binary classification (so each phrase has a corresponding boolean value).
# - If there's a missing feature, it's ignored.
#
# Of course this isn't a finished "product". I'm studying classifiers, so this
@agarie
agarie / f1-score.rb
Created March 25, 2013 02:31
F1 score in Ruby. I use this snippet a lot, but usually rewrite it for each project... not anymore.
# The F1 score is a measure of how accurate an algorithm is.
#
# Precision is the probability that a (randomly selected) retrieved document is relevant:
# precision = true positives / (true positives + false positives)
#
# Recall is the probability that a (randomly selected) relevant document is retrieved in a search:
# recall = true positives / (true positives + false negatives)
def f1_score(precision, recall)
(2 * (precision * recall)) / (precision + recall)
@agarie
agarie / composite.rb
Created March 26, 2013 04:15
Just a small experiment after reading "Design Patterns in Ruby", by Ross Olsen.
# Small experiment in which I try to implement the composite pattern without
# resorting to two classes.
class Composite
attr_accessor :action, :subcomposites
# Cool thing: if we don't provide a block, it'll be passed nil. So there's no
# need to make it a "default parameter" (you can't do it, actually).
def initialize(&action)
@action = action
@agarie
agarie / tokyotosho.rb
Last active July 1, 2022 15:07
Utility to download torrent files from tokyotosho.info. It uses a similar heuristic to my own when looking for torrents, but could use some improvements.
#!/usr/bin/env ruby -w
require 'open-uri'
require 'uri'
require 'nokogiri'
DEFAULT_DIR = "/Users/carlosagarie/torrents"
CATEGORY = 1 # Anime.
# Regular expressions and constants for extraction.
@agarie
agarie / bootable-flashdrive.sh
Last active December 18, 2015 05:29
How to create a USB bootable flash drive in OS X. I *always* forget this.
# From: http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-mac-osx
hdiutil convert -format UDRW -o ~/path/to/target.img ~/path/to/iso.iso
# Run diskutil list and determine the device node assigned to your flash media (e.g. /dev/disk2).
diskutil list
# Replace N with the disk number from the last command.
diskutil unmountDisk /dev/diskN
@agarie
agarie / stop_words.en
Last active December 30, 2015 20:28
English stop words for NLP.
a
about
above
across
after
afterwards
again
against
all
almost
@agarie
agarie / stop_words.pt
Created December 9, 2013 20:45
Portuguese (pt-PT) stop words for NLP. This sample is from https://gist.github.com/lorn/995615, but I formatted it in a nicer way.
abaixo
aca
acaso
acerca
acima
acola
acula
ademais
adentro
adiante