Skip to content

Instantly share code, notes, and snippets.

@afiore
afiore / batch-index.sh
Last active December 16, 2015 21:59
Batch-index documents in ElasticSearch from a line separated Hadoop result file
#! /usr/bin/env bash
if [[ "" == "$DATASET_OUTPUT" ]]; then
export DATASET_OUTPUT="../results.json/part-00000"
fi
if [ -a import.log ]; then
rm import.log
fi
@afiore
afiore / http-check.hs
Last active December 18, 2015 02:59
HTTP availability check in Haskell (with some redirect handling)
import Control.Monad
import Prelude hiding (catch)
import Control.Exception
import Control.Concurrent.ParallelIO
import qualified Control.Concurrent.ParallelIO.Local as Local
import Network.HTTP
import Network.Stream (ConnError(..), Result)
import System.IO
import Data.List
@afiore
afiore / opendetex.rb
Created June 26, 2013 08:58
Opendetex Hombrew formula
require 'formula'
class Opendetex < Formula
homepage 'https://code.google.com/p/opendetex/'
url 'https://opendetex.googlecode.com/files/opendetex-2.8.1.tar.bz2'
sha1 'a811635519dc6573735ca9d406f7032eccacd7e0'
version "2.8.1"
depends_on 'flex' => :build
@afiore
afiore / curried_proc.rb
Last active December 20, 2015 10:59
Better currying for Ruby Proc objects
class Proc
def _(*args)
CurriedProc.new(args, &self)
end
end
class CurriedProc < Proc
def initialize(args, &block)
msg = "Curried arguments is greater than block arity (#{args.size} > #{block.arity})"
raise ArgumentError, msg if args.size > block.arity
@afiore
afiore / workers.hs
Last active August 17, 2018 00:34
Basic implementation of a thread pool like construct in Haskell
import qualified Data.ByteString.Lazy as BSL
import Control.Monad
import Control.Monad.Trans
import Control.Monad.Trans.Resource
import Control.Concurrent
import Control.Concurrent.Chan
import qualified Network.HTTP.Conduit as C
import Network.HTTP.Types (Status(..))
@afiore
afiore / collection_parser.rb
Last active August 29, 2015 13:57
A generic (flat) collection parser using Nokogiri's SAX capabilities
require 'nokogiri'
@afiore
afiore / voting.scala
Last active August 29, 2015 14:22
akka persistence workshop
package pt.akka.workshop
import java.util.UUID
import akka.actor.{ActorLogging, Actor}
import akka.persistence.{RecoveryCompleted, SnapshotOffer, PersistentActor}
/*
import Function.const
import scala.annotation.tailrec
import scala.collection.SortedMap
object Palindrome {
case class Palindrome(s: String, startIdx: Int)
case class PalKey(index: Int, length: Int)
type PalIndex = SortedMap[PalKey, Int]
object Palindrome {
@afiore
afiore / build.sbt
Last active June 23, 2016 22:10
Skip the test when the current build SHA1 has a successful status flag associated (Github API)
import org.kohsuke.github.{GHCommitState, GHCommitStatus, GitHub}
name := "gitStatus"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "test"
### Keybase proof
I hereby claim:
* I am afiore on github.
* I am afiore (https://keybase.io/afiore) on keybase.
* I have a public key ASDOj-CbhhpO4ZN_j4oJ3sfPi6BZfaPqP3_t_9XD_nQ9Pgo
To claim this, I am signing this object: