SSH tunnelling – TCP port forward from local dev to public facing ssh server

A little bg story: I’m writing a rails app, which is hosted inside the corporate network, and no incoming traffic is permitted. I need to expose the internal port 3000 to the public.

Short answer: SSH forwarding.

$ ssh -R 3000:localhost:3000 [email protected]

For some reason, the forwarding only works when I set both the local and remote port as 3000.

There is one more thing you need to do to enable this. SSH doesn’t by default allow remote hosts to forwarded ports. To enable this open /etc/ssh/sshd_config and add the following line somewhere in that config file.

GatewayPorts yes

Make sure you add it only once!

$ sudo vim /etc/ssh/sshd_config

And restart SSH

$ sudo service ssh restart

Source:
http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html
https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding

Enable apt-X on OSX Yosomite for bluetooth headphones

So I noticed that my Sony MDR-1RBT is not working on aptX codec, did some searches and here are the steps to get aptX codec capability.

1. Download the io tool:

https://developer.apple.com/downloads/index.action?name=bluetooth%20explorer

2. Bluetooth Explorer -> Tool -> Audio Options: Force use of aptX

3. Reconnect your bluetooth headphone

To enable aptX on the headphone, press volume + and power for two seconds when powering on. The blue indicator will blink 3 times when on aptX mode.

EMACS快速入门

简介
emacs 是Unix上的编辑器佼佼者,在命令列上打个”emacs”就好了,一上来只是提示,
你要先开个新档并且给档名才会到这个档的编辑缓冲区(buffer)。另外如果不想用 window模式,例如有时网络很慢,或者没有X的显示允许权,可以用emacs -nw启动 terminal模式。
其实在X下他也有选单(menu)可以用,不需要背命令,背那些热键(Hotkey),虽然我 有一些朋友就这样用,不过我还是要说这样无法发挥他应有的功能。由于来往两个 模式太麻烦,所以我们有热键这个东西,在文字输入模式下,按个热键就可以完成 一些需要打入命令的事情来。热键多用几次,其实就也忘不了了。
有些键其实初学者已经不需要记了,例如往左往右这种键,这是为了有些键盘没 有上下左右Page up/Page down等等。当然玩的越熟,你才会喜欢往左往右一些用 Ctrl组合成的键。因为你的手指一直在asdfjkl;上面。
基本热键
这边先列出常用的基本热键﹔
档案
C-x C-c :离开 emacs
C-x C-f :开档
C-x C-s :存档
C-x C-w :另存新檔

光标移动:
C-a :移到行首
C-e :移到行尾
M-f :向后移一个字
M-b :向前移一个字
HOME :移到档头
END :移到檔尾
M-m :移到这行第一个字符

常用的键
M-x :执行一个emacs命令
C-g :离开一个emacs命令
C-_ :UNDO
C-s :搜寻  一直按一直往下找
M-% :搜寻与替代(按!全部换掉,要不,会一个一个问按y/n回答)
M-C-s :regular express 搜寻

M-DEL :往前砍个字
M-d :往后砍个字
C-k :砍掉游标后所有字
M-t :转换两字
C-x C-t :转换两行

区块: 一般说来在X 窗口下,我们可以用鼠标就可以标示文字了, 但是在X下面我们不用copy/paste了,只要用鼠标左键标好,然后用鼠标中 键就可以paste了。emacs的区块没有所谓的column mode的区块。
C-SPCE = [email protected] :开始区块标示,然后移动光标
:如果想看到反白请先下emacs 命令”transient-mark-mode”
:但如果用了这个,鼠标的左键标示就看不到反白了喔。
C-x h :标示整个编辑区(就是整个档案)
C-w :砍掉标示的区块(用鼠标右键按两下或按del – 这个要20版以上的才有)
C-y :把刚刚砍掉的或在区块中的文字回存(也可以用鼠标中键)

多档与多窗
C-x 5 2 :开一个新窗子在新的frame
C-x 3 :开新垂直窗子在同一个frame
C-x 1 :只留一个窗子
C-x o :改到其它(other)窗子
C-x b :改到其它buffer(编辑区)
C-x k :kill掉目前编辑区
C-x C-b :列出所有编辑档案

基本宏
C-x ( :开始纪录你所按的键
C-x ) :结束你所纪录的键
C-x e :执行刚刚纪录的所有组合按键
M-n C-x e :执行n遍刚刚的按键

TAB :对齐indent
M-C- :对区块做一次程序的对齐(indent)

TAB的奥妙
其实TAB在命令缓冲区(叫minibuffer,不过不管在vi还是emacs,我们不要局限于 那些专有名词,只要捉住要领,就好像vi里面文字模式叫insert mode,不用刻意 去记)有非常多的好用,例如忘了某个命令或档名,只要多打几下TAB他就会秀出 可能的所有命令与档名。试试看先按M-x进入命令缓冲区,打个open-file,这个 就是上面热键的C-x C-f,然后按TAB键。开档其实也可以不给档名,直接按”.” 就会秀出目前目录的所有文件,按老鼠中键去选择。
emacs设定档
$HOME/.emacs是emacs 的设定档,它其实是像一种宏程序(虽然它不是), emacs读这些文稿式的程序,来做一些设定,所以其实强大的emacs是由一些已经 针对一些需求写好的一堆文稿程序所组成。这种script其实是一种叫Lisp的程序。 如果有用过pe2的人应该会记得你可以改编一些功能在pe2.pro。这个LISP在 emacs里面也有这样的功能,只是更为强大。强大到可以拿emacs来写mail,读 news,做版本控制等等。因为他也有定义变量,循环,条件等等功能。在 /usr/share/emacs/version/下面有一些伴随emacs的.el档,就是这些档案让emacs 变成无敌超人的。通常你是看到一些*.elc档案,这些是所谓的emacs byte-code檔 ,emacs内部有个compiler可以将.el档编译成.elc档,跑起来比较快。通常安装 时只会安装elc檔而已了。emacs在每次启动时会自动读你的.emacs檔。 以下我们会来试着设定一些emacs内定的一些变量命令让他有些生命。

3 ways of appending string to char

Solution 1: sprintf

 

/* sprintf example */
#include <stdio.h>

int main ()
{
  char buffer [50];
  int n, a=5, b=3;
  n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
  printf ("[%s] is a string %d chars long\n",buffer,n);
  return 0;
}

Solution 2: asprintf

/* asprintf example */
#include <stdio.h>

int main ()
{
  char buffer [50];
  int a=5, b=3;
  n=asprintf (&buffer, "%d plus %d is %d", a, b);
  printf ("[%s] is a string\n",buffer);
  return 0;
}

 

Solution 3:

/* sprintf example */
#include <stdio.h>

int main ()
{
  char buffer [50];
  int n, a=5, b=3;
  n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
  printf ("[%s] is a string %d chars long\n",buffer,n);
  return 0;
}

 

 

网页提示“证书错误:导航已阻止”,无法跳转解决办法。

在访问公司内网的时候,出现如图所示的提示,显示“证书错误:导航已阻止”,点击“继续浏览此网站”后没反应,无法跳转。

经研究发现,是微软在其一个补丁当中对证书的密钥长度做了限制,长度小于128bit(位)的密钥将被阻止而无法继续运行。当然,这是对用户安全的考虑。但是对于完全信任的密钥长度小于128bit的证书,我们还是需要用的。这里,微软也给出了解决办法。

微软补丁名称:KB2661254

参考页面:http://support.microsoft.com/kb/2661254

解决办法:

1、在添加删除程序中查找KB2661254这个补丁,卸载即可。

2、以管理员身份运行一下命令:

certutil -setreg chain\minRSAPubKeyBitLength 512

//允许的最小 RSA 密钥长度为 512

certutil -setreg chain\EnableWeakSignatureFlags 2

//启用密钥长度少于 1024 位的 RSA 根证书

注:在win8系统中并没有这个补丁,是直接集成在系统中的,可用方法2直接设置即可。

转于http://blog.163.com/[email protected]/blog/static/387028772012111853842496/

iPhone5/iPad Mini完美越狱工具下载及越狱步骤

iPhone 5/iPad Mini完美越狱工具终于于北京时间2月5日凌晨1点左右正式放出了!短短几分钟官网下载链接就被点爆无法下载,请点击文章微博的镜像地址下载越狱工具!

基本需求:
5 分钟的时间。
搭载 iOS 6.0 或 6.1 的苹果设备和数据线。
配备 USB 接口的 Windows / Mac OS X / Linux 计算机。

注意事项:
备份您的 iOS 设备,确保不会丢失数据。
取消您的设备密码,这可能会导致问题。
耐心等待,不要开启 iTunes 或 Xcode。
如果出现卡死情况,直接重启程序 / 设备。

其他建议:
抢先下载最新固件,以便恢复 / 升级设备。
注意备份 SHSH,以防苹果关闭验证(谁知道会不会推出 iOS 6.11 呢?)。

访问evasi0n团队官网:evasi0n – iOS 6.x Jailbreak

注:文章部分内容转载自CNBETA

更多镜像地址

Server OS Link
box.net Linux SHA1: c9e4b15a161b89f0e412721f471c5f8559b6054f
Mac OS X SHA1: 23f99a0d65e71fd79ff072b227f0ecb176f0ffa8
Windows SHA1: 2ff288e1798b4711020e9dd7f26480e57704d8b2
MEGA Linux SHA1: c9e4b15a161b89f0e412721f471c5f8559b6054f
Mac OS X SHA1: 23f99a0d65e71fd79ff072b227f0ecb176f0ffa8
Windows SHA1: 2ff288e1798b4711020e9dd7f26480e57704d8b2
RapidShare Linux SHA1: c9e4b15a161b89f0e412721f471c5f8559b6054f
Mac OS X SHA1: 23f99a0d65e71fd79ff072b227f0ecb176f0ffa8
Windows SHA1: 2ff288e1798b4711020e9dd7f26480e57704d8b2

更新了博客

今天忙中偷闲打理了下博客,更换了一个清爽简洁的主题,对主题做了一些小修改。

更新了博客描述,改了些插件设置,将wordpress更新到了最新版,插件也全都更新了。

过两天把前年做的一个黑客帝国Welcome Flash放上来。

先就这样了。。

To be continued…