今天拿小米手机去拍了一些照片回来,在电脑查看经纬度后在百度地图api用经纬度定位怎么都不正确,一直以为小米记录的gps信息是不对的,后来发现在picasa里面的照片定位是对的,所以猜这个可能是单位的问题。

去百度了一翻,原来照片属性里面的经纬度信息是以度分秒的形式显示的。在百度地图api里面定位需要转换成小数的形式。

转换公式如下:

度+(分+(秒/60))/60

28度7分46.4秒转换成小数:

28+((分+(秒/60))/60)=28.12956

首先要去 https://github.com/rooney/zencoding 这里下载一个zencoding-mode:

wget https://github.com/rooney/zencoding/raw/master/zencoding-mode.el

将下载过来的文件放到~/.emacs.d/plugins目录下

然后在.emacs文件里面添加以下配置

1
2
3
(add-to-list "~/emacs.d/plugins")
(require 'zencoding-mode)
(add-hook 'sgml-mode-hook 'zencoding-mode);;配置到sgml-mode-hook,让它自动启动

示例图

tip

输入类似 div.item*5>span这样的代码后按C-RET就可以展开。

最近在用tornado写新的博客程序,进度非常的慢,一个是对tornado还不了解,另一个原因就是自己很懒,偶尔才写一点点(其实这个是主要原因)

想要在tornado里面使用reverse_url来反查url,实现flask里面的url_for的功能那就要在路由配置里面使用web.URLSpec函数添加路由

1
[web.URLSpec(r"/",IndexHandler,name="index")]

然后使用reverse_url的时候提供name值

1
reverse_url("index")

如果name值不存在似乎会出错。

最近在学习emacs,所以就想用emacs来做为git的默认编辑器,而且在用ssh登陆vps的时候,只有emacs能很好的显示中文,vim显示的有问题。

配置git的默认编辑器的命令如下:

git config --global core.editor emacs

以前在verycd上面下载高清电影的时候经常会看到一些.par2文件,当时一直不知道是干什么用的。通过度娘的查找才知道原来这个是quickpar软件生成的一些冗余纠错数据。下载高清影片都十来个G的数据,如果中间出错了会很痛苦,现在有了par2,可以用这个来纠错。冗余度越高,能纠错的范围就越大。但这个quickpar是windows上的软件,好在linux下有个命令行的par2。

在ubuntu上安装par2:

sudo apt-get install par2

在archlinux上安装par2:

pacman -S par2cmdline

英文提示如下:

par2cmdline version 0.5.4
Copyright (C) 2003 Peter Brian Clements.
Copyright (C) 2011-2012 eMPee584.
Copyright (C) 2012 Ike Devolder.

par2cmdline comes with ABSOLUTELY NO WARRANTY.

This is free software, and you are welcome to redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version. See COPYING for details.


Usage:

  par2 c(reate) [options] <par2 file> [files] : Create PAR2 files
  par2 v(erify) [options] <par2 file> [files] : Verify files using PAR2 file
  par2 r(epair) [options] <par2 file> [files] : Repair files using PAR2 files

You may also leave out the "c", "v", and "r" commands by using "par2create",
"par2verify", or "par2repair" instead.

Options:

  -b<n>  : Set the Block-Count
  -s<n>  : Set the Block-Size (Don't use both -b and -s)
  -r<n>  : Level of Redundancy (%%)
  -c<n>  : Recovery block count (Don't use both -r and -c)
  -f<n>  : First Recovery-Block-Number
  -u     : Uniform recovery file sizes
  -l     : Limit size of recovery files (Don't use both -u and -l)
  -n<n>  : Number of recovery files (Don't use both -n and -l)
  -m<n>  : Memory (in MB) to use
  -v [-v]: Be more verbose
  -q [-q]: Be more quiet (-q -q gives silence)
  --     : Treat all remaining CommandLine as filenames

If you wish to create par2 files for a single source file, you may leave
out the name of the par2 file from the command line.

平时创建par2文件只要用:

par2 c -r3 -n1 a.mp4.par2 a.mp4

-r3是指3%的冗余,-n1是只用一个冗余数据文件,如果不加这个会出现很多个par2文件。

今天跟同学聊最近制作的一个网页的时候提到firefox浏览器,然后就去查看了一下,发现出了10.0。所以就跑去升级了,在windows上升级这个一切顺利。然后就想着把虚拟机里面的firefox也升级一下。

虚拟机里面装的是archlinux,升级很方便,直接输入以下代码就可以升级了:

pacman -Sy firefox firefox-i18n-zh-cn

然后去把chromium也升级了一下:

pacman -Sy chromium

想打开看看效果的时候就悲剧了,居然打不开。看了一下错误提示,firefox提示libvpx错误,我就去把libvpx也升级了一下:

yaourt -Sy libvpx

升级完成后,再次尝试打开,提示需要libpng14.so。我看了一下自己机子上的版本是libpng15的,知道缺这个了,就去想办法搞个14的回来。跑yaourt里查看了一下,发现有14的版本,那就直接装吧:

yaourt -S libpng14

装好后,一切正常了,两个浏览器都可以打的开了。archlinux升级的时候还是需要小心点,没事不要乱升级。如果是虚拟机的话就先弄个备份,以免出错了变不回来。

pacman -Sy abc              #和源同步后安装名为abc的包 
pacman -S   abc             #从本地数据库中得到abc的信息,下载安装abc包 
pacman -Sf abc              #强制安装包abc 
pacman -Ss abc              #搜索有关abc信息的包 
pacman -Si abc              #从数据库中搜索包abc的信息 
pacman -Q                   #列出已经安装的软件包
pacman -Q abc               #检查 abc 软件包是否已经安装
pacman -Qi abc              #列出已安装的包abc的详细信息 
pacman -Ql abc              #列出abc软件包的所有文件
pacman -Qo /path/to/abc     #列出abc文件所属的软件包
pacman -Syu                 #同步源,并更新系统 
pacman -Sy                  #仅同步源 
pacman -Su                  #更新系统
pacman -R   abc             #删除abc包 
pacman -Rd abc              #强制删除被依赖的包
pacman -Rc abc              #删除abc包和依赖abc的包 
pacman -Rsc abc             #删除abc包和abc依赖的包 
pacman -Sc                  #清理/var/cache/pacman/pkg目录下的旧包 
pacman -Scc                 #清除所有下载的包和数据库 
pacman -U   abc             #安装下载的abs包,或新编译的abc包
pacman -Sd abc              #忽略依赖性问题,安装包abc 
pacman -Su --ignore foo     #升级时不升级包foo 
pacman -Sg abc              #查询abc这个包组包含的软件包

如何提高mysql load data infile的速度

测试数据2.5G,共有数据9427567条。用的mysql的large服务器的配置。load一次需要大概10分钟左右。建的表用的是MYISAM,调整了几个session的参数值

1
2
SET SESSION BULK_INSERT_BUFFER_SIZE=256217728;
SET SESSION MYISAM_SORT_BUFFER_SIZE=256217728;

运行结果如下:

Query OK, 9427567 rows affected, 1558 warnings (3 min 55.21 sec)
Records: 9427567 Deleted: 0 Skipped: 0 Warnings: 0

google到的还可以

1
2
set global KEY_BUFFER_SIZE=256217728;
alter table tablename disable keys;

如何load数据里面带反斜杠(backslash)””的数据

由于如果你没有指定FIELDS子句,则默认值为假设您写下如下语句时的值:

FIELDS TERMINATED BY ‘\t’ ENCLOSED BY ” ESCAPED BY ‘\’

所以,如果你的数据里面有反斜杠(backslash)””的时候,数据会出现被截断的问题。出现这种问题,只要写上如下的fields子句即可:

FIELDS TERMINATED BY ‘\t’ ENCLOSED BY ” ESCAPED BY ” 

如何load不同编码的数据

原来用的4.X的mysql,我是select INTO OUTFILE ,只后用iconv,或者其他软件来做。可以参考这里,但是由于这次数据大,用ultraedit等软件打开都要半天。好在新版的mysql可以增加一个新的参数:

CHARACTER SET gbk

我的文本数据是GBK的编码,数据表是utf8的,用这种方法测试成功。

如何load的时候只insert特定的列

比如表里面有比元数据多的列。可以在load的时候指定要插入的字段名字。

示例的代码如下:

1
2
3
4
5
6
LOAD DATA INFILE '~/data.txt'   
INTO TABLE fb0505
CHARACTER SET gbk
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY ''
LINES TERMINATED BY '\n' STARTING BY ''
(seller_id,fb_type,fb_date,item_url);

其中表fb0505里面还有一列是id。 :

Popularity: 20%

转自: http://www.juyimeng.com/mysql-load-data-infile.html

1
2
3
4
5
6
7
from timeit import Timer
from functools import partial
def a(v):
return (v,v)

t = Timer(partial(a,5))
t.timeit(100)#100为执行一百次的时间

刚开始安装了Ubuntu 11.10的时候觉得Unity界面挺好看的,但自从上次安装tortoisehg失败后就想着换掉它。最后把hg换成了git,Unity换成了Gnome。在真机上使用的时候Gnome的效果还是非常不错的,但在虚拟机里面就太卡了,所以就想找一个容易速度快点的,然后就瞄上了Xfce4。

1、安装xfce4

直接使用如下代码就可以安装xfce4:

sudo apt-get install xfce4

2、卸载掉Unity

sudo apt-get -y --auto-remove purge unity
sudo apt-get -y --auto-remove purge unity-common
sudo apt-get -y --auto-remove purge unity-lens*
sudo apt-get -y --auto-remove purge unity-services
sudo apt-get -y --auto-remove purge unity-asset-pool

注意:不能用 sudo apt-get –auto-remove purge unity*,看软件包列表里,有不少跟UNITY无关的也列出了。 而且 unity-greeter 必须保留。如果删了,自己蹲墙边哭一会儿再想办法。

然后进系统的时候选择xfce4,速度果然快很多。但虚拟机依旧不是很给力,速度也没archlinux快。archlinux就是要自己调的地方太多了。