- 博客(91)
- 资源 (1)
- 收藏
- 关注
原创 C++ lambda
C++11 的 lambda 表达式规范如下:[capture](parameters) mutable exception attribute ->retury-type {statement}其中, mutable 修饰符说明 lambda 表达式体内的代码可以修改被捕获的变量,并且可以访问被捕获对象的 non-const 方法。exception
2016-08-09 07:56:25 345
原创 python map, reduce, filter 函数
(lambda x: x)("hi")(lambda :2**3)()(lambda x: x % 10)(123)map(lambda x: x + x, "abcde")map(lambda x, y: x + y, range(0, 8), range(0, 8))map(None, range(3), range(10, 13))b = map(lambda x:
2016-08-09 06:45:52 324
原创 Python dis 模块初步使用
Python 代码先被编译为Python字节码后,再由Python虚拟机来执行Python字节码, Python的字节码是一种类似汇编指令的中间语言, 一个Python语句会对应若干字节码指令,虚拟机一条一条执行字节码指令, 从而完成程序执行。Python dis 模块支持对python代码进行反汇编, 生成字节码指令。先来一小段代码:In[6]: def te
2016-06-14 02:49:35 7055
原创 语法分析的基本概念
语法分析器处理有词法分析器转换生成的程序, 从语法分析器的视角来看, 输入的程序是一个单词流, 其中各个单词都标注了语法范畴, 即词类。 如果语法分析器确定输入流是一个有效程序,它将构建该程序的一个具体模型, 供编译的后续各阶段使用, 否则,语法分析器将向用户报告问题和适当的诊断信息。 对语法分析器来说, 首要职责是识别语法, 即确定被编译的程序在程序设计语言的语法模型中是否是一个有效
2016-06-11 23:32:47 1286
原创 算法导论中快速排序的三步分治实现
解析过程,以后再补充。import randomdef partition(arr, l, r): x = arr[r] i = l - 1 j = l while j <= r - 1: if arr[j] <= x: i = i + 1 arr[i], arr[j] = arr[j], a
2016-06-06 23:03:28 338
原创 语义和语法结构之间的关系
根据语法分析的难度, 可以为所有的上下文无关语法划分一个层次结构, 最常用的即: 任意CFG, LR(1)语法, LL(1) 语法, 正则语法(RG)。相比LR(1) 或 LL(1), 任意CFG需要花费更多的时间进行语法分析, Earley 算法可以在O(n**3) 的时间内解析任意CFG, n为输入流中的单词数目, 相对低效。LR(1) 包含了无歧义CFG的
2016-06-06 22:44:56 3095
原创 编译器学习--文法的类型
文法的类型一个文法G[S],S为启始规则,如果它的所有规则符合形如:a=>b其中a和b都是G[S]文法的符号串,但a中至少要有一个非终结符,这时G[S]文法是短语文法。G[语言]为例“宾语张三=>名词张三”是短语文法的规则,“张三编写=>名词张三”则不是短语文法,因为“张三”和“编写”都是终结符规则左则没有非终结符。我们可以看出短语文法是对规则做了一些限制后形成的,下面的文法是对短语文
2015-01-15 21:27:21 696
原创 python 处理 xml
#!/usr/bin/env python# encoding: utf-8from xml.etree import ElementTree as treexmlstr = """ hzj man kiki female """ def print_node(node, searc
2014-09-29 04:57:50 566
转载 Red Hat发布Atomic项目
在今年四月,Red Hat发布了Atomic项目。Atomic是一个用于运行Docker容器的原型系统。该举措是Red Hat针对行业中所反映出来的、对CoreOS的兴趣的一种回应,CoreOS是一个基于ChromeOS之上的用于托管Docker容器的系统。Atomic项目并不是为了构建另一个操作系统:Red Hat已经有了RHEL、 Fedora 以及现在的CentOS,再鼓捣第四个操作
2014-09-22 00:39:16 650
原创 java 线程交替打印1-100值
package javatest.thread;public class ThreadTest{ private static int state = 1; private static int num1 = 1; private static int num2 = 2; public static void main(String[] args) { final Threa
2014-09-20 21:17:44 1128
原创 python socket 编程
服务器端 #!/usr/bin/env python# encoding: utf-8import socketimport sys# import threading HOST = 'localhost'PORT = 8888try: clientsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)ex
2014-08-21 02:05:21 598
转载 C++14标准已获通过
8月18日,C++标准委员会召集人Herb Sutter发表了一篇博客《We have C++14!》。Sutter宣布,经过投票,C++14标准获得一致通过。草案文档经过一定的文字润色和修正之后,将在年内提交给ISO作为正式的C++标准发布。C++之父Bjarne Stroustrup写道:“C++14按时交付了,主要的编译器提供商也已经在提供相应的实现。真是太棒了。对于想把C++当
2014-08-21 01:58:08 680
转载 Python 代码性能优化技巧
Python 代码优化常见技巧代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要消耗 80% 的工作量。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。改进算法,选择合适的数据结构一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的改进
2014-08-17 06:09:55 531
原创 阅读 Nginx 源码
阅读 nginx 源码Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,nginx [engine x]是Igor Sysoev编写的一个HTTP和反向代理服务器,另外它也可以作为邮
2014-08-17 01:25:27 850
转载 Firefox 31发布,包含了ECMAScript 6的新特性
Mozilla发布了Firefox 31。这个版本包括了ECMAScript 6的新特性、恶意文件检测以及为游戏开发者提供的一些新特性。ECMAScript 6是ECMAScript标准的下一个版本,代号“Harmony”或“ES.next”。在文章《Firefox 31开发者指南》中,Mozilla团队列出了JavaScript方面的更新。这些改动是根据ECMAScript 6特性的
2014-08-16 23:38:10 817
转载 Oracle宣布了针对Java的Valhalla项目。
Oracle宣布了针对Java的Valhalla项目。这是一个实验性OpenJDK项目,用于开发需要更改Java语法以及VM层支持的主要的Java新特性。Valhalla项目负责人Brian Goetz强调,该项目尚处于早期实验阶段,社区不应该期望任何Valhalla技术会成为JDK 9(计划在2016年发布)的一部分。该项目与一些现有的OpenJDK项目,如Lambda项目和DaVinci Ma
2014-08-11 00:53:42 854
原创 python yield
在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。任何这类的对象在Python中都可以用for循环或其他遍历工具迭代,迭代工具内部会在每
2014-08-10 21:55:02 652
原创 Django 安装与新建项目
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.Developed by a fast-moving online-news operation, Django was designed to handle two chal
2014-08-09 23:12:56 730
原创 python 之 MySQLdb
下载 http://sourceforge.net/projects/mysql-python/ http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz
2014-08-09 19:00:49 477
原创 python 发送邮件
# encoding: utf-8from email.mime.text import MIMETextimport smtplib# server confhost = "smtp.qq.com"user = "qs9816"password = "mypassword"postfix = "qq.com"mail_to_list = ["qs9816@qq.com"]
2014-08-02 16:46:29 599
原创 python 字符串 的 join 方法 与 split 方法
>>> kv = {'a':'aa', 'c':'cc', 'b':'bb'}>>> kv{'a': 'aa', 'c': 'cc', 'b': 'bb'}>>> ";".join(kv)'a;c;b'>>> ";".join("{0}={1}".format(k, v) for k, v in kv.items())'a=aa;c=cc;b=bb'>>> ";".join("%s=%
2014-08-02 07:31:31 1127
原创 python 可变参数的一个陷阱
>>> def append_if_even(x, lst = []): if x % 2 == 0: lst.append(x) return lst>>> append_if_even(3)[]>>> append_if_even(4)[4]>>> append_if_even(6)[4, 6]>>> def new_append_even(x, lst = None)
2014-08-01 21:04:36 532
转载 TypeScript编译器性能提升
TypeScript团队正在构建一个新的、轻量级的编译器内核,用来取代现有的编译器。初步结果显示,其性能比现有的编译器提升了高达5倍。新的编译器内核起初是作为一项实验,但初步结果促使团队将它发展为新的TypeScript编译器和语言服务:一旦完成,新编译器应该会实现对现有编译器的“可插入式兼容(drop-in compatible)”。其目标不是新的编译器功能,而是更简洁的编译
2014-07-31 15:49:37 1111
转载 Reddit月浏览量从百万扩容到十亿的陷阱和教训
伯乐在线导读:Reddit[1]是一个社交新闻网站。用户可以将互联网上搜集或原创的图片或材料以帖子形式发布于网站上。而后其他用户可以投票,投票的结果将作为帖子排名的依据。Reddit 网站的第一位领薪雇员杰里米·埃德伯格在RAMP[2]讨论会上做了一次出色的演讲 ,他教给我们很多关于如何创建一个成功的社交网站。这儿可以看到视频。杰里米借用了(宗教里对比)罪恶和美德的方式来总结经验教
2014-07-31 15:41:00 717
转载 CoreOS 发布了第一个稳定版本
在经过近一年的测试后,CoreOS终于发布了第一个稳定版本。对于这个项目来说,这是一个激动人心的里程碑。CoreOS的发布公告说道:自从2013年8月发布第一个alpha版本以来,CoreOS经历了191个版本在成千上万的服务器上进行alpha和beta测试支持10个以上的平台CoreOS是一个基于Linux内核的轻量级操作系统,它的目标既不是桌面系统,
2014-07-31 15:29:44 555
原创 查看主板支持最大内存的方法
运行--输入cmd,打开命令窗口,再输入wmic memphysical get maxcapacity然后按回车键,得到的数字是以千字节为单位的,我们再把得到的数字除以1024再除以1024,也就是大概100万才行,比如得到的是16777216 K字节,那么除以100万左右,大概就支持16G的内存,这个是指物理内存,那么我们想扩展内存的话,就可以放心的去选购而不用害怕系统不支持而浪费
2014-07-20 21:41:09 1334
原创 C++ 输出流迭代器
#include #include #include #include #include #include #include #include using namespace std;void display(vector& v, const char* c);int main() {// vector v;// string s;//// while
2014-07-08 12:47:17 542
转载 静态库与动态库
C++静态库与动态库这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非
2014-07-07 22:32:44 427
转载 深刻理解Python中的元类(metaclass)
深刻理解Python中的元类(metaclass)译注:这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是e-satis同学给出了神一般的
2014-06-27 07:39:53 456
原创 java配置dbcp连接池
Java连接池正是数据库连接池在Java上的应用。——我们知道,对于共享资源,有一个很著名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配﹑释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。
2014-06-23 13:13:04 681
原创 数据库连接池
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连
2014-06-23 12:47:47 438
原创 使用 Jackson 库生成解析 json
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。
2014-06-17 04:10:07 687
转载 原子操作 vs 非原子操作
在网上已经有很多有关介绍原子操作的内容,通常都是注重于原子读-修改-写(RMW)操作。然而,这些并不是原子操作的全部,还有同样重要的原子加载和原子存储。在这篇文章中,我将要在处理器级别和C/C++语言级别两个方面来对比原子加载和原子存储与它们相应的非原子部分。沿着这条路,我们将弄清楚C++11中“数据竞争”这个概念。共享内存中的原子操作是指它是否完成了一个线程相关的单步操作。当一个
2014-05-26 11:54:10 869
转载 C\C++代码优化的27个建议
1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经常使用的代码不需要做较多优化考虑(或者完全不优化)。这里有句俗语:让经常执行的路径运行更加高效,而运行稀少的路径正确运行。
2014-05-26 11:22:19 437
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人