- 博客(55)
- 问答 (1)
- 收藏
- 关注
原创 用Python显示和处理PDF文件
pdf是电子书,文档经常会用的格式,除了下载各种阅读器以外,我们也可以用Python批量处理大量PDF文件。本文用到了pypdf2,pdfminer.six,pdf2image来做常规处理。pypdf2 获取pdf的基本信息,如作者,书名,页数等 5 from PyPDF2 import PdfFileReader 6 7 def extract_information(pdf_path,filename): 8 try: 9 with open(pdf_pa
2020-05-25 00:03:41
1373
原创 用Python和Conky做个电子相册,美化你的Linux桌面
现在手机的拍照功能日趋强大,每个人电脑上想必都至少有几十个G的照片吧。全打印出来实在是太费钱了。而闲置的旧电脑完全可以利用起来播放这些照片。下面就介绍利用Conky和Python实现随机播放相片的功能ConkyConky是一个显示系统状态的Linux软件,可以图形化显示CPU, 内存,网络流量等。下面是一个来自官方网站的示例图。它的配置文件语法很简单,分为配置和显示两部分conky.config={ own_window=true, own_window_class='Conky',
2020-05-23 16:23:44
492
原创 用Python和Pygame做小游戏2, 1024方块
我们之前用[PyQt5实现过1024方块游戏],现在换成pygame看看能不能简化代码。游戏本身逻辑代码因为是numpy写的,基本上不用动。只是图形界面和键盘绑定事件要做替换。我在替换底层框架的操作上一般是先把所有相关的引用都去掉,这样python或者java就会出错,只需要无脑替换代码就好了。在这里,把Qt相关的import全部去掉, main方法也要替换成pygame的初始代码原来的M...
2020-02-26 10:42:15
933
原创 用Python把图片转成字符画
刚学会上网的时候,看到上面的图觉的老神奇了。普通的英文字母居然可以画画。自己画是肯定看不出的。然而幼稚的我们被骗了原图是这样的通过下面的代码生成了字符画,什么原理呢?我们知道显示器是由一个个像素点组成的,每个像素点可以显示不同的颜色,这样就可以显示彩色的照片。最早的黑白显示器虽然只能显示白和黑,但因为亮度的不同就可以显示信息较丰富的黑白图像,这个就是灰度值。那我们反转过来,把彩色图片...
2020-02-24 10:44:07
1571
原创 用Python给你的头像加口罩,加圣诞帽,加红心,加加加
记着好象是有次传说转发就能给头像加圣诞帽,后来又是国庆加国旗,情人节加红心。看似神奇,可怎么做到的呢?其实原理很简单,跟常见的水印一样,只不过位置比较重要些,要放人脸正确的位置上。人脸检测对Python来说也是个老话题了,OpenCV很早就已经有成熟的方案。将人脸的特征总结为以上的图例,然后存在一个haarcascade_frontalface_default.xml文件里,可以从open...
2020-02-23 02:59:08
384
原创 Idea和Pycharm自带的Vim插件
Ideavim对同时喜欢Vim和Intellij全家桶(Idea, Pycharm等)的人来说是再熟悉不过了,既可以享受Intellij的强大功能,又可以用Vim操作文本,真是双份的快乐。可是你知道Ideavim也有插件的吗,虽然是官方模拟的,但操作方式与Vim原生的并没有什么不同?从IdeaVim的主页上可以查到支持的插件列表。easymotion 模拟的是Vim-easymotion插件...
2020-02-20 15:13:01
1405
原创 用Python和Pygame做小游戏1
掌握一门语言最好的办法就是写个小游戏,这样又有趣味性,又可以学到很多这门语言的知识。因为游戏对性能要求比较高,你就必须找出各种方式去优化。基本上一个复杂点的游戏写完后, 就基本算掌握了这门语言pygame是python上最出名的游戏引擎,安装好后我们写个简单的窗口测试下运行后就出来个黑乎乎的窗口,说明安装正确。程序很简单,初始化pygame后,创建个screen, 就是窗口的。然后就进入...
2020-02-18 14:15:49
3199
原创 用Python定制一个截图软件
截图软件一直是一个尴尬的存在,现在的操作系统都集成了,但又不是很好用,第三方的又老是下载后就忘了用了,所以经常是拿QQ或者微信的截图来使。当开始写技术文章后,每次都要截大量图,就变成了一个体力活,苦不堪言。做为DRY精神的信仰者,怎么可以忍受。用Python中实现截图功能简直太Easy了, 用最常用的Pillow就可以实现。当然没用过的同学还是要pip install pillow, 注意在代码...
2020-02-18 14:15:15
919
原创 用Python开发基于Socket聊天程序
Python自带Socket库,我们只需要确保防火墙端口打开,就可以在两台机器间建立Socket连接了首先server端是需要绑定并监听端口的,而client只要访问这个端口就可以建立连接。服务端在listen时,一旦接到访问后就可以拿到client的信息了, 我们可以用input方法接收键盘输入,再把字符串encode为byte类型就可以发送了。同样在接受大小为512字节的信息后,deco...
2020-02-18 14:14:21
466
原创 用Python收发电子邮件
电子邮件是最古老的互联网服务之一,发明于1969年,它已经50岁了!它并不要求收信人发信人同时连接网络,邮件存放于服务器,所以至今在企业内部还在大量使用。而且它是开放协议,没有被某大公司垄断。我们完全可以拿来做一个可靠的消息来源。比如说我们在远程主机运行一个耗时较长的任务,或者搭建某个自己写的后台服务,当某些事件发生时,就可以发送一个邮件,手机任何一个邮件客户端都可以接收推送。国内较好的邮件...
2020-02-18 14:13:03
638
原创 用Python的matplotlib画股价图
今年真是Python年,几乎所有的公众号都是在推Python教程。做为普通开发者的小编非常的焦虑,万一跟不上趋势怎么办?平时拿不到什么大数据让我分析可怎么办呢?突然灵感一来,股价就是天然的大数据,每天都在更新,当然要拿来分析下啊。要做分析的话,可视化是不可少的。比起枯燥的数字,曲线图可以很直观的感受数据变化的趋势。matplotlib就是一个著名的python图形库,几乎每本讲python数据...
2020-02-18 14:12:24
1298
原创 用Python看新闻,掌握最新疫情
本文知识点:Python, RSS, gevent,PyQt5记着十几年前,看新闻还是一件很轻松的事。打开Google Reader,天下新闻尽在我手。各大知名博主每天都在更新高质量的文章。而到了今天,新闻app有十几个,一天能推送几十篇各大小明星的烂事,说好的人工智能呢?那只能自力更生,自己打造一个了。RSS源虽然不多了,但剩下的都是精品。而且还有爱好者打造的rsshub这样的开源项目, ...
2020-02-18 14:11:41
602
原创 用Python给Vim加功能
vim是很强大的编辑器,但VimScript却不是很好的语言,就算学会了也不能象Emacs里的lisp可以拿来装,你也不能往简历上写精通VimScript啊。但有时候第三方Plugin不好用的时候我们又想自己弄一套,其实Vim本身就支持第三方语言的,只不过默认的发行包不带而已。我们可以在Vim里执行:version来查看当前Vim是否支持第三方语言如果有看到Python前有加号的话,就是支持...
2020-02-18 14:10:52
154
原创 用Python调用windows-API实现老板键功能
老板键是很多应用程序提供的一键隐藏窗口功能。但也有很多应用不支持。作为程序员或者打算入门的我们,当然是要自己写一个啊。Python本身是不支持操作Window窗口的,但我们可以用pip安装pywin32来实现调用Windows SDK API, 这个包其实是C++程序函数的封装,基本上是一一对应的关系。首先,我们需要找到程序的hwnd, 这个以前翻译成句柄,生造出来的术语,其实就是一个指针,指...
2020-02-18 14:10:14
876
原创 谁说中文不能编程了?快看文言文大战东北话
自从有了互联网,每个月都会有编程小白发贴问,可不可以用中文编程。虽然老遭鄙视,但情有可原,非科班出身的程序员,理解编程就很难了,再加上一直头痛的英语,更是难上加难。后来支持中文的易语言受到了很多人追捧,就是出于这个原因。但主流程序员还是不屑一顾。可从去年年底,事情发生了变化。一种叫文言文编程语言(wenyan-lang/wenyan)在github上大火,到目前为止有1万4个star. 一段文雅...
2020-02-18 14:09:41
353
原创 还在用按键精灵?快学学高大上的Python吧之二
虽然pyautogui很强大,但很多时候我们还是需要在窗口间切换的,如果要操纵的程序被覆盖,我们就很难用基于图形识别的pyautogui把它调到前台了。固然我们可以用windows api 来切换窗口,但有人已经做了的工作何必要再造轮子呢。好了, 这里隆重介绍下pywinauto, 它是一个基于win32 api的库,我们可以用它实现对windows窗口程序的调用。首先我们可以用它启动一个程序...
2020-02-18 14:09:08
2189
原创 还在用按键精灵?快学学高大上的Python吧
好像很多人是从学习按键精灵开始入门编程的,然而你不可能在简历上写精通按键精灵吧。在大数据,人工智能流行的今天,Python红的发紫,你可以知道Python有一个神奇的库叫pyautogui, 可以操作键盘和鼠标。首先我们用pip安装这个库pip install pyautogui然后我们就可以调用hotkey调用热键,typewrite去输入字符串了。pyautogui也可以根据截图点击,...
2020-02-18 14:08:18
984
vim 插件surround
surround http://www.vim.org/scripts/script.php?script_id=1697 "hello world" ds" 会去掉两边的引号<p>hello world</p> cst" 把<p>去掉换成“ 显然写网页时比较好用 ...
2009-01-18 00:07:09
173
用vim打造敏捷IDE
受够了各种IDE对最新技术的不兼容,不支持,总是花很多时间在配置,找插件甚至下载上面,这显然是个waste. 本篇列出提纲,争取用VIM完成所有日常工作。 vim的配置文件管理工作区文件编辑快捷键插件...
2008-11-25 18:09:04
121
vim的配置
:e $MYVIMRC 直接进入.vimrc或者_vimrc , 做了个MAP 好随时加配置. $MYVIMRC是个vim变量代表vimrc的路径 set helplang=cn 下载vimcdoc 就成中文帮助但还需这条才能显示 syntax on 语法高亮 colorscheme murphy 颜色模板,你可以选其它的 set softtabstop=4 t...
2008-11-25 18:08:04
128
seam页面流
<navigation-rule><from-view-id>/FacilityEdit.xhtml</from-view-id> #1<navigation-case><from-action>#{facilityHome.persist}</from-action> #2<from-outcome>
2008-09-18 23:21:25
154
jquery实现的圆角框
http://www.methvin.com/jquery/jq-corner.html把你的div 的class记下, 在head里写个脚本 $('classname').corner()就可以了
2008-08-21 21:43:26
593
一个好的css 框架blueprint
你没看错, css也可以做框架,http://code.google.com/p/blueprintcss/当你在页面导入它后, 只要将最顶端的div class设为container, 如果你需要一个固定宽度的框,就用span-1做为div的class, 以此类推 直至span-24, span之间为10px的间隔, 如果你需要更多间隔就加prepend-1或者 append-1。 这样你就可...
2008-08-21 21:41:10
261
配置hsql测试jpa
参考http://thought-bytes.blogspot.com/2007/04/hello-world-with-standalone-java.html建文件夹, 存放hsql.jar ,再建个server.properties, 里面写上server.database.0 file:./think server.dbname.0 think ...
2008-08-02 15:58:13
335
JDK1.6 运行jboss seam test的兼容性问题
在jvm 参数里-Dsun.lang.ClassLoader.allowArraySyntax=true就可以解决
2008-06-24 12:18:08
158
selenium测试ajax动态创建页面元素的方法
因为waitForPageToLoad只能当页面提交后才会执行, 所以当ajax添加了页面元素后,无法判断程序是否正确执行,而selenium-rc又没有waitfor()方法, 于是就写了一个方法public void waitForElementLoad(final String waiting) { new Wait() { public boolean until() { ...
2008-05-29 11:07:32
321
64位ubuntu的java性能问题
好几天一直被jboss的速度折磨着,跑个selenium, 上完厕所居然才跑一半。 加了jvm参数,换ibm的jdk都没用,几乎打算要换到32位了。 突然看到top里的ntfs-3g利用率较高,于是试着把jboss从ntfs分区换到ext3, 居然神速了。 真是郁闷啊。...
2008-05-27 12:14:50
218
JPA(hibernate实现)学习笔记
无查询获取referencechild = new Child();child.SetName("Henry");Parent parent = em.getReference(Parent.class, parentId); //no query to the DBchild.setParent(parent);em.persist(child); 重新获取对象实例及其相关对象em...
2008-05-05 21:57:50
156
64位ubuntu安装skype
sudo apt-get install ia32-libs lib32asound2; wget -N boundlesssupremacy.com/Cappy/getlibs/getlibs-all.deb; wget -O skype-install.deb http://www.skype.com/go/getskype-linux-ubuntu; sudo dpkg -i getli...
2008-04-22 11:36:33
263
让span具有固定宽度
因为jsf 里的outputText会生成一个span, 如果用他来做label就需要设置一个固定宽度,但因为span里内联元素, 一般是加display:block, 但这样就会换行, 显然不是我们想要的。 另一种方法是加float:left, 这样就比较适合。有篇详细说layout的文章 http://bbs.blueidea.com/thread-2636904-1-1.html...
2008-04-10 17:06:11
272
好用的firefox插件
Google notebook随时保存精彩的网页内容片段,用习惯了看PDF文档时都想点点右下角Super DragAndGo拖放链接就可以在新标签中打开,类似maxthonFirebug做网页的好帮手DownThemAll多线程下载, ubuntu下适合用来代替迅雷Gmark保存书签在google服务器上, 还可以加多个标签,并分组打开,比maxthon的快捷组强 ...
2008-04-08 21:20:43
553
ubuntu下用vim搭建rails IDE
[list=1][*]sudo apt-get install vim. 因为自带的vim不是完整版[*]sudo apg-get install vim-rails 提供语法补全 以及视图控制器跳转等功能 [*]sudo apt-get install exuberant-ctags ctags 根据你的文件生成tags, 这样你就能按ctrl+] 跳到任意已有的文件...
2008-04-05 22:33:25
155
SEAM学习笔记2
ui:insert 在模板文件中设定扩展点名称ui:define 在文件中设定扩展点的具体内容<ui:repeat value="#{fans} var="fan"><div class="faninfo">#{fan.name}</div></ui:repeat> 显示一个列表内容, 优于h:dataTableS:cache 将会cache 内容
2008-01-01 23:52:56
158
seam学习笔记
#{person.name} 代表会取Person这个组件的name属性,需要在对应的action中用@in定义一个Person值域,从而注入Person. 同理@out指定输出字段<h:dataTable value="#{fans}" var="fan"><h:column><h:outputText value="#{fan.name}"/><
2007-12-31 22:02:55
166
effective java学习笔记
equals()方法的通用约定自反性(reflexivity) x.equals(x)=true对称性 x.equals(y)=true,则y.equals(x)=true传递性 x.equals(y)=true ,y.equals(z)=true,则x.equals(z)=true一致性 如果两个对象相等的话,则它们必须始终保持相等非空性,所有对象都必须不等于null改写equals必须改写ha...
2007-12-18 17:57:00
87
领域驱动设计学习笔记(2)
把实际的存储和查询技术封装起来,仅为确实需要直接访问的聚合根提供仓储,让客户聚集于模型,把所有对象存储和访问的工作委托给仓储来完成仓储的优点:它们为客房提供了一个简单的模型,来获取持久对象并管理其生命周期它们把应用和领域设计从持久技术,多种数据库策略甚至多种数据来源解耦出来;它们传达了对象访问的设计决策它们可以很容易被替换为哑实现,以便在测试中使用(通常使用一个内存中的集合)仓储的关注点抽象类型,...
2007-12-17 10:17:00
130
领域驱动设计学习笔记(1)
关联简化,从而让模型更清晰指定一个导航的方向加入限定符减少关联的多重性清除不必要的关联模型分为实体,值对象,服务对象三种实体应具有唯一标识(ID)来进行区分值对象则为只关心它们是什么,而不关心它们谁是谁的对象,所以不需要分配标识。通常是临时对象,经常作为实体的属性和其他值。设计时需要对复制,共享和不变性作出选择。值对象之间的双向关联是没有意义的服务,强调与其它对象的联系,往往代表一种行为,而不是一...
2007-12-12 17:10:00
118
LINUX学习笔记
linux目录架构/ 根目录/bin 常用的命令 binary file 的目錄/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需 RAM Disk/dev 系统周边设备 /e...
2007-12-12 14:51:00
67
编写java程序最容易犯的21种错误
1.Duplicated Code 代码重复几乎是最常见的异味了。他也是Refactoring的主要目标之一。代码重复往往来自于copy-and-paste的编程风格。与他相对应OAOO是一个好系统的重要标志。 2.Long method 它是传统结构化的“遗毒”。一个方法应当具有自我独立的意图,不要把几个意图放在一起。 3.Large Class 大类就是你把太多的责任交给了一个类...
2007-12-12 14:47:00
103
空空如也
长沙的4年以上的程序员一般薪资是多少啊
2009-09-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人