前段时间一直没写博客,昨天更新了一篇,今天突然又来了兴致,那就再更新一篇吧(所以说啊,治疗拖延症最好的方法就是现在开始做)

这篇还是一些技术的整理,主要是用于备忘,大家如果觉得太简单就一笑而过啦~

一. python通过图片内容判断图片类型

前段时间写了一个小站练手,http://xiangshuguo.com,一个支持自由上传的图片小站。

因为要限制上传图片的格式,所以要做文件类型检测,代码如下:

二. stringstream使用陷阱(1)
我直接举一个例子吧

这个代码是没有问题的,结果会是:

如下的代码:

也是没有问题的,输出也是:

然而这样的代码:

输出将会是:

好吧,看了文档才发现,当 stringstream将数据导出到一个字符串变量时,它会用空格分割。
但说实话,同一个操作符,意义却不一样,这真挺让人纠结。。

三. stringstream使用陷阱(2)
如果你习惯了C分割的atoi直接将空字符串转成0,那么用stringstream时,千万不要做这种事情,因为如下代码:

输出将并不一定是0。

四. MySQL多库表的查询方法
腾讯内部使用MySQL数据库都是分库表的,所以在mysql中想手工查询个数据都会变得非常困难,所以这里放个简单的模板,要用的时候,只要用vim对应生成一下就可以了

五. MySQL安全删除数据的做法
这个其实是来自公司DBA的建议啦,这里分享一下

关于delete,我这里建议你们 做任何的delete操作之前先执行如下备份语句:

恢复语句:

还有一个习惯, 如果确信自己删的数据只有一条 加个 limit 1

OK,就这样

C++模板的几个应用

C++的模板其实是个挺纠结的东西,用的不好的话,编译的一堆错误够你调到崩溃,但要是用的好呢,又确实非常方便,我们来看看 一.获取数组长度 比如 ...

阅读全文

又见C++诡异问题

用C++越久,越是觉得C++太多陷阱,真是防不胜防。 我们看这样一段代码: C++ #include <stdio.h> using namespace std; ...

阅读全文

代码即数据,数据即代码(1)-把难以变更的代码变成易于变更的数据

相信对于这个标题,用过lisp的朋友一定不陌生,本来也是准备了一大堆理论要讲,想了想还是直接举例子比较好。 就举最近产品提的一个产品需求吧,简单描述一下...

阅读全文

20则回应给“最近的一些技术整理(20120109)”

  1. 依云说道:

    呃,第一个,我直接调用 file 命令的~

    [回复]

    Dante 回复:

    哈,我就知道发出来是有好处的,依云详细说说说?

    [回复]

    依云 回复:

    不说,只贴链接 :-P
    https://github.com/Vim-cn/elimage/blob/master/main.py#L30

    [回复]

    Dante 回复:

    咦,这个貌似是通过文件名来区分的?这个不太安全吧?

    [回复]

    依云 回复:

    后边上传时是通过文件名区分的,浏览器访问时是用 file 命令检测的。所以,这里不仅可以上传图片,还可以上传其它东西哦~
    记得标记过 FIXME 还是 TODO 的,不过我觉得这样方便啊。

    [回复]

  2. wujiwh说道:

    Tested! 我上传了一张Vim_command,很不错的小站,简洁,实用!但是垃圾图片的自动清理也是个问题吧

    [回复]

    Dante 回复:

    哈哈,看到了~~
    嗯呢,我也在考虑怎么保证自由的情况下又能减少垃圾。。

    [回复]

  3. IceQ说道:

    问下博主 “如果确信自己删的数据只有一条 加个 limit 1” 这种做法有什么依据? 我只是去测试了下查询时间 发现加了貌似还变慢了 求解~

    [回复]

    Dante 回复:

    这个只是为了防止误删多条哈,没别的意思哈

    [回复]

  4. Zind说道:

    1. stringstream 使用陷阱 (1)
    那个应该不是 stringstream 的问题,而是输入操作符 >> 的问题:
    用输入操作符 >> 写 string 对象时,空白字符(” ‘\t’ ‘\n’)将会被忽略
    2. stringstream 使用陷阱 (2)
    stringstream 是流类型,比较特殊,使用时确实不容易把握
    但是,string 类型(即便为空)貌似不能转化为 int 类型使用吧?
    下面的用法非法:

    [回复]

    Zind 回复:

    被转义了,再试一次:

    [回复]

    Dante 回复:

    嗯? 我没有用string直接转int呀,我是用stringstream在转~

    [回复]

  5. joel说道:

    图片小站也是用的bottle吗?

    [回复]

    Dante 回复:

    对滴~ 哈哈
    结构基本就是这篇文章分享的:
    http://www.vimer.cn/2011/12/bottle%E5%81%9Aweb%E5%BC%80%E5%8F%91%E7%9A%84%E7%89%A9%E7%90%86%E8%AE%BE%E8%AE%A1.html

    [回复]

    joel 回复:

    能否分享下源码供学习下呀?

    [回复]

    Dante 回复:

    等站完善一些,会考虑开源哈

    [回复]

    joel 回复:

    主要是想看看学习下数据库部分的, 现在这样就可以,不需要代码太漂亮啦

    [回复]

  6. zhuizhuziwo说道:

    四. MySQL多库表的查询方法
    腾讯内部使用MySQL数据库都是分库表的,所以在mysql中想手工查询个数据都会变得非常困难,所以这里放个简单的模板,要用的时候,只要用vim对应生成一下就可以了

    我们部门都使用phpMyAdmin,而且对里面的查询语句进行了一个处理。$i这个符号代表分表的情况如(1-9)。在后台默认进行对多个表处理。
    仅供参考。

    [回复]

  7. moper说道:

    呼呼,支持分享~我只能来凑热闹了

    [回复]

  8. [...] 来源:http://www.vimer.cn/2012/01/%E6%9C%80%E8%BF%91%E7%9A%84%E4%B8%80%E4%BA%9B%E6%8A%80%E6%9C%AF%E6%95%B4… [...]

发表评论