[转]good sample of Go

from 《Go语言.云动力》

  1 package main
  2
  3 import (
  4     "io"
  5     "log"
  6     "net/http"
  7     "os"
  8     "os/exec"
  9     "strconv"
 10 )
 11
 12 var uniq = make(chan int)
 13
 14 func init() {
 15     go func() {
 16         for i := 0; ; i++ {
 17             uniq <- i
 18         }
 19     }()
 20 }
 21
 22 func main() {
 23     if err := os.Chdir(os.TempDir()); err != nil {
 24         log.Fatal(err)
 25     }
 26
 27     http.HandleFunc("/", FrontPage)
 28     http.HandleFunc("/compile", Compile)
 29     log.Fatal(http.ListenAndServe("127.0.0.1:1234", nil))
 30 }
 31
 32 func FrontPage(w http.ResponseWriter, _ *http.Request) {
 33     w.Write([]byte(frontPage))
 34 }
 35
 36 func err(w http.ResponseWriter, e error) bool {
 37     if e != nil {
 38         w.Write([]byte(e.Error()))
 39         return true
 40     }
 41     return false
 42 }
 43
 44 func Compile(w http.ResponseWriter, req *http.Request) {
 45     x := "play_" + strconv.Itoa(<-uniq) + ".go"
 46
 47     f, e := os.Create(x)
 48     if err(w, e) {
 49         return
 50     }
 51
 52     defer os.Remove(x)
 53     defer f.Close()
 54
 55     _, e = io.Copy(f, req.Body)
 56     if err(w, e) {
 57         return
 58     }
 59     f.Close()
 60
 61     cmd := exec.Command("go", "run", x)
 62     o, e := cmd.CombinedOutput()
 63     if err(w, e) {
 64         return
 65     }
 66
 67     w.Write(o)
 68 }
 69
 70 const frontPage = `<!doctype html>
 71 <html><head>
 72 <script>
 73 var req;
 74 function compile(){
 75     var prog = document.getElementById("edit").value;
 76     var req = new XMLHttpRequest ();
 77     req.onreadystatechange = function() {
 78         if (!req || req.readyState != 4)
 79             return;
 80         document.getElementById("output").innerHTML = req.responseText;
 81     }
 82     req.open("POST", "/compile", true);
 83     req.setRequestHeader("Content-Type", "text/plain;charset=utf-8");
 84     req.send(prog);
 85 }
 86
 87 </script>
 88 </head>
 89 <body>
 90 <textarea rows="25" cols="80" id="edit" spellcheck="false">
 91
 92 package main
 93 import "fmt"
 94 func main(){
 95     fmt.Println("hello, world")
 96 }
 97 </textarea>
 98 <button onclick="compile();">run</button>
 99 <div id="output"></div>
100 </body>
101 </html>
102 `

[转]good sample of Go,布布扣,bubuko.com

时间: 2024-12-28 14:28:32

[转]good sample of Go的相关文章

随机抽样一致算法(Random sample consensus,RANSAC)

作者:桂. 时间:2017-04-25  21:05:07 链接:http://www.cnblogs.com/xingshansi/p/6763668.html 前言 仍然是昨天的问题,别人问到最小二乘.霍夫变换.RANSAC在直线拟合上的区别.昨天梳理了霍夫变换,今天打算抽空梳理一下RANSAC算法,主要包括: 1)RANSAC理论介绍 2)RANSAC应用简介: 内容为自己的学习记录,其中很多地方借鉴了别人,最后一起给出链接. 一.RANSAC理论介绍 普通最小二乘是保守派:在现有数据下,

Sample Testlink API client in python

""" Testlink API Sample Python Client implementation """ import xmlrpclib class TestlinkAPIClient: # substitute your server URL Here SERVER_URL = "http://localhost/testlink/lib/api/xmlrpc.php" def __init__(self, dev

Sample Apps by Android Team -- Amazed

Sample Apps by Android Team 代码下载:http://pan.baidu.com/s/1eSNmdUE 本次是项目Amazed代码学习记录. 一.创建自定义View @.在onSizeChanged中,通过如参w(宽)和h(高)的比较来判断手机是处于横向(Landscape)还是纵向(Portrait). @.在onDraw中进行自定义View的界面绘制. @.绘制界面需要Canvas和Paint: 1.Cnavas:用来控制画什么,比如画直线(drawLine).画矩

openstack4j a java sample demo

This is  A sample Demo package edu.hnu.lost.openstack.test; import java.util.List; import javax.ws.rs.client.Entity; import org.openstack.common.client.AbstractOpenStackClient;import org.openstack.keystone.KeystoneClient;import org.openstack.keystone

hbase java sample

通过HBaseAdmin维护表(创建,删除表) import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.

solrcloud sample

在solrcloud出来之前,如果通过solrj连接solrserver,需要程序自己实现一致性hash.新版本的solr支持cloud的部署方式,可以自动实现lb和sharding的功能(通过CloudSolrServer类连接cloud),可以用下面代码做测试需要的jar包如下: apache-solr-solrj.jar apache-solr-core.jar zookeeper.jar    commons-logging.jar  apache-logging-log4j.jar 

如何将经纬度利用Google Map API显示C# VS2005 Sample Code

原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上,这个做法有两种,最简单的就是直接传值到Google Maps上. 举例来说,当我们知道经纬度后,只要将数据套到以下网址即可. http://maps.google.com/maps?q=25.048346%2c121.516396 在参数q=后面,就可以加上经纬度了. 25.048346是Lati

解决新建Support7Demos的sample时出现编译错误和运行报错出现的问题

右键New->Other->Android Sample Project->选择Android 4.4.2->选择Support7Demos ,finish. 会出现编译错误 解决如下: 1.把这三个文件导入到Eclipse里, 这三个是库文件,并且勾选COPY到工作空间里选项 如果没有这三个文件,就从这里下载 2.导入三个library工程后,mediarouter会无法编译,打开工程属性在anroid里将api-level改成17,添加依赖工程appcompat 3.就是将刚才

Python 对不均衡数据进行Over sample(重抽样)

需要重采样的数据文件(Libsvm format),如heart_scale +1 1:0.708333 2:1 3:1 4:-0.320755 5:-0.105023 6:-1 7:1 8:-0.419847 9:-1 10:-0.225806 12:1 13:-1 -1 1:0.583333 2:-1 3:0.333333 4:-0.603774 5:1 6:-1 7:1 8:0.358779 9:-1 10:-0.483871 12:-1 13:1 .... 重采样后的数据保存文件(Lib

Pig sample用法举例

some = sample data 0.1 遍历整个数据集,获取指定比例的行数的数据,获取的数据不确定,条数也不准确. 内部重写为filter data by random() <= 0.1 抽取100行数据 data = load 'data'; grpd = group data all; sums = foreach grpd generate COUNT(data) as c; some = sample data 100/(double)sums.c;