月归档:2015 年一月

Martini源码剖析

Martini源码剖析   martini是非常优雅的Go Web框架。他基于依赖注入的思想,仿照Sinatra的路由设计,参考Express的中间件设计,而且核心微小,扩展方便,非常值得学习。但是由于本身API设计简洁,使很多细节无法从代码理解。所以,我写一点笔记记录martini的工作方式。 Martini核心 我们从最简单的官方实例入手: package main import "github.com/go-martini/martini" func main() { m := martini.Classic() m.Get("/", func() string { return "Hello world!" }) m.Run() } martini.Martini是自带的核心结构,负责完成依赖注入和调用的过程。martini.ClassicMartini是路由martini.Router和martini.Martini的组合,实现路由分发和逻辑调用的过程。m := martini.Classic()返回的就是martini.ClassicMartini。具体在mar

发表在 未分类 | 评论关闭

《深入解析Go》

《深入解析Go》 http://www.zenlife.tk/ 因为自己对Go底层的东西比较感兴趣,所以抽空在写一本开源的书籍《深入解析Go》。写这本书不表示我能力很强,而是我愿意分享,和大家一起分享对Go语言的内部实现的一些研究。 我一直认为知识是用来分享的,让更多的人分享自己拥有的一切知识这个才是人生最大的快乐。 这本书目前我放在Github上,时间有限、能力有限,所以希望更多的朋友参与到这个开源项目中来。 参与到本项目 如果对某些章节很有兴趣,可以写作相应章节的内容并pull request给我。如果觉得有哪些相关的内容缺失,欢迎提出。如果发现书中内容有错误或者疏漏,欢迎指正。 不管任何形式的参与都是非常受欢迎的。 通过捐款支持谢大的书 本书使用的astaxie的模板。如果你喜欢这本《深入解析Go》的话, 可以给他捐款, 支持他继续为Go语言,为开源事业做出贡献。 捐款地址: https://me.alipay.com/astaxie 交流 欢迎大家加入QQ群:259316004 《Go Web编程》专用交流群 我在里面潜水 致谢 先留空 授权许可 除特别声明外,本书中的内容使用

发表在 未分类 | 评论关闭

HDD Spindown on Arch Linux

  HDD Spindown on Arch Linux  Useful Hints and Scripts Add comments Oct222014     From hdparm‘s man page on the CLI parameter -S: Put the drive into idle (low-power) mode, and also set the standby (spindown) timeout for the drive. This timeout value is used by the drive to determine how long to wait (with no disk activity) before turning off the spindle motor to save power. Under such circumstances, the drive may take as long as 30 seconds to respond to a subsequent disk ac

发表在 未分类 | 评论关闭

Permanently Configure Hard Drives To Spin Down After A Given Idle Time

  This article assumes that you already know the unique id of the hard drive you want to configure. Learn hear how to get this id. 1. Edit your system’s startup file Open up a terminal window, if your are using Linux Mint copy/paste the following: sudo pluma /etc/rc.local on Ubuntu use sudo gedit /etc/rc.local The difference is just in the standard graphical text editor application installed. You can of course install pluma on Ubuntu or gedit on Linux Mint if you like. 2. Composing the r

发表在 未分类 | 评论关闭

Spin Down Idle Hard Disks without hdparm

Feb 04, 2014 | Spindown, Disk, Idle I’ve had a few people ask me over the years about spinning down disk that don’t have Advanced Power Management or otherwise can’t be spun down by hdparm. The following is a way to spindown disks without using hdparm’s config file. Notes 29 Comments Similar Articles Next Article > < Previous Article Here is a brief shell script to spindown idle hard drives. bash nano /root/scripts/disk_spindown.sh and paste this in&#

发表在 未分类 | 评论关闭

XBOOT – Multiboot ISO USB Creator (Windows)

XBOOT is yet another neat little Multiboot ISO USB Creator. It is a Windows based application that can be used to create a Live Multiboot USB or even a Multiboot ISO file that can then be burnt to a CD/DVD. XBOOT supports many Linux Distributions and Utilities, and allows you to use your choice of a Grub or Syslinux bootloader. Also included is a built in QEMU emulator (enabling you to boot an ISO from within Windows).   XBOOT – Multiboot ISO/USB Creator Authors Website: http://sites.goog

发表在 未分类 | 评论关闭

如何制作Ubuntu系统的USB启动盘

如何制作Ubuntu系统的USB启动盘  http://www.eguidedog.net/doc-create-usb-stick-on-windows.php 下载Universal USB Installer 插入要刻录的U盘。 运行Universal USB Installer。这是一个绿色软件,无需安装,不过是英文界面,但不懂英文也不用担心,我会讲解怎么用。 Universal USB Installer的第一个窗口是版权许可协议,点击”I Agree”按钮就可以了。 Installer的第二个窗口是配置,有一个选择Linux发行版的下拉框,选择”Ubuntu”选项即可。 选择完Linux发行版后,下面会多了一个选择文件的控件,点击”Browser”去选择文件。如果在目标文件夹找不到我们的iso,在文件名处填星点星(*.*)然后回车,iso文件就会出现,然后选择要刻录的iso文件即可。 此时,窗口会多了一个选择下拉框,选择要刻录的U盘盘符。 之后,可以选择一个系统存储空间大小。这一步不是必需的。但如果选了,系统的修改可以存储在U盘中。但无论是否有预留系统空间,U盘的剩余空间

发表在 未分类 | 评论关闭

TOW ( Transparent Over the Wall )

TOW 是一个安装在 Tomato/OpenWRT 系统上的软件包,安装之后,可以保证连接在这个路由器上的所有客户端透明翻墙。 当前版本:1.0 功能 TOW 的设计目标是透明化/自动化,理想情况下客户端用户无需关心哪些网站无法访问,可直连网站也不会因为使用二级代理而降低访问速度。 使用 pdnsd 特性防止 DNS 污染 支持 GoAgent, SOCKS5, shadowsocks 和 Obfuscated ssh,WebVPN 等代理服务器 使用 gfwlist 和 ipset 配合 iptables 处理被墙网站,仅对被墙网站使用代理 依赖 一台能安装 Tomato 或者 OpenWRT 的路由器 Tomato/OpenWRT 内含的 iptables/dnsmasq 必须编译支持 ipset 安装:(均以 Tomato 为例) 准备好 Putty 和 WinSCP 工具; 如果 Flash 空间足够,启用 JFFS ,格式化后,SSH 登陆路由器: cd /jffs mkdir opt mount -o bind /jffs/opt /opt 下载软件包,tow-

发表在 未分类 | 评论关闭

ipset UNDER TOMATO

ipset UNDER  TOMATO  一般而言想要实现透明的自动翻墙路由器有两种策略: 利用IP地址段国家区分的方式,国外的统统走翻墙,国内的统统直连,我的Blog中之前介绍的大体上都是这种,这种方式的优点是适应性高,对于自己以前没有注意过的网站也可以很好的流畅的体验,缺点也很明显——就是带宽利用不高,因为对于不需要翻墙的网站而言,大部分时候直连的速度还是要优于翻墙的。 利用squid缓存劫持配合polipo做二级代理,利用squid强大的代理策略做域名区分的代理,这个的有点是因为是以域名区分的代理,所以相对而言某些本身没有被屏蔽的网站访问要快一些,同时翻墙用的VPS主机的负载也要小一点,缺点是需要维护相对较为庞大的squid的配置列表同时squid的缓存劫持还比较麻烦,需要linux系统支持,我没有在我的Tomato和OpenWRT上实现过,而且Squid的体积相对非常庞大,对于路由器的小体积而言是个大负担 于是广大淫民不断的探索,终于基于ipset第三种翻墙策略也孕育诞生了。 其基本原理是在访问网站解析域名的同时,将设置为需要翻墙的域名解析到的ip地址存入ipset的对应

发表在 未分类 | 评论关闭

[Tomato] 在RT-N16 JFFS 上安裝 optware

 Tomato firmware 討論區  » [Tomato] 在RT-N16 JFFS 上安裝 optware http://digiland.tw/viewtopic.php?id=1616 RT-N16 刷完韌體還想玩什麼新鮮玩意? 32MB Flash 刷完 8MB 的韌體,千萬別浪費剩餘 24MB 空間,透過啟動 JFFS 功能,不必插 USB 隨身碟,馬上多出 24MB 空間可以使用。不過這空間大小有些尷尬,放不了幾個檔案,但何不拿來安裝 optware 呢? 底下就來介紹在 JFFS 空間裡安裝 optware。 開啟 JFFS 功能 刷完 Tomato 後,JFFS 功能預設是關閉的,所以必須到 路由器管理 => JFFS 裡手動開啟,並且執行 格式化/清除 功能,系統會進行格式化 JFFS 空間,如下圖。 指定 opt 路徑 optware 預設路徑已固定使用 /opt 路徑,所以當我們格式化 JFFS 空間後,必須把 /opt 指向 JFFS 路徑,這樣日後安裝 optware 套件,才會寫入 JFFS。 root@rt-n16:/# mkdir /j

发表在 未分类 | 评论关闭

Install optware to DDWRT or Tomato use JFFS

Install optware to DDWRT or Tomato use JFFS https://www.all4os.com/router/install-optware-to-ddwrt-or-tomato-use-jffs.html After flashed DD-WRT or Tomato, the router normally has some space left over. Like RT-N16, there is 23~24MB left after flashed Tomato. We can use that space to install optware without adding additional USB drive. What is optware? Optware is a distribution of packages that are suitable for installation within small embedded systems, just like the routers on which TomatoUSB r

发表在 未分类 | 评论关闭

asuswrt-merlin 梅林固件

梅林固件 This is an enhanced version of Asuswrt – the firmware used by all recent Asus routers. The goal of this project is to fix issues and bring some minor functionality adjustments to the original Asus firmware. While some features do get added, this is not the main focus of this project. It is not meant to replace existing projects such as Tomato or DD-WRT, but rather to offer an alternative for people who prefer the original firmware featureset. At this time, the supported devices are:

发表在 未分类 | 评论关闭

为ASUS-AC68U-Merlin固件交叉编译shadowsocks-libev

http://jiyee.org/2015/01/24/build-shadowsocks-libev-for-asus-ac68u-router-running-on-merlin-firmware/     开篇向Merlin固件及Wiki致敬,向tengattack写下的《为R6300v2新固件交叉编译shadowsocks-libev》一文致敬。 背景 本文基本参照了以上两篇文章,经过两个漫漫长夜,终于鼓捣出能够在ASUS-AC68U Merlin固件上运行的shadowsocks-libev。 上周刚买了华硕AC68U路由器,看中的就是强大的配置和能够足够鼓捣的空间。但是,本人是个前端开发工程师,目前正在朝iOS开发工程师转行,对于怎么样编译固件,编译固件应用,甚是无知。 什么交叉编译,ARM平台,编译器,基本库等等内容,基本处于很无知的阶段,虽然也用Mac和Linux平台,但是对于C/C++环境里的一切了解甚少。 曲折的过程 好吧,那既然闪闪亮的路由器已经到家了,翻越长城的欲望怒不可止。心想一定要搞到一个能够运行在路由器上的shadowsocks。一路G

发表在 未分类 | 评论关闭

openwrt vlan 配置(buffalo WZR-HP-G300NH)

openwrt vlan 配置(buffalo WZR-HP-G300NH) https://wiki.tuna.tsinghua.edu.cn/OpenWrt/OpenWrt%20Vlan%20%E9%85%8D%E7%BD%AE IP: Tsinghua : 166.111.15.x Inner : 192.168.99.1 目前: 采用专线接入,如果专线出现问题,改为pppoe拨号 cp /etc/config/network.pppoe /etc/config/network cp /root/ipart.sh.pppoe /root/ipart.sh 重启路由器即可 如果采用专线接入,则 cp /etc/config/network.lan /etc/config/network cp /root/ipart.sh.lan /root/ipart.sh 网络描述: 接入: 1、4M ADSL 2、专线接入 3、清华校内网络 输出: lan 路由器功能描述: rtl8366s总共支持5个可分别独立配置的vlan口 资源指定 eth1(eth0.4) 4M ADSL eth0

发表在 未分类 | 评论关闭

Creating a DMZ in OpenWRT

Creating a DMZ in OpenWRT http://blog.christophersmart.com/2015/01/17/creating-a-dmz-in-openwrt/ Published on 17 January, 2015 in Fedora, FOSS and Tech. 0 Comments In computing, a DMZ (demilitarized zone) is a method for separating untrusted traffic from a trusted network. One of the most common implementations of this would be for supporting a publicly accessible server (such as web) on a local internet connection. The server sits in the DMZ and can be accessed from the Internet, but it cannot

发表在 未分类 | 评论关闭

Netgear WNDR3800 OpenWrt全攻略

  、安装/更新OpenWrt 需要的软件:PuTTY (下载地址) ,HFS (下载地址) 1、下载固件: 如果是原厂固件下载这个 如果已经是OpenWrt下载这个 2、将OpenWrt安装进设备 由于现在能购买到的绝大多数都预装了OpenWrt,所以这里以更新固件为例,全新安装方法大同小异。 如果已装有LuCI,直接在web端刷写固件即可 如果没有安装LuCI就需要使用HFS建立http服务器,将下载的固件重命名为 wndr3800.bin 并拖入HFS生成链接,比如我的是 http://192.168.1.2/wndr3800.bin 。接下来使用PuTTY登录路由器,输入下列命令刷写新固件   1 2 3 cd /tmp wget http://192.168.1.2/wndr3800.bin sysupgrade wndr3800.bin   刷写完成后路由器会自动重启   3、初始配置 用一根网线将WNDR3800的Lan口和电脑相连,打开PuTTY按如下设置连接 登录成功后输入 

发表在 未分类 | 评论关闭

免拆机/TTL/编程器刷uboot及art,WNDRMAC改WNDR3800,AR7161解锁art/uboot的Openwrt下载

操作有风险,请小白不会操作的,不要乱刷,看明白后再下手,另外不要乱评论及乱扣分,谢谢! 我编译的固件解锁了uboot及art的,可以自由刷写uboot及art,但是没有Luci界面,刷机后灯不亮是正常的,按法一第1步开启SSH即可,建议刷好art和uboot后再刷3800官方固件或其他op、DD。 WNDRMAC改WNDR3800的朋友强烈建议刷art前备份原版art,丢失后比较麻烦。新手不建议刷uboot,这个操作还是有一定危险性的,网件的路由tftp完全够用了。 ※不拆机,不用TTL及编程器,WNDRMAC改WNDR3800有两种方法: 第一种,不想刷uboot的可以按法一直接刷修改后的art文件,此方法稍麻烦一点,相对来说安全一些; 第二种,刷hackpascal大大的不死uboot,此方法有变砖风险,操作需谨慎,但是可以获得更多功能,包括把WNDRMAC改为WNDR3800、修改mac、SSID、默认密码等功能,可按法二操作。 感谢hackpascal大大编译了这么强大的uboot ※有些用WNDR3700/3800的朋友下载了hackpascal大大的uboot,不知道怎么

发表在 未分类 | 评论关闭

Ultimate Guide To Installing Nginx, MySQL, PHP5, PHP-FPM In CentOS 6.5

  http://www.servermule.com.au/help/linux/install-lemp-mysql-5-6-centos-6/ Posted by Richard W on 26 June 2014, 3:10 pm   Here’s an ultimate guide to installing Nginx, PHP5, MySQL support on CentOS 6.5. This guide will show you how to prepare CentOS 6.5, how to install Nginx web server, MySQL database server with PHP5 support. It should be handled and read as a complete guide to getting these services up and running. At the end of this post, I will include the short guide to install

发表在 未分类 | 评论关闭

谷歌浏览器(Chrome Switchysharp)使用SSH代理的方法(支持新版chrome)

https://www.123ssh.net/knowledgebase/42/Chrome-SwitchysharpSSHchrome.html Chrome浏览器通过安装switchysharp插件,可以实现在线更新G.F.Wlist,自动判断网站是否需要使用ssh代理访问。 准备工作: 1、下载安装Chrome浏览器: 从官方下载:    http://www.google.com/chrome/eula.html?hl=zh-CN&standalone=1 从新浪下载:    http://down.tech.sina.com.cn/page/40975.html 或者安装支持chrome扩展的其他浏览器: 猎豹浏览器:http://www.liebao.cn/ 360极速版:http://chrome.360.cn 世界之窗极速版:http://chrome.theworld.cn/ 版本随意,如果您已经安装好Google Chrome浏览器,请继续阅读本教程。 2、下载客户端,连接ssh代理服务器 Windows客户端:123ssh客户端 MacOS客户端:G

发表在 未分类 | 评论关闭

使用小米路由器mini刷pandorabox并使用ChinaDNS-C + dnsmasq + shadowsocks 实现透明翻墙

使用小米路由器mini刷pandorabox并使用ChinaDNS-C + dnsmasq + shadowsocks 实现透明翻墙 本文假设你对Linux基本熟悉。 你所需要的工具: 小米路由器 (本文是用的mini) U盘一枚 一台可以连路由的电脑 一台shadowsocks服务器。 开启小米路由的SSH功能 按照网站的说明,下载小米路由mini开发版。 http://miwifi.com/miwifi_download.html 进入192.168.31.1 或者 miwifi.com, 手动更新固件。 进入https://d.miwifi.com/rom/ssh , 下载SSH工具,按照教程开启SSH。 在开启SSH时,若黄灯闪烁3秒后变成了红灯,那么可以试试刷一个较旧的开发版(我就是这个情况,折腾了好久,刷到0.4.36后才可以开启SSH。 附上0.4.36链接)。 ssh连入路由: windows: 安装putty,登陆 192.168.31.1。用户名root,密码为https://d.miwifi.com/rom/ssh 的初始密码 linux : ssh

发表在 未分类 | 评论关闭