深度学习 & 机器学习之学习资源

内容来自互联网博客深度学习框架的一年如果我不得不一句话总结2017年,那将是框架的一年。Facebook使用PyTorch做了一个大飞溅。由于类似于其动态图构建Chainer提供,PyTorch得到很多的爱从研究人员在自然语言处理,谁经常要处理动态和周期性的结构是很难在诸如Tensorflow静态图形框架申报。Tensorflow在2017年已经相当成功.Tensorflow 1.0在二月份发布了一个稳定且向后兼容的API。目前,Tensorflow的版本是1.4.1。除主框架之外,还发布了几个Tensorflow伴随库,包括用于动态计算图的Tensorflow折叠,用于数据输入流水线的Tensorflow变换以及DeepMind的更高级别的Sonnet库。Tensorflow团队还宣布了一个新的热切执行模式,其工作方式类似于PyTorch的动态计算图。除Google和Facebook之外...阅读全文

内网穿透工具的原理与开发实战

在我国,由于网民众多,运营商无法保证为每一个宽带用户提供全球唯一的公网IPv4地址。因此很多用户会发现通过路由器端查看到的WAN端IP与百度“IP”关键词所得到的IP不一致,并且前者的IP为一个私有IP。而还有一些情况下,公网IP比较昂贵,企业虽然本身也持有少量的独立的公网IP,但是由于成本限制无法为企业内每一台主机都提供一个公网IP,或者内网并不是所有服务都需要暴露到公网中进行访问,那么企业有可能就会使用NAT技术将大量的内网IP通过一定规则映射到公网IP上。而最常见的其中一种技术就是NAPT,也叫“网络端口地址转换”。因为一般一个服务都是通过一个端口来提供,因此通过这种方式可以将特定的服务通过特定的规则开放到少量的公网IP上。阅读全文

那些年,我们追过的RPC

1974年冬,互联网大师 Jon Postel发表了RFC674:“Procedure Call Protocol Documents,Version 2”,尝试定义一种在包含70个节点的网络中共享资源的通用方法。在大师一生中编辑过的无数个RFC文档中,674属于并不突出的一个,但却拉开了RPC的序幕。也正是接下来我们故事的开始。阅读全文

作为10个月的Vim使用者心得总结

隐约记得对于Vim的使用,起始于2015年12月份底。当时,是处于Eclipse到Vim的过渡时期。所以,对于Vim的使用基本上是“婴幼儿”级别。偶然间,我看到了一位同事正在编码的屏幕。不需要触摸板或鼠标的操作,看起来是那么的自然,更是让我看得有些“眼花缭乱”。从那时起,才知道原来Vim可以这么cool(是不是很无知的赶脚?)。这十个月,经历了从小白到能够把Vim作为主“IDE”的过程。故在此和大家分享下本人在Vim的心得。从最基本的概念、快捷键到一些实用的插件的管理与使用。在此之前,曾在部门的例会上有做过分享(分享了一个多小时,估计大家都困了),PPT托管在了github.com/genialx/vimer 上,本文的内容也将基本按照着PPT的顺序。Vim的指令集之丰富、功能之强大真,以至于我这种“小白”来在会议上分享Vim可谓多么忐忑,: 为什么要分享Vim?这个问题很简单,但更重要。对于Vim,会有两种态度...阅读全文

PHP扩展开发入门PHP-CPP篇(未完待续)

在你使用PHP来解决一些事情的时候,可能会考虑亲手开发一个PHP扩展。以下是我能想到的驱使我开发PHP扩展的几点理由扩展PHP的功能在某些非常特殊的使用场景(比如数学,统计和几何等等)。相比于用纯PHP代码实现,提高PHP的性能和效率。利用自身之前掌握的另一种编程语言(对我来说是C++)来进行快速的开发。当谈论到选择建立PHP扩展的工具时,我们自然会想到两个不同的方法使用更接近PHP语法的工具,比如Zephir。使用更接近C/C++语法的工具,比如下文会提到的PHP-CPP。个人而言,选择第二种方式更为简单:C/C++是我入门编程的第一门语言,因此我一直觉得使用C/C++写一些更底层的模块更轻松些。PHP-CPP的官方网站也给出了一些为什么这么做的理由。安装与配置PHP-CPP发展迅速。在写这篇文章的时候,已经发布了0.9.1版本(两天前发布了0.9.0版本)。据文档描述,“为了迎接下...阅读全文

关于rsync工具的安装、配置与进行文件同步与备份的使用流程

安装linux yum install rsyn配置编辑文件vim /etc/xinetd.d/rsyn内容如下# default: of# description: The rsync server is a good addition to an ftp server, as it # allows crc checksumming etc.service rsyndisable = nflags = IPvsocket_type = streawait = nuser = rooserver = /usr/bin/rsynserver_args = --daemolog_on_failure += USERI创建配置文件touch /etc/rsyncd.con...阅读全文

Memcache内存管理之查看所有key方法

今天在做一个Memcache的session测试,但是在测试的过程中,发现Memcache没有一个比较简单的方法可以直接象redis那样keys *列出所有的Session key,并根据key get对应的session内容,于是,我开始查找资料,翻出来的大部分是一些memcache常用命令等,但是对列出key的办法,讲解却不多,于是来到google,找到了一个国外的资料具体的内容我套用我的测试环境中,操作如下1. cmd上登录memcach telnet 10.73.13.155 1722. 列出所有keySTATS itemSTAT items:1:number 4143STAT items:1:age 3651STAT items:1:evicted 2STAT items:1:evicted_nonzero 2STAT items:1:evicted_time 2...阅读全文

提高PHP编程效率你得这么做

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’] 的速度是$row[id]的7倍。3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。5、注销那些不用的变量尤其是大数组,以便释放内存。6、尽量避免使用__get,__set,__autoload。7、require_once()代价昂贵。...阅读全文

PHP中9大缓存技术总结

1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存Ob_start(******要运行的代码******$content = Ob_get_contents();****将缓存内容写入html文件****Ob_end_clean();2、页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也可以利用类似ESI之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存(ESI技术,请baidu,此处不详讲)。该种方式可以用于如商城中的商品页;3、数据缓存顾名思义,就是缓存数据的一种方式;比如,商城中的某个商品...阅读全文

恢复删除文件的方法

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

我用 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 的...阅读全文

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

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

抓包工具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 —— ...阅读全文