emacs的tramp连接远程挂掉的问题解决

大约从去年的年初开始,我通过emacs就没办法正常的通道ssh访问远程系统中的内容了。这 个问题一直困扰着我,以致于我都想完全切换到vim了,这也是我现在使用的配置中使用了 evil-mode的由来。

其实这个问题在我这边表现的比较怪异,比如,我通过pscp访问openwrt的路由器,则没有 问题,访问远程的某个服务器(ubuntu系统),也没有问题,访问raspberry pi,有问题, 访问远程windows中的cygwin(我开通了cygwin的ssh服务),有问题。总之,看上去既和 操作系统有些关系,又和一部分软件有关,我甚至使用了默认的安装也是相同的结果。

从去年年初到现在,问题就这么一直困扰着我,虽然我尽量避免这种情况,但心头始终牵挂 着。直到上周,我重新在考虑shell的问题的时候,发现了端倪。

很早之前从网上便获知,shell可能会引起一部分问题,但我所有的测试环境都使用的是相 同的shell: bash,关于相关shell的设置,我也做了制定,但都没有解决我的问题。上周我 在连接局域网中的电脑和阿里云的远程主机的时候,发现这两个都可以访问,局域网中的电 脑用的是ubuntu 12.04,而阿里云用的是14.04(没记错的话),而家里的e9卡片式电脑, 却不可以,e9卡片式电脑用的是ubuntu 12.04,三个用的都是bash,甚至版本都有相同的。 但我注意到,e9卡片式电脑中的shell的PS1部分出现的是带颜色的,而其他的两个都不是带 颜色的,而从emacs的*Messages*中来看,出现下面的日志:

Unable to load color “PaleYellow” [2 times] Tramp: Opening connection for rix@172.10.1.199 using pscp… Tramp: Sending command `plink -l rix -ssh 172.10.1.199 && exit || exit’

Tramp: Waiting for prompts from remote shell Tramp: Sending password Tramp: Sending command `plink -l rix -ssh 172.10.1.199 && exit || exit’ Tramp: Opening connection for rix@172.10.1.199 using pscp…done Unable to load color “PaleYellow”

我注意到了有一个颜色相关的,我不知道这个到底是什么,无论是远程还是本地,我都没办 法找到这个叫”PaleYellow”的颜色相关内容。不过, 我找到了远程主机中与shell的PS1相 关的内容:

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
  # We have color support; assume it's compliant with Ecma-48
  # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
  # a case would tend to support setf rather than setaf.)
  color_prompt=yes
    else
  color_prompt=
    fi
fi

如果注释掉force_color_prompt=yes这一行,PS1将不会出现颜色,而这样一来,emacs访问 远程也正常了。

原来问题在这儿。。。。。

mysql数据库Super权限

从另外的一个服务器上转过来的数据库,原来的权限比较高,需要root用户,迁移之后,没 有root用户了,导入时出现如下的错误: ERROR 1227 (42000) at line xxxxx: Access denied; you need (at least one of) the SUPER privilege(s) for this operation 虽然给了所有权限,但依然是报错,可通过下面的方式解决: 手动更新mysql.user的相关权限,以root用户登录后,更改以下权限: update mysql.user set Super_priv=’Y’, Process_priv=’Y’, Grant_Priv=’Y’, Create_routine_priv=’Y’,Alter_routine_priv=’Y’, Alter_priv=’Y’ where user=’#USERNAME’ and host=’#HOSTNAME';

个人认为,可能更新下Super_priv就可以了

webview问题调查

这算是我最郁闷的一次调查了。刚开始是为了html5游戏能快速的兼容android,于是,便调 查在webview的表现等等,结果发现点击之类的在webview似乎非常的不灵敏,虽然我是通过 页面元素模拟按键事件的,但还是觉得无法忍受。

我起始以为是程序运行的速度太快,而模拟的按键消息发送的太慢,于是,调查各种方式, 以便解决按键的延迟问题。

等等一系列调查下来,我注意到了webview中的速度比浏览器中的速度慢很多很多,于是, 便推翻了之前的结论,转移到webview的执行效率上来了。

硬件加速,开启,还是相同的慢(我用的是nexus 5),看到网上说的关于webview的js执行 速度慢,考虑jit?,浏览android源代码中关于Browser中的代码,相关内容几乎采用相同的 机制,但还是没有任何效果。浏览android的webview的相关源代码,还是没有找到问题的原 因。

首先,我知道的事情是,硬件加速开启了,但在webview中的速度就是比自带的浏览器速度 慢,如果没有开启的话,webgl相关几乎就会罢工的。

其次,浏览器中自带的支持很多声音的,而webview却不支持,这比较怪,浏览android源代 码中相关的chrome代码,也没有发现有这方面的限制。

最后,在在线调试javascript代码的时候,我注意到浏览器用的并不是Browser.apk,而是 Chrome.apk,也就是说我从一开始便走错了路。没想到都已经是4.4.2了,竟然这两个还是 分开的,在我第一次关注这个的时候,这两个就是分开的,没想到还是分开的。

知道了问题的所在,剩余的事情就理所当然了。

这个坑爹的货啊,白白浪费了我将近一周的时间。

x86程序内存动态补丁拦截

这个算是之前关于外挂框架的一个继续,但主要是说程序的内存补丁的,适用于无法获取到 源代码而又想拦截或者调用目标程序中的相关指令或函数的方法。

一般情况下,我们使用长跳转指令0xe9(JMP XXXXXX)的方式跳转到我们自己的dll函数中去 执行代码,不同于很早很早之前的外挂教程使用的是消息通知的方法,这里其实也算是使用 跳转,但区别在于我们不用计算跳转的偏移。

继续阅读

闲暇之余的一点笔记