摘要:
组合算法
本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标
代表的数被选中,为0则没选中。
首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。
然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为
“01”组合,同时将其左边的所有“1”全部移动到数组的最左端。
当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得
到了最后一个组合。 阅读全文
摘要:
这一系列文章都讲述的是关于使用 JavaScript 操作文件相关的知识,其中最重要的是 File 对象,而实际上 file 对象只是 blob 对象的一个更具体的版本,blob 存储着大量的二进制数据,并且 blob 的 size 和 type 属性,都会被 file 对象所继承。
所以,可以说,在大多数情况下,blob 对象和 file 对象可以用在同一个地方,例如,可以使用 FileReader 借口从 blob 读取数据,也可以使用 URL.createObjectURL() 从 blob 创建一个新的 URL 对象。 阅读全文
摘要:
python编码问题的终极解决方案 阅读全文
摘要:
主要从以下几个方面进行bash入门级的总结:
1、命令历史、命令补全
2、管道、重定向
3、命令别名和命令替换
4、命令行编辑
5、文件名通配
6、Bash的相关配置文件及变量
7、编程(条件判断、循环控制)
8、bash中的数组
9、shell编程技巧和编程规范 阅读全文
摘要:
每次我在客户端把代码push到服务器后,都要去服务器重启uwsgi,相当麻烦。想写个脚本来监控git的更新。查看了git手册后,发现它有好几个hooks,这些hooks分别会监控不同的git命令。hooks钩子如下:applypatch-msg.sample commit-msg.sample post-receive post-update.sample pre-applypatch.sample pre-commit.sample prepare-commit-msg.sample pre-rebase.sample update.sample这些都是shell脚本... 阅读全文
摘要:
1、python升级查看python版本python -VPython 2.4.3因为python3的变化很大,还是希望用新的版本,goole了一把,看到有一个指导贴:cd /usr/local/srcwget http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz解压安装:tar -xzvf Python-2.7.4.tgzcd Python-2.7.4./configuremake allmake install这里在执行./configure的时候,报错了,原因是没有安装gcc,因为python是用C写的,所以需要用gcc进行编译, 阅读全文
摘要:
RSA算法非常简单,概述如下:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足et并且e与t互素(就是最大公因数为1)
取d*e%t==1
这样最终得到三个数: n d e
设消息为数M (M n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。
在对称加密中:
n d两个数构成公钥,可以告诉别人;
n e两个数构成私钥,e自己保留,不让任何人知道。
给别人发送的信息使用e加密,只要别人能用d解开就证明信息是由你发送的,构成了签名机制。
别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密。
RSA的安全性在于对于一个大数n,没有有效的方法能够将其分解
从而在已知n d的情况下无法获得e;同样在已知n e的情况下无法
求得d。 阅读全文
摘要:
没有内建的集合类型(需要使用 map 然后检查存在性)由于没有集合类型,需要自己实现交集、并集等方法没有元组(tuple),需要设计自己的结构(struct)或者使用slice(类似数组)没有类似 __getattr_() 的方法,需要你检查存在性而不能设置缺省值,例如 Python 中,你可以这么写:value = dict.get("a_key", "default_value")需要检查错误(或者至少显式的忽略它们)不能够有未使用的变量和包,需要时不时的注释掉一些代码在 []byte 和 string 之间切换,正则处理(regexp)使用 []b 阅读全文
摘要:
sudo apt-get install xorg-dev,libxtst-devsudo pip install spynner这个类库可解析js加载出来的数据!测试:#!/usr/bin/env pythonimport spynnerimport pyquerybrowser = spynner.Browser(debug_level=spynner.DEBUG)browser.create_webview()#browser.show()browser.set_html_parser(pyquery.PyQuery)browser.load("http://detail.tm 阅读全文
摘要:
db.getCollection("mobiles").ensureIndex({ "params.name": 1, "params.value": 1});db.getCollection("mobiles").insert({ "_id": 1,www.jokedu.com "name": "ME525", "brand": "摩托罗拉", "params": [ {"name&q 阅读全文
摘要:
linux下实用iptables封ip段的一些常见命令: 封单个IP的命令是: iptables -I INPUT -s 211.1.0.0 -j DROP 封IP段的命令是: iptables -I INPUT -s 211.1.0.0/16 -j DROP iptables -I INPUT -s 211.2.0.0/16 -j DROP iptables -I INPUT -s 211.3.0.0/16 -j DROP 封整个段的命令是: iptables -I INPUT -s 211.0.0.0/8 -j DROP 封几个段的命令是: iptables -I INPUT -s 61. 阅读全文
摘要:
初次配置执行下面两条命令来配置用户信息,他们会用于Git提交时的签名:$ git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com建立本地Git仓库在你的项目目录下执行:$ git init这会在你的项目目录下建立一个.git目录,存储所有Git所需的资源。然后我们该往项目中添加文件了。不过在这之前,最好先建立一个名为.gitignore的文件,来把一些不需要的文件或文件夹排除掉。比如在Mac下有时会在当前目录下产生一个.DS_Store的文件,这 阅读全文
摘要:
前言:开发工作中,由于有时需要通过ssh登录远程服务器上去,每次都要输入密码,密码很难记,感觉很麻烦,于是上网搜了通过ssh自动登录远程服务器上去,从而免去了每次都要输入密码的困扰。系统说明:本地机器:Debian远程机器:centos步骤:A.本地机器需要做的修改工作1.通过ssh-keygen产生RSA公私密钥对#ssh-keygen一路敲回车下去,最后在~/.ssh文件夹下生成id_rsa和id_rsa.pub两个文件然后改一下 . ssh 目录的权限,使用命令 "chmod 755 ~/.ssh"代码: [user1@rh user1]$ chmod 755 ~/. 阅读全文
摘要:
首先要在home目录下的.bashrc文件设置if [ -f ~/.bash_aliases ]; then . ~/.bash_aliasesfi然后修改.bash_aliases文件alias curl_piadu='curl http://www.piadu.com '在命令行运行curl_piadu时,就会自动抓取这个页面了 阅读全文
摘要:
如果一个文件被删除了,可以使用切换版本号进行恢复。恢复方法:先确定需要恢复的文件要恢复成哪一个历史版本(commit),假设那个版本号是: commit_id,那么git checkout commit_id -- path_to_file就可以恢复。还有一个方法是:你直接从本地把文件checkout出来就可以了,用不着从远程服务器上pull下来,因为,所以的历史版本你的本地都有的。具体做法git checkout file同时恢复多个被删除的文件:git ls-files -d | xargs -i git checkout {}这个试了没用,可能是版本问题。 阅读全文
摘要:
free 是监控linux下内存使用状况命令,看下面一段输出:[piadu@www.piadu.com~] $ free -m total used free shared buffers cachedMem: 32225 26234 5991 0 426 21535-/+ buffers/cache: 4272 27953Swap: 3813 0 3813"free -m"表示查看以M为单位的内存使用情况。Mem的total:物理内存;-/+ buffers/cache的free:应用程序可用内存;公式:内存使用率(n) = 应用程... 阅读全文
摘要:
mysql编码问题, 阅读全文
摘要:
由于要测试一些代码,其运行结果会受到多核并行的影响,所以希望能够调整使用的 CPU 数量。网络上之前看到的方法是在内核的启动参数上添加一个 maxcpus,但是如果这样的话每切换一次都要重启一次,是在太麻烦了。想想 Linux 应该是很强大的,所以可以动态修改 CPU 数量才对。无意中看到 Linux 代码的 Documentation 文件夹下有个文件叫做 cpu-hotplug.txt,于是就看了一下,发现可以在 /sys/devices/system/cpu 看到代表各 CPU 的文件夹按照 cpuX 的命名方式,如 cpu0、cpu1、cpu2 等。这些文件夹里面有一个 online 阅读全文
摘要:
使用python装饰器优雅地管理缓存。 阅读全文