Skip to content →

分类:技

没有那么美好的语音输入

老罗这次的相声讲得一如既往得好听,听得我都要吃安利了。Smartisan手机除了丑,基本上没什么让我觉得不好的地方,尤其是在出了黑色款之后。白色充满了塑料的廉价感,而我看到的所有媒体在评论咖啡金的时候都会说:“这个颜色好不好看我们不多做评论……”。也许实体机的效果要比照片漂亮也不一定。

除了令人满意的硬件配置之外,这次最令人瞩目的就是老罗的“信息输入,编辑处理和打通应用边界的终极解决方案”了。包括“讯飞”,“三星”,和“微不足道的一小步”。

6 Comments

混一次更新(用curl进行测速)

前文介绍过一个在海外如何翻墙回国内的代理配置方法。然后又写了一个自动抓取免费代理服务器地址的脚本

这个脚本是有测速的,但是之前用的是ping测速,这就有两个问题

  1. ping 不稳定,毕竟不是TCP连接,所以这个延时不准确
  2. ping的是从自己的电脑到代理直接的延时,而非到目的地址的延时。

不过当时懒,就这么用了。

最近感觉这个功能不好用还不如没有,于是用curl代替ping重新测了一下速度。更新的脚本如下:

3 Comments

自动获取国内代理IP

前面写了一个用代理翻回国内的指南,需要从proxy-list.org这里找免费代理IP。

这里拿到的IP不稳定,所以总要去重新查询,回来更新pac文件。于是写了个脚本:

  • 查询免费
  • ping测
  • 找出来最快的更新pac文件

然后在服务器跑了个定时任务,每小时更新一次。

#!/bin/sh
date
echo -n > ip.txt
echo -n > ip_sort.txt
for i in $(seq 1 3)
do
    echo "reading page "$i"..."
    url='http://proxy-list.org/english/search.php?search=CN&country=CN&p='$i
    for ip64 in $(curl --silent $url | grep -P "Proxy\('.*'\)" | cut -d"'" -f2)
    do
        ip_port=$(echo $ip64|base64 -d )
        ip=$(echo $ip_port|cut -d":" -f1)
        time=$(ping -c1 $ip|grep from|cut -d" " -f7|cut -d"=" -f2)
        echo $ip_port":"$time >> ip.txt
    done
done
echo "sorting..."
cat ip.txt|sort -t: -k3 -nu|grep -v -P :$ > ip_sort.txt
ip=$(head -n1 ip_sort.txt|cut -d":" -f1,2)
sed -i-e 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}:[0-9]\{1,\}/'$ip'/g' SwitchyPac.pac
echo "========"

===============
更新了一版,时隔半年,修正了那个错误的测速……看这里

2 Comments

海外用户的国内在线音乐服务使用指南

Outline

  • 背景
  • 获得免费代理地址
  • 在网易云音乐PC客户端中使用代理
  • 在chrome中使用代理
  • 在OSX中使用系统全局代理

背景

这篇指南其实说白了就是一个翻墙教程。众所周知,由于版权所限,海外用户是无法自由使用国内大部分的在线流媒体服务的,包括网易云音乐,QQ音乐,豆瓣FM,以及包括优酷土豆,B站,搜狐视频等一些涉及到正版视频的在线服务。这篇指南的起因是因为这篇blog。博主给了一些方法,主要是基于JS脚本,但是适用范围有限,而且评论里面也出现各种人反馈问题,我才发现原来对很多人来说这是个问题。不过,

如果你只是想使用网易云音乐的话,强烈建议购买会员包。每月8元,真的不贵。而且更加安全,省事,且道德正确。

如果你不在意话费时间和精力,或者确实有其他需求,请继续阅读。

2 Comments

mac平台skype内放声音

好吧,先说一下需求。

我希望通过skype共享桌面。共享桌面的时候能同时传输电脑的声音。

这样就能用skype做游戏实况了,或者能和朋友一起看电影。

这个需要装soundflower 1.6,soundflower 1.6 的配置参照这里:

https://www.ptt.cc/bbs/MAC/M.1320517815.A.8EF.html

简单点说,就是把电脑的声音作为skype的声音输入。

但是我希望同时我还能通过话筒和朋友讲话。所以需要另一个软件,lineIn。

下载地址在这:

http://www.macupdate.com/info.php/id/11333/linein

通过这个软件,可以修改声音的输入和输出。这里输入是麦克风,输出改为soundflower,而soundflower又是skype的声音输入,这样麦克风的声音就能传到skpe里面了。

==============================

今天有同学问我具体怎么设置。

稍微讲明百点,其实是这样。

    1. soundflowerbed
      如果我没记错的话,Mac本身录屏的时候,好像是只能用麦克风输入。也就是说,电脑内置的声音输出(你的耳机或者音箱)的声音是不能作为输入的。
      因此,你用普通的quicktime录屏的时候,只能录到自己麦克风的声音。用skype的时候也是。
      soundflowerbed是soundflower 1.6 自带的工具,就是为了解决这个问题。
      这个软件的作用是,虚拟了一个[多重输出接口],可以把电脑输出的声音同时输出给耳机(内置输出)和2ch。然后你的quicktime的音频输入设置为2ch,视频中就能录到电脑内部的声音了。

 

    1. lineln
      soundflowerbed设置完成之后,你还是只能二选一,要么录电脑声音,要么录麦克风的声音。
      lineln这个软件的作用是接管你麦克风,控制它的输出对象。
      默认麦克风的输出是[内置输出],不过你现在的quicktime的输入是2ch了,所以你只要用lineln把麦克风的输出改成2ch,这样quicktime就能收到你麦克风的声音了。

 

lineln不需要特别的配置,打开之后,可以选择声音的输出端,选定之后开启生效就行了。

soundflowerbed的配置,主要是建立多重输出接口。我很久没用,细节记不清楚了。你可以参考我给出台湾PTT社区的帖子链接配置。

========

再次更新。

XOS 10.11 之后soundflower 1.6就不兼容了。好在Github上soundflower
更新了2.0版本。需要注意的是,如果你没有装过soundflowerb1.6,你需要先安装这个版本,因为soundflower 2.0 并没有附带soundflowerbed。你需要用soundflowerbed设置多重输出接口。

Leave a Comment

发现两个漫画网站被黑

今天发现

www.99770.cc

99mh.com/

两个漫画网站被黑了。其中99770这个网站在百度搜素漫画的时候排名还很靠前。

页面加载完成之后会跳转到

http://www.vs20.com/?40

显示“钓鱼岛是中国的”这种图片。如下图

看起来应该是页面被注入了js脚本,通过windows.location跳转出去,跳转后无法通过后退按钮返回。

但是我没找到具体注入的脚本。也许是使用了其他方法。

Leave a Comment

js虾米刷点赞成就

今天发现虾米有一个点赞成就,达到成就后可以开通VIP

虽然我几乎用不到VIP,但是这个给好友状态点赞的感觉还挺好拿的,但是三星成就就需要100个赞……嗯,用js刷一下好了

先打开好友状态页面,往下滚动尽可能加载出来更多的状态,然后在chrome控制台执行下面js代码:

i=1;

setInterval("i++;$('.comment_like')[0].children[0].click();$('.item_wrap')[i].click();alert(i)",5000)

嗯,由于需要等待ajax,所以每个赞需设置为等待5s。去干点别的等等好了╮(╯▽╰)╭

Leave a Comment

Chrome 自用扩展推介

下面是我用过的比较好的chrome扩展。
有一些扩展本身也很好,但是我现在没在使用,所以这些就不截图了。
先把当前正在用的一些推荐一下:
1.fawave

fawave.png
如图。fawave是一个无缝管理多微博账户的插件。安装完之后会在地址栏右侧出现图标。点击图标可以看到如上界面。
此插件是一个杀手级的应用,甚至有人因为这个插件而放弃FF投奔chrome。
插件支持国内所有常见微博,包括新浪腾讯网易搜狐饭否嘀咕豆瓣等等。同时支持twitter。支持api。

Leave a Comment

PSP3000 过度放电导致锁电

昨天把psp放在我手机的usb充电器上充电,结果貌似没有冲上去,我中间想找原因,强行开了几次机,导致过度放电了。

一夜过去,今天早晨发现,开机不能。怀疑是锁电,表现如下:

  • 电池放进去无法开机
  • 接入外接电源时,关机状态充电状态灯“橙色”不亮
  • 外接电源可以正常开机使用,查看电池状态,显示“电池余量:0%;电池状态:充电完毕;使用电源:外接电源;电池剩余时间:-”

对于锁电,网上大部分的说法是,把电池放电,方法五花八门。但是我这明显是没电了,肯定是没的放了。

Leave a Comment

一个基于Jquery的打字效果插件TypingCat

前段时间,要写一个页面,需要用到打字效果。在网上找到几个基于jQery的插件,但是有些太复杂,有些不太可控。于是干脆就自己写了一个。

用法和效果都比较简单,直接把html的代码写出来,看注释应该就知道怎么用了

首先需要在 <head></head> 中加载必要的插件

<head>
…
<script type=”text/javascript” src=”js/jquery.js”></script>
<script type=”text/javascript” src=”js/TypingCat.js”></script>
</head>

而html的body中有如下标签内容(用来承载打印效果的位置):

<body>
<div><a href=’#’>back</a></div>
<div id=’pra1′>
<div id=’word1′></div>
<div id=’word2′></div>
<div id=’word3′></div>
</div>
<div id=’pra2′>
<div class=’word1′></div>
<div class=’word2′></div>
</div>
</body>

然后需要做的是,在任意位置加入下面的代码(开始使用插件,示例是放在了head标签里面):

<head>
<script type=”text/javascript” src=”js/jquery.js”></script>
<script type=”text/javascript” src=”js/type.js”></script>
<script>
$(function(){
l_blink_speed = 300;    //’‘闪烁速度 speed ” blinking
l_blink = 14;           //‘’闪烁次数 times ” blink
l_blink_s = 8;          //‘’闪烁次数(少)times ” blink (fewer)
l_start = 2;            //how long to wait before a new line starts
l_start_q = 1;          //how long to wait before a new line starts (quick)
w_blink = 80;           //汉字打印时间间隔 speed of tying
hide_time = 2000;      //字体层隐藏速度 speed of hiding
wait = 1000;            //weit 3 second before start
typeWriter(“this is Pra1’s 1st words”,”#pra1″,”#word1″,l_start,l_blink_s);
typeWriter(“this is Pra1’s 2nd words”,”#pra1″,”#word2″,l_blink_s,l_blink);
typeWriter(“this is Pra1’s 3nd words”,”#pra1″,”#word3″,l_blink,l_blink_s);
typeWriter(“this is Pra1’s 4nd words”,”#pra1″,”#word3″,l_blink_s,-1);   //retype in the same div. -1 means this pragraph  will disappear after finishing typing
typeWriter(“this is Pra1’s 1st words”,”#pra2″,”.word1″,l_start,l_blink_s);
typeWriter(“this is Pra1’s 2nd words”,”#pra2″,”.word2″,l_blink_s,-2);   //-2 means this pragraph will not disappear and ” will blink without stop
})
</script>
</head>

真正产生效果的是typeWriter(str,pra_id,div_id,wait_before,cur_wait)

参数的意义分别是:

str:需要打印的文字,注意最好不要打印‘’这个符号,因为它作为光标使用了

pra_id:段落的id或者类名,从例子中可以看出,如果是传入id则用”#id”的形式,如果传入样式的类名则用“.class”的形式。文字的消失是以段落为单位的。

div_id:每一行用div层引起来,这里是段落中各个div的id或者样式类名。用法同上。

wait_before:上一行的光标闪烁次数,也就是说上一行打印结束后多久才开始打印本行。

cur_wait:本行结束是,光标的闪烁次数。

上面的一些变量有说明,可以自己修改调整各种效果的时间和速度。

效果可以看这里

下载在这里

Leave a Comment

日志统计脚本

今天同学说让我写个脚本统计日志。日志是一些ip的捕捉记录,根据协议的类型定义了一些ID和子ID。统计的需求是统计出各个类型的客户IP和服务IP。

这些日志是自动写入的,每天会根据日期生成一个文件夹,文件夹中每个小时生成一个日志文档。脚本要做的就是便利24个文档,读取内容进行分析。

由于需要把24个文档在一起分析,所以同学一开始的思路是:

对每一个类型进行统计,每次统计都遍历所有文件

明显效率不怎么样,但是实际上也够用了因为只要在服务器上让脚本跑起来,过几分钟回去看结果就行了

Leave a Comment

读取文件奇数行

今天处理“如何读取文件偶/奇数行”这个问题的时候,本来是打算用python来解决

python本身是很简单的,偶数代码如下:

f = open('./test.file','r')
while f.readline():
    print f.readline()

奇数行代码如下:

f = open('./test.file','r')
print f.readline()
while f.readline():
    print f.readline()

在网上想看看别人怎么做的,结果发现大部分是shell中的实现,尤其是用sed命令实现。以前没用过这个工具,居然这么简单:

读取奇数行:

sed -n 'p;n' ./test.file

读取偶数行:

sed -n 'n;p' ./test.file

-n:quite,就是不会将读取的文件行默认显示出来

n;p:这是两个命令,读取一行之后,对这一行进行两个操作

n就是直接读取下一行

p就是打印该行

于是效果就是,读两行打印一行

n;pp;n的区别就是先读还是先打印了,也就达到奇偶切换

Leave a Comment

海量数据处理总结

备战百度,在海量数据处理的主题上做一个总结。

详情来自http://www.cnblogs.com/pkuoliver/archive/2010/10/02/mass-data-topic-1.html

1.Bloom Filter

将数据通过hash函数映射到位数组,比如hash(str)=3则将位数组第三位置为1

对每一条数据都用k个hash函数进行映射,也就是一条数据会将位数组的最多k位的值置1

在查找数据是否存在的时候,则对其进行k次hash,如果位数组中对应的各位都被置1了,则说明该数据已经存在(明显是有一定错误率的)

Bloom Filter可以用来实现数据字典,进行数据的判重,或者集合求交集.

同时,对其进行改进,即位数组每一位不再是0/1,而是数据出现的次数counter,那么出现数据则+1,删除数据则-1,这样可以实现删除操作。

Leave a Comment

OpenVPN分析

OpenVPN

从架构上来看,OpenVPN在某种程度上和 tinc 或者和VTun 比较相近,它是一个基于用户模式(user-mode)的程序,通过 TUN/TAP 接口与 TCP/IP 栈进行通信。作为用户程序运行的 OpenVPN,带来了移动性和易维护性的优点,正如我们在 VTuntinc 中看到的那样。和 tinc 一样,OpenVPN 在VPN服务中使用两种通道:一个携带用户的IP数据报文的数据通道,一个处理“密钥交互和配置(key negotiation and configuration)这种协议事务的控制通道。

OpenVPN 把两个通道都封装在UDP数据包中。两个通道使用相同的端口,所以一个给定的数据报既可以包含数据通道数据也可以包含控制通道数据。因为OpenVPN使用TLS协议进行认证和密钥交换,而TLS需要一个可靠的传输层,所以OpenVPN在控制通道中添加了一个可靠的层。这样保证了TLS所需要的可靠性,但是在数据通道中没有高可靠性的层( but that there will not be competing reliability layers on the data channel),所以我们在SSL和SSH VPN 中看到的干扰现象不会发生。

Leave a Comment

eclipse的配置问题,漫长的环境配置之路

因为要和老师做jsp的开发,所以这两天就做了一些功课。win7下面的环境倒是还算顺利,一路配置下来,无非就是sdk,mysql,eclipse,tomcat。这些网上的教程都是大堆大堆的,这里就不罗嗦了。
但是,最近一直尝试过渡到linux下面,所以就在ubuntu找了以下相关软件。

需要的软件,navicat,eclipse,mysql等等都有linux版。(navicat的linux版是免费的,win下面是收费的还要破解……)不过中间出了一些问题。这里贴出来,希望那些通过谷歌找到这篇文章的同学能有所帮助。

先说一下,我主要想说的是eclipse中出现java.sql无法引用的问题。
关于这个问题,网上的说法很多都是说环境变量CLASSPATH配置的问题。从原理上来说,确实是有这个可能,但是我的不是这个问题。如果又遇到相同问题的同学,而且通过修改classpath没有解决,可以直接跳过一,从二开始。

Leave a Comment