Orangex | 橙式 —— 手机编程的最佳选择

Orangex

Orangex 是一个专为智能手机设计的, 基于 Termux 的代码编辑器。

详见: Orangex 说明文档

Repo: Orangex-Mobile

Orangex 特点

手机编程

借助 Termux 搭建手机上的 Linux 环境,提供几近于电脑的多语言通用编程体验, 支持 Python, C++, JavaScript, Java 等多种语言。

图形界面

提供专门为手机设计的、移动端友好的文件资源管理器、代码编辑器和终端快速执行界面。

体积较小

Termux 通过 Android 底层的 Linux 系统执行命令,不额外安装其他 Linux 系统;Orangex 以 Web 方式渲染界面,不需要额外安装图形界面,占用手机内存较少。

从零开始

为初学者精心设计的编程教程,无需电脑,只需要一台智能手机就能开始你的编程学习之旅。你好,新世界!

阅读全文

为自己搭建 RSS 订阅提醒服务

为自己搭建 RSS 订阅提醒服务

缘由

自己一直苦于关注的信息源太杂, 每次想要查看新的信息, 都得打开一堆网站和 APP (如别人的博客, Github, 微博, 知乎, B站之类的). 为了改善自己的订阅体验, 在 @Mexii 的帮助下, 我开始研究如何给自己搭建一个体验良好的 RSS 订阅提醒服务.

最终的解决方案如下:

  • Inkrss (开源项目, RSS 订阅提醒的核心, 使用免费的 Cloudflare Workers)
  • Vercel (免费的 Serverless 云函数服务, 能够免费托管 NodeJS, Python 代码)
  • 企业微信 Server 酱 (免费开通企业微信, 然后使用 Server 酱进行信息提醒)
  • RssHub (为了更好的体验, 需要托管在自建的服务器中, 需要服务器)

大致效果如下:

阅读全文

简单方便, 在 VSCode 中使用 Latex 公式和 Python 进行科学计算

简单方便, 在 VSCode 中使用 Latex 公式和 Python 进行科学计算

简介

Latex Sympy Calculator 是一款 VSCode 插件, 它能够帮助你在 VSCode 写 Latex 或 Markdown 的时候, 一键计算 Latex 书写的数学公式.

当前支持的功能:

  1. 算术: 加 (+), 减 (-), 点乘 (·), 叉乘 (×), 除法 (/), 乘方 (^), 绝对值 (|x|), 开方 (√), 虚数 (i)…
  2. 字母表: 英文字母 a - z, A - Z, 希腊字母 α - ω, 下标 (x_1), 重音符 (ā)…
  3. 常见函数: 最大公约数 (gcd), 最小公倍数 (lcm), 下界 (floor), 上届 (ceil), 最大值 (max), 最小值 (min), 取对数 (log), 自然对数 (ln), 指数 (exp), 三角函数 (sin, cos, tan, csc, sec, cot, arcsin, sinh, arsinh)…
  4. 微积分: 求极限 (limnlim_{n\to\infty}), 求导/求微分 (ddx(x2+x)\frac{d}{dx}(x^2+x)), 求积分 (xdx\int xdx)…
  5. 线性代数: 矩阵 (Matrix), 行列式 (Determinant), 转置 (Transpose), 求逆 (Inverse), 初等变换 (Elementary Transformation)…
  6. 关系符: 大于 (>), 小于 (<), 大于等于 (≥), 小于等于 (≤), 相等 (=)…
  7. 其他: 二项式…

当然, 实际上还有很多其他的功能, 只要是 Python Sympy 包支持的运算, 都可以通过这个插件来实现.

通过这个插件, 你就不再需要一字一句地将 Latex 转译成其他语言, 然后用 Matlab 或 MMA 等数学软件进行科学计算了. 简单的 符号推导, 矩阵运算, 微积分, 科学计算, 完全可以利用这个插件来实现.

如果你也在 VSCode 中用 LatexMarkdown 写数学公式, 那么这就是你 必备的 VSCode 科学计算插件.

插件的 GitHub 页面.

latex2sympy2 包的 Github 页面.

阅读全文

在提问之前

在提问之前

阅读《提问的智慧》有感.

每一个人, 特别是学计算机的人, 都要学会通过 STFW 和 RTFM 独立解决问题. 这是由多方原因决定的.

阅读全文

在 Markdown 中书写伪代码

在 Markdown 中书写伪代码

0. 想法来源

最近上算法课需要书写伪代码, 但伪代码一般都是通过 Latex 书写的, 但我又不想专门为了它去写 Latex, 所以就开始考虑如何在 Markdown 中书写伪代码.

根据 “Atwood’s Law” 原则:

Any application that can be written in JavaScript, will eventually be written in JavaScript.

任何可以用 JavaScript 来写的应用, 最终都将用 JavaScript 来写.

我再次将目光投向前端, 寻找符合前端思想的解决方案.

最终我选定了 VSCode + Markdown Preview Enhanced + pseudocode.js 的组合.

(缺点是不能在 VSCode 中实时预览, 这个问题的主要原因是我不想再次魔改和维护别人写的插件了.)

大概效果:

阅读全文

Reversi 黑白棋的前端界面与 AI 实现

Reversi 黑白棋的前端界面与 AI 实现

1. 黑白棋

黑白棋, 又叫翻转棋 (Reversi), 奥赛罗棋 (Othello), 苹果棋或正反棋 (Anti reversi). 黑白棋在西方和日本很流行. 游戏通过相互翻转对方的棋子, 最后以棋盘上谁的棋子多来判断胜负. 它的游戏规则简单, 因此上手很容易, 但是它的变化又非常复杂.

在线网址: https://reversi.orangex4.cool/

阅读全文

k-means 聚类算法

k-means 聚类算法

1. 概念

K-means 算法是一种无监督学习的聚类算法, 其基本思想是, 在几何空间上靠得越近的点就越相似.

2. 步骤

  1. 将数据集归一化, 即将数据范围变为 [0,1][0,1], 用于保证欧氏距离计算的准确性.
  2. 选择 kk 个初始点, 用这 kk 个和样本维度相等的初始点作为聚类的中心点 (质点), 记作 ai,i=1,2,,ka_{i}, i=1,2,\cdots,k.
  3. 对数据集中每一个样本 xix_{i} 计算它到这 kk 个样本之间的距离, 并将其分到距离最近的中心点对应的类别中. 然后形成 kk 个聚类 CiC_{i}.
  4. 对于每一个聚类 CiC_{i}, 重新计算它的聚类中心 ai=1CixCix\displaystyle a_{i}=\frac{1}{|C_{i}|}\sum_{x\in C_{i}}x, 即聚类里所有点的质心.
  5. 重复第 3. 步骤, 直至这 kk 个中心点稳定, 不再变化.
  6. kk 个新中心点所对应的分类即无监督学习分类结果.

类似过程如图所示.

阅读全文

kNN 近邻分类算法及简单的 Python 实现

kNN 近邻分类算法及简单的 Python 实现

1. 概念

kNN 算法是一种分类和回归算法, 这里我们讨论 kNN 算法在分类问题中的应用.

简而言之, kNN 算法, 即给定一个含分类标记训练数据集 (training data), 对于一个新的未分类的新测试样本 (testing sample), 找到和这个测试样本最邻近的 k 个训练样本 (training samples), 则我们将这 k 个训练样本中出现次数最多的类别看作是这个新测试样本的类别, 这就完成了我们的分类问题.

阅读全文

PCA 主成分分析与数据降维

PCA 主成分分析与数据降维

简介

PCA (Principal Component Analysis) 主成分分析是一种重要的数据分析方式, 常常用于高维数据降为低维数据.

PCA 可以用两种方式进行数学推导, 分别称为最大可分型最近重构型, 前者基于基变换之后的方差最大, 后者基于点到划分平面的距离最小. 在这里, 我们使用最大可分型的方式进行数学推导.

本文大部分数学推导基于【机器学习】降维——PCA —— 知乎@阿泽, 但是做了更为完整易懂的解释, 并且附上了以 iris 数据集 (鸢尾花卉数据集) 为案例的相应的 python 代码实现.

阅读全文

在 VSCode 中用 Markdown 做「数字化」学习笔记

教程向: 在 VSCode 中用 Markdown 做「数字化」学习笔记

VSCode 配上 Markdown 语言, 就能写出酷炫, 便捷, 且适应互联网的「数字化」学习笔记.

这个教程是我这段时间踩过各种各样的坑之后, 总结 VSCode 做学习笔记的最佳实践.

如果你对在 VSCode 中做笔记有什么好的主意, 欢迎留下你的意见, 我会第一时间在教程中加入!

阅读全文
使用搜索:谷歌必应百度