Skip to content

Instantly share code, notes, and snippets.

View jbowles's full-sized avatar
💭
working on it...

josh bowles jbowles

💭
working on it...
View GitHub Profile
@jbowles
jbowles / lev_part_one.go
Last active December 19, 2015 01:28
Part one of Levenshtein distance
package main
import "fmt"
// http://en.wikipedia.org/wiki/Levenshtein_distance
// FIRST PART: define vector/cell for the dynamic programming table based on string lengths
func PartOneLevenshtein(s1, s2 string) {
m := len(s1)
n := len(s2)
@jbowles
jbowles / lev_part_two.go
Last active December 19, 2015 01:28
Part two of Levenshtein Distance
package main
import "fmt"
// PART TWO: step through each string character and vector/cell of dynamic programming table to determine difference.
//// This handles the case where both characters are an exact match, and only the "no-change" condition is used.
func LevenshteinTwo(s1, s2 string) {
m := len(s1)
n := len(s2)
width := n - 1
@jbowles
jbowles / lev_part_three.go
Created June 29, 2013 12:53
Part three of Levenshtein distance
package main
import "fmt"
// PART THREE: if characters are not the same, we step through a comparison against each character to
//// determine DELETION, INSERTION, SUBSTITUTION and get the minimum of the three values.
func MinInt(a ...int) int {
min := int(^uint(0) >> 1)
for _, i := range a {
if i < min {
@jbowles
jbowles / lev_part_four.go
Created June 29, 2013 22:08
Part four of Levenshtein Distance
package main
import "fmt"
// PART FOUR: in which we get the min value for delete, insert, substitute and set value in Vector, return significant Vector value.
func MinInt(a ...int) int {
min := int(^uint(0) >> 1)
for _, i := range a {
if i < min {
min = i
@jbowles
jbowles / simple_transport_example.go
Created July 27, 2013 15:50
simple web crawler using simple_transport
package main
import (
"fmt"
"net/http"
"time"
"io/ioutil"
"github.com/pkulak/simpletransport/simpletransport"
)
var lotso_urls = []string{
package main
import (
"bufio"
"fmt"
"os"
"time"
)
const numWorkers = 3
@jbowles
jbowles / hello_function.go
Last active December 23, 2015 07:49
Playing with function passing in golang
package main
import "fmt"
type HelloList struct {
people []string
}
func NewHelloList(names []string) *HelloList {
return &HelloList{people: names}
@jbowles
jbowles / gocql_cassandra_example.go
Last active November 17, 2021 12:55
Cassandra and gocql quick start
/*
* Assuming a schema similar to the Cassandra wiki quick start (http://wiki.apache.org/cassandra/GettingStarted):
* CREATE TABLE mykeyspace.users (
* user_id int PRIMARY KEY,
* fname text,
* lname text,
* user_id int
* )
*
* RETURNs THIS:
@jbowles
jbowles / DefRecord.clj
Created October 16, 2013 23:44
quick example of defrecord
;; record Record
(defrecord User [fname lname address])
;; ActiveRecord generally (Object.Model), instead namespace.Record
(defrecord Address [street city state zip])
(defrecord Foo [a b c])
(class Foo) ;java.lang.Class
;; Create an instance of the User and Address records
(def stu (User. "FirstName" "LastName"
(Address. "300 N Street"
@jbowles
jbowles / easy_token.go
Last active December 26, 2015 11:39
Easy out of the box natural language tokenizer using Go standard library
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {