我开发了一个基于 Beancount 的账本托管服务 HostedBeans,欢迎大家来了解纯文本复式记账并试用我的服务。
归档 2013 年 3 月

重谈黑客(一)

因为比较长分了两部分,第一部分谈我自己的想法,以及黑客精神;第二部分谈我混过的(国内草根)黑客圈。

一年半之前,我写过这个话题,我的观点总体上没有改变,但这么久了总有些新的想法,我尽力表达地清楚一点。
先声明,这个话题很有争议,如果你持不同观点,且有信心说服我,请留言或直接找我;如果你不打算说些什么,则你大可以不和我一般见识;如果你只是想要个说法,那么我很明确地表示我害怕任何人攻击我的网站。

在很多外人看来,黑客是很神秘的一群人。也有很多人是因为崇拜所谓黑客技术而入门计算机、编程的。在我身边有很多这样的狂热分子。我一直无法理解他们的狂热。大概我从未经历过这个阶段,我入门编程是因为对自动化完美的追求。所谓自动化就是不希望去做一些重复的操作,而完美就是指这个自动化的过程的完美。

从Windows批处理,到VB6, 再到C++.
从HTML, 到ASP, CSS, JS, 再到.Net, PHP.
从Windows到Linux.

包括我造的很多的轮子,都是这样的过程,一步步把握更多的主动权,并且让过程更加完美。并非每次都能成功,但这是我所追求的。
而我不喜欢入侵、外挂、破解的原因也很简单。这些方面,我都没有主动权,被对手牵着走,永远做不到完美,永远心惊肉跳。更别说基本大部分都是违法的。

hacker这个词在最初是没有贬义的,但黑客这个小群体却是以其破坏性而首先进入大众眼球的。黑客精神的含义众说纷纭,但有几个最关键的核心要素:钻研、自由、分享。
专研是指对技术的钻研和探索,不达目的不罢休,对一个难题追求更多更巧妙的解法(所谓CSS hack就是指巧妙的CSS技巧).
自由是指追求钻研(学习)的过程的自由,黑客们认为只要有助于探索和创新,应当被允许合理使用各种信息和工具。

看上去一切都很美好不是么?但我要指出黑客精神并非是正义的。每个人对自由的理解都不同,每个人都可以追求自己所谓的自由。但有一个最基本的底线,就是不能影响他人的自由,而法律在保障我们追求自由的权利。
黑客精神诞生的背景是计算机行业才刚刚发展,计算机大牛很少并大多熟识,出于探索目的的适当破坏是可以容忍甚至鼓励的。
而当时软件是硬件的附属品,没有多少人承认软件的版权。黑客们在呼吁源代码应当自由,至少应该自由地用于学习的目的。
但显然,他们失败了,在现在,全世界都承认并保护软件的版权。有一些黑客转而以合法的方式继续他们的事业,如GNU计划等。还有一些黑客仍在坚持,如海盗湾等。

在当下,黑客精神是一种对规则(法律)的破坏。虽然不可否认,这样的破坏有时会起到一些积极的作用,如减少行业垄断,通过阅读更多受限资料来促进行业的发展等。
黑客更像是古时的侠客,以自己的道德标准行侠仗义,劫富济贫,在规则之外,实现自己的追求。

以上说的是传统(早期)意义上的黑客,黑客精神是一种模糊的生活态度,并非正义也并非总是邪恶,算是一种叛逆的生活态度。

试问传统意义上的黑客有没有可能合法化呢?我认为不能。如果需要遵守现有法律,那么自由和分享都会受到极大的限制,只会钻研,那不是黑客,是学霸。

参考:《黑客与画家》、维基百科:黑客

Windows下部署 Apache2 + PHP + XDebug + MySQL 开发环境

为什么选择这几个软件?

  • Apache2是老牌的Web服务器, 兼容性和功能都很强大, 因为我们只是开发环境, 不需要考虑性能问题.
  • PHP我们选择了比较新的5.4版本, 丢掉了不少历史包袱, 提供了更多的新特征(如数组简写形式).
  • XDebug是调试利器, 在代码中可以用XDebug提供的函数来追踪调用栈等等. 还可以配合IDE进行断点调试甚至远程调试.
  • MySQL仍是目前与PHP配合最紧密的数据库.

测试环境

Windows 7 SP1 64bit

但为了保证兼容性, 我仍选用了各个软件的32bit版本.

下载软件包

在Windows下可没有那么方便的包管理器, 难道你打算试试360软件管家?

Apache

官网: http://httpd.apache.org/

进入Download页面, 再进入Other files页面, 进入 binaries/win32 文件夹. 选择合适的版本进行下载.

我选择的是Apache2.2 x86 openssl(httpd-2.2.21-win32-x86-openssl-0.9.8r.msi).

PHP

官网: http://www.php.net/

进入Download页面, 点击Windows binaries, 选择合适的版本进行下载.

我选择的是PHP5.4 VC9 x86 Thread Safe(php-5.4.13-Win32-VC9-x86.zip).

Thread Safe是线程安全的意思, 因为Windows版的Apache2是线程模型, 所以我们需要线程安全的版本.

XDebug

官网: http://xdebug.org/

进入Download页面, 选择合适的版本进行下载.

我选择的是XDebug2.2 for PHP5.4 VC9(php_xdebug-2.2.1-5.4-vc9.dll).

MySQL

官网: http://www.mysql.com/

进入Download页面, 点击MySQL Community Server, 选择合适的版本进行下载, 他会邀请你注册个帐号, 但你也可以不注册, 点”No Thanks”就行.

我选择的是MySQL5.6 32bit(mysql-installer-community-5.6.10.1.msi).

这里要数这个MySQL最大了, 200MiB左右…里面自带了一个很炫的GUI管理工具…

配置PHP

我在这里建议把这些软件都单独安装到一个文件夹, 便于维护, 同时不要放在系统分区, 否则配置权限很麻烦.

在这里我选择把他们都安装到了D:\.

然后解压PHP. 把下好的XDebug复制到PHP目录下的ext目录(如D:\PHP\ext\php_xdebug-2.2.1-5.4-vc9.dll).

我们将PHP目录中的php.ini-development重命名为php.ini, 这就是PHP的主配置文件了

XDebug

打开php.ini, 在末尾配置XDebug, 新增:

[XDebug]
zend_extension = D:\PHP\ext\php_xdebug-2.2.1-5.4-vc9.dll
xdebug.remote_enable = 1
xdebug.profiler_enable = 1

这样就打开了远程调试, 只要配置一下IDE就可以进行断点调试了.

其他扩展

然后我们还需要把常用的扩展打开(如MySQL), 在php.ini中查找Dynamic Extensions, 然后取消你需要的扩展前的分号(注释符), 我开启了这些扩展:

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll

分别是: CURL(强大的数据传输工具, 支持HTTP在内的多种协议), GD2(图像处理库), MySQL(经典C风格MySQL接口), MySQLi(面向对象风格MySQL接口), PDO的MySQL和SQLite驱动.

配置Apache2

Apache2安装过程没啥好说的, 途中会让你输入服务器名和管理员邮箱, 随便填就行.

安装好之后会在你的Windows上安装成一个服务, 你可以在服务里面设置它是否开机启动, 同时右下角通知区域会有个Apache2的托盘图标.

PHP支持

然后我们需要配置Apache2使其支持PHP脚本.

打开Apache2的主配置文件(如D:\Apache2\conf\httpd.conf), 末尾追加:

LoadModule php5_module D:/php/php5apache2_2.dll
PHPIniDir "D:/php"

AddType application/x-httpd-php .php

第一行中具体的DLL名称要取决于你的Apache2版本.

URL重写和.htaccess

除此之外还建议开启rewrite模块(URL重写), 以及 .htaccess 支持:

搜索LoadModule rewrite_module, 去掉之前的井号.

搜索<Directory />, 改为:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from 127.0.0.1
</Directory>

这里设置成了允许本机访问任何目录.

虚拟主机

然后我们可以考虑打开虚拟主机支持, 这样我们可以在本机上依靠域名来建立多个站点.

在httpd.conf中搜索Include conf/extra/httpd-vhosts.conf, 去除该行前的井号.

显而易见, 我们在这里包含了另一个文件, 虚拟主机的配置就保存在这个文件中.

打开该文件(如D:\Apache2\conf\extra\httpd-vhosts.conf), 可以看到默认已经有两个虚拟主机示例了(每个<VirtualHost>就是一个虚拟主机).

我们可以不理会它, 当然删除它们也可以.

然后建立我们自己的虚拟主机, 如添加:

<VirtualHost *:80>
    DocumentRoot "D:/Web/Test"
    ServerName test.2local.tk
</VirtualHost>

可以看到我们建了一个虚拟主机, 根目录是D:/Web/Test, 对应域名是test.2local.tk.

2local.tk这个域名是我申请的一个域名, 它以及它的子域永远指向127.0.0.1, 以方便本地测试, 省着改hosts了.

MySQL

打开MySQL安装程序可以看到一个很炫的安装向导.

这个安装程序中附带了很多插件, 比如for Office的插件, for VS的插件等等. 总之, 依赖条件不满足的插件不装就是了(比如你没装Office, 就不要选择Office插件了).

安装后可以在开始菜单找到名为MySQL Workbench的GUI管理工具, 挺好用的.

入手中兴U930

这个假期收到了不少压岁钱,于是打算更新一下我的爪机.

大年初四,和我爸一起去铁西广场附近的几家商店看了看,结果因为过年,有几家提前关门了,剩下的可选机型太少,而且店员对配置参数之类的一无所知.

本来我之前在网上,看上一款华为U8836D, 淘宝上1200左右,性价比很不错. 至于三星, HTC什么的,虽然我知道质量好,但价格也实在太高. 国产的几个品牌,我个人觉得华为优于小米优于中兴.

然后我们去了兴隆大家庭,几乎是沈阳最热闹的地方了,这里卖手机的柜台也确实比较多,但仍没找到我之前看上的那一款,最后看上了标题上这款,中兴U930. 也是1200, 配置和华为那个差不多,但我不是很看好中兴这个牌子.

后来回来发现这机器在网上才卖800多 …我早就觉得在网上买靠谱点..

中兴U930
4.3英寸 960x540px
1G RAM 4G ROM
Android 4.0
500W+30W像素摄像头
1.2GHz CPU*2
1600mAh电池

感觉质量明显不如之前的三星,一些应用不兼容,比如Chrome for Android..我可是冲着它来的 ….. 好在半个月后Chrome更新了一次,然后就能用了.

还有很多莫名其妙的问题:

  • 后盖死活打不开,我掰断了好几次指甲才打开 …
  • 有些应用崩溃或者闪退(比如Chrome)
  • 第三方应用没法截图(如QQ)
  • 收音机的信号非常之差,基本没法听

那天回来当天晚上我就搞定了root和gapps, 卸载掉了自带的成堆的垃圾软件. 其实也不是很复杂. 至于ROM就懒得刷了,默认的ROM在顶栏没有Wifi, APN之类的快捷开关,这点很不爽,其他的还好.

还有一点很不爽的就是电量,1600mAh就算不怎么用,也撑不过一天,于是前两天我花了80元搞了个移动电源,包装很是山寨,标注5200mAh, 但实际测试也就只能把我那1600mAh的电池充一次半 …

1

精子生于 1995 年,英文 ID jysperm.

订阅推送

通过 Telegram Channel 订阅我的博客日志、产品和项目的动态:

王子亭的博客 @ Telegram


通过邮件订阅订阅我的博客日志、产品和项目的动态(历史邮件):

该博客使用基于  Hexo  的  simpleblock  主题。博客内容使用  CC BY-NC-ND  授权发布。最后生成于 2023-12-20.