Skip to content

Instantly share code, notes, and snippets.

View bastos's full-sized avatar
:shipit:
Shipping something

Tiago Bastos bastos

:shipit:
Shipping something
View GitHub Profile
@bastos
bastos / gist:18919
Created October 23, 2008 04:34
LinkedList
#include<stdlib.h>
#include<stdio.h>
struct list_el {
int val;
struct list_el *next;
};
typedef struct list_el item;
@bastos
bastos / arvore.rb
Created October 20, 2008 07:08
Binary tree example!
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'rubygems'
class BinaryTree
attr_reader :root
# Por padrão busca por root primeiro
def search(value, node=@root)
if node == nil
@bastos
bastos / diario.rb
Created October 17, 2008 12:37
Busca de anúncios no diário do nordeste
#!/usr/bin/env ruby
require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'cgi'
cgi = CGI.new() # New CGI object
puts "Content-type: text/html\n\n"
puts "<h1>Procurando por #{cgi.params['q']}</h1>"
doc = Hpricot(open("http://diariodonordeste.globo.com/classif/consultando.asp?Filtro=#{cgi.params['q']}&Operador=OU&Filtro2="))
doc.search(".anuncio").each do | anuncio |
@bastos
bastos / xmlrpc_cached_client.rb
Created October 16, 2008 13:55
line 16 just for debbug, remove it later!
# Cache XML RPC calls
#
# Author:: Tiago Bastos (mailto:[email protected]).
# Copyright:: Copyright 2008 Laverock von Schoultz, Gibraltar
class XMLRPCCachedClient < XMLRPC::Client
def call(method, *args)
if ActionController::Base.perform_caching
# Generate unique ley using method and argumets
key = "xmlrpc:call:" + Digest::MD5.hexdigest("#{method}:#{args.to_s}")
@bastos
bastos / memcached.pl
Created October 14, 2008 12:51
Some scripts to get memcached statistics. Choose your flavor! Usage: memcached.script ip port
#!/usr/bin/perl
# Thanks to http://lists.danga.com/pipermail/memcached/2003-October/000354.html
use IO::Socket;
my $socket = IO::Socket::INET->new( PeerAddr => $ARGV[0],
PeerPort => $ARGV[1],
Proto => "tcp",
Type => SOCK_STREAM)
or die($@);
print $socket "stats\n";
$out = <$socket>
@bastos
bastos / gist:16666
Created October 14, 2008 04:11
.emacs
(custom-set-variables
'(column-number-mode t)
'(ecb-options-version "2.32")
'(show-paren-mode t)
'(speedbar-frame-parameters (quote ((minibuffer) (width . 20) (border-width . 0) (menu-bar-lines . 0) (tool-bar-lines . 0) (unsplittable . t) (set-background-color "black"))))
'(transient-mark-mode t))
(setq load-path (cons "~/.emacs.d" load-path))
(setq load-path (cons "~/.emacs.d/rails" load-path))
(setq load-path (cons "~/.emacs.d/ruby-mode" load-path))
Rapidamente:
Greenthreds usam sempre o mesmo core e devido a IO etc eles podem ficar bloqueados por muito tempo, os SPARC T2000 etc tem ótimos processadores para coisas como Java que usam threads nativas e por isso usam muito bem os cores (e tb a tecnologia de hyperthreding). Para usar mongrels, com testes que fizemos aqui, mesmo com alguns mongrels por core a resposta ainda fica bem mais lenta do que se compararmos com as respostas de uma arquitetura x86. O processador da SUN é otimizado para múltiplas threads e não para processos singlethread como o mongrel.
Bem, então para tirar proveito máximo, além de múltiplos processos, seria interessante múltiplas threads (ouvi alguém gritar no fundo, ERLANG?)
Bem, esse foram os resultados que obtive aqui, nada muito científico, mais empírico mesmo.
Problema semelhante com Mysql:
Link: http://www.mysqlperformanceblog.com/2008/05/01/t2000-cpu-performance-watch-out/
@bastos
bastos / jira-ubiquity.js
Created October 3, 2008 14:37
Ubiquity Jira Search, Fork, edit your JIRA URL and use
// Customize your jira address
// Based on apidock.org Ubiquity Search: http://gist.github.com/8132
CmdUtils.CreateCommand(
{
name: "jira",
takes: {"function": noun_arb_text},
icon: "http://www.atlassian.com/favicon.ico",
homepage: "http://tiago.zusee.com",
author: {name: "Tiago Bastos", email: "[email protected]"},
license: "MPL,GPL",
#!/usr/bin/env ruby
# See: http://jira4r.rubyhaus.org/
require 'rubygems'
require 'jira4r/jira4r'
URL ='http://jira.server.com'
FILTER = '10255' # Set your filter ID
LOGIN = 'user'
PASSWORD = 'passwd'
LOG_OUT = 'jira4r.log'
@bastos
bastos / ebot.rb
Created September 18, 2008 14:36
#!/usr/local/bin/ruby
#Just a joke!
require "socket"
# Don't allow use of "tainted" data by potentially dangerous operations
$SAFE=1
NICK_REGEX = "[a-zA-Z][a-zA-Z0-9\\-_\\[\\]\\{\\}\\\\|`\\^]+"