Category Archives

147 Articles

树莓派忘记登录密码怎么办

6   81229 转为繁体

借给同学之后自己把密码忘了……雅蠛蝶……可惜没把显示屏带回来,查了一圈之后灵机一动(* ̄▽ ̄)y

如果你有显示屏+USB键盘

  • 将SD卡插入电脑(windows下只挂载boot分区)
  • 打开boot分区,编辑command.txt(注意不要用记事本,可能会换行符坑爹)
  • 在第一行末尾加上init=/bin/sh,完成后大概是这样
  • 插卡,重启,连接键盘显示器
  • 出现shell后用passwd更改密码

没有的话呢?

  • 想办法让电脑和树莓派连通,可以用路由器,或者电脑装个dhcpd等
  • 生成一对密钥对,注意必须是openssh兼容格式而不是putty等密钥格式
  • 使用一个流行的linux发行版,将SD卡插入电脑;如果是老旧的版本,你可能需要手动挂载SD卡里的ext4分区
  • 进入/分区,在/root下建立一个.ssh文件夹(如果没有的话),并chmod 700
  • 在/root/.ssh/下建立一个文件authorized_keys,并chmod 600
  • 将公钥内容写入新创建的文件中
  • sync,umount
  • 插卡,重启,ssh使用root账户连接,并指定刚才的私钥
  • passwd修改密码

Coreseek4.x/5.x编译和一些注意事项

0   11494 转为繁体

使用ubuntu/debian系统32位的可以在这里下载我编译好的coreseek5/csft包

对于>2.2.10的版本,我在这篇博客里提供了完整的补丁,可以应用在sphinx的源码上编译。

编译mmseg

 编译coreseek5

自动脚本有一些bug :

  • 手动运行一次autoconf和automake
  • ./configure xxxx之后,修改src/Makefile在LIBS加上-L/usr/local/mmseg3/lib  -lmmseg
  • am__object_1 增加 tokenizer_zhcn.$(OBJEXT)
  • SRC_SPHINX增加tokenizer_zhcn.cpp
  • gcc 5.不知道多少版本以后会脑残,sphinx.cpp里有个地方要加上this->,忘记具体变量了,没关系gcc会告诉你在哪的

 

如果用4.1的话不能用最新版的sphinxclient,可以去sphinx_php_api的trunk里找define ( “VER_COMMAND_SEARCH”, 0x117 );的版本(0x117 ->1.23)

 

最后贴一个图来表达对xunsearch的…………

又慢(搜索比sphinx慢5~10倍,索引体积比原始数据大7倍,比sphinx大21倍),结果又少(mysql模糊搜索≈coreseek搜索≈740+,这货只有114,$search->count获得的精确值是286条)

另外ini文件名和里面填的project_name不一致会神作

告诉我是我打开方式不对

Memcached扩展的一些坑及强迫症专用PV统计的实现

0   43734 转为繁体

以下针对PHP的Memcached扩展

  • increment/decrement/touch方法必须使用binary protocol($_mc->setOption(Memcached::OPT_BINARY_PROTOCOL,true)),且连续执行两个请求必须先关闭之前的才可以
  • $expiry参数可以是UNIX 时间戳也可以是当前秒数,秒数大于30天会被认为是时间戳,要设置用不超时可以设为0
  • 启用binary protocol后increment/decrement的返回值可能类似1 15415 a2d1,←注意是类似这样的,没关系加个intval就行了
  • 看php.org文档的时候下面的用户留言比上面的有用得多

强迫症专用PV统计

强迫症认为PV统计漏掉一个IP就会浑身难受

在需要统计的页面的PHP中嵌入一下代码

每个ip一小时内访问相同页面只计一次;注意要先touch再increment,因为increment并不会增加超时时间,如果增加了还没被读就超时就杯具了;反之如果key不存在touch一下也不会怀孕;每当一个新用户访问,增加生命值10min

cron定时入库

 

注意这里不能用delete,因为delete可能会使数据丢失,但是decrement就没关系了

awk(又是awk)高亮显示nginx日志

7   13330 转为繁体

请叫我awk小(nao)王(can)子(fen)

效果

awk分析日志统计当日热门页面

0   26166 转为繁体

不想写python,而且我比较相信awk+uniq+sort的速度

  •  cron的时区很奇怪,不会调,系统时间是+8,tail /var/log/syslog之后发现是西五区,手动+13小时 可以通过修改localtime,修改完之后重启service cron(还是重启系统好了)参阅
  • 第一步取出所有日期是今天且响应是200的请求,打印请求ip和请求uri
  • 第二、三步对(ip uri)排序,去重,单个ip访问单个页面只会被记为一次
  • 打印uri,去重,排序,显示前50个

 

time计时

52M日志,26w条

134M日志,加上了两个自定义条件,65w条

小站可以考虑

在某网站中使用的字幕文件名猜测视频文件名的算法

2   71914 转为繁体

觉得有点意思,拿出来和大家一起研究下,欢迎提供更好的建议。

因为爬x手的时候,网页已经没了,只能自食其力;用unrar(rarlab上下的,apt-get里的太古老)获得rar内的文件名,用zipfile模块列zip包的,抓的时候直接把返回的内容插到数据库了,没分析,因为没那么多时间去想算法,还是先把dirty data撸下来再说。

然后开始正文了www

按照这么一个基本思想,字幕文件名除了扩展名以外,其余部分和视频文件是一样的。如果压缩包里面只有一个文件,那么直接就是它去掉扩展名就好了;但是如果有多个版本的字幕(比如eng,GB,BIG5等),那就需要一个字符串最大匹配的算法。←为了装B取的名字
Read More