yuzuki616 / aws-panel Goto Github PK
View Code? Open in Web Editor NEW一个可以管理AWS资源的Web面板
License: GNU General Public License v3.0
一个可以管理AWS资源的Web面板
License: GNU General Public License v3.0
不能用了?
light只有三个地区的吗,可以增加全部地区吗,拜谢
git clone 好像失效了
显示 -bash: git: command not found
大佬 ec2 和lightsail里能加上win server 2109 2016 2012 吗
添加支持开机脚本功能吗?
创建ec2实例到粘贴ssh key那里无法输入内容,创建ls实例可用区显示no data available
还想要一次性批量添加多个账号API,会有吗?
atal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x47 pc=0x7f993d01e5ca]
runtime stack:
runtime.throw({0xe49d4f?, 0x7f9920000d78?})
/usr/local/go/src/runtime/panic.go:992 +0x71
runtime.sigpanic()
/usr/local/go/src/runtime/signal_unix.go:802 +0x3a9
goroutine 39 [syscall]:
runtime.cgocall(0xbeaa00, 0xc000042d98)
/usr/local/go/src/runtime/cgocall.go:157 +0x5c fp=0xc000042d70 sp=0xc000042d38 pc=0x4059dc
net._C2func_getaddrinfo(0xc00079ed50, 0x0, 0xc00007d6e0, 0xc0005602a0)
_cgo_gotypes.go:94 +0x56 fp=0xc000042d98 sp=0xc000042d70 pc=0x6faab6
net.cgoLookupIPCNAME.func1({0xc00079ed50, 0x0?, 0x0?}, 0xc00079ecf0?, 0x6ffabb?)
/usr/local/go/src/net/cgo_unix.go:160 +0x9f fp=0xc000042df0 sp=0xc000042d98 pc=0x6fc53f
net.cgoLookupIPCNAME({0xe21db6, 0x3}, {0xc00079ecf0, 0x20})
/usr/local/go/src/net/cgo_unix.go:160 +0x16d fp=0xc000042f38 sp=0xc000042df0 pc=0x6fbdad
net.cgoIPLookup(0x1575710?, {0xe21db6?, 0xc00079ed20?}, {0xc00079ecf0?, 0xc00057a420?})
/usr/local/go/src/net/cgo_unix.go:217 +0x3b fp=0xc000042fa8 sp=0xc000042f38 pc=0x6fc5fb
net.cgoLookupIP.func1()
/usr/local/go/src/net/cgo_unix.go:227 +0x36 fp=0xc000042fe0 sp=0xc000042fa8 pc=0x6fca36
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc000042fe8 sp=0xc000042fe0 pc=0x4659e1
created by net.cgoLookupIP
/usr/local/go/src/net/cgo_unix.go:227 +0x12a
goroutine 1 [IO wait]:
internal/poll.runtime_pollWait(0x7f993d08d110, 0x72)
/usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc00024dc00?, 0xc000032000?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Accept(0xc00024dc00)
/usr/local/go/src/internal/poll/fd_unix.go:614 +0x22c
net.(*netFD).accept(0xc00024dc00)
/usr/local/go/src/net/fd_unix.go:172 +0x35
net.(*TCPListener).accept(0xc00000f620)
/usr/local/go/src/net/tcpsock_posix.go:139 +0x28
net.(*TCPListener).Accept(0xc00000f620)
/usr/local/go/src/net/tcpsock.go:288 +0x3d
net/http.(*Server).Serve(0xc0000a20e0, {0x108e0c8, 0xc00000f620})
/usr/local/go/src/net/http/server.go:3039 +0x385
net/http.(*Server).ListenAndServe(0xc0000a20e0)
/usr/local/go/src/net/http/server.go:2968 +0x7d
net/http.ListenAndServe(...)
/usr/local/go/src/net/http/server.go:3222
github.com/gin-gonic/gin.(*Engine).Run(0xc000093380, {0xc00029ff40, 0x1, 0x1})
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:356 +0x1d8
github.com/yuzuki999/Aws-Panel/router.(*Router).Start(...)
/source/router/router.go:93
main.main()
/source/main.go:37 +0x11c
goroutine 8 [select]:
database/sql.(*DB).connectionOpener(0xc00007e8f0, {0x108ebd8, 0xc000246380})
/usr/local/go/src/database/sql/sql.go:1226 +0x8d
created by database/sql.OpenDB
/usr/local/go/src/database/sql/sql.go:794 +0x18d
goroutine 9 [IO wait]:
internal/poll.runtime_pollWait(0x7f993d08d020, 0x72)
/usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc00024dc80?, 0xc0000c7000?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc00024dc80, {0xc0000c7000, 0x1000, 0x1000})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc00024dc80, {0xc0000c7000?, 0xc000566580?, 0x47abbe?})
/usr/local/go/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc000010618, {0xc0000c7000?, 0x7b968c?, 0xc00006c400?})
/usr/local/go/src/net/net.go:183 +0x45
net/http.(*connReader).Read(0xc0000a4840, {0xc0000c7000, 0x1000, 0x1000})
/usr/local/go/src/net/http/server.go:780 +0x16d
bufio.(*Reader).fill(0xc00006f0e0)
/usr/local/go/src/bufio/bufio.go:106 +0x103
bufio.(*Reader).ReadSlice(0xc00006f0e0, 0x0?)
/usr/local/go/src/bufio/bufio.go:371 +0x2f
bufio.(*Reader).ReadLine(0xc00006f0e0)
/usr/local/go/src/bufio/bufio.go:400 +0x27
net/textproto.(*Reader).readLineSlice(0xc00053b3b0)
/usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
/usr/local/go/src/net/textproto/reader.go:38
net/http.readRequest(0xc000010618?)
/usr/local/go/src/net/http/request.go:1029 +0x79
net/http.(*conn).readRequest(0xc000307b80, {0x108ebd8, 0xc00006c3c0})
/usr/local/go/src/net/http/server.go:988 +0x24a
net/http.(*conn).serve(0xc000307b80, {0x108ec80, 0xc0000a4750})
/usr/local/go/src/net/http/server.go:1891 +0x32b
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:3071 +0x4db
goroutine 10 [select]:
net/http.(*Transport).getConn(0x152e320, 0xc0006f7800, {{}, 0x0, {0xc00079eb40, 0x5}, {0xc00079ecf0, 0x24}, 0x0})
/usr/local/go/src/net/http/transport.go:1375 +0x5c6
net/http.(*Transport).roundTrip(0x152e320, 0xc0001d4300)
/usr/local/go/src/net/http/transport.go:581 +0x76f
net/http.(*Transport).RoundTrip(0x40f425?, 0x108ab40?)
/usr/local/go/src/net/http/roundtrip.go:17 +0x19
net/http.send(0xc0001d4300, {0x108ab40, 0x152e320}, {0xdfd340?, 0x1?, 0x0?})
/usr/local/go/src/net/http/client.go:252 +0x5d8
net/http.(*Client).send(0x1575e60, 0xc0001d4300, {0x3?, 0xc000775d50?, 0x0?})
/usr/local/go/src/net/http/client.go:176 +0x9b
net/http.(*Client).do(0x1575e60, 0xc0001d4300)
/usr/local/go/src/net/http/client.go:725 +0x8f5
net/http.(*Client).Do(...)
/usr/local/go/src/net/http/client.go:593
github.com/aws/aws-sdk-go/aws/corehandlers.sendFollowRedirects(0xc0bed527eb902486?)
/go/pkg/mod/github.com/aws/[email protected]/aws/corehandlers/handlers.go:120 +0x27
github.com/aws/aws-sdk-go/aws/corehandlers.glob..func3(0xc00030f900)
/go/pkg/mod/github.com/aws/[email protected]/aws/corehandlers/handlers.go:112 +0x176
github.com/aws/aws-sdk-go/aws/request.(*HandlerList).Run(0xc00030fb28, 0xc00030f900)
/go/pkg/mod/github.com/aws/[email protected]/aws/request/handlers.go:267 +0x9a
github.com/aws/aws-sdk-go/aws/request.(*Request).sendRequest(0xc00030f900)
/go/pkg/mod/github.com/aws/[email protected]/aws/request/request.go:602 +0xbf
github.com/aws/aws-sdk-go/aws/request.(*Request).Send(0xc00030f900)
/go/pkg/mod/github.com/aws/[email protected]/aws/request/request.go:555 +0x148
github.com/aws/aws-sdk-go/service/ec2.(*EC2).DescribeInstances(0x108a000?, 0xc0007a5b80?)
/go/pkg/mod/github.com/aws/[email protected]/service/ec2/api.go:20799 +0x25
github.com/yuzuki999/Aws-Panel/aws.(*Aws).ListEc2(0xc000775d50?)
/source/aws/ec2.go:138 +0x88
github.com/yuzuki999/Aws-Panel/controller.ListEc2(0xc0001d4600?)
/source/controller/ec2.go:90 +0x365
github.com/gin-gonic/gin.(*Context).Next(...)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:168
github.com/gin-contrib/sessions.Sessions.func1(0xc0001d4600)
/go/pkg/mod/github.com/gin-contrib/[email protected]/sessions.go:54 +0x19a
github.com/gin-gonic/gin.(*Context).Next(...)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:168
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1(0xc0001d4600)
/go/pkg/mod/github.com/gin-gonic/[email protected]/recovery.go:99 +0x82
github.com/gin-gonic/gin.(*Context).Next(...)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:168
github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc0001d4600)
/go/pkg/mod/github.com/gin-gonic/[email protected]/logger.go:241 +0xe7
github.com/gin-gonic/gin.(*Context).Next(...)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:168
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc000093380, 0xc0001d4600)
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:555 +0x671
github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc000093380, {0x108e2d8?, 0xc000767ea0}, 0xc0001d4200)
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:511 +0x1d2
net/http.serverHandler.ServeHTTP({0x108cce0?}, {0x108e2d8, 0xc000767ea0}, 0xc0001d4200)
/usr/local/go/src/net/http/server.go:2916 +0x43b
net/http.(*conn).serve(0xc000307c20, {0x108ec80, 0xc0000a4750})
/usr/local/go/src/net/http/server.go:1966 +0x5d7
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:3071 +0x4db
goroutine 14 [IO wait]:
internal/poll.runtime_pollWait(0x7f993d08ce40, 0x72)
/usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc00009cf00?, 0xc00054a000?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc00009cf00, {0xc00054a000, 0x1000, 0x1000})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc00009cf00, {0xc00054a000?, 0xc000567600?, 0x47abbe?})
/usr/local/go/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc000315ed8, {0xc00054a000?, 0x7b968c?, 0xc00016b1c0?})
/usr/local/go/src/net/net.go:183 +0x45
net/http.(*connReader).Read(0xc00053b380, {0xc00054a000, 0x1000, 0x1000})
/usr/local/go/src/net/http/server.go:780 +0x16d
bufio.(*Reader).fill(0xc00006f380)
/usr/local/go/src/bufio/bufio.go:106 +0x103
bufio.(*Reader).ReadSlice(0xc00006f380, 0x0?)
/usr/local/go/src/bufio/bufio.go:371 +0x2f
bufio.(*Reader).ReadLine(0xc00006f380)
/usr/local/go/src/bufio/bufio.go:400 +0x27
net/textproto.(*Reader).readLineSlice(0xc0000a4870)
/usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
/usr/local/go/src/net/textproto/reader.go:38
net/http.readRequest(0xc000315ed8?)
/usr/local/go/src/net/http/request.go:1029 +0x79
net/http.(*conn).readRequest(0xc000307ea0, {0x108ebd8, 0xc00016b180})
/usr/local/go/src/net/http/server.go:988 +0x24a
net/http.(*conn).serve(0xc000307ea0, {0x108ec80, 0xc0000a4750})
/usr/local/go/src/net/http/server.go:1891 +0x32b
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:3071 +0x4db
goroutine 34 [runnable]:
net/http.(*connReader).startBackgroundRead.func2()
/usr/local/go/src/net/http/server.go:668
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1571 +0x1
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:668 +0xca
goroutine 37 [select]:
net.(*Resolver).lookupIPAddr(0x1575700, {0x108ec48?, 0xc000797920}, {0xe21db6, 0x3}, {0xc00079ecf0, 0x20})
/usr/local/go/src/net/lookup.go:325 +0x51b
net.(*Resolver).internetAddrList(0x108ec48?, {0x108ec48?, 0xc000797920?}, {0xe21db6, 0x3}, {0xc00079ecf0?, 0x24?})
/usr/local/go/src/net/ipsock.go:288 +0x67a
net.(*Resolver).resolveAddrList(0x15ae070?, {0x108ec48, 0xc000797920}, {0xe223a4, 0x4}, {0xe21db6?, 0x0?}, {0xc00079ecf0, 0x24}, {0x0, ...})
/usr/local/go/src/net/dial.go:221 +0x41b
net.(*Dialer).DialContext(0xc00006e3c0, {0x108ec10, 0xc000024090}, {0xe21db6, 0x3}, {0xc00079ecf0, 0x24})
/usr/local/go/src/net/dial.go:406 +0x448
net/http.(*Transport).dial(0x0?, {0x108ec10?, 0xc000024090?}, {0xe21db6?, 0x0?}, {0xc00079ecf0?, 0x0?})
/usr/local/go/src/net/http/transport.go:1169 +0xda
net/http.(*Transport).dialConn(0x152e320, {0x108ec10, 0xc000024090}, {{}, 0x0, {0xc00079eb40, 0x5}, {0xc00079ecf0, 0x24}, 0x0})
/usr/local/go/src/net/http/transport.go:1607 +0x83f
net/http.(*Transport).dialConnFor(0x0?, 0xc00057a420)
/usr/local/go/src/net/http/transport.go:1449 +0xb0
created by net/http.(*Transport).queueForDial
/usr/local/go/src/net/http/transport.go:1418 +0x3d2
goroutine 32 [IO wait]:
internal/poll.runtime_pollWait(0x7f993d08cd50, 0x72)
/usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc00056d780?, 0xc0001aa800?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc00056d780, {0xc0001aa800, 0x17ef, 0x17ef})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc00056d780, {0xc0001aa800?, 0xc00076ec40?, 0xc0001aa80d?})
/usr/local/go/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc000560898, {0xc0001aa800?, 0x58?, 0x7f9965ddc108?})
/usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc0007947b0, {0xc0001aa800?, 0x0?, 0xde8ca0?})
/usr/local/go/src/crypto/tls/conn.go:785 +0x3d
bytes.(*Buffer).ReadFrom(0xc000575af8, {0x1089ce0, 0xc0007947b0})
/usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000575880, {0x108aa80?, 0xc000560898}, 0xcd5?)
/usr/local/go/src/crypto/tls/conn.go:807 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000575880, 0x0)
/usr/local/go/src/crypto/tls/conn.go:614 +0x116
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:582
crypto/tls.(*Conn).Read(0xc000575880, {0xc0000c6000, 0x1000, 0x1?})
/usr/local/go/src/crypto/tls/conn.go:1285 +0x16f
net/http.(*persistConn).Read(0xc000576d80, {0xc0000c6000?, 0xc0001c80c0?, 0xc000057d30?})
/usr/local/go/src/net/http/transport.go:1929 +0x4e
bufio.(*Reader).fill(0xc000796c00)
/usr/local/go/src/bufio/bufio.go:106 +0x103
bufio.(*Reader).Peek(0xc000796c00, 0x1)
/usr/local/go/src/bufio/bufio.go:144 +0x5d
net/http.(*persistConn).readLoop(0xc000576d80)
/usr/local/go/src/net/http/transport.go:2093 +0x1ac
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1750 +0x173e
goroutine 33 [select]:
net/http.(*persistConn).writeLoop(0xc000576d80)
/usr/local/go/src/net/http/transport.go:2392 +0xf5
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1751 +0x1791
goroutine 38 [select]:
net.cgoLookupIP({0x108ebd8, 0xc0006f7840}, {0xe21db6, 0x3}, {0xc00079ecf0, 0x20})
/usr/local/go/src/net/cgo_unix.go:228 +0x1aa
net.(*Resolver).lookupIP(0x1575700, {0x108ebd8, 0xc0006f7840}, {0xe21db6, 0x3}, {0xc00079ecf0, 0x20})
/usr/local/go/src/net/lookup_unix.go:96 +0x128
net.glob..func1({0x108ebd8?, 0xc0006f7840?}, 0x0?, {0xe21db6?, 0x0?}, {0xc00079ecf0?, 0x7de450?})
/usr/local/go/src/net/hook.go:23 +0x3d
net.(*Resolver).lookupIPAddr.func1()
/usr/local/go/src/net/lookup.go:319 +0x9f
internal/singleflight.(*Group).doCall(0x1575710, 0xc0007994a0, {0xc00079ed20, 0x24}, 0xc00057a420?)
/usr/local/go/src/internal/singleflight/singleflight.go:95 +0x3b
created by internal/singleflight.(*Group).DoChan
/usr/local/go/src/internal/singleflight/singleflight.go:88 +0x2ec
搞错了,不好意思
希望可以增加t3.micro实例类型,谢谢
每台EC2 启动时候开始计时 , 删除的时候统计这台机器运行了多少时间。并记录在案 。
可以查询哪一个时间段,所有机器一共运行了多长时间。例如本月所有机器包括已删除了机器一共跑了几个小时。这样。
哥您的联系方式是?
我企鹅 1002194531
大佬 能不能加个自定义root密码啊 用密钥有点不方便 ,在默默问一下有没有机会增加个换ip功能😂
因为有时候开号,忘了复制密钥,只能重新删了重开了。若可以开vps后,自动获取到密钥,记录保存在vps机器旁边就更完美了。再次感谢作者的无私奉献。
已部署支持!
感觉UI很好,而且功能也不错(只是lightsail创建好像还有点问题?)
2023/05/07 17:33:00 [Recovery] 2023/05/07 - 17:33:00 panic recovered:
runtime error: index out of range [0] with length 0
/usr/local/go/src/runtime/panic.go:89 (0xf4542)
/source/aws/ec2.go:214 (0x76e1d0)
/source/controller/ec2.go:37 (0x7709cd)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:168 (0x5f088f)
/go/pkg/mod/github.com/gin-contrib/[email protected]/sessions.go:54 (0x5f087a)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:168 (0x5e18f8)
/go/pkg/mod/github.com/gin-gonic/[email protected]/recovery.go:99 (0x5e18e4)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:168 (0x5e0b66)
/go/pkg/mod/github.com/gin-gonic/[email protected]/logger.go:241 (0x5e0b4d)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:168 (0x5dfdba)
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:555 (0x5dfade)
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:511 (0x5df6ee)
/usr/local/go/src/net/http/server.go:2916 (0x47fba0)
/usr/local/go/src/net/http/server.go:1966 (0x47b2ec)
/usr/local/go/src/runtime/asm_386.s:1326 (0x121db0)
[GIN] 2023/05/07 - 17:33:00 | 500 | 461.6256ms | 127.0.0.1 | POST "/api/v1/Ec2/Create"
[GIN] 2023/05/07 - 17:33:30 | 200 | 135.7809ms | 127.0.0.1 | POST "/api/v1/Ec2/List"
[GIN] 2023/05/07 - 17:33:36 | 200 | 878.1015ms | 127.0.0.1 | POST "/api/v1/LightSail/List"
/source/data/user.go:69 record not found
请问是怎么回事
😂
1、显示手动创建的Lightsail服务器
2、地区扩展……
3、类型能显示出每月价格……
SELECT * FROM user_data
WHERE (Username = "admin" and password = "¦j»VÙb؇V4n") AND user_data
.deleted_at
IS NULL ORDER BY user_data
.id
LIMIT 1
[GIN] 2022/03/14 - 11:08:05 | 400 | 686.953µs | | POST "/api/v1/User/Login"
mv: 无法获取"Aws-Panel.zip" 的文件状态(stat): 没有那个文件或目录
不知道什么原因。。
大佬,刚部署看了下好像没有香港区域的选项
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.