在自己的台式机上用chrome 创建了2个桌面快捷(实质是创建了chrome app),然后同步到我的Mac os 上来了 = =!

手动删除方式见下文。

$ cd ~/Applications/Chrome\ Apps.localized

$ rm -rf *.app

问题起于我要经ssh 连git.dn42.us, 比较特别的是我的机器(vps)上启用了IPv6

OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g  1 Mar 2016

debug1: Reading configuration data /home/seven/.ssh/config

debug1: /home/seven/.ssh/config line 1: Applying options for *

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: /etc/ssh/ssh_config line 19: Applying options for *

debug1: Connecting to git.dn42.us [2607:5300:60:3d95::1] port 22.

以上是ssh的输出。 可以看到是通过IPv6连接的,死活不通。

于是禁用IPv6

# ~/.ssh/config

Host *

AddressFamily inet

It works fine.

GNU通用公共许可协议

(英语:GNU General Public License,简称 GNU GPL、GPL)是广泛使用的免费软件许可证,可以保证终端用户得自由运行,学习,共享和修改软件。许可证最初由GNU项目的自由软件基金会 (FSF)的理查德·斯托曼(Richard Matthew Stallman)撰写,并授予计算机程序的收件人自由软件定义的权利。 GPL是一个Copyleft许可证,这意味着派生作品只能以相同的许可条款分发。 这与许可免费软件许可证有所区别 ,其中BSD许可证和MIT许可证是广泛使用的示例。 GPL是第一个普遍使用的Copyleft许可证。 历史上,GPL许可证系列一直是免费和开源软件领域最受欢迎的软件许可之一。根据GPL许可的优异自由软件程序的例子有Linux内核和GNU编译器集合 (GCC)。 David A. Wheeler认为,GPL提供的Copyleft对于基于Linux的系统的成功至关重要,给予向内核贡献的程序员保证他们的工作将有益于整个世界并保持自由,而不至于被不提供回馈给社区的不肖软件公司所剥削。 2007年,发布了第三版许可证(GNU GPLv3),以解决在长期使用期间发现的第二版(GNU GPLv2)所发生的一些困扰。 为了使许可证保持最新状态,GPL许可证包含一个可选的“并延伸到未来版本”条款,允许用户在FSF更新的原始条款或新版本之间进行选择。 有些开发人员在软件授权使用时,选择省略它; 例如,Linux内核已经在GPLv2下获得许可,就不需包括“并延伸到未来版本”的声明。 GPL授予程序接受人以下权利,或称“自由”,或称“copyleft”: * 以任何目的运行此程序的自由; * 再复制的自由; * 改进此程序,并公开发布改进的自由(前提是能得到源代码)。 相反地,随版权所有软件的最终用户许可证几乎从不授予用户任何权利(除了使用的权利),甚至可能限制一些法律允许的行为,比如逆向工程。 GPL与其他一些更“许可的”自由软件许可证(比如BSD许可证)相比,主要区别就在于GPL寻求确保上述自由能在复制软件及派生作品中得到保障。它通过一种由斯托曼发明的叫Copyleft的法律机制实现,即要求GPL程序的派生作品也要在GPL之下。相反,BSD式的许可证并不禁止演绎作品变成专有软件。 GPL是自由软件和开源软件的最流行许可证。到2004年4月,GPL已占Freshmeat上所列的自由软件的约75%,SourceForge的约68%。类似的,2001年一项关于Red Hat Linux 7.1的调查显示一般的代码都以GPL发布。著名的GPL自由软件包括EMACS,Linux核心(并非所有Linux发行版的核心都是开源的)和GCC。

Dig 在Linux 里一般是在 bind-utils这个包里的。 作者Windows 环境用的模拟终端为 Babun https://github.com/babun/babun 是基于Cygwin的。可惜,没有提供dig的二进制包。可惜。 好,其实解决方法很简单,去网上直接下个dig.exe放到Windows path里就好了=)

重点 ### 此方法适用于所有Windows 命令行

A)下载: 下载地址 [ftp://ftp.nominum.com/pub/isc/bind9/] 拉到最下面找最新版本的 下这个 A1) 准备: 解压后在目录里找到C++安装文件,双击安装 ) B) 安装DLL文件 把目录里lib*.dll拷贝到 C:\WINDOWS\System32\ 目录下 B1)安装dig.exe 把目录里的dig.exe 也拷贝到 C:\WINDOWS\System32\ 目录下 C)完成! 测试! babun powershell

唐解元寅既废弃,诗云: ‘一失足成千古恨,再回头是百年人。’ 比喻一旦犯下严重错误或堕落,就成为终身的憾事。

常见的VPN(OpenVPN、SSTP、IKEv2、CiscoIPsec、PPTP、GAE、L2TP)已经受到GFW干扰。 如果还要坚持用VPN的方式来翻墙,请使用以下VPN方案 Tinc VPN:http://www.tinc-vpn.org/ SigmaVPN:http://code.google.com/p/sigmavpn/ SSHVpn:http://sshvpn.sourceforge.net/ SocialVPN:http://code.google.com/p/socialvpn/ BadVpn:http://code.google.com/p/badvpn/ N2n:http://www.ntop.org/products/n2n/ Embedded VPN:http://embeddedvpn.com/ TeamViewer:http://www.teamviewer.com/zhcn/download/windows.aspx cjdns:http://cjdns.info/ FairVPN:http://minerva.netgroup.uniroma2.it/fairvpn GVPE:http://software.schmorp.de/pkg/gvpe.html QuickTun:http://wiki.qontrol.nl/QuickTun VTun:http://vtun.sourceforge.net/ sshuttle:https://github.com/apenwarr/sshuttle LogMeIn Hamachi:https://secure.logmein.com/products/hamachi/ PacketiX VPN:http://igfw.net/archives/8315 udpip:http://igfw.net/archives/7756

modify_sysctl.py

[code lang=python] # -- coding: utf-8 -- ‘’’ Created on 2015-1-21 @author: xie ‘’’ ‘’’ net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 30000 net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 9000 65535 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_orphans = 262144 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 ‘’’ import re,commands SYSCTL_CONFIG = ‘/etc/sysctl.conf’ class SetSysctl(): def __init__(self): self._sysctls = [] self._sysctls.append(‘net.ipv4.tcp_rmem = 4096 87380 16777216’) self._sysctls.append(‘net.ipv4.tcp_wmem = 4096 65536 16777216’) self._sysctls.append(‘net.core.wmem_default = 8388608’) self._sysctls.append(‘net.core.rmem_default = 8388608’) self._sysctls.append(‘net.core.rmem_max = 16777216’) self._sysctls.append(‘net.core.wmem_max = 16777216’) self._sysctls.append(‘net.core.netdev_max_backlog = 30000’) self._sysctls.append(‘net.core.somaxconn = 65535’) self._sysctls.append(‘net.ipv4.tcp_max_syn_backlog = 262144’) self._sysctls.append(‘net.ipv4.tcp_max_tw_buckets = 6000’) self._sysctls.append(‘net.ipv4.tcp_tw_recycle = 1’) self._sysctls.append(‘net.ipv4.tcp_tw_reuse = 1’) self._sysctls.append(‘net.ipv4.tcp_fin_timeout = 30’) self._sysctls.append(‘net.ipv4.ip_local_port_range = 9000 65535’) self._sysctls.append(‘net.ipv4.tcp_syncookies = 1’) self._sysctls.append(‘net.ipv4.tcp_max_orphans = 262144’) self._sysctls.append(‘net.ipv4.tcp_synack_retries = 2’) self._sysctls.append(‘net.ipv4.tcp_syn_retries = 2’) self._sysctls.append(‘’) self._sysctls.append(‘kernel.core_pattern = /home/core/core.%p’) self._create_core() self._read_sysctl() self._write_sysctl() def _read_sysctl(self): network = open(SYSCTL_CONFIG, ‘r’) self._lines = [] for line in network: flag = False for sysctl in self._sysctls: regex_str = sysctl.split(‘=’)[0] ma = re.match(r’^‘+regex_str+’.*?‘, line, re.IGNORECASE) if ma: flag = True break; if not flag: self._lines.append(line) network.close() def _write_sysctl(self): sysctls = open(SYSCTL_CONFIG, ‘w’) self._lines.extend(self._sysctls) sysctls.write(’\n’.join(self._lines)) sysctls.close() commands.getoutput(‘sysctl -p’) def _create_core(self): commands.getoutput(‘mkdir /home/core’) commands.getoutput(‘chown -R mc-ops:mc-ops /home/core’) if __name__ == ‘__main__’: SetSysctl() [/code]

modify_ulimit.py

[code lang=python]
# -- coding: utf-8 -- #!/usr/bin/env python2.7 ‘’’ Created on 2013-5-6 @author: xie ‘’’ import commands, re,os LIMIT_CONF = ‘/etc/security/limits.conf’ SOFT_NOFILE = ‘* soft nofile 1048576\n’ HAND_NOFILE = ‘* hard nofile 1048576\n’ SOFT_NPROC = ‘* soft nproc 1048576\n’ HAND_NPROC = ‘* hard nproc 1048576\n’ PROFILE_CONF = ‘/etc/profile’ ULIMIT_NOFILE = ‘ulimit -HSn 1048576\n’ NPROC_LIMIT_CONF = ‘/etc/security/limits.d/90-nproc.conf’ def modify_ulimit(): lines = [] ulimit = open(LIMIT_CONF, ‘r’) for line in ulimit: ma = re.match(r’.?soft ?‘, line, re.IGNORECASE) mx = re.match(r’.?hard ?‘, line, re.IGNORECASE) if ma or mx: continue lines.append(line) ulimit.close() lines.append(SOFT_NOFILE) lines.append(HAND_NOFILE) lines.append(SOFT_NPROC) lines.append(HAND_NPROC) ulimit = open(LIMIT_CONF, ‘w’) ulimit.write(’‘.join(lines)) ulimit.close() commands.getoutput(‘ulimit -HSn 1048576’) if not isCentos7(): modify_nproc_ulimit() writeProfile() def modify_nproc_ulimit(): lines = [] if os.path.exists(NPROC_LIMIT_CONF): ulimit = open(NPROC_LIMIT_CONF, ‘r’) for line in ulimit: ma = re.match(r’.?soft ?‘, line, re.IGNORECASE) if ma: continue lines.append(line) ulimit.close() lines.append(’ soft nproc 1048576\n’) lines.append(‘root soft nproc unlimited\n’) ulimit = open(NPROC_LIMIT_CONF, ‘w’) ulimit.write(‘’.join(lines)) ulimit.close() def writeProfile(): lines = [] flag = False profile = open(PROFILE_CONF, ‘r’) for line in profile: ma = re.match(r’.?ulimit -HSn 1048576.‘, line, re.IGNORECASE) if ma is not None: flag = True lines.append(line) profile.close() if flag == False: lines.append(ULIMIT_NOFILE) profile = open(PROFILE_CONF, ‘w’) profile.write(’‘.join(lines)) profile.close() def isCentos7(): mage = commands.getoutput(‘cat /etc/redhat-release’).split(’\n’) #CentOS Linux release 7.1.1503 (Core) #CentOS release 6.6 (Final) cP = re.compile(r’.\s+(?P\d+).*', re.IGNORECASE) for mess in mage: ma = cP.match(mess) if ma is not None: ip = ma.group(‘release’) if ip == ‘7’: return True return False pass if __name__ == ‘__main__’: modify_ulimit() [/code]

0%