「粤语编程」项目,在 GitHub 火了!

GitHub代理内核gh-proxy-core:协议级缓存与API流控实战 GitHub代理技术是解决开发者访问稳定性与CI/CD网络瓶颈的基础能力。其核心原理在于对Git协议和REST API的语义解析,而非简单HTTP转发;通过请求聚合、LRU本地缓存与细粒度速率控制,实现API调用降频、clone加速与403错误率大幅下降。该技术具备显著工程价值——轻量部署、零K8s依赖、Rust异步架构保障高并发低延迟,已广泛应用于千人级金融科技团队的CI流水线优化。典型应用场景包括GitHub Actions限流规避、企业私有化开发环境构建及开源基础设施韧性增强。本文聚焦`gh-prox 阅读详情

来自机器之心

粤语编程语言 ——The Cantonese Programming Language。看来大家都是 C 语言啊。

最近十分搞笑的饮茶梗,刷新了大家对粤语的认知。

其实粤语一直都是一个隐含着幽默感的方言,想想「旺角卡门」中的乌蝇哥,是不是脑海中已经回荡起了学友哥的四字语音?而且毋庸置疑,粤语还是需要保护的文化遗产。

那么,今天我们就给大家介绍一个有趣的粤语编程语言 GitHub 项目,其开发者 Stepfen Shawn 似乎(自称)是来自广州的十六岁高中生。目前,该项目的 star 量已经达到了 600+。虽然工作中不会用粤语写代码,但是空闲时玩一下粤语编程,难道不是件乐事吗?

项目地址:https://github.com/StepfenShawn/Cantonese

粤语编程启蒙

下面列举了粤语版「Hello World」以及一些基本的功能(循环、函数等),还涵盖了面向对象编程和堆栈使用的示例。当然,还有各种有趣的编程语法细节,比如用「搞掂」来结束函数,用「使下」来调用库。

项目作者在《5 分钟学会粤语编程》教程中解释说,这里的「畀 (bei)」在粤语中是「给」的意思,「睇」是「看」的意思,所以整条语句的意思是「让我看看」的意思,而后面的「点样先?」则表示委婉的语气,意为「怎么样?」。对于这种有意思的互动,作者解释说,「需要用委婉语气来给计算机留下第一个好的印象,否则计算机可能会离家出走呢,对吧?」

而赋值语句「讲嘢 |A| 系 1」的「讲嘢」是「说话」的意思,「係」就是「是」的意思。作者表示,编程时写「系」也是能运行的。同样的,「唔係」就是「不是」的意思,「定係」就是「还是」的意思。

「落操场玩跑步...... 玩到 | 结束 | 为止」这个语句相当于一个 loop,「结束」就是 loop 的条件。

而类似 break 的用法有三种:「收工」、「辛苦晒啦」、「同我躝」。前两个很好理解,而第三个中的「躝」是「滚」的意思,所以使用哪个完全取决于你的心情。

「嘅」的意思是「的」,有没有感觉瞬间能读懂了。

「要做咩」直观地告诉计算机该函数接下来要做什么,「搞掂」是「搞定」的意思,起到 end 的作用。

「掟个...... 来睇下」的作用是抛出一个异常,其中「掟」有仍或丢的意思。而「谂」的意思是「想」,让计算机作判断。

「执嘢...... 揾到...... 执手尾」对应着 try、except、finally。「执嘢」是收拾房间的意思,「揾到」是指收拾中找到破烂了,至于「执手尾」,就是选择丢不丢这个破烂了。

讲真,这个「使下」,比 import 更形象。

没想到吧,居然还能进行面向对象编程。「佢」的意思是「它」,代指一个对象;「佢嘅」意思是「它的」,能够用来构造属性;「佢识得」意思是「它会」,用来构造类的方法;「老豆」就是「爹」的意思,用于描述继承关系。最后用「明白未啊」做结束语问计算机你明白了吗,会让计算机倍感亲切,接受介绍给它的对象。

这里的「Deo 哥」很明显是个栈,「顶你」就是放入栈,「丢你」就是从栈取出。

粤语编程进阶

下面列举了一些粤语编程的进阶玩法,比如二分查找、线性查找、冒泡排序、插入排序、KNN 等算法的实现。能看到这里,说明你很感兴趣啊,那就继续学吧。

对你没有看错,由于此语言由 Python 开发,还可以非常方便地编写机器学习算法。

此处为作者的灵魂画作(号称是海龟)。

上图是使用此语言开发的迷宫小游戏界面。

代码链接:https://github.com/StepfenShawn/Cantonese/blob/main/examples/games/game.cantonese

下面是作者实现的网页和 App 示例:

加入语言的方式

粤语编程语言运行在 Python 虚拟机上,支持 Python 3,使用方式如下:

还可以转化为 Python 运行:

以及生成 HTML:

动手训练粤语语音识别模型 在最后一步,我们定义了与训练相关的所有参数。在这里,我们将训练步数设置为100。这足够多的步数,可以与预训练的Whisper模型相比看到很大的词错误率(WER)改进。更多参数说明,参阅:https://huggingface.co/docs/transformers/main_classes/trainer#transformers.Seq2SeqTrainingArgumentsoutput_dir="./whisper-tiny-zh-HK", # 模型上传到HF Hub的名称。 阅读详情

相关推荐

粤语:粤语编程语言。

引言 什么是粤语编程语言?它是一门用粤语来与计算机沟通的编程语言。在这个语言里,计算机能够读懂你写的粤语。因此,你可以用粤语来操作(滥用)计算机。 快速入门 你好世界 用粤语写的第一个程序 畀我睇下 " Hello World! " 点样先? 赋值语句 讲嘢 |A| 系 1 讲嘢 |B| 系 2 查看变量类型 讲嘢 |A| 系 1 起底: |A| 运行结果: <class> 循环 打印从1到100: 讲嘢: |start| 系 0 落操场玩跑步 讲嘢: |start| 系 |start + 1| 畀我睇下 |start| 点样先? 玩到 |start < 100|

文言文编程还不够好玩?这里有个16岁高中生开发的粤语编程项目,GitHub star量600+...

点击上方“AI遇见机器学习”,选择“星标”公众号重磅干货,第一时间送达来自:机器之心粤语编程语言——TheCantonese Programming Language。看来大家都是 C ...

weixin_36896856的博客 372

cantonese-community.github.io

cantonese-community.github.io

【软件技术基础】国际语言代码LanguageCode

国际语言代码

杰西笔记 2332

StepfenShawn.github.io:欢迎来到我的网站!

StepfenShawn.github.io 这是一个关于我的网站。欢迎提出要求! 请看! 如何贡献? 1.克隆此仓库 git clone git@github.com:StepfenShawn/StepfenShawn.github.io.git 2.在您当地的网站上运行该网站,以确保其正常运行 在拉出请求之前,请确保它正在运行。 分叉此仓库并创建PR 欢迎提出要求!

centos7 清理缓存

一、系统环境 系统版本 CentOS Linux release 7.3.1611 (Core) 内核版本 Linux xx-user 3.10.0-514.el7.x86_64 #1 SMP 背景 服务器分配的账号是普通用户,只能执行sudo命令 二、缓存查看及基本概念 查看内存使用情况 [user01@xx-user ~]$ free -h total used free shared buff/cache availabl

sunzq55的博客 4007

python tts 保存_TTS:文本语音转换,支持粤语和普通话Python视频编辑自动化,视频剪辑...

直接贴代码:"""Author: JoshuaFocus: Bilibili@NBody编程那些事Description: 利用百度翻译接口, 实现文本转语音"""import requestsfrom pathlib import Pathfrom argparse import ArgumentParserdef get_tts(text:str, *, lan:str='zh', spd:i...

weixin_39645249的博客 1227

防雷防浪涌电路设计

通信线路或者电源线路通常会铺设到户外,一旦线路铺到户外后,就需要考虑防雷的问题了,那么怎么设计保护电路,能够防止雷电等浪涌对电路的破坏呢?

manhuami2007的博客 1万+

python简体中文、繁体中文转换

使用hanziconv这个库:pip install hanziconv 简体转繁体 from hanziconv import HanziConv print(HanziConv.toTraditional('说过不能为')) 输出繁体中文:說過不能為 繁体转简体 from hanziconv import HanziConv print(HanziConv.toSimplified('說過不能為')) 输出简体中文:说过不能为 ...

呆萌的代Ma 1053

ADS入门学习笔记——射频振荡器的设计

振荡器是射频系统中的基本部件之一,可以将直流功率转换为射频功率,在特定的频率点建立起稳定的正弦振荡,成为所需的射频信号源。

weixin_42126696的博客 8952

第18章:AI辅助Debug——如何将错误日志交给AI定位根因

> - 如何将错误日志、堆栈、代码片段组合发给AI,快速定位问题根因 > - AI分析错误的3个核心维度:环境差异、逻辑缺陷、并发竞态 > - 常见错误的AI分析Prompt模板(前端报错、后端异常、数据库错误、网络请求失败) > - 一个完整的调试案例:从用户报错到找出问题根源的全过程 > - 我如何用AI把平均调试时间从2小时缩短到20分钟

sfishfly的博客 44

哈哈哈哈,16 岁高中生开发「粤语编程」项目,在 GitHub 火了!

上一篇:一个90后员工猝死的全过程来自机器之心粤语编程语言 ——TheCantonese Programming Language。看来大家都是 C 语言啊。最近十分搞笑的饮茶梗,刷新了...

emprere的博客 258

103:vue+cesium 设置球体水部分颜色为黄色

本示例在 Vue + cesium 项目中设置球体水部分颜色为黄色。这里的操作是将球体内部设置为空的,在地球内部添加一个黄色的圆球,这样水的部分就被突出出来了。直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果.

大剑师兰特的GIS世界 626

16 岁高中生开发「粤语编程」项目,在 GitHub 火了!

点击“开发者技术前线”,选择“星标????”让一部分开发者看到未来来自:github中文社区好听的粤语都能编程了!最近十分搞笑的饮茶梗,刷新了大家对粤语的认知。 其实粤语一直都是一个隐含...

开发者技术前线-DevolperFront 224

华为OD机试 双机位C卷:微服务的集成测试 (C/C++/Py/Java/JS/Go)

华为OD机试 双机位C卷 :微服务的集成测试 ,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 微服务的集成测试 , 华为OD 微服务的集成测试

qq_45776114的博客 2066

详解FreeRTOS:低功耗Tickless模式(高级篇—7)

FreeRTOS提供了一个叫做Tickless的低功耗模式,本篇博文我们就来学习一下如何使用这个Tickless模式。

不脱发的程序猿 1900

16岁高中生开发的粤语编程项目,在GitHub上面火啦,网友:现在的孩子都这么厉害了吗?...

????????关注后回复“进群”,拉你进程序员交流群????????机器之心报道编辑:力元粤语编程语言——The Cantonese Programming Language。看来大...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 326

Altium Designer 超详细入门教程

本文是一份Altium Designer新手入门教程,详细介绍了从软件基础到PCB制版的全流程。主要内容包括:软件界面介绍与工程创建方法;原理图设计中的元件放置、电气连线、标注添加等操作;PCB设计的布局布线、铺铜和DRC检查;Gerber和钻孔文件的导出方法。教程还提供了分类整理的实用快捷键表和新手避坑指南,强调原理图编译和DRC检查的重要性。通过本教程,新手可以快速掌握AD基本操作,完成简单电路板的设计与制版文件导出。

学习中...... 846

粤语编程语言Cantonese:用母语编写代码的终极指南

粤语编程语言Cantonese是一款创新的编程语言,它允许开发者使用粤语词汇和语法来编写代码,为粤语使用者提供了一种用母语进行编程的全新体验。无论是编程新手还是有经验的开发者,都能通过这款语言轻松入门并享受编程的乐趣。 ## 为什么选择粤语编程语言? 对于粤语母语者来说,使用粤语进行编程具有诸多优势。首先,它消除了语言障碍,让开发者能够更自然、更直观地表达自己的编程思路。其次,粤语中的许多表达

gitblog_00898的博客 545

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

一个全新且牛逼的代码补全生成器!OpenAI和GitHub联合发布一开源力作

点击上方“Github中文社区”,关注触达Github项目来源:Github & 新智元近日,OpenAI和GitHub联合推出了一个全新的代码生成AI:Copilt,可以根据注释...

Github中文社区 1463

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 全球最厉害的 14 位程序员,你认识几位?
下一篇: Linux 能替代 Windows 吗?
codingpy
博客等级 码龄11年 1873粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值