Random Posts
-
Tags
AI Android AS3 C++ DOS GUI IM KCP Linux Nas PIM Python Vim Win32 优化 创业 同步 命令行 图形 好用工具 小游戏 抗锯齿 机器学习 汇编 演示 知乎 神兵利器 策划 算法 管理 系统开发 经典游戏 编译原理 网络 翻译 英语 虚拟机 视频 计算机系统 讲义 词法分析 语法分析 足迹 闲聊 随笔
-
Categories
-
Recent Comments
无意间看到了大佬的博客和这篇文章。自己颇有感触。既然您标题问道了最初学习编程的设备这个问题,我说说我个人吧。我是从小霸王学习机的BASIC开始入门的,那个BASIC用现在的眼光来看,是改版的。当时还随机附送了一本厚厚的手册,里面介绍了基础指法,五笔字根,后面多半本都是basic编程的,甚至可以调用游戏卡内置的精灵块图库,“画”出个马里奥等角色。我是从那个环境中,按照手册的DEMO,全都试着敲过程序并成功运行了,至少了解了程序的顺序、选择、循环的结构和概念。 您说的没错,90年代初期,没有网络,书籍也不发达,懂编程能够请教的大佬更是少之又少。我个人有个优势,家里有亲戚在计算机三厂,也就是最早的长城计算机厂上班。借助这个关系,我有幸能够接触到0520的计算机,硬件的配置应该是8086的CPU(好像有协处理器),64KB内存 ,5英寸的8MB的硬盘好像是,OS应该是DOS3.x吧?年头太多了,实在记不清了。这个机器的系统里,有DOS带的QBASIC,还有长城公司当时魔改的GW-BASIC,有了小霸王BASIC的基础,上手编程相对容易。也因为在计算机厂,有大量懂编程的工程师前辈,看到过年轻的初中生我写的程序,觉得“孺子可教”,就经常指导我一些OS的知识,并且给了我一些原文的手册资料学习。当时我才初中啊,根本看不懂,别的小朋友都赞零花钱买魂斗罗啊,8合一之类的游戏卡,或者去街机厅/台球厅“潇洒”,而我则买了本牛津双语词典,用家里的相机拍了照片,甚至手抄,遇到不认识的词就手动翻译,或者去请教英语老师,愣是啃下了很多知识。 我还清楚的记得我的英文老师是个马来西亚的归国华侨,人特别好,那时候的老师也真认真负责,看到我这些技术资料,说这里有好多的专业词汇,他也不懂,需要计算机专业的词典,当时很不好找,甚至托人帮我从海外买,至今记忆犹新! 后来上了高中,仍然很喜欢学习编程,甚至用算法+程序去尝试解决数学问题,家里看我确实喜欢,也算是赤巨资,通过亲戚厂里的门路,我得到了人生第一台X86的计算机 ,和您的配置差不多,IBM原厂的 486DX2-66Mhz 的机器,从那以后,开始系统的学习DOS操作系统,MASM汇编,C语言等等高级的编程语言。 如今时光荏苒,白驹过隙,已经30年过去了,真的很怀念年轻时候的自己,脑子够用,学东西也快,也愿意研究琢磨和创造捣鼓。如今已经变成油腻的中年大叔咯...但年轻的自己打下的“根基”,也造就了今天的自己,仍然对编程充满了兴趣和敬畏,仍然能保留有一丝丝的创造力和执行力去实现自己想要的东西。 最后,还是想要真心的感谢一路走来给过我帮助的人们,我的老师们,三厂的工程师大佬们,朋友们和家人的支持与鼓励,千言万语汇成一句话吧:感恩,感谢!
总是一针见血的指出问题,
谢谢老哥!
多谢,正在下载
Tag Archives: Python
Python 的 asyncio 网络性能比 C 写的 Redis 还好?
先前我做过一个 asyncio/gevent 的性能比较《性能测试:asyncio vs gevent vs native epoll》,今天修改了一下 asyncio 的测试程序的消息解析部分,改用 Protocol,发现它甚至比 redis 还快了: 安装依赖: pip install hiredis uvloop 编辑 echosvr.py 文件:
![]()
性能测试:asyncio vs gevent vs native epoll
测试一下 python 的 asyncio 和 gevent 的性能,再和同等 C 程序对比一下,先安装依赖: pip3 install hiredis gevent 如果是 Linux 的话,可以选择安装 uvloop 的包,可以测试加速 asyncio 的效果。 测试程序:echo_bench_gevent.py import sys import gevent import gevent.monkey import hiredis from gevent.server import StreamServer gevent.monkey.patch_all() d = {} def process(req): # … Continue reading
![]()
怎么样打包 pyqt 应用才是最佳方案?
早先看一堆人说 PyQt 打包麻烦,部署困难的,打出来的包大(几十兆起步),而且启动贼慢,其实 Python+PyQt 打包非常容易,根本不需要用什么 PyInstaller,我手工打包出来的纯 Python 环境只有 5MB,加上 PyQt 也才 14MB。 很多人用 PyInstaller 喜欢加一个 -F 参数,打包成一个单文件: 这样的单文件看起来似乎很爽,其实他们不知道,这其实是一个自解压程序,每次运行时需要把自己解压到 temp 目录,然后再去用实际的方式运行一遍解压出来的东西: Process Explorer 把雷达图标拖动到 pyqt_hello.exe 的窗口上,可以看到有两个 pyqt_hello.exe 的文件,外面那个是你打包出来的,里面那个才是真正的程序(虽然可执行都是一个),看看它下面依赖的 python310.dll 是在哪里?这不就是一个临时解压出来的目录么: 看到没?这就是你 PyInstaller 打包出来的 30MB 的程序,每次运行都要临时解压出 71MB 的文件,运行完又删除了,那么如果打包出来的可执行有 100MB,每次运行都要释放出 200-300 MB 的东西出来,所以为什么 … Continue reading
![]()
桌面开发用 Tkinter/wxPython/PyQt 哪个好?
Python 有很多 GUI 框架,比如著名的 Tkinter,wxPython 和 PyQt,那么想用 Python 开发桌面软件的话选哪个更好呢?作为三个都用过的人先给个结论,不用纠结,直接选 PyQt 即可。 很多人说 Tkinter 简单无依赖,没错,但这就是 tkinter 唯一的仅存的优点了,但是请大家注意,Tkinter 的这个 “简单”,是指 “功能少和效果单一”,不是写程序简单明了,真正写起程序来还是 PyQt 最简单清晰。 有些东西你学出来就过时了,比如 “算盘”,比如 Tkinter 和 wxPython;而有的东西你学会了,即便不吃这碗饭,不靠它涨工资,也能在今后一二十年持续受益,比如练习打字速度,比如背单词,比如学习 PyQt。 对于桌面开发,天下武功那么多,PyQt 既是最正统的门派,同时又是一系列综合技术的组合,它近可以同 C++ Qt 无缝整合,解决性能相关的东西;退,又有基于 chromium 的 QtWebEngine ,能在适合跑页面的部分用 html/js 来写页面,并和 python 双向调用,实现类似 … Continue reading
![]()
PY2EXE的启动步奏参考-科学的发布
周末读了一下Py2Exe的代码,偶然发现Py2Exe的实现,是一套很成熟的客户端发布方式,不限于只有 Python项目可以参考,Py2exe启动步奏如下: Py2exe启动步奏方式参考: 主程序启动,尝试在本EXE的资源中找到zip过后的PythonXX.dll的数据 如果找到 PythonXX.dll数据则unzip后以memory dll方式加载并导出接口 初始化 memoryimporter,给python提供在内存中import一个pyc或者dll的功能 利用memoryimporter加载 ctypes.pyd模块 利用py2exe_util.c中的方法,加载程序所需要的资源:ICON等 在资源中初始化 zlib.pyd等必要模块 在资源中找到初始化,以 __main__ 的命名开始转入Python脚本
![]()
Python少打字小技巧
说明:增加代码的描述力,可以成倍减少你的LOC,做到简单,并且真切有力 观点:少打字=多思考+少出错,10代码行比50行更能让人明白,以下技巧有助于提高5倍工作效率 1. 交换变量值时避免使用临时变量:(cookbook1.1) 老代码:我们经常很熟练于下面的代码 temp = x x = y y = temp 代码一: u, v, w = w, v, u 有人提出可以利用赋值顺序来简化上面的三行代码成一行 代码二: u, v = v, u 其实利用Python元组赋值的概念,可更简明 — 元组初始化 + 元组赋值 2. 读字典时避免判断键值是否存在:(cookbook1.2) d = { 'key': … Continue reading
![]()
Windows用久了,垃圾实在太多,还会莫名其妙挑出来BUG,我通常一年重装一次系统