钉子の次元

Dimpurr – an artist, designer and developer from China.

BigDataGumi 一期小记 – 浅尝爬虫数据抓取和简单可视化分析 (PySpider)

这学期在学校选修了一门名为「大数据分析技术导论」的公选课,课上纲领性的介绍了目前正处风口的大数据时代的特点,数据挖掘技术的操作过程和实际应用,并从统计分析基础和数据分析工具介绍两方面介绍了一些实践性质的内容。因为是导论性质的课程,课堂内容侧重介绍和应用的性质居多,而对围绕 Hadoop 和 Spark 的实际大数据技术栈,只简单按分类介绍了 MapReduce 、 NoSQL 类数据库、数据集成等常用工具的功能和使用场景,除了最后一节课以 Weka 为例示范了简单的数据集统计分析和经典机器学习模型训练,其他并没有深入讲解到实践操作部分。

作为课程考核的一部分,在分析论文、利用数据集进行分析实验两个选题中,我选择了后者。因为不可能有合适的平台练习分布式存储、批处理和持续集成,最后决定自己爬取一份数据,把简单数据可视化分析的流程跑通。中间踩坑的过程非常多,实际上大部分的想法都没有成功,但是尝试的过程中,对大数据领域工作流和技术栈的加深了解,应该算是达到了这个导论课本身的意义。

BigDataGumi 动画评分数据可视化分析

BigDataGumi 动画评分数据可视化分析

这篇文章记录了利用 Bangumi 番组计划 (bgm.tv) 网站的动画条目和评分数据,进行数据统计分析的项目「BigDataGumi」的初步进展,包括设计网页爬虫抓取数据、利用可视化分析工具尝试获取有价值信息的实际操作部分。一些没有实现的想法和没有呈现在结果中的可能的学习方向,也会作为学习经历的一部分记录。项目的下一步想法是训练一个 tag-orinted 的机器学习模型,能够计算动画的 STAFF 构成和 TAG 标签属性对评分影响的权重,并根据 STAFF 和 TAG 数据预测新番的最终稳定评分,在撰写本文时仍在进行中。

尽管这个项目目前的进展不怎么大数据,不过如果你和之前的我一样从未接触过数据挖掘这个领域,从这篇文章你可以看到简单的数据爬取和可视化分析的操作流程,并且了解到数据分析部分领域的概貌。涉及到的都是非常粗浅的内容,见笑。 READ MORE →

Django 学习手记 三 数据操作的常用方法

上一篇中,我们已经建立了基本的 Model 数据模型,并且熟悉了关于数据结构的存取、更新操作。本篇中主要介绍了对 Model 数据进行操作的常用方法,包含有许多示例 参见 ,亲自操作一下就很容易明白。

为了方便,我们可以通过 Python 在终端提供的交互式 Shell 来尝试和熟悉各种数据接口类的 API 。

python manage.py shell

使用这个命令会启动 Python 的交互式 Shell ,并且预先加载好 Django 所需的环境和变量。

示例:创建和修改新对象

涉及到的新方法:

  • all() 列出所有对象
  • save() 将该对象存入数据库

READ MORE →

HTML Head Generator – 纯 CSS 实现的头部元标签代码生成器

前段时间突发奇想,捣鼓出了这个纯 CSS 选择器实现的在线 HTML <head> Meta 标签生成器,以解决每次要写 HTML 头都得去找个之前的文档复制,还得琢磨半天需要哪些的麻烦。没有到用一行 JavaScript ,基本原理是 CSS 3 的 + 紧邻选择器和 ~ 同级后继选择器。前端攻城狮们可以用短链接 http://find.moe/headgen 快速访问,也可以拖到收藏夹备用。

感谢 电灵 酱对最终样式的建议。

Dimpurr's <head> Generator

Dimpurr’s Head Tag Generator

写的时候感觉槽点一大堆,过了一周什么都忘了 …… 简单说明一下实现的要点吧。如果有更好的实现思路或觉得有可以改进的地方敬请指教,不过,前提是无 JavaScript 。

READ MORE →

Django 学习手记 二 建立模型层

这篇文章记录了如何创建 Django 项目的一个子应用并编写 models.py 。如有错误,请不吝赐教。

Django 框架同样遵循 MVC 开发模式。在 Django 中,我们定义 Model 数据模型并自动同步生成数据库和后台,由 Template 和 Views 处理界面并转交 URLconf 控制器。

因为 MVC 中 C (Controller) 的部分主要交给框架进行,我们也将 Django 称为 MTV (Model, Template, Views) 模式。 参见

一个 Django 项目有两种层级,称为 project 项目 和 app 应用。一般来说,一个 project 就是一个完整的站点,比如一个大型论坛或者门户站点。而一个 app 就是一个有完整功能、可复用的应用,比如一个私信组件,一个投票组件或者一个讨论版。

一个 project 即使没有 app 也能独立运行,但是一个独立的 app 可以在不同的 project 中复用。另外,如果你要使用 Django 的模型功能即数据库层,模型必须存放在 app 中。

创建应用并建立模型

执行 ./manage.py startapp polls 命令,来创建一个名为 polls 的 app 。同样, Django 会自动在项目根目录下创建一个名为 polls 的目录和一系列文件。我们会以 Django 官方教程为例,先编写一个投票应用。

在这个应用中,我们需要 Quesntion 问题和 Choice 选项两个类,并且添加一系列的属性。

首先,我们编辑 polls/models.py ,这个文件就是你的模型:

READ MORE →

Django 学习手记 一 安装和配置

Django 是一款知名的 Python Web 框架,最初为 CMS 设计,现在已经发展成为了一个能快速根据抽象数据模型生成和维护数据库、后台、和模版系统,同时自带用户系统、地址重写等大量实用功能的大型框架。

本文为个人在 Django 学习中的一些心得体会,主要是官方教程和参考文档的一些整理和归纳,并非完全依照原教程翻译而来,因此如有错误,请不吝赐教。

由于本文力求语言精简、参考方便,因此很多较为基础的内容,并没有特别详细的进行解释。不过在容易混淆的部分,大部分都提供了有对应的详细解释说明的「参见」链接,应当注意。

参考资料

安装 Django

首先,安装 Python 的包管理器 pip 。首先尝试使用 Python 自带的 easy_install 模块安装:

READ MORE →

Elementary OS Luna 第一天

最开始知道 Elementary OS 是 @Mummy醬 在评论里提到的:

愛麗絲卡 2013-7-18 21:00: 可以試試別的桌面環境的說,咱是elementary os的飯。

当初看了一下觉得和 Gnome 差不多 (当时把 Gnome 当成了 KDE …),所以没有引起多大注意。昨天正好没事干,就刻录了下 OpenSUSE 准备试试。等待之中在 V2EX 晃悠时,又看到了有人提到 Elementary OS 。于是就顺便搜索了一下,结果大感兴趣,直接把刚刻好的 OpenSUSE 覆盖掉了……

很快进入了安装界面,当然先点了试用。不得不说真的是惊艳到了,默认的桌面环境确实非常漂亮,略有 Mac 风格但也不只是模仿,既细腻又简洁,不愧是设计师主导的发行版。于是 Elementary 的脑残粉又多了一个……之后因为除了界面风格之外定制 Ubuntu 的部分不算多,安装也轻车熟路,断网安装一下子就搞定了。时某人依然是试用然后边玩边安装,不过因为 Live CD 没有 sudo 权限 GoAgent 配置失败了……

边安装边玩中~

边安装边玩中~

很快设置好引导进了系统,然后配置好了GoAgent、 Wine、 Ubuntu Tweak 等之前研究过了的东西。输入法 SunPinyin 暂时凑合,下次试试传说中的 Rime 小狼毫。播放器还是习惯的 SMPlayer ,浏览器换成了 Chromium 。之前攒下的经验用完后,又开始了折腾。某渣渣首先尝试了一下著名的新立得包管理器,最后表示软件中心 + 手动 apt-get 也挺方便了……

READ MORE →

Ubuntu/Liunx 下 GoAgent 翻墙教程

GoAgent 翻墙成功

GoAgent 翻墙成功效果

因为在 Github 上下载的时候实在无法忍受 24 kb/s 的龟速……查了下资料, Linux 下好像比较常用 ssh 翻墙,但对我来说还是 GoAgent 比较熟悉,于是折腾了一下,最终搞定。上教程。

一、准备工作

1、申请 AppID 和 Win 下相同,本文假定已经成功申请到至少一个 AppID ,方法在此不再详述,需要的话请访问:http://blog.howgo.info/archives/3246.html

2、Ubuntu 已经自带 Python ,但是建议还是确认一下。终端 sudo apt-get install python

3、下载 GAE for Linux https://developers.google.com/appengine/downloads?hl=zh-CN

4、下载 GoAgent ,Win 和 Linux 是通用的, Linux 下直接用 .py 脚本运行 https://code.google.com/p/goagent/

READ MORE →