python爬虫(requests)库安装

requests是一个比较好的网络请求处理库 官网 http://www.python-requests.org/ 安装 http://www.python-requests.org/en/master/user/install/#install 下载地址 https://github.com/kennethreitz/requests 1使用pip安装 (如果使用pip首先要安装pip https://pypi.python.org/pypi/pip 下载包后解压。执行python setup.py install) 然后在 pip install requests 2下载文件包。用命令行安装。下载 python setup.py install 尝试一下是否安装成功了 在python 中执行 import requests 没有报错。安装OK了

谈谈学习 – 费曼技巧,以教促学的好方法

“费曼技巧”(Feynman Technique)是一个让你学习效率、效果大幅提升的学习技巧,核心思想:制定学习目标(通常是一个“概念 ”),并以“教”的方式来学习,在教的过程中发现问题,解决问题。就像给洋葱一层层剥皮,渐进的学习方法。 什么是费曼技巧 1、Choose Your Concept :你想知道什么? 在白纸的顶部写出一个你想要理解的概念。 2、Pretend You Are Teaching the Idea to a New Student :设想你要向一名新学生传授这个概念。逐步地写下对概念的理解,就像你正在教导一位新接触这个概念的学生一样。这时你会更清楚地意识到关于这个概念你理解了多少, 以及是否还存在理解不清的地方。 3、If You Get Stuck, Go Back to the Book :无论何时感觉卡壳了, 都要回到原始的学习资料并重新学习让你感到卡壳的那部分, 直到你领会得足够顺畅, 顺畅到可以在纸上解释这个部分为止。 4、Simplify and Create Analogies:自我讲述要通俗易懂,简化语言表达。总结:最终的目的是要用自己的语言, 而不是专业术语来解释概念。要努力简化语言表达, 或者与已有的知识建立一种类比关系, 以便更好地理解它。 经典的学生求学之路,就是听讲座,读书;如果还不懂,只好枯燥地做大量习题(题海)或重看笔记。没有系统的方法,想更快地理解似乎是天方夜谭。毕竟,顿悟的心理机制,还全然不知。 更糟的是,理解本身,很难称得上是一种开关。它像洋葱的层层表皮,从最肤浅的领会到深层次的理解,逐层巩固对科学革命的认知。给这样的洋葱剥皮,则是常人知之甚少、易被忽略的理解过程。 “费曼技巧”的简言之,就是自我阐述出一个原理或过程。在这个阐述的过程中,一定会出现自身的知识的临界值,之后便无法再解释下去。这样的做法会呈现出一个知识缺口,因而为了填补这个缺口,则会物尽其用的搜寻答案。所谓的终极学习法,不过就是给别人讲解学过的知识,在讲解的过程中,知识在大脑中再现,重新组合,建立稳定的知识联系,同时也促使出进一步的思考和验证来填补现有认识的漏洞。费曼技巧的精髓,就在于这里通过模拟“教授”的过程,把那些认知漏洞挖掘出来,然后消化、理解清楚。而我们学习的真正目的,不就是这样么,找到问题,搞定它,自身得到了提升。 为什么是以“教”的方式来学习? 美国著名学习专家埃德加.戴尔提出的“学习金字塔理论”,最好的学习效果就是教授他人。 通过教授的方式,一方面你梳理了你还比较清楚那些概念及概念间的关系,另一方面,你会很容易发现那些你不懂的,或是不清晰的概念,查找资料,把他们理解消化。这个过程,是一个主动的、系统的过程,有目标,有标准。 一定要写下来 实施费曼技巧的很重要的一点是:一定要写下来。而不是在大脑中想,因为我们的大脑的短期记忆容量是非常有限的,所以为了最优化使用大脑,我们需要写下来,让大脑腾出空间,做重要的事情。 ==========2017-06-11更新============== 无独有偶最近在喜马拉雅上听《好好说话》,其中一期是黄执中讲以教为学的表达练习,和这个主题很搭,摘录在这里 文字稿如下: 我是黄执中,今天我要跟大家谈一谈咱们要用什么方法来锻炼自己的表达能力。 平常在上课的时候,我常遇到一种情况,那就是会有同学听完课跑来跟我表示说:“哇!黄老师,这堂课的内容你讲的好清楚啊,我一听就懂了。” 每次听到这种话,我往往会笑着跟同学吐槽一句,说:“同学,你错啦!你觉得这堂课的内容,我讲的好清楚,那只能说明这堂课的内容,我,懂了。不代表你懂了!” 好,我这么说,不是故意要跟同学抬杠,而是要点出一个很重要的观念。 那就是,懂,这件事的关键,不在于你有没有听明白,而是在于你能不能够说明白! 换句话讲,在课堂上,如果老师讲课,他能说到让你懂,那就证明这堂课的内容,你们的那位老师啊,他可是真懂了。 而当你听完之后,如果你把刚才的内容重新换个法子说一遍,你还能不能做到让别的同学听明白?如果不能,那就代表你刚才所谓的懂了,其实只是个假象,刚才在课堂上,你只不过是见识了老师的懂,自己呢,其实还没懂。 额,这一段有点像绕口令对不对?所以,我常开玩笑说为什么电影上有句话讲: “听过很多道理,却依然过不好这一生。”这原因之一,就在于咱们刚才所说的,能让你听懂,不代表你真懂,只代表能说明白这个道理的人,他懂! 好,那了解了这个观念后,我们回到一开始的主题。我们要用什么方法,来锻炼自己的表达能力呢?(通过独立思考和开口讲听到、看到的一个个道理、故事和段子来锻炼) 好,直到今天,我都经常会做一种练习:每次看书,当读到一个段落觉得,“哇!这个想法好妙啊!这个观念好棒哦!” 的时候,我都会合上书,然后试着把它教一遍(跳出舒适区),假装你眼前有个同学,他不懂这一段的内容,然后呢,我要说到让他懂,而结果你会发现,“咦,刚才这段书,我明明看的很清楚,觉得很明白,怎么一转头,自己说起来就变得吭吭吧吧、词不达意,说起来平淡无奇,完全没有传达出我刚才看书时候的趣味感!” 这个时候不要急,因为这代表你终于体会到,那种真懂与假懂之间的落差,这就是表达的第一个阶段(知道真懂与假懂的落差,但一直处在第一阶段出不来或者不出来,那就是你的不对了),这个时候,我们重新翻开书,重新把刚才的内容读一遍,“哦~!”你就会发现,原来作者的表达中居然有那么多看似不起眼的小螺丝被忽略了,那可能只是作者的一个小例子、一段小铺垫,甚至只是一个小小的形容词。但只要缺了这么一个小环节,同一件事,你说起来,就会变得很不顺、很不具体、很没意思。 OK!这时候,你第二次把书合上,然后对着那位假想中的同学再教一遍。于是你的表达就会开始进入了第二个阶段,你会开始真正的理解到,每一个表达的环节扮演着什么样的功用,你会了解为什么有时候要多举一个例子,为什么有时候要先做一个铺垫,为什么有些词语要特别讲究,才能产生不一样的效果。 好,这样下去,你每读一本书、每遇到一个有意思的段落,都要对着那个假想的同学教一遍,然后,那些好东西才会真正的成为你内在的一部分,才会渐渐长进你的身体里。 所以,我要强调,遇到好的内容啊,传统上都是要你把它背下来,但那是没意义的,你要做的不是拼命背书,而是练习教书,只有透过教,你才能真的懂;也只有透过教,你的表达才会生动,而不是死板的照搬、照抄。 最后呢,你就要准备第三个阶段了:分享。我常常在吃饭的时候、闲聊的时候,把我之前练习教过的段落拿出来分享,我多半会说,“嘿,我之前听过一篇演讲、我看过一篇文章,发现有个观点挺有意思。”然后试着用5-6分钟的时间交给大家,每次教的时候,观察一下大家的反应,如果大家被我一教,都频频点头,说很有意思,说他明白了,那就证明我这下可就真明白了。

Linux 使用rpm方式安装最新mysql(5.7.16)步骤以及常见问题解决

前几天在阿里云买了个服务器 ,准备自己玩玩,现将最新版mysql(5.7.16)安装步骤,以及遇到问题及解决过程分享如下: 第一步:下载rpm包 mysql官网下载:http://dev.mysql.com/downloads/mysql/ 但如果你的下载网速不好的话也可以点下面的链接下载自己想要的版本 http://mirrors.sohu.com/mysql/MySQL-5.7/ 我用的是(CentOs6.5)下载的是: mysql-5.7.16-1.el6.x86_64.rpm-bundle.tar文件 第二步:进行安装 具体如下: 1. 检查系统自带的MySQL及相关RPM包,是否安装 rpm -qa | grep -i mysql 如果有安装,则移除(rpm –e 名称) yum -y remove mysql 2. 创建用户和组(如果已经创建则跳过) groupadd mysql useradd -r -g mysql mysql 3. 解压tar文件,并安装 进入文件目录 运行:tar -xf mysql-5.7.16-1.el6.x86_64.rpm-bundle.tar 解压完成,然后依次执行。 rpm -ivh mysql-community-common-5.7.16-1.el6.x86_64.rpm rpm -ivh mysql-community-libs-5.7.16-1.el6.x86_64.rpm rpm -ivh mysql-community-client-5.7.16-1.el6.x86_64.rpm rpm -ivh mysql-community-server-5.7.16-1.el6.x86_64.rpm 到此,mysql已经安装完成。 4. 基础配置 执行:service mysqld start 出现下图表示安装成功 关闭mysql服务:service mysqld stop 初始化(这里是以root身份执行的):bin/mysqld --initialize --user=mysql 注:使用–initialize会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root -p,然后输入密码来登录MySQL。使用–initialize-insecure不会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root –skip-password直接登录MySQL,这里我是用的第一种。

在2017年将会更加流行的6个Web开发趋势

原文: 10 Deep Learning Trends and Predictions for 2017 作者: Carlos E. Perez 译者: KK4SBB 每到年底,人们总喜欢展望下一年,Web 开发领域也不例外。在 Web 开发领域,技术革新的速度堪比光速,未来总是超乎我们的想象,我们只能尽自己所能做一些合理的预测。 以下是我们需要关注的一些趋势: 1.更加移动优先 响应式设计显然是目前 Web 开发领域的主要趋势之一,并且这一趋势还将持续一段时间。虽然现在的响应式设计大部分还是以 PC 版优先,然而,如果有一天我们把 PC 版放到比移动版次要的位置上,也没什么好奇怪的。 许多 Web 开发者已经开始转向以移动优先方案来做他们的响应式设计和开发。这象征一个重大转变,值得我们跟进。 2.更多使用快速原型开发工具 我们在 2016 年开始尝试使用快速原型开发工具,而 2017 年将是这种技术真正爆发的一年。 “UXpin、Webflow、Invision 以及其它许多快速原型开发工具,让设计师不用写一行代码,就能为网站和服务快速创建低保真和高保真原型,便于设计师衡量它们的可用性和美观性。” Web 设计师 Jamie Leeson says 如是说,“许多工具也允许你在浏览器中设计原型并从工具里真正启动网站自身。” 快速原型工具的一个优点是它们能让开发者/设计师与最终用户同时获益。双方能够提前对产品页面和交互达成一致,避免了最终交付的产品和用户预期的不符。 3.简化的 Web 设计 在 2016 年,我们看到简化的 Web 设计得到广泛认可。事实上极简设计成为大部分行业的主要趋势。在 2017 年,预期极简设计会继续流行,即使有变化也是一些微小的改变。 虽然页面上留白将继续被认为是有价值的,但是也不用奇怪有些网站开始回归到使用基于文本内容的文字填充。你可以找到更多类似于这样的网页,它们合理地结合了留白和文本,创造出一个视觉上简单,而信息内容很丰富的网页,也带给用户很好的体验。 4.更加重视人工智能 你已经听说了人工智能(AI),但是你对 Web 设计和开发中的人工智能熟悉吗?在 2017 年,我们期待 Web 与 AI 的碰撞,带来更强大的网页,为网站主和用户同时带来价值。 提供网络主机服务的 Wix,是这一领域的领头羊。他们现在提供了一个过程来询问用户一些问题,然后使用一个基于 AI 的平台根据用户的回答提供给用户最符合他们需求的 Web 设计。这非常酷,值得一看。

【Android休眠】之Android休眠机制

http://blog.csdn.net/u013686019/article/details/53645646 一、休眠概述 休眠,简而言之就是设备在不需要工作的时候把一些部件、外设关掉(掉电或让它进入低功耗模式)。 为什么要休眠呢?一言以蔽之:省电。 休眠分主动休眠和被动休眠。主动休眠:比如我电脑不用了,就通过设置让系统进入休眠模式;被动休眠:系统检测到自己闲的慌,为了节约故,自己就休眠去了。 废话不叙。 二、Android休眠 休眠是内核的核心工作,而Android是基于Linux内核的,所以Android休眠和内核有着千丝万缕的联系;由于Android的特殊应用场景:移动设备,所以Android休眠和内核又有着特别的需求。 1、联系: Android设备停止使用,系统没有什么事情可做,进入休眠状态的功能最终是由内核去实现的;每一类硬件都有自己的驱动,具体的驱动决定怎么进入休眠以及处于何种层次的休眠。比如:对于platform_device,就按照platform_driver定义的规则,在suspend调用的时候,去做上面提到的事情: struct platform_driver { int (*probe)(struct platform_device *); int (*remove)(struct platform_device *); void (*shutdown)(struct platform_device *); int (*suspend)(struct platform_device *, pm_message_t state); int (*resume)(struct platform_device *); struct device_driver driver; const struct platform_device_id *id_table; }; 2、Android的特别需求: 比如对于自己的电脑,不用让它休眠好了;但是对于我们形影不离的手机,在休眠的时候还要睁一只眼:来电了要通知你,QQ啊微信啊什么的由信息了也要通知你,所以Android在Linux内核休眠机制之上,提出了“Opportunistic Suspend”。 三、休眠实践 絮絮叨叨这么多,下面让我们切切实实体验下休眠。 1、休眠模式 休眠是分好几种模式的,不同模式实现方式、耗电量不同,以下来自Documentation/power/states.txt: The kernel supports four power management states generically, though one is generic and the other three are dependent on platform support code to implement the low-level details for each state.

创建暗网.onion网站

原文链接: http://blog.51cto.com/xiami/1882572 使用Tor 的.onion域名创建匿名服务器 Tor不仅可以提供客户端的匿名访问,Tor还可以提供服务器的匿名。通过使用Tor网络,用户可以维护位置不可知的服务器。当然如果要访问这个隐蔽的服务,客户端也得安装Tor。 通过Tor指定的顶级域名(Top Level Domain,TLD).onion,可以访问其隐藏的服务。Tor网络可以识别自己的TLD,并自动路由到隐藏的服务。然后,隐藏的服务将请求交由标準的服务器软件进行处理,这个服务器软件应该预先进行配置,从而只侦听非公开的接口。如果这个服务还可以通过公共的因特网来访问,那也会受到相关连的***,这样就没有真正的隐藏起来。 #################华丽的分割线########################## 我们可以使用tor指定的.onion顶级域名来隐藏自己的服务。接下介绍如果创建一个.onion的网站。 注意:这是一件严肃的事情。为了保证完全的匿名,你必须配置你的web服务器让其足够安全,不会泄露任何信息。而且确保没有错误的网页或者其他泄露你真是IP及其他身份信息的可能。注意安全(额,不是说nsa在监控tor吗?) 当然,如果你不是很关心匿名的问题,那么至少保证你的web服务器的安全措施做得好,因为尽管Tor是个好的东西,但是用Tor搭建的网站可能会频繁遭到那些脚本小子的***(指那些只会利用别人开发的工具进行***的人,这是牛逼的***对他们的蔑称) 使用这个教程的前提是你有一个web服务器,可以是apache,nginx或者其他的。 本教程在以下环境进行: 一个已经安装了nginx的web服务器 web服务器端口是8080 系统版本Debian Wheezy 第一步:安装nginx(实在不会,就用别人的军哥的lnmp一件安装包吧) sudo apt-get install nginx 第二步:配置nginx去监听8080端口 sudo vi /etc/nginx/sites-available/default //用vi编辑nginx配置文件 在server段内将listen 后面的数字改成8080 ,和下面一样: server { listen 127.0.0.1:8080; … 然后重启nginx: sudo service nginx restart 然后在本机试着用 curl 访问 http://localhost:8080 ,一般都装了。没装的自己装下。如果能访问,说明nginx设置完成了 —————————————————————————————————————————— 更新下,添加apache和lighthttpd的配置说明: Apache: listen 127.0.0.1:8080; lighthttpd: listen 127.0.0.1:8080; server.bind = “127.0.0.1″ 记得他们修改配置后也要重启 ———————————————————————————————————————————————— 第三步:安装Tor 官方对于其他版本的教程地址:https://www.torproject.org/docs/debian.html.en 方法如下: 先修改debian的源的配置文件,然后就可以直接apt-get方式安装tor,省时省力 sudo vi /etc/apt/sources.list //用vi编辑源的配置文件 添加下面一行: deb http://deb.

window电脑可以上QQ但是连不上网解决办法

第一步:检查网线是否连接好 第二步:电脑自己查找原因 右键点击右下角的小电脑,选择疑难解答,一般会查出问题所在 第三步:修改ip(一般是DNS出现问题,由于转换机上分出的网线较多,会出现IP冲突问题) 改一下自己的ip的最后一位,有时候是因为ip冲突 1.打开网络共享中心 2. 右击属性(或双击)更改适配器设置(或本地连接)右击属性(或双击) 3.右击属性(或双击) 4.双击 协议版本4(TCP/IPv4) 5.先改变DNS(选择使用下面的DNS服务器地址),将首选DNS的后几位变换几次(2-255之间) 6.如果第6步还是不行,将上面的ip选择 使用下面的ip地址,自己填写一下

Sass学习之路(4)——不同样式风格的输出方式

因为每个前端工程师编写代码的风格都不太一样,所以Sass的编译也非常人性化的提供了不同风格的编译方式,主要分为4种。 比如下面这一段Sass代码,我们来看看在不同风格下,会编译成什么样吧: nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } 1.嵌套输出 nested: nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; } 2.展开输出 expanded: nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; } 其实可以看出来和嵌套输出挺像的,只不过闭合的大括号会另起一行(个人比较喜欢这种)

WebStorm安装与使用

一、简介 WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。被广大中国JS开发者誉为”Web前端开发神器”、”最强大的HTML5编辑器”、”最智能的JavaScript IDE”等。 二、安装 官网地址:http://www.jetbrains.com/webstorm/ 去官网下载最新版本进行安装. 下载之后进行安装 启动软件 下面会要求你激活,如果不激活的只有免费使用30天 激活码可参考: http://blog.csdn.net/xx1710/article/details/51725012 这个能用: http://idea.qinxi1992.cn/ 三、使用 使用WebStorm创建一个项目 这里支持有很多的类型项目: Empty Project —-一个空的项目 HTML5 Boilerplate —-HTML5开发框架 Web Starter Kit —-Web Starter Kit 是 Google的一个开源项目,它里面提供了一些工具,比如 BrowserSync,实时的预览项目的变化,在不同浏览器上同步页面的行为。 React App —-基于React.js用来开发iOS和Android原生App。 Twitter Bootstrap —-Bootstrap是Twitter推出的一个用于前端开发的开源工具包。 Foundation —-Foundation 是一个易用、强大而且灵活的响应式前端框架,用于构建基于任何设备上的响应式网站、 Web应用和电子邮件。结构语义化、移动设备优先、完全可定制。 Angular JS —-AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入,等等。 Angular CLI —-Angular CLI 帮助开发者快速创建Angular 2项目和组件 React Native —-ReactNative可以基于目前大热的开源JavaScript库React.js来开发iOS和Android原生App。 Node.js Express App —-Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站

Drools6.5部署Drools Workbench

最近两天看了一下规则引擎drools,看官方介绍所以手痒,本地部署了一下Drools Workbench,这一下部署让我掉进了深坑,不得不说,这个配置有点麻烦,请听我细细道来。 安装环境 jdk tomcat mysql 本地部署Drools Workbench首先我门得有一个tomcat。和mysql 数据库 这是基础,关于tomcat的安装使用我就不多说了。 其他的还需要这些步骤: 1.下载kie-drools-wb-6.5.0.Final-tomcat7.war 包 2.给tomcat添加所需依赖 3.添加配置文件btm-config.properties 4.添加配置文件resources.properties 5.修改配置文件context.xml 6.修改配置文件tomcat-users.xm 7.修改配置文件server.xml 8.添加脚本setenv.sh 9.修改配置文件persistence.xml 10.启动验证 开始部署 1. kie-drools-wb-6.5.0.Final-tomcat7.war 进入官网 传送门,不信你不点 下载kie-drools-wb-6.5.0.Final-tomcat7.war 下载后解压war包,并修改名字为kie-drools-wb 将其放在tomcat的webapp目录下 2.给tomcat添加所需依赖 将所需的jar包添加到tomcat下的lib 目录下 所需jar包地址,点我下载jar,不信你不点 copy following libs into TOMCAT_HOME/lib * btm-2.1.4.jar * btm-tomcat55-lifecycle-2.1.4.jar * h2-1.3.161.jar * jta-1.1.jar * slf4j-api-1.7.2.jar * slf4j-jdk14-1.7.2.jar 3.添加配置文件btm-config.properties 在tomcat的conf文件夹下新建文件btm-config.properties,并添加如下配置: 切记/Users/yangyibo/Software/apache-tomcat-7.0.70/ 改为你自己的tomcat地址。 bitronix.tm.serverId=tomcat-btm-node0 bitronix.tm.journal.disk.logPart1Filename=/Users/yangyibo/Software/apache-tomcat-7.0.70/work/btm1.tlog bitronix.tm.journal.disk.logPart2Filename=/Users/yangyibo/Software/apache-tomcat-7.0.70/work/btm2.tlog bitronix.tm.resource.configuration=/Users/yangyibo/Software/apache-tomcat-7.0.70/conf/resources.properties 4.添加配置文件resources.properties 在tomcat的conf文件夹下新建文件resources.properties,并添加如下配置: 切记 resource.ds1.driverProperties.user=root resource.ds1.driverProperties.password=admin 改为你自己的mysql 账号密码。并在本地的mysql数据库中创建一个名字为 drools 的数据库 resource.ds1.className=bitronix.tm.resource.jdbc.lrc.LrcXADataSource resource.