「记录」解决Ubuntu 16.04无法安装php5的问题

在Ubuntu 16.04 中默认无法安装php5,只能安装php7,直接用如下命令

会提示

按照这个文章中给出的解决方法,执行以下指令

「记录」UITableView运行时动态改变行高

在cell中加入一个可以改变cell高度的button,就是下面这种效果

1025465-d0c0d390136803e8

核心代码:

在Cell.h中添加tableview更新块属性:

button的点击事件:

在TableViewController的- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 方法中添加:

参考资料:http://www.jianshu.com/p/e86f1989b1d6

通过基于ipv6的shadowsocks服务绕过校内ip网络限速

之前校内网一直没有限速,搭配千兆内网用着超级爽,下载就算跑不满千兆也能有20-30Mbps的水平。

但是因为最近校内无线网硬件升级,流量暴增,学校对校内网的每一个ip做了总入口流量限制,限速5Mbps!也就意味着每一个校内ip,只要是校外获取的流量,就会被限速。虽然没有限制校内流量的网速,但是校内的ftp资源站因为一些技术原因暂时不能用,而且校内ftp资源站也没有什么我喜欢的资源。因此,这个新的限速机制让经常需要下载美剧和电影的我十分恼火。

为了能随时有最新的剧看,也为了加速校内下载速度,就在自己的下载机安装了磁力分流软件。使用过程中我希望限制分流软件ipv4的上传速度,只对接入教育v6的用户做分流,在寻找限速软件的过程中,我意外的发现了这个文章「使用shadowsocks,搭建ipv6 VPN,让ipv4上ipv6,下载速度提升到100M」,于是欣喜的进行了配置,并成功绕过了限速!

把配置过程整理一下,分享出来。

首先我已经有了带公网ipv6地址的DO服务器,且这个服务器已经配置过基于ipv4的shadowsocks服务,我的这篇博文有介绍过「在ubuntu server上安装配置shadowsocks服务」,就不再重复了。

1、测试ipv6网络环境,在本地ping服务器的ipv6地址,保证本地到服务器的ipv6网络通畅。

2、更改服务器shadowsocks配置文件”/etc/shadowsocks.json”,内容为:

重点是这行

改成这样服务器的shadowsocks服务就同时支持ipv4和ipv6了,改好后重启shadowsocks服务。

3、更改本地shadowsocks客户端的服务器配置,在ip栏填入服务器的ipv6地址,测试连接是否正常。

迅雷加速:

保证shadowsocks客户端的本地端口正常

在迅雷的“系统设置-高级设置-代理设置”中添加本地代理

代理名称随便填,服务器填写127.0.0.1,端口填写shadowsocks客户端本地端口,类型选择Socks5;然后点击测试,测试成功点击确定。

我的DO服务器是新加坡节点的,实测把迅雷全部流量都走代理一切正常,效果如下。

K9C)9}4W$QSRV%`YW0}ZRGV

在ubuntu server上安装配置shadowsocks服务

新建配置文件/etc/shadowsocks.json,内容为:

server, server_port, password 需要自行根据自己的实际情况修改。

把这条命令放到这个文件下:/etc/rc.local,这样就能开机自动运行了。

「记录」Win10磁盘占用100%无响应导致系统卡死的解决过程

之前内置的硬盘里有个120g的小固态留着没分区,想着以后可以折腾双系统什么的。昨天突然想用,却发现怎么也没法格式化,格式化一半就无响应了。因为曾经在这个固态上装过一次系统,一切正常,所以觉得很奇怪。怀疑是不是主板接口问题(之前有块三星固态就是用着用着就无响应,怀疑过,但是那个三星固态放到移动硬盘盒子里毛病照旧,所以排除了主板和接口问题),就换了一个接口,发现问题依旧。然后就怀疑是不是硬盘坏了,但是基本没用过怎么会坏呢,先拆出来接硬盘盒看看。在经过复杂的拆机后,放在硬盘盒子里接在surface上格式化,非常顺利,没有任何问题。诶,这就奇葩了,莫非真是主板问题?接口换过了还是有问题,那就说明几个SATA接口都有问题,南桥有问题么,那为啥别的硬盘都正常?重新装回去,然后顺便换了一下硬盘的顺序,接在一个之前接别的硬盘的接口上,进入系统发现问题解决了,格式化正常,重新删掉分区新建并格式化也正常,我以为问题自己解决了,然而我往硬盘里装虚拟机的时候,又无响应!然后用ssd测速软件测速,也是无响应。

总结一下表现的问题就是:硬盘在进行资源密集操作的时候,磁盘活动时间占用100%,传输速率下降为0,极少情况程序报“I/O错误”,大部分情况程序无响应,操作系统正常,但无法完全关机。

我不愿相信是自己主板有问题,因为毕竟有些硬盘用的好好的,而且技嘉大厂主板很少有问题,于是网上搜索相关问题。大部分类似情况都是因为微软自带的安全扫面,或者系统策略设置导致的,也有说是Win8.1系统自己的原因,Win7就没问题。我认为这些都不能解释和解决我遇到的问题,于是继续找,终于找到一个我认为比较靠谱的文章:【教程】完美解决windows10磁盘占用100%并出现卡顿、假死现

楼主在进行磁盘扫描的时候,win10有大量超时坏道,win8pe就没有问题,这正好对应我电脑上硬盘时好时坏,且换个电脑就没有问题的表现。最后楼主发现win10自带的驱动是06年的驱动①!我立刻想到自从用win8.1以来,我从来没有专门安装过主板的驱动,甚至连显卡驱动都让系统自动下载安装,新电脑也一样没有安装技嘉附带的光盘上的驱动!我立即用光盘重新安装全部驱动,再次尝试用测速软件测试,硬盘活动时间占用100%时,传输速率不再下降为0,程序运行正常,问题解决。

因此,整个问题都是因为win10自动选择的驱动导致的。我回忆之前微软曾经把自动识别并安装驱动作为win8.1的一个特性进行宣传,且win10也强调内置了通用驱动,而现实是残酷的,自动识别的驱动是有缺陷的,这不但导致用户不能正常使用,甚至增加了用户解决问题的复杂程度!

①:为何很多驱动程序日期都是2006年6月21日?  cnbeta的这篇文章解释了为何微软内置驱动都是06年的,但是实际情况是我在安装了厂商的专用驱动后,问题得到了解决,事实证明就算微软会更新自己的驱动,也不能因此不安装厂商的专用驱动!

python中的’ascii’ codec can’t decode byte 0xe9 in position 9: ordinal not in range(128)问题

在用python2.7写win上的Bing壁纸下载器时遇到如下报错:

解决方法是在文件中加入:

参考:python 处理中文时出现的错误’ascii’ codec can’t decode byte 0xe9 in position 0: ordinal not in range(128)” 解决方法

「记录」使用ettercap进行基于ARP欺骗的中间人监听

首先,安装ettercap

然后,运行ettercap图形界面

v67e3bk9dc00ha8fex

Sniff -> Unified sniffing…

qq%e5%9b%be%e7%89%8720170108100825

选择想要使用的网卡,并确定

qq%e5%9b%be%e7%89%8720170108101028

Host -> Host list

qq%e5%9b%be%e7%89%8720170108101159

Host -> Scan for hosts

qq%e5%9b%be%e7%89%8720170108101509

找到想要监听的设备,添加target1

flj1te8nnuo8a9

对路由器添加target2

c8s0nkvk%d4aodx4b41hs

Mitm -> ARP poisoning…

xq3fitupuwxm9y0

qq%e5%9b%be%e7%89%8720170108102535

Start -> Start sniffing

g77dgsjyqlb7pcq8o0t

View -> Connections

4hub01rpa27rjh_4

确认已经成功监听后,就可以用其他工具抓包、攻击···

「记录」ubuntu搭建python开发环境

Ubuntu 14.04 换阿里云源

阿里云源列表

零基础新生如何学技术——我的技术入门分享

今天曾老师发动大家在ifLab的问答社区回答关于新生学习技术的路线和技术栈,正好这几天还算不忙,就尽快写一下吧,免得之后又没时间。

首先,我自认为我目前技术算是比较一般的,只是会耍点小聪明,显得懂而已。不想以成功者的身份引导什么,只是分享下自己的学习经验,供大家参考。

编程接触的比较早,第一次是在初中,08年那会吧,选修vb课,什么都不懂,最后也啥都没学会,稀里糊涂就过去了,虽然没学到东西,不过编程这个事算是在内心埋下了种子,真正学习是在高中,高一选修了vb,又是vb,基本限于看懂老师的代码,改改的程度,自己写,完全写不出来。高二自己买了谭浩强的C语言红皮书,看了几章吧,不多,主要看了基本语句。自己试着写了命令行带菜单选择的简单计算器,就是输入特定字符选择加减乘除,输入第一个数,输入第二个数,输出结果,重新选择,这种。高三就没心思了。

入学前的暑假本来想好好学C,然而只是炒冷饭罢了,重新看了指针之前的内容,熟悉了基本语句和三大结构,重点难点的指针一点没搞定,更别提后面的了。当时,我只会用中文版VC6,不知道什么是VS,不知道编译器和集成开发环境的区别,代码格式全是谭浩强风格,不知道什么是命名法,喜欢用拼音命名函数,甚至不会盲打,敲字母是一个个看。

说前面这么多铺垫的接触经历,主要是想告诉各位新生,我并不比很多同届的人早学了很多,入学时大家其实都在同一起跑线上,只要你有兴趣,能投入精力,就一定能在技术路上走的比别人快,比别人远。

对于没有任何编程基础的新手,或者像当时的我一样接触不深,我觉得应该随便找一本C语言基础开始看!很多新生在问:我看什么书好啊?XXX的书是不是不好?XX天入门是不是写的很烂?我只能说,你的这个程度,遇不上什么烂书,与其纠结书好与不好,不如赶紧去看,看了才有提升,才看得懂,懂了才知道好不好。如果不喜欢看书,也可以去看视频,极客学院,网易云课堂,有很多C课程,同样是找一个自己喜欢的看。不管是书还是视频,自己喜欢,能看下去,就行了,不用考虑别的。很多人说黑皮的机械工业出版社出的C好,是国外大神写的……我想说的是,人与人不同,作为一个新手,你能适应国外的教学顺序吗,如果能,那当然很好,如果不能呢,看半截不看了,或者是看的很慢,还不如找个所谓的烂书看完呢!

然后说一下上手的语言吧,计算机专业的就是C了,没跑,早晚都要吃透,早学早熟悉。非计算机专业的我觉得其实可以直接上Python,更现代化,更友好,更容易出效果(有用的程序,能让自己有成就感,激励自己继续学)。

在学的过程中,切记一点就是,要去写!写!写!请问你整天看数学公式能考高分吗?整天看数学答案能会做题吗?所以,反复看书没用,看代码没用,要去写!写!写!不会写抄着写,一遍不会抄两遍,用电脑在和书上一样的环境里写,按照书上步骤模仿者操作。抄熟了再改写,仿写,直到能自己写!大学里有太多的人不写代码,或者打折扣的写,比如写在纸上,比如永远只抄写,你打折扣的写,就不要怪自己打折扣的编程能力!

说一下C语言的学习进度吧。指针之前要快看,没啥东西。尤其是helloworld之前的东西,读一遍了解即可,都是些思想之类的虚货,看懂了也理解不了,更何况还不一定能看懂,上道以后自然就懂了。主要看helloworld之后,有实际编程和操作的,但是不要拖沓。什么?你说看不懂,记不住?写啊,写会为止。到指针,你遇到了第一个硬骨头,指针需要尽量理解,光写也能会,就是会累一些,可以先多看几遍,理解了再写会快一些,如果理解不了,只有写!写!写!了。如果指针理解不了,后面都很难搞定,而一旦理解了指针,大一一整年都可以非常轻松搞定,所以在指针多花一点时间是值得的。指针搞定以后,链表也会很快搞定,C就算学的差不多了,建议之后写一个使用链表且储存文件的学生成绩管理系统或者大数加减乘计算器,或者类似的东西,虽然很无聊,没新意,但是对于提升熟练度非常有帮助。

C搞定以后,就可以找一些自己喜欢的语言了。然后会遇到第二个坎:面向对象,这个面向对象我理解了一年以上,在那一年中,随着写的代码量的增加,对面向对象有渐进式的理解,所以说还是要写。

 

最后说一些我觉得可以帮助新手入门的工具吧,还是本着顺手来,如果你就用着中文VC6舒服,没问题。

1、sublime text  用2或者3都可以,一个简单的文本编辑器,编辑功能强大,具体就不介绍了,官网有视频介绍。很轻量化,有基础语法提示。不过在Windows里用,写的代码运行时,中文会是乱码。。。可以下载一个win优化版

2、开发环境win就直接用VS吧,虽然复杂但是功能强大,值得花时间熟悉。而且中文加持,大大加分。Mac就用Xcode,简单便捷,英文不懂?看图啊,图标多形象啊!

 

先写这些,以后想到了再更。

一些新生群里的难听话

自从进了大学,就在iflab学习,感觉学长的引导实在是非常的重要,便也觉得自己应该引导其他人,也算是回报别人对我的帮助了。于是大二搞新生群,大三搞技术论坛,已至大四,心却凉了。学院也一直在致力于重铸当年信息工程学院的辉煌,但是现实却相去甚远,听老师讲一些宏大的计划,时而觉得心血澎湃,时而又觉得毫无意义。昨天又是心血来潮,在新生群里说了一些难听的话
46FE57B4A84A10B71EBB6907C6FAC358AE3A2F7A7AC2AE44359D326B408FC66A

然后就惹了不少人,怎么说呢,话糙理不糙吧。

说真的,我真是看不过去某些人,技术学了半拉,还装作很爱学学的很好的样子。人各有志,条条大路通罗马,不是非要学技术,想学技术连c的指针都搞不定的话,大二的数据结构里的链表怎么搞定?总结自己入门的经验,真不是看了什么高大上的教材或者书,看本身才是重要的,不要总挑书,而是看书。

不能说水群的都是不行的,但是历史经验统计的结果就是水群水的程度和技术好坏程度有相关性,水的厉害的技术大都不行,这也很好理解,都花时间水了,那还有时间干别的。我觉得没必要为这个道歉,自己的选择自己承担吧,我也不算是时间利用率高的。要不也不至于在群里心血来潮…

当然了,你要是不搞技术,水群也是锻炼交际能力,又没说水群的人都成不了事,成功的团队里都有一个能忽悠的。

iOS隐藏键盘

1、服从协议

2、设置代理

3、添加隐藏按钮

4、添加空白处点击隐藏

5、添加键盘隐藏方法

iOS7 8 UITableView Separatorinset 分割线从边框顶端开始

服务器切换测试

在美国的VPS又被墙了!

之前已经被墙折腾的换了好几次服务器,这次尤其严重,不但国内访问不了服务器,连服务器都没法访问国内了!这导致我两个爬虫都无法正常抓数据,我不得不做出妥协,把整个服务器迁移到国内,并老老实实备案。

迁移完了写篇文章测试一下博客是否还正常。

在Mac中用pip安装Scrapy

遇到了两个大问题,第一个在这里已经解决。

第二个问题是:

我使用了这个文章里的解决办法:

成功安装lxml后,再运行:

安装成功。

 

在OS X 10.11 (El Capitan)中用pip安装Scrapy遇到无法更新six包的错误

在OSX 10.11 (El Capitan) 中用pip安装Scrapy时遇到了这样的问题:

去网上查找解决方法,看到了这个:“OSError: [Errno 1] Operation not permitted” when installing Scrapy in OSX 10.11 (El Capitan) (System Integrity Protection),发现问题一模一样,于是就按照回答开始尝试。

按照最高票回答的方法尝试手动更新six:

然而并没有成功更新!于是去看了:Source: github.com/pypa/pip/issues/3165

按照里面的某些讨论进行尝试:

的确没有再次报错,但是我觉得并没有解决这个问题(后来检查日志应该是更新成功了)。

另一个同学在尝试中使用easy_install升级six,解决了这个问题,我也进行了这种尝试:

非常顺利就能完成six的升级。

 

一些思考:

在解决这个问题的过程中我一开始觉得是10.11中SIP的问题,而且很多文章也说是SIP的问题。

但是后来另一个同学用easy_install很容易的就升级了six,我突然意识到可能是six这个包本来是用easy_install安装的,因此pip才无法卸载six。

Xcode资源文件清理:删除无用的旧设备支持文件

Mac硬盘只剩下20G可用空间了,做了清理也只清理出了3G可用空间,但是印象里自己并没有在电脑存太多东西啊!于是开始做手动磁盘清理,在检查用户目录下的资源库时,发现这个目录异常的大:

~/Library/Developer/Xcode/iOS\ DeviceSupport

1

里面似乎是各个版本的iOS支持文件,甚至还有6.1.3版本的支持文件。如果能删除旧版的支持文件,那就能给电脑腾出一大块空间啊!于是找了一下资料,看能不能删除。

根据这个回答,删除旧版支持文件是完全没有问题的,甚至可以全部删除,并且应该定期删除!

AFDFCD85-9FAF-4097-92E6-0B086784478E

phpMyAdmin数据库乱码问题

第一次写后端,遇到了不少问题,这个问题比较坑!

问题描述:

1,从网页提交数据库数据,在phpmyadmin上显示乱码,在网页输出是好的。

2,用phpmyadmin从数据库插入数据,输出到网页后是乱码。

环境看似没有任何问题:网页已经声明使用『UTF-8』,数据库已经设置编码为『utf8_general_ci』。

为何还是出现了编码问题呢?

答:从网页提交数据库数据,在phpmyadmin上显示乱码,在网页输出是好的,说明提交的数据和数据库的编码不一样,提取数据的编码和提交数据的编码一样 。A->B->A型

解决方案:

把所以关于数据库查询、插入的语句前全部加上一行: