Antkillerfarm Hacking V7.0

孩子的编程语言, Go, Julia, Rust, VS

2019-07-25

孩子的编程语言

概述

在孩子中普及编程教育已经是一个趋势了。

参见:

http://www.kidscode.cn/

中国少儿编程网

Scratch

Scratch是一款由麻省理工学院(MIT) 设计开发的一款面向少年的简易编程工具。适合8~12岁的儿童。

官网:

https://scratch.mit.edu/

安装:

sudo apt install scratch

参考:

https://mp.weixin.qq.com/s/HzbegP_NIowUwRoeDne5Vw

适合小朋友的Scratch动手项目!AI在生活中的19个应用

Squeak

Squeak是一个是一个现代的,开源的,功能齐全的Smalltalk程序设计语言和执行环境。适合9岁以上的儿童。

官网:

http://squeak.org/

Logo语言的安装

Logo语言是我学习计算机时的启蒙语言。那是初一、初二的时候,当时的电脑还是运行Dos的386系统,我们在原始的命令行下,津津有味的编着代码。那时候电脑可是稀罕物,为了节约上机时间,程序都是事先写到小本本上的,我至今还保留着当时的作业本。

话归正传,说说Linux下Logo语言的安装。

1)到Berkeley的官网下载Logo语言的源代码

http://www.cs.berkeley.edu/~bh/logo.html

2)按照源代码包里面readme的提示,编译之。提示缺少libbsd和libtermcap。

3)sudo apt install libbsd-dev libncurses5-dev

重新编译即可。

再一次看到熟悉的命令行界面和海龟了:)

NetLogo是继承了Logo语言的一款编程开发平台,但它又改进了Logo语言只能控制单一个体的不足,它可以在建模中控制成千上万的个体,因此,NetLogo建模能很好地模拟微观个体的行为和宏观模式的涌现及其两者之间的联系。

官网:

http://ccl.northwestern.edu/netlogo/

Kodu

Kodu是微软推出的面向儿童的可视化编程语言,可以让孩子自己创造PC或XBox游戏。

官网:

https://www.kodugamelab.com/

turtle

turtle是python对于LOGO语言图形库的实现。大概是出于照顾初学者,尤其是孩子的考虑,turtle库无须安装,已经内置到python的标准库中了。

文档:

https://docs.python.org/3/library/turtle.html

参考:

https://mp.weixin.qq.com/s/HaxaJHKZnctyGJZnvloCKA

What?!Python一行代码,能玩这么多童年的游戏?

其他

https://mp.weixin.qq.com/s/WJcLbYwH3-cTRHkMYNjJZA

Steam高赞游戏入门机器学习!不写代码,人人可玩,又能吸猫,汉化版已推出

https://mp.weixin.qq.com/s/gRumlJI8iUj_0HART2WD8Q

不用写代码,谷歌教你如何用2个小时做出只属于你的游戏(Area 120 Game Builder)

https://mp.weixin.qq.com/s/7SfFeKUwEixcmChe3lC-lg

有了这15款编程游戏,谁都可以学编程!

https://www.codewar.cn/

CodeCombat是一个让学生通过玩游戏学习计算机科学的平台

https://mp.weixin.qq.com/s/TLnUMECwumg-xA48b1bOIg

这三款超好评编程游戏,好玩到停不下来

Go

官网:

https://golang.org

教程:

https://www.runoob.com/go/go-tutorial.html

安装:

sudo apt install golang

运行:

go run xxx.go

第一次运行的时候,由于大量库需要编译,耗时会比较长。

  • Web 框架:Gin、Beego、Echo等。
  • 微服务框架:go-kit、go-micro等。
  • 数据库连接库:go-sql-driver/mysql、go-redis/redis、mongo-go-driver、go-elasticsearch,以及gorm、xorm等。
  • 中间件软件:etcd、Consul、NSQ、Caddy等。
  • 数据库软件:TiDB、Cockroach、InfluxDB、Cayley等。
  • 数据爬取软件:Pholcus、Colly等。

Go的几个创始人(Ken Thompson、Rob Pike)来自于Bell Lab的Plan 9项目,所以Go里有大量的Plan 9遗产。

https://zhuanlan.zhihu.com/p/29892487

Go语言的实现为何使用Plan 9的汇编器?

https://www.zhihu.com/question/19706063

为什么Plan9在生产环境没有实际的应用,是因为应用程序匮乏的原因么?


参考:

https://mp.weixin.qq.com/s/Gv_C16cbXZfDda-tYpuT5w

Mastering Go第二版中文版

https://mp.weixin.qq.com/s/0JHfBodffVXxst61LZ7RcA

Go语言入门学习笔记

https://mp.weixin.qq.com/s/ka5woeuvNxX3Y0Y4UMlruw

Go上下文取消操作

https://mp.weixin.qq.com/s/5MNvW9czxaRWso8jbBRyBw

Go调度程序:Ms,Ps&Gs

https://mp.weixin.qq.com/s/mUhPHycvLSYYkBQSfIgIdA

Channels In Go

https://mp.weixin.qq.com/s/neBQ4Etx3RLhMQdM6GksVg

Go语言HTTP/2探险之旅

https://mp.weixin.qq.com/s/d-qg-mY3QLSxfACsNBJw

Golang之不可重入函数实现

https://mp.weixin.qq.com/s/3jmMexGYY4ww_urSZ36vVQ

图解Go内存分配器

https://mp.weixin.qq.com/s/qaqN4Eqndjg95TPBOC4d_g

HTTP/2 in GO

https://mp.weixin.qq.com/s/XbtSamp7I6HwvRO_OweqJg

Go实现ORM及构建查询

https://mp.weixin.qq.com/s/DxE3YOE1GDq6ZXRhpzfC0w

使用Go语言徒手撸一个简单的负载均衡器

https://mp.weixin.qq.com/s/SWfPV6tUC5olZgIdVabd3A

从入门到掉坑:Go内存池/对象池技术介绍

https://mp.weixin.qq.com/s/UqwwUfJEITHuMU8EhhGNRw

图解Golang的内存分配

https://mp.weixin.qq.com/s/eAptnygPQcQ5Ex8-6l0byA

Golang单元测试详尽指引

https://mp.weixin.qq.com/s/o0qtdwE4TfppqWAKJLDhSw

Go中的循环是如何转为汇编的?看完你懂了吗?

https://zhuanlan.zhihu.com/p/299041493

Go netpoller网络模型之源码全面解析

https://zhuanlan.zhihu.com/p/299047984

Go netpoller网络模型之源码全面解析(二)

https://mp.weixin.qq.com/s/BNknXR0wP4vtguchijeY_w

sync.mutex源代码分析

https://zhuanlan.zhihu.com/p/349197066

Go与C的桥梁:cgo入门,剖析与实践

https://zhuanlan.zhihu.com/p/364813527

一文教你搞懂Go中栈操作

https://zhuanlan.zhihu.com/p/374825312

go pprof实战

https://mp.weixin.qq.com/s/N5wby-aWWEPc7mHN_lN3lQ

手把手教你如何进行Golang单元测试

https://mp.weixin.qq.com/s/SxaNLfGwM4dyzvBUvLAHvA

写给想去字节写Go的你

https://zhuanlan.zhihu.com/p/265806072

将Go程序跑在裸机上

https://zhuanlan.zhihu.com/p/397473228

将Go程序跑在裸机上之LibOS

GTK

熟悉我的朋友都知道,新语言的GTK demo是一定要有的。毕竟helloworld太简单了,容易让人产生从三到万的错觉。

go的GTK绑定主要有两个项目:

For GTK3:

https://github.com/gotk3/gotk3

For GTK2:

https://github.com/mattn/go-gtk

需要注意的是,第一个项目由于没有使用GObject Introspection,所以只支持了主要功能。项目作者也介绍说,当初发起项目的时候,并不知道GObject Introspection这样的神器,也许以后的某个时间会迁移过去。至于GTK2就不用说了,GI是只有GTK3才有的福利。

安装:

go get github.com/gotk3/gotk3/gtk

参考:

https://www.jianshu.com/p/be197980d4bb

2019,Go GUI项目爆发的一年?

Fyne

官网:

https://fyne.io/

go get fyne.io/fyne/v2

参考:

https://www.jianshu.com/p/08411943a74d

Fyne折腾手记:开发一个简易桌面应用

Julia

Julia是新晋发布1.0版本的科学计算类语言,号称兼具C++、python、matlab的优点。

官网:

https://julialang.org/

代码:

https://github.com/JuliaLang/julia

安装

Julia目前暂时没有apt安装的办法,需要源代码编译,后者安装预编译的版本。这里讲讲源码编译的过程。

1.安装依赖

sudo apt install build-essential libatomic1 python gfortran perl wget m4 cmake pkg-config

2.源码编译

make -j 4

3.安装

echo "alias julia='/path/to/install/folder/bin/julia'" >> ~/.bashrc && source ~/.bashrc

GTK

1.安装

Julia使用pkg模式进行安装。在Julia命令行下,输入]即可进入pkg模式。

(v1.0) pkg> add Gtk

输入Ctrl+C可退出pkg模式。

参考

https://mp.weixin.qq.com/s/dvVQ9H14eyVjyD4yhadRnQ

MIT正式发布编程语言Julia 1.0:Python、R、C++三合一

https://mp.weixin.qq.com/s/X_MDcEmmKDN_RHYTx3kjhw

Julia 1.0正式发布,这是新出炉的一份简单中文教程

https://mp.weixin.qq.com/s/zZbK5VPlr43CleExwDoBxw

如何在Julia编程中实现GPU加速

https://mp.weixin.qq.com/s/G0u_mP7xBJ7mx4eerdiY_g

为什么Julia比Python快?

Rust

官网:

https://www.rust-lang.org/

教程:

http://wiki.jikexueyuan.com/project/rust-primer/

Rust的包管理器叫做cargo。它的官网:

https://crates.io

安装

curl https://sh.rustup.rs -sSf | sh

或者

sudo apt install rustc cargo

Rust的更新比较快,3个月就会发布一个新版本,因此推荐使用前者。

更新:

rustup update

参考:

https://blog.csdn.net/xiangxianghehe/article/details/53471936

如何利用科大源提速Cargo和Rust

Cargo

Rust的编译工具叫做rustc,然而正如我们很少使用gcc,而更多使用make一样,我们更多使用Cargo来编译工程。

文档:

https://doc.rust-lang.org/cargo/guide/

编译:

cargo build

运行:

cargo run

Cargo可以像maven一样自动下载依赖,也可以手动安装:cargo install

GTK示例

Rust的gtk支持:

https://gtk-rs.org/

代码:

https://github.com/gtk-rs/gtk

示例:

https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/helloworld/rust/hello-rust

编写OS

教程:

https://os.phil-opp.com/

Writing an OS in Rust

https://web.stanford.edu/class/cs140e/

CS140E: Operating Systems Design and Implementation

项目:

https://github.com/rcore-os/rCore

参考:

https://zhuanlan.zhihu.com/c_1078248076300521472

一个Rust OS的专栏

参考

https://mp.weixin.qq.com/s/JBlzMIhMa7TB5tHGSRhVkQ

​半小时入门Rust,这是一篇Rust代码风暴

https://mp.weixin.qq.com/s/xGBAGBGsxBDuKkSxXOZRjQ

在Rust代码中编写Python是种怎样的体验?

https://zyxin.xyz/blog/2021-10/FirstGlanceOnRust/

初识Rust - 从一个Python/C++/C#程序员的角度对比Rust

VS

分栏显示

1.Window -> New Window

2.Window -> New Vertical Tab Group

Visual Studio Tab转换为空格的设置

打开“Tools –> Options –> Text Editor”,如果是编写C/C++程序,就打开“C/C++–>Tabs”,在这里,选中“Insert spaces”即可。

离线安装

VS2015以后,MS不再提供VS的离线安装包,因为安装文件实在是太大了(10GB+),取而代之的是offline模式。

1.首先下载在线安装器vs_community.exe,打开命令行:

vs_community.exe --layout D:\vs2017\offline --lang zh-CN

2.安装证书。证书在offline\certificates下。

3.运行offline\vs_community.exe。

Fork me on GitHub