Thu, 19 Mar 2015 8:14 am
pip masih error, untuk koneksi ke mysql dari #python sementara pake installer saja ... Installer kmarin bermasalah "could not find python 2.7", padahal sudah ane install, ternyata masalahnya di jenis pythonnya ... error itu karena python yang ane pake 64 bit, setelah ganti ke python 32 bit, running smoothly. Installer mysql-python detect python 2.7. Untuk #pip sendiri masih tetap error seperti dimarin,... could not find blablabla .h
Wed, 18 Mar 2015 11:57 am
Rewrite ulang script #python di #kantor, nyoba modular ... sekarang lagi proses install pip mysql, sebelumnya pake installer windows, dengan cara ini kurang fleksibel karena dibatasi hanya dengan installer. Kalo pake pip banyak pilihannya, dengan command "pip search mysql" misalnya, ada banyak pilihan untuk mysql
Wed, 18 Mar 2015 9:17 am
Ngirim berkas spd diklat AR ke bagian keuangan kapus, lewat kantor pos sebelah 18 ribu #kantor
Wed, 11 Mar 2015 9:09 pm
Mon, 9 Mar 2015 12:32 am
Single file #webkoe server written in #go :)
package main
import (
"github.com/go-martini/martini"
"github.com/martini-contrib/render"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
"net"
"net/http"
"fmt"
"time"
"crypto/rand"
"strings"
"regexp"
)
// local
var mongoConfig = "127.0.0.1:27017"
var blogCollection = "webkoe_blog"
var hostHome = "localhost:8080"
var hostCatatan = "catatan"
// webkoe
// var mongoConfig = "mongodb://usermongo:passmongo@localhost:portmongo/dbmongo"
// var blogCollection = "blog"
// var hostHome = "webkoe.net:8080"
// var hostCatatan = "catatan.webkoe.net"
type Blog struct {
Id string
Things string
Date string
Ip string
Agent string
Tag []string
}
func GetIP(r *http.Request) string {
if ipProxy := r.Header.Get("X-FORWARDED-FOR"); len(ipProxy) > 0 {
return ipProxy
}
ip, _, _ := net.SplitHostPort(r.RemoteAddr)
return ip
}
func randStr(strSize int, randType string) string {
var dictionary string
if randType == "alphanum" {
dictionary = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
}
if randType == "alpha" {
dictionary = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
}
if randType == "number" {
dictionary = "0123456789"
}
var bytes = make([]byte, strSize)
rand.Read(bytes)
for k, v := range bytes {
bytes[k] = dictionary[v%byte(len(dictionary))]
}
return string(bytes)
}
func main() {
// MARTINI
m := martini.Classic()
m.Use(render.Renderer(render.Options{
Layout: "layout",
}))
// MONGODB
session, err := mgo.Dial(mongoConfig)
if err != nil {
panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
webkoe_blog := session.DB("admin").C(blogCollection)
// ROUTER
m.Get("/", func(r render.Render, req *http.Request) {
if req.Host == hostHome {
r.HTML(200, "home", req.Host)
}else if req.Host == hostCatatan {
r.HTML(200, "home-catatan", req.Host)
}
})
m.Get("/blog", func(r render.Render) {
var results []Blog
err = webkoe_blog.Find(bson.M{}).Sort("-date").Limit(100).All(&results)
if err != nil {
panic(err)
}
// fmt.Println(results)
r.HTML(200, "blog", results)
})
m.Post("/blog", func(req *http.Request, r render.Render){
things := req.FormValue("things") + " "
// tag
regex, err := regexp.Compile("#([a-z])+ ")
remove, err := regexp.Compile("(#| )")
tags := regex.FindAllString(things, -1)
// fmt.Println(tags)
// modify semua listA
var modTags []string
for _, value := range tags {
final := remove.ReplaceAllString(value, "")
modTags = append(modTags, final)
}
// fmt.Println(modTags)
waktu := strings.Split(fmt.Sprint(time.Now()), ".")[0]
blog_id := randStr(7, "alphanum")
ip := GetIP(req)
agent := fmt.Sprint(req.Header["User-Agent"])
jsonBlog := &Blog{Id: blog_id, Things: things, Date: waktu, Ip: ip, Agent: agent, Tag: modTags}
err = webkoe_blog.Insert(jsonBlog)
if err != nil {
panic(err)
}
// fmt.Println(agent)
r.Redirect("/blog")
})
m.Get("/blog/write", func(r render.Render) {
r.HTML(200, "blog-form", nil)
})
m.RunOnAddr(":8080")
}
Sun, 8 Mar 2015 11:46 pm
Script #go khusus modifikasi list http://play.golang.org/p/dpuX0ORbYJ