PHP数组函数array_diff()、array_merge()与数组操作符+

array_diff()函数是以值为判断依据,比如[code lang="php"use Libs\Helper;include '../vendor/autoload.php';$a = array 0 => '1761 => '1192 => '4183 => '1554 => '638);$b = array(1760, 9999, '8999');Helper::p(array_diff($a, $b));Helper::p(array_diff($b, $a));[/code输出[code lang="php"Arra[1] => 1[2] => 4[3] => 1[4] => 6Arra[1] => 9[2] => 8[/code同样,array_merge函数也是以值为判断依据进行合并... Read More

CEO公开邀请,这位「混蛋程序员」仍不为所动

出名要趁早,尤其在新人辈出的科技界。这个小伙名叫Dan Shipper,今年才24岁。但人家边学习边创业,一毕业就卖掉公司赚得盆满钵满。大二那年,他还被Ruby on Rails框架的创始公司CEO用公司博客邀请加入,一不小心上了Hacker News的头条。但是这哥们拒绝了。这就是Shipper卖给Pegasystem的Firefly官网Shipper拒绝了从宾夕法尼亚大学辍学创业的邀请,并不说明他是乖学生,他想留在校园的原因主要是:大学生活比较有意思,期末断掉电子设备通宵两天就可以过关,还有暑假可以全职创业,多自由在宾大,Shipper的专业是哲学系,虽然他5年级就开始编程。「对一个10岁的小孩来说,编程几乎是唯一可以养活的自己的生意。」Shipper编程的初衷,似乎一开始就很实际:技术只是实现功能的工具。高中时,Shipper开始给黑莓手机编应用。 第一个应用叫「FindIt」,是... Read More

七个对我最重要的职业建议(译文)

Nicholas C. Zakas 是全世界最著名的 JavaScript 程序员之一。两年前,他写了一篇长文,回顾自己的职业生涯,提到七个对他来说最重要的建议。我读完很受启发,决定做一点摘录。你可以先读下面的精简版,再去读全文。==============================七个对我最好的职业建议(精简版作者:Nicholas C. Zaka译者:阮一峰一、不要别人点什么,就做什么我的第一份工作,只干了8个月,那家公司就倒闭了。我问经理,接下来我该怎么办,他说"小伙子,千万不要当一个被人点菜的厨师,别人点什么,你就烧什么。不要接受那样一份工作,别人下命令你该干什么,以及怎么干。你要去一个地方,那里的人肯定你对产品的想法,相信你的能力,放手让你去做。"我从此明白,单单实现一个产品是不够的,你还必须参与决定怎么实现。好的工程师并不仅仅服从命令,而且还给出反馈,帮助产品的拥... Read More

PHP遭弃用!WordPress.com开源并转用Javascript

GenialX的话:文后有提到的桌面APP,可以用于在客户端上进行wordpress的内容创作。看起来很棒,不过貌似需要付费据外媒消息称,Wordpress母公司Automattic将完全重写Wordpress.com网站代码,并将此项计划命名为“Calypso”,代码开源并被托管于Github平台。此外,最新的wordpress.com放弃了php,转而启用Javascript,且通过API调用数据。以下为几个主要更新点1、如今的Wordpress.com为一个管理界面,完全独立于Wordpress的核心代码,且与其(wordpress核心代码)的交互方式类似于其他第三方接口、app。通过REST API来获取发布的内容、上传照片等数据。2、Wordpress.com 不再使用PHP+MySQL的组合模式,而是采用了Javascript语言及API调用模式。也就是说,当你访问word... Read More

利用xhprof(PHP)扩展进行WEB性能分析

最近工作有些小忙,经常加班,偶尔还会通宵。但最终热门微博“混合流”顺利地全量上线了。可是,从性能角度来说,还是有不少的提升空间的。下面说下利用xhprof来进行WEB性能的分析。安装xhprof扩展官方的文档胜过一切 => http://php.net/xhpro注意:如果想利用xhprof绘图,那么需要将系统默认禁用函数打开。[code lang="php";disable_functions = phpinfo,system,exec,shell_exec,passthru,proc_close,show_sourc[/code部署xhprof的运行环境经过上面的配置,在你跑过项目后,xhprof会输出一份报告文件。不过,这份文件的内容是被序列化的数组。所以,需要搭建一个能够读取该数据文件的WEB环境。这里给一份xhprof环境的代码:http://pan.baidu.co... Read More

如此代码 视觉震撼

最近被开发者微博圈刷屏的 Atom 编辑器插件,插件效果图如下如果来点音乐、再配上机械键盘的话,写代码是不是爽到爆呢?(脑补使用劲舞团 V3…最好准备好晕车药 :)Windows 7 安装cd .atom/packagegit clone https://github.com/JoelBesada/activate-power-mode.gicd activate-power-modapm instalMac 安装编辑器安装sudo brew install Caskroomcask/atom #OS X 10.11.不支持通过命令行安装&可通过下载 DMG 文件安装atom-install shell commancd /Users/$yourname/.atom/packagegit clone https://github.com/JoelBesada/ac... Read More

PHP 7来了,那么PHP 6去哪儿了呢?

PHP7 来了,那么 PHP6 去哪儿了呢?PHP7 简介PHP7 是 PHP 编程语言全新的一个版本,主要在性能方面获得了极大的提升。官方的文档显示,PHP7 可以达到 PHP5.x 版本两倍的性能。同时还对 PHP 的语法做了梳理,提供了很多其他语言流行的语法格式。难能可贵的是,做了如此大的改动,PHP7 的兼容性还是非常好的。对于绝大多数的应用来讲, 可以不用做修改即可迁移到 PHP7 版本。PHP6 版本去哪儿了?谈到 PHP7,大家肯定会问,PHP6 版本去哪儿来呢?这个说来话长。早在 2005 年的时候,PHP 社区发起了 PHP6 的项目,这个项目旨在为 PHP 提供完全内置的 unicode 的支持。但由于种种困难,该项目最终于 2010 年取消。虽然 PHP6 这个项目取消了,但大量的功能已经在 PHP5.x 版本中得以实现。这里面最重要的就是 OOP 方面的提升。这也帮... Read More

国内外知名科技博客

1、软件街(http://www.softjie.cn/软件街-最新最全软件资讯共享平台。每天专注发布软件的最新版本更新信息,以及收录新出品软件,分享、推荐优秀软件、常用软件等。2、小众软件(http://www.appinn.com/小众软件,分享免费、小巧、实用、有趣、绿色的软件。3、天涯海阁(http://www.web20share.com天涯海阁是一个关注国内外创新互联网、移动互联网初创企业的博客。4、月光博客(http://www.williamlong.info月光博客,是一个专注于互联网和搜索引擎的知名IT科技博客,中国互联网博客营销书籍《名博是怎样炼成的》作者之一、新浪网2008年度十大IT博客之一。5、分享网络2.0(http://www.showeb20.com分享网络2.0是一个关注最具有Web2.0气质的早期创业项目的博客。6、36氪(http://www.36Kr.com... Read More

为什么千万不要重写代码?

程序员都有一颗工程师的心,所以当他们到一片新的场地想做的第一件事就是,将旧的一切推倒重来。是的,他们决不会满足于简单的增量劳动。或许这种微妙的心理定位可以解释:为什么程序员进入新项目组后宁愿丢掉旧代码重新写,也不愿意修修补补。他们认为旧代码简直一团糟。但是,事实上真是这样吗?你之所以认为旧代码一团糟,其实是由编程的一个基本定律决定的,那就是:写代码容易,读代码难。为什么你觉得旧代码异常混乱?因为读代码更难。这大概就是代码Reuse难以实现的原因。 这就是你组里的每个人都喜欢用不同的功能将分割的字符串转换成一个数组。比起猜测旧的功能是怎样实现的,重新写一个自己的功能要简单和有趣多了。作为这个公理的推论,你可以问问身边的程序员他们正在奋战的代码怎么样?「简直是一塌糊涂!」他们肯定会这样说。「我简直想推倒重来!为什么认为代码这么糟糕呢?「额,看看这个功能,竟然有两页长!完全不知道这些东西为什么... Read More

中国程序员如何去 Facebook 工作?

1、在Facebook,可以选择哪里工作?Facebook 在内地确实没有 Office ,但可以在https://www.facebook.com/careers/?ref=pf#locations 查询 Facebook 在全球的工作地点。下面是美国的工作地点。2、为什么要去Facebook工作?清新的空气、食物安全等生活品质因素车很便宜,硅谷的房价虽然贵,但对于 Facebooker 来说,购房的压力比北上广小和世界上水平最高的工程师一起工作Working on a product that over one billion people around the world us3、从哪里获取招聘信息?除了官网的招聘页面 facebook.com/careers,还可以去新浪微博关注@Facebook工程团队,他们会不定期发布招聘信息。此外,QQ 群、人人、微信、朋友圈也是重要的信息... Read More

Linux(CentOS)下开启FTP服务

环境:CentO安装FTP:yum install vsftp启动FTP:service vsftpd start(stop | status | restartFTP自启动:chkconfig --level 35 vsftpd o设置FTP权限(配置文件默认在/etc/vsftpd/vsftpd.conf关闭匿名登陆:anonymous_enable=N添加账户:useradd ftpadmin -s /sbin/nologin –d /www(初始进入的目录设置密码:passwd ftpadmi文章来源:胡旭个人博客 => 【原】Linux(CentOS)下开启FTP服务转载请注明出处,违者必究 Read More

生(iPad)命(pro)可贵 安全第一

双十一,总得干点什么?入手个iPad pro,体验还算是不错的。不过,谈到生产力,还是欠缺。有一次,在接到"任务"时,翻来覆去折腾2小时后,果断放弃,借了个windows继续(Mac 没在身边)。可是,居然网易"邮箱泄漏"。随着我的Apple ID也被盗取了,好吧~Mac iPhone iPad都被恶意锁住了。不过,这都不是事儿。随着重置密码后,iPhone 和 iPad被重新激活。Mac被设置了Pin码,只能跑到零售店进行维修。所以,安全还是很重要的。更可怕的是,有些问题是没办法避免的。还好有这意识,当时的重要密码都是被加了密的文件放到云里。iPad pro 买家秀苹果华贸零售店被加了Pin码的MaiPad pro使用体验键盘(smart keyboard)键长比较短,如果平时常用一些机械键盘,你会觉得smart keyboard用起来很不爽。但是,对我这样一直在用Mac键盘的人来... Read More

Vim 快捷键整理

一、移动光标1、左移h、右移l、下移j、上移2、向下翻页ctrl + f,向上翻页ctrl + 3、向下翻半页ctrl + d,向上翻半页ctrl + 4、移动到行尾$,移动到行首0(数字),移动到行首第一个字符处5、移动光标到下一个句子 ),移动光标到上一个句子6、移动到段首{,移动到段尾7、移动到下一个词w,移动到上一个词8、移动到文档开始gg,移动到文档结束9、移动到匹配的{}.().[]处10、跳到第n行 ngg 或 nG 或 :11、移动光标到屏幕顶端H,移动到屏幕中间M,移动到底部12、读取当前字符,并移动到本屏幕内下一次出现的地方 13、读取当前字符,并移动到本屏幕内上一次出现的地方 二、查找替换1、光标向后查找关键字 #或者g2、光标向前查找关键字 *或者g3、当前行查找字符 fx, Fx, tx, T4、基本替换 :s/s1/s2 (将下一个s1替换为s2... Read More

苹果iPad Pro评测:三大特点五大必买理由

苹果iPad Pro发布会62天后,iPad Pro终于发售了。而发售档期恰恰撞上了一年一度11.11购物狂欢日,这无疑又给大家增加了一个剁手的理由。本次iPad Pro首发地点包括中国大陆在内并不意外,继昨日在官网上提前预定后,今日在北京苹果各大Apple Store零售店也都展出了这款产品,并可以试用体验。目前在苹果中国官网上,iPad Pro零售价为5888元人民币(32G WiFi版)。还记得2012年4月库克说『你可以将烤面包机和冰箱混合,但是这种混合产品可能不会让用户高兴和满意。』,而iPad Pro似乎更像是这样的一款产品,除了更多尺寸显示屏幕外,还配有了键盘和触控笔,看起来有模仿微软Surface的意味。此外,iOS 9也从影音娱乐开始向办公型转变,不但增加了Slide Over和Split View分屏功能,还与众多软件厂商合作开发基于iOS 9的生产力工具软件。iPad Pro的确大的有点过分... Read More

Redis(PHP)常用操作

[code lang="php"class MyRedis private $redis;/** @param string $hos* @param int $pos*public function __construct($host = '10.102.1.8', $port = 6379) $this->redis = new Redis$this->redis->connect($host, $port);return $this->red/** 设置值 构建一个字符串* @param string $key KEY名称* @param string $value 设置值* @param int $timeOut 时间 0表示无过期时间*public function set($key, $value, $timeOut=0) $retRes ... Read More

高并发场景下的缓存使用误区

十一聚会,某谈及人生理想。我要的是“地位,身份和爱情!”,其实就是金钱,面子和美女。O.正文9月份,连续两天(AB两天)线上出现业务故障,redis监控曲线瞬间上涨。业务场景:一千万UV / 日redis监控曲线(修改图片好麻烦,曲线意会下吧~)redis日志业务代码[code lang="php"(self::$_debug) ? Helper_Log::writeApplog('newFeatureOfMixedFeed', "初始化配比数据.") : null;if(self::$_redisDb == null) self::$_redisDb = new Comm_Redisdb(self::REDIS_SERVER);/** 判断是否有缓存数据 **$total = self::$_redisDb->lSize... Read More

恢复删除文件的方法

真的是很巧,正在浏览博客时,一个同学问我如何恢复PC被删除的文件,而恰恰正在浏览的这篇文章提到的方法是她在网上找到的。看来比较实用,贴出来在我们平常使用电子设备时,总时不时地手贱误删文件或者电脑借给别人用了别人却把你的东西删了而且还“体贴地”清空了回收站,这时我们就想要恢复文件,现在给你一颗后悔药,让你找回错删文件。PC错删文件恢复加入在PC上误删文件还清空了回收站,且没有备份,可以这样做。快捷键“Win+R”,打开Windows的运行命令窗口,输入“regedit”进入注册表中,找到“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\DeskTop\NameSpace\”,在右边空白处单击右键,新建“项”,并重命名为“{645FFO40-5081-101B-9F08-00AA002F954E},接... Read More

我用 Go 语言做了一个红白机模拟器

最近我编写了一个 FC 模拟器。制作这样一个模拟器主要是出于兴趣以及为了从中学习 FC 的工作原理。在这个过程中我学到了很多有趣的知识,于是写下这篇文章同诸位分享我所学到的内容。由于相关的文档已经有很多了,所以这里我只打算讲述一些有趣的特性。请注意,接下来都将是些技术方面的内容。图1 我的模拟器可以将画面录制成 GIF。这是我正在玩《大金刚》(Donkey Kong)的画面。CPFC 使用 MOS 6502(主频1.79MHz)作为其CPU。6502 是一枚诞生于 1975 年(距今已有 40 年之久了)的 8位微处理器。在当时这款芯片非常流行,不仅应用于 FC,还被广泛应用于雅达利 2600 & 800、Apple I & II、Commodore 64、VIC-20、BBC Micro等机器上。事实上,直到今天6502的修订版(65C02)还依然在生产。 6502 的... Read More

做程序猿的老婆应该注意的一些事情

今天来说说一位女青年的老公以及他们的事儿。如有雷同,纯属巧合。十一年前我和程序猿第一次见面,还是大一军训期间。我甚至不确定程序猿是否记得那是第一次见面。当时不小心装伪文艺参加了吉他社,想借一本吉他入门书,然后同在吉他社热心的海哥说他一同学有,就带着我去拿书了。于是我们第一次“见面”了,我只看见一个对着电脑,佝偻着背的背影……严重怀疑程序猿根本没抬头看一眼那个已经晒得像反转熊猫一样的妹子,因为他递过来书以后,又迅速投入到了电脑的怀抱,相对应的,我也不记得他长什么样了。我从来没有读懂过这个上天用那个背影给我的预警,于是堕入了一生的深渊。当时的我对计算机、程序猿当时一无所知,只知道这些计算机系的,天然呆居多,玩游戏,不学习,民工气质愈演愈烈,穿着黄色民工拖鞋上课,在食堂和民工大哥们一起吃饭,头发不洗戴帽子遮,没衣服穿了从脏衣服堆里找,喝水的杯子长时间没刷竟然被蜜蜂筑了巢,天天拆别人电脑、烧别人电... Read More

2015年6月份学习计划

毕业设计作品娴熟的框架(ThinkPHP项目的构架(分布式数据库[MySQL]、数据库优化、高负载[Crontab]热门微博底层架构rsynmemcachenginredi 工具oh-my-zstcpdum其他nodejphp extension (C语言文章来源:胡旭个人博客 => 【原】2015年6月份学转载请注明出处,违者必究 Read More

抓包工具tcpdump的使用说明与官方文档

一直在Linux下开发的人一定会用到tcpdump,下面就是关于tcpdump的使用方法说明tcpdump的选项-a —— 将网络地址和广播地址转变成名字-d —— 将匹配信息包的代码以人们能够理解的汇编格式给出-dd —— 将匹配信息包的代码以c语言程序段的格式给出-ddd —— 将匹配信息包的代码以十进制的形式给出-e —— 在输出行打印出数据链路层的头部信息-f —— 将外部的Internet地址以数字的形式打印出来-l —— 使标准输出变为缓冲行形式-n —— 不把网络地址转换成名字-t —— 在输出的每一行不打印时间戳-v —— 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息-vv —— 输出详细的报文信息-c —— 在收到指定的包的数目后,tcpdump就会停止-F —— 从指定的文件中读取表达式,忽略其它的表达式-i —— 指定监听的网络接口-r —— ... Read More

Git与SVN的使用感受

这是一篇上网一搜一大堆的文章,所以,重在个人感受(不说具体实现,当然现在也不懂!)。工作环境需要,分别接触了Git和SVN版本控制工具。接触不久,尽管这两种工具都不是很熟悉,目前仅能达到满足简单的工作需求(有时还需要查引擎)。但,还是有一些感受以记录。分支(branches)与里程碑(tagsGit的分支和里程碑很有趣和简单,可以快速地在当前工作区切换不同的分支和里程碑。SVN的分支和里程碑本身就是一个目录(拷贝),目录下分别有一个.svn的文件夹以存储版本信息。所以,SVN切换分支很麻烦,需要切换工作区(每一个工作区只对应服务器的某一分支)。而Git却很方便。集中式与分布式这个事情和上面的分支和里程碑是有重叠的地方的。Git采取的是分布式。简单的说就是每台checkout过代码的笔记本上都有着一个完整的代码库。而SVN却是集中式的,只有一个是代码仓库,就是服务器。所以,Git可以本地提交,SVN需联网提交。... Read More

五个编程谬论

我是一名黑客。在我还就膝盖那么高的时候就开始用一台古老的 Commodore 64 写代码了。直到今天,也没有什么比戴上耳机,破解东西更让我着魔的了。所以在我创建我的第一家企业时,我就已经知道了很多有关于编程的事情。是不是谬论,且听我下面一一道来1. 代码很重要我在很多地方工作过,发现成功之中隐藏着这样一种普遍现象:早期的代码看上去像是一群程序猿喝醉之后写的。这听上去似乎有悖常理,那是因为你得竭尽全力让企业成长,所以就没有时间去追求软件的完美。从另一方面讲,失败的企业,却会花很多很多时间来修正其代码库。打个比方:如果你是一个寿司师傅。作为你工作的一部分,你收集了一套绝版的刀具。你花时间花精力来完成收藏,它们提升了你作为一名厨师的竞争力。但无论你每天用多少时间去打磨你的道具,你就不是一个铁匠。你的工作依然是做寿司。你虽然拥有了世界上最好的刀具,但如果做不好寿司,那么你的客户服务就是差评。你... Read More

2014年度回忆与总结 – 创业

2014年,我在上大学(大三下-大四上)。依稀记得确实做了几件事,确实心思发生了比较大的转变。创业“不屑于”当前现状的情况下,我有了创业的想法。创业的项目是一个垂直(自动化)门户网站。就这样,一个同学也认同这个想法,再拉进来一个同学。三个人,开始了我们(其实,就是两个人)的创业之旅。和父母聊了自己的想法;和同学开始计划创业进度;自己开始着手设计并搭建网站;同学开始收集相关资料等等。就这样,开始了。之后,我们有了公司(沈阳晨信网络科技有限公司)。当然,也买了办公桌,在学校附近租了房子。但是,好景不长。由于我们自身的不成熟,只好放弃创业的想法。和同学聊了心里话,退回了房子,我收回了公司的全部股份。各自开始谋求自己的路。这件事,整整持续了6个月有余。最后,懊悔和伤心免不了的。不过,不管怎么说都是好的。我得到了一些不同的想法和态度。做事情要有一个长远的规划和准备。问问自己有什么?缺少什么?谁能弥补缺少的东西?... Read More

MySQL数据库优化笔记

视频地址:http://www.imooc.com/video/3688 可以从以下几个方面进行优化 硬件系统配置数据表结构SQL语句和索引一般来说,上述方式的实现成本(自上而下)由高到低,而效果(自上而下)由低到高。使用慢查询日志使用系统的慢查询日子来监控有问题的SQL。show variables like 'slow_query_log'set global slow_query_log_file = '/home/mysql/log/slow_query_log.log'set global log_queries_no_using_indexes = onset global long_query_time = 1慢查询分析工具pt-query-digest如何发现有问题的SQL查询次数多,且占用时间长的(通常为pt-query-digest分析中前几个SQL);IO大得SQL(... Read More

WEB开发之前端与后端通信解决方案篇

每天都得找点乐子,今天的乐子就是“WEB开发中前端与后端通信的解决办法”。首先,说一下“神圣”的需求。假设,我们面前是一个报名活动的页面。所有的逻辑都发生在这报名按钮上,下面是导图做法一按钮是一个链接,当我们用可爱的手指轻轻抚摸他时。他会告诉浏览器,我是一个链接。之后,浏览器被跳转到一个新的连接上。与此同时,后端会执行当前的逻辑,渲染对应的WEB页面。这种做法很糟糕1、用户体验不好,跳转页面的吞吐量比较高,加大用户的等待时间2、同时,也加大服务器的负担;3、代码冗余度较高,需要写若干个前端页面和后端方法。做法二那么,用AJAX来实现前后端的通信(异步)也许是个不错的做法。既然,谈到通信,那么必定要有个标准。那,标准是个什么东西?举个例子(秒懂!哈哈公认的标准脸型: 不符合标准的脸型所以,你知道。如果程序没有标准,是一件多么令人“恼怒”的事情。需要两个PHP类库标准接口[code lang="php"... Read More

CI框架随记

[code lang="php"1、在讲解文件所在目录方面的问题时applicatio|-----cor|-----MY_Controller.phsyste|-----cor|-----Controller.ph思路一、目前在企业中使用比较多的框架有如下几种1、zendframework框架:此框架由zend公司开发并负责维护,入门比较困难一点,但是据说功能很强悍,属于一款偏重量级的MVC框架2、Yii框架:又称为 "易框架&qu3、thinkphp框架:是国人开发的一款框架,由于它的注释和使用文档都是中文,所以很受国人的喜欢4、codeigniter框架:简称CI框架,是国外一款流行的框架,跟前面的框架比较,ci框架是最轻量级的,也是最容易上手的二、我们选择这款框架来学习,主要有以下几点原因1、ci是一个轻量级的框架,关于轻量级,可从两方面来理解1、体... Read More

微信支付JSAPI开发中的问题

前言:这篇文章讲的是利用微信官方提供的JSPAI接口,实现微信网页支付。希望在看之前,要确认一下几件事情,否则会让您在解决问题是很费解。① 接口文档版本号是V3.3(在官方提供的PHP DEMO中的README.txt文件中查看。当然,也可以参考压缩包的名字(wxm-payment-biz-api218f8e.zip,我想官方不会把不同版本的文档压缩成一个名字吧!)来确认版本;② 微信支付PDF文档的版本为V3.3.7(如果上述版本对了,这步应该也是一致的,因为这两个文件是在一个包里);③ 该文章说的是JSAPI的开发;今儿是工作的第五个工作日。前两天在调整页面,后两天在调整微信支付功能。今天是周日,工作周的第一天。调了两天的微信支付(JSAPI:调用微信JSAPI接口实现微信网页支付功能),经过今天早上的一分钟“努力”解决,感觉很爽。下面说说我在开发微信支付过程中遇到的若干问题。第一天,... Read More