分类文档:编程 221篇

劳累中的开发(附截图)
2019年02月09日 11:29

标题本来是想写为“半醉中的开发”,一时找不到合适的词语来形容这种状态,因为已经连续开发了2个多月,现在常常坐在电脑前写程序,没多久就开始发困,注意力很难集中。程序开发中需要对该项目记忆非常多的东西,比如很多的关联、思路,有些关联、思路很难用笔去记录,全凭记忆力,程序开发的工作量也是巨量的。这种状态下,会记不住很多东西,以至于我多次对自己的记忆力产生了怀疑,在几年前还很少有这种问题。

年轻时,有记忆力,却没有合适的项目;如今找到了奋斗的目标、项目,记忆力好像在明显减退。……

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

项目中的2个算法小集锦
2019年02月06日 11:29

在Eonval项目的开发中,字符串的处理和算法,比数据库关联、数据库设计要简单得多,这样的算法在程序项目中多得不计其数,一个项目下来,可能会遇到几百个这样的算法。尽量地使用数组、strpos()函数来代替循环程序,可以大大提升程序的效率。

比如在项目中,设定数值1、2、3分别代表的是语言:en、cn、tc。en为英语,cn为简体中文,tc为繁体中文(Traditional Chinese)。……

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

底层技术分享:UTF-8/ANSI编码的混用方案终于完成(亦可拟UTF-8编码)
2019年02月01日 13:26

实现这一功能,以前想得太难,其实比较简单。开发中发现,PHP5(及以上的版本)对于UTF-8、ANSI等编码的转换、调用,很完美,所以一个站点完全可以多种编码混用。一个中文字符,在数据库中,UTF-8编码占用3字节,GBK(ANSI)编码占用2字节,因此对于中文页面,ANSI编码可以提高20%~30%的性能,节省相应的流量。

对于个人空间的程序,流量大的网页是博客、微博。所以在将要开发的独立微博Eachval项目,将支持UTF-8、ANSI编码的切换,微博主可以用UTF-8编码,也可以切换到ANSI编码。(为什么在开发初期就一定要支持这个功能?因为这个功能关联的数据库太多,最好一次做好,否则将来改起来工作量不可估量。)……

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

0-100,随机取10个数的和为100的算法(后续补充2,彻底解决的方案+效率)
2019年01月24日 12:27

有人说从事程序设计会短命(缩短寿命),我觉得确实有一定的道理。因为程序设计,工作量是巨量的,更多地是要花大量时间推算出很多的算法,如果不去推算,则无法完成任务。这种深度思考已经比别人大大提前消耗了精力,容易用脑过度,夜里一旦思考这些复杂的问题,容易睡不着,使褪黑素减少,所以影响健康。前一文我设想的算法,能够彻底解出来,由于暂时用不到,所以没有具体写出程序,因为完成这个程序至少得2-3小时。

我的这个算法的原理,就是先让程序自动列举出所有符合条件的10个数相加为100(不考虑排列顺序为66种),这时候时候可以不考虑10个数的排列顺序,消耗的服务器资源,循环次数大约仅为101*101。(其实不需要考虑循环多少次)……

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

0-100,随机取10个数的和为100的算法
2019年01月22日 07:48

昨天在v2ex看到这个提问帖,原帖 https://www.v2ex.com/t/528903?p=1

我的回复在第60楼,这么好的算法居然没人点赞,唉……因为在很多程序项目里,比如现在开发中的Feedval,里面都会有大量这种数学算法,几乎每天都要去解决,只是像这样难度的算法会少一些,解这种题已经成为习惯,因为这是平时的工作必需的,否则无法完成任务。……

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

程序设计大学报什么专业?
2019年01月23日 09:36

前些天在v2ex看到这样的提问。个人觉得,完全可以报和计算机没有关联的专业,什么专业都可以,都能用得上。因为原因1,我认识的朋友、同学,学计算机专业,虽然是科班出身,但是大部分人都不去从事程序设计,想一想就知道有多累。原因2,战斗在第一线的程序设计者,往往不是科班出身,实际的工作,编程的工作量是巨量的。原因3,只要有人给你讲最有用的底层真东西,真的只要3个月,甚至1个月就能成为专业的程序设计者,因为实战项目里的技巧,大多不会出现在书本上,而要靠摸索和积累。经过几个项目的实战,就能渐渐入行。

和程序开发相关度最高的专业是英语、数学,计算机专业的课程较难。……

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

对编程需要的工具EmEditor已经达到重度依赖(有几个重要功能)
2019年01月19日 12:15

已经记不清从什么时候起,EmEditor成为我的唯一编程的代码书写工具。我是从2002年开始职业编程,印象中,好像2002年~2006年,一直使用Windows的记事本。这两者,有很大的区别。记事本虽然也可以完成所有的编程,Win98的记事本还好用,但是从Windows 2000之后,系统自带的记事本有个bug,就是有时候,有一段文本,将窗口最大化后,原来的所有回行处,全部自动增加了回车符。

EmEditor完全可以替代记事本。EmEditor现在的最新版,达到15M。我使用的是2001年发行的3.28版本,体积只有1.06M,虽然这个老版本有少量的bug,但是可以克服。使用老版本软件的优点是体积小、运行快,这也是我一直深爱老版本软件、老版本系统的原因。……

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

底层技术分享:防止post提交数据不完全的最佳方案(更简单完美)
2019年01月11日 09:15

这是去年分享的相同功能的方案。但今天分享的这个方案,更加简单、完美。post提交数据不完全,表现为textarea发送之后,服务器只能收到一半数据,另一半数据会丢失,这种情况以前很少见到,但是这两年我突然发现了很多次。

出现这种问题,原因尚未十分明确,一般多和网速有关,比如服务器为国外服务器,当textarea里的字数超过一定字节,比如超过1000字节,或者大段的文章,网速慢时偶尔会出现此现象。……

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

昨天发现的一个IE6的bug(彩蛋)
2019年01月10日 10:16

我现在的开发中,主要用4种浏览器测试JavaScript的兼容问题:Firefox、Chrome、IE6、安卓手机自带浏览器。虽然IE6已经很少人用(而且存在致命的严重漏洞──能感染病毒),但测试中还是不可缺少。<input>表单的名字,大多数名字都可以。昨天由于这个bug,浪费了一个多小时的时间,因为程序怎么检查都是正确的。

当<input>表单的名字为case时,即<input name="case">,服务器端网页能正常获取它的值。但在客户端的JavaScript,需要做相关判断时,IE6浏览器无法获取这个值,即无法获取document.all.case.value。其它的浏览器,都能正常获取。……

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

最好的web编程语言?
2019年01月08日 16:01

前几天看到v2ex的一个老生常谈的话题,我挺欣慰的是超过半数的网友都给PHP投票,PHP曾被誉为“Web之王”。我从事了10年的PHP编程,在这之前的7年主要做ASP编程,今天我会给PHP投一票,仍然是我心中最好的web编程语言之一。因为在很多人眼里,哪一种语言的工资最高、哪一种语言最牛就是最好的语言。但在多年的实战者里,PHP却是很多人的最佳选择。

曾有人吐槽PHP使用花括号、条件语句中使用圆括号、变量名使用美元符号$,所以有人更喜欢Python的语法。个人觉得,PHP的花括号、条件语句中的圆括号,可能有点难省略,一旦省略,PHP的解释器将比较难设计这门语言。尤其是花括号,在复杂的大片的程序语句里,如果有很复杂的逻辑关联,如果该语言没有花括号,易读性大减。大片的程序语句里,花括号有助于分析程序里的逻辑关系,所以易读性大为提高。……

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

单机版和公用版程序的区别
2019年01月05日 08:29

之前很多次提到单机版程序。这2者,公用版的开发周期,是单机版的10~20倍以上,比如正在开发中的Feedval(RSS订阅器)就是这样的例子。

为什么会有这样大的差异?因为单机版,只是程序作者个人使用,程序都是按照最精简、最底层的方式编写。不会去写很多界面,有很多参数都是通过直接修改程序里的值,或者直接修改数据库。程序是按照作者的个人需求编写,作者知道哪种情形会出现bug,而会去避免那种情形。……

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

底层技术分享:离线版网页和缓存的程序设计思路
2018年12月22日 17:33

在前文《Webapp VS APP》,APP和网页的一个核心的区别是,APP本身是一个数据外壳,并且数据是缓存到手机中。APP和网页,两者各有优缺点。APP的优点是能离线访问,但缺点是缓存数据占用较大的手机ROM空间。这个缓存,对于运营者来说,能够节省大量的带宽,增加更多同时使用的用户。

网页,通常大多数站点不做缓存设置,只有图片、JS、CSS这些不常更新的文件,才能设置缓存。公共访问的站点,如网站、博客、论坛等等的动态页,由于更新较多,所以即使想做缓存设置,也没有意义。缓存设置,只用到一些个人版的网页,如某些数据的记录,笔记本、日记本这样的。……

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

HTTP和HTTP2(多路复用)的实际跑分测试
2018年12月11日 10:08

前天的测试中,除去图片的因素,HTML传输方面,HTTP在几次测试中都快于HTTP2,如文中的最后6次对比。

这一次,专门制作了一个网页,加载50个完全不同的小图片,50张图片总体积195K,我们来测试一下实际的加载速度,是否能够体现HTTP2的多路复用的优势?下列表格右边的“https的图片”,都是https的链接,测试网页也是https的链接。……

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

Ubuntu/CentOS+HTTP/HTTP2的速度测试
2018年12月09日 08:45

我的VPS前些天都转到了Ubuntu系统,整体真的有了明显的提升,每个单页的响应都加快了一点。一直没有做测试,昨天测试了一下,单页确实有区别。这个整体,指的是整体的稳定性,以前使用CentOS的时候,整体没有现在稳定,表现为单页加载之前,有时会多延迟0.5秒~1秒。使用Ubuntu系统之后,这种延迟的机率减少了很多。

在本次的测试中,重装了几次系统,用同一主机、同一页面测试,Ubuntu的单页比CentOS的单页快。在Ubuntu+Apache下,https和http的测试数据上,速度完全一样,实际访问起来也较难看出区别。但我还是感觉http应该会更快一些,毕竟有大量的hash加密的负载的因素,SSL的hash算法过于复杂。……

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

JavaScript和PHP、Shell(4)
2018年12月05日 07:55

项目中总是需要用到这3种语言,这是第4篇将这3种语言进行对比。在长期的实战中,从语法、易用性、易读性上来看,PHP在这3者中,相对是最简洁的。

JavaScript和PHP,一个是前端(客户端),一个是后端(服务器端)。PHP比JavaScript易学、易读。两者的语法,高度相似。先学PHP,再学JavaScript会容易很多,有一个很重要的原因是PHP能独立实现一个项目,较容易有成就感。JavaScript学了很久,都无法完成一个项目。(当然无法完成,因为JavaScript本身无法执行服务器端的任何数据操作。)……

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

Webapp VS APP
2018年12月03日 09:27

我从去年开始开发手机版网页、Webapp,当时是帮我同学从0写了第一个企业跟单程序,经过连续加班,耗时累计120小时左右(合26个工作日)。

Webapp和APP这两者的优缺点,是比较显而易见的。手机客户端软件,优点是不用输入网址,有利于平台推广;用户安装之后,会节约一定的流量,这是因为很多数据已经缓存到本机;客户端软件自身为一个数据外壳,加载新数据时,只获取相关的数据,而无需加载整个页面,因为页面已经由客户端软件的外壳提供。……

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

max-width不兼容IE6等浏览器的终极有效解决办法之一
2018年11月27日 09:14

虽然我现在开发的预览是以火狐、谷歌浏览器为主,但是IE浏览器仍然不能忽视。(10年前我开发网页是以IE6为主)

如果把网页的宽度设置为100%,加一个max-width:720px,这种方式对于兼容电脑、手机版网页的效果很显著,特别酷。但昨晚突然发现max-width在IE6下不生效,在网上查阅了很多资料,添加了相关语句后,发现IE6、火狐能生效,但是手机浏览器的宽度又无法适应为100%。……

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

PHP的短标签
2018年11月25日 09:42

Feedval RSS Reader的项目已经从0开始动工,预计这个项目的工作量约是Eachval的1/30以内。在项目写程序之前,我需要先写在线安装程序。以往的程序发布,我是把整站打成压缩包,用户解压缩就完成安装。而这一次,是使用在线安装的方式,优点是安装方便、用户体验好、安装后直接就是最新版本,开发者不需要在每次更新后再打压缩包。

新写的在线安装程序,第一步需要检测服务器环境。有一项是对short_open_tag的检测,它的功能是PHP的短标签。较早期的PHP3,开发者们大量使用<?php?>这样的标签。……

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

HTML VS HTML5;PHP7 VS PHP5;PHP VS PHP+Linux(shell)
2018年11月23日 07:31

从2000年底我家里买了电脑,并学习网页制作、HTML,到现在已经走过了18个年头。这些年里,一些技术、标准一直在变化。比如2001年时,当时有个18岁的人,很有兴趣地给我展示他用PHP3、ASP做的大型网站,并和我谈PHP4的话题,当时很佩服他的年轻有为。那时的PHP3是主流,最高版本为PHP4;如今的PHP版本,发展到了PHP7。

在10年前,PHP5是PHP的最高版本,至今还是很新的。……

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

静态HTML页→PHP→PHP+Linux(PHP+shell)
2018年11月15日 09:36

这是每个人的必经之路。静态HTML页,可以完成个人主页、展示网站,2-5年之内是网页的入门期,在此期间,FrontPage、Dreamweaver都是最好的网页设计、HTML代码学习软件。

一旦过了入门期,应该尽快适应用文本工具编写HTML源代码,彻底放弃FrontPage、Dreamweaver。……

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

底层技术分享:iframe+innerHTML VS AJAX
2018年10月13日 08:59

AJAX大约是13年前诞生的技术,它能实现网页不用刷新的交互功能,对于现在来说还是很重要的新技术。我从去年开始做webapp,需要用到一些不用刷新的交互页面。

调试中,例如一个<form>的表单,让它的target指向一个iframe,即<form method='post' action='abc'>……</form>。iframe的名称为abc,即<iframe name='abc'>……<iframe>……

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

方案分享:防止数据写入失败新方案
2018年10月10日 09:01

很多重要的数据写入都可以用这个方案。

计数器在以前很多年里不使用,不统计网站的访问量,是因为计数器会消耗一点服务器资源,因为每访问一次就要对硬盘进行一次数据写入。……

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

详解99.9%的网站没必要用https;http与https涉及的名誉问题;https安全吗?
2018年09月28日 15:55

简述:连CCTV、php.net的官网都还只支持http,国内还有很多大网站都以http为主,谷歌浏览器就贸然将所有的http网站标为“不安全”,会让人误以为有病毒。https只是提高了安全级别,http并非不安全。(2018-09-29 07:28更新)

前几天用最新版的谷歌浏览器(Chrome),测试自己的站点。发现所有的HTTP网址,已经被打上了灰色的“不安全”,会让人误以为有病毒,如下图:……

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

老版本VS新版本
2018年09月27日 09:24

昨天想调试HTML5,发现与HTML4不兼容,于是放弃HTML5的前台开发。因为目前的HTML4足够用,在各浏览器显示正常,如果改成HTML5,改动太大。如果将来再推出HTML6、HTML7、HTML8也需要跟进的话,同样会有庞大的修改工作量。

与此类似的是PHP开发,现在的PHP最新版本是PHP7,我的所有程序仍然是运行在PHP5下,因为那些新特性基本都用不到,除非有某个特定的内置组件,只有PHP7支持,这时候主程序仍然是运行在PHP5下,然后再架设一个PHP7的VPS来分担新功能、远程调用。……

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

UTF-8、HTTPS原来都是浮云/兼谈新款手机
2018年09月23日 11:18

关于UTF-8

在某种特定环境下,我需要登录Gmail、Adsense的页面、查询网站的收录数,现在唯一能登录的方法只有用远程的Linux VPS主机,用VNC连接远程桌面,因为从今年开始17(隔开)23端(隔开)口在国内被封(隔开)锁,自建的威(隔开)P(隔开)N都已经全部失效,XP系统下又无法用SS。……

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

为什么写技术
2018年09月23日 09:05

将近一年没有更新博客了,积累了很多话要说,昨天上午一口气写了4篇。本来还有三四个话题要说,昨天差点发了第5篇。

为什么会写技术的话题?因为从2002年至今这十几年的程序开发的生活中,每经历一个400小时以上的开发周期,都会有很多感触,实际的作战场面远比博客文字要血腥10倍、20倍以上,有些复杂的算法有时要推算一两天才能得到一个正确的公式,整天盯着电脑屏幕来推算。每次写程序时,电脑都至少会开十几个、20几个窗口,光是这些窗口就时常令自己感到眼晕。(这些窗口的类型有:浏览器窗口5-8个,文件夹窗口5-8个,文本工具窗口5-8个,Xshell、Xftp各1-3个,图片窗口1-3个,Photoshop窗口1个。)……

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

暂时放弃了开发VPS面板的想法
2018年09月22日 10:20

前年开始了VPS面板的开发,用PHP+NoSQL的构架。一转眼,整整2年过去了,当时在本地用虚拟机,在CentOS, Debian, Ubuntu这3种系统的10多个版本中调试了一个多月,比如CentOS 5.3、CentOS 6.7、CentOS 7.0,Ubuntu 12、Ubuntu 14、Ubuntu 15等等。

原以为是个小项目,也许一两个月内能完成。结果,调试了一个多月,仅在Linux下判断系统的类型,修改相关文件的权限,网页都还没有写出来。这些调试里,遇到了很多种不同的条件,对这些条件的处理需要大量的构思,所以花了很多的时间。……

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

速度是永恒的主题
2018年09月22日 08:39

经过10多年,当年盛行的Blog,现在已经不到25%。或许是因为维护麻烦,维护成本高的原因吧。卖出了一个广告,正好够域名、空间5年的费用,这是博客生存的根本。但实际在博客上花费的时间和精力,远远超出这些收益。

我经常查看自己站点的速度,因为没有使用MySQL,所以很多站点能够顺利运行在较廉价的空间,现在的VPS空间分布:……

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

Nginx与.htaccess
2016年08月24日 07:25

本文通过Nginx与Apache的不同,讨论.htaccess。最近开始测试Nginx,查阅了很多Nginx的网页,可悲国内太多文章是转来转去,甚至有很多是没有经过验证的、错误的。经过测试,Nginx实质上并不像Apache一样支持.htaccess,也就是说实质上目前并不支持.htaccess。而是目前的Nginx,直接支持Rewrite。

Nginx使用Rewrite的方法,网上有2种,一种是在/etc/nginx/nginx.conf文件里的站点设置server{}里写上include …….htaccess语句,第二种方法是同样在server{}的位置,直接写上Rewrite的语句。实际上,这两种方法是同一种。……

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

狂做好事,消除烦恼
2013年05月15日 10:38

如果一个人狂做好事,一定会使心理更健康,因为活得心安理得。狂做好事,也能真正消除很多的烦恼、焦虑、沮丧,而且能让心灵得到真正的提升。做好事,不必刻意留名,功与过都会记录在每个人的心灵里,它永远会跟随着你。

……

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

1 2 3 4 5 6 7 8

首页 | 上一页 | 下一页 | 末页 (共8页)

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

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

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

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写