Youtube开启或禁用HTML5播放器
用过MAC的TX都知道,如果没有FLASH想要播放YouTube的视频很麻烦。虽然用Chrome内置的FLASH很不错,但是动辄70+℃的CPU实在伤不起啊。H5播放器就没有这个弊端了,从此妈妈再也不用担心我的MAC了。
YouTube其实早就推出了H5的播放器,只是在PC端默认没有被开启而已。
用过MAC的TX都知道,如果没有FLASH想要播放YouTube的视频很麻烦。虽然用Chrome内置的FLASH很不错,但是动辄70+℃的CPU实在伤不起啊。H5播放器就没有这个弊端了,从此妈妈再也不用担心我的MAC了。
YouTube其实早就推出了H5的播放器,只是在PC端默认没有被开启而已。
今天在V2EX上发现了一个上搜索微信内容的好网站
练习爬虫的同学有福了,没事儿干可以试试。
接口地址:
获取方式:
GET
参数:
cb 必须 固定值 sogou.weixin.gzhcb
openid 必须 公众号的唯一ID,可以通过搜索结果页面获得
page 可选 页码 默认第一页 每页最多十条记录
t 可选 请求发送的时间,目测没啥大用
最近貌似对openid加密了,等高人破解吧。
dmsYotdg%2F1V4oas03wIdducg7w5SL9M%2BYAL3GsHdR%2Fw9aG9Qzsh6XnA%2FUqKuQ66p8tRkK
oIWsFt4Dl6kREBsD_KrMA84ThiIA
wDssoe6gmmM8o%2FDMnpcWKuHwEPHxqeOZXzd%2FXytWShm4vQlImQmVes2pA7cYWfc%2FwudCK
oIWsFt5sM7wz7isNXkl01is9M834
IAsHogvgG8dho2KKG6sO2uI3QooM18Hx%2BZF7o7%2BjinhzOVx5t3EcYmhn93gQQgsYira4N
oIWsFt0fiD095kHlyHMIXEM7PrZc
M8sGoC2gu6ZRohqri5nKnuau%2FD8g0jkqKyfAW8cjgPLn1e3wwAZSEM%2FMsVhWFQqp7%2Bz%2B9
oIWsFtwFWRis8pbm2-hOgllnpZfw
6Ss7od5gsiLBoala%2BGkVduU4PRslLs6USIzFeWxJXDR4oyMBZNvWwNovVPSmZJ6GVI7PG
oIWsFt4UdPREjjItJo-JsJhoTjSU
Qqsoo2gg7EDuovYnPkpxGu22Hv1%2FLF9MkC4AtaAGVcP%2B49dhr5tmnOpMZFpMtNQfp%2BnRv
oIWsFt-abnxH6yhUGXNtgwhtsvS4
调试程序的时候,如果需要打印出变量的信息,在python中很容易,一句print
即可,他几乎可以打印任何类型的对象,不像PHP中,有一堆echo(),print(),print_r(),var_dump()
,让人头疼!
但是PHP的打印函数有个好处,就是打印格式良好,而Python的打印信息就不是很友好了,如
# 模拟一个很大的键值对
dic = {}
for i in xrange(201):
dic[i] = "value for %d" % i
print dic
其结果我就不打印了,总之很难看!
如何让python那冗长而且没有格式的打印变得更直观,方法有两种。
此方法来自stackoverflow
# 以后需要有格式的打印一个集合对象,直接使用dump(xxx)即可!
# 不要忘了import sys
import sys
def dump(obj, nested_level=0, output=sys.stdout):
spacing = ' '
if type(obj) == dict:
print >> output, '%s{' % ((nested_level) * spacing)
for k, v in obj.items():
if hasattr(v, '__iter__'):
print >> output, '%s%s:' % ((nested_level + 1) * spacing, k)
dump(v, nested_level + 1, output)
else:
print >> output, '%s%s: %s' % ((nested_level + 1) * spacing, k, v)
print >> output, '%s}' % (nested_level * spacing)
elif type(obj) == list:
print >> output, '%s[' % ((nested_level) * spacing)
for v in obj:
if hasattr(v, '__iter__'):
dump(v, nested_level + 1, output)
else:
print >> output, '%s%s' % ((nested_level + 1) * spacing, v)
print >> output, '%s]' % ((nested_level) * spacing)
else:
print >> output, '%s%s' % (nested_level * spacing, obj)
此方法来自官方,可以自定义缩进,宽度等信息。
import pprint
dic = {}
for i in xrange(201):
dic[i] = "value for %d" % i
# 自定义缩进为4空格
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(dic)
老高推荐官方的pprint,自定义格式很不错!
完
Reference:
http://stackoverflow.com/questions/15785719/how-to-print-a-dictionary-line-by-line-in-python https://docs.python.org/2/library/pprint.html
mysql的默认的root用户会有很多行,自习观察后你就会发现每行的用户名或密码可能相同,但是host一定不同,host是登陆用户的主机名,也就是说,'localhost','127.0.0.1','phpgao.local','%'都算不同的用户!
理解了这一点后,那么我的问题就附上水面了!
有些TX经常会遇到这个问题:
使用PHP连接mysql数据库,使用localhost作为主机名总是连接失败,但是使用'127.0.0.1'就可以顺利连接,这到底是为什么?
mysql中HOST为localhost和127.0.0.1到底有什么区别?
经过一番搜索,老高总结如下:
使用到的命令
mysql>status;
mysql>show grants;
类Unix系统下,如果不使用-h指定主机名或者使用了localhost,那么会使用unix domain socket与mysql服务器沟通,比TCP/IP快一些!所以你想使用TCP/IP协议,请将host指定为'127.0.0.1'。
PHP连接mysql如果使用'localhost'发生问题,首先可以明确的是PHP会试着使用unix domain socket与服务器连接,所以请检查php.ini中mysql.default_socket = /var/mysql/mysql.sock
是否配置正确。
如果想要明确连接方式,可以再配置文件中显式声明
protocol=tcp
.
在win下强制使用pipes。If the MySQL server is running on Windows, you can connect using TCP/IP. If the server is started with the --enable-named-pipe option, you can also connect with named pipes if you run the client on the host where the server is running. The name of the named pipe is MySQL by default. If you do not give a host name when connecting to mysqld, a MySQL client first tries to connect to the named pipe. If that does not work, it connects to the TCP/IP port. You can force the use of named pipes on Windows by using . as the host name.
Reference:
http://stackoverflow.com/questions/19712307/mysql-localhost-127-0-0-1 http://stackoverflow.com/questions/3715925/localhost-vs-127-0-0-1 http://dev.mysql.com/doc/refman/5.5/en/can-not-connect-to-server.html http://madproject.com/general/connect-to-mysql-using-localhost-instead-of-127-0-0-1-on-a-mac/ http://stackoverflow.com/questions/9714899/php-mysql-difference-between-127-0-0-1-and-localhost http://superuser.com/questions/744972/connecting-to-mysql-from-127-0-0-1-instead-of-from-localhost http://blog.csdn.net/xifeijian/article/details/12879395 http://blog.csdn.net/topasstem8/article/details/18357789
昨天晚上用wget
命令下载了WOW客户端,要是搁到往常,还必须开机电脑下载,现在只需要再路由器的ssh里执行以下即可!
离线下载BT和ED2K还在研究中
wget http://wow.zip 2>&1 >/dev/null &
你是不是已经厌倦了每次git push
的时候每次都要输入用户名密码,使用下面的方法可以让你使用ssh协议通过密钥验证的方式让你得到解脱。
有两种修改方法
不过再实施前,请先准备好自己的密钥
ssh-keygen -t rsa -C "your_name"
然后登录https://github.com/settings/ssh,添加当前计算机的~/.ssh/id_rsa.pub
公钥内容到github。
之后我们使用ssh [email protected]
验证是否添加成功,如果返回以下内容,即代表添加成功!
Hi phpgao! You've successfully authenticated, but GitHub does not provide shell access.
下一步就是让我们的git使用公钥验证。
保存你的最后一次修改并提交。
删除项目
使用下面的命令clone项目
# 采用ssh的方式克隆项目
# someaccount/someproject.git 中 some account为github用户名/someproject为仓库名
git clone [email protected]:phpgao/BaiduSubmit.git
git remote set-url origin [email protected]:someaccount/someproject.git
顺便提一下,老高的git push
总是报warning: push.default is unset
错误,今天终于知道为啥了。原来是版本兼容性的原因,低版本的git push
如果不指定分支名,就会全部推送,而新版只会推送当前分支。
解决的办法也很简单,我们只需要明确指定应该推送方式即可,至于选择哪种方式,It's up to you.
# 全部推送
git config --global push.default matching
# 部分推送
git config --global push.default simple
完