Giter Club home page Giter Club logo

smartide's Introduction

中文 | English

Be a Smart Developer, 开发从未如此简单

**主页: https://smartide.cn 海外主页: https://smartide.dev



SmartIDE可以帮助你完成开发环境的一键搭建,如果你熟悉命令行操作,那么么安装我们的cli,然后你只需要学会一个命令 smartide start 就可以在自己所需要的环境中,使用自己喜欢的开发工具进行编码和开发调试了,不再需要安装任何工具,SDK,调试器,编译器,环境变量等繁琐的操作。如果不喜欢命令行操作,也可以使用 SmartIDE Server 通过网页完成全部操作。如果我们把Vscode和JetBrain这些IDE称为传统IDE的话,这些传统IDE最大的问题是:他们虽然在 I (Integration) 和 D (Development) 上面都做的非常不错,但是都没有解决 E (Environment) 的问题。

SmartIDE的重点就是要解决 E 的问题。

当前SmartIDE包括4个组件:

  • CLI: 一个简单易用的命令行工具,可以运行在Windows/MacOS/Linux上,开发者使用一个简单的指令 smartide start 即可一键搭建开发环境,直接打开环境内置的WebIDE开始进行编码和调试。
  • Server: 支持私有部署的开源容器化开发环境管理服务。Server版继承CLI的所有能力,但是提供网页化的操作,同时针对团队使用进行扩展和支持。
  • Marketplace: SmartIDE插件市场是 open-vsx.org 的一个fork,我们进行了汉化并提供**本地部署和插件自动同步服务。企业也可以选择在内网部署 SmartIDE插件市场,为内部开发者提供安全可控的VSCode插件管理服务。
  • 开发者镜像和模版: 开发者镜像是一系列预先构建好的开发环境容器,我们提供7种开发语言的开发者镜像,并且同时托管在国内的阿里云和DockerHub,方便全球的开发者使用。

CLI安装方式

我们按照敏捷开发模式进行SmartIDE的开发,所有的版本都通过CI/CD流水线自动构建,打包,测试和发布。为了同时满足外部用户对于稳定性的要求和开发团队以及早期使用者对新功能快速更新的要求,我们提供以下两个发布通道。

快速启动

请参考以下资料开始使用SmartIDE

SmartIDE 三种形态

  • 本地模式: 本地模式通过一个简单的 smartide start 命令,根据嵌入在代码库中的环境说明文(.ide.yaml)完成环境的启动,让开发者可以无需搭建任何开发环境即可通过容器的方式开始编码调试以及基本的源代码管理(Git)操作。
  • 远程主机模式: 远程主机模式允许用户在 smartide start 命令中增加 --host 参数直接调度一台远程Linux完成开发环境的启动。相对于本地模式,远程主机模式更加能够体现SmartIDE的能力,开发者可以利用远程主机更为强大的算力,更庞大的存储以及更高速的网络获取更好的开发体验,还可以完成一些本地模式下无法完成的开发操作,比如:AI和大数据开发,大型微服务项目的开发等等。SmartIDE对于开发者使用的远程主机没有任何限制,只需要开发者可以通过SSH方式访问主机即可,远程主机可以位于任何位置,包括:公有云,私有云,企业数据中心甚至开发者自己家里。
  • k8s模式: 将远程主机模式命令中的 --host 替换成 --k8s,开发者即可将开发环境一键部署到 Kubernetes (k8s) 集群中。与远程主机模式一样,SmartIDE对于开发者所使用的k8s集群没有任何限制,无论是公有云托管式集群,还有自行部署的集群均可。只要开发者对于某个namespace具备部署权限,借款通过SmartIDE完成开发环境的一键部署。k8s模式将为使用SmartIDE的开发者开辟一个全新的天地,借助k8s所提供的高度灵活高效的环境调度能力,我们可以为开发者提供更加丰富的使用场景和更为强大的开发环境。

路线图

从当前我们所提供的 smartide-cli 应用将贯穿未来的整个路线图,作为开发者与开发工作区(Workspace)之间进行交互的主要桥梁,在此基础上我们也将为开发者提供更加易于使用的GUI工具,包括本地GUI工具和Web端管理能力,协助开发者完成更为复杂的环境调度和团队协作场景。SmartIDE针对独立开发者和中小团队的功能将采用开源免费的方式提供,而针对企业的版本则会提供企业授权和更为完善的产品技术支持。

社区推广计划

欢迎大家通过以下渠道与SmartIDE产品开发团队保持联系:

  • Smart Meetup: 我们将通过【冬哥有话说栏目】每周推介一款好用的开源代码库给到大家,整个推介过程控制在15分钟内,全程通过演示的方式使用SmartIDE来启动开源代码库的编码调试,让开发者在了解了开源项目本身的价值的同时了解SmartIDE带来的快速便捷开发体验。
  • Smart早鸟计划: 我们将持续的在社区中招募希望提前体验SmartIDE的开发者,加入我们的微信群。作为一款由开发者为开发者打造的开发工具,我们希望听取真正使用者的意见,持续改进我们的产品,和开发者一起将这个产品做下去。

Copyright

©leansoftX.com 2021

smartide's People

Contributors

cadengjy avatar chileeb avatar dailybos avatar knightdai avatar liminany avatar smallidea avatar smartide-dev avatar ups216 avatar zhouwenyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

smartide's Issues

panic: runtime error: invalid memory address or nil pointer dereference

boathouse-calculator git:(master) # 在 MacOS 上打开 终端应用(Terminal) 并复制粘贴本段脚本
git clone https://gitee.com/idcf-boat-house/boathouse-calculator.git
cd boathouse-calculator
smartide start

Cloning into 'boathouse-calculator'...
remote: Enumerating objects: 907, done.
remote: Counting objects: 100% (907/907), done.
remote: Compressing objects: 100% (412/412), done.
remote: Total 907 (delta 477), reused 877 (delta 457), pack-reused 0
Receiving objects: 100% (907/907), 4.34 MiB | 4.46 MiB/s, done.
Resolving deltas: 100% (477/477), done.
v0.1.7.1429
2021-12-02 10:26:19.986 INFO SmartIDE启动中 ...
2021-12-02 10:26:19.986 INFO 读取工作区信息 ...
2021-12-02 10:27:32.127 INFO 工作区配置改变!
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1446cf4]

goroutine 1 [running]:
golang.org/x/crypto/ssh.(*Client).NewSession(0xc000550b00)
/home/localadmin/go/pkg/mod/golang.org/x/[email protected]/ssh/client.go:130 +0x14
github.com/leansoftX/smartide-cli/lib/common.(*SSHRemote).ExecSSHCommandRealTimeFunc(0xc0005407a0, {0xc000036b40, 0x1e}, 0x0)
/home/localadmin/agents/agent01/_work/1/s/lib/common/sshremote.go:370 +0x85
github.com/leansoftX/smartide-cli/lib/common.(*SSHRemote).ExecSSHCommandRealTime(...)
/home/localadmin/agents/agent01/work/1/s/lib/common/sshremote.go:364
github.com/leansoftX/smartide-cli/cmd/dal.SSHVolumesConfig({
, _}, _, {{0x0, 0x0}, {0x0, 0x0, 0x0}, {{0x0, 0x0}, ...}, ...}, ...)
/home/localadmin/agents/agent01/_work/1/s/cmd/dal/gitconfig.go:77 +0xbb
github.com/leansoftX/smartide-cli/cmd/dal.(*YamlFileConfig).ConvertToDockerCompose(0xc00054c0e0, {{0x0, 0x0}, 0x0, {0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...)
/home/localadmin/agents/agent01/_work/1/s/cmd/dal/config.go:666 +0xe31
github.com/leansoftX/smartide-cli/cmd/start.ExecuteStartCmd({0x0, {0x0, 0x0}, {0xc00003c004, 0x5a}, {0x1961fa7, 0xe}, {0x0, 0x0}, {0x195be11, ...}, ...}, ...)
/home/localadmin/agents/agent01/_work/1/s/cmd/start/local.go:54 +0x32a
github.com/leansoftX/smartide-cli/cmd.glob..func9(0x20a1e20, {0x20de6d0, 0x0, 0x0})
/home/localadmin/agents/agent01/_work/1/s/cmd/start.go:56 +0x2b3
github.com/spf13/cobra.(*Command).execute(0x20a1e20, {0x20de6d0, 0x0, 0x0})
/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:856 +0x60e
github.com/spf13/cobra.(*Command).ExecuteC(0x20a07a0)
/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:974 +0x3bc
github.com/spf13/cobra.(*Command).Execute(...)
/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:902
github.com/leansoftX/smartide-cli/cmd.Execute({{0xc000038430, 0xb}, {0xc000038400, 0xa}, {0xc000450bd0, 0x21}, {0xc000450d50, 0x28}, {0xc000450d70, 0x8}, ...})
/home/localadmin/agents/agent01/_work/1/s/cmd/root.go:68 +0x79
main.main()
/home/localadmin/agents/agent01/_work/1/s/main.go:35 +0xbb

[BUG] Incorrect break when list all docker container

As code show, this function will get all container status when container in dockerComposeServices.
However, when get any correct container, the function will break incorrectly.
This bug make the function return only the first correct container.

dockerComposeContainer := DockerComposeContainer{
ServiceName: currentServiceName,
ContainerName: containerName,
State: container.State,
Image: container.Image,
ImageID: container.ImageID,
Ports: ports,
}
dockerComposeContainers = append(dockerComposeContainers, dockerComposeContainer)
break

Remote host mode: sudo: no tty present and no askpass program specifiedProcess exited with status

PS D:\bk-test> smartide.exe start --host xxx --username zs --repourl https://github.com/idcf-boat-house/boat-house.git
v0.1.7.1456
2021-12-08 11:01:57.045 INFO  SmartIDE启动中 ...
2021-12-08 11:01:57.050 INFO  读取工作区信息 ...
2021-12-08 11:01:57.052 INFO  检查ssh连接是否正常 xxx ...
2021-12-08 11:01:57.136 INFO  远程主机模式启动中 ...
2021-12-08 11:01:57.137 INFO  连接远程主机  zs@xxx ...
2021-12-08 11:02:00.333 INFO  [Git] 克隆代码库 ...
remote: Enumerating objects: 224, done.
remote: Counting objects: 100% (224/224), done.
remote: Compressing objects: 100% (184/184), done.
Receiving objects: 100% (224/224), 740.12 KiB | 0 bytes/s, done. 0
Resolving deltas: 100% (32/32), done.
2021-12-08 11:02:04.584 INFO  [Git] Git 代码库克隆完成。
2021-12-08 11:02:04.638 INFO  执行 git checkout && git pull
2021-12-08 11:02:07.739 INFO  读取代码库下的配置文件 '~/project/bk-test/.ide/.ide.yaml' ...
2021-12-08 11:02:07.793 INFO  工作区配置改变!
2021-12-08 11:02:09.926 ERROR ; sudo: no tty present and no askpass program specifiedProcess exited with status 1

打开页面提示获取失败

smartide 是使用脚本一键安装 :

curl -LO https://gitee.com/smartide/SmartIDE/raw/main/deployment/deployment_cn.sh -o deployment_cn.sh&& bash deployment_cn.sh

错误日志
image
image

ruoyi-cloud版本部署有点问题

2022-07-14 16:43:38 [INFO] [SSH] Connecting to a remote host smartide@IP:22 ...
2022-07-14 16:43:40 [INFO] 正在获取模板 ...
2022-07-14 16:43:50 [INFO] 当前目录已经完成初始化,无须再次进行!
2022-07-14 16:43:53 [INFO] SmartIDE VM Mode is starting up...
2022-07-14 16:43:53 [INFO] [SSH] Connecting to a remote host [email protected]:22 ...
2022-07-14 16:43:54 [INFO] [Config] Use the the configuration file in your repo : ~/project/ry-cloud/.ide/.ide.yaml
2022-07-14 16:43:55 [INFO] 工作区配置改变!

后面就没下文了,还有很多需要改

如何搭建本地插件市场

您好,我想搭建一个内网的本地的插件市场,就部署到单Linux服务器里,看smartIDE官网给的方法是azure服务器+blob storage云存储的方式,有没有部署到单Linux服务器的方法?谢谢啦

Remove workspace failed

如果移动了已创建的项目结构,无论通过remove 或者reset都删除不了workspace

smartide.exe remove 6
v0.1.8.1602
2021-12-22 17:47:11.179 INFO  SmartIDE工作区删除中 ...
2021-12-22 17:47:11.179 INFO  读取工作区信息 ...
是否确认删除?(y|n)
y
2021-12-22 17:47:14.360 ERROR ; open D:\bkui\.ide\.gitignore: The system cannot find the path specified

.m2拒绝访问

v0.1.9.1753
2022-01-03 15:51:35.654 INFO 正在获取模板 ...
2022-01-03 15:51:36.446 INFO SmartIDE启动中 ...
2022-01-03 15:51:36.446 INFO 读取工作区信息 ...
2022-01-03 15:51:37.802 INFO 新增工作区!
2022-01-03 15:51:38.120 INFO 创建临时目录(.temp),请在 Git 中忽略此目录:C:\Test\idea.ide.temp
2022-01-03 15:51:38.140 INFO [SSH] 转发端口:6822
Creating smartide-java-template ... error

ERROR: for smartide-java-template Cannot create container for service smartide-java-template: mkdir C:\Program Files\Git\bin.m2: Access is denied.

ERROR: for smartide-java-template Cannot create container for service smartide-java-template: mkdir C:\Program Files\Git\bin.m2: Access is denied.
ERROR: Encountered errors while bringing up the project.
2022-01-03 15:51:41.635 FATAL ; exit status 1; goroutine 1 [running]:
runtime/debug.Stack()
/usr/local/go/src/runtime/debug/stack.go:24 +0x65
github.com/leansoftX/smartide-cli/pkg/common.(*smartIDELogStruct).Fatal(0x25af031, {0x24e8aa0, 0xc00067e000}, {0x0, 0x0, 0x0})
/home/localadmin/agents/agent01/_work/1/s/pkg/common/log.go:86 +0x1e5
github.com/leansoftX/smartide-cli/cmd/start.ExecuteStartCmd({0x0, {0x0, 0x0}, {0xc0000dc460, 0xc}, {0x25ae357, 0xe}, {0xc0000aeba0, 0x30}, {0x25a3dcb, ...}, ...}, ...)
/home/localadmin/agents/agent01/_work/1/s/cmd/start/local.go:128 +0xbcc
github.com/leansoftX/smartide-cli/cmd.glob..func6(0x36903c0, {0xc000021a70, 0x1, 0x3})
/home/localadmin/agents/agent01/_work/1/s/cmd/new.go:138 +0xa88
github.com/spf13/cobra.(*Command).execute(0x36903c0, {0xc000021a40, 0x3, 0x3})
/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:856 +0x60e
github.com/spf13/cobra.(*Command).ExecuteC(0x368fec0)
/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:974 +0x3bc
github.com/spf13/cobra.(*Command).Execute(...)
/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:902
github.com/leansoftX/smartide-cli/cmd.Execute({{0xc000034470, 0xb}, {0xc000034440, 0xa}, {0xc00034de60, 0x21}, {0xc00034de90, 0x28}, {0xc00034deb0, 0x8}, ...})
/home/localadmin/agents/agent01/_work/1/s/cmd/root.go:75 +0x79
main.main()
/home/localadmin/agents/agent01/_work/1/s/main.go:44 +0x118

不知能否对OpenIM进行适配

Open-IM是由前微信技术专家打造的开源的即时通讯组件。Open-IM包括IM服务端和客户端SDK,实现了高性能、轻量级、易扩展等重要特性。开发者通过集成Open-IM组件,并私有化部署服务端,可以将即时通讯、实时网络能力快速集成到自身应用中,并确保业务数据的安全性和私密性。

项目文档地址:doc
项目github地址:github

SSH出现连接拒绝

1、操作系统环境:黑莓 4Core 8G
1643011340(1)

2、日志
20220124.log

3、简要描述一下过程。
smartide账号已创建,docker、docker-compose运行正常
1643011330(1)
本地跑smartIDE出现SSH问题
SSH可以连接,端口全开放

Don't support wsl path

➜  test smartide.exe new php
v0.1.9.1753
2022-01-11 11:34:48.286 INFO  正在获取模板 ...
mkdir //: The filename, directory name, or volume label syntax is incorrect.
mkdir //wsl.localhost/: The specified path is invalid.
mkdir //: The filename, directory name, or volume label syntax is incorrect.
mkdir //wsl.localhost/: The specified path is invalid.
mkdir //: The filename, directory name, or volume label syntax is incorrect.
mkdir //wsl.localhost/: The specified path is invalid.
2022-01-11 11:34:48.973 INFO  SmartIDE启动中 ...
2022-01-11 11:34:48.973 INFO  读取工作区信息 ...
2022-01-11 11:34:50.510 INFO  新增工作区!

then stuck hanging

无法remove手动删除的工作区

如果手动删除了创建的容器与clone的代码库,再执行smartide remove ${workspace_id}或者smartide remove -y -f后,执行smartide ls发现对应的workspace仍然存在,除非手动删除~/.ide/才能删除记录

web端是否支持

之前有提到web端会上线 但是文档没看到有这部分介绍 请问目前是否支持web端

cli - gitlab ci extension

allow user to trigger a smartide-cli task to create a remote workspace, this is useful when you want deploy a dev/test environment with a specific codebase version.

here is a gitlab-smartide-cli-ci.yml sample

stages:
    - smartide

smartide_start:
    stage: dev-env-start
    image: registry.cn-hangzhou.aliyuncs.com/smartide/smartide-cli
    script:
        - smartide start --mode=server --host <address-ip> --username <ssh-user> --password <ssh-password> <git-url>

consider pass in the following parameters:

  • host-address
  • username
  • password
  • git-url: support https/ssh
  • git-branch-name: actually a git-ref, so you can use commit-id, tag, or branch
  • callback-api-address: smartide-cli is able to send back a json with all data about the workspace. We can print the json content into pipeline logs for now, and publish a sample json body, this allow others to create such a api-endpoint to receive the json and do whatever they want, e.g. show it on a webpage.

post a blog to https://smartide.cn/zh/blog/
and a video to https://space.bilibili.com/1001970523

arm支持

希望支持arm架构

我用的是 SmartIDE/server/deployment/docker-compose.yaml部署的
报错信息是
standard_init_linux.go:228: exec user process caused: exec format error

启动 Demo 项目失败

使用

smartide start https://gitee.com/idcf-boat-house/boathouse-calculator.git

git clone https://gitee.com/idcf-boat-house/boathouse-calculator.git
cd boathouse-calculator
smartide start

都会失败

报错信息:

[v1.0.32.7251]
2022-12-07 14:23:11.689 INFO  SmartIDE启动中 ...
2022-12-07 14:23:11.689 INFO  读取工作区信息 ...
2022-12-07 14:23:12.473 INFO  当前目录已经完成初始化,无须再次进行!
2022-12-07 14:23:12.474 INFO  新增工作区!
2022-12-07 14:23:12.475 INFO  读取 docker-compose 文件:docker-compose.yaml
2022-12-07 14:23:12.587 FATAL ; runtime error: slice bounds out of range [:-1]; goroutine 1 [running]:
runtime/debug.Stack()
	/usr/local/go/src/runtime/debug/stack.go:24 +0x88
github.com/leansoftX/smartide-cli/pkg/common.(*smartIDELogStruct).Fatal(0x1027d9520, {0x101aca420, 0x140004e2858}, {0x0, 0x0, 0x0})
	/home/localadmin/agents/agent01/_work/4/s/cli/pkg/common/log.go:199 +0x1c4
main.main.func1()
	/home/localadmin/agents/agent01/_work/4/s/cli/main.go:41 +0x50
panic({0x101aca420, 0x140004e2858})
	/usr/local/go/src/runtime/panic.go:1038 +0x21c
github.com/leansoftX/smartide-cli/internal/biz/config.GitConfig(0x0, {0x0, 0x0}, 0x0, 0x140008f8a60, {{0x0, 0x0}, 0x0, {0x0, 0x0}, ...}, ...)
	/home/localadmin/agents/agent01/_work/4/s/cli/internal/biz/config/gitconfig.go:138 +0xba8
github.com/leansoftX/smartide-cli/internal/biz/config.(*SmartIdeConfig).ConvertToDockerCompose(0x14000478fc0, {{0x0, 0x0}, 0x0, {0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...)
	/home/localadmin/agents/agent01/_work/4/s/cli/internal/biz/config/config.go:307 +0x12a8
github.com/leansoftX/smartide-cli/cmd/start.ExecuteStartCmd({{0x0, 0x0}, {0x14000047128, 0x18}, {0x0, {0x0, 0x0}}, {0x14000048004, 0x1e}, {0x10169aae3, ...}, ...}, ...)
	/home/localadmin/agents/agent01/_work/4/s/cli/cmd/start/local.go:90 +0x4e0
github.com/leansoftX/smartide-cli/cmd.glob..func15(0x1027c1700, {0x10280c2c8, 0x0, 0x0})
	/home/localadmin/agents/agent01/_work/4/s/cli/cmd/start.go:177 +0x6d0
github.com/spf13/cobra.(*Command).execute(0x1027c1700, {0x10280c2c8, 0x0, 0x0})
	/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:856 +0x668
github.com/spf13/cobra.(*Command).ExecuteC(0x1027c0580)
	/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:974 +0x410
github.com/spf13/cobra.(*Command).Execute(...)
	/home/localadmin/go/pkg/mod/github.com/spf13/[email protected]/command.go:902
github.com/leansoftX/smartide-cli/cmd.Execute({{0x140004e78a0, 0xc}, {0x140004e7870, 0xb}, {0x1400055ca20, 0x23}, {0x1400055ca50, 0x28}, {0x1400055ca70, 0x8}, ...})
	/home/localadmin/agents/agent01/_work/4/s/cli/cmd/root.go:144 +0x88
main.main()
	/home/localadmin/agents/agent01/_work/4/s/cli/main.go:50 +0xd4

安装问题

image
不知道为啥,按照官网的安装手册安装的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.