diff --git a/misc/at.go b/misc/at.go
deleted file mode 100644
index 4121058..0000000
--- a/misc/at.go
+++ /dev/null
@@ -1,14 +0,0 @@
-package main
-import (
- `fmt`
- `github.com/nsf/termbox-go`
-)
-
-func main() {
- fore := termbox.ColorGreen | termbox.AttrUnderline
- fmt.Printf("f: %08b\n", fore)
- fore = termbox.ColorGreen | termbox.AttrUnderline | termbox.AttrReverse
- fmt.Printf("f: %08b\n", fore)
- fore &= ^termbox.AttrReverse
- fmt.Printf("f: %08b\n", fore)
-}
diff --git a/misc/dj.go b/misc/dj.go
deleted file mode 100644
index 0840def..0000000
--- a/misc/dj.go
+++ /dev/null
@@ -1,413 +0,0 @@
-// Copyright (c) 2013 by Michael Dvorkin. All Rights Reserved.
-//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-package main
-import (
- "fmt"
- "bytes"
- "regexp"
- "strings"
- "text/template"
-)
-type Market struct {
- Dow map[string]string
- Nasdaq map[string]string
- Sp500 map[string]string
- Advances map[string]string
- Declines map[string]string
- Unchanged map[string]string
- Highs map[string]string
- Lows map[string]string
-}
-//-----------------------------------------------------------------------------
-func main() {
- html := `
-...
-
-
-
-
-Advances & Declines
-
-
-
- |
-NYSE |
-NASDAQ |
-
-
-
-Advances |
-2,992
- (72%)
- |
-1,445
- (57%)
- |
-
-
-Declines |
-1,040
- (25%)
- |
-950
- (38%)
- |
-
-
-Unchanged |
-113
- (3%)
- |
-128
- (5%)
- |
-
-
-Up Vol* |
-2,582
- (74%)
- |
-950
- (60%)
- |
-
-
-Down Vol* |
-863
- (25%)
- |
-625
- (39%)
- |
-
-
-Unch. Vol* |
-46
- (1%)
- |
-20
- (1%)
- |
-
-
-New Hi's |
-350 |
-314 |
-
-
-New Lo's |
-117 |
-19 |
-
-
-
-...
-
-
-NYSE |
-LAST |
-CHANGE |
-
-`
-
-html = `
-...
-
-
-
-
-Advances & Declines
-
-
-
- |
-NYSE |
-NASDAQ |
-
-
-
-Advances |
-1,962
- (48%)
- |
-1,322
- (53%)
- |
-
-
-Declines |
-2,029
- (49%)
- |
-1,068
- (43%)
- |
-
-
-Unchanged |
-126
- (3%)
- |
-115
- (5%)
- |
-
-
-Up Vol* |
-1,822
- (55%)
- |
-918
- (58%)
- |
-
-
-Down Vol* |
-1,417
- (43%)
- |
-636
- (40%)
- |
-
-
-Unch. Vol* |
-76
- (2%)
- |
-24
- (2%)
- |
-
-
-New Hi's |
-355 |
-337 |
-
-
-New Lo's |
-110 |
-14 |
-
-
-
-
-
-
-
Most Actives
-
-
-
-
-...
-`
- start := strings.Index(html, ``
- const some = `<.+?`
- const space = `\s*`
- const color = `#([08c]{6});">\s*`
- const price = `([\d\.,]+)`
- const percent = `\(([\d\.,%]+)\)`
-
- regex := []string{
- "(Dow)", any, price, some, color, price, some, percent, any,
- "(Nasdaq)", any, price, some, color, price, some, percent, any,
- "(S&P 500)", any, price, some, color, price, some, percent, any,
- "(Advances)", any, price, space, percent, any, price, space, percent, any,
- "(Declines)", any, price, space, percent, any, price, space, percent, any,
- "(Unchanged)", any, price, space, percent, any, price, space, percent, any,
- "(New Hi's)", any, price, any, price, any,
- "(New Lo's)", any, price, any, price, any,
- }
-
- re := regexp.MustCompile(strings.Join(regex, ""))
- matches := re.FindAllStringSubmatch(html, -1)
-
- if len(matches) > 0 {
- fmt.Printf("%d matches\n", len(matches[0]))
- for i, str := range matches[0][1:] {
- fmt.Printf("%d) [%s]\n", i, str)
- }
- } else {
- println("No matches")
- }
-return
- m := Market{
- Dow: make(map[string]string),
- Nasdaq: make(map[string]string),
- Sp500: make(map[string]string),
- Advances: make(map[string]string),
- Declines: make(map[string]string),
- Unchanged: make(map[string]string),
- Highs: make(map[string]string),
- Lows: make(map[string]string),
- }
- m.Dow[`name`] = matches[0][1]
- m.Dow[`latest`] = matches[0][2]
- m.Dow[`change`] = matches[0][4]
- if matches[0][3] == "Up" {
- m.Dow[`change`] = "+" + matches[0][4]
- m.Dow[`percent`] = "+" + matches[0][5]
- } else {
- m.Dow[`change`] = "-" + matches[0][4]
- m.Dow[`percent`] = "-" + matches[0][5]
- }
-
- m.Nasdaq[`name`] = matches[0][6]
- m.Nasdaq[`latest`] = matches[0][7]
- if matches[0][8] == "Up" {
- m.Nasdaq[`change`] = "+" + matches[0][9]
- m.Nasdaq[`percent`] = "+" + matches[0][10]
- } else {
- m.Nasdaq[`change`] = "-" + matches[0][9]
- m.Nasdaq[`percent`] = "-" + matches[0][10]
- }
-
- m.Sp500[`name`] = matches[0][11]
- m.Sp500[`latest`] = matches[0][12]
- if matches[0][13] == "Up" {
- m.Sp500[`change`] = "+" + matches[0][14]
- m.Sp500[`percent`] = "+" + matches[0][15]
- } else {
- m.Sp500[`change`] = "-" + matches[0][14]
- m.Sp500[`percent`] = "-" + matches[0][15]
- }
-
- m.Advances[`name`] = matches[0][16]
- m.Advances[`nyse`] = matches[0][17]
- m.Advances[`nysep`] = matches[0][18]
- m.Advances[`nasdaq`] = matches[0][19]
- m.Advances[`nasdaqp`] = matches[0][20]
-
- m.Declines[`name`] = matches[0][21]
- m.Declines[`nyse`] = matches[0][22]
- m.Declines[`nysep`] = matches[0][23]
- m.Declines[`nasdaq`] = matches[0][24]
- m.Declines[`nasdaqp`] = matches[0][25]
-
- m.Unchanged[`name`] = matches[0][26]
- m.Unchanged[`nyse`] = matches[0][27]
- m.Unchanged[`nysep`] = matches[0][28]
- m.Unchanged[`nasdaq`] = matches[0][29]
- m.Unchanged[`nasdaqp`] = matches[0][30]
-
- m.Highs[`name`] = matches[0][31]
- m.Highs[`nyse`] = matches[0][32]
- m.Highs[`nasdaq`] = matches[0][33]
- m.Lows[`name`] = matches[0][34]
- m.Lows[`nyse`] = matches[0][35]
- m.Lows[`nasdaq`] = matches[0][36]
- fmt.Printf("%q\n", m)
- println(Format(m))
-}
-
-//-----------------------------------------------------------------------------
-func Format(m Market) string {
- markup := `{{.Dow.name}}: {{.Dow.change}} ({{.Dow.percent}}) at {{.Dow.latest}}, `
- markup += `{{.Sp500.name}}: {{.Sp500.change}} ({{.Sp500.percent}}) at {{.Sp500.latest}}, `
- markup += `{{.Nasdaq.name}}: {{.Nasdaq.change}} ({{.Nasdaq.percent}}) at {{.Nasdaq.latest}}`
- markup += "\n"
- markup += `{{.Advances.name}}: {{.Advances.nyse}} ({{.Advances.nysep}}) on NYSE and {{.Advances.nasdaq}} ({{.Advances.nasdaqp}}) on Nasdaq. `
- markup += `{{.Declines.name}}: {{.Declines.nyse}} ({{.Declines.nysep}}) on NYSE and {{.Declines.nasdaq}} ({{.Declines.nasdaqp}}) on Nasdaq`
- markup += "\n"
- markup += `New highs: {{.Highs.nyse}} on NYSE and {{.Highs.nasdaq}} on Nasdaq. `
- markup += `New lows: {{.Lows.nyse}} on NYSE and {{.Lows.nasdaq}} on Nasdaq.`
- template, err := template.New("screen").Parse(markup)
- if err != nil {
- panic(err)
- }
-
- buffer := new(bytes.Buffer)
- err = template.Execute(buffer, m)
- if err != nil {
- panic(err)
- }
-
- return buffer.String()
-}
diff --git a/misc/google_finance.go b/misc/google_finance.go
deleted file mode 100644
index d3faf2f..0000000
--- a/misc/google_finance.go
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright (c) 2013 by Michael Dvorkin. All Rights Reserved.
-//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-//
-// +build ignore
-
-package mop
-
-import (
- "bytes"
- "encoding/json"
- "io/ioutil"
- "net/http"
- "strings"
- "time"
-)
-
-const real_time_url = "http://finance.google.com/finance/info?client=ig&q="
-
-// const body = `
-// // [
-// {
-// "id": "22144"
-// ,"t" : "AAPL"
-// ,"e" : "NASDAQ"
-// ,"l" : "393.78"
-// ,"l_cur" : "393.78"
-// ,"s": "2"
-// ,"ltt":"4:00PM EDT"
-// ,"lt" : "Jun 27, 4:00PM EDT"
-// ,"c" : "-4.29"
-// ,"cp" : "-1.08"
-// ,"ccol" : "chr"
-// ,"el": "393.40"
-// ,"el_cur": "393.40"
-// ,"elt" : "Jun 27, 5:04PM EDT"
-// ,"ec" : "-0.38"
-// ,"ecp" : "-0.10"
-// ,"eccol" : "chr"
-// ,"div" : "3.05"
-// ,"yld" : "3.10"
-// }
-// ,{
-// "id": "353353"
-// ,"t" : "ATVI"
-// ,"e" : "NASDAQ"
-// ,"l" : "13.55"
-// ,"l_cur" : "13.55"
-// ,"s": "0"
-// ,"ltt":"3:59PM EDT"
-// ,"lt" : "Jun 21, 3:59PM EDT"
-// ,"c" : "-0.33"
-// ,"cp" : "-2.38"
-// ,"ccol" : "chr"
-// }
-// ,{
-// "id": "17154"
-// ,"t" : "HPQ"
-// ,"e" : "NYSE"
-// ,"l" : "24.15"
-// ,"l_cur" : "24.15"
-// ,"s": "0"
-// ,"ltt":"4:01PM EDT"
-// ,"lt" : "Jun 21, 4:01PM EDT"
-// ,"c" : "0.57"
-// ,"cp" : "2.31"
-// ,"ccol" : "chr"
-// }
-// ,{
-// "id": "18241"
-// ,"t" : "IBM"
-// ,"e" : "NYSE"
-// ,"l" : "195.46"
-// ,"l_cur" : "195.46"
-// ,"s": "0"
-// ,"ltt":"4:02PM EDT"
-// ,"lt" : "Jun 21, 4:02PM EDT"
-// ,"c" : "-1.89"
-// ,"cp" : "-0.96"
-// ,"ccol" : "chr"
-// }
-// ]`
-
-type Message struct {
- Ticker string `json:"t"`
- Exchange string `json:"e"`
- LastTrade string `json:"l"`
- CurrentPrice string `json:"l_cur"`
- LastTradeTime string `json:"ltt"`
- LastTradeDateTime string `json:"lt"`
- Change string `json:"c"`
- ChangePercent string `json:"cp"`
- ExLastTrade string `json:"el"`
- ExCurrentPrice string `json:"el_cur"`
- ExLastTradeDateTime string `json:"elt"`
- ExChange string `json:"ec"`
- ExChangePercent string `json:"ecp"`
- Dividend string `json:"div"`
- Yield string `json:"yld"`
-}
-
-var message []Message
-
-func (m *Message) Color() string {
- if strings.Index(m.Change, "-") == -1 {
- return ""
- } else {
- return ""
- }
-}
-
-//-----------------------------------------------------------------------------
-func Quote(ticker string) []Message {
- if len(message) > 0 && time.Now().Second()%5 != 0 { // Fetch quotes every 5 seconds.
- return message
- }
-
- // Send the request.
- response, err := http.Get(real_time_url + ticker)
- if err != nil {
- panic(err)
- }
-
- // Fetch response and get its body.
- defer response.Body.Close()
- body, err := ioutil.ReadAll(response.Body)
-
- // Parse JSON.
- err = json.Unmarshal(sanitize(body), &message)
-
- // Parse JSON.
- // err := json.Unmarshal(sanitize([]byte(body)), &message)
- if err != nil {
- panic(err)
- }
-
- return message
-}
-
-//-----------------------------------------------------------------------------
-func sanitize(ascii []byte) []byte {
- return bytes.Replace(ascii, []byte{'/'}, []byte{}, -1)
-}
-
-// func sanitize(str string) string {
-// r := strings.NewReplacer("//", "", "[", "", "]", "")
-// fmt.Printf("%s\n", []byte(r.Replace(str)))
-// return r.Replace(str)
-// }
-//
-// func main() {
-//
-// message := Quote("coh,atvi,hpq,ibm,xxx")
-// for _,m := range message {
-// fmt.Printf("%s, %s, %s\n", m.Ticker, m.LastTrade, m.Change)
-// }
-// }
diff --git a/misc/in.go b/misc/in.go
deleted file mode 100644
index cfda811..0000000
--- a/misc/in.go
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 2013 by Michael Dvorkin. All Rights Reserved.
-//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-package main
-import (
- `fmt`
- `reflect`
-)
-
-type Formatter struct {
- entity interface{}
-}
-
-type Dog struct {
- name string
-}
-
-func (self *Formatter) Initialize(e interface{}) *Formatter {
- self.entity = e
- fmt.Printf("[%v]\n", reflect.TypeOf(e).String())
- return self
-}
-
-func main() {
- str := `hello`
- f1 := new(Formatter).Initialize(str)
- dog := new(Dog)
- dog.name = `Google`
- f2 := new(Formatter).Initialize(dog)
-
- fmt.Printf("[%v] [%v]\n", f1, f2)
-}
diff --git a/misc/js.go b/misc/js.go
deleted file mode 100644
index 9fa7628..0000000
--- a/misc/js.go
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (c) 2013 by Michael Dvorkin. All Rights Reserved.
-//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-package main
-import (
- "fmt"
- "encoding/json"
-)
-
-type Config struct {
- MarketRefreshRate int
- QuotesRefreshRate int
- Tickers []string
- SortBy string
- SortOrder string
-}
-
-func main() {
- var cfg Config
- cfg.MarketRefreshRate = 1
- cfg.QuotesRefreshRate = 1
- cfg.Tickers = []string{ "AAPL", "ALU", "HPQ", "IBM" }
- cfg.SortBy = "Ticker"
- cfg.SortOrder = "Desc"
- fmt.Printf("%+v\n", cfg)
- blob, err := json.Marshal(cfg)
- if err != nil {
- panic(err)
- }
- fmt.Printf("%q\n", blob)
-
- var cfg2 Config
- err = json.Unmarshal(blob, &cfg2)
- if err != nil {
- panic(err)
- }
- fmt.Printf("%+v\n", cfg2)
-}