-
Python实现线程安全队列
最近学习spark,我主要使用pyspark api进行编程。 之前使用Python都是现学现用,用完就忘了也没有理解和记忆,因此这里把Python相关的知识也弥补和记录下来吧 多线程任务队列在实际项目中非常有用,关键的地方要实现队列的多线程同步问题,也即保证队列的多线程安全 例如:可以开多个消费者线程,每个线程上绑定一个队列,这样就实现了多个消费者同时处理不同队列上的任务 同时可以有多个生产者往队列发送消息,实现异步消息处理 先复习下互斥量和条件变量的概念: 互斥量(mutex)从本质上说是一…
-
Python安全运维实战:针对几种特定隐藏方式的Webshell查杀
Webshell一直都是网站管理员痛恨看到的东西,一旦在网站目录里看到了陌生的webshell基本说明网站已经被攻击者拿下了。站在攻击者的角度,要想渗透一台网站服务器,第一个目标也是想方设法的寻找漏洞上传webshell。 对于webshell的防护通常基于两点:一是在攻击者上传和访问时通过特征匹配进行检测拦截或限制文件类型阻止上传;二就是日常基于webshell文件特征的静态查杀(也有基于日志的,在这里不做讨论)。第一种方法不是我们今天要讨论的,waf、安全狗等一系列工具可以实现相应的功能。第…
-
实战Google深度学习框架:TensorFlow计算加速
要将深度学习应用到实际问题中,一个非常大的问题在于训练深度学习模型需要的计算量太大。比如Inception-v3模型在单机上训练到78%的正确率需要将近半年的时间 ,这样的训练速度是完全无法应用到实际生产中的。为了加速训练过程,本章将介绍如何通过TensorFlow利用GPU或/和分布式计算进行模型训练。本文节选自《TensorFlow:实战Google深度学习框架》第十章。 本文将介绍如何在TensorFlow中使用单个GPU进行计算加速,也将介绍生成TensorFlow会话(tf.Sessi…
-
Tensorflow自学之前的bigpicture
前言 目前,深度学习在计算机科学各领域的应用越来越多,各种新技术层出不穷,比如图像识别、图形定位与检测、语音识别这一系列的技术。这个领域,对于初入技术行业的同学来讲,吸引力十分足够:特别是在整个领域工资居高不下的时候。 说到深度学习,就不能不提一下开源框架tensorflow。不仅是因为这个框架最火、使用率最高,也是因为这个框架是非常适合初学者接触、学习的。 我们会讲到一些深度学习的基础概念,包括计算图,graph 与 session,基础数据结构,Variable,placeholder 与 …
-
PEP8 Python 编码规范整理
决定开始Python之路了,利用业余时间,争取更深入学习Python。编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的。所以今天根据PEP8整理了一份,以后都照此编码了,还会持续更新。 一 代码编排 1 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。 2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。 3 类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无…
-
【Python】windows下Eclipse中安装集成webpy框架
这篇文章主要讲述的是在Windows下,在eclipse中如何通过使用webpy框架进行Python的web开发。很多文章都是在自己一次次的碰壁中又决定自己写一篇。像原来的MySQL的安装,每次安装都是需要重新再搜索一遍遇到的问题如何解决。 本文分几个部分: 第一个部分是Python的安装,如果安装过了的童鞋,则可以直接跳过去这一步; 第二部分是eclipse中PyDev插件的安装,安装之后在eclipse中就可以进行Python的开发; 第三个部分是webpy的安装; 第四部分是MySQLdb…
-
python线程笔记
引言&动机 考虑一下这个场景,我们有10000条数据需要处理,处理每条数据需要花费1秒,但读取数据只需要0.1秒,每条数据互不干扰。该如何执行才能花费时间最短呢? 在多线程(MT)编程出现之前,电脑程序的运行由一个执行序列组成,执行序列按顺序在主机的中央处理器(CPU)中运行。无论是任务本身要求顺序执行还是整个程序是由多个子任务组成,程序都是按这种方式执行的。即使子任务相互独立,互相无关(即,一个子任务的结果不影响其它子 任务的结果)时也是这样。 对于上边的问题,如果使用一个执行序列来完…
-
Python名人之廖雪峰
廖雪峰 廖雪峰,十年软件开发经验,业余产品经理,精通Java/Python/Ruby/Visual Basic/Objective C等,对开源框架有深入研究,著有《Spring 2.0核心技术与最佳实践》一书
-
两大幸存者:Java与Python谁更胜一筹?
程序员在编程语言的选择上或多或少都犹豫过,选择时也会不自主地将客观事实与主观偏好相结合。过去十年,可供选择的语言层出不穷,本文将重点缩小到20世纪90年代编程语言的两大幸存者身上:Java和Python。 Python起源于一种脚本语言,它的语法体现了一种可读性的理念,具有简单而规则的界限,鼓励简洁和一致的代码布局。Python的动态类型有助于代码简化和组合,是许多平台的解释性语言,成为众多程序员编程首选的便携式选项。 Python的参考实现(以C编写,被称为CPython)在许多平台上可用,并…
-
完美解决Python2和3共存问题的Anaconda
Python3 被越来越多的开发者所接受,同时让人尴尬的是很多遗留的老系统依旧运行在 Python2 的环境中,因此有时你不得不同时在两个版本中进行开发,调试。 如何在系统中同时共存 Python2 和 Python3 是开发者不得不面对的问题,一个利好的消息是,Anaconda 能完美解决Python2 和 Python3 的共存问题,而且在 Windows 平台经常出现安装依赖包(比如 MySQL-Python)失败的情况也得以解决。 Anaconda 是什么? Anaconda (巨蟒)是…