页面

2017年9月6日星期三

Hexo+IPFS搭建个人免服务器独立博客

直接将博客挂在了IPFS的区块链上,不再要折腾服务器,不再要各种配置,只要买个域名,安心写博文就行,如此方便。下面就一步步介绍如何使用IPFS来实现免服务器Hexo博客。

配置

1. 配置Hexo

Hexo是一款基于Node.js的静态博客框架,安装Hexo需要用到Nodejs,作用是用来生成静态页面,到Node.js官网下载相应的最新版本,一路安装即可。

1.1 安装Hexo

Node安装好后,首先创建一个文件夹,如blog,用户存放hexo的配置文件,然后进入blog里安装Hexo。
执行如下命令安装Hexo:
npm install -g hexo

1.2 初始化

然后,执行init命令初始化hexo,命令:
hexo init
好啦,至此,全部安装已经完成!blog就是你的博客根目录,所有的操作都在里面进行。

1.3 生成静态页面

hexo generate(hexo g也可以)

1.4 本地启动

启动本地服务,进行预览调试,命令:
hexo server
浏览器输入http://localhost:4000
我不知道你们能不能,反正我能,因为我的都配置好了,如果无法看到hexo页面,请自行百度查找原因。

2. 配置IPFS

IPFS是点对点协议InterPlanetary File System的简称,它是一个面向全球的、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起。
近日,IFPS宣布了一个未来web发展计划,它用基于内容的地址替代基于域名的地址,也就是用户寻找的不是某个地址而是储存在某个的内容,不需要验证者的身份,而只需要验证内容的哈希,通过这样可以让网页的速度更快、更安全、更健壮、更持久。IPFS表示,IPFS未来将替代HTTP(以及其他的许多东西)。

2.1 安装IPFS

至官网下载对应版本,一路安装即可,笔者是64位win10系统,下载对应zip解压后,将ipfs.exe添加到%PATH%。
测试是否安装成功:ipfs help
出现 USAGE:
ipfs – Global p2p merkle-dag filesystem.

即可。

2.2 启动本地IPFS节点

第一步:先初始化IPFS
ipfs init
第二部:打开节点
ipfs daemon
此时,你可以在http://localhost:5001/webui,打开自己的操作台。

2.3 将Hexo博客部署到IPFS节点上

Hexo是一个静态博客生成器,执行hexo generate后,会在博客目录生成/Public目录,该目录即为全部博客内容
执行 ipfs add -r public
得到:added QmXJJm7aydK22eF1BdKVozcXH5Ltm8ZwbFHo3c36hi9qUx public
QmXJJm7aydK22eF1BdKVozcXH5Ltm8ZwbFHo3c36hi9qUx即为博客网站的site_hash,你可以通过任意运行IPFS的节点访问,如:http://localhost:8080/ipfs/$SITE_HASH,也可以通过官方运行的节点访问:http://gateway.ipfs.io/ipfs/$SITE_HASH

2.4 绑定独立域名

刚才,我们通过ipfs add,将博客发布到了IPFS运行的区块链节点上,但复杂的site_hash并不友好,我们可以使用IPNS技术,通过绑定独立域名来实现与现有的网站访问并无任何不一样的体现。我们假设你已经有一个可以正常使用的域名,如aa.com,没有域名的可以到任意域名服务商初购买。
首先,我们将网站发布
执行 ipfs name publish QmXJJm7aydK22eF1BdKVozcXH5Ltm8ZwbFHo3c36hi9qUx
得到 Published to QmV61ui6H9qX3126yGH846dPkMgSe7SZcDxrVwm2gxTidu: /ipfs/QmXJJm7aydK22eF1BdKVozcXH5Ltm8ZwbFHo3c36hi9qUx
记住QmV61ui6H9qX3126yGH846dPkMgSe7SZcDxrVwm2gxTidu为你的peerid,该hash是保持不变的。
那好,我们现在只需要将aa.com解析到上述地址即可,添加TXT记录为dnslink=/ipns/QmV61ui6H9qX3126yGH846dPkMgSe7SZcDxrVwm2gxTidu,同时将域名A记录指向任意ipfs节点的ip,如gateway.ipfs.io
现在访问aa.com,你是不是已经可以正常访问你刚才生成的博客了。当然,在没有优化之前,访问会很慢,但可以打开。
由于IPNS还不稳定,你可以在http://ipfs.io/ipfs/QmeaNWtacNyWZxEphYCdVmF6bcMg7Bjn6e5sGdK6fr1nMx 查看本页面。

更新与优化

上面讲的是hexo博客的生成与部署,你可以对Hexo进行进一步的配置和优化,发表新的文章,然后hexo g生成新的public,再通过ipfs add即ipfs publish即可实时更新在线博客。
怎么样,是不是很神奇,没有服务器,没有各种折腾,你有了一个独立博客。小伙伴们,一起努力吧!!!

2015年7月26日星期日

Install Nexus 5 Android 5.1 Lollipop LMY47D Factory Image

Install In

Android 5.1 roll out is live now
Android 5.1 Lollipop Factory Image has been made available for download for the Nexus 5 smartphone. Follow the instructions listed in this post if you want to learn how to successfully flash this new LMY47D Android 5.1 file for your device.
This guide below will teach you how to flash anAndroid 5.1 factory image for your Nexus 5, but you should know that it will ‘factory reset’ the device in the process. However, note that you can work around the ‘factory reset’ process by modifying the Nexus 5 installation script file before starting the flashing process – you will find more about this in the tutorial.
Before starting the installation you need to check the guidelines below:
  • use this post only for the Google Nexus 5 smartphone.
    – do not attempt to install the factory image that you will find in this post on any other different device.
  • in case your Nexus 5 is rooted or it runs on a custom Recovery, then you should know that the process will remove these changes from your device.
  • the installation of Android 5.1 Lollipop LMY47D factory image will restore your device to its stock state.
  • you will also be asked to ‘unlock bootloader’ during process.
    – if your device is on an unlocked bootloader already, then you won’t lose the data that’s stored on your device.
  • make sure to backup and save all the important files before starting installation.
  • in the tutorial you will find a small workaround that teaches you how to avoid the ‘factory reset’ process.
    – every time someone installs a ‘factory image’ on their device the flashing process usually wipes clean the smartphone, but you can avoid that.
  • if your device sports a custom ROM now, then you can’t avoid the ‘factory reset’ process, which means that you will lose all data from your phone and your device will be restore to its original state.
  • enable USB Debugging for your device from Developer Options before starting Android 5.1 LMY47D factory image installation.
    – if Developer Options doesn’t appear under Settings, then you should go to About Phone and tap 7 times on ‘build number’ section.
    – after Developer Options is unhidden you will find it in Settings menu, scroll down and open it, then enable it and tick the ‘usb debugging’ option.
  • check the phone’s battery charge level, make sure that it is over 50% so that your Nexus 5 won’t power down during the installation process.
  • this is a tutorial that has to be used only by advanced Android users.
  • we cannot be held responsible in case you lose any data nor in case you end up bricking your Nexus 5.
  • read the whole guide and don’t skip any steps.
  • in case you need more help completing the guide you should use the comments field.
Now that your know all of the above you can continue to the next part of this post.

How to flash Android 5.1 LMY47D Lollipop factory image for Google Nexus 5:

IMPORTANT:
Users who are installing the update over another stock Android 5.x Lollipop firmware can avoid the ‘factory reset’ by editing the ‘flash-all.bat’ script. Here’s how to do it:
  • after you download the LMY47D Lollipop 5.1 factory image file you should extract its archived contents.
  • go to ‘flash-all.bat’ script and open it in a file editing tool.
  • remove the -w characters from the line of commands and then save changes.
  • close the file editing tool and continue to the next part of this post.
SETUP Android SDK and install Google USB Drivers:
  1. Download Android SDK ADB Bundle here.
  2. Extract its contents and place them on the C: partition of your computer.
  3. Find and launch the Android SDK manager. Confirm the installation of all drivers.
  4. Download Google USB Drivers zip here.
  5. Extract and then connect your device to your PC in order to install / update the Google Nexus 5 USB drivers.
If the Nexus 5 is not detected by your PC, then you should retry to install the usb drivers up until the phone is recognized.
Install Android 5.1 LMY47D Factory Image for Nexus 5:
  1. Download the Lollipop 5.1 LMY47D tgz file from here.
  2. Extract the archived contents of the factory image file and save them on your PC.
  3. Boot the Nexus 5 Bootloader Mode.
  4. Launch Windows CMD in the folder where you’ve placed all the Android 5.1 factory image files.
    – do it by pressing and hold SHIFT, right click on the folder’s empty space and select the ‘Open command window here’ option from the context menu.
  5. Use the USB cable and connect your Nexus 5 to your PC.
  6. After the phone is connected you should enter adb devices text in the command prompt.
    – if the phone has been detected you can continue to the next step.
  7. Unlock the N5 Bootloader by entering fastboot oem unlock– if your device is already on an unlocked bootloader you can skip this step, as otherwise you will lose all data once again.
  8. Start the Android 5.1 LMY47D installation now by launching the flash-all.bat script.
    – confirm the process.
    – now you need to wait until the flashing process is complete.
  9. After the installation is complete you can press any key when asked in order to reboot the Nexus 5 in Android 5.1 for the first time.
NOTE: the first boot process of this new ROM takes a while before it loads all the new files, don’t press any buttons.
If the first boot takes more than 30 minutes and it doesn’t boot or the phone enters into a boot loop, then you will be forced to repeat the whole guide more than once. If you need more help use the comments field below.

2015年1月26日星期一

CNNIC证书的清除方法



最近1-2周,关于 CNNIC 的 CA 证书问题,网上搞得沸沸扬扬。但是俺发觉,即使是一些 IT 行业的技术人员,也搞不太明白该问题的严重性(至于不懂技术的傻瓜用户,就更甭提了)。主要在于 CA 证书是一个相对专业的东东,大伙儿平时接触不多。那电脑中有了CNNIC的证书,会出现啥鸟事捏?俺大概说一下。
  ◇“中间人攻击”的风险
  中间人攻击的风险,是最危险的,也是最经常被提及滴。
  CA证书对于https协议的重要性(可以防止攻击者伪造虚假网站)不用多说。既然CNNIC已经成为合法的CA,那它就能堂而皇之地制作并发布CA证书。然后捏,再配合进行DNS的域名污染。那就可以轻松搞定任何网站的HTTPS加密传输。
  ◇ActiveX控件的风险
  另外一个大伙儿不太关注的风险,是关于ActiveX控件的问题。前几年,很多恶意软件(包括流氓软件、木马)都是通过IE控件的技术,安装到大伙儿的电脑上。后来微软加强了多ActiveX控件的验证:在IE的默认设置下,对于没有数字签名的ActiveX控件,是拒绝安装滴;而对于有数字签名的控件,则会给出提示。
  因此,CNNIC可以很轻松地给自己的ActiveX控件制作数字证书。然后把控件放到网上。某些粗心的电脑用户看到IE跳出的安装控件提示,多半没细看,直接就点了“确定”按钮。
  ★如何清理门户?
  其实网上关于如何去掉证书的操作指南,多如牛毛,所以俺就简单说一下,懒得再抓图了。
  有些浏览器(IE、Chrome、Safari)使用的是操作系统的证书体系。这种情况下,你需要把CNNIC证书从操作系统的证书体系中去掉。还有些浏览器(比如Firefox、Opera)是自己带了一套证书体系。你只要在其配置界面,把不要的证书去除即可。下面分不同的浏览器,不同的操作系统,分别介绍。
  ◇清理Windows的证书(适用IE、Chrome、Safari)
  对于使用Windows下的IE或Chrome或Safari浏览器,则需要执行如下步骤:
  1. 运行Windows的证书管理器(到命令行执行certmgr.msc)。
  2. 选中“受信任的根证书颁发机构”=>“证书”。
  3. 查看右边的证书列表。如果里面已经有CNNIC的证书,直接跳到第7步。
  4. 先翻墙到“这个页面”下载现成的CNNIC证书(要解压缩出来)。
  5. 鼠标在“受信任的根证书颁发机构”=>“证书”上点右键。在右键菜单中点“所有任务”=>“导入”。
  6. 出现一个导入向导,根据先导一步步的提示,把上述CNNIC证书导入到证书列表中。
  7. 选中CNNIC证书,点右键。在右键菜单中点“属性”。
  8. 在跳出的属性对话框中,选中“停用这个证书的所有目的”,然后确定。
  9. 最后,为了保险起见,再把这三个证书,导入到“不信任的证书”中(方法和上述类似)。
  注:上述操作仅对当前用户生效。如果你的Windows系统中有多个常用的用户帐号,要对每一个用户进行上述设置。
  ◇清理苹果Mac OS的证书(适用Safari、Chrome)
  对于使用Mac OS下的Safari或Chrome浏览器,则需要执行如下步骤:请到“实用工具”=>“钥匙串访问”=>“系统根证书”=>“证书”,找到CNNIC的证书并双击,改为“永不信任”。
  注:如果你的界面是洋文,其操作方式也八九不离十。俺就不再啰嗦了。
  ◇清理Linux的证书(适用Chrome、Safari)
  对于Debian和Ubuntu系统,以管理员权限进行如下操作:
  方法1:运行命令:dpkg-reconfigure ca-certificates 会出现一个图形界面,把CNNIC证书不选,并确认。
  方法2:编辑 /etc/ca-certificates.conf 文件,把CNNIC证书对应的行删除或注释掉。然后用命令 update-ca-certificates 使之生效。
  注:对于其它Linux发行版本,也有类似操作,俺不再啰嗦。
  ◇清理Firefox的证书
  不论是在哪个操作系统下,只要你用的是Firefox浏览器(它的证书体系独立于操作系统的),则需要执行如下步骤:
  1. 从菜单“工具”=>“选项” ,打开选项对话框
  2. 切换到“高级”部分,选中“加密”标签页,点“查看证书”按钮。
  3. 在证书对话框中,切换到“证书机构”。
  4. 里面的证书列表是按字母排序的。把CNNIC打头的都删除。
  注:如果某个证书是Firefox自带的,则删除之后,下次再打开该对话框,此证书还在。不过不要紧,它的所有“信任设置”,都已经被清空了。
  ◇清理Opera的证书
  不论是在哪个操作系统下,只要你用的是Opera浏览器(它的证书体系独立于操作系统的),则需要执行如下步骤:
  1. 从菜单“工具”=>“首选项” ,打开首选项对话框
  2. 切换到“高级”标签页,在左边选择“安全性”这项。
  3. 点“管理证书”按钮,出来一个证书的对话框。切换到“证书颁发机构”标签页。
  4. 找到CNNIC的证书并选中,点“查看”按钮,在证书属性对话框中,把“允许连接到使用此证书的网站”的打勾去掉
  注:俺是基于Opera 10.10进行操作。新版本的界面可能略有差异。
  ★如何确认门户已经清理干净?
  为了保险起见,在完成上述的清除工作之后,你需要用浏览器访问一下老流氓的一个网站,地址是 https://www.cnnic.cn 记得用 HTTPS 协议哦。
  如果你的浏览器报告该网站的证书有问题,那恭喜你,你的门户清理干净了 :-)
  如果该网站的页面顺利打开,那你就要重新检查一下,看上述操作是否出了差错。
  ★可能的副作用
  有些国内网站已经开始使用CNNIC的证书,目前已经知道的有163邮箱(真鄙视网易)。但是甭担心。去除证书后,浏览器在访问上述网站时,会给出一个证书的安全警告。你只需添加一个安全例外即可。
  作者:编程随想,原文链接

2014年12月23日星期二

射手播放器设置字幕保存位置的2种方法。推荐使用第二种方法。

射手播放器已经很久没有更新了,永远没有完美的产品,尤其对于互联网行业而言。不对产品、软件升级修改、升级,注定会被用户抛弃。射手播放器的停滞脚步,肯定让许多用户离开了。作于一个老射手用户,由于射手的强大字幕库,一直难以舍弃。顶多下载字幕时用射手、播放时用其他播放器。但电脑上总得装射手,但有时下了字幕、再切换播放器太麻烦,只得干脆用射手。

除了播放器本身不稳定,经常没响应外。射手播放器最大的诟病应该就是设置的不人性化,或缺失。尤其是字幕保存位置的功能。不知道这是不是出于对用户的强制要求,把字幕保存在射手安装文件夹下面,不保存在视频同文件夹下面,这样只有射手播放器能调用到字幕,其他播放器因为字幕、视频不在同一文件夹,很显然不能添加字幕。所以,这对不熟悉字幕保存位置的用户来说,要想添加字幕,其他播放器不行,只能用射手播放器。

假如真如上面所说,射手凭借其优势绑架用户,那就值得鄙视了!!

言归正传,下面来说射手播放器设置字幕保存位置的2种方法。推荐使用第二种方法。

首先了解字幕默认的保存位置:

Windows 7下SPlayer字幕默认下载位置
C:\Users\Guoy\AppData\Roaming\SPlayer\SVPSub


Windows XP下SPlayer字幕存放位置
C:\Documents and Settings\Windows帐户名\Application Data\SPlayer\SVPSub\


或者通过下面方法快速进入字幕默认下载位置:

在“运行”里输入“%appdata”,再进入“SPlayer\SVPSub\”目录,这样快些。


由于修改是系统文件,所以下面的设置需要管理员权限的。
修改下载位置方法1:
射手的设置信息都保存在“settings.db”里,所以,对它的相应参数修改,就相应改变了射手的设置。

使用可以修改 SQLite 数据库的软件,如可视化的 SQLite Database Browser。

使用软件打开位于 C:\Program Files\SPlayer\settings.db (默认安装位置)的数据库文件,查找表
settingint 中的 SaveSVPSubWithVideo,把值改为 1,保存数据库即可。


字幕下载位置即保存到与视频相同的文件夹。

SQLite Database Browser下载地址:

sourceforge:点击

2014年11月15日星期六

Shadowsocks从零开始一站式翻墙教程

Shadowsocks从零开始一站式翻墙教程 在Google服务全线被墙的严峻形势下翻墙不利索肿么能行。比较详尽的Shadowsocks翻墙教程分享给大家,涵盖了从零开始的方方面面。

-------------------------------
Shadowsocks
特点: 1.省电(在电量查看里几乎看不到它的身影)
 2.支持开机自启动,且断网无影响,无需手动重连(方便网络不稳定或者3G&Wi-Fi频繁切换的同学)
3.可使用自己的服务器(安全和速度的保证)
4.支持区分国内外流量(传统VPN在翻出墙外后访问国内站点会变慢)
5.可对应用设置单独代理(5.0之前的系统需要root) 
我自己的感受:随机启动24小时后台运行(占内存10MB以内,基本不怎么耗电),跟人直接置身墙外使用手机的感受差不多。

-------------------------------
Shadowsocks的正常使用需要服务端(其实所有的翻墙方式都需要服务端),搭建服务端需要你拥有一个属于自己的VPS。

下面是我自己精挑细选出来的两家VPS供应商(如果你坚持认为我是在给这两家VPS打广告,你就不用往下看了),这两家我都在用,感觉不错,当然你也可以选择其他家的VPS产品。

 搬瓦工
 OpenVZ架构 128MB内存 3GB硬盘 300GB流量/月 5.99美元/年(折合人民币3元/月)(推荐) https://bandwagonhost.com/aff.php?aff=1351 
 OpenVZ架构 96MB内存 2GB硬盘 200GB流量/月 4.99美元/年(折合人民币2.5元/月) https://bandwagonhost.com/aff.php?aff=1351
 OpenVZ架构 64MB内存 1.5GB硬盘 100GB流量/月 3.99美元/年(折合人民币2元/月) https://bandwagonhost.com/aff.php?aff=1351 

注:搬瓦工域名在部分地区被墙,需要翻墙访问,但在上面购买的VPS不受影响。 

DigitalOcean

 KVM架构 512MB内存 20GB硬盘 1TB流量/月 5美元/月(折合人民币30元/月)(推荐) https://www.digitalocean.com/?refcode=434ef4f9a3f0(使用本链接注册账户立即到账10美元) 

以上所推荐的两家VPS供应商全部支持PayPal付款。

------------------------------- 简单解释一下两家差价这么大的原因和技术特点:

 OpenVZ为不完全虚拟化技术,每个VPS账户共享母机内核,易受同一母机下其他VPS的影响,几乎不能单独修改内核。

KVM为完全虚拟化技术,各VPS之间互相独立,基本互不影响,而且可以任意修改内核。

 这两种架构对我们搭建shadowsocks服务器来讲最直观的区别就是,KVM可通过系统内核修改来优化服务器,大幅度提升shadowsocks的连接速度,尤其体现在晚高峰的时候。 我在同一时间段用100MB的文件简单的在自己的两台VPS上面测试了一下shadowsocks的连接速度: 搬瓦工(5.99美元/年)的平均下载速度在1.36-3.43Mbps/s之间(174-439KB/S),也就是说速度表现不是很稳定,速度快的时候也可以看下youtube 1080p,速度慢的时候youtube 480p还是没有问题的。 DigitalOcean(5美元/月)的平均下载速度稳定维持在3.70Mbps/s以上(474KB/S),这个速度已经是我本地物理带宽的上限,所以VPS的速度上限未知,基本在任意时刻youtube 1080p都可以秒开。 个人建议,对于连接速度和稳定性有较高要求的推荐DigitalOcean(一分价钱一分货),对于普通用户来讲,搬瓦工足以(性价比高)。


 -------------------------------
搬瓦工各节点测试IP:
Florida: 74.121.150.3
Los Angeles: 104.194.78.3
Phoenix: 198.35.46.2
(可在控制面板里切换到这个机房)

 DigitalOcean各节点测试域名:
New York: speedtest-ny1.digitalocean.com
Amsterdam: speedtest-ams1.digitalocean.com
San Francisco: speedtest-sfo1.digitalocean.com 

请在CMD下自行使用“ping IP/域名 -t”命令来测试不同位置的机房与你的电脑之间的ping值以及丢包率(Ctrl+C退出测试)。 如果还是不知道该选择哪个节点的童鞋,搬瓦工一般选用Los Angeles节点居多,DigitalOcean一般选用San Francisco节点居多(都在美国西海岸)。

------------------------------

搬瓦工默认系统为Centos 6 x86,保持默认即可;DigitalOcean创建VPS的时候选择CentOS 6.5 x64。 注册完毕后,你已经获得了你VPS的IP,SSH端口,root密码。去下面的地址下载putty,用于在你的windows系统上远程登陆你的VPS(搬瓦工需要在My Services里进入KiwiVM Control Panel点击Root password modification来获得root密码,SSH端口在邮件或者控制面板里可看到;DigitalOcean则是把密码发到了你邮箱里,在首次登陆VPS的时候系统会提示你修改,DigitalOcean默认SSH端口为22,两家VPS登录的用户名都是root)。 
http://www.putty.org/ 

下面的内容需要你有一点点linux的基本知识,用过windows下CMD的同学应该能很快上手(全部命令和内容都可以复制下来通过右键直接粘贴到putty里执行) 

vi编辑器基本用法扫盲(新手必读) http://linux.chinaunix.net/doc/office/2005-01-24/898.shtml

yum install epel-release
yum update
yum install python-setuptools m2crypto supervisor
easy_install pip
pip install shadowsocks

vi /etc/shadowsocks.json

加入

{
    "server":"0.0.0.0",
    "server_port":8388,
    "local_port":1080,
    "password":"yourpassword",
    "timeout":600,
    "method":"rc4-md5"
}

(记得修改8388和yourpassword为你自己的端口号和密码)
保存退出

vi /etc/supervisord.conf

在尾部加入

[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json
autostart=true
autorestart=true
user=root

保存退出

vi /etc/rc.local

在下面加入

service supervisord start

保存退出

reboot
-------------------------------
至此,shadowsocks的服务端已经部署完成。剩下的就是下载客户端安装到你的手机和电脑上,记得修改客户端的相关设置保持和你的服务端参数一致哦。

Android手机客户端下载链接
https://play.google.com/store/apps/details?id=com.github.shadowsocks

电脑客户端端下载链接
http://sourceforge.net/projects/shadowsocksgui/files/dist/


2014年11月6日星期四

http://www.neobux.com/m/v/?rh=6A616D657366673838 http://www.clixsense.com/?r=6905265&s=101

2014年10月3日星期五

Don't track me Google

Chrome 上的扩展 “Don't track me Google”,对我天朝用户简直是神器...
Removes the annoying link-conversion at Google Search/maps/... The Referrer is also hidden to improve your privacy.
This extension gets rid of Google's ugly (tracking) URL *and* hides the referral information to the next page, so that other websites will not know your search terms either.

Initially published at http://userscripts.org/scripts/show/121923 (over 36k users).

.解决了困扰我良久的Google搜索重定向和Google图片搜索加载不全的问题,再配合HTTPS Everywhere,完美~