分类文档:编程 200篇

掉头发的超难算法的解决(2)
2020年06月17日 17:37

程序设计约90%以上都是数学问题。这个难题是,刚需应用中,例如有42节不同内阻的锂电池,内阻为19mΩ~22mΩ,每3节并联,组成14串,要求并联后的这14串的内阻相近,越相近越好。

理论上,如果能把所有的排列方法都罗列出来,并自动计算并联后的电阻,14串的电阻和,与42节单节的总电阻÷3,这2者的差最小,就是一致性最好的组合,一般可以达到0.03mΩ~0.10mΩ以内。但是,罗列出这个排列的组合,是一个很复杂的循环程序公式,42个数字、每3个为1组的组合方式,可能会达到几百亿种以上。更何况84个、102个、136个数字,排列的组合,会达到几百亿种×N倍×N倍×N倍×N倍……,是一个天文数字。……

固定链接 | 发表评论(0) | Trackback(0)

遭遇到了一个令人掉头发的超难算法
2020年06月17日 12:44

程序设计约90%以上都是数学问题。昨天遭遇到了一个令人掉头发的超难算法,直到现在眼睛和头都特别不舒适。虽然我知道这个难题早晚能解决,有一定的线索,预计也许3-7天就能破解了。2005年~2008年时我做的一个电子型号搜索项目,更难,花了2年多才完成算法。

这个新的难题是,做锂电池内阻配对程序。例如有42节锂电池,做3并14串,每节的内阻都不同,从18mΩ~23mΩ。过去很多人认为是把电阻大的并联在一起,内阻小的并联在一起。这样做,因为分压的原因,在大功率的电动汽车/电动车上,先消耗内阻大的电池、且内阻大的电池发热大。正确的做法是,求出42节平均内阻,每3并的内阻值都尽量接近42节的平均值除以3,这样得到的14串的内阻的差别是0.0XmΩ的差距,而首尾相接的算法就简单很多,差别是0.0XmΩ~0.1XmΩ。这个排列的计算量有多大呢?42节电池的排列方法有可能会在几万种~100万种。……

固定链接 | 发表评论(0) | Trackback(0)

写在编程的第18年
2020年02月26日 11:59

这一篇可以写很多,又觉得无话可说,因为写博客本身会占用太多的时间,有时也不愿意写博客。在社会中总是有人会关注我是做什么的,不断地总是有人问在哪里工作、做什么的,那么只好从这段难忘的十几年的工作经历中,选出一个最恰当的身份:编程。

其实我对这项工作,既热爱,又感到无限地乏味。我是一名Web程序的独立开发者,编程中大多数是运算、算法的设计和构思。独立开发者和团队协作的开发,各有长处、也各有短处。……

固定链接 | 发表评论(8) | Trackback(0)

PHP VS Excel
2019年12月13日 12:42

最近在工作中需要用到Excel。我发现凡是Excel能够实现的功能,PHP也可以通过编程来实现完全一样的绝大部分的功能。并且,PHP可以随心所欲,更加灵活。

例如需要实现一个功能,当复制一些 公司/商店 名称的时候(一行一个名字),PHP可以批量自动显示数据库里已有的客户地址、电话、联系人,字段间用Tab符(\t)隔开。然后将显示的结果,一次复制到Excel中。否则,如果没有这个PHP的功能,只能一个一个客户名查询,很繁琐。……

固定链接 | 发表评论(11) | Trackback(0)

干货分享:站内搜索引擎的分词算法的数据库设计方案
2019年11月03日 11:48

在程序开发之前,脑中需要有一个主线的方案,整个程序都是在围绕这个方案。就在前天写《网络创业的几个新思考》到昨晚,共经历了30多个小时,突然有了一个新的方案。

这个方案,虽然还不能完全实现巨量数据的标题关键词任意快速搜索,但是可以实现带有空格的分词快速搜索,因此基本上已经可以实现类似淘宝的产品快速搜索,这适用于产品类、关键词分类的搜索站点或平台。……

固定链接 | 发表评论(0) | Trackback(0)

“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”的通用根治办法(多系统完整版)
2019年10月08日 13:20

(本文的办法只限Linux主机) 虽然我不是Wordpress的用户,但是调试MySQL最好的办法是安装Wordpress,所以我会隔一两年、几年在本机安装Wordpress。出现“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”,虽然是一个公认的老掉牙的问题,我为了开发一键LAMP/LNMP的MySQL安装部分,经过这几天的多系统调试,发现出现这个提示,并没有大家想象中的简单,是一个有些复杂的问题,尤其是现在到了PHP 7更容易出现这个报错。……

固定链接 | 发表评论(3) | Trackback(0)

为什么近期的Shell命令每行都有分号?
2019年09月26日 10:02

单独一个Shell命令,分号可有可无。多个Shell命令可以放在一行里,多个命令之间用分号隔开,一次复制,然后回车。近期发的Shell命令,很多单独的一个命令,也有分号。

这是因为这些命令是从我编写的LAMP/LNMP一键Shell命令里复制的,由于时间的关系,来不及一一删除分号。这个一键命令是经过大量调试而写成的成品。它目前分为3大部分(3个文件),对外链接、主程序(生成Ubuntu/Debian/CentOS不同系统版本相应的一键Shell命令,由PHP+Shell完成)、后期优化程序。……

固定链接 | 发表评论(2) | Trackback(0)

成功的路上总是困难重重、千辛万苦
2019年09月11日 09:23

我从3年多以前开始用VPS之后,从那时开始学习、使用Shell命令、Shell编程。Shell命令具有最高权限,但是其功能远远不如PHP等编程语言。比如需要用命令自动修改某个文件,PHP等大多数编程语言只需打开文本文件、替换、写入这3个步骤。Shell编程要实现这3个步骤,会遇到各种困难,至今3年多,这个问题仍然没有完美解决,其困难如下:……

固定链接 | 发表评论(2) | Trackback(0)

开发VPS一键安装PHP环境的难题(2)
2019年09月02日 20:23

最大的难题仍然是VPS每月的重装次数严重不够用,每个VPS每月只能重装30次。今天发现KVM和OpenVZ的配置有一定的区别。我现在手里共有9个VPS,有几个是闲置、或半闲置状态,这几个都是KVM。OpenVZ空间反而一个闲置的都没有,所以必须腾出OpenVZ空间,今天把2个空间的站点互换、迁移,手动操作竟然持续了将近2个小时,太折腾了。……

固定链接 | 发表评论(0) | Trackback(0)

开发一键Shell命令安装VPS的PHP环境遇到的几个难题
2019年08月31日 12:51

兼容所有的系统,是巨大的挑战,也很可能是不可能完成的任务,只能做到尽可能兼容。这个自编的纯净版一键Shell命令,用了2年多,真的很好用,省去了我很多麻烦。因为我过去只用Ubuntu 12、CentOS 5,所以一直以来只兼容这2个系统。到了要发布的时候,需要兼容大多数的系统。这几天,为了测试,必须用真机重装系统,已经重装不下60次系统,VPS每月只能重装30次,其中有一个本月已经用完30次。……

固定链接 | 发表评论(0) | Trackback(0)

第3版的LAMP/LNMP一键安装+优化的Shell命令留念和详解
2019年08月29日 17:59

这个第3版的LAMP/LNMP纯净版的一键安装命令,是这几天重新编写,将会放在Webshu平台。此时已经能够完美兼容Ubuntu 12/14/16/18/19,以及Debian 7/8/9。但是今天发现有个小问题,Debian 9在两家不同服务商的VPS下,有一个VPS完美运行,另一个VPS安装遇到些问题。有可能是问题出在Debian 9.9的apt-get命令必须改为apt,所以今天尝试把这个命令在Linux命令行下设置为一个变量$apx,让其在Ubuntu 18和Debian 9.9下自动变成apt。……

固定链接 | 发表评论(0) | Trackback(0)

如何编写VPS的LAMP/LNMP的一键安装命令
2019年08月27日 08:01

Linux比Windows服务器好的一点是,Linux可以编写一键shell命令,让它全自动安装。基本的方法是,命令之间用分号;,或者&&号隔开;shell也有很多需要应答的场景,例如需要输入Y,或者输入Yes,或者需要按回车。需要输入Y,大部分是install命令,可以事先给install命令加个-y,如apt-get -y install ……,yum -y install ……。……

固定链接 | 发表评论(2) | Trackback(0)

解决PHP 7等web编程语言不报错一例
2019年07月28日 07:07

PHP的开发者必须尽快转到PHP 7平台,因为原来在PHP 5下开发的程序,有很多在PHP 7下都会报错。PHP 5的程序改为PHP 7的写法,工作量是很大的,所以开发者只能一步到位转到PHP 7平台。

PHP 7增强了数据类型;数组与变量名不能同名,如果同名,需要用$a1=array();给数组$a1清空即可解决报错,PHP 5时只要用$a1='';即可清空数组;PHP 7如果直接引用、或者判断符合条件才赋值的变量时,会报错,解决办法是提前声明这个变量,PHP 5时则不需要声明。……

固定链接 | 发表评论(4) | Trackback(0)

常用技术分享:PHP 5和PHP 7在开发中最常遇到的兼容性写法总结
2019年06月30日 11:41

PHP 7引入了强类型,在报错方面比PHP 5严格了很多。所以,很多PHP 5下开发的程序,到了PHP 7会有各种报错、无法运行。其实,只要稍加改动,原来的PHP 5程序就可以兼容PHP 7的语法,但无疑改动的工作量是难以估计的,需要对每个模块都重新测试。这种改动不像前端设计所见所得,程序由于模块数量庞大,可能会有少量改动不彻底而引发bug。……

固定链接 | 发表评论(10) | Trackback(0)

PHP 7.X、PHP的报错日志测试结果记录
2019年06月22日 12:49

PHP 7.X的报错规则比PHP 5.X严格很多。测试结果是为了试验error_reporting(0);能否彻底关闭报错日志,以防止用户的错误日志的增加,测试结果是肯定的。测试平台为Ubuntu 16+Apache+PHP 7.2。共写入这4个php测试文件:

1.php……

固定链接 | 发表评论(2) | Trackback(0)

Feedval程序已经开始修改为PHP 7的写法(Feedval开发实况24)
2019年06月21日 16:17

Feedval目前在PHP 5.X可完美运行。PHP 7.0应该也可以运行,暂不支持PHP 7.1和之后的版本。已经开始全力修改,使其能够兼容PHP 7.1~最新的PHP 7.3。

经过几天的持续调试,我的电脑终于完成PHP 7.X的环境安装+一键还原。昨晚排查出了PHP 5.X和PHP 7.X写法的不同,主要是由于从PHP 7.1开始,其报错规则非常严格。只要一个变量不存在,当调用它时,就会报错。数组的名称,也不能与已有的变量同名(如果有,PHP 7.X必须先清除数组)。这种严格的报错规则,多见于其它的语言。PHP之所以让开发者感到轻松,就是因为无需每次都声明变量。……

固定链接 | 发表评论(4) | Trackback(0)

PHP 5.X和PHP 7.1写法的2个不同(修改需要庞大的工作量)
2019年06月20日 22:42

这几天经过很多波折,终于把Win 10+PHP 7.1的工作平台搭建完成。作为开发平台,Win 10操作系统,在很多方面都远不如XP好用。目前,XP、Win 7都无法安装PHP 7.X。我原来在PHP 5.X编写的程序,在PHP 7.1都无法运行,在PHP 7.0下运行正常。今天经过排查,终于找到了原因。由于写法不同,导致PHP 5.X下编写的程序,无法在PHP 7.1下运行。……

固定链接 | 发表评论(4) | Trackback(0)

漫长的PHP 7.X安装之坑的困境详解
2019年06月14日 10:02

因为从PHP 7.1开始,PHP的解释器做了很大的改动,导致原来的很多PHP程序无法在PHP 7.1及之后的版本运行。如果作为为用户提供程序、非自用的开发者,为了争取更多用户,有必要跟进新的平台。经过2天的安装,基本上已经完成了PHP 7.1~7.3的安装。PHP 7.X的安装,没有想象中的顺利。为了完成PHP的开发,我的电脑不得不使用4块硬盘,安装了4个系统。……

固定链接 | 发表评论(12) | Trackback(0)

博客的优美之处在于记录真实的事情和想法,记录PHP 7.1、HTML 5遇到的困扰
2019年06月12日 10:42

个人的力量无法去阻挡时代的变化,正如房价的变化。本博客这些年来,随着博客的不断撰写,会产生很多新的思考、想法和发现。其中一个重要的发现是,很多事情、技术并不会因为时间的推移,就必然会进步。很多好的技术、观念,都随时可能被遗忘、失传,这样的事情细想一下,数量十分惊人,有可能超过半数。……

固定链接 | 发表评论(4) | Trackback(0)

常用技术分享:JavaScript的onclick的一个bug和解决
2019年06月08日 09:21

<input>如果有默认的字符提示,当点击时需要清除默认字符,例如我编写的这个页面 http://cn.blogval.com/author/ 。如果只用onclick,会发现如果此时按鼠标右键,或者在手机上直接长按,默认字符都不会清除。

这是onclick的一个bug。解决办法,在<input>里,除了写onclick,再同时写一个onfocus的语句。……

固定链接 | 发表评论(0) | Trackback(0)

必成技术分享:PHP获得服务器本机IP的思路
2019年06月08日 07:40

最近我在Eonval项目开发中需要此功能,但PHP自身无法获取服务器本机IP。想要获取服务器本机IP,有很多种方法,比如需要时我会想这2个办法,都需要调用Linux主机的shell命令来实现。这2个办法都必须使用唯一的这个函数shell_exec(''),它是返回Linux主机的shell结果的所有行,且将结果传给一个变量,再用PHP分析运行结果,从运行结果中提取出服务器的IP地址。……

固定链接 | 发表评论(0) | Trackback(0)

博客防止spam的新方案分享,十分有效:单篇设置验证码
2019年05月14日 07:36

本文的spam,专指有一种来自国外的评论,每条评论内容里有10多个链接,语言是英文或者其它语言(类似德语、法语),发在中文博客里。我的博客当初开通一两年之后,评论里就开始有这类spam,几乎一两天内就有。

当时想了很多办法,最后非常无奈只好全站开启验证码,效果立竿见影。这一两年,为了用户体验,去掉了验证码。我发现spam总是发在那几篇博客里,所以把那几篇博客都关闭了评论。spam突然沉寂了很久,这几天又多了起来。……

固定链接 | 发表评论(5) | Trackback(0)

程序员/程序设计者的智商高吗?记忆力强吗?
2019年05月05日 09:34

这是几个月前在v2ex出现过的一个问题。我不能给出一个明确的答案,因为这个问题本身是没有结果的。智商高不高不敢说,但是从这种很特殊的职业性质来看,和别的职业有很大的不同:每天需要实际去解决在程序中的这个“现实”的问题,程序只要错一个字符,会导致整个程序无法正常运行,是极其精密的。由于长期处于这种身经百战的环境中,解决问题已经成为习惯。(智商、智慧的本质就是能够解决问题。)……

固定链接 | 发表评论(4) | Trackback(0)

回忆2001年左右的一位真正的早期电脑牛人(谈如今开发者的移动办公平台)
2019年04月29日 13:41

大约在2001年的时候,我在论坛看过网友发的一张图片,就是国外有个人,背着一台台式机+15英寸球面显示器,走在户外。因为那个时代的笔记本电脑,相当昂贵,约合人民币1万多~2万元,奔三处理器。现在在街上,很难见到这样的场景,因为大部分人都使用手机上网。然而,对于开发者,这个场景可能会再次重现。……

固定链接 | 发表评论(2) | Trackback(0)

https,想说爱你不容易
2019年04月27日 09:33

如果一个博客,一两个网站都启用https,影响不大。https,整页加密传输,防劫持,好看,跟得上趋势。但是对于多站点、多二级域名的项目,当达到50~100个以上的域名/二级域名,那么https的管理(包括安装、续期、定期检查),无疑是一场灾难,占用很多服务器资源和维护时间。这也是为什么我尽量使用http,而且鼓励使用http。……

固定链接 | 发表评论(11) | Trackback(0)

中国和美国的互联网技术、软件水平相比
2019年04月10日 07:43

昨天在v2ex看到这个帖子:https://www.v2ex.com/t/552910

我的回复:……

固定链接 | 发表评论(3) | Trackback(0)

JavaScript比PHP语句做得好的一个小细节实例
2019年03月31日 08:05

JavaScript这一种古老的语言,是目前唯一的网页前端编程语言,在2018年第1季度竟然排名为世界十大编程语言的第1名(新闻链接),这可能是由于JQuery的兴起。这个排名好像是受欢迎度、市场占有率,就像超级女声一样是通过投票的方式排名,但是排名不代表实力。在开发中,我个人感觉PHP很多方面比JS做得好,虽然语法几乎完全相同,PHP和JS之前我也写过几次对比(例如),它们在开发中的重要性,PHP应该在JS之前,PHP也比JS简洁很多。最近发现一个反例,这一点JS比PHP做得好。……

固定链接 | 发表评论(0) | Trackback(0)

开发中遇到的安全矛盾:URL超时的设置
2019年03月30日 09:03

通过给URL设置超时的时间,能使URL只要超过这个时间,则URL失效。超时的时间设置越短,则安全性越高,内部URL通常在30秒~180秒比较好,验证超时,时间是从服务器获取的。因为项目开发中,会涉及到用户的不同服务器的数据传输,为了避免一些服务器时钟误差的问题,不得不将超时时间设置为2小时。……

固定链接 | 发表评论(0) | Trackback(0)

程序开发中最尴尬的处境:就是不运行(更新解决方法)
2019年03月29日 09:35

昨晚写的在线更新的一个多行网址的验证功能,本来这个部分是比较简单的功能。语句明明都是正确的,但就是不运行,从昨晚临睡前到现在,为了处理这个问题,横竖左右各种办法来筛选错误所在,已经浪费了2个多小时,因为用的是top.abc.innerHTML,很难排查错误。以前遇到过很多次明明语句正确,就是不运行。要了老命了。……

固定链接 | 发表评论(0) | Trackback(0)

底层技术分享:PHP程序的代码如何加密
2019年03月29日 07:39

很简单,只需巧妙运用eval()函数,这个函数太重要了。方法是把源程序的字符在本机编写一个乱码器批量替换,在项目中做逆向还原,再被eval()函数调用。如果乱码太多的话,可能(可能性微小)会被某些杀毒软件报为病毒,为了避免这个问题,只需将一两个关键的PHP语句进行加密就足够

大多数的工程、成品源程序被解读是没有意义的,因为一是无法逆向还原开发现场的思路,二是解读程序有可能比开发程序花的时间还长。因此,加密与否,很多时候并不重要。……

固定链接 | 发表评论(0) | Trackback(0)

1 2 3 4 5 6 7

下一页 | 末页 (共7页)

王志勇:1980-09-26 (40周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2020年07月
2020年06月(16)
2020年05月(13)
2020年04月(18)
2020年03月(14)
2020年02月(15)
2020年01月(16)
2019年12月(11)
2019年11月(26)
2019年10月(25)
2019年09月(30)
2019年08月(10)
2019年07月(29)
2019年06月(30)
2019年05月(26)
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2020 auiou.com All rights reserved.
此Blog程序由王志勇编写 已经发布在Arsue