呓语 | 杨英明的个人博客

专注于c++、Python,欢迎交流

By

[顶] 大数据报告:知乎百万用户分析

最近用 python 爬虫抓取了知乎用户个人信息(公开信息),去重之后有300+万用户信息(公开信息),为了得到这些数据,还不小心跑崩了一台服务器…… 当然主要是配置太低。

手头有了数据也不能闲着,于是就有了这篇分析报告,这篇报告做了一些浅显的数据分析,主要目的是练练手,大家看个热闹,高手勿笑。

数据量:3,289,329 人。

数据采集工具:分布式 python 爬虫

分析工具:ElasticSearch + Kibana

分析角度包括:地理位置、男女比例、各类排名、所在高校、活跃程度等。

By

使用 TensorFlow 搭建神经网络预测泰坦尼克号乘客生存率(Kaggle => Titanic: Machine Learning from Disaster)

By

hexo-theme-freemind.386 主题设置图片居中

Hexo 是一款轻量级的博客框架,可以很轻松的生成静态网站,常用于搭配 gitpage 搭建博客。

而 hexo-theme-freemind.386 是 Hexo 的一款主题,github 主页见:blackshow/hexo-theme-freemind.386

本博客便采用了 Hexo 的 hexo-theme-freemind.386 主题搭建。

By

ElasticSearch + Kibana 安装配置(CentOS)

部署环境:CentOS 7 64bit

使用组件:ElasticSearch 5.4、Kibana 5.4

实例描述:在一台服务器上搭建 ElasticSearch + Kibana,并使内网可访问,假设服务器地址为 172.16.4.44 。搭建好之后,同一内网中的机器都可以访问这个地址进入 Kibana 查看 ElasticSearch 中的数据。

组件下载:ElasticSearch 5.4Kibana 5.4 均采用原生版本

注意:ElasticSearch 需要 java8 以上环境,这里假设你已经安装好。

By

解决 VPS 经 SS 访问 Google Schoolar 受限的问题(补充)

本文主要解决通过 ss 访问 谷歌学术,报如下错误的问题:

提示信息为:

We're sorry... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.

网上找到一篇文章可以基本解决这个问题:解决VPS经SS访问Google Schoolar受限,但是我在尝试的过程中发现有些坑还是花费了不少时间,下面针对这些坑对上文进行补充性的建议。

By

使用 Frp 进行内网穿透(在外网用 ssh 登录校园网中的服务器)

最近想在外网用 ssh 登录内网(校园网)的服务器,以便在外网也能跑跑实验什么的,于是研究了一下常用的内网穿透工具,下面分享下我的心得。

首先介绍一下 内网穿透解决的痛点,比如导师在你们实验室买了一台高配服务器,装配有高端显卡,可以用来跑深度学习模型,你在实验室玩的很开心。但是到了暑假你不得不离开实验室,回到家里的外网没法访问处于实验室内网的服务器,vpn也没法用!这怎么办呢,这个时候可以用内网穿透工具来解决这个问题啦!

部署的思路 是把内网穿透工具的客户端部署在内网服务器中,然后在有独立域名的 VPS 中部署内网穿透工具的服务端,然后你在外网的随便一台机器上用 ssh 登录你的 VPS 的 IP 和配置好的端口,便可以登录内网的服务器啦!

其实 原理 就是把 VPS 当做一个“桥”,和内网的操作全部通过互联网和这个“桥”连通,这样便打穿了内网和外网的界限。

By

Django 自定义装饰器进行登录访问限制

我们在设计网站用户系统的时候,往往需要进行登录访问限制,比如说用户还没有登录的时候,有些网页是不能访问的。

最简单粗暴的办法是,在每个页面的函数最开始加一个 登录验证函数,检查当前用户登录状态:如果已经登陆过,那么继续往下执行;如果用户还没登录,对不起,出门左转到登录页。

在 python 中有个优雅的解决办法——使用 装饰器。Django 中有提供使用装饰器进行登录访问限制的方法,详情可见 django实现用户登陆访问限制@login_required,如果对自己实现这套机制感兴趣的童靴,可以继续往下看。

By

一个 mui 底部选择卡切换的简化实现方案

网上有不少底部选择卡切换的解决方案,看了官方的和网上的资料之后做了一些简化。

顶部 和 底部选择卡:

By

Prolog 练习和笔记

Prolog 是一种主要用于人工智能领域的编程语言,编程体验和自然语言较为接近。

前段时间接触了一下,下面记录一下学习的笔记,主要是一个 prolog 和 C++ 混合编程的例子。

我把示例代码放到了 GitHub 上,链接在这里:windcode/prolog-demo

另外还有官方文档的链接:官方文档

By

如何配置 Sublime Text 3 的 Python 编程环境

用 IDLE 写 python 习惯了,还是发现它有些简陋,于是准备转向 Sublime 的怀抱。(我比较喜欢轻量级的 IDE)

为了方便用 Sublime 写 python 代码,我搜集了网上的一些资料,选出了常用 Python 编程的3个插件,整理出一篇轻量级的配置教程。

By

记录一次服务器重新部署的经历(网站、gogs和一些脚本)

前段时间由于手贱在服务器上跑爬虫,开了100个进程,内存和cpu双双达到极限值,第二天起来一看,性能曲线赛高,使用 putty 和网页版 ssh 登录服务器,被拒之门外。于是重启服务器,然后发现启动报错,找阿里云售后工程师,说部分关键文件丢失,这种情况无法正常启动,建议恢复快照…… 无奈,依次尝试恢复快照,结果发现只有一月份的快照是正常的…… 这意味着我没法把系统直接恢复到最近的正常状态,一些服务和程序需要我重新搭建一遍。

心情崩溃…… 好在网站有 自动备份,阿里云也可以 从快照创建磁盘 ,这说明数据没有丢失,不幸中的万幸,然后只要花时间把服务和程序重新搭建起来就可以恢复之前的状态了。

By

windows 中永久修改环境变量的三种方法

有一个简单的需求:

写一个批处理,将当前目录追加到 path 环境变量最后,使其永久生效。

我找到如下了三个解决方案

By

win7 使用 mstsc 访问 win10 远程桌面

mstsc 是 windows 系统自带的远程桌面工具,有了它可以很方便连接内网甚至外网的主机。

近期在公司写代码的时候有一个特殊需求,因为台式机(win7)内存不足,使用 webstorm 太卡,于是打算利用一下放在我旁边暂时没人用的高配 win10 笔记本。用了几次,感觉笔记本屏幕太小,又因为只提供了 HDMI 接口,所以无法将笔记本直接连接到大屏显示器。

于是今天琢磨起远程桌面的主意,目的 是用台式机的 win7 系统连接笔记本的 win10 系统,这两台机器都连接到公司的 wifi。(尝试过 qq远程桌面,走的外网,延迟太高;teamviewer 由于我手贱,试用期已过,暂时没找到激活的方法)

废话不多说,介绍一下 win7 访问 win10 远程桌面的方法。

By

使用 gogs 搭建私人 git 服务器 | nginx 添加反向代理到二级域名

最近一直在云主机的 linux 系统上开发,久而久之也积累了一些代码,另外有些个人文件夹需要在不同电脑上增量编辑,比如在公司和实验室的电脑上共同维护自己的工作日志,于是迫切需要一个类似于 github 的网站统一管理这些代码和文件夹,而且又不想给别人看。

在这里给大家提供一个搭建个人 git 服务器的思路,我选择的是 gogs。

By

关于 ElasticSearch 中倒排索引的理解

ElasticSearch 是一个搜索引擎,也可以看做是一个分布式的数据库(经常被当做一个文档型的NoSQL数据库在使用),它可以大量的存储数据,并建立索引,以便在极短时间从海量数据中找到目标数据。

它和传统数据库很大的一个区别在于它建立索引的能力,这里有一个重要的概念——倒排索引

倒排索引可以很大的提高检索的速度,下面举一个例子,来说明一下倒排索引是什么,以及这种方式相比于传统数据库为什么会提高索引的速度。

By

2017年内蒙古大学计算机复试笔试题目及源码解析

题目是考完了去网吧回忆出来的,除了一些细节,大体意思基本和原题一样。如果你看着没毛病,那说明我语言描述能力还行,哈哈。

代码也是我在网吧现敲出来的,由于源码在网吧 vc++6.0 和 codeblocks 以及 dev c 等IDE环境中编译运行有问题(可能网吧做了限制?百思不得姐),所以用 ssh 远程连接了我的 VPS,在 linux 环境下用 g++ 编译运行测试的。

以下输入输出测试样例均在 g++ 编译器下测试成功。

By

基于Django、WeRoBot的微信公众平台开发(二) - 后续

这里是 基于Django、WeRoBot的微信公众平台开发(二) 的后续,主要记录其它功能的开发。

By

Navicat远程连接阿里云上的mysql

因为用ssh远程连接服务器实在命令行下操作的,查看mysql数据库不太直观,于是查找在本地远程登录mysql的方法。

网上教程很多,在这里记录设置的步骤,以及一个小坑。

By

记录安装 mysql5.7 过程中遇到的两个坑

最近在windows下安装了一下 mysql5.7解压版(64位),因为官方更新了不少东西,所以和5.6的安装过程大有区别。因为这些不知道的坑,折腾了一个晚上,在这里记录一下。

下载的mysql5.7解压版(64位)就是这货:

注意:安装环境为windows

安装的过程中主要遇到两个坑(和之前的版本安装不同的地方):

  • 启动mysql服务之前需要手动初始化data目录(第5步
  • root 用户登陆初始密码为一个随机密码,而不是空密码(第7步

下面在安装过程中介绍这两个坑。

By

linux环境中使用转义字符使命令行字符颜色高亮

linux环境中使用转义字符使命令行字符颜色高亮