转:http://www.jianshu.com/p/dcf83643deeb Python 中有好几种容器或者序列类型:list tuple dict set str,对于这些类型中的内容,往往需要一种方式去遍历获取它们来进行操作.所以 Python 提供了迭代器的类型来对这些类型的内容进行迭代遍历,迭代类型新增于 Python 2.2. 迭代器类型指的是遵循迭代器协议的类型,对于 Python2.x 版本来说就是实现了 __iter__ 和 next 函数的对象类型.如果一个对象实现了迭代器…
     软件定义X变得越来越火,正所谓,Software is eating the world. 软件定义网络也是如此.不论是在工业界还是学术界都将是一次伟大的革命,都在紧随着这个行业的方向,找自己的研究点,关注着标准化的进展. 各种Controller,原型系统都相继出现,还有的是是做SDN 的Debug,安全,总之让这个生态系统变得更加健壮.尽管南向接口标准非常多,可是openflow适合我们的学习,社区庞大. 以下记录下自己对这个的一点基本的看法.      1.首先要明白的就是,如同…
Python Iterator and Generator Iterator ​ 迭代器(Iterator)和可迭代对象(Iterable)往往是绑定的.可迭代对象就是我们平时经常用的list ,string, tuple这种.事实上迭代器的概念会比可迭代对象宽泛很多,一会举几个例子就能明白. ​ 在使用list这种数据类型的时候,我们经常会使用下面这种迭代方式: # eg 1 mylist = [1,2,3,4] for x in mylist: print(x) >>>1 >&…
作者:Dimple 公众号:奔跑吧攻城狮 简介:专属于Java和Android开发,和你聊聊职场话题,一同展望未来 作为小小号主的我表示很无力啊,这几天,天天都是热点.前有网易员工勇敢发声维护自己的利益,紧接着网易所谓的道歉:接下来又是2017-2019的对比,勾起了一个个满满的回忆:再来就是全球IPv4用尽,这个在学生时代就说快要用尽的东西,终于等来了他耗尽的消息:然后然后,其实还有浙江卫视录节目,高以翔猝死的事情. 天天追着热点走,怎么也跑不过新闻,哈哈.但是呢,该有的分析还得有,该有的分享…
关于异常的一点思考 异常生命周期 异常的来源 所有的异常都是抛出来的 有底层api抛出的 有自定义抛出的 异常的处理 1, 运行时异常 不做任何处理仍可编译通过 不建议捕获(不建议用异常来做流程控制,异常是程序中的非正常情况) 2, 受检查异常 必须处理,否则编译通过 处理方式:捕获处理 或者抛出处理 异常的终态 1, 对于捕获处理的异常 虚拟机不再做额外处理 2, 对于抛出的异常 受检查异常:在编译通过的情况下,会一直抛出直到main 层,如果在main仍然没有 捕获处理 则 虚拟机会调用 e…
Title:MSSQL显错注入爆数字型数据的一点思考 --2011-02-22 15:23 MSSQL+ASP 最近在弄个站点,密码是纯数字的,convert(int,())转换出来不报错,也不知道其他人用的什么函数或者类型来爆密码像"11111111"的这样的数据的,就自己想了下弄了个暂时可以用的方法. 数据库查询如图: 图一: 图二: 图三: 图四: 图五: 下面是实验 表Member 字段Password 语句 ' or 1=convert(int,(select top 1 p…
对dump脱壳的一点思考 偶然翻了一下手机日历,原来今天是夏至啊,时间过的真快.ISCC的比赛已经持续了2个多月了,我也跟着比赛的那些题目学了2个月.......虽然过程很辛苦,但感觉还是很幸运的,能在大三的时候遇到ISCC,不管怎样,对我来说都会是一个很好的锻炼机会. 在做综合关的逆向破解的题目,遇到了很多蛋疼的问题,磕磕碰碰把<加密与解密>看完了.还是老习惯,把这1个多星期以后学到的,想到的做一个总结,希望能有一个思想上的提高,也希望能对其他人有一个借鉴的效果吧.这里想起lenus大神的一…
linux kernel 内存管理是个很大的话题,这里记录一点个人关于slab模块的一点思考总结. 有些书把slab介绍成高速缓存,这会让人和cache,特别是cpu cache混淆,造成误解.slab最开始的目的是解决频繁内存分配的效率问题,所以把频繁分配回收的对象,预先分配并初始化好,后面的对象分配回收主要就是对象管理数据的维护工作.linux kernel 通过把整个物理内存划分成以一个个page进行管理,管理器就是伙伴系统,它的最小分配单元就是page.但是对于小于page的内存分配,如…
这几天在看招聘公告前端工程师的要求基本都附带了html语义化的要求,所以稍微关注了下这方面的知识.对于其中的一点就是要求页面元素在去除css样式之后还能有良好的布局引发了我一点思考.作为前端刚入门的我,现在所采用的页面是非常流行的div+css样式,在去除css样式之后,页面布局散乱不堪.所以最近在看html5的页面常用元素.同时,今天看到了前些日子写的一段代码,关于元素遮罩层的,对于我这种js菜鸟而言,我一般是把遮罩层直接写在页面上的,我想这点应该也是不符合html语义化的规范吧,我稍微想了下…
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings name="  " connectionString="  "></connectionStrings >, connectionString代表数据库链接字符串,name代表你想要引用的时候查找的名称.(其实asp里的web.config配置方式也跟这…
基于CAS分析对ABA问题的一点思考 什么是CAS? 背景 synchronized加锁消耗太大 volatile只保证可见性,不保证原子性 基础 用CPU提供的特殊指令,可以: 自动更新共享数据; 能检测到是否有其他线程的干扰; CAS(Compare and Swap) 不加锁而是尝试去完成替换(写)操作,如果失败就重试,直到成功; 分析 // AtomicInteger public class AtomicInteger extends Number implements java.io…
关于KMP的一点思考 KMP的\(next\)数组的性质很精妙,有必要开一个坑学习一下 Part 1 啥是next \(next[i]\)表示对于\(pre_i\)这个字符串,这个抠出来的字符串本身后缀和前缀相等的最长长度.是一个自变量只和这个子串有关的函数.这点很重要 由于保证了是最长长度,这个数有一些优良的性质,常常在关于一个串的循环表示或者周期表示中发挥作用. 注意到这个\(next[i]\)虽然代表是这个最长长度,但是值得注意的是,由于字符串从1开始编号,所以这个值也是那个前缀的下标.…
一.相关工具链简介 HAML HAML是专门面向Ruby on Rails模版语法设计的一门标记语言,其结合RoR的views部分模版语法的特点,对原来的*.html.erb(嵌入Ruby代码的HTML页面)进行了简化和封装,使得在编写前端页面时能够更加简洁方便. 例如,下面是一份嵌入式Ruby的HTML页面的代码: <div id='content'> <div class='left column'> <h2>Welcome to our site!</h2&…
其实也是在写自己项目的时候遇到的,以前也遇到了但是一直采取的是回避的策略,这次总算弄清楚所以总结一下. 这个项目的顶级目录是medivac,他本身是一个python模块. 熟悉flask的人都知道,在写一个flask项目的时候,我们常常将一个模块的app初始化放在根目录的__init__.py文件中. 然后可以很方便的把其它需要路由的模块都引入到这个__init__.py中达到自动加载并且路由的效果. 另外也可以使用一个叫做flask蓝图的东西(blueprint),将模块细分. 如果是在__i…
先看我对REST的一点认识,下面是<rest实战> 这本书的序言文字:      在我刚刚开始从事解决计算问题的时候,业界就有很多人有一个愿望:将系统设计为能够被自由组合的组件.互联网(Internet)无远弗届的广泛连接为这个愿望推波助澜,并且增加了一个新的愿望:使得组件在引入了延迟和不可靠性的网络之上也能正常工作.人们尝试了这个世界上的很多系统,其中的许多系统都失败了——通常伴随着悲伤的啜泣. 一个伟大的成功案例是WWW(WorldWideWeb,万维网).它的成功既渗透进了商业运转之中,…
-----------------------------------------------------------------------------前言---------------------------------------------------------------------------------- python中的for循环可以在各种容器container上遍历所有可用元素. 一个类里面,如果实现了  __iter__ 这个函数, 那这个类就是 “iterable”. 如…
摘要:软件本身不是目的,人类的需求才是目的,而软件只是达到目的的手段. 软件的本质在于控制复杂性,这个复杂性并非来自于计算机,也并非来自于现实世界,而是来自于人类的思维和知识体系. 软件被使用的广泛性,在于它所满足的人类需求的广泛性. 什么是软件? 从一个简单的例子说起,比如我想计算两个数的和,于是写下这样的python代码 print a + b 但是,这段代码是我的最终目的吗?显然不是,我需要把它在计算机上实际运行,并赋予a和b实际的数值.也许我是在水果,买了5块钱的苹果和10块钱的香蕉,然…
wsgi - python web server gateway interface 出现的目的是,为了在 python框架开发的时候,更具有通用性.只要符合 wsgi标准,就可以自由选择服务器(nginx, apache等). 官网:http://wsgi.readthedocs.org/en/latest/,列出了 支持wsgi的框架, 列出了 支持wsgi的服务器. 服务器 ---#--- wsgi协议 ---#--- python_shell 摘wiki WSGI有两方:“服务器”或“网…
Http协议 一 HTTP概述 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式.其实我们要学习的就是这个两个格式!客户端发送给服务器的格式叫“请求协议”:服务器发送给客户端的格式叫“响应协议”. 特点: HTTP叫超文本传输协议,基于请求/响应模式的! HTTP是无状态协议. URL:统一资…
一.什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stoplteration异常,以终止迭代(只能往后走,不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象 二.python中强大的for循环机制 for循环的本质:循环所有对象,全都…
引言 二十年前的我,还在学校里抱着一台DIY机(德州486+大众主板+16M内存+3.5inch软驱+昆腾320M硬盘,当时全校最快主机没有之一),揣着一本<Undocumented DOS>,沉迷在Pascal.C以及汇编混合编程的世界里无法自拔.二十年后,软件开发已远不是当初几张简单流程图可比,软件开发的方向由简至繁,各式的开发工具更是层出不穷,不仅让新出道的人们深感乱花渐欲迷人眼,也让我等备感跋涉之不易.所幸爱好不外有二,读书实中其一.也唯有不断学习,才不至被拍死在沙滩之上. 学习BDD…
不久前,通过网上查阅各种资料,一直想利用python来实现模拟登录的功能,通过csdn汪海的博客学会了一点,但也只能算个皮毛,亦或皮毛都算不上. 边查阅资料边写一个小东西,起初想写一个程序,通过暴力破解+模拟登录的方式来实现破解学校一卡通的密码,孰料,强力破解面对六位数的密码的1000000种尝试,很难短时间破解,另一原因在于暴力尝试的时候服务器端总是出问题,代号为500,遂搁浅. 现在只实现了有密码的登录一个人的帐号,读出首页信息,具体的消费记录涉及到翻页的问题,每次翻页都会提交一串好长的串,…
Effective Python chap.1 用Pythonic方式来思考 Pythonic: 一门语言的编程习惯是由用户来确立的. 1. 确认自己所使用的Python版本 2. 遵循PEP8风格指南 每件事都应该有直白的做法,而且最好只有一种. 模块级别常量 全部采用大写字母拼写 例如 ALL_CAPS 类的实例方法首个参数命名为self 类方法首个参数命名为cls 否定词内联,而不是放在前面,例如 if a is not b 而不是 if not a is b 不要使用相对路径进行引用 i…
1. TCP协议 / UDP协议 1.1 TCP协议 1.可靠.慢.全双工通信 2.建立连接的时候 : 三次握手 3.断开连接的时候 : 四次挥手 4.在建立起连接之后 发送的每一条信息都有回执 为了保证数据的完整性,还有重传机制 5.长连接 :会一直占用双方的端口 6.IO(input,output)操作,输入和输出是相对内存来说的 write / send -----> 输出 output read / recv ------> 输入 input 7.能够传递的数据长度几乎没有限制 1.2…
套接字是常见的低级别的网络通讯协议,在此基础上,还有很多其他的网络通讯协议.用于实现client-server的网络互联,以下对这些协议做一个简单的介绍. 1.文件传输 FTP:文件传输协议.能够上传或下载文件,採用了Unix多用户的概念,用户一定要输入有效的username和password才干使用,只是也支持匿名登录. 在底层实现上,FTP仅仅使用TCP而不使用UDP.主动模式下使用两个套接字,各自是控制命令port和数据port.被动模式下使用一个套接字,为控制命令接口.client工作流…
今天看到CSDN上这么一篇< 彻底放弃没落的MFC,对新人的忠告!>, 作为一个一直在Windows上搞客户端开发的C++程序员,几年前也有过类似的隐忧(参见 落伍的感觉), 现在却有一些不同的想法.   首先,个人职业发展是否成功, 技术只是其中一小块,尤其是在大公司, 更多的是依靠所谓的软实力.作为一个对技术有追求的工匠,我们下面重点说技术相关的.   现在回头看计算机行业的发展,我们看到不同的发展阶段:   1. PC时代,这个时代离我们并不遥远, 也有是2000年前后, 该时代最鲜明的…
最近一直在做python工程化相关的工作,颇有心得,遂总结一下.一是为了整理思绪,二是为了解放自己健忘的大脑. python是一个C的语法糖盒子 原生的python通常都是由cpython实现,而cpython的运行效率,确实让人不敢恭维,比较好的解决方案有cython.numba.pypy等等 cython 是目前我认为发展最好,最靠谱的一项Python加速解决方案. 使用cython编译过后的代码,通常会对原python代码有2倍以上的速度提升.cython的编译也很简单,只需要构建一个se…
互联网热潮下,"微服务"技术架构成为了一种高大上的技术,其顾名思义就是将传统的大的业务服务拆分成独立的小服务,当拆分的服务慢慢多起来的时候,我们会发现服务地址很难管理,传统的方式一般会通过配置文件或者数据库存储,这种手动的维护的方式显然不够灵活,如果某个服务挂了,系统得不到及时的通知,只能等维护人员处理.这个时候如果有个中间件来做服务发现的话,显然会显得很灵活. .Net平台上使用"微服务"时做服务发现,目前来说Cosul是一个不错的选择. 什么是Consul Co…
写在前面 前几天看了园友的一篇文章被广泛使用的OAuth2.0的密码模式已经废了,放弃吧 被再次提起: Implicit Flow Password Grant,均已被标记为Legacy,且OAuth2.1里面已经删除了,目前OAuth2.1只剩三种flow: Authorization Code+ PKCE Client Credentials Device Code 作为完美踩坑Implicit 和 Password 两种flow的人,有点感慨,特来发表下自己的愚见: 并带着以下问题: 在S…
已经找好工作近两周了,入职基本上还算顺利,自己两年来的挑灯夜战也算是有了收获,于是这两周基本上是按部就班的工作,没有学习什么新技术.在上个公司的时候,同事在项目中使用angularJs,之前他也没有接触过angularJs,一边学习一边做项目,结果给项目团队造成了很大的困扰.angularJS他研究的不透彻,在使用的过程中造成了很大的弊端,比如标签闪烁,暴露出未解析的源代码等.在商业的项目上尝试使用新技术是十分危险的,轻则项目留坑,给维护留下巨大的安全隐患,重则项目流产,商业计划因此而毁于一旦,…