DEAD MAN CODING

FOOOLING.COM

一个因为没看清楚mysql版本引起的xx

Oct. 18, 2014, 12:50 p.m.

升级10.10后,重装了homebrew,死活装不上MySQL-python这个包

总是提示


fooling@fooling-2:~$ easy_install MySQL-python

Finished processing dependencies for MySQL-python
fooling@fooling-2:~$ python
Python 2.7.8 (default, Oct 19 2014, 11:46:44) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.51)] on darwin
Type "help", "copyright", "credits" or "license" for more ...

阅读全文

说说Google authenticator这玩意

Aug. 23, 2014, 6:38 p.m.

如果你用过“支付宝钱包”里面的那个“手机宝令”,就应该对这玩意的形式不陌生。

Google authenticator(https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2)

好吧中文名叫“身份验证器”

目前支持两种模式:


1. 基于时间,TOTP 
2. 基于计数器,HOTP


而我们熟悉的这种方式就是基于时间,离线地根据一个时间戳和秘钥来生成一个6位数密码。

基于时间的TOTP可以简单认为是基于计数器的,将时间戳简单除以30并取整再丢给HOTP就可以了。

即 TOTP(timestamp) == HOTP((int)(timestamp/30))


也给出一个python的实现


import hmac
import struct
import hashlib
import time ...

阅读全文

我看到的SDN

Aug. 17, 2014, 11:47 a.m.

之前预告了要讲讲SDN的,后来发生了若干次博客荒芜事件。。最后不了了之。其实我的内心也是很想写博客的,每次想写的时候发现博客没法上传图片就停下来了。。 昨天狠下心终于用阿里云的OSS解决了博客上传图片的问题。可以看到图片的链接已经是华丽丽的aliyuncs.com

——题记

恩,去年夏天实习完后,就不得不进入了毕设阶段。毕设的老师选的是大二的《局域网和城域网》这门课的任课老师。

简单交流之后,就确定了我们的关系。呵呵呵。

然后他告诉我,我可以去看看NOX控制器。本来在这方面没有啥经验,听到XXX控制器感觉瞬间高大上。实习了一个暑假的Java结果又要用C++来做毕设,心里也比较呵呵。不过觉得也是锻炼机会,就接手了。

其实在那个时候我对交换机这一块完全没接触过(虽然自己各种折腾家里的路由器),我还在想SDN和CDN之间是不是有什么关系呢。。。蛤哈。。


于是,我与SDN的故事就这么开始了。


首先,不谦虚地,我说说传统交换 机吧。传统交换机分为两层:控制层和转发层(或者你可以说是控制面和数据面)

恩,多图杀猫。。。。。

就像图上这样。。

而SDN做了个什么事情呢?

答:就是把控制层抽了出来,使得多台交换机被一个控制层来控制。这样,只需要更改软件定义的控制层就可以在不更改硬件的情况下重写整个网络 ...

阅读全文

试试OSS

Aug. 17, 2014, 1:20 a.m.

先来个酷炫的。。

呵呵,前段时间阿里云搞了个免费试用,正好博客的图片还没做。就正好试用试用,API看起来比较全,常见几个语言的SDK都有。

我估计也就是开了个HTTP服务,随便找个语言研究下就能找到接口,这个不是重点。

OSS用上后图片加载就不会隔着一堵 q i a n g 了

恩。其实我就是想写博客发现没法上传图片才开始做图片功能,然后灵机一动用OSS存了呵呵呵呵呵

阅读全文

分布式关系型数据库中的group by和order by

Aug. 16, 2014, 12:57 a.m.

今天使用TDDL5,做一个查询的时候,遇到了使用临时表的问题。

我当时使用了诸如

SELECT xxx 
FROM table 
WHERE xxxxxx
GROUP BY A
ORDER BY B  

的语法,服务器报了一个SQL错误,告诉我不能创建临时表,除非指定。

于是突然想起了梦实多次答疑提到的这个问题。

其实,在分布式的场景下,一个group by的执行会被TDDL5的优化器转换成 order by  在各个分表中下发查询。

这是为什么呢?

这就不得不考虑到这个聚合如何在分布式场景下执行了。

每个分表查询的数据取出后需要做一个group by的话,通常分段有序是最高效的,这个看看复杂度就懂了。。

于是转换成了order by后,再group by,就相当于执行了 order by A , group by A 。 这时结果是对A有序的。

这时如果再要对B有序,就麻烦了。。我们的做法是,建立一个临时表再来order ...

阅读全文

友情链接