Thu, 19 Mar 2015 3:38 pm
81 views
Thu, 19 Mar 2015 3:37 pm
193 views
Thu, 19 Mar 2015 8:17 am
Hari ini SPM, rewrite ulang crawl SPM #kantor #python
228 views
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
258 views
Wed, 18 Mar 2015 11:58 am
instalasa pip mysql error ...
running build_ext

building '_mysql' extension

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get
it from http://aka.ms/vcpython27

----------------------------------------
Cleaning up...
#python #pip #mysql #error
278 views
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
229 views
Wed, 18 Mar 2015 9:31 am
Berkas spd ke keuangan lt 7 juga sudah #kantor
183 views
Wed, 18 Mar 2015 9:17 am
Ngirim berkas spd diklat AR ke bagian keuangan kapus, lewat kantor pos sebelah 18 ribu #kantor
188 views
Tue, 17 Mar 2015 9:08 am
@lantai8 pekan panutan #kantor
186 views
Sun, 15 Mar 2015 5:32 am
Hujan di minggu subuh #rawasari
186 views
Fri, 13 Mar 2015 1:21 pm
@rawasari ... tema khutbahnya tadi ingat surga dan neraka #jumat
207 views
Fri, 13 Mar 2015 10:29 am
@syamsudinnor nunggu bagasi #dinasluar
199 views
Fri, 13 Mar 2015 9:07 am
@pesawat siap siap offline ... again #dinasluar
202 views
Fri, 13 Mar 2015 8:39 am
Makan gado gado sama dwi di ruang tunggu bandara #dinasluar
202 views
Fri, 13 Mar 2015 7:30 am
@bandara-sepinggan-balikpapan diklat AR telah usai #dinasluar
196 views
Thu, 12 Mar 2015 2:20 pm
Penutupan diklat #dinasluar
190 views
Wed, 11 Mar 2015 9:11 pm
Tinggal 1 PR lagi untuk mereplace nodejs ... REDIS ... kalo perlu crawler yang selama ini dilakukan python dan curl, juga diambil alih #go #webkoe
238 views
Wed, 11 Mar 2015 9:10 pm
#go dengan #gorilla support #mongodb juga .... #nice
281 views
Wed, 11 Mar 2015 9:09 pm
#go dengan #gorilla sudah support static file juga ... #nice #alhamdulillah
257 views
Wed, 11 Mar 2015 6:16 pm
#go dengan #gorilla, bisa meroute sepuasnya ... :)
242 views
Wed, 11 Mar 2015 7:26 am
191 views
Mon, 9 Mar 2015 11:05 pm
Beli SFTP #sublime $ 20,- XD via #paypal
232 views
Mon, 9 Mar 2015 10:12 pm
FTP Server kpppalangkaraya.com lemot ...
42 views
Mon, 9 Mar 2015 10:56 am
Belajar P3 #dinasluar
197 views
Mon, 9 Mar 2015 8:32 am
Belajar bea meterai #dinasluar
198 views
Mon, 9 Mar 2015 5:59 am
Senam pertama di minggu kedua #dinasluar
188 views
Mon, 9 Mar 2015 12:40 am
#go tetap menunjukkan progress, satu persatu mulai bisa ditasi #webkoe
234 views
Mon, 9 Mar 2015 12:38 am
Berikutnya tinggal mengubah pagar tag (#) menjadi link, ...
1. Disisi server
   ** bisa dilakukan, tapi belum tau caranya mempassing HTML Tag ke template martini
2. Sisi Client
   ** tinggal copas script di express ke client
#webkoe #go
229 views
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")
  }

225 views
Mon, 9 Mar 2015 12:30 am
Menempel ke tag#webkoe from #go
234 views
Mon, 9 Mar 2015 12:29 am
Tags behavior added to #go again ...
320 views
Mon, 9 Mar 2015 12:26 am
Tags behavior added to #go
61 views
Sun, 8 Mar 2015 11:46 pm
Script #go khusus modifikasi list http://play.golang.org/p/dpuX0ORbYJ
192 views