Category: 程序设计

Work Everywhere: 通过 railway 和 code-server 搭建网页版的 visual studio code

背景和需求 我有一个 iPad 平板, 平时出门碎片时间在 leetcode 和 binarysearch 上刷题, 因为可以直接在网页里敲代码. 除了用一些SSH Terminal远程登陆服务器用 vim 改代码, 平板上做开发并没有很好用的IDE. Code-Server 项目地址: https://github.com/cdr/deploy-code-server 通过这个项目可以在服务器 (VPS) 上配置 code-server, 通过 export 端口(8080) 可以在浏览器里以网页方式打开 vscode. Railway.app Serverless …

通过AWS Lambda / API Gateway 架设负载均衡API服务器 (Load Balancer)

AWS Lambda AWS Lambda是无服务Serverless的领导者, 同类产品有 CloudFlare 的 Worker, 微软的 Azure Function. 我们用Lambda可以省去维护升级服务器的费用的时间. 并且Serverless的本身都是非常可扩展(水平)的. 负载均衡 Load Balancer 负载均衡Load Balancer服务器的目的是把流量转发(Route)到较空闲的服务器的, 以避免单服务器过载和单点错误(Single Point of Failure). 和CloudFlare Worker一样, 我们可以用AWS Lambda做一个Serverless的负载均衡服务器. 基于AWS Lambda的负载均衡服务器 LB采用的均衡算法可以是基于DNS, …

回顾20年前时高中参加信息学奥赛(NOIP)的经历

高中生活已经过去20年了, 对于我来说, 其中最为宝贵的一段经历就是在高三的时候参加了信息学奥林匹克(也就是计算机算法编程)竞赛, 并拿到了NOIP (National Olympiad Informatics in Province) 全国三等奖. 现在看来这个证书奖状的可比我高中毕业证的含金量高多了. (找工作的时候能加点分) 其实高一的时候我就参加初赛了, 可是失败了, 高二高三连续两年参加都进入复赛, 高二的时候获得省三等奖, 高三是全国三等奖, 也算每年都有进步了. 竞赛编程语言和环境 操作系统是DOS, 编程语言可以选 Turbo Pascal 7.0 还有 MS Basic. 这两种语言都没有可以现成可以用的哈希表, 对于有的题型竞赛难度比现在可谓是大了一些. …

通过BASH脚本显示树莓PI的温度和频率

我们很容易可以通过以下BASH脚本来显示当前树莓PI的温度和频率. #pi@raspberrypi:~ $ cat ./cpu_freq.sh #!/bin/bash temp=`head -n 1 /sys/class/thermal/thermal_zone0/temp | xargs -I{} awk "BEGIN {printf \"%.2f\n\", {}/1000}"` echo $((`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq`/1000)) MHz, $temp degrees 然后, 我们可以每3秒来显示这个信息: # 每3秒显示 while …

在竞赛中通过向标准输出stdout打印数据来调试leetcode程序

leetcode 网页的代码编辑器很好用, 有一个远程调试 Debugger 的功能, 只不过这个功能是需要付费才能使用的. 而且这个调试功能在比赛中是无法使用的. 其实我们只需要在代码里向 stdout 打印(变量), 运行代码就能在网页中看到值了 – 这样一来就可以很方便的调试程序了. 当您手边没有IDE时, 这是一种调试代码的好方法-有时我在iPad上参加每周的竞赛, 而我没有IDE, 也无法使用内置的leetcode调试器- 在这种情况下, 打印到标准输出是调试打印变量的唯一实用方法. 在此之前, 我只能更改代码并将变量作为调试技术返回-这种方式效率很低. 英文: Using the stdout to debug print the …

模拟算法解决小时候的疑问: 空瓶子换啤酒问题

记得小时候一直在琢磨的问题, 拿空酒瓶(也有可能是可乐)换酒瓶, 最后面一共可以喝几瓶. 今天在 leetcode 看到了这题, 1518. 这题是简单题, 我们通过模拟就能解决. 需要的定义的变量就是总喝的瓶数, 还有就是当前空瓶数. 只要空瓶子够换新酒瓶, 我们就不停的循环这个过程. 需要注意的是新的空瓶数得把原来不够换的那部分也加上. 比如3个空瓶可以换一个新瓶, 现在有5个空瓶, 只够换1个, 然后新的空瓶就是(5-3+1=3)还够换1瓶. 不啰嗦了, 以下就是 Python代码. class Solution: def numWaterBottles(self, numBottles: int, numExchange: int) …

在树莓派上通过Python脚本来查看CPU的温度

树莓派 (Raspberry PI) 主机就只有一块板, 并没有风扇. 但是一般我们可以给它安装CPU风扇或者散热金属片. 树莓派的最高温度大概是80度, 如果太热的势必会影响树莓派的寿命, 所以我们要监控树莓派的温度, 如果过高就提醒我们. 我们可以通过下面的一个PYTHON脚本在控制台持续的输出树莓派的CPU温度: import os import time def temperature_of_raspberry_pi(): cpu_temp = os.popen("vcgencmd measure_temp").readline() return cpu_temp.replace("temp=", "") while True: print(temperature_of_raspberry_pi()) time.sleep(1) 我们可以稍微改改, …